cs 5380 software engineering chapter 2 – software processes chapter 2 software processes1

54
S Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes 1

Upload: chester-miles

Post on 12-Jan-2016

220 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

S

CS 5380Software

Engineering

Chapter 2 – Software Processes

Chapter 2 Software Processes1

Page 2: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Processes and Process Models

Software processes Activities involved in producing a software

system.

Software process models abstract representations of these processes.

Chapter 2 Software Processes2

Page 3: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Software processes

Processes Specification Design Implementation Validation Evolution

Occur in all process models

Chapter 2 Software Processes3

Page 4: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Process Models

Describe the organization of software processes.

Key Examples Waterfall model Incremental development Reuse-oriented development.

Chapter 2 Software Processes4

Page 5: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Software Process Pescriptions

Activities of the process Specifying a data model Designing a user interface

Also Outcomes of a process Roles of people involved in the process Pre- and post-conditions

Chapter 2 Software Processes5

Page 6: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Software process models

Waterfall model Plan-driven model. Separate and distinct processes

specification development.

Incremental development Interleaved processes

Specification, development and validation

Reuse-oriented software engineering The system is assembled from existing components.

Chapter 2 Software Processes6

Page 7: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Development in Civil Engineering

Build a bridge Requirements Site Analysis Design Review/Approval Schedule Construction Testing Maintenance

Discussion Requirements Overlap of phases Dependency of Phases

Chapter 2 Software Processes7

Page 8: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

The Waterfall Model(1970)

Chapter 2 Software Processes8

Page 9: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Waterfall Model Phases

There are separate identified phases in the waterfall model: Requirements analysis and definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance

Chapter 2 Software Processes9

Page 10: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Waterfall Model Problems

Responding to changing customer requirements. Appropriate

requirements are well-understood Changes will be fairly limited

Few business systems have stable requirements.

Chapter 2 Software Processes10

Page 11: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Waterfall Applications

Large systems, developed at several sites. Space Shuttle control system

Integration with many physical components

Chapter 2 Software Processes11

Page 12: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Incremental Development

Initial Requirements, Design, Development…

Learn from usage

Modify requirements, design, redevelop

Chapter 2 Software Processes12

Page 13: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Incremental development

Chapter 2 Software Processes13

Page 14: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Incremental development benefits

Lower cost of accommodating changing customer requirements

Better customer feedback Customers understand working system better than

design

More rapid delivery Partial delivery at beginning is useful

Chapter 2 Software Processes14

Page 15: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Generic Products

Inherently incremental

Initial phase to Get customers Get feedback Drive direction

Subsequent phases Stay competitive Meet changing needs

Chapter 2 Software Processes15

Page 16: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Incremental development problems

The process is not visible. Design documents not at extensive Design documents not final

System structure tends to degrade as new increments are added. New features may not fit initial structure

Chapter 2 Software Processes16

Page 17: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Reuse-Oriented Software Engineering

Systematic reuse COTS (Commercial-off-the-shelf) systems.

Process stages Component analysis; Requirements modification; System design with reuse; Development and integration.

Standard approach for building many systems SAS

Chapter 2 Software Processes17

Page 18: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Reuse-oriented software engineering

Chapter 2 Software Processes18

Page 19: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Types of software components

Web services Standard specification Remote invocation Calendar, weather, scheduling, RSS,…

Collections of objects - framework .NET User interface

Configurable software systems COTS – Commercial Off The Shelf software SAS

Chapter 2 Software Processes19

Page 20: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Discussion

Identify 2 highly likely projects for each of the following Waterfall Incremental Component

Chapter 2 Software Processes20

Page 21: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Software Specification

Process of establishing Services required Constraints on the system

Requirements engineering process Feasibility study Requirements elicitation and analysis Requirements specification Requirements validation

Chapter 2 Software Processes21

Page 22: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

The requirements engineering process

Chapter 2 Software Processes22

Page 23: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Software design and implementation

Design Creation of design documents From requirements

Implementation Creation of running program From design documents

Design and implementation Closely related May be inter-leaved.

Chapter 2 Software Processes23

Page 24: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

A general model of the design process

Chapter 2 Software Processes24

Page 25: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Design activities

Architectural design, overall structure principal components (sub-systems or modules) component relationships

Interface design interfaces between system components Interface with user

Component design Individual component

Database design, Tables, queries, interaction

Chapter 2 Software Processes25

Page 26: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Software verificationand validation

Show that system conforms to its specification meets the real needs of customer

Testing is a key approach

Code reviews

Chapter 2 Software Processes26

Page 27: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Stages of testing

Chapter 2 Software Processes27

Page 28: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Testing stages

Development or component testing

System testing

Acceptance testing

Chapter 2 Software Processes28

Page 29: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Testing phases in a plan-driven software process

Chapter 2 Software Processes29

Page 30: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Software evolution

Software is inherently flexible.

Software changes to meet Changing business model New applications

Chapter 2 Software Processes30

Page 31: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

System evolution

Chapter 2 Software Processes31

Page 32: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Nature of Change

Change is inevitable in all large software projects. Business changes New technologies Changing platforms Changing Customer Base Chaging usage

Chapter 2 Software Processes32

Page 33: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Reducing the Costs of Rework

Change avoidance Start with a prototype

Change tolerance Incremental tolerance Architecture

Chapter 2 Software Processes33

Page 34: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Software prototyping

Prototype initial version demonstrate concepts try out design options.

Uses: requirements elicitation and validation; UI design;

Chapter 2 Software Processes34

Page 35: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Benefits of prototyping

Improved system usability.

A closer match to users’ real needs.

Improved design quality.

Improved maintainability.

Reduced development effort.

Chapter 2 Software Processes35

Page 36: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

The process of prototype development

Chapter 2 Software Processes36

Page 37: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Prototype development

Tools rapid prototyping languages

Leave out functionality Focus on areas that are not well-understood No error checking and recovery Focus on functional requirements

not reliability and security Different architecture

Chapter 2 Software Processes37

Page 38: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Throw-away prototypes

Discard prototype: Can’t be modified for all requirements; Prototypes are undocumented; Poor internal structure; Poor quality standard

Chapter 2 Software Processes38

Page 39: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Discussion

Describe a prototype for Web application Mobile app Air traffic control system Integrated controller in a printer

Chapter 2 Software Processes39

Page 40: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Incremental delivery

Multiple deliveries

Phased functionality

Requirements prioritization

Requirements frozen at beginning of incremental phase

Chapter 2 Software Processes40

Page 41: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Incremental development and delivery

Incremental development Evaluate each increment before creating next Normal approach used in agile methods; Evaluation done by user/customer proxy. May not require incremental delivery

Incremental delivery Deploy to end-users More realistic evaluation by users;

Chapter 2 Software Processes41

Page 42: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Incremental delivery

Chapter 2 Software Processes42

Page 43: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Incremental delivery advantages

Partially usable system available earlier.

Early versions elicit further requirements

Lower risk of overall project failure.

Most important features get tested more

Chapter 2 Software Processes43

Page 44: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Incremental Delivery Problems

Common facilities. Not fully thought out Poorly architected

Conflicts with procurement processes Companies require full specification

Chapter 2 Software Processes44

Page 45: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Boehm’s spiral model (1988)

Spiral diagram rather than process diagram

Each loop in the spiral represents a phase in the process.

Chapter 2 Software Processes45

Page 46: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Boehm’s spiral model of the software process

Chapter 2 Software Processes46

Page 47: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Spiral model sectors

Objective setting Specific objectives for the phase are identified.

Risk assessment and reduction Risks are assessed and activities put in place to reduce the key risks.

Development and validation A development model for the system is chosen which can be any of

the generic models.

Planning The project is reviewed and the next phase of the spiral is planned.

Chapter 2 Software Processes47

Page 48: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Spiral model usage

Rarely used as published for practical software development.

Chapter 2 Software Processes48

Page 49: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

The Rational Unified Process

IBM 2003

Combination of other models Largely iterative Documentation Prototyping

Chapter 2 Software Processes49

Page 50: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Phases in the Rational Unified Process

Chapter 2 Software Processes50

Page 51: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

RUP phases

Inception Establish the business case for the system.

Elaboration Develop an understanding of the problem domain and the

system architecture.

Construction System design, programming and testing.

Transition Deploy the system in its operating environment.

Chapter 2 Software Processes51

Page 52: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

RUP 6 Best Practices

Iterative development Prioritized phases.

Manage requirements Document requirements.

Use component-based architectures Structure the system to be reusable.

Chapter 2 Software Processes52

Page 53: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

RUP 6 Best Practices(continued)

Visually model software UML.

Verify software quality

Control changes to software change management system tools

Chapter 2 Software Processes53

Page 54: CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Discussion

Chapter 2 Software Processes54