350 likes | 460 Views
CS 509 Design of Software Systems. Lecture #7 Monday, March 8, 2004. Class Format for Today. Brief discussion of CS562 Term Project Administration Questions Quiz #4 Review of Chapters 9 & 13 (Budgen) In-class Exercise: Review Analysis of HIS. CS562 – The Next Course.
E N D
CS 509Design of Software Systems Lecture #7 Monday, March 8, 2004 CS 509 - WPI
Class Format for Today • Brief discussion of CS562 • Term Project Administration • Questions • Quiz #4 • Review of Chapters 9 & 13 (Budgen) • In-class Exercise: • Review Analysis of HIS CS 509 - WPI
CS562 – The Next Course • Tuesday afternoons, 3 – 7pm • To begin on April 13, end on June 15 • Topics TBD – suggestions? CS 509 - WPI
Term Project Administration • Return Phase 3 – CIS Design (and journals) • Phase 4 – HIS Analysis (and journals) due • Hold on to your documents for now • We will discuss later today • Turn in at the end of class • Phase 5 assignment posted to the web • Similar to Phase 3 assignment, based on UML • Feel free to incorporate topics from Budgen CS 509 - WPI
Questions? • About what was covered last time • From the reading • About the Term Project • Anything else? CS 509 - WPI
Quiz #4 Chapters 10, 9*, 13* You have 15 minutes *from Budgen CS 509 - WPI
Chapter 9 Design Processes and Design Strategies CS 509 - WPI
Terminology • DVM • DFD • ERD • STD CS 509 - WPI
Structure of Design • A software design method can be described in terms of the following components: • Representation • Process • Set of heuristics • Examples of these components? • See diagrams on pages 194, 195 CS 509 - WPI
Form of Process • Process steps can be categorized into 2 forms • Transformation Step • Elaboration Step • What do they mean / how do they differ? • What does viewpoint have to do with them? • See diagram on page 197 • How are they related in the design process? CS 509 - WPI
Potts Process Model • Entity (box) types: • Artifact, Issue, Argument, Step, Position • Relationship (arc) types: • Modify, Raise, Review, Respond, Support, Object to, Cite, Contribute • What does the model describe? What does it mean? • See figures on page 198 CS 509 - WPI
Design Strategies • Decompositional methods • Compositional methods • Organizational methods • Template-based methods • What are these? How do they differ? • See bullet list on page 199 CS 509 - WPI
The D-Matrix • Description and purpose: • Viewpoint-centered notation models the procedural steps of a method • Abstract description of the state of the design model at any point in its evolution • What are the design elements in the D-Matrix? • What are the sub-scripts and super-scripts? • b, f, d, c • 1, 2, 3, … n CS 509 - WPI
Describing Transformations • How the D-Matrix notation is deployed: • What does the null symbol () mean? • Review diagram on top of page 203 • What process does it describe? • What are the elements? • What does it mean? • Review diagrams on page 204 • Describe D-matrices, what are E3 and T4? CS 509 - WPI
Top-down Decomposition • Also known as ‘stepwise refinement’, or ‘divide & conquer’ • Describe this approach • Where does it come from? • What are its strengths and weaknesses? • What does it focus on? • What does it ignore? • How are solutions (fig. 9.7, p. 205) derived? CS 509 - WPI
Design by Composition • Describe this approach • How does it differ from decomposition? • What are its strengths and weaknesses? • What does it focus on? • What does it ignore? • Review bullet list on page 209 CS 509 - WPI
Organizational Influences • Example of the British Civil Service • What is the career of a civil servant like? • How do job transitions impact SW design? • Use ‘standard’ methods for analysis & design • How does this help? (See bullets on p. 210) • Are there any drawbacks? CS 509 - WPI
Chapter 13 Structured Systems Analysis and Structured Design CS 509 - WPI
Background • Original development by Constantine and Yourdon, furthered by De Marco • What distinguishes the terms SSA/SD from ‘structured analysis and design’? • What distinguishes SSA from SD? • Are these approaches compositional or decompositional? • How does ‘call-and-return’ differ from more object-oriented architectural forms? CS 509 - WPI
Background, Continued • If not very OO, what use is it? • Assumed problem domain: Data Processing • Single sequential process • Is this a restriction imposed by the method? • How widely applicable is the method? • What are some other common problem domains? CS 509 - WPI
Interlude from Chapter 7 • Representation Forms: • Data Flow Diagram • Review figure 7.2, page 132 • Repeated (without description) on page 260 • Entity-Relationship Notation • Review figure 7.7, page 137 • Structure Chart • Review figure 7.27, page 159 • Another example on page 262 CS 509 - WPI
Data Flow Diagrams • Problem-oriented, functional viewpoint, doesn’t involve ‘hierarchy’ • What does this mean? • Often accompanied by P-Specs • What does it describe? What data is included? • See example on page 260 • Also accompanied by a Data Dictionary • What is this? Example on page 261 • Complementary with ERD’s – How so? CS 509 - WPI
Structure Charts • Program-oriented description • Call-and-return style • Provides run-time invocation hierarchy • See example on page 262 • May also be accompanied by: • Pseudocode, decision trees or tables, ERDs • STDs, CFDs, DFDs, etc. CS 509 - WPI
SSA/SD Process • Start with top-level description of problem • In terms of operations performed by system • Then apply a series of transformations: • A plan for a program • Description of subprograms • Details of interactions among subprograms • Review list of 5 steps on page 263 and transformation diagram on page 264 CS 509 - WPI
Context Diagrams & Beyond • Highest level diagram describing system • Single bubble, only data flows are external • See fig. 13.6, page 265 • 2 common strategies for remaining levels • Top-down functional decomposition • Event partitioning • What’s the difference? CS 509 - WPI
Types of DFDs • Physical • Logical • What is the purpose of each? • How do they differ? • What are DFDs good/bad at capturing? • Recommendations for producing DFDs: • Review bullet list, pages 266 – 267 • Benefits of paper-and-pencil over CASE tools? CS 509 - WPI
Transaction Analysis • Concerned with architectural design choices • Separate components into network of cooperating subsystems • Identify Transactions in the system: • How? What is a transaction? • Review bullet list on page 267 • Results of this step feed into next • See fig. 13.7, page 268 CS 509 - WPI
Transformation Analysis • What is the purpose of this step? • How is it done? • Balloon analogy • See fig. 13.9, page 270 • The flow of arrows on the arcs change direction when this transformation is made • What is meant by this statement? CS 509 - WPI
From DFD to Structure Chart • How do diagrams differ? • DFD is non-sequential, describes structure of problem • SC describes solution, hierarchy of program units • Both describe system in terms of operations and flow of information • What is extra ‘central transformation’ described in book? CS 509 - WPI
Completing the Design • The last step: • Bring together SCs produced for different transactions • Resolve overlaps or mismatches • May be simple: • Add top-level module to select among transactions • Reduce duplication – reuse operations CS 509 - WPI
Summary of Design Process • Review D-Matrix diagrams for steps 1 – 5 • Pages 271 – 273 • What is involved at each step? • Design elements • Transformations CS 509 - WPI
Heuristics in SSA/SD • Related to the design process, or form of solution? Why? • Some heuristics include • Central transform • Leveling • Factoring • Coupling and cohesion CS 509 - WPI
Additions to SSA/SD • More material on SSA/SD can be found in addition to what is described in the chapter: • Variations • Extensions • Developments • What are these about? • See bullet list on page 275 CS 509 - WPI
In-class Exercise • Review analysis of HIS • Class discussion: how did phase 4 go? • How far did you get in the analysis? • Teams give mini presentations • Discuss any significant differences • Don’t forget to turn in Analysis at the end CS 509 - WPI
For Next Time Read Chapters 14 & 15 in Budgen CS 509 - WPI