Software Engineering Design (Reference: Classical and Object-Oriented Software Engineering,4th ed., Schach.)
Overview of Design At last! How the product does it! Architectural design (a.k.a.., general design, logical design, high-level design, system design) Detailed design (a. k. a., low-level design, modular design, physical design)
Design Approaches “Traditional” Structured Design Methods Action-oriented Data-oriented Both produce structure chart Shows calling relationships among modules Can show control and data couples Object-Oriented Design
Action-Oriented Design - 1 Architectural Design Uses DFD as beginning point Produces structure chart Shows calling relationship among modules Can show control and data couples
Action-Oriented Design - 2 Transform Analysis Find “point of highest abstraction of input” Find point in DFD where input clearly changes to internal data that is acted upon. Find “point of highest abstraction of output” Find point in DFD where internal data clearly changes to output.
Action-Oriented Design - 3 Transform Analysis Map the DFD processes into a structure such that the transforming process(es) call the process(es) that provide input and deal with output. As necessary, add new modules. Improve cohesion and coupling. See example in text.
Action-Oriented Design - 4 Transaction Analysis Superimpose a control module over an analyzer and a dispatcher. Analyzer - receives input. Dispatcher - according to transaction type, calls appropriate code. Note that reuse may be apropos.
Action-Oriented Design - 5 Detailed Design Data structures designed. A whole other course or two. Algorithms generated. Process logic must be documented in some form: DLT, flowchart, decision table, other Pseudocode, Program Description Language (PDL) Narrative
Data-Oriented Design An also-ran . . . Let the structure of the data dictate the product design. Michael Jackson, Warnier and Orr, et al.
Object-Oriented Design (OOD) Partly done during Object-Oriented Analysis (OOA). Product is designed in terms of objects. Design is iterative. More details later. . .
Design Testing Traceability: Are the specifications completely and accurately reflected in the design? Logic faults? Interfaces correctly defined? Inspection!
Design Metrics McCabe’s cyclomatic complexity metric Number of decisions plus 1 Ignores data complexity Widely used, nevertheless. Kafura and Henry’s information flow metric length X (fan-in X fan-out)2 Other
Summary Structured vs. OOD Structured: Design testing, design metrics. Architectural design Action-oriented vs. Data-oriented Action-oriented: Transform analysis Transaction analysis Detailed design Design testing, design metrics.