CpSc 871
Final Exam Key
Name________________________________
Answer any FOUR of the five questions. Place a large X on the page for the question you are not answering. If you answer all five, I will eliminate the one on which you did the best. All questions are counted the same: 25 points each. Be certain to answer ALL parts of the questions you select to answer. Answer the question that is asked and then stop. You are allowed the notes you have taken and printouts but no laptops. You have from 8 to 9:15 for the exam.
1.
a. To mitigate a risk either the probability of occurrence is reduced or the cost of occurrence is reduced. For the risk that a defect might escape development and be deployed to a client site give two ways to reduce the probability of occurrence and two ways to reduce the cost.
b. DevOps is intended to facilitate communication between developers and operations personnel. Because this results in many rapid deployments we insist on backward compatibility. How does having interfaces that are backward compatible facilitate rapid development?
c. A developer finds two design patterns that define structures that have the necessary elements for the design of the current product. That is, they support the needed functions. How do you decide which to use?
a. Probability: additional testing and a continuous integration process; Cost: ask the customer to accept an acceptance test phase and reduce effort required to deploy new versions
b. Backward compatibility means that new versions of some components can be fielded before other components are upgraded to use the latest
c.
Analyze the degree to wish each desired property
is achieved
2. Process
a. List at least two ways of reducing complexity.
b. A change control board evaluates requests for changes to an asset. List at least three criteria a change control board should consider when analyzing a change request regardless of the asset being controlled.
c. Why are the first two terms of the SIMPLE equation below outside the summation? What is the significance of the “product” and “t” parameters?

a. Decomposing into smaller modules and reducing dependencies
b. Impact on other components, impact on schedule, impact on overall risk
c. The first two terms are fixed costs that do not change with respect to the number of products; the product parameter lists the product’s features and the t parameter is the calendar time of when the product will be produced
3. V&V
a. Z is a formal tool for precise design of software. Give one argument for using the formal approach to software specification. Give one argument against using this approach.
b. Two companies are competing to be chosen to build your next software system. One company says they are CMMI certified Level 5. What could the other company say or show to counter that argument if they are not certified at any level?
c. Your project has the choice of an ANSI C++ compiler from a reputable company for a hefty price or an open source, non-standard C++ compiler. List at least two risks involved in this decision. What are the actions that should be taken to mitigate each of those risks?
a. It verifies for all legal values of a variable not just the values used in specific tests; it only verifies against a specification which may be incorrect
b. They could show successful use of their products by companies similar to the one buying the current product
c.
Risk 1 – the company goes out of business and
the compiler is not maintained – the open source product provides you the source
code so that you can maintain it yourself; Risk 2 – the open source compiler
does not implement certain keywords in the standard – the compiler could be upgraded
4.
a. We discussed a model-driven development process and associated tool chains. What types of faults, which often appear in the software developed using a traditional development approach, might not appear in a model-driven process?
b. What is the difference between a black-box test case and a white-box test case (Do not define each one.) Simply state what is different.
c. How might a project reduce the risk posed by a supplier who warns that their delivery due in three months probably will not be ready for six months?
a. Inconsistencies – building the model allows for interactions between components to be verified early
b. What information is available to use when selecting test cases
c. Have alternative suppliers; have built in a buffer of time when giving the organization the deadline; build a rough prototype as a placeholder to be used during development
5.
a. System testing takes a different perspective from unit and integration testing. Explain the difference and what changes are made in how we select test cases?
b. Define one of the AGREE contracts you created for the cruise control design. Explain in English what the contract means.
c. Inheritance and composition both create hierarchies of definitions. How are these hierarchies different? How are they the same? (Do not define each one!! Explicitly tell the differences and similarities.)
a. System test takes the customer’s perspective. Tests are chosen based on how the product is used not on how it is structured.
b. Answer will vary but essentially the “assume” clause expresses a pre-condition and the “guarantee” expresses the post-condition
c. The relationships among the layers are different so the mapping from one layer to another is different. They are the same in that a higher layer influences the content of the lower layer.
|
|
basic |
Arch/properties |
process |
relationships |
profession |
management |
|
|
|
1 |
|
x |
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
|
|
|
x |
|
|
|
|
4 |
|
|
|
|
|
x |
|
|
|
5 |
|
|
|
x |
|
|
|
|