Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
19 views

Software Process Models

The document discusses several software process models including the waterfall model, fountain model, evolutionary development, and rapid application development (RAD) model. The waterfall model involves separate sequential phases of requirements, design, implementation, testing, and maintenance. The fountain model is similar but acknowledges more overlap and feedback between phases. Evolutionary development iteratively develops prototypes with customer feedback to evolve requirements. RAD aims to accelerate development through a component-based approach with short phases of business modeling, data modeling, process modeling, and application design/testing.

Uploaded by

Kahlea Rajkumar
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views

Software Process Models

The document discusses several software process models including the waterfall model, fountain model, evolutionary development, and rapid application development (RAD) model. The waterfall model involves separate sequential phases of requirements, design, implementation, testing, and maintenance. The fountain model is similar but acknowledges more overlap and feedback between phases. Evolutionary development iteratively develops prototypes with customer feedback to evolve requirements. RAD aims to accelerate development through a component-based approach with short phases of business modeling, data modeling, process modeling, and application design/testing.

Uploaded by

Kahlea Rajkumar
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 47

Software Process Models

Software Processes
 Coherent sets of activities for analysing, designing,
implementing and testing software systems
The software process
 A structured set of activities required to develop a
software system
 Analysis: determining what the software will do
 Design: how will the system accomplish it
 Implementation: writing code
 Validation: finding errors
 Evolution: modifying the software
 A software process model is an abstract representation
of a process. It presents a description of a process from
some particular perspective
Generic software process models
 The waterfall model
 Separate and distinct phases of specification and development
 Fountain development
 Separate and distinct phases of specification and development
with some overlapping
 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
Waterfall model
Waterfall model phases
 Requirement definition:
In this Phase , the requirements for the software are
established through discussion with client and are
then documented.
 System and software designing:
In this phase , the requirements are converted into
design to be used in the next phase. The design
includes various elements such as database structures,
software architecture and procedures.
The design is first passes through the quality test and
then documented.
Waterfall model phases
 Implementation and unit testing:
In this phase the actual coding of the software is done.
The design of the previous phase is converted into the
code. Unit testing involves verifying that each unit meets
its specification.
 Integration and system testing:
In this phase, the individual program units or programs
are integrated and tested as a complete system to ensure
that the software requirements have been met (i.e. the
output generated is checked to ensure that it matches
the requirements). After testing, the software system is
delivered to the customer.
Waterfall model phases
 Operation and maintenance:
Normally (although not necessarily) this is the longest
life-cycle phase. The software is installed and put into
practical use. Maintenance involves correcting errors
which were not discovered in earlier stages of the life
cycle, improving the implementation of the software units
and enhancing the software's services as new
requirements are discovered.

 The drawback of the waterfall model is the difficulty of


accommodating change after the process is underway
Waterfall model
 In principle, the result of each phase is one or more
documents which are approved ('signed off').
 The following phase should not start until the previous
phase has finished. In practice, these stages overlap and
feed information to each other.
 During design, problems with requirements are identified,
during coding design problems are found and so on.
 The software process in not a simple linear model but
involves a sequence of iterations of the development
activities.
Waterfall model
 Because of the costs of producing and approving documents,
iterations are costly and involve significant rework.
 Therefore, after a small number of iterations, it is normal to
freeze parts of the development, such as the specification, and
to continue with the later development stages.
 Problems are left for later resolution, ignored or are
programmed around.
 This premature freezing of requirements may mean that the
software won't do what the user wants.
 It may also lead to badly structured software as design
problems are circumvented by implementation tricks.
Waterfall model
 During the final life-cycle phase (operation and
maintenance) the software is put into use.
 Errors and omissions in the original software
requirements are discovered.
 Program and design errors emerge and the need for new
functionality is identified.
 The software must therefore evolve to remain useful.
 Making these changes (software maintenance) may involve
repeating some or all previous process stages.
Waterfall Model Advantages
 It is easy to understand and implement.

 It prohibits skipping any phase in the sequence.

 It is ideal for small projects and when the requirements


and goals of the project are well established in advance.
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
Fountain Model
 Based on the waterfall model
 But observes that the sequence always contains cycles
 Reflects the fact that some phases cannot begin before
others
 ...and that some phases are poorly delineated
 A mental image to help visualize what actually happens in
many real software development projects
Fountain Model
Evolutionary development
 Evolutionary development is based on the idea of
developing an initial implementation, exposing this to user
comment and refining this through many versions until an
adequate system has been developed.
 Rather than have separate specification, development and
validation activities, these are carried out concurrently
with rapid feedback across these activities.
Evolutionary development
There are two types of evolutionary development:
 Exploratory development
 Objective is to work with customers and to evolve a final
system from an initial outline specification. The development
starts with the parts of the system which are understood. The
system evolves by adding new features as they are proposed by
the customer.
 Throw-away prototyping
 Objective is to understand the system requirements. The
prototype concentrates on experimenting with those parts of
the customer requirements which are poorly understood.
Evolutionary development
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
Evolutionary Development Advantages
 Due the interaction between the client and developer
right from the beginning , the objectives and
requirements of the software is well established.
 Suitable for the projects when client has not clear
idea about his requirements.
 The client can provide its input during development
of the prototype.
 The prototype serves as an aid for the development
of the final product.
Evolutionary Development
Disadvantages
 The quality of the software development is
compromised in the rush to present a working
version of the software to the client.
 The client look at the working version of the product
at the outset and expect the final version of the
product to be deliver immediately. This cause
additional pressure over the developers to adopt
shortcut in order to meet the final product deadline.
 It becomes difficult for the developer to convince the
client as why the prototype has to be discarded.
Rapid Application Development:
 RAD is a high speed version of waterfall model. It is
characterized by a very short development life cycle,
in which the objective is to accelerate the
development.
 The RAD model follows a component based
approach.
 In this approach individual components developed by
different people are assembled to develop a large
software system.
Rapid Application Development Phases:
 The RAD model consist of the following phases.
 Business Modeling:
 In this phase, define the flow of information within the
organization, so that it covers all the functions. This helps in
clearly understand the nature, type ,source and process of
information.
 Data Modeling:
 In this phase, convert the component of the information
flow into a set of data objects. Each object is referred as an
Entity.
Rapid Application Development Phases:
 Process Modeling:
 In this phase, the data objects defined in the previous phase
are used to depict the flow of information . In addition
adding , deleting, modifying and retrieving the data objects
are included in process modeling.
 Application Designing:
 In this phase, the generation of the application and coding
take place. Using fourth generation programming languages
or 4 GL tools is the preferred choice for the software
developers.
 Testing:
 In this phase, test the new program components.
Advantages of Using RAD Model:
 Due to emphasis on rapid development , it results in the
delivery of fully functional project in short time period.

 It encourages the development of program component


reusable.
Disadvantages of Using RAD Model:
 It requires dedication and commitment on the part of the
developers as well as the client to meet the deadline. If either
party is indifferent in needs of other, the project will run into
serious problem.
 Its application area is restricted to system that are modular
and reusable in nature.
 It is not suitable for the applications that have a high degree of
technical risk.
 It is not suitable for the large projects because they require
more manpower for creating multiple RAD groups.
Formal systems development
 Based on the transformation of a mathematical
specification through different representations to an
executable program
 Transformations are ‘correctness-preserving’ so it is
straightforward to show that the program conforms to its
specification
 Embodied in the ‘Cleanroom’ approach to software
development
Formal systems development
Formal transformations
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
Reuse-oriented development
 Based on systematic reuse where systems are integrated
from existing components or COTS (Commercial-off-the-
shelf) systems
 Process stages
 Component analysis
 Requirements modification
 System design with reuse
 Development and integration
 This approach is becoming more important but still
limited experience with it
Reuse-oriented development
Reuse-oriented development
 While the initial requirement specification stage and the
validation stage are comparable with other processes, the
intermediate stages in a reuse-oriented process are
different. These stages are:
 Component analysis Given the requirements specification, a
search is made for components to implement that
specification. Usually, there is not an exact match and the
components which may be used provide only some of the
functionality required.
Reuse-oriented development
 Requirements modification During this stage, the
requirements are analysed using information about the
component which have been discovered. They are then
modified to reflect the available components. Where
modifications are impossible, the component analysis
activity may be re-entered to search for alternative
solutions.
Reuse-oriented development
 System design with reuse During this phase, the framework
of the system is designed or an existing framework is
reused. The designers take into account the components
which are reused and organise the framework to cater
for this. Some new software may have to be designed if
reuseable components are not available.
 Development and integration Software which cannot be
bought is developed and the components and COTS
system are integrated to create the system. System
integration, in this model, may be part of the development
process rather than a separate activity.
Reuse-oriented development advantages
 Fast, cheap solution
 Explore solutions with existing products
 May give all the basic functionality
 Well defined integration project, easy to run.
 Open to outsourcing
 Build strategic supplier partnerships
Reuse-oriented development disadvantages
 Limited functionality/ compromise/ requirements drift.
 Component identification can be tricky – mistakes occur!
 Licensing problems: freeware, shareware, etc.
 Customer lock-in: license fees, maintainance fees,
upgrades …
 Compatibility issues/loss of control:
 Between components (doesn’t start!)
 During maintenance (suddenly stops!)
OTHER MODELS

These are not listed in the syllabus


Process iteration
 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
 Two (related) approaches
 Incremental development
 Spiral development
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
Incremental development
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
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
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
Spiral model of the software process
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
THE END

You might also like