Professional Documents
Culture Documents
The software process provides a strategy that a software development team employs in order to build quality
software. It is chosen based on the nature of the project and application, methods and tools to be used, and the
management and work products that are required. Pressman provides a graphical representation of the software
process. According to him, it provides the framework from which a comprehensive plan for software development
can be established. It consists of framework activities, tasks sets and umbrella activities.
yn
T
Mi T Task Set 1
Tasks
D
S D Milestones
S Deliverables
SQA Points
Umbrella Activities
Framework of Activities
These are activities that are performed by the people involved in the development process applicable to any
software project regardless of project size, composition of the development team, and complexity of the problem.
They are also known as phases of the software development process.
Task Sets
Each of the activities in the process framework defines a set of tasks. These tasks would have milestones,
deliverables or work products and software quality assurance (SQA) points. They are modified and adjusted to
the specific characteristic of the software project, and the requirements of the software.
Umbrella Activities
These are activities that supports the framework of activities as the software development project progresses
such as software project management, change management, requirements management, formal technical
reviews etc.
Requirements
Engineering
Design
Engineering
Coding
Testing
Operation
and
Maintenance
Prototyping Model
To aid in the understanding of end-user requirements, prototypes are built. Prototypes are partially developed
software that enable end-users and developers examine aspects of the proposed system and decide if it is
included in the final software product. This approach is best suited for the following situations:
A customer defines a set of general objectives for the software but does not identify detailed input,
processing, or output requirements.
The developer may be unsure of the efficiency of an algorithm, the adaptability of a technology, or
the form that human-computer interaction should take.
Figure 1.4 shows this process model.
Listen
to
Customers
Build or Revise
Prototype by
Developers
Test-drive the
Prototype by
Customer
FuntionalPartition
2- Team
Desig
n
Engineering
Requirements
Engineering
FuntionalPartition
1- Team
Requirements
Engineering
Design
Engineering
Design
Engineering
Coding
Coding
Coding
Testing
Testing
Testing
Turn-over
Turn-over
Turn-over
60 90 Days
Figure 1.5 Rapid Application Development
First Increment
Second Increment
Third Increment
Requirements
Engineering
Requirements
Engineering
Requirements
Engineering
Design
Engineering
Design
Engineering
Coding
Design
Engineering
Coding
Testing
Coding
Testing
Delivery
of the 1st
Increment
Turn-over
Second SW
Increment
First
SW Increment
Testing
First
SW Increment
Turn-over
Second SW
Increment
Third
SW
Increment
First
SW Increment
Spiral Model
It was originally proposed by Boehm. It is an evolutionary software process model that couples the iterative
nature of prototyping with the controlled and systematic aspects of linear sequential model. It provides potential
rapid development of incremental versions of the software. An important feature of this model is that it has risk
analysis as one of its framework of activities. Therefore, it requires risk assessment expertise. Figure 1.7 shows
an example of a spiral model.
Planning
Communication
Risk Analysis
Evaluation
A.
B.
C.
D.
Planning
Communication
D C
Risk
Analysis
B
OO Analysis &
Design
Coding &
Release
A.
B.
C.
D.
Evaluation
Build
New Class
Get the
Classes
Put New
Classes in
Library
Analysis
Activity
Develop
Model
Start
Enter
as New
Baseline
Review
Model
Revise
Model
End
Wait for
Changes
Formal Methods
The Formal Methods is a software engineering approach which encompasses a set of activities that lead to
mathematical specification of the software. It provides a mechanism for removing many of the problems that are
difficult to overcome using other software engineering paradigm. It serves as a means to verify, discover and
correct errors that might otherwise be undetected.
Factors that Affect the Choice of Process Model
Type of the Project
Methods and Tools to be Used
Requirements of the Stakeholders
Common Sense and Judgment
Understanding Systems
The software project that needs to be developed revolves around systems. Systems consists of a group of
entities or components, interacting together to form specific interrelationships, organized by means of structure,
and working together to achieve a common goal. Understanding systems provides a context for any project
through the definition of the boundaries of the projects. It asks the question, "What is included in the project?
What is not?" In defining the system boundaries, a software engineer discovers the following:
entities or group of entities that are related and organized in some way within the system, either they
provide input, do activities or receive output;
activities or actions that must be performed by the entities or group of entities in order to achieve the
purpose of the system;
a list of inputs; and
a list of outputs.
As an example, Figure 1.10 shows the system boundaries of the case study. It shows elements of this system
through the use of the context diagram.
ENTITIES
INPUTS
OUTPUTS
ENTITIES
Applicant
Coach
application form
mock
try-out
schedule
ACTIVITIES:
submit application
schedule mock try-outs
assign applicants to a squad
membership
reports
squad
listings
Club Staff
Club Staff
Entities that are involved in this system are the applicant, club staff and coach. They are represented as
rectangular boxes. They are related with one another by performing certain activities within this system. The
major activities that are performed are the submission of the application forms, scheduling of mock try-outs and
the assignment of the applicant to a squad. They are represented by a circle in the middle that defines the
functionality of maintaining club membership information. To perform these actions, a list of inputs are necessary,
specifically, application forms and the schedule of the mock try-outs. They are represented by an arrow with the
name of the data being passed. The arrow head indicates the flow of the data. The results that are expected from
this system are the membership reports and importantly, the squad listings. Again, they are represented by an
arrow with the name of the data being passed. The arrow head indicates the flow of the data. The goal of this
system is to handle club membership application.