Lecture 2 - Software Process Models - 1
Lecture 2 - Software Process Models - 1
ENGINEERING
Software Process Models - 1
BESE 28 (A,B,C)
1
The Software Process
■ A structured set of activities required to develop a software system.
3
What is a Software Process Model?
4
Process Activities
■ Real software processes are inter-leaved sequences of technical, collaborative
and managerial activities with the overall goal of specifying, designing,
implementing and testing a software system.
5
Basic Process Steps in all Software Development
1. Feasibility and
2. Requirements *
planning
3. System and * *
4. Implementation
program design
*
5. Acceptance 6. Operation and
and release maintenance
*These steps may be repeated many times during the development cycle.
6
Process Step: Feasibility
7
Process Step: Requirements
■ Requirements define the function of the system
from the client's viewpoint
8
Process Step: Requirements
■ This step is sometimes divided into:
– Requirements analysis
– Requirements definition
– Requirements specification
9
The Requirements Engineering Process
10
Process Step: System Design
■ Design describes the system from the software
developers' viewpoint
■ System design:
– Establish a system architecture, both hardware and
software, that matches the requirements
■ Program design:
– Represent the software functions in a form that can be
transformed into one or more executable programs
12
Design Activities
Architectural design, where you identify the overall structure of the system, the principal
components (sometimes called sub-systems or modules), their relationships and how they are
distributed.
Interface design, where you define the interfaces between system components.
Component design, where you take each system component and design how it will operate.
Database design, where you design the system data structures and how these are to be
represented in a database.
13
Process Step: Implementation
Implementation (coding)
■ The software design is realized as a set of programs or
program units.
■ These software components may be written by the
development team, acquired from elsewhere, or modified
from existing components.
Program testing
■ Program testing by the development staff is an integral part
of implementation.
■ Individual components are tested against the design
■ The components are integrated and tested against the design
as a complete system.
14
Process Step: Acceptance and
Release
Testing
■ The system is tested against the requirements by the client ,
often with selected customers and users.
15
Stages of Testing
16
Testing Stages
17
Process Step: Operation and
Maintenance
■ Operation:
– The system is put into practical use.
■ Maintenance:
– Errors and problems are identified and fixed.
■ Evolution:
– The system evolves over time as requirements change,
to add new functions, or adapt to a changing technical
environment.
■ Phase out:
– The system is withdrawn from service.
18
Software Evolution
■ Software is inherently flexible and can change.
■ As requirements change through changing business circumstances, the software that supports the
business must also evolve and change.
19
Plan-Driven and Agile Processes
■ Plan-driven Processes are processes where all the process activities are planned in advance and
progress is measured against this plan.
■ In Agile Processes, planning is incremental, and it is easier to change the process to reflect
changing customer requirements.
■ In practice, most practical processes include elements of both plan-driven and agile approaches.
20
Software 1. The Waterfall Model
Process Models
– Plan-driven model.
– Separate and distinct phases of
specification and development.
21
The Waterfall Model
22
The Waterfall Model
23
Waterfall Model Phases
■ There are separate identified phases in the waterfall model:
– Requirements analysis and definition
– System and software design
– Implementation and unit testing
– Integration and system testing
– Operation and maintenance
■ In principle, a phase must be completed before moving onto the next phase.
24
■ Advantages
Waterfall – Process visibility
■ Disadvantages
■ In practice, each stage in the process reveals new understanding of
the previous stages, which often requires the earlier stages to be
revised.
25
Water Fall Model - Discussion
■ A pure sequential model is impossible
■ Examples:
– A feasibility study cannot create a proposed budget and schedule without a
preliminary study of the requirements and a tentative design.
– Detailed design and implementation reveal gaps in the requirements
specification.
– Requirements and/or technology may change during the development.
■ The waterfall model is mostly used for large systems engineering projects
where a system is developed at several sites.
– In those circumstances, the plan-driven nature of the waterfall model helps
coordinate the work.
27
Sequential ■ Sequential processes work best when the requirements are well
understood, and the design is straightforward
Development
■ Examples:
– Conversions of manual data processing systems where the
requirements were well understood and few changes were made
during the development (e.g., electricity billing).
28
Software 1. The Waterfall Model
Process Models
■ Plan-driven model.
■ Separate and distinct phases of specification
and development.
2. Incremental Model
■ Specification, development and validation are
interleaved.
■ May be plan-driven or agile.
29
Incremental Development
■ In Incremental Development,
– You have all the requirements
– you design the complete product first. You only leave out details that you can
safely decide later
– Then you slice it up into chunks and build each separately
– When you finish a chunk (module) you integrate it with previously
completed parts, so they work as a whole
30
Incremental Development
31
32
Example
33
Incremental Development and
Delivery
Incremental Development
■ Develop the system in increments and evaluate each increment
before proceeding to the development of the next increment;
■ Normal approach used in agile methods;
■ Evaluation done by user/customer proxy.
Incremental Delivery
■ Deploy an increment for use by end users
■ More realistic evaluation about practical use of software;
■ Difficult to implement for replacement systems as increments
have less functionality than the system being replaced.
34
Incremental Delivery
35
Incremental Delivery
■ Rather than deliver the system as a single delivery , the
development and delivery is broken down into increments
with each increment delivering part of the required
functionality.
36
Advantages and Disadvantages of Incremental
Model
Advantages Disadvantages
The software will be generated quickly during the It requires a good planning designing
software life cycle
Problems might cause due to system architecture as
It is flexible and less expensive to change such not all requirements collected up front for the
requirements and scope entire software lifecycle
Major requirements must be defined; however, some details can evolve with time.
When software engineering team are not very well skilled or trained
Such methodology is more in use for web application and product-based companies
38
Software 1. The Waterfall Model
2. Incremental Model
■ Specification, development and validation are
interleaved.
■ May be plan-driven or agile.
3. Iterative Model
■ the repetitive application of the core development
activities
39
Iterative Development
■ Iterative development is a lot like inventing discovering what
and how you need as you go
■ You start with a fair idea of what you want the product to
accomplish, and you use a process of successive
approximation to design and build it
■ An iteration consists of
– distinct set of activities
– conducted according to a dedicated (iteration ) plan
– With a set of objective , measurable evaluation criteria
– That provides business value
42
Iterative Model
43
Iterative Model - Advantages
In iterative model we can only create a high-level design of the application before we begin
to build the product and define the design solution for the entire product. Later on, we can
design and built a skeleton version of that, and then evolved the design based on what had
been built.
In iterative model we are building and improving the product step by step. Hence, we can
track the defects at early stages. This avoids the downward flow of the defects.
In iterative model we can get the reliable user feedback. When presenting sketches and
blueprints of the product to users for their feedback, we are effectively asking them to
imagine how the product will work.
In iterative model less time is spent on documenting and more time is given for designing.
44
Iterative Model - Disadvantages
Costly system architecture or design issues may arise because not all requirements are
gathered up front for the entire lifecycle
45
When to use Iterative Model?
There is a need to get a Resources with needed There are some high-risk
product to the market skill set are not available features and goals.
early.
46
Difference between Incremental and Iterative
Another important difference is the focus on separating parts of the product Modular
design is a core characteristic of incremental development, but not of iterative
development
47
48
References
49