2 - software processes

Upload: ibrahim-oira

Post on 04-Apr-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/30/2019 2 - Software Processes

    1/16

    Reference: Software Engineering, by IanSommerville, 9th edition, Chapter 2

  • 7/30/2019 2 - Software Processes

    2/16

    Objectives

    To introduce the idea of software process acoherent set of activities for softwareproduction.

    Understand the concepts of software

    processes To describe various generic software process

    models and their pros and cons

    Know about the fundamental process

    activities Understand why processes should cope with

    changes in requirements and design

  • 7/30/2019 2 - Software Processes

    3/16

    Software ProcessDefinition:

    the set of related activities that leads to

    the production of a software product. These activities may involve

    developing software from scratch.

    Evolution of an existing software

    3

  • 7/30/2019 2 - Software Processes

    4/16

    Activities in Software Process

    Software Specification

    what the system should do and its development constraints,

    Software Design and Implementation

    production of the software system

    Software Verification

    checking that the software meets the requirements,

    Software Validation

    checking that the software does what the customer wants,

    Software Evolution

    changing the software in response to changing customerdemands.

    4

  • 7/30/2019 2 - Software Processes

    5/16

    Software Life Cycle The phases necessary to develop and maintain a

    software system. These phases include:

    Requirements (Specification)

    Design

    Implementation (Coding)

    Testing (Validation)

    Maintenance (Evolution)

    Asoftware process model is an abstractrepresentation of how these phases can beaddressed.

  • 7/30/2019 2 - Software Processes

    6/16

    Requirements

    The process of establishing

    what services are required of the system

    the constraints on the systemsoperation and development

    The what of the software life cycle

  • 7/30/2019 2 - Software Processes

    7/16

    A Generic Requirements Process

    Feasibilitystudy

    Requirementselicitation and

    analysisRequirementsspecification

    Requirementsvalidation

    Feasibilityreport

    Systemmodels

    User and system

    requirements

    Requirements

    document

  • 7/30/2019 2 - Software Processes

    8/16

    Design

    The process of converting the system specification(requirements) into a software structure that realizesthat specification

    The how of the software life cycle

  • 7/30/2019 2 - Software Processes

    9/16

    A Generic Software Design Process

  • 7/30/2019 2 - Software Processes

    10/16

    Implementation

    Implementation is the process of converting asystem specification into an executable system.

    Translating a design into a program and removingerrors from that program

    Programming is a personal activity - there is nogeneric programming process.

    Programmers carry out some program testing todiscover faults in the program and remove thesefaults in the debugging process.

    The activities of design and implementation areclosely related and may be interleaved.

  • 7/30/2019 2 - Software Processes

    11/16

    Testing

    Verification and validation is intended to show thata system conforms to its specification and meetsthe requirements of the system customer.

    Involves checking and review processes and system

    testing System testing involves executing the system with

    test cases that are derived from the specification ofthe real data to be processed by the system.

  • 7/30/2019 2 - Software Processes

    12/16

    A Generic Testing Process

    Sub-systemtesting

    Moduletesting

    Unittesting

    Systemtesting

    Acceptance

    testing

    Componenttesting

    Integration testing Usertesting

  • 7/30/2019 2 - Software Processes

    13/16

    V-Model of Test PlanningRequirementsspecification

    Systemspecification

    Systemdesign

    Detaileddesign

    Module andunit codeand tess

    Sub-systemintegrationtest plan

    Systemintegrationtest plan

    Acceptancetest plan

    Service Acceptancetest

    Systemintegration test

    Sub-systemintegrat ion test

  • 7/30/2019 2 - Software Processes

    14/16

    System Maintenance Software is inherently flexible and can change (as

    opposed to hardware).

    In the past, there has been a demarcation betweendevelopment and evolution (maintenance). This is

    increasingly irrelevant as fewer and fewer systems arecompletely new.

    Software engineering should be thought of as anevolutionary process where software is continually

    changed over its lifetime in response to customerneeds.

  • 7/30/2019 2 - Software Processes

    15/16

    Summary In every software project, large or small, there are five

    phases that will be involved: Requirements gathering/analysis

    Design Implementation /coding

    Testing

    Maintenance

    However, there is no rule of thumb that these phasesmust be followed systematically. In most projects,developers do as they find appropriate depending onthe type of project.

  • 7/30/2019 2 - Software Processes

    16/16

    END

    Next: We will look at Software Process Models