15
February 18, 2019 Sam Siewert SE310 Analysis and Design of Software Lecture 7 REVIEW OOSE Chapters 1 to 11 & Notes

SE310 Analysis and Design of Software

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SE310 Analysis and Design of Software

February 18, 2019 Sam Siewert

SE310Analysis and Design of Software

Lecture 7 – REVIEWOOSE Chapters 1 to 11 & Notes

Page 2: SE310 Analysis and Design of Software

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

Page 3: SE310 Analysis and Design of Software

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

Page 4: SE310 Analysis and Design of Software

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

Page 5: SE310 Analysis and Design of Software

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

Page 6: SE310 Analysis and Design of Software

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

Page 7: SE310 Analysis and Design of Software

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

Page 8: SE310 Analysis and Design of Software

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

Page 9: SE310 Analysis and Design of Software

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

Page 10: SE310 Analysis and Design of Software

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

Page 11: SE310 Analysis and Design of Software

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

Page 12: SE310 Analysis and Design of Software

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

Page 13: SE310 Analysis and Design of Software

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

Page 14: SE310 Analysis and Design of Software

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

Page 15: SE310 Analysis and Design of Software

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