Computer Software Design -1.2.pptx

download Computer Software Design -1.2.pptx

of 24

Transcript of Computer Software Design -1.2.pptx

  • 7/30/2019 Computer Software Design -1.2.pptx

    1/24

    Designing Computer

    Software Applications

  • 7/30/2019 Computer Software Design -1.2.pptx

    2/24

    Outline

    The Nature of Software

    The Role of Design

    Design Process

    Software Development Models

    The Waterfall Model Advantages & Disadvantages

    The Spiral Model Advantages & Disadvantages

    The Rapid Prototyping Model Advantages &

    Disadvantages

    Software Development Lifecycle

    Objectives of a Design Document

    Example

  • 7/30/2019 Computer Software Design -1.2.pptx

    3/24

    The Nature of Software

    Software lies at the nerve centre of most engineered artifacts and business

    processes, i.e. from consumer electronics to financial modelling, and from

    automotives to medical applications

    A single defect in millions of lines of code can result in a system failure (safety

    critical systems are and exception)

    Typically 50% of project costs are allocated to software design, of which 50%

    are spent on testing

    Software is among the most complex of engineered artifacts

  • 7/30/2019 Computer Software Design -1.2.pptx

    4/24

    The Role of Design

    Requirements Design Models Code

  • 7/30/2019 Computer Software Design -1.2.pptx

    5/24

    Design Process

    Architectural design: deciding on the subsystems and their

    relationships

    Subsystem design: provide an abstract specification for each

    subsystem

    Component design: decomposition of subsystems into components

    Interface design: define the interface for each subsystem

    Data structure design: data structuring decisions

    Algorithm design: algorithmic decisions

  • 7/30/2019 Computer Software Design -1.2.pptx

    6/24

    Software Development Models

    The 3 key Software Development Models are:

    Waterfall Model Involves Sequential process of analysis,design, implementation, testing, and deployment

    Spiral Model Breaks down process steps into multiplephases; early phases involve construction of prototypes

    Rapid Prototyping Model Customer OrientedDevelopment; Emphasizes Requirements, Analysis andValidation

  • 7/30/2019 Computer Software Design -1.2.pptx

    7/24

    The Waterfall Model

  • 7/30/2019 Computer Software Design -1.2.pptx

    8/24

    Advantages

    Easy to understand and implement

    Widely used and known (in theory!)

    Reinforces good habits: define-before- design,

    design-before-code

    Identifies deliverables and milestones

    Document driven, URD, SRD, etc. Published

    documentation standards, e.g. PSS-05.

  • 7/30/2019 Computer Software Design -1.2.pptx

    9/24

    Disadvantages

    Unrealistic to expect accurate requirements so earlyin project

    Software is delivered late in project, delays discoveryof serious errors

    Difficult and expensive to make changes todocuments

  • 7/30/2019 Computer Software Design -1.2.pptx

    10/24

    The Spiral Model

  • 7/30/2019 Computer Software Design -1.2.pptx

    11/24

    Advantages

    Accurately reflects the iterative nature of softwaredevelopment on projects with unclear requirements

    Comprehensive model decreases risk

    Good project visibility.

  • 7/30/2019 Computer Software Design -1.2.pptx

    12/24

    Disadvantages

    Needs technical expertise in risk analysis to reallywork

    Model is poorly understood by non-technicalmanagement, hence not so widely used

    Complicated model, needs competent professionalmanagement

  • 7/30/2019 Computer Software Design -1.2.pptx

    13/24

    The Rapid Prototyping Model

    Requirements Capture

    Quick Design

    Build Prototype

    Customer Evaluation of

    Prototype

    Engineer FinalProduct

    Iterate

  • 7/30/2019 Computer Software Design -1.2.pptx

    14/24

    Advantages

    Reduces risk of incorrect user requirements

    Good where requirements are changing/uncommitted

    Regular visible progress aids management

    Supports early product marketing

  • 7/30/2019 Computer Software Design -1.2.pptx

    15/24

    Disadvantages

    Badly implemented prototype often becomes the finalproduct

    Costs customers money

    Difficult to know how long project will last

  • 7/30/2019 Computer Software Design -1.2.pptx

    16/24

    Software Development Lifecycle

    Standard Waterfall Model

  • 7/30/2019 Computer Software Design -1.2.pptx

    17/24

    Feasibility & Analysis

    Decide what the project is suppose to do

    Do not think about how the program willaccomplish tasks

    Output: requirements document

    Describes what program will do oncecompleted

    User manual: tells how user will operate

    program

    Performance criteria

  • 7/30/2019 Computer Software Design -1.2.pptx

    18/24

    Design

    Plan how to implement the system

    Discover structures that underlie problemto be solved

    Decide what classes and methods you need

    Output:

    Description of classes and methods

    Diagrams showing the relationshipsamong the classes

  • 7/30/2019 Computer Software Design -1.2.pptx

    19/24

    Implementation

    Write and compile the code

    Code implements classes and methodsdiscovered in the design phase

    Output: completed program

  • 7/30/2019 Computer Software Design -1.2.pptx

    20/24

    Testing

    Run tests to verify the program workscorrectly

    Output: a report of the tests and their

    results

  • 7/30/2019 Computer Software Design -1.2.pptx

    21/24

    Deployment & Maintenance

    Users install program

    Users use program for its intended purpose

    Developers support the program for defects

    Developer resolve defects

  • 7/30/2019 Computer Software Design -1.2.pptx

    22/24

    Objectives of a Design Document

    A formal design document in any engineering project is used to : -

    Provide an overall guidance of the architecture of the software project

    Coordinate a large team under a single vision

    Outline all parts of the software and how they will work

    Give a fairly complete description while maintaining a high-level view ofthe application

    Convey the technical and operational requirements of am IT system

    coupled with specifications, concepts, analysis, diagrams, and schematics

    Reflect the users perspective of the system design

  • 7/30/2019 Computer Software Design -1.2.pptx

    23/24

    Software Development Cycle Funny

    Example

  • 7/30/2019 Computer Software Design -1.2.pptx

    24/24

    ThankYou