Software Process Model
Software Process Model
Software Engineerin
What is Software?
● Software has a dual role. It is a product, but also a vehicle for delivering a
product.
● Internet Software :
Programs that support internet accesses and applications. For example,
search engine, browser, e-commerce software, authoring tools.
Software Engineering
● “A systematic approach to the analysis, design, implementation and
maintenance of software.”
(The Free On-Line Dictionary of Computing)
● “ The systematic application of tools and techniques in the
development of computer-based applications.”
(Sue Conger in The New Software Engineering)
● “ Software Engineering is about designing and developing
high-quality software.”
(Shari Lawrence Pfleeger in Software Engineering -- The Production
of Quality Software)
What is Software Engineering?
● Engineering: The Application of Science to the Solution of Practical Problems
● Software Engineering: The Application of CS to Building Practical Software
Systems
● Programming
– Individual Writes Complete Program
– One Person, One Computer
– Well-Defined Problem
– Programming-in-the-Small
● Software Engineering
– Individuals Write Program Components
– Team Assembles Complete Program
– Programming-in-the-Large
What is the difference between software engineering and
computer science?
● Software methods:
● Software engineering methods provide the technical “how to’s” for
building software.
● Software process:
Software engineering process is the glue that holds:
- technology together
- enables rational and timely development of computer
software.
Software engineering process is a framework of a set of key process
areas.
It forms a basis for:
- project management, budget and schedule control
- applications of technical methods
- product quality control
What is Software Engineering?
● Software tools:
- programs provide automated or semi-automated support for the
process and methods.
- programs support engineers to perform their tasks in a systematic
and/or automatic manner.
Why Software Engineering?
● Objectives:
- Identify new problems and solutions in software production.
- Study new systematic methods, principles, approaches for system
analysis,design, implementation, testing and maintenance.
- Provide new ways to control, manage, and monitor software process.
- Build new software tools and environment to support software
engineering.
Why Software Engineering?
Major Goals:
- To increase software productivity and quality.
- To effectively control software schedule and planning.
- To reduce the cost of software development.
- To meet the customers’ needs and requirements.
- To enhance the conduction of software engineering process.
- To improve the current software engineering practice.
- To support the engineers’ activities in a systematic and efficient
manner.
A Process Framework
Process Framework Activities
● Communication
● Planning
● Modeling
● Construction
● Deployment
Umbrella Activities
● Waterfall model
● Incremental process models
– Incremental model
– RAD model
● Evolutionary Process Models
– Prototyping model
– Spiral model
● Object oriented process model
WATERFALL MODEL
a.k.as Linear life cycle model or
COMMUNICATION classic life cycle model
Project initiation
Req. gathering
PLANNING
Estimating
Scheduling
tracking
MODELLING
Analysis
design
CONSTRUCTION
Code
Test
DEPLOYMENT
Delivery
Support
feedback
WATERFALL MODEL
● Deployment
– System Delivered to Customer/Market
– Bug Fixes and Version Releases Over Time
Strengths
● Easy to understand, easy to use
● Provides structure to inexperienced staff
● Milestones are well understood
● Sets requirements stability
● Good for management control (plan, staff, track)
● Works well when quality is more important than cost or schedule
Waterfall Drawbacks