Engr 691-06: Special Topics in Engineering Science
(Software Families)
Fall 2011
Assignment #1, Due Thursday, 22 September, 11:59 p.m.


You may do this assignment as an individual or in groups of two students. If in groups of two, the members of the group must not have the same nationality.

Carry out the following analysis and design exercises using the design specification approach described in "A Procedure for Designing Abstract Interfaces for Device Interface Modules" (which builds on the earlier work on information hiding).

Computerized telephone book. DESIGN the abstract interface for a "module" that provides a computerized telephone book (in particular the "white pages") both in terms of its creation/update and access by users. You are not asked to design a user interface for the program, but you are to design a programmatic interface that might be called by a user interface program or by some other program.

  1. Following the Parnas approach, give a "complete" set of assumptions that are required to be true for all implementations of the phone book "module". This set should be strong enough to characterize what it means to be a phone book, but weak enough to enable a range of solutions.

  2. Again following the Parnas approach and using some concrete object-oriented programming language such as Java, C++, Scala, C#, Ruby, or Python, specify the programmatic interface to the phone book "module". Use appropriate auxiliary abstractions in the argument lists and define those as well.

  3. What are the secrets of the "module" and the various other abstractions you express above?

  4. Suggest at least two significantly different implementations of the phone books "module" that are compatible with the interface you design.

By the due date,, submit an electronic copy of your design doecument using the course's Blackboard site. Also turn in a paper copy to Dr. Cunningham.


UP to ENGR 692 assignments document?


Copyright © 2011, H. Conrad Cunningham
Last modified: Wed 8 Sep 2011