You are on page 1of 16

Software Process Models

CS443-Software Eng. by Dr. Shouki A. Ebad -


1
Northern Border Univ.
Software Engineering Definition
 Software engineering is the establishment and use of
sound engineering principles in order to obtain
economically software that is reliable and works
efficiently on real machines (Author def.)
 Software Engineering is the application of a
systematic, disciplined, quantifiable approach to the
development, operation, and maintenance of
software; that is, the application of engineering to
software (The IEEE def.)

CS443-Software Eng. by Dr. Shouki A. Ebad -


2
Northern Border Univ.
A Generic View of Software Engineering
Engineering is the analysis, design, construction,
verification, and management of technical entities.
Regardless of the entity that is to be engineered, the
following six questions must be asked and answered:
1. What is the problem to be solved?
2. What are the characteristics of the entity that is used
to solve the problem?
3. How will the entity be realized?
4. How will the entity be constructed?
CS443-Software Eng. by Dr. Shouki A. Ebad -
3
Northern Border Univ.
A Generic View of Software Engineering
5. What approach will be used to uncover errors that
were made in the design and construction of the entity ?
6. How will the entity be supported over the long term,
when corrections, adaptations, and enhancements are
requested by users of the entity?

CS443-Software Eng. by Dr. Shouki A. Ebad -


4
Northern Border Univ.
Software Process
A process is a collection of activities and tasks that are
performed when some work product is to be created
The elements of a software process:
Activity
Task

CS443-Software Eng. by Dr. Shouki A. Ebad -


5
Northern Border Univ.
Software Process
An activity strives to achieve a broad objective (e.g.,
communication with stakeholders) and is applied
regardless of the application domain, size of the
project, complexity of the effort, or degree of rigor
with which software engineering is to be applied
A task focuses on a small, but well-defined objective
(e.g., design and test) that produces a tangible
outcome

CS443-Software Eng. by Dr. Shouki A. Ebad -


6
Northern Border Univ.
Software Process
Different software process models are
discussed:
Waterfall model
Incremental model
Formal methods
Agile method

CS443-Software Eng. by Dr. Shouki A. Ebad -


7
Northern Border Univ.
Waterfall Model

It is called the “classic life cycle” or the “linear


sequential model”
Waterfall model suggests a systematic, sequential
approach to software development that begins with
customer specification of requirements and
progresses through planning, modeling, construction,
and deployment, culminating in ongoing support of
the completed software

CS443-Software Eng. by Dr. Shouki A. Ebad -


8
Northern Border Univ.
Waterfall Model

Communicat ion
project init iat ion Planning
requirement gat hering estimating Modeling
scheduling
analysis Const ruct ion
tracking
design Deployment
code
t est delivery
support
f eedback

CS443-Software Eng. by Dr. Shouki A. Ebad -


9
Northern Border Univ.
Waterfall Model
Disadvantages:
Real projects rarely follow the sequential flow that
the model proposes
It is often difficult for the customer to state all
requirements explicitly
A working version of the program(s) will not be
available until late in the project time span
It leads to “blocking states”
 It is often inappropriate for today’s software (fast-
paced). It is suitable where requirements are fixed
and work is to proceed to completion in a linear
manner
CS443-Software Eng. by Dr. Shouki A. Ebad -
10
Northern Border Univ.
Incremental Model
The incremental model combines elements of the
waterfall model with the iterative philosophy of
prototyping
The incremental model applies linear sequences in a
staggered fashion as calendar time progress
The incremental model delivers a series of releases,
called increments, that provide progressively more
functionality for the customer as each increment is
delivered.

CS443-Software Eng. by Dr. Shouki A. Ebad -


11
Northern Border Univ.
Incremental Model

increment # n
Co m m u n i c a t i o n
Pla nning
M odeling
an aly s i s Co n s t ru c t i o n
de s ign
c ode De p l o y m e n t
t es t d e l i v e ry
fe e dba c k

deliv ery of
increment # 2 nt h increment

Co m m u n i c a t i o n
Pla nning

M odeling
analy s is Co n s t ru c t i o n
des ign c ode De p l o y m e n t
t es t d e l i v e ry
fe e dba c k
deliv ery of
increment # 1 2nd increment

Co m m u n i c a t i o n
Pla nning
M odeling
anal y s is Co n s t ru c t i o n
des i gn c ode De p l o y m e n t
t es t d e l i v e ry deliv ery of
fe e dba c k
1st increment

project calendar t ime

CS443-Software Eng. by Dr. Shouki A. Ebad -


12
Northern Border Univ.
Incremental Model
For example Word-processing software developed
using the incremental paradigm:
Basic file management, editing, and document
production functions in increment #1
More sophisticated editing and document
production capabilities in increment #2
Spelling and grammar checking in increment #3
Advanced page layout capability in increment #4

CS443-Software Eng. by Dr. Shouki A. Ebad -


13
Northern Border Univ.
Incremental Model
Incremental development is particularly useful when
staffing is unavailable for a complete implementation
by the business deadline that has been established for
the project
Early increments can be implemented with fewer
people . If the core product is well received, then
additional staff (if required) can be added to
implement the next increment

CS443-Software Eng. by Dr. Shouki A. Ebad -


14
Northern Border Univ.
Formal Methods Model
It emphasizes the mathematical specification of
requirements
 Formal methods enables a software engineer to
specify, develop, and verify a computer based system
by applying a rigorous, mathematical notation
A variation on it is called cleanroom software
engineering. Currently, it is applied by some
software development organization

CS443-Software Eng. by Dr. Shouki A. Ebad -


15
Northern Border Univ.
Formal Methods Model
Drawback:
The development of formal models is a time
consuming and expensive process
Because few software developers have the
necessary background to apply formal methods,
extensive training is required

CS443-Software Eng. by Dr. Shouki A. Ebad -


16
Northern Border Univ.

You might also like