- (5 points each, 30 points total)
Define each of the following terms, as used in software
engineering.
- Information Hiding
- Interoperability
- Feasibility Study
- Internal (describing a software quality)
- The IS_COMPONENT_OF relationship
- Module Interface (not Java's interface construct)
- (12 points)
The book says ``Delivering on time a product that is lacking
in other qualities, such as reliability or performance, is
pointless.'' (See p. 33)
Do you agree? Write a brief argument supporting your point
of view.
What are the implications of the point of view you expressed
above on selecting and following a software process model?
- (14 points)
Consider a small software development effort,
a medium effort, a large
effort, and an immense effort.
For each effort, select a (different) software process
model which was described in the book or in class,
briefly describe the model, and explain why it is
appropriate for this size development effort.
- Small (1 developer, 2 person-days).
- Medium (1 developer, 2 person-months)
- Large (6 developers, 72 person-months)
- Immense (20 developers, 480 person-months)
- (12 points)
The book mentions Parnas' motto ``design for change.''
Select two software engineering qualities that would be
positively affected by successfully designing for
change, and explain the relationship between each
quality and ``design for change.''
Name a software quality on which ``design for change''
would have relatively little impact, and explain why.
- (12 points)
Write, using Engligh prose,
a brief descriptive specification for the functionality
of a washing machine.
Write, using English prose,
an brief operational specification for a washing machine's function.
- (3 points) Which of the following Java language elements
might correspond to the software engineering notion of
a ``module''? (Choose one.)
- A class.
- A method.
- A package.
- A public static final variable.
- All of the above.
- (3 points) Traditionally, the only phase of software development
where a formal approach is used is (choose one)
- Requirements.
- Programming.
- Design.
- Planning.
- Testing.
- (3 points) When a module M is decomposed into other
modules, we say they are used to (choose one)
- Design M.
- Inherit from M.
- Implement M.
- Abstract M.
- Import M.
- (4 points) Which of the following are not
approaches to evaluating system performance?
(Choose two.)
- Abstraction.
- Measurement.
- Analysis.
- Prototyping.
- Simulation.
- (4 points) The primary sources of change in software are
(choose two)
- Shortfalls in externally furnished components.
- Adaptive maintenance.
- Perfective maintenance.
- Corrective maintenance.
- The spiral model.
- (3 points) Which of the following activities
could be associated with the lower right
hand quadrant of the spiral model?
(Choose one [except I made a mistake and there are
two correct answers].)
- Prototyping and resolving risks.
- Determining objectives.
- Acceptance testing.
- Evaluating alternatives.
- Developing software requirements.