10.1 What Is Detailed Design?


You're just about at the point where you can actually run code on that pile of wires and chips cluttering up your Geekosphere,[1] so if you're like me, you're getting pretty excited. If architectural design is deciding which planet to fly to and mechanistic design is the flight path to the selected planet, then detailed design is deciding on which rock you want to eat your "tube of salami" sandwich once you arrive.[2] It is the smallest level of decomposition before you start pounding code.

[1] Geekosphere (n): the area surrounding one's computer ("Jargon Watch," Hardwired, 1997)

[2] My personal choice would be the Yogi rock on Mars (see http://www.jpl.nasa.gov, a public mirror site for the Mars Pathfinder mission).

The fundamental unit of decomposition in object-oriented systems is the object. As we have seen, the object is a natural unit from which systems can be specified and implemented. We have also seen that it is necessary but insufficient for large-scale design. Mechanistic design deals with mechanisms (groups of collaborating objects) and architectural design is concerned with an even larger scale domains, tasks, and subsystems. At the root of it all remains the object itself, the atom from which the complex chemistry of systems is built.

Although most objects are structurally and behaviorally simple, this is certainly not universal. Every nontrivial system contains a significant proportional of "interesting" objects that require further examination and specification. The detailed design of these objects allows the objects to be correctly implemented, of course, but also permits designers to make tradeoff decisions to optimize the system.

One definition of an object is "data tightly bound to its operations forming a cohesive entity." Detailed design must consider both the structure of information and its manipulation. In general, the decisions made in detailed design will be these:

  • Data structure

  • Class refactoring

  • Implementation of associations

  • Set of operations defined on the data

  • Visibility of data and operations

  • Algorithms used to implement those operations

  • Exceptions handled and thrown



Real Time UML. Advances in The UML for Real-Time Systems
Real Time UML: Advances in the UML for Real-Time Systems (3rd Edition)
ISBN: 0321160762
EAN: 2147483647
Year: 2003
Pages: 127

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net