Anda di halaman 1dari 6

Software Engineering

Software Process Models

A software process model is an abstract representation of the development process.


Consists of a structured set of activities required to build software.
It presents a description of a process from a particular perspective.

Types of Models
1. Descriptive Models
Describes the history of how a particular system was developed.
Used as a basis for understanding and improving s/w process.
Used for building prescriptive models.
2. Prescriptive Models
Prescribes how software should be developed.

Used as guidelines to organize and structure how s/w activities should be performed, and in
what order

Generic Software Models


1. The waterfall Model
Separate and distinct phases of specification and development
2. Evolutionary development
Specification, development and validation are interleaved i.e. no distinct phases
Goes with prototyping
Examples are Incremental and Spiral Models
3. Component based
A kind of specialized model
The system is assembled from existing components.
4. Agile Models
Emphasises on customer collaboration, incremental delivery, and small development teams.

Build and Fix


o
o

Build systems without specification.


Build first version and repeat maintenance until customer is satisfied.

Advantages
Does not waste time in planning and documentation.

Process Models Software Engineering

Page 1

Disadvantages
Underestimate project attributes
Difficult to evaluate success

Waterfall Model
o
o
o
o
o

Also called Classic Life cycle.


Requirements are well defined (fixed) and stable.
It is mostly used in big projects
It can be adapted so that it accommodates some abstract information
Each activity is distinct and no new phase can begin before the previous phase is complete

Phases of Waterfall Model


Requirements Engineering
software design
Implementation and unit testing
Integration and system testing
Maintenance

Requirements
Engineering
Software Design
Implementation and Unit
Testing
Integration and system testing
Maintenance

Drawbacks of Waterfall Model


Real projects are iterative.
Difficult for customer to state all requirements explicitly.
Requires customer patience.
Blocking state.
Inflexible partitioning of the project into distinct stage makes it difficult to respond to changing
customer requirements.
Therefore, this 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.
The waterfall model is mostly used for large systems engineering projects.

Evolutionary Process Models


1. Do activities in an iterative way
2. Prototyping
I.
Throw away prototyping or exploratory
o The objective is to understand the system requirements.
o It should start with poorly understood requirements to clarify what is really needed.
II.

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

Process Models Software Engineering

Page 2

It should start with well-understood requirements and add new features as proposed by
the customer.

Prototyping

Customer defines a general objective of the software without identifying details.


Feedback from prototypes is used to refine requirements for the software.
Iteration is used to tune prototypes to satisfy customer needs, while enabling the developer to
better understand what needs to be done.
Used with systems with a considerable emphasis on user interface and user interaction.
Users and designers must be well aware of the prototyping approach and its pitfalls.
Should be planned and controlled.
Prototyping Model

Outline
description

Specification

Initial version

Development

Intermediate version

Validation

Final version

Advantages of prototypes
The resulting system is easy to use and maintain.
User needs are better accommodated
The design is of higher quality
The development incurs less effort.
Problems are detected earlier
Disadvantages of prototypes
The resulting system harder to maintain.
The performance of the resulting system is worse.
The design is of less quality
The development incurs more effort.
The approach requires more experienced team members

Spiral Model

Evolutionary model with iterative nature of prototyping and systematic aspects of waterfall
model.
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.

Process Models Software Engineering

Page 3

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 (Risk driven).

Model sectors
1. Objective setting
Specific objectives for the phase are identified.
2. Risk assessment and reduction
Risks are assessed and activities put in place to reduce the key risks.
Prototyping is used to clarify things.
3. Development and validation
A development model for the system is chosen which can be any of the generic models.
The software is developed
4. Planning
The project is reviewed and the next phase of the spiral is planned.

Incremental Process Model

Combines elements of waterfall model applied in an iterative philosophy of prototyping.


Develop, deliver the system in increments
The incremental model applies linear sequences in a staggered fashion as calendar time progress.
Each linear sequence produces deliverable increments of the software.
The first increment called the core product and it addresses the basic requirements.
Each increment delivers a working product/feature.

Outline
specification

Develop
system
increments

Assign requirements to
increments

Validate
increments

Integrate
increments

Design System
Architecture

Validate
system

Advantages of Incremental Model


Have a working product in the early stages of the project.
System incomplete
Particularly useful when staffing is unavailable for a complete implementation by the business
deadline that has been established for the project.
Takes the best practices from waterfall model and prototyping
Process Models Software Engineering

Page 4

There is risk management

Disadvantages of Incremental Model


There are a lot of activities that can increase the cost of the project.

The Rapid Application Development (RAD) Model

Incremental model that emphasizes on short development life cycle.


Its a high speed waterfall using component based construction.
It emphasizes user involvement, prototyping, reuse, the use of automated tools and small
development teams.
Employs time box - a fixed time frame within which activities are done.

Elements of RAD
i.
ii.
iii.
iv.
v.

Prototyping
Reuse can use already existing components
Use of automated tools use tools to develop the software
Small development teams enhances good communication between the developers and
stakeholders
Employs time block a fixed time frame for each working product to be delivered

Life Cycle activities


1) Requirements Planning
Identify requirements from the system
It is done in collaboration with stakeholders
Uses joint requirements planning workshops to get requirements
2) User design
User design phase is done in Joint Application workshop. This is to build the initial design of
the system
3) Construction Phase
This is development phase
4) Cut-over
Implementation phase

Advantages of RAD

Its fast
High level user interaction
High communication

Drawbacks of RAD

For large but scalable projects, RAD requires sufficient human resources to create the right
number of RAD teams.

Process Models Software Engineering

Page 5

RAD requires developers and customers who are committed to the rapid-fire activities necessary
to get a system complete in a much abbreviated time frame. If commitment is lacking from either
constituency, RAD projects will fail.
System need to be properly modularised
RAD is not appropriate when technical risks are high. This occurs when a new application makes
heavy use of new technology or when the new software requires a high degree of interoperability
with existing computer programs.
Not for high performance systems

Component based Development

Its construction is based on systematic reuse where systems are integrated from existing
components or COTS (Commercial-off-the-shelf) components.

Phases

Requirements Engineering
System design with reuse
Component analysis/Qualification
Adaptation
Assembly and integration components tested together.
Evolution and maintenance

This approach is becoming increasingly used as component standards have emerged

Process Models Software Engineering

Page 6

Anda mungkin juga menyukai