1 cs 425/625 software engineering cs 425/625 software engineering software processes based on...

30
1 CS 425/625 Software CS 425/625 Software Engineering Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software Engineering, 7 th Ed., Addison- Wesley, 2004 and on Ch4 PPT presentation from http://www.software-engin.com / September 14, 2005

Post on 20-Dec-2015

238 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

1

CS 425/625 Software EngineeringCS 425/625 Software Engineering

Software Processes

Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software Engineering, 7th Ed., Addison-Wesley, 2004

and on Ch4 PPT presentation from http://www.software-engin.com/

September 14, 2005

Page 2: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

2

Outline

Software Process Models Waterfall model Evolutionary development Component-based software engineering Incremental model Spiral model

Software Process Activities Specification Design and implementation Validation Evolution

The Rational Unified Process Computer-Aided Software Engineering

Page 3: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

3

Software Process Models

Software processSoftware process = organized set of activities aimed at = organized set of activities aimed at building a software systembuilding a software system

Software process modelSoftware process model = an abstract representation = an abstract representation of a software processof a software process

Fundamental software process activities:Fundamental software process activities: Software specificationSoftware specification Software design Software design Software implementationSoftware implementation Software validationSoftware validation Software evolutionSoftware evolution

Page 4: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

4

Software Process Models: Waterfall..

The Waterfall modelThe Waterfall model [SE-7, Fig 4.1][SE-7, Fig 4.1]

Requirementsdefinition

System andsoftware design

Implementationand unit testing

Integration andsystem testing

Operation andmaintenance

Page 5: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

5

Software Process Models: .Waterfall.

Main characteristics: Also called classic software life cycle or

sequential model Process activities (phases/stages) are clearly

separated After a number of iterations, phases of the life

cycle (such as specification and design) are “frozen”

Page 6: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

6

Software Process Models: ..Waterfall

Advantages: Organized approach, provides robust separation of phases Reflects common engineering practice

Disadvantages: Doesn’t cope well with changes required by the client Development teams might wait for each other A working version of the product is available only late

Applicability: When requirements are well known and few changes are

likely to be needed Can be used also for parts of larger software systems

Page 7: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

7

Software Process Models: Evolutionary Development…

Evolutionary Development model Evolutionary Development model [SE-7, Fig 4.2][SE-7, Fig 4.2]

ValidationFinal

version

DevelopmentIntermediate

versions

SpecificationInitial

version

Outlinedescription

Concurrentactivities

Page 8: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

8

Software Process Models: .Evolutionary Development..

Main characteristics: The phases of the software construction are interleaved Feedback from the user is used throughout the entire process

The software product is refined through many versions

Types of evolutionary development: Exploratory development Throw-away prototyping

Page 9: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

9

Software Process Models: ..Evolutionary Development.

Advantages: Deals constantly with changes Provides quickly an initial version of the system Involves all development teams

Disadvantages: Quick fixes may be involved “Invisible” process, not well-supported by documentation The system’s structure can be corrupted by continuous

change

Page 10: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

10

Software Process Models: …Evolutionary Development

Disadvantages [cont’d]: Special tools and techniques may be necessary The client may have the impression the first version is very

close to the final product and thus be less patient

Applicability: When requirements are not well understood When the client and the developer agree on a “rapid

prototype” that will be thrown away Good for small and medium-sized software systems

Page 11: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

11

Software Process Models: Component-based Software Engineering…

CBSECBSE process model process model [SE-7, Fig 4.3][SE-7, Fig 4.3]

Requirementsspecification

Componentanalysis

Developmentand integration

System designwith reuse

Requirementsmodification

Systemvalidation

Page 12: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

12

Software Process Models: .Component-based Software Engineering..

Main characteristics: Makes intensive use of existing reusable components The focus is on integrating the components rather than on

creating them from the scratch

Page 13: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

13

Software Process Models: ..Component-based Software Engineering.

Advantages:Advantages: Reduces considerably the software to be developed “in-house”Reduces considerably the software to be developed “in-house” Allows faster deliveryAllows faster delivery In principle, more reliable systems, due to using previously In principle, more reliable systems, due to using previously

tested componentstested components

Page 14: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

14

Software Process Models: …Component-based Software Engineering

Disadvantages: Compromises in requirements are needed Less control over the system’s evolution

Applicability: When there is a pool of existing components that could

satisfy the requirements of the new product Emerging trend: integration of web services from a range

of suppliers

Page 15: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

15

Software Process Models: Incremental Development…

The Incremental model The Incremental model [SE-7, Fig 4.4][SE-7, Fig 4.4]

Valida teincrement

Develop systemincrement

Design systemarchitecture

Integrateincrement

Valida tesystem

Define outline requirements

Assign requirements to increments

System incomplete

Finalsystem

Page 16: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

16

Software Process Models: .Incremental..

Main characteristics: Hybrid model that combines elements of the waterfall and

evolutionary paradigms The specification, design, and implementation phases are

broken in smaller increments

Page 17: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

17

Software Process Models: ..Software Process Models: ..Incremental..

Advantages: Provides better support for process iteration Reduces rework in the software construction process Some decisions on requirements may be delayed Allows early delivery of parts of the system Supports easier integration of sub-systems Lower risk of project failure Delivery priorities can be more easily set

Page 18: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

18

Software Process Models: ...Incremental

Disadvantages: Increments need be relatively small Mapping requirements to increments may not be easy Common software facilities may be difficult to identify

Applicability: When it is possible to deliver the system “part-by-part”

Page 19: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

19

Software Process Models: Spiral Model..Software Process Models: Spiral Model..

Boehm’s Spiral Model [SE, Fig 4.5]

Riskanalysis

Riskanalysis

Riskanalysis

Riskanalysis Proto-

type 1

Prototype 2Prototype 3

Opera-tionalprotoype

Concept ofOperation

Simulations, models, benchmarks

S/Wrequirements

Requirementvalidation

DesignV&V

Productdesign Detailed

design

CodeUnit test

IntegrationtestAcceptance

testService Develop, verifynext-level product

Evaluate alternativesidentify, resolve risks

Determine objectivesalternatives and

constraints

Plan next phase

Integrationand test plan

Developmentplan

Requirements planLife-cycle plan

REVIEW

Page 20: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

20

Software Process Models: .Spiral Model.Software Process Models: .Spiral Model.

Main characteristics:Main characteristics: Also a hybrid model that support process iterationAlso a hybrid model that support process iteration The process is represented as a spiral, each loop in the spiral The process is represented as a spiral, each loop in the spiral

representing a process phaserepresenting a process phase Four sectors per loop: objective setting, risk assessment and Four sectors per loop: objective setting, risk assessment and

reduction, development and validation, planningreduction, development and validation, planning Risk is explicitly taken into considerationRisk is explicitly taken into consideration

Page 21: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

21

Software Process Models: ..Spiral ModelSoftware Process Models: ..Spiral Model

Advantages: Risk reduction mechanisms are in place Supports iteration and reflects real-world practices Systematic approach

Disadvantages: Requires expertise in risk evaluation and reduction Complex, relatively difficult to follow strictly Applicable only to large systems

Applicability: Internal development of large systems

Page 22: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

22

Process Activities: Specification Requirements engineering Requirements engineering [SE-7, Fig. 4.6][SE-7, Fig. 4.6]

Feasibilitystudy

Requirementselicitation and

analysisRequirementsspecification

Requirementsvalidation

Feasibilityreport

Systemmodels

User and systemrequirements

Requirementsdocument

Page 23: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

23

Process Activities: Design & ImplementationProcess Activities: Design & Implementation

A general model for design [SE-7, Fig 4.7]A general model for design [SE-7, Fig 4.7]

Architecturaldesign

Abstractspecification

Interfacedesign

Componentdesign

Datastructuredesign

Algorithmdesign

Systemarchitecture

Softwarespecification

Interfacespecification

Componentspecification

Datastructure

specification

Algorithmspecification

Requirementsspecification

Design activities

Design products

Page 24: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

24

Process Activities: Testing..

The debugging process [SE-7, Fig 4.8]The debugging process [SE-7, Fig 4.8]

Locateerror

Designerror repair

Repairerror

Re-testprogram

Page 25: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

25

Process Activities: .Testing.

The testing process [SE-7, Fig 4.0]The testing process [SE-7, Fig 4.0]

Testing phases in the sw. process [SE-7, Fig. 4.10]Testing phases in the sw. process [SE-7, Fig. 4.10]Component

testingSystemtesting

Acceptancetesting

Page 26: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

26

Process Activities: ..Testing

Testing phases in the sw. process [SE-7, Fig. 4.10]Testing phases in the sw. process [SE-7, Fig. 4.10]

Requirementsspecification

Systemspecification

Systemdesign

Detaileddesign

Module andunit codeand test

Sub-systemintegrationtest plan

Systemintegrationtest plan

Acceptancetest plan

ServiceAcceptance

testSystem

integration testSub-system

integration test

Page 27: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

27

Process Activities: Evolution

System evolutionSystem evolution [SE-7, Fig 4.11][SE-7, Fig 4.11]

Assess existingsystems

Define systemrequirements

Propose systemchanges

Modifysystems

Newsystem

Existingsystems

Page 28: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

28

The Rational Unified Process.

RUP phasesRUP phases [SE-7, Fig 4.12][SE-7, Fig 4.12]

Phase iteration

Inception Elaboration Construction Transition

Page 29: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

29

.The Rational Unified Process RUP workflowsRUP workflows [SE-7, Fig 4.13][SE-7, Fig 4.13]

Workflow Description

Business modelling The business processes are modelled using business use cases.

Requirements Actors who interact with the system are identified and use cases aredeveloped to model the system requirements.

Analysis and design A design model is created and documented using architecturalmodels, component models, object models and sequence models.

Implementation The components in the system are implemented and structured intoimplementation sub-systems. Automatic code generation from designmodels helps accelerate this process.

Test Testing is an iterative process that is carried out in conjunction withimplementation. System testing follows the completion of theimplementation.

Deployment A product release is created, distributed to users and installed in theirworkplace.

Configuration andchange management

This supporting workflow managed changes to the system (seeChapter 29).

Project management This supporting workflow manages the system development (seeChapter 5).

Environment This workflow is concerned with making appropriate software toolsavailable to the software development team.

Page 30: 1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software

30

CASECASE Classification of CASE technology Classification of CASE technology [SE-7, Fig 4.14][SE-7, Fig 4.14]

Single-methodworkbenches

General-purposeworkbenches

Multi-methodworkbenches

Language-specificworkbenches

Programming TestingAnalysis and

design

Integratedenvironments

Process-centredenvironments

Filecomparators

CompilersEditors

EnvironmentsWorkbenchesTools

CASEtechnology