Term
| How are analysis and design related? How are they different? |
|
Definition
| Design is the process of applying various techniques and principles. Quality software is goal repeatable method driven by analysis. |
|
|
Term
| What are the “process” inputs/outputs of a structured design? |
|
Definition
| Analysis model, use cases |
|
|
Term
| What are the “process” inputs/outputs of an object-oriented design? |
|
Definition
| Inputs: analysis model Outcome: collaboration diagrams design models, and code. |
|
|
Term
|
Definition
| one controls many (top of control hierarchy) |
|
|
Term
|
Definition
| many use one (bottom of control hierarchy) |
|
|
Term
|
Definition
| how related are components of a module |
|
|
Term
|
Definition
| interdependence / interaction between modules |
|
|
Term
| What is structured programming |
|
Definition
| Single entry / exit, three logic structures (sequence, condition repetition) |
|
|
Term
| How is a data flow converted to a design |
|
Definition
| The DFD is mapped into a program structure, control hierarchy is defined by factoring, and the result is defined |
|
|
Term
| What are the two flow types |
|
Definition
| Transform and transaction |
|
|
Term
| What is factoring (in data flow/structured design)? |
|
Definition
| staging a tree that the deeper into the tree you go the less decisions are made, in first order factoring the main controller is the root, and the input controller processing and output controller are children |
|
|
Term
|
Definition
|
|
Term
|
Definition
|
|
Term
|
Definition
| compartmentalization of data and function, allows you to take large programs and break them down to be managed |
|
|
Term
|
Definition
| controlled interfaces: reduces side effects |
|
|
Term
| Why is architecture important |
|
Definition
| due to the fact that it’s the fundamental framework for structuring the system, as well as it helps organize large projects |
|
|
Term
|
Definition
| It’s what software architects do system level large scale and broad problems that involve fundamental design decision. |
|
|
Term
| What is the difference between design and architecture? |
|
Definition
| Design: meet requirements Architecture: helps organize nonfunctional solutions |
|
|
Term
| What are architecture views? |
|
Definition
| A view of the system architecture from a given perspective, focuses on structure modularity essential components and main control flows |
|
|
Term
| What are the five main views? |
|
Definition
| Logical, process, deployment, implementation, use cases |
|
|
Term
|
Definition
| object models, sequence of collaboration diagrams, |
|
|
Term
|
Definition
| threads or processes used to implement the system |
|
|
Term
|
Definition
| Describes how the software itself is deployed to the hardware |
|
|
Term
|
Definition
|
|
Term
|
Definition
| set of use cases to describe the system |
|
|
Term
| How does architecture relate to subdividing work among teams |
|
Definition
|
|
Term
|
Definition
| Maintaining the integrity Assessing technical risks Proposing the order Consulting services Assisting marketing Facilitation of communications |
|
|
Term
|
Definition
| has interaction diagrams how objects will communicate to fulfill requirements |
|
|
Term
|
Definition
| design class diagrams, definition of class and interfaces |
|
|
Term
| why do we create interaction diagrams |
|
Definition
| to show how objects interact via messages to fulfill task, inputs are use cases and messages to systems |
|
|
Term
| what are the inputs of interaction diagrams |
|
Definition
| objects or function calls |
|
|
Term
| What do interaction diagrams describe |
|
Definition
| They describe how the messages interact with the system |
|
|
Term
|
Definition
|
|
Term
|
Definition
| Good solution to some problem you see over and over, name associated with it |
|
|
Term
|
Definition
| Solution that you use to solve architectural problems how to organize the solution (layer, model view, controller pattern) |
|
|
Term
| What are design class diagrams |
|
Definition
| Follows / performed in parallel to create a sequence of diagrams. They have the following: classes associations, attributes, type information, dependencies and methods |
|
|
Term
| How are design class diagrams created |
|
Definition
| They are created by identifying all the classes participating in the software solution. Draw them in a class diagram, duplicate the attributes from the associated concepts in the conceptual model |
|
|
Term
| What is the purpose of a coding standard |
|
Definition
| enable programmers to program the same way, that way just because a different programmer worked on a project, it doesn’t mean it would be confusing for someone else on the team to look at it. It encourages team collaboration, as well as makes it easy to help debug because you don’t spend your time figuring out what’s going on. |
|
|
Term
|
Definition
| taking code that exists and changing it to make it better. This may be with the terms of changing the inheritance structure, adding more modules, taking out unnecessary modules. |
|
|
Term
| Describe Test First Programming (Test Driven Development) |
|
Definition
| Rapid cycle of testing, coding, and refactoring You write small amounts of code at a time and you get to state your project twice first with the test and then with the code |
|
|
Term
| Can we prove the absence of defects in a program |
|
Definition
| No. You can never prove the absence of defects in a program, even with all of the testing, it is impossible to get 100% insurance until you’ve deployed the project and are testing on real data |
|
|
Term
|
Definition
| refers to the set of tasks that ensure software correctly implements a specific function |
|
|
Term
|
Definition
| refers to a different set of tasks that ensure that the software has been built is traceable to consumer requirements |
|
|
Term
|
Definition
|
|
Term
|
Definition
| Doesn’t know what is going on just has access to input and output |
|
|
Term
|
Definition
| test internal aspects can follow the code of the program, can separately test what the user doesn't interact with |
|
|
Term
|
Definition
| just works with input output, things the user will see. /, doesn’t work with things that are in-depth within the code. |
|
|
Term
| What does a good white box test do |
|
Definition
| Tests the infrastructure or working applications as opposed to the functionality of the code. For example, working with private classes and private functions that the user will never touch to ensure that they are working properly. |
|
|
Term
| What does a good black box test do |
|
Definition
| Black box tests the functionality of the code. For example, ensuring that the results that are requested of the system are the results that are given back. I.e. asking the user for a value and calculating the square, the only function that the user has access to is probably the input function, then privately the computer calculates the square and outputs it back to the user. |
|
|
Term
| What is basis path testing |
|
Definition
| A.K.A structured testing. Method for designing test cases intended to examine each mathematically possible path of execution at least once. |
|
|
Term
|
Definition
| the higher complexity the higher probability of errors. |
|
|
Term
| Cyclomatic complexity formula |
|
Definition
| number of decisions +1 or number of enclosed areas +1 |
|
|
Term
| Why is it useful to test all statements/paths in a program |
|
Definition
| then you can ensure to the stake holders with 100% guarantee that everything that was stated in the problem set or the use cases is tested and gives back positive results. |
|
|
Term
|
Definition
| : technique that divides the input data of a software unit into partitions of equivalent data from which test cases can be derived |
|
|
Term
|
Definition
| : tests are designed to include representatives of boundary values. |
|
|
Term
| What are the strategies for using white box/black box testing to integrate/test a system |
|
Definition
| when working with black box, you have a knowledge of the interface, so you work with the interface as though you were a userwhen working with a white box, you know the implementation, so you use white box testing to work with the process which the system follows throughout the program |
|
|
Term
|
Definition
| starts with control mechanisms and builds towards details, tests major structure of the systems |
|
|
Term
| advantages of top down integration |
|
Definition
| start at control then intergrate or add stubs later |
|
|
Term
| disadvantages of top down integration |
|
Definition
|
|
Term
|
Definition
| starting from the minor details and working to large scale |
|
|
Term
| advantages of bottom up integration |
|
Definition
| ensure you are not forgetting things have inputs , outputs and algorithms |
|
|
Term
| disadvantages of bottom up integration |
|
Definition
| get caught up in the small details |
|
|
Term
| what is required to support unit testing |
|
Definition
|
|
Term
| what are three major categories of tests |
|
Definition
| unit, integration system test |
|
|
Term
| what unified process artifact suports system testing |
|
Definition
|
|
Term
| what is regression testing |
|
Definition
| reexecution of some subset of test that has already been conducted to ensure the changes hae not propagated unintended side effects |
|
|
Term
| when is testing compelte? |
|
Definition
| never, when out of time and money, use statistical techniques to predict current status |
|
|
Term
|
Definition
| classes object interaction method detail |
|
|
Term
|
Definition
| data structures program structures procedural detail |
|
|