next up previous contents
Next: Submission Up: Design Previous: Design

Description

  The text reminds us that design typically progresses from the informal and general to the formal and detailed, generally by a process involving cycles of analysis, proposal, review, and revision. The ultimate goal is to have a description of the system detailed enough so that individual programmers can take its parts and implement them independently without inconsistencies. The detail, however, should not be so extensive that the only work left to be done is a mere transcription into some programming language. This means that interface and data conventions must be clearly decided, and that functionality has to be understood. It does not mean that implementation has been written in stone.

Each system to be developed will have static aspects of design (subsystems, modules, etc.) and dynamic dynamic aspects of design (control flow, data management, etc.). In a top-down approach, each of these aspects will be structured according to some chosen models and principles. Static decomposition will produce subsystems, modules, data types. Dynamic decomposition will produce functional units, data flow, operations on types, data management. Object-oriented design may express the static and dynamic aspects together, with static detail given in terms of classes, hierarchies, and is-a/has-a relationships and dynamic detail expressed by methods and uses-a relationships. At the bottom level of design, attention will be paid to recognizing a consistent and complete infrastructure of data types and algorithms that can be reused, providing a common base of support for subsystems, modules, and functional units.

Design is considered good when cohesion is strong within a static entity (subsystem, module, hierarchy, class); that is, when data held in common is logically chosen, is streamlined, and is shared using effective, consistent functionality. Design is considered good when coupling is weak between static entities; that is, there are few interactions between them and these interactions exchange a minimum of data and information. Finally, striving toward smaller numbers of entities, smaller numbers of entity relationships, and more streamlined dynamic design is usually considered good.

The object of this assignment is to deliver the best design your team is capable of in the time allotted. The deliverable is the Design Plan document, consisting of text and illustrated by diagrams as necessary. Two aspects of this design will be looked at, the form and the content. The form will be judged by how presentable the document is, how well the document presents the design, and how well it indicates the reasoning behind choices made for static and dynamic structures. The content will be judged by how well the design itself appears to have been conceived, how well it compares with other designs delivered, and what prospects it appears to have of yielding a tight, efficient, adaptable, and maintainable system.


next up previous contents
Next: Submission Up: Design Previous: Design




Mon Sep 9 09:16:07 EDT 1996