30
January 20, 2016 Sam Siewert SE310 Analysis and Design of Software Systems Lecture 3 – Systems Requirements

SE310 Analysis and Design of Software Systemsmercury.pr.erau.edu/~siewerts/se310/documents/...Programming Object-Oriented Programming Data-Oriented Paradigm Data-Oriented Design Programming

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

  • January 20, 2016 Sam Siewert

    SE310Analysis and Design of Software

    Systems

    Lecture 3 – Systems Requirements

  • Learning ObjectiveSoftware Engineering Process? – Lifecycle Phases

    Agile – Manifesto that Hosts Spiral, XP, Scrum, Feature-Driven or any Iterative Process [Waterfall with Feedback]Requirements? Architecture? – First Phase is Research, Analysis and Specification Sam Siewert 2

    SPIRAL in Agile XP – ExtremeIn Agile

    WATERFALL

    feedback

  • Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved.

    2-3

    CH2 - Rational Unified Process (RUP)• Inception consists of the first 1-2 iterations. It

    produces a simplified use case model, a tentative architecture, and a project plan.

    • Elaboration consists of the next N iterations. It produces the architectural design and implements the most critical use cases.

    • Construction, during which remaining use cases are iteratively implemented and integrated into the system.

    • Transition, during which the system is deployed, users are trained, and defects are corrected.

  • Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved.

    2-4

    CH2 - Rational Unified Process (RUP)

  • Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved.

    2-5

    Agile Process Models

    phas

    es in

    an

    itera

    tion

    Iterations

  • Traditional SA/SD – Useful, But Not OOData Flow Diagrams – Data [Messages] Between Processes and is Transformed

    Entity Relationship Diagrams – Lacks Operations, but Defines Entities [Objects] and Relationships

    SE300

    State Machines [in Common, but Typically for Each Process in DFD]

    Flow-Charts – Detailed Procedural Design [Interaction, Logic]

    Sam Siewert 6

    Stores, Flows, Processes, External Entities

    http://en.wikipedia.org/wiki/Finite-state_machine

    http://en.wikipedia.org/wiki/Data_flow_diagram

    http://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model

    http://en.wikipedia.org/wiki/Flowchart

  • Domain Models with UML - CASEUML is Universal Modeling LanguageUse to Support Requirements Analysis

    Sam Siewert 7

    Start Here!

    https://www.modelio.org/

    http://argouml.tigris.org/

    Helpful Validation and Verification Features for Design

    • Integrated Models• Checklists – Completeness• CPP and Java Code Generation

    WARNING: ArgoUML has bugs, so use only to review Argo design examples

    USE Modelio as your DESIGN TOOL

  • Architecture and Design PatternsOO Has Goal of Design and Software Re-Use– Encapsulation of Data and Operations– Class Hierarchy and Object Instances– Well Understand Use Cases– Well Understand Interaction Between Objects

    Study 4 Key System Types1. Interactive – E.g. GUI, CLI2. Event Driven – E.g. Anit-lock Breaking System Software3. Transformational – E.g. Image Processing, Encode/Decode

    [MPEG Digital Video, RAID]4. Transaction Oriented – E.g. DBMS

    Sam Siewert 8

  • Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved.

    2-9

    Software Paradigm• A software paradigm is a style of software

    development that constitutes a way of viewing the reality.

    • Examples: – procedural paradigm– OO paradigm, and– data-oriented paradigm

  • Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved.

    2-10

    Three Paradigms in History• Procedural paradigm views the world and system as:

    – a network of processes– a process is refined by lower level processes– basic building blocks and starting point are processes

    • OO paradigm views the world and system as:– interrelated and interacting objects– basic building blocks are objects

    • Data-oriented paradigm views the world and system as:– interrelated data entities, processed by transactions– basic building blocks are data entities and relationships

  • Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved.

    2-11

    Structured Design

    Object-Oriented AnalysisStructured Analysis

    Object-Oriented Design

    Data-Oriented Analysis

    Procedural Paradigm OO Paradigm

    Structured Programming

    Object-Oriented Programming

    Data-Oriented Paradigm

    Data-Oriented Design

    Programming in

    4GL (e.g., SQL)

    Paradigm and Methodology

    ProcessOrders

    Books

    Customers

    orders

    invoices(w/books) credit status

    Customer

    Top Manager

    BE

    B E

    A

    CF

    Top Decider

    DG

    GC F D

    H

    Class - 1attrib 1attrib 2

    Class - 2attrib 1attrib 2

    Class - 3attrib x

    Domain model

    Student

    Student

    enroll

    sn

    sname

    cn

    cname

    Obj: class b : Bclass

    m1 ( ) m2 ( ) m3 ( )

    m4 ( )m5 ( )info

    m6 ( ) m7 ( ) m8 ( )

    m9 ( )m10 ( )Sequence diagram

  • Tool-Based ActivitiesBring Up Modelio and Start Entering ATM Design – Use Case and Class Diagram, Compare to UML Reference

    Versions of UML – 2.4.1 Current

    Minute Paper #2 – Do Design Tools Really Assist with Software Quality Assurance?

    Sam Siewert 12

  • Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved.

    2-13

    Methodology Overview – Planning Phase

    Deriving Use Cases from Requirements

    Allocating Use Cases &to Iterations

    Acquiring Requirements & Domain Modeling

    Business goals & needs Current situation

    Requirements

    Abstract & high level use cases, use case diagrams

    Use case-iteration allocation matrix

    Producing an Architecture Design

    Software architecture

  • Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved.

    2-14

    AccommodatingRequirements Change

    Methodology Overview – Iterative Phase

    Deriving Design Class Diagram

    Actor-System Interaction Modeling & UI Design

    Domain Modeling

    Behavioral Design

    TDD, Integration, & Deployment

    Iteration use cases

    Domain model

    Expanded use cases & UI design

    Behavior diagrams

    Design class diagram

    Domain model

    Use case-iteration allocation matrix Software architecture

  • Assignment #2 – Domain ModelsLearning Objectives – Value of UML for Requirements Analysis– Completeness– Design Walk-throughs– Validation [Are We Building the Right Thing?]– Verification [Are We Building it Right?]

    New Design, Client-Server [Cloud] Architectural Pattern

    Storage-as-a-Service– The Competition, E.g. Drop-Box, Amazon S3, Google Cloud

    Storage– The Concept – Archive for Unstructured Files (Photos,

    Documents, Bits…), Not Code, Not DBMS

    Sam Siewert 15

  • The Requirements – Capabilities Focus1. Store Any Number of Files (name space) Up to N

    Gbytes in an Archive, Browse on Web or Windows, Mac, Linux File Explorer

    2. Protect with RAID Against Single Erasure (Covered in CS317, SE420)

    3. Submit and Retrieve Any File by Name, Time and Date Archived (In Case of Duplicate Names)

    Sam Siewert 16

  • Assignment #2 GoalsConsistent and Complete UML Design Ready for Validation and Verification Walkthrough

    Ideally Capable of C++ or Java Class Code Generation

    We Will Walk-through Design for Assignment #3

    More In Depth Use of Modelio or ArgoUML

    Better Understanding of UML 2.4 – Use Case, Component, Class, Interaction Diagrams [2 From Behavior Side, 2 From Structure Side of UML]

    Sam Siewert 17

  • Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved.

    3-18

    Key Takeaway Points• System engineering is a multidisciplinary

    approach to systems development. • System engineering defines the system

    requirements and constraints, allocates the requirements to the hardware, software, and human subsystems, and integrates these subsystems to form the system.

    • Software engineering is a part of system engineering.

  • Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved.

    3-19

    System Architectural Design

    • Decomposing the system into a hierarchy of functional cohesive, loosely coupled subsystems, which partition the system requirements and facilitate reuse of COTS components.

    • System requirements are assigned to the subsystems.

    Decomposing the System

    Allocating System Requirements

    Visualizing System Architecture

    • The system architecture is depicted usinga certain diagramming technique.

  • Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved.

    3-20

    Requirements Allocation

  • Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved.

    3-21

    Architectural Design Diagrams• Block diagram• UML component diagram• SysML diagrams• Data flow diagram• and more ...

  • RAID Archive Systems - Multiple Disk Drives

    Disk Drives Fail – Like a Light-bulb– MTBF of 100’s of Thousands of Hours [3 to 5 Years at Duty

    Cycle]– Difficult to Determine When Failure Might Occur– The Larger the Population, the More Often Failures will be Seen

    Disk Drives Have Low Random Access [100 to 200 I/Osper Second]

    Idea – Write to them in Parallel and Mirror Data to Protect Against HDD Failures (Erasures)

    Sam Siewert 22

  • RAID-10

    Sam Siewert 23

    A1 A1 A2 A2 A3 A3A4 A4 A5 A5 A6 A6

    RAID-1 Mirror RAID-1 Mirror RAID-1 Mirror

    RAID-0 Striping Over RAID-1 Mirrors

    A7 A7 A8 A8 A9 A9A10 A10 A11 A11 A12 A12

    A1,A2,A3, … A12

  • RAID Operates on LBAs/Sectors (Sometimes Files)

    SAN/DAS RAIDNAS – Filesystem on top of RAIDRAID-10, RAID-50, RAID-60– Stripe Over Mirror Sets– Stripe Over RAID-5 XOR Parity Sets– Stripe Over RAID-6 Reed-Soloman or Double-Parity Encoded

    Sets

    EVEN/ODDRow Diagonal ParityMinimum Density Codes (Liberation)Reed-Solomon Codes

    Sam Siewert 24

  • RAID5,6 XOR Parity Encoding

    MDS Encoding, Can Achieve High Storage Efficiency with N+1: N/(N+1) and N+2: N/(N+2)

    Sam Siewert 25

    0.0%

    10.0%

    20.0%

    30.0%

    40.0%

    50.0%

    60.0%

    70.0%

    80.0%

    90.0%

    100.0%

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

    Stor

    age

    Effic

    ienc

    y

    Number of Data Devices for 1 XOR or 2 P,Q Encoded Devices

    RAID6

    RAID5

  • RAID-50

    Sam Siewert 26

    A1

    RAID-5 Set RAID-5 Set

    B1 C1 D1 P(ABCD)E1 F1 G1 H1P(EFGH)I1 J1 P(IJKL) K1 L1

    M1 P(MNOP) N1 P1O1P(QRST) Q1 R1 S1 T1

    A2 B2 C2 D2 P(ABCD)E2 F2 G2 H2P(EFGH)I2 J2 P(IJKL) K2 L2M2 P(MNOP) N2 P2O2

    P(QRST) Q2 R2 S2 T2

    RAID-0 Striping Over RAID-5 Sets

    A1,B1,C1,D1,A2,B2,C2,D2,E1,F1,G1,H1,…, Q2,R2,S2,T2

  • RAID is an Erasure Code

    RAID-1 is an MDS EC (James Plank, U. of Tennessee)

    Sam Siewert 27

  • Read, Modify Write Penalty

    Any Update that is Less than the Full RAID5 or RAID6 Set, Requires1. Read Old Data and Parity – 2 Reads2. Compute New Parity (From Old & New Data)3. Write New Parity and New Data – 2 Writes

    Only Way to Remove Penalty is a Write-Back Cache to Coalesce Updates and Perform Full-Set Writes Always

    Sam Siewert 28

    A1

    RAID-5 Set

    B1 C1 D1 P(ABCD)E1 F1 G1 H1P(EFGH)I1 J1 P(IJKL) K1 L1

    M1 P(MNOP) N1 P1O1P(QRST) Q1 R1 S1 T1

    Write A1 P(ABCD)new=A1new xor A1 xor P(ABCD)

    A1 B1 C1 D1 P(ABCD)0 0 0 0 00 0 0 1 10 0 1 0 10 0 1 1 00 1 0 0 10 1 0 1 00 1 1 0 0…

  • Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved.

    3-29

    UML Component Diagram

    air link

    instructionsHigh-Power Transceivers

    Controller Hardware

    Base Station

    Mobile Units

    Base Station Antenna Account

    ManagementController Software

    Mobile Hardware

    Mobile Software

    events

    events

    instructionscall data

    portLegend: component stereotype for introducing new modeling constructs

  • Copyright {c} 2014 by the McGraw-Hill Companies, Inc. All rights Reserved.

    3-30

    Data Flow Diagram with Material Flows

    Receiving Dock

    valid shipment

    slipVerify Shipment Content

    Purchasing

    1shipment

    slip Classify Publications

    Received

    Cataloging

    2

    Handle Documents

    Check-In/Out

    Circulation

    3new titles available

    Cataloging Room

    Book Shelves

    raw shipment publications publications w/call numbers

    Legend:

    material flow

    information flow

    Function

    Subsystem

    IDExternal

    EntityInternal Entity

    Publisher