ICS 52 - Introduction to Software Engineering
Spring, 1999

Midterm Exam

  1. (6 points each, 36 points total) Define each of the following terms, as used in software engineering.
    1. Module

    2. Adaptive Maintenance

    3. Acceptance Test Plan

    4. External (describing a software quality)

    5. The USES relationship

    6. Module Interface ( not Java's interface construct)

  2. (10 points) Consider this statement: ``Reliability is a byproduct of a disciplined approach to design.'' (on p. 145)

    Do you agree or disagree with this statement? State the case for or against your position. Your argument should include a definition of ``reliability'' as it pertains to software engineering, and a definition of or example of ``disciplined'' design.

  3. (10 points) Name and define two software process models other than the waterfall model and the spiral model.

  4. (10 points) ``Information systems'' such as SubHub manage the storage and retrieval of data by maintaining a database to which transactions are applied to create, retrieve, updated, or delete items. Information systems are data oriented and can be characterized on the basis of the way they treat data. (p. 36) Although generic and general software qualities such as correctness, maintainability, reliability, and user friendliness certainly pertain to information systems, these systems can also be evaluated by considering more specific qualities, which might not apply to all software systems.

    Identify and define two software qualities which are particularly suitable to information systems and which do not apply to all software systems.

  5. (16 points) Give an operational specification for the justify function in a word processor:

    Give a descriptive specification for the justify function.

  6. (3 points) Why would a class in Java contain a field designated as private (choose one)?
    1. So that it can be accessed by inherited classes.
    2. So that it retains its value for the life of the program.
    3. To make the program more efficient.
    4. To ensure high cohesion.
    5. To promote information hiding.

  7. (3 points) Which of the following was presented as the major objection to design by stepwise refinement?
    1. It does not focus on maintainability and reliability.
    2. It is not an iterative process.
    3. It uses a divide and conquer approach.
    4. It results in larger amounts of source code.
    5. It forces consideration of too many design options.

  8. (3 points) Which of the following is not true of integration testing?
    1. It determines whether modules make compatible assumptions about each other.
    2. It should be performed after acceptance testing.
    3. It can be done in a top-down or bottom-up fashion.
    4. It can take advantage of the USES diagram.
    5. It can be started before all modules are fully coded.

  9. (3 points) In Object Oriented design, there is a single type of module, which is (choose one)
    1. the interface.
    2. the sub-type module.
    3. the extends module.
    4. the ADT module.
    5. the USES module.

  10. (3 points) Which of the following is not one of Boehm's Top 10 software risk items?
    1. Personnel shortfalls.
    2. Failure of information hiding.
    3. Shortfalls in externally furnished components.
    4. Developing the wrong user interface.
    5. Gold plating.

  11. (3 points) Which of the following activities could be associated with the upper right hand quadrant of the spiral model? (Choose one)
    1. Acceptance testing.
    2. Determing objectives.
    3. Developing software requirements.
    4. Prototyping and resolving risks.
    5. Software product design.