ICS 52 - Introduction to Software Engineering
Fall, 1998
Midterm Exam
- Define each of the following terms, as used in software
engineering.
- Module
- Program Family
- High Cohesion
- Visibility (the software quality)
- Operational Specification
- Yo-yo Design
- (12 points)
There are some similarities and differences between a
class in Java and the Software Engineering concept
of an Abstract Data Type (ADT).
- (6 points) Identify two similarities
between Java classes and ADTs.
- (6 points)
Identify two ways in which a valid Java
class might not be a true ADT.
- (10 points)
Requirements specifications can be used for different
purposes. Describe two purposes.
- (6 points)
Name and define three types of software maintenance.
- (14 points)
Select two software qualities discussed in
chapter 2 of the textbook or
in lecture, and define them briefly.
Describe a scenario in which the two qualities
are in conflict -- that is, when achieving one quality is
at the expense of the other. Carefully
describe the source of the conflict.
- (4 points)
Draw a line from each process model in the left column to
the correct corresponding characterization in the right column.
| spiral model | risk driven
|
| transformation-based | specification driven
|
| waterfall | document driven
|
| evolutionary | increment driven
|
- (3 points) Which software quality
may be viewed as ``low-grain evolvability, i.e., evolvability
at the component level''? (Choose one.)
- reusability
- cohesion
- correctness
- reliability
- portability
- (3 points) When a module M is decomposed into other modules,
we say that these are used to (choose one)
- interface M.
- abstract M.
- implement M.
- design M.
- export M.
- (3 points) In the spiral model, the upper right or northeast
quadrant represents what activity in the software process?
(Choose one.)
- Planning.
- Designing the product.
- Determining objectives.
- Developing.
- Evaluating alternatives.
- (3 points) A good design should have a USES graph with
(choose one)
- levels of abstraction.
- low fan-out and high fan-in.
- high fan-out and low fan-in.
- transitive closure.
- an abstract (virtual) machine.
- (3 points) The characteristic that perhaps sets software
apart from other engineering products the most is that
software is
(choose one)
- fragile.
- decomposable.
- robust.
- malleable.
- expensive.
- (3 points) Which of the following adjectives does not
describe the waterfall model, according to the textbook?
(Choose one.)
- Rigid.
- Monolithic.
- Linear.
- Cyclic.
- Ideal.