1 swe 205 - introduction to software engineering lecture 4

19
1 SWE 205 - Introduction to Software Engineering Lecture 4

Upload: bethany-watkins

Post on 13-Jan-2016

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 SWE 205 - Introduction to Software Engineering Lecture 4

1

SWE 205 - Introduction to Software Engineering

Lecture 4

Page 2: 1 SWE 205 - Introduction to Software Engineering Lecture 4

2

Lecture Objectives Software processes and their principle

characteristics. Generic software process models

Waterfall model Evolutionary development Component based system development

Page 3: 1 SWE 205 - Introduction to Software Engineering Lecture 4

3

What is a software process? A set of ordered tasks to produce indented

output of some kind Involving activates,

constraints; and Resources

The process of building a software product Life cycle - describes the life of the software from

conception through its implementation, delivery, use and maintenance.

Page 4: 1 SWE 205 - Introduction to Software Engineering Lecture 4

4

Why we need software process?

Common understanding of the activities, resources and constraints involved in software development.

Creating processes helps Find inconsistencies, Redundancies; and Omissions

Page 5: 1 SWE 205 - Introduction to Software Engineering Lecture 4

5

Generic software process models The waterfall model

Separate and distinct phases of specification and development.

Evolutionary development Specification, development and validation are

interleaved. Component-based software engineering

The system is assembled from existing components.

Page 6: 1 SWE 205 - Introduction to Software Engineering Lecture 4

6

Waterfall ModelRequirements

definition

System andsoftware design

Implementationand unit testing

Integration andsystem testing

Operation and

maintenance

Page 7: 1 SWE 205 - Introduction to Software Engineering Lecture 4

7

Waterfall Model Inflexible partitioning of the project into

distinct stages Makes it difficult to respond to changing

customer requirements. Model is only appropriate when the

requirements are well-understood; and changes will be fairly limited during the design

process.

Few business systems have stable requirements.

Page 8: 1 SWE 205 - Introduction to Software Engineering Lecture 4

8

Evolutionary development Exploratory development

Objective is to work with customers and to evolve a final system from an initial outline specification.

Starts with well-understood requirements and add new features as proposed by the customer.

Throw-away prototyping Objective is to understand the system

requirements. Starts with poorly understood requirements to

clarify what is really needed.

Page 9: 1 SWE 205 - Introduction to Software Engineering Lecture 4

9

Evolutionary DevelopmentConcurrentactivities

ValidationFinal

version

DevelopmentIntermediate

versions

SpecificationInitial

version

Outlinedescription

Page 10: 1 SWE 205 - Introduction to Software Engineering Lecture 4

10

Evolutionary Development Problems

Lack of process visibility; Systems are often poorly structured; Special skills (e.g. in languages for rapid

prototyping) may be required. Applicability

For small or medium-size interactive systems; For parts of large systems (e.g. the user interface); For short-lifetime systems.

Page 11: 1 SWE 205 - Introduction to Software Engineering Lecture 4

11

Component Based System Engineering Systematic reuse where systems are

integrated from existing components or COTS (Commercial-off-the-shelf) systems.

This approach is becoming increasingly usedas component standards have emerged.

Page 12: 1 SWE 205 - Introduction to Software Engineering Lecture 4

12

Component Based System Engineering

Requirementsspecification

Componentanalysis

Developmentand integration

System designwith reuse

Requirementsmodification

Systemvalidation

Page 13: 1 SWE 205 - Introduction to Software Engineering Lecture 4

13

Process Iterations System requirements ALWAYS evolve in the

course of a project Process iteration where earlier stages are

reworked is always part of the process for large systems.

Iteration can be applied to any of the generic process models.

Two (related) approaches Incremental delivery; Spiral development.

Page 14: 1 SWE 205 - Introduction to Software Engineering Lecture 4

14

Incremental Delivery Rather than deliver the system as a single

delivery, Development and delivery is broken down into

increments; With each increment delivering part of the

required functionality. User requirements are prioritised and the

highest priority requirements are included in early increments.

Page 15: 1 SWE 205 - Introduction to Software Engineering Lecture 4

15

Incremental Delivery

Validateincrement

Develop systemincrement

Design systemarchitecture

Integrateincrement

Validatesystem

Define outline requirements

Assign requirements to increments

System incomplete

Finalsystem

Requirements are frozen though requirements for later increments can continue to evolve.

Page 16: 1 SWE 205 - Introduction to Software Engineering Lecture 4

16

Incremental Delivery - Advantages Customer value can be delivered with each

increment so system functionality is available earlier.

Early increments act as a prototype to help elicit requirements for later increments.

Lower risk of overall project failure. The highest priority system services tend to

receive the most testing.

Page 17: 1 SWE 205 - Introduction to Software Engineering Lecture 4

17

Spiral Development Process is represented as a spiral

rather than as 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.

Page 18: 1 SWE 205 - Introduction to Software Engineering Lecture 4

18

Spiral Development Model

Riskanalysis

Riskanalysis

Riskanalysis

Riskanalysis Proto-

type 1

Prototype 2

Prototype 3Opera-tionalprotoype

Concept ofOperation

Simulations, models, benchmarks

S/Wrequirements

Requirementvalidation

DesignV&V

Productdesign Detailed

design

Code

Unit test

IntegrationtestAcceptance

testService Develop, verifynext-level product

Evaluate alternatives,identify, resolve risks

Determine objectives,alternatives and

constraints

Plan next phase

Integrationand test plan

Developmentplan

Requirements planLife-cycle plan

REVIEW

(1) Development & Validation(2) Plan next phase!!!!!

Risks are explicitly assessed and resolved throughout the process.

Page 19: 1 SWE 205 - Introduction to Software Engineering Lecture 4

19

Key Points Software processes are the activities involved in

producing and evolving a software system. General activities are specification, design and

implementation, validation and evolution. Generic process models describe the organisation

of software processes. For example waterfall model, evolutionary development; and component-based software engineering.

Iterative process models describe the software process as a cycle of activities.