Software Tools and Methods

University of California, Irvine

ICS 121, Spring 1999

Tentative - April 13, 1999

Midterm Exam Review

General Format and Scope

1. Format. The exam will consist of short answer questions and two or three problem-solving, short essay questions.

2. Scope. The exam will focus on the lecture notes and in-class discussion. This is backed-up by your readings in Schach and by the first two assignments and Homework 1.

NOTE: this review sheet is not a substitute for looking at the notes!

Specific Materials Covered

1. Lecture Notes, including articles, through Topic 5 and parts of Topic 6.

2. Assignments One and Two, Homework 1.

3. Schach. Chapters One, Two, Three, Five, Nine.

Some Definitions

Software Engineering Principles

Rigor and Formality Well-defined, precisely-stated, sound steps, which may be written out in a mathematical notation.

Separation of Concerns Individual aspects are identified, especially to divide responsibility.

Modularity Decomposition of a problem into individual components.

Abstraction How important aspects of a problem are identified and details are ignored.

Anticipation of Change Assumption that some modification must be planned for.

Generality Identification of more than the immediate problem.

Incrementality Plan for delivering subsets of a software system.

Software Process Qualities

Productivity performance of the development process

Timeliness ability to deliver software on time

Visibility all steps and current status are documented clearly and can be easily accessed

Software Qualities

Correctness the software behaves according to requirements

Reliability users feel they can depend on the software

Robustness the software behaves ÒreasonablyÓ even in unanticipated circumstances

Performance the software uses available resources economically

Usability the software is well suited to the circumstances of the end users

Understandability the software can by easily analyzed by people who didnÕt write it

Verifiability the satisfaction of particular properties of the software can be easily determined

Maintainability the software is easy to change to fix faults or add new functionality

Reparability faults in the software can be corrected with minimal effort

Evolvability new functionality can be added easily

Reusability the software can serve as part of a new system

Portability the software can run in new environments with little or no effort.

Interoperability the software can coexist and cooperate with other systems

Example Short Answer Questions

1. What is software engineering?

2. What is the goal of software engineering?

3. Name four phases of the software production lifecycle.

4. In general, which phase or activity in the software lifecycle requires the greatest cost and effort?

5. What is the difference between a client and a user in software development.

6. In BrooksÕ article, ÒNo Silver Bullet,Ó what is meant by ÒessenceÓ?

7. A client provides you, the software developer, with a vague problem statement. What do you do first?

8. Your client has trouble understanding what type of software system solution you propose to meet his or her problem. What might you try to facilitate communication?

9. ÒUnitÓ or ÒmoduleÓ testing refers to the verification of individual modules in specification or implementation. What type of testing refers to the verification of combinations of modules?

10. For interactive software used at an information booth in a shopping mall, which software quality would be the most important?

11. Name four attributes specified for a module in a REBUS design document.

Example Essay Questions

1. Read the following excerpt from an article about a blood bank software fiasco. Assuming you have a chance as a software developer to redo the project, how would you proceed?

EXCERPT: Computer software used by more than 200 hospital blood banks nationwide has been quietly recalled after the U.S. Food and Drug Administration (FDA) discovered programming defects that could have allowed the accidental release of contaminated blood. The rare action came three years after FDA officials first cited Western Star for problems with blood bank software. Over that period in a series of regulatory inquiries, the FDA has alleged that Western Star: a) Failed to adequately test software before distribution to its 219 clients; b) Failed to specify to its customers that problems with older versions of the software required that it be replaced with newer versions; c) shipped ÒcorrectedÓ software with uncorrected defects that had already been identified, or with new programming errors.

(Hint: think about software process (production and lifecycle models), think about software qualities that should have been emphasized, think about verification and validation).

2. Why should so much emphasis be placed on written, intermediate products at each phase or activity of the software production lifecycle?

(Hint: think about management of software, think about participants in specification review process).


ICS121 SQ99
David F. Redmiles ­ Home Page
Department of Information and Computer Science
University of California, Irvine CA 92717-3425