1
------CEN 5035 - Software Engineering ------
Exam 2 -- Spring 2009 –- Solution Notes
1.Potentially changeable design decisions are isolated (i.e., “hidden”)
to minimize the impact of change.
2. d
3. An object requests a service from another object by sending a "service
request" message to that object. There is no requirement for serial
execution where one object waits for completion of a requested
service; objects may execute concurrently as parallel processes.
4. c
5. true, false, false, true
6. D, L, H, E, N, A, K, E
7. a
8. a. There are two parts:
“Provides interface” – defines the services that are provided by
the component to other system elements.
“Requires interface” – defines the services that must be made
available to the component by other system elements in order to
operate.
b. An object class definition defines an abstract data type and
objects are instances of that type. In contrast, a component is an
instance, not a template that is used to define an instance.
9. true, false, false, true, false, true, false
10. The chief moderator "owns" and "champions" the inspection/review
process – i.e., takesresponsibility for process improvements,
checklist updating, standardsdevelopment, etc.
11. b
12. true, false (x may equal 0 initially), true, true, true, true
13. Use: {P Лb}s1 {Q}, {P Л¬b}s2 {Q}
------
{P} if b then s1 else s2 {Q}
{P Лb}s1 {Q}: {x=5 Л |y|=1 Л y>0 } {x=5 Л y=1}
z := x-1
{ x=5 Л y=1 Л z=4} {yz=4} Q √
{P Л¬b}s2 {Q}: {x=5 Л |y|=1 Л y≤0 } {x=5 Л y=-1}
z := 1-x
{ x=5 Л y=-1 Л z=-4} {yz=4} Q √
14. a. PI, {IЛb} S {I}, (IЛ~b)Q
b. PI: Does (n>=0 Л p=1 Л k=0) p = 2k ?
Yes, since 1 = 20
{IЛb} S {I}: {p = 2kЛk≠n}
p := 2*p
{p = 2k+1Л k≠n }
k := k+1
{ p = 2(k-1)+1Л k-1≠n } p = 2k = I
(IЛ~b)Q: Does p = 2kЛ k=n p = 2n ?
Yes, clearly.
15. Myers defines testing as "the process of executing a program with the
intent of finding errors." His rationale is that since people are
naturally goal oriented, testers are likely to be more effective if
the goal of testing is seen as finding errors (as opposed to
demonstrating that there are no errors).
16. REPEAT
Select the next (initially, the first) Effect.
Tracing back through the graph (right to left), find all feasible
combinations of connected Cause values that result in the Effect
being True.
For each new such combination found:
Determine values of all other Effects, and
Enter values for each Cause and Effect in a new column of the
test case coverage matrix.
UNTIL each Effect has been selected.
17. a. 1, 2, 2, 8, 2
b. One can ONLY deduce that path coverage does not subsume compound
condition coverage (i.e.,path ≠> compound condition) from these
data.
18. a. Stubs take the place of lower-level elements that are not being
tested together with the higher-level elements that use (e.g.,
"call") them.
b. Yes. For example, if module A uses module B, UNIT TESTING A would
require a stub for B.
19. a. X<Y Л (Y-1)<Z Л (X=Y-1) Л (Y-1=Z-2) Y=X+1 ЛZ=Y+1
b. X=0, Y=1, Z=2 (for example)
20. When a system is installed in anenvironment (and is used), it tends
to change that environment (e.g., the way business is conducted).
This, in turn, tends to result in changes in the requirements of the
system itself.
21. As programs age, their structure tends to degrade (c.f. Lehman's law
of increasing complexity) and they (therefore) become harder to
understand and change.
22. Understandability: Is the process explicitly defined and easy to
understand?
Visibility: Do process activities culminate in clearresults and is
the progress being made visible externally?
Supportability:Can CASE tools be used to supportprocess activities?
Acceptability: Is the process acceptable to and usableby engineers
responsible for producing the product(as well as others…)?
Reliability: Can process errors be avoided or trapped before they
result in product errors?
Robustness: Can the process continue despiteunexpected problems?
Maintainability: Can the process evolveto reflect changing
organizational requirements or to makeprocess improvements?
Rapidity: How fast can the process be completed?
23. a. The SEI developed the influential 5-level Software Capability
Maturity Model (CMM) in the early ’90’s. This was followed by the
development of more specialized CMMs (e.g., the Systems Engineering
CMM, the People CMM, etc.), each of which had its own structure,
terms, and ways of measuring maturity.This caused confusion,
especially when using more than one model at a time, since they
weredifficult to integrate into a combined improvement program.
b. In response to these circumstances and issues, the Capability
Maturity Model Integration (CMMI) project was begun in 2001 to:
build an initial set of integrated models, improve best practices
from existing CMM models, establish a framework to enable
integration of future models, and create an associated set of
appraisal and training products.
c. The continuous modelaffords assessments ona process-area-by
process-area basis. They are based on a set of values showing an
organization's maturity for each process or process group as
opposed to the staged model's single value.
The principle advantage is that organizations can pick and choose
processes to improve according to their own needs and requirements.
This allows more discretion and flexibility.