+ All Categories
Home > Documents > CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engineering Lecture 2 August 26, 2002.

Date post: 18-Jan-2016
Category:
Upload: nelson-douglas
View: 218 times
Download: 1 times
Share this document with a friend
Popular Tags:
39
CSC 480 Software Engineering Lecture 2 August 26, 2002
Transcript
Page 1: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480Software Engineering

Lecture 2August 26, 2002

Page 2: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 28/26/2002

Topics

Overview Process models Iterative models

Page 3: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 38/26/2002

Process

A process is a partially ordered steps to achieve a goal

In software engineering, your goal is toEfficiently and predictably deliver a software

product that meets the need of your businessWhat are the steps? In what order?

There is not one single answer to all cases

Page 4: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 48/26/2002

Some Application Types

Stand-alone residing on a single computer e.g., word processor

Distributed consist of parts interacting across a network e.g., Web-based video game

Embedded part of unique application involving hardware e.g., automobile controller

Real-time functions must execute within small time limit (typically micro-sec) e.g., radar software

Page 5: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 58/26/2002

Trends & Influences

Structured programming Object-Orientation Reuse and components Formal methods

Page 6: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 68/26/2002

Structured Programming

Use control constructs, avoid using gotoA hierarchy of functions, with those in higher

levels calling those at lower levelsModules tend to couple with each other,

making change difficult

Page 7: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 78/26/2002

Object-Orientation

Encapsulate data and functionality in objectsMapping to real-world entities

Both congregation and inheritance hierarchies

Easier to modify and add components

Page 8: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 88/26/2002

Class & Object Hierarchies

Page 9: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 98/26/2002

Reuse & Components

Reuse can reduce cost and improve quality

Reuse at component level is more effective

COM JavaBeans

Example – a JClass chart by sitraka.com

Page 10: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 108/26/2002

Formal Methods

SE methods that rely on mathematics as their base are called formal methods.

The logical, not the computational aspects are used

Requirements and design can be express more precisely

Domain element A

Range element A(x)

1 4

2 6

3 3

4 4

5 6

6 8

t, t´ : N N

dom(t´) = dom(t) rng(t´) = rng(t) x, y dom(t), x y t´(x) t´(y) x rng(t´), card[ t´-1(x) ] = card[ t-1(x) ]

SortPartial function

Range of t

Number ofelements in the set ...

Set of elementsmapped onto x by t

“implies”

Page 11: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 118/26/2002

A Typical S.E. Roadmap1. Understand nature & scope of proposed product

2. Select the development process, and create a plan

4. Design and build the product

6. Deliver and maintain the product

3. Gather requirements

5. Test the product Activities commonly found in all projects

Page 12: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 128/26/2002

Five Key Expectations (Humphrey)

Influencedby people

Used forprocess development

Part oftheproject

Aspectof the product

3. Keep all work visible

5. Measure quality

4. A. Design onlyagainst requirements

B. Programonly against designsC. Test only against

requirements and designs

1. Predetermine quantitative quality goals

2. Accumulate data for subsequent use

Page 13: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 138/26/2002

Software Process Models

A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective

Page 14: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 148/26/2002

Process Models The waterfall model

Separate and distinct phases of specification and development

Evolutionary development Specification and development are interleaved

Formal systems development A mathematical system model is formally transformed to an

implementation

Reuse-based development The system is assembled from existing components

Page 15: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 158/26/2002

Waterfall ModelRequirements

definition

System andsoftware design

Implementationand unit testing

Integration andsystem testing

Operation andmaintenance

Page 16: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 168/26/2002

The Waterfall Model

Requirementsanalysis

Design

Implementation

Integration & Test

Produces … specification

... diagrams & text

... code & comments

... test report for entire code

Operation & Maintenance... user manual & enhancements

Page 17: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 178/26/2002

Waterfall Model Phases Requirements analysis and definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance The drawback of the waterfall model is the

difficulty of accommodating change after the process is underway

Page 18: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 188/26/2002

Waterfall Model Problems

Inflexible partitioning of the project into distinct stages

This makes it difficult to respond to changing customer requirements

Therefore, this model is only appropriate when the requirements are well-understood

Page 19: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 198/26/2002

More Detailed Waterfall Version

Design

Implementation& unit testing

Integration

System testing

Conceptanalysis

Analysis

Maintenance

Page 20: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 208/26/2002

Evolutionary Development

Exploratory development Objective is to work with customers and to

evolve a final system from an initial outline specification. Should start with well-understood requirements

Throw-away prototyping Objective is to understand the system

requirements. Should start with poorly understood requirements

Page 21: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 218/26/2002

Evolutionary Development

ValidationFinal

version

Development Intermediateversions

Specification Initialversion

Outlinedescription

Concurrentactivities

Page 22: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 228/26/2002

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-/medium-size interactive systems For parts of large systems (e.g. the UI) For short-lifetime systems

Page 23: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 238/26/2002

Formal Systems Development

Based on the transformation of a mathematical specification through different representations to an program

Transformations are ‘correctness-preserving’ so it is straightforward to show that a program conforms to its specification

Embodied in the ‘Cleanroom’ approach to software development

Page 24: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 248/26/2002

Formal Systems Development

Requirementsdefinition

Formalspecification

Formaltransformation

Integration andsystem testing

Page 25: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 258/26/2002

Formal Transformations

R2Formalspecification R3 Executable

program

P2 P3 P4

T1 T2 T3 T4

Proofs of transformation correctness

Formal transformations

R1

P1

Page 26: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 268/26/2002

Formal Systems Development

Problems Need for specialised skills and training to apply

the technique Difficult to formally specify some aspects of the

system such as the user interface Applicability

Critical systems especially those where a safety or security case must be made before the system is put into operation

Page 27: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 278/26/2002

Reuse-Oriented Development

Based on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems

This approach is becoming more important but still limited experience with it

Page 28: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 288/26/2002

Reuse-Oriented Development

Requirementsspecification

Componentanalysis

Developmentand integration

System designwith reuse

Requirementsmodification

Systemvalidation

Process stagesComponent analysisRequirements modificationSystem design with reuseDevelopment and integration

Page 29: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 298/26/2002

Process Iteration (iterative models)

System requirements ALWAYS evolve in the course of a project so 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

Page 30: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 308/26/2002

Incremental Development Rather than deliver the system as a single

delivery, the 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 Once the development of an increment is started, the

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

Page 31: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 318/26/2002

Incremental Development

Valida teincrement

Develop systemincrement

Design systemarchitecture

Integrateincrement

Valida tesystem

Define outline requirements

Assign requirements to increments

System incomplete

Finalsystem

Page 32: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 328/26/2002

Iteration No.

Analyzerequirements

Test whole

Implement

Design

Test units

Integrate

1 2 3 867 868

Update SRS3

Update SDS2

Update source code

Update Test documentation

Update SPMP1

1 Software Project Management Plan; 2 Software Design Specification;3 Software Requirements Specification

Page 33: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 338/26/2002

Incremental Development

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 34: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 348/26/2002

Extreme Programming

New approach to development based on the development and delivery of very small increments of functionality

Relies on constant code improvement, user involvement in the development team and pairwise programming

Page 35: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 358/26/2002

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

Risks are explicitly assessed and resolved throughout the process

Page 36: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 368/26/2002

The Spiral Model

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 37: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 378/26/2002

The Spiral Model

Page 38: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 388/26/2002

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 is chosen

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

planned

Page 39: CSC 480 Software Engineering Lecture 2 August 26, 2002.

CSC 480 Software Engieering 398/26/2002

Process Trade-offs

Factor Pure Waterfall

Iterative

Spiral

Iterative

Incremental

Ease of doc control

Easier Harder Harder/Medium

Enabling of customer interaction

Harder Easier Easier

Promotion of good design

Medium/Easier

Easier Harder

Leverage of metric data

Harder Medium/Easier

Medium/Easier


Recommended