W03 L06

download W03 L06

of 31

Transcript of W03 L06

  • 8/3/2019 W03 L06

    1/31

    Software Process

    Week 3 Lecture 6

    Instructors name: Saliha Zahoor

  • 8/3/2019 W03 L06

    2/31

  • 8/3/2019 W03 L06

    3/31

  • 8/3/2019 W03 L06

    4/31

    The incremental

    The core product is used by the customers and

    as a result of use a plan is developed for the

    next increment.

    The incremental process model like

    prototyping and other evolutionary is iterative

    in nature.

  • 8/3/2019 W03 L06

    5/31

    The Incremental Model

  • 8/3/2019 W03 L06

    6/31

    Incremental Model

    Functionality produced and delivered in small increments

    Focus attention first on essential features and add functionality only if and

    when needed

    May be hard to add features later

    Variant: Incremental implementation only Follow waterfall down to implementation

    During requirements analysis and system design

    Define useful subsets that can be delivered

    Define interfaces that allow adding later smoothly

    Different parts implemented, tested, and delivered according to differentpriorities and at different times.

  • 8/3/2019 W03 L06

    7/31

    The incremental model

    This is a combination of the linear sequentialmodel and the iterative model.

    The problem is broken into increments, and eachincrement is tackled as a linear sequence.

    Further increments can either be done after theprevious ones, or can overlap with the previousones.

    Incremental delivery focuses on the delivery of anoperational product with each increment.

    Early increments are stripped-down versions ofthe final product.

  • 8/3/2019 W03 L06

    8/31

  • 8/3/2019 W03 L06

    9/31

    Incremental model advantages

    Less staffing is required than in a RAD project

    Early delivery is guaranteed

    Progress of the whole project is not delayed if one of theresources is not available for part of it

  • 8/3/2019 W03 L06

    10/31

    The RAD Model

    Rapid Application Development(RAD) is an incremental

    software development process model that emphasizes an

    extremely short development cycle.

    The RAD model is a high speed adaptation of the linear

    sequential model in which rapid development is achieved by

    using component based construction.

    If requirements are well understood and project scope is

    constrained the RAD Process enables the team to create a

    fully functional system within very short time periods e.g 60to 90 days.

  • 8/3/2019 W03 L06

    11/31

    The RAD Model

    A component-based construction approach isused.

    To use this approach, the project scope must be

    constrained and the requirements should be wellunderstood.

    A task that should take no more than ninety daysto complete is modelled, generated and

    implemented. There can be several teams working on different

    components during this ninety day time-box.

  • 8/3/2019 W03 L06

    12/31

    Iterative Models-RAD

    RAD

  • 8/3/2019 W03 L06

    13/31

    The RAD Model Phases

    Communication

    Modeling

    Business Modeling

    Data Modeling

    Process Modeling

    Construction

    Application Generation

    Testing and Turnover

  • 8/3/2019 W03 L06

    14/31

    RAD Model Phases

    Business Modeling: What information drives thebusiness process? What information isgenerated? Who generate it? Where does theinformation go? Who processes it?

    Data Modeling: The information flow as part ofthe business modeling phase is refined into set ofdata objects that are needed to support the

    business. The characteristics of each object areidentified and the relationship between theseobjects defined.

  • 8/3/2019 W03 L06

    15/31

    The RAD Model Phases

    Process Modeling: Process descriptions are created foradding ,modifying , deleting or retrieving a data object.

    Application Generation: The RAD process works toreuse existing program components or create reusable

    components. Emphasizes the use of preexistingsoftware components and the application of automaticcode generation.

    Testing and turnover: Since RAD process emphasisreuse, many of the program components have already

    been tested. This reduces overall testing time. Howevernew components must be tested and all interfacesmust be fully exercised.

  • 8/3/2019 W03 L06

    16/31

    The RAD model

    90

    days

    Team 1

    Testing &

    Turnover

    Application

    Generation

    Business

    modelling

    Data

    modelling

    Process

    modelling

    Team 2

    Testing &

    Turnover

    Application

    Generation

    Business

    modelling

    Data

    modelling

    Process

    modelling

    Team 3

    Testing &

    Turnover

    Application

    Generation

    Business

    modelling

    Data

    modelling

    Process

    modelling

  • 8/3/2019 W03 L06

    17/31

    Problems with RAD

    For large, scalable projects, RAD requires sufficient human

    resources to create the right number of RAD teams

    RAD requires developers and customers who are committed

    to the rapid-fire activities necessary to complete a system in

    this time frame, or failure will result.

    RAD is not suitable for many project types.

  • 8/3/2019 W03 L06

    18/31

    Spiral development

    Process is represented as a spiral rather thanas a sequence of activities with backtracking

    Each loop in the spiral represents a phase in

    the process. No fixed phases such as specification or

    design - loops in the spiral are chosen

    depending on what is required Risks are explicitly assessed and resolved

    throughout the process

  • 8/3/2019 W03 L06

    19/31

    The spiral model

    It explicitly embraces prototyping and an iterativeapproach to software development.Start by developing a small prototype.

    Followed by a mini-waterfall process, primarily to gather

    requirements.Then, the first prototype is reviewed.

    In subsequent loops, the project team performs furtherrequirements, design, implementation and review.

    The first thing to do before embarking on each new loopis risk analysis.

    Maintenance is simply a type of on-going development.

  • 8/3/2019 W03 L06

    20/31

  • 8/3/2019 W03 L06

    21/31

    Spiral Model

    Precede each phaseby

    Alternatives

    Risk analysis

    Follow each phaseby

    Evaluation

    Planning of nextphase

  • 8/3/2019 W03 L06

    22/31

    Spiral model detailsSpiral model is divided into a number of framework activities, named as task regions.3-6

    task regions. Each task region has its own task sets.

    Customer

    communication

    Construction and release

    Engineering

    Risk analysis

    Planning

    Customer

    evaluation

  • 8/3/2019 W03 L06

    23/31

    Process iteration

    Modern development processes take iteration asfundamental, and try to provide ways ofmanaging, rather than ignoring, the risk

    System requirements ALWAYS evolve in thecourse of a project so process iteration whereearlier stages are reworked is always part of theprocess for large systems

    Iteration can be applied to any of the genericprocess models

    Two (related) approaches Incremental development

    Spiral development

  • 8/3/2019 W03 L06

    24/31

  • 8/3/2019 W03 L06

    25/31

  • 8/3/2019 W03 L06

    26/31

    Component Based Development

    Object oriented technologies provide the technicalframework for a component based process model forsoftware engineering.

    This incorporates many of the characteristics of the spiral

    model. It is evolutionary in nature, demanding an iterative approach

    to the creation of software.

    However, it composes applications from pre-packagedsoftware components.

    The construction & release activity in Boehms model isreplaced by an Engineering construction and releaseactivity.

  • 8/3/2019 W03 L06

    27/31

    ComponentBased

    Development

    Identify

    candidate

    components

    Construct

    nth

    iteration of

    system

    Put new

    component

    s in library

    Look up

    component

    s in library

    Extract

    component

    s if available

    Build

    components

    if unavailable

  • 8/3/2019 W03 L06

    28/31

    The Formal Method Model

    Encompasses a set of activities that leads to

    formal mathematical specification of computer

    software

    Specify, develop and verify a computer based

    system by applying a rigorous mathematical

    notation.

  • 8/3/2019 W03 L06

    29/31

    Advantages

    Mechanism for eliminating ambiguity,

    incompleteness, and inconsistency

    Formal methods provide mathematical

    analysis for ensuring correct analysis and

    design

  • 8/3/2019 W03 L06

    30/31

    Disadvantages

    Quiet expensive and time consuming

    Extensive Training required

    Difficult to communicate for technically

    unsophisticated customer

  • 8/3/2019 W03 L06

    31/31

    Methods and tools

    There are many methodologies and tools that are available.

    The methodology should fit a particular process model that issuited to the task being undertaken, and the tool or set oftools should provide automated force at related parts of the

    life cycle.The methodology should include diagrammatic techniques,such

    as SSADM for linear sequential systems or Rational UnifiedProcess (RUP) for object-oriented systems.