Professional Documents
Culture Documents
Se Unit 1.2
Se Unit 1.2
Se Unit 1.2
Software Processes
Software Process
A software process is a coherent set of activities, procedures,
policies, organizational structures, constraints, technologies,
and artifacts that are needed to develop software products.
The main goal of a software process is to produce quality
software with defined constraints.
A software process is a set of ordered activities carried out to
produce a software product.
An activity is a specified task performed to achieve the process
objectives.
Each activity of software process involves tools and
technologies, procedures, and artifacts.
2
Process, Project & Product
Process
Used
Converted
into Produces
Project Product
Used in
Resources
4
Software Process Model
Definition phase
Umbrella activities
Development phase
Implementation phase
6
Generic representation of process model
Definition phase concentrates on understanding the problem and planning
for the process model.
The activities may include problem formulation, problem analysis, system
engineering, and project planning for the process.
Development phase focuses on determining the solution of the problem
with the help of the umbrella activities.
The main activities of this phase are designing the architecture and algorithms
of the system, writing codes, and testing the software.
Implementation phase: Deployment, change management, defect
removal, and maintenance activities are performed in this phase.
The umbrella activities are responsible for ensuring the proper execution of
definition, development, and implementation phases.
The umbrella activities are project management, quality assurance,
configuration management, risk management, work products preparation and
deployment, and process improvement.
8
Elements of Software Process
Understandability Rapidity
Effectiveness Repeatability
Predictability quality,
Maintainability adoptability,
Reliability acceptability,
Changeability visibility,
Improvement supportability,
Monitoring and Tracking and so on.
10
Understandability
A software process must be comprehensible for its users.
a prerequisite for performing any task.
Process should be specified with its adaptation procedure, execution
mechanism, supporting tools and technology.
Effectiveness
A process must ensure the required deliverables and customer
expectations and it must follow the specified procedure.
Effectiveness of a process depends on certain performance indicators
such as skills, fund availability, quality of work
products.
11
Predictability
Its about forecasting the outcomes before the completion of a process.
it is the basis through which the cost, quality and resource
requirements are specified in a project.
The quality of a product and its deliverables can be expected according
to the success rate of the process.
The process can be changed or controlled to achieve the demand
outcomes whenever there is a mismatch of quality and constraints.
Maintainability
It is the flexibility to maintain software through change requirements,
defect detection and correlation, adopting in new operating
environments.
It is a life long process and sometimes its cost exceeds the actual
software development cost.
12
Reliability :
it refers to the capability of performing the intended tasks.
Rigorous testing procedures are carried out before applying a process
in any production process.
Reliability can be more realist after having its maturity and past
results.
Changeability:
It is the acceptability of changes done in software.
Changeability is classified as robustness, modifiability and scalability.
Robustness : process does not change the product quality due to its
internal and external changes.
Scalability: is the ability to change the attributes so that a process
can be used in smaller to larger software development.
Modifiability : ability of adoptability of change occurrence.
13
Improvement
It concentrated on identifying and prototyping the possibilities for
improvements in the process itself.
It helps to enhance quality of the delivered products for providing
more satisfactory services to the users.
Improvement standards: quality of improvement paradigm (QIP),
capability maturity model integration (CMMI)
Monitoring and tracking:
Can help in determining predictability and productivity.
Helps in tracking the progress of the project based upon the past
experience of the process.
Feedback from earlier projects and products are considered during
the assessment and improvement of the process.
14
Rapidity
It is the speed of a process to produce the products under
specification for its timely completion.
Quality of the product should be maintained
Understandability and tracking of the process can accelerate the
production process.
Repeatability
it measures the consistency of a process so that it can be used in
various similar projects.
A process is said to be repeatable if it is able to produce an
artifact number of times without the loss of quality attributes.
15
Process Classification
Software processes may be classified as
product development process,
project management process,
change management process,
process improvements,
quality management process.
16
Process Classification
Product Development Process
Product development processes focus mainly on producing
software products.
These processes involve various techniques, tools, and
technologies for developing software.
Such processes include various activities like conceptualization,
designing, coding, testing, and implementation of a new or
existing system.
There are certain work products of these activities, such as
software requirements specifications (SRS), design models,
source codes, test reports, and documentation
The most widely used software development process models are
the waterfall model, prototyping model, spiral model, agile
model, (Rational Unified Process) RUP, and so on. models.
17
Process Classification
Project Management Process
Process Classification
Configuration Management Process
Collectively, these activities are called the software development life cycle
(SDLC) or simply software life cycle and each of these activities are called
life cycle phase.
Maintenance Analysis
SDLC
Deployment Design
Testing Coding
23
Feasibility study ensures that the candidate system is able to satisfy the
user needs; promotes operational, effective use of resources; and is cost
effective.
Requirements Analysis
Requirement analysis is the process of collecting factual data,
understanding the processes involved, defining the problem, and
providing a document for further software development.
Requirement analysis is a systematic approach to elicit, organize,
and document the requirements of a system.
The requirement analysis phase consists of three main activities:
requirements elicitation, requirements specification, and
requirements verification and validation.
26
Phased Life Cycle Activities
Software Design
Software design focuses on the solution domain of the project on
the basis of the requirement document prepared during the
analysis phase.
The design phase has two aspects: physical design and logical
design.
31
Prototyping model
Incremental model
Spiral model
32
Classical Waterfall Model
The waterfall model is a classical development process model proposed
by R. W. Royce in 1970.
In this model, software development proceeds through an orderly
sequence of transitions from one phase to the next in order (like a
waterfall).
It is the simplest and the most widely used model in development.
This model produces standard outputs at the end of every phase, which is
called work products.
This model was enhanced with a feedback process, which is referred to as
an iterative model.
33
36
Classical Waterfall Model
Advantages
The main advantage of the waterfall model is that it is easy to
understand and implement.
Due to the straightforward organization of phases, it is fit for
other engineering process models, such as civil, mechanical, etc.
It is a document-driven process that can help new people to
transfer knowledge.
Milestones and deliverables at each stage can be used to monitor
the progress of the project.
This model works well on large and mature products. It is not
well suited for small teams and projects.
Where the requirements are well understood and the developers
are confident, the waterfall model works well.
37
41
42
Prototyping Model
43
Prototyping Model
Prototyping is an alternative in which partial working software (i.e.
a prototype) is initially developed instead of developing the final
product.
IEEE defines prototyping as a type of development in which
emphasis is placed on developing prototypes early in the
development process to permit early feedback and analysis in
support of the development process.
Prototype development is a toy implementation, which provides a
chance to the customer to give feedback for final product
development.
A prototype provides limited functionalities, low reliability, and
insufficient performance as compared to the actual software.
A prototype helps customer to understand the requirements that can
further reduce the possibility of requirement changes.
44
Prototyping Model
Information
gathering
Quick
design
Refine Build
requirements prototype
Coding
Testing
Deployment
Maintenance
Prototyping Model
46
Incremental Model
47
Incremental Model
Iteration 1 Release 1
Design Coding Testing Deployment
Iteration 2 Release 2
Requirement Design Coding Testing Deployment Operation
analysis and
maintenance
Iteration N Release N
Design Coding Testing Deployment
48
Incremental Model
The requirements are functionally divided and prioritized according to the
needs of the customers.
A blueprint of the product based on the prioritized requirements is also
designed, which describes dependency of tasks on each other.
A project control list is prepared, describing the order of the tasks to be
performed and outcomes of the task to be released.
Each task in the project control list is treated as a mini project. Each item in
the list is a module, which is to be developed in increments.
Each task is removed from the project control list and developed using the
waterfall model in a sequential manner.
Each new release is integrated with the existing increments to provide
enhanced functionality with each delivered increment.
The length of iterations is generally kept very short and fine. For example,
an iteration can be a duration of 6 weeks, 10 weeks, etc.
The number of iterations depends upon the nature of the project and the
features it supports. 49
Incremental Model
50
Incremental Model
51
Spiral Model
52
Spiral Model
53
Spiral Model
Each loop in the spiral is split into four quadrants. Each of these four
quadrants is used for the development of each phase.
Determine objectives, alternatives, and constraints. Objectives of specific
phase are determined within the project scope. The product and process
constraints are also defined. Alternative strategies for performing the
phases are planned.
Evaluate alternatives; identify and resolve risks: the aspects of
uncertainties which are sources of possible risks are identified. Alternative
solutions are evaluated to resolve those risks.
Develop, verify the next level product: if the prototype is functionally
useful and there is less possibility of risks, the products evolution begins
using the development model . The work product is verified and validated
for its correctness and reliability.
Plan for the next phase: upon successful completion of the phase, a plan
is proposed for initiating thee next phase of the project. The plan of a phase
may also include partition of the product or component into cycle for
successive development by the engineering
54
Spiral Model
55
Spiral Model
56
Agile Process Model
57
58
Agile Process Model
Extreme Programming
Coding
Planning Refactoring
Pair
programming
Test
60
Extreme Programming
61
Scrum
Scrum is another popular agile framework with a set of roles and
practices. I
It is also an iterative process with the idea of timeboxing, which
is known as sprint.
Scrum relies on a self-organizing, cross-functional team.
There are two roles in the Scrum process: pigs and chickens.
Pigs group includes product owner, Scrum master, and a Scrum
team.
managers
In the Scrum process, product backlog describes "what" will be
built, which is managed by the product owner.
62
Scrum
63
Scrum
64
RUP Process Model
66
RUP Process Model
Inception phase:
It establish the business case for the system and delimit the
project scope.
The business case includes success criteria, risk
assessment, and estimate of the resources needed; and a
phase plan showing dates of major milestones.
This phase produces vision document of the project, initial
use-case model, initial risk assessment, business model,
and a project plan showing the phases and iterations.
At this stage, customers will be clear with their requirement
and life cycle objectives milestone will be produced.
67
Elaboration phase:
It analyzes the problem domain, establish an architectural
framework, develop the project plan, and eliminate the highest
risk elements of the project.
The architectural decisions have to be made with an
understanding of the whole system: its scope, major functional
and nonfunctional requirements.
In the elaboration phase, an executable architecture prototype is
built in one or more iterations, depending on the scope, size, risk,
and novelty of the project.
At the end of the elaboration phase, the second important project
milestone will be the life cycle architecture milestone.
68
RUP Process Model
Construction phase:
During the construction phase, all application features are
developed, integrated, and thoroughly tested.
This phase also focuses on the user manuals and the current
release details.
At the end of this phase, a beta release becomes operational
for the customers.
69
Transition phase:
The purpose of the transition phase is to move the software
product to the user community for working.
This phase includes several iterations, including beta
releases, general availability releases, as well as bug-fix
and enhancement releases.
Effort is made in developing user-oriented documentation,
training users, supporting users in their initial product use,
and reacting to user feedback.
70
RUP Process Model
Each phase in the RUP can be further broken down into iterations.
Each iteration in the RUP mitigates risks, manage changes, provide reuse,
and produces better quality products as compared to the traditional
waterfall process.
The RUP is suitable for small development teams as well as large
development organizations.
It can be found in a simple and clear process architecture that provides
commonality across a family of processes.
Workflow represents the sequence of activities that produces a result of the
observable value.
Workflows are divided into six core workflows (business modeling
workflow, requirements workflow, analysis and design workflow,
implementation workflow, test workflow, deployment workflow) and three
supporting workflows (project management workflow, configuration and
change management workflow, and environment workflow).
71
72
Summary
73