2.3 Software Process Models
2.3 Software Process Models
I. Feasibility Study:
The main goal of this phase is to determine whether it would be financially
and technically feasible to develop the software.
This also involves understanding the problem and then determines the
various possible strategies to solve the problem.
II. Requirements analysis and specification:
Firstly all the requirements regarding the software are gathered from the
customer and then the gathered requirements are analysed.
These analysed requirements are documented in a software requirement
specification (SRS) document.
III. Design:
The aim of the design phase is to transform the requirements specified in the
SRS document into a structure that is suitable for implementation in some
programming language.
IV. Coding and Unit testing:
In coding phase software design is translated into source code using any
suitable programming language. Thus each designed module is coded. The
aim of the unit testing phase is to check whether each module is working
properly or not.
VI. Maintenance:
Maintenance is the most important phase of a software life cycle. The effort
spent on maintenance is the 60% of the total effort spent to develop full
software.
Quick decision
In this stage, a simple design of the system is created. However, it is not a complete
design. It gives a brief idea of the system to the user.
Build a Prototype
In this phase, an actual prototype is designed based on the information gathered from
quick design. It is a small working model of the required system.
Refining prototype
If the user is not happy with the current prototype, you need to refine the prototype
according to the user's feedback and suggestions.
Once the user is satisfied with the developed prototype, a final system is developed
based on the approved final prototype.
1. Incremental Model
2. Spiral Model
3. WINWIN Spiral Model
4. Concurrent Development model
1. Incremental Model
The system is put into production when the first increment is delivered.
The first increment is often a core product where the basic requirements are addressed,
and supplementary features are added in the next increments.
2. Spiral Model
Each phase of Spiral Model is divided into four quadrants as shown in the above figure.
The functions of these four quadrants are discussed below:
I. Objectives determination and identify alternative solutions: Requirements
are gathered from the customers and the objectives are identified, elaborated and
analyzed at the start of every phase.
II. Identify and resolve Risks: During the second quadrant all the possible
solutions are evaluated to select the best possible solution. Then the risks
associated with that solution is identified and the risks are resolved using the
best possible strategy.
III. Develop next version of the Product: During the third quadrant, the identified
features are developed and verified through testing..
IV. Review and plan for the next Phase: In the fourth quadrant, the Customers
evaluate the so far developed version of the software. In the end, planning for
the next phase is started.
3. WINWIN Spiral Model
4. Concurrent Development model
According to this model all the software engineering activities, analysis, design etc
are built / performed parallel with each other.
And for each of the activity, a state transition diagram is made.
All the events of an activity are shown as states and there should be transitions among
them.
Such type of models is applicable to all types of software development and provides
an accurate picture of the current state of a project.
5.2 COCOMO Model
The COCOMO Model stands for Constructive Cost Model. And it is a
procedural software cost estimation model.
It is used as a process of reliably predicting the various parameters associated with
making a project such as size, effort, cost, time and quality.
The key parameters which define the quality of any software products,
Effort: Amount of labour that will be required to complete a task. It is measured in
person-months units.
Schedule: Simply means the amount of time required for the completion of the job,
which is, of course, proportional to the effort put. It is measured in the units of time
such as weeks, months.
If program size includes a set of “cost drivers” with personnel and project attributes,
subjective assessments of products and hardware then it can be computed as software
development effort.
Product attributes
Hardware attributes
Personnel attributes
Project attributes
Along with characteristics of an intermediate model this model also assesses the cost
driver’s impact on each step of the software engineering process. There are a total of 5 phases
of detailed COCOMO.
where,
where,