Lecture 2
Lecture 2
PROCESSES
DEPARTMENT OF COMPUTER
SCIENCE
BULE HORA UNIVERSITY
SOFTWARE PROCESS
A process is an organized set of activities, which
transforms inputs to outputs.
We can use synonyms of process such as: procedure,
method, course of action, etc.
Software engineering, as a discipline, has many
processes.
Software process: organizing a structured set of
activities to develop software systems.
These processes help in performing different software
engineering activities in an organized manner.
CHARACTERISTICS PROCESS
Produces intermediate and final products
Each process activity has entry and exit criteria
Activities are organized in sequence, so timing is
clear
Each process guiding principles, including goals of
each activity
Uses resources, subject to set of constraints (such as
schedule, no. of people working )
May be composed of sub-processes with hierarchy or
links
CON...
There are many different software processes but all
must include four activities
Software specification The functionality of the
software and constraints on its operation must be
defined.
Software design and implementation The software
to meet the specification must be produced.
Software validation The software must be validated
to ensure that it does what the customer wants.
Software evolution The software must evolve to meet
changing customer needs.
SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)
The software development lifecycle begins with the
identification of a requirement for software and ends
with the formal verification of the developed
software against that requirement. So SDLC goes
through a series of phases.
Helps to understand the entire process
Waterfall Deficiencies
Technology is understood
improved communication
Prototyping Weaknesses
Sometimes expensive
Overall maintainability may be overlooked
Process may continue forever (scope creep)
CON...
What is the main goal of this model?
To avoid early freezing of the requirements
Instead of freezing the requirement, prototype is built to
understand the requirement
To enable the client to better understand the requirement
When to use the Prototyping Model?
When requirements are not known at the beginning of
the project
When requirements are unstable and constantly
changing
When quick demonstrations are required
When user requires proof of concept
INCREMENTAL PROCESS MODEL
Incremental development is dividing the project in
various independent parts and developing these sub-
parts at the same rate/ different rate and integrating
them when ready.
Steps
Develop a system in smaller portions at a time
Then slowly add increased functionality
Each subsequent release of the system adds function
to the previous release, until all designed
functionality has been implemented.
CON... Define outline
requirements
Assign requirements
to increments
Design system
architectur
e
V Model Weaknesses
Does not support overlapping of phases