Sie sind auf Seite 1von 30

Software Engineering

The Software Processes

Presented By
Khurram Adeel Shaikh

July 16, 2007

1
Software Process Activities

 Specification
 Design
 Implementation
 Validation
 Evolution

2
Software Process Models

 Waterfall Model
 Evolutionary Development
 Component-based Software Engineering
 Incremental Model
 Spiral Model

3
Software Process Models
 Software process = organized set of activities aimed at
building a software system
 Software process model = an abstract representation
of a software process
 Fundamental software process activities:
 Software specification
 Software design
 Software implementation
 Software validation
 Software evolution

4
Fundamental Software Process Activities

 Software specification

 Software design

 Software implementation

 Software validation

 Software evolution

5
Software Process Models:
The Waterfall Method

Requirements
definition

System and
software design

Implementation
and unit testing

Integr ation and


system testing

Operation and
maintenance

6
Software Process Models:
The Waterfall Method
 Main characteristics:
 Also known as classic software life cycle or
sequential model
 Phases/Stages) are clearly separated
 The Specification and Design Phases are freeze
after specific iterations

7
Software Process Models:
The Waterfall Method

 Advantages:
 Organized approach,
 Provides robust separation of phases
 Reflects common engineering practice

 Disadvantages:
 Adaptability
 Too much dependability
 Time consuming

 Applicability:
 Clear requirements
 Less changes
8  Portability
Software Process Models:
The Evolutionary Development

Concurr ent
activities

Initial
Specification
version

Outline Intermediate
Development
description versions

Final
Validation
version

9
Software Process Models:
The Evolutionary Development

 Main characteristics:
 Interleaved phases
 Continuous users’ Feedback
 Easy Up gradation
 Types of Evolutionary Development:
 Exploratory Development
 Throw-away Prototyping

10
Software Process Models:
The Evolutionary Development

 Advantages:
 Flexibility
 Fast paced
 Parallel development

 Disadvantages:
 Continuous editing/fixing
 Poor documentation
 System’s vulnerability
 Special tools & techniques requirements
 Superficial initial version

11
Software Process Models:
The Evolutionary Development
(cont’d…)

 Applicability:

 Good for small and medium-sized software systems


 Requirements not very clear
 Disposable rapid prototype requirement

12
Software Process Models:
Component-based Software Engineering…

Requirements Component Requirements System design


specification analysis modification with reuse

Development System
and integration validation

13
Software Process Models:
Component-based Software Engineering
(Contd….)

 Main characteristics:
 Intensive use of existing reusable components
 Components integration

 Advantages:
 Faster delivery
 Reliability due to using previously tested components

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

14
Software Process Models:
Component-based Software Engineering
(Cont’d….)

 Applicability:

 Pool of existing components that could satisfy the


requirements of the new product
 Emerging trend: integration of web services

15
Software Process Models:
The Incremental Development

Define outline Assign requirements Design system


requirements to increments architecture

Develop system Valida te Integrate Valida te


increment increment increment system
Final
system
System incomplete

16
Software Process Models:
The Incremental Development

 Main characteristics:
 Hybrid model (combines elements of the waterfall &
evolutionary paradigms)
 Phases are broken in smaller increments

 Advantages:
 Better support for process iteration
 Reduces rework
 Work with lesser requirements
 Allows early delivery of parts of the system
 Supports easier integration of sub-systems
17
 Lower risk of project failure
 Delivery priorities can be more easily set
Software Process Models:
The Incremental Method
(Cont’d….)
 Disadvantages:
 Small Increments needs
 Difficult Mapping requirements
 Difficult Common software facilities
 Applicability:
 When it is possible to deliver the system “part-by-part”

18
Software Process Models:
The Spiral Model

Determine objectives
Evaluate alternatives
alternatives and identify, resolve risks
constraints Risk
analysis
Risk
analysis
Risk
analysis Opera-
Prototype 3 tional
Prototype 2 protoype
Risk
REVIEW analy sis Proto-
type 1
Requirements plan Simulations, models, benchmarks
Life-cycle plan Concept of
Operation S/W
requirements Product
design Detailed
Requirement design
Development
plan validation Code
Design Unit test
Integration
and test plan V&V Integr ation
Plan next phase test
Acceptance
Service test Develop, verify
19 next-level product
Software Process Models:
The Spiral Model

 Main characteristics:
 Hybrid model that support process iteration
 Each loop in the spiral represents a process phase
 Four sectors per loop:
- objective setting,
- risk assessment & reduction,
- development & validation,
- planning
 Flexibility

20
Software Process Models:
The Spiral Model
(Cont’d….)

 Advantages:
 Risk reduction mechanisms
 Supports iteration
 Systematic approach

 Disadvantages:
 Requires expertise in risk evaluation and reduction
 Relatively difficult to follow strictly
 Applicable only to large systems

 Applicability:
 Internal development of large systems
21
Process Activities:
The Specification

Feasibility Requirements
study elicitation and
analysis
Requir ements
specification
Feasibility Requirements
report validation
System
models
User and system
requirements

Requirements
document

22
Process Activities:
The Design & Implementation

Requirements
specifica
tion

Design acti
vities

Architectur
al Interface Component Data Algorithm
Abstract
design design design structur
e design
specifica
tion
design

Software Data
System Interface Component Algorithm
specifica
tion structure
architectur
e specifica
tion specifica
tion specifica
tion
specification

Design pr
oducts

23
Process Activities:
Testing

Locate Design Repair Re-test


error error repair error program

24
Process Activities:
Testing
(Cont’d…)

Component System Acceptance


testing testing testing

25
Process Activities:
Testing
(Cont’d….)

Requir ements System System Detailed


specification specification design design

System Sub-system Module and


Acceptance
integ ration integ ration unit code
test plan
test plan test plan and test

Acceptance System Sub-system


Service
test integ ration test integ ration test

26
Process Activities:
The Evolution

Define system Assess existing Propose system Modify


requirements systems changes systems

Existing New
systems system

27
The Rational Unified Process.

Phase iteration

Inception Elaboration Construction Transition

28
The Rational Unified Process
(Cont’d…)

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 are
developed to model the system requirements.
Analysis and design A design model is created and documented using architectural
models, component models, object models and sequence models.
Implementation The components in the system are implemented and structured into
implementation sub-systems. Automatic code generation from design
models helps accelerate this process.
Test Testing is an iterative process that is carried out in conjunction with
implementation. System testing follows the completion of the
implementation.
Deployment A product release is created, distributed to users and installed in their
workplace.
Configuration and This supporting workflow managed changes to the system (see
change management Chapter 29).
Project management This supporting workflow manages the system development (see
Chapter 5).
Environment This workflow is concerned with making appropriate software tools
available to the software development team.
29
CASE
Computer Aided Software Engineering
CASE
technology

Tools Workbenches Environments

File Integrated Process-centred


Editors Compilers
comparators environments environments

Analysis and
Programming Testing
design

Multi-method Single-method General-purpose Language-specific


workbenches workbenches workbenches workbenches

30

Das könnte Ihnen auch gefallen