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.
- 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.
- 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.
- What are the secrets of the "module" and the various other
abstractions you express above?
- 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