Unit 4 SPI. notes
Unit 4 SPI. notes
1
Life Without a Formal Process
• Many process improvement experts see the
world as black and white.
– They often feel that there are bad software teams
without a formal process, and good teams that
have one in place.
– But the world is not that simple!
2
Life Without a Formal Process
• An organization that produces software
always has a software process
– It’s just not formal, or documented and
repeatable
– And teams without a formal process can be happy
and productive when they can point to their
successes!
– Except when their projects fail.
3
4
Software Process Improvement
Software process improvement enables
organizations to identify inefficiencies and
streamline their software development
processes.
By reducing redundancies and optimizing
workflows, teams can save time and resources,
ultimately contributing to faster development
cycles and higher-quality software products.
5
Software Process Improvement
• Software process improvement is the art and science
of changing an organization’s software process in
order to build better software.
• Software process improvement always involves
looking at the big picture.
– This means writing down the entire software process as a
whole and making sure that it is followed on each project.
– It involves looking at entire projects and identifying areas
that can be improved.
6
What is the approach of SPI in
software engineering?
• Software process improvement (SPI) is an
ongoing effort; your process will evolve over
time.
• You need to invest in, and support, SPI efforts
for them to be successful.
• The goal of SPI is to ensure that your
organization can define, implement, and
evolve one or more appropriate processes to
help you meet your IT goals.
7
SPI Process
8
SPI Process
1. Current Situation Evaluation
• This step is the initial phase of the process
and it is mainly to assess the current situation
of the software process by eliciting the
requirements from the stakeholders,
analyzing the current artifacts and
deliverables, and identifying the inefficiencies
from the software process.
• For example, individual interviews, group
interview, use-case scenarios, and
observations. 9
SPI Process
2. Improvement Planning
• After analyzing the current situation and the
improvement goals, the findings should be
categorized and prioritized according to
which one is the most important or have the
most severity.
• We should observe what is the new target
level of improvements should look like.
10
SPI Process
3. Improvement Implementation
• In this step, the planned activities are executed
and it puts the improvements into practice and
spreads it across the organization, what can be
effective at the 2nd, 3rd, and 4th step that
planning and implementation could be an iterative
way
• for example, implementing improvement for
improving requirements first, then implementing
the reduction for testing process time
11
SPI Process
4. Improvement Evaluation
• What is cannot be measured cannot be
improved, that’s why in this step, the impact
measurement is applied and compared
• Measurement, in general, permits an
organization to compare the rate of actual
change against its planned change and
allocate resources based on the gaps
between actual and expected progress.
12
Frameworks and Methodologies
• Models and certifications that help assess the state of
the organization’s process and serve as a framework
for improving that process.
– CMM, ISO 9000 and Six Sigma are frameworks
13
Capability Maturity Model
• The CMM defines the characteristics of a mature, capable
process in a way that can be measured and compared to
processes at other organizations.
– The CMM consists of areas of improvement, goals that must be
met for each area, and specific practices to be implemented.
– A software engineering process group within the organization
identifies problems and inefficiencies and defines practices to
address them.
– Independent assessors verify that an organization is in
compliance with CMM practices.
14
Objectives of CMMI :
• Fulfilling customer needs and expectations.
• Value creation for investors/stockholders.
• Market growth is increased.
• Improved quality of products and services.
• Enhanced reputation in Industry.
15
Maturity Levels
• Maturity Level 0: Incomplete. Ad hoc and unknown. …
• Maturity Level 1: Initial. Unpredictable and reactive. …
• Maturity Level 2: Managed. Managed on the project level.
• Maturity Level 3: Defined. Proactive, rather than reactive. ...
• Maturity Level 4: Quantitatively Managed. ...
• Maturity Level 5: Optimizing.
16
CMMI Model – Maturity Levels :
There are five maturity levels described as follows :
• Maturity level 1 : Initial
– processes are poorly managed or controlled.
– unpredictable outcomes of processes involved.
– ad hoc and chaotic approach used.
– No KPAs (Key Process Areas) defined.
– Lowest quality and highest risk.
19
Benefits of SPICE
• Improved Quality
• Increased efficiency
• Better risk management
• Improved customer satisfaction
• Better alignment with business goals
20
What is Personal Software Process (PSP)?
The personal software process (PSP) is focused on
individuals to improve their performance. The
PSP is an individual process, and it is a bottom-
up approach to software process improvement.
The PSP is a prescriptive process, it is a more
mature methodology with a well-defined set of
tools and techniques.
21
Key Features of Personal Software Process (PSP)
Following are the key features of the Personal Software
Process (PSP):
• Process-focused: PSP is a process-focused methodology
that emphasizes the importance of following a
disciplined approach to software development.
• Personalized: PSP is personalized to an individual’s skill
level, experience, and work habits. It recognizes that
individuals have different strengths and weaknesses,
and tailors the process to meet their specific needs.
22
• Metrics-driven: PSP is metrics-driven, meaning
that it emphasizes the collection and analysis
of data to measure progress and identify areas
for improvement.
• Incremental: PSP is incremental, meaning that
it breaks down the development process into
smaller, more manageable pieces that can be
completed in a step-by-step fashion.
• Quality-focused: PSP is quality-focused,
meaning that it emphasizes the importance of
producing high-quality software that meets
user requirements and is free of defects. 23
Advantages of Personal Software Process (PSP)
• Improved productivity
• Improved quality
• Personalized approach
• Improved estimation
• Continuous improvement:
24
Disadvantages of Personal Software Process (PSP)
• Time-consuming
• Complex
• Heavy documentation
• Limited to individual use
25
What is Team Software Process (TSP)?
26
Key Features of Team Software Process (TSP):
• Improved productivity
• Improved quality
• Team collaboration
• Improved estimation
• Continuous improvement
29
Disadvantages of Team Software Process (TSP):
• Time-consuming
• Complex
• Heavy documentation
• Requires discipline
• Cost
30
Difference between PSP & TSP
Formality and
PSP is more formal and structured than TSP. TSP is less formal and structured than PSP.
Structure
Development Model PSP is based on the waterfall model. TSP is based on the agile model.
Project Suitability PSP is more suited for large projects. TSP is more suited for small projects.
PSP projects are typically completed in one TSP projects are typically completed in
Project Phases phase. multiple phases.
PSP is a high-level language and it is easy to TSP is a low-level language and it is difficult
Language Level learn and use. to learn and use.
31
ISO 9000
• ISO 9000 is a family of quality management standards
defined by the International Standards Organization.
• It is based on core principles:
– Organizations must focus on their customers by
understanding current and future customer needs.
– Leaders within the organization must create and maintain an
environment in which people can become involved and fulfill
the organization’s objectives.
32
ISO 9000
– People at all levels are important to the organization.
– Activities and resources are best managed as a process.
– Organizations have many interrelated processes, which must
be understood and managed as a system.
– The organization should continually improve its
performance.
– Decisions should be well informed and based on real data
and information.
– An organization and its suppliers are in a mutually beneficial
relationship.
33
System Configuration Management (SCM)
34
Why need for
System configuration management?
• Replicability:
Software version control (SCM) makes ensures that a software
system can be replicated at any stage of its development.
• Identification of Configuration:
Source code, documentation, and executable files are examples of
configuration elements that SCM helps in locating and labeling.
• Effective Process of Development:
By automating monotonous processes like managing dependencies,
merging changes, and resolving disputes, SCM simplifies the
development process.
35
Processes involved in SCM
It provides a disciplined environment for smooth
control of work products.
It involves the following activities:
• Identification and Establishment
• Version control
• Change control
• Configuration auditing
• Reporting
36
Importance of Software Configuration Management
40
Challenges of SCM in Software Engineering
41