se310 analysis and design of software
TRANSCRIPT
February 18, 2019 Sam Siewert
SE310Analysis and Design of Software
Lecture 7 – REVIEWOOSE Chapters 1 to 11 & Notes
RemindersAssignment #2 Graded
Assignment #3 Grading Done on/before 3/1
Quiz #2 - 2/25-2/27, Review discussion on 2/28
Exam #1 - Tues, 3/5– 4 UML structural diagrams (class, object, package, deployment)– 4 UML behavioral diagrams (UC, OIM sequence, activity, state)– 5 SA/SD (block, ER, data-flow/control-flow, flowchart, state)– Design lifecycle– OOA/OOD/OOP lifecycle models (Waterfall, Incremental/Evolutionary -
RUP, Spiral, XP, Agile Scrum)– Architecture (high level design), Detailed design– UC and requirements (level -0)– OO Domain Model with CRC and OIM sequences (level-1)– Class refinement and OIM sequence with objects and modules [packages]
(level-2)– Class methods and messages with specification of activity diagrams, state
machines, prototype code (level-3)
Sam Siewert 2
OOA, OOD, OOP EvaluationWalk-throughs (a form of testing a design)1. Consistent (e.g. UC to requirements tracing, behavioral and
structural models)2. Complete (e.g. UC scope, Class CRC, requirements review,
domain model, 4 main structural, 4 main behavioral)3. Correct (e.g. UML notation, class code generation and compile,
OIM sequences, activity diagrams, prototype code)4. Unambiguous (e.g. requirements, UML notation, inheritance,
sequencing)5. Efficient (e.g. no UML or code pass-through, algorithms, data
structures) 6. Constraints met (e.g. timing, performance, cost, planning)
Inspections– Present OOA, OOD, OOP to Level-2 for PDR– Present OOA, OOD, OOP to Level-3 or greater for CDR
Sam Siewert 3
OOA, OOD, OOPOOA - Analysis of OO Applications and Systems– Review of Requirements– Review of Use Cases– Review of Design Models (level-1, level-2, level-3)– Correct/incorrect, Consistent/inconsistent,
Unambiguous/ambiguous, Complete/incomplete, Efficient/inefficient, In-Scope/out-of-scope (constraints)
– Analyze for quality or functional correctness
OOD - Design of OO Applications and Systems– More than one possible answer (Architecture, Detailed Design,
Algorithm)– Select best options to meet constraints (scope), efficiency and
which is shown to be correct, consistent, unambiguous, and complete
OOP - Code to implement PoC, prototype, or deliverable Sam Siewert 4
Domain Models – Use Case Details
Sam Siewert 5
Start Here! https://www.modelio.org/
OMG UML 2.5 Standard
Structural Diagrams• Start with Class Diagram and CRC• Then Object Diagram• Package and Deployment
Behavioral Diagrams• Start with Use Case Diagram• Interaction Sequence Diagram after
Class and Object Done• Add State Machine and Activity
Diagrams for concurrency and statefulness
Helpful Validation and Verification Features for Design
• Integrated Models• Checklists – Completeness• CPP and Java Code Generation
USE Modelio 3.7 SD as your DESIGN TOOL
UML is Universal Modeling Language [OMG, UML.org]Use to Support Requirements Analysis
UML Models You Should Know(Quick Reference)
Structural1. Class Diagram (and CRC method)2. Object Diagram (limited use - point in time instances of classes)3. Package Diagram (modules with strong cohesion, loose coupling,
units that can be tested, government CSU)4. Deployment Diagram hardware platform + app or system +
softwareBehavioral1. Use Cases (start here! - trace to requirements and vice versa)2. OIM Sequence Diagram (after CRC class diagram and Ucs, refine
Class Diagram and OIM sequences after domain model complete)3. Activity Diagram (flowchart with concurrency to detail execution
bars in OIM and implementation of methods)4. State Machines (anytime, any level, to show software state and
transitions)
Sam Siewert 6
Design V&V Strategies
Sam Siewert 7
Software Engineering: A Practitioner’s Approach, 8/e (McGraw-Hill, 2014)
copyright 2014 by Roger PressmanConsiderations for Software Test and Evaluation – NDIA Software Test Summit
Dr. Ernest Seglie, Science Advisor to the Director, Operational Test and Evaluation
Process phase descriptions can vary.
However, the concepts and theory aregenerally the same for a given model.
Progression from Specification, to Analysis to High-Level Design (Architecture and System) to Components in Subsystems, to Units or Modules of Code
OOSE Chapter 1&2
Chapter 1 – PQCT [Productivity, Quality, Cost, Time-to-Market]– SE Design and Development Process– SE vs. CS – Differences?
Chapter 2 – Process and Methods– Process (what to do when) vs. Methodology (how) [p. 37]– Waterfall, Prototyping– Evolutionary – Spiral– Rational Unified Process [4 phases – inception, elaboration,
construction, transition]– Agile strategy, principles [p. 35]– Scrum and XP [p. 41]
Sam Siewert 8
OOSE Chapter 3&4Chapter 3 - Software and Systems Engineering– Requirements Analysis (Decomposition)– Architecture Diagrams [e.g. Block]– OO vs. Structured [Class vs. ER/EER]
Chapter 4 – Software Requirements– Challenges – Customer almost never provides– Types [p. 86]
Capability [Notes], High LevelPerformanceQuality (availability, reliability, recoverability)Safety (fail safe)SecurityInterfaces
– Requirements Walkthrough and InspectionValidation - Completeness, consistency, correctnessVerification – Use case analysis and tracing
Sam Siewert 9
OOSE Chapter 5
Domain Modeling– CRC [Class-Responsibility-Collaboration] Cards– Use Cases [review examples and model elements]– Class Diagram
AggregrationHierarchy & InheritenceAssociation
– OIM Sequence Diagrams– Refinement of Class Diagram
Domain Model checklist
Modelio and UML 2.x Sam Siewert 10
OOSE Chapter 6&7Chapter 6 - Architecture– Focus on Modules (Classes) and Interfaces– OIM Sequence diagrams– Class diagram refinement– Components (CSU), Subsystems (CSCI), Systems– 4 Major Architectural Patterns [Interactive, Event, Transformational,
Transaction]– N-tier architecture [recall from CS317]– Goals– Practicing Agile
Chapter 7 - Use Cases and Requirements– Identifying– Tracing – p. 184 in Kung– Use Case diagram elements– Practicing Agile
Sam Siewert 11
OOSE Chapter 8&9
Chapter 8 - Actor / System Interaction Models– Including Actors in OIM– User Interface Prototypes– GUI and HCI
Chapter 9 – Object Interaction Models– Sequence diagram elements and use [pp. 219-221]– Steps in OIM [p. 225]– OIM Checklist [p. 245]
Sam Siewert 12
OOSE Chapter 10
Design Patterns– Gang of Four (GoF)– Patterns – Work, Reuse– Anti-patterns – Don’t Work, Avoid– Singleton– Controller – Creator
Reuse at Code Level
Reuse at Design Level
Sam Siewert 13
OOSE Chapter 11
DCD – Design Class Diagram– Identifying Class Diagram Details from OIM Sequence diagram– Methods and parameters– Object model (instantiation tests, constructor, destructor)– Refining attributes– DCD Checklist [p. 288]
Package Diagram– Strong Cohesion– Loose Coupling– Directory and file structure
Practicing Agile Sam Siewert 14
Take AwayChoose Strategy & Process appropriate for organization
– E.g. Agile strategy– Spiral or XP process with Agile
Methodology – How to implement process– Structured Analysis and Design– OO Analysis and Design– Feature Driven [p. 43]
Domain Modeling with UML 2.x– Analysis with Models (UC, Class, OIM sequence, Object, Package)– Design with Models (fill in details through analysis and review)
Requirements and Use Cases– Level-0 for SE310
Architecture - Interfaces and Modules (Classes and OIM sequences)– Level-1 for SE310
DCD – Design Class Diagram (Refined Domain model)– Level-2 for SE310
Sam Siewert 15