Comp 375 Software Engineering Study guide 10/23/97 Dordal Material covered: Chapter 1: The most important sections are 1.2.1, maybe 1.2.3, and 1.4. Chapter 2: 2.1.2: general overview 2.2: SEI models. You should have at least some idea what this means. 2.4: Waterfall model. The benchmark. Know it and its limitations 2.5: Evolutionary model. THe principle alternative. 2.6: RAD model: At least know in what context it is typically applied. 2.7: In class I lumped all these together as "evolutionary models". 2.8-2.11 can be skipped Chapter 10: You should know the general ideas in section 10.6. Chapters 11-12: Requirements Analysis 11.2: general guidelines for understanding customers. 11.3: basic ideas of modeling and partitioning. 11.5: specification; a specification template Example: specification for a calculator (done in class) behavioral/functional/dataflow models Chapter 12 has much more detail. 12.2: The traditional analysis model. A triad. 12.3: Fundamentals of data modeling; the Entity-Relationship Diagram (ERD) 12.4: Data flow diagrams. 12.4.1 is important; skim 12.4.3 and omit 12.4.4 12.5: Behavioral modeling; generating state diagrams 12.6: Detailed EXAMPLE of ERD, DFD, and state diagrams for SafeHome. Important! 12.7: Contents of the data dictionary. 12.8: omit Chapters 19-21: OOA/OOD 19.2: OOP basics; you know this stuff. 19.3: Identifying objects in the problem domain. Start of OOA. 19.4: Do not read this. 20.1: More OOA; much more general than 19.3. Booch method summarized on page 584; we just did first 2 bullets. 20.2: Domain Analysis: finding object candidates in a more general setting 20.4.1: use cases 20.4.2: CRC modeling 20.4.3: IS-A and HAS-A (and USES) class relationships 20.6: We didn't do this in Pressman, but it is essentially Object Diagrams 20.7: Very important section that speaks for itself! 8-) [*] Booch method and the Object Domain Systems tutorial: We looked at drawing: 1. Class diagrams, which is really part of analyzing what objects may/will be needed. Also class relationships 2. Object diagrams, with message annotations. These are derived from use cases. Alternative format: Interaction diagrams. Chapters 13-14: Traditional Design 13.1: design pyramid; 4 layers 13.2,13.3: design principles 13.4: abstraction, refinement, modularity All these are SE basics; architecture: know what this *means*. hierarchy: as opposed to the OO way of doing things data structures: Comp 271 information hiding: OO took this idea and ran with it 13.5: modular design. The cohesion/coupling issues should sound like OOD. 13.8: A design template Chapter 14 will not appear on the midterm _per se_, although parts of user interface design and data design have been discussed in the context of winfig. 14.1: data design 14.2-7: architecture design, the old way 14.8-10: interface design 14.11: procedure design. Flowcharts & pseudocode Sample problems: (not very complete yet) 1. Discuss stages in the waterfall model. (2.4) 2. Build an ERD for ________ (12.3) 3. Build (or refine) a dataflow diagram for ________ (12.4) 4. Build a state diagram for ________ (12.5) 5. Propose a document format for Data Dictionary entries (12.7) 6. Given a problem description, propose some objects. (19.3) 7. Given a general problem domain, identify objects likely to be encountered repeatedly. (20.3) 8. Give some use cases for ________ (20.4.1) 9. Generate class diagrams for _________; supply relationships (Booch) 10. Generate object diagrams from some use cases. (Booch) 11. Compare a traditional architecture with an OO architecture. 12. Criticize a given partition into modules. [*] In my copy of the textbook, section 20.6 is immediately followed by 20.8.