0% found this document useful (0 votes)
5 views

Unit 4 SPI. notes

The document discusses Software Process Improvement (SPI), emphasizing its importance in enhancing software development efficiency and quality through structured methodologies like CMMI, SPICE, PSP, and TSP. It outlines the SPI process, which includes evaluating the current situation, planning improvements, implementing changes, and evaluating their impact. Additionally, it covers the significance of Software Configuration Management (SCM) in maintaining consistency and stability throughout the software development lifecycle.

Uploaded by

Keerthana
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

Unit 4 SPI. notes

The document discusses Software Process Improvement (SPI), emphasizing its importance in enhancing software development efficiency and quality through structured methodologies like CMMI, SPICE, PSP, and TSP. It outlines the SPI process, which includes evaluating the current situation, planning improvements, implementing changes, and evaluating their impact. Additionally, it covers the significance of Software Configuration Management (SCM) in maintaining consistency and stability throughout the software development lifecycle.

Uploaded by

Keerthana
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 41

UNIT – 4

SOFTWARE PROCESS IMPROVEMENT


• Introduction
• Approaches to SPI
• The SPI Process
• The CMMI
• SPICE
• PSP, TSP, ISO
• Software Configuration Management
• SCM Standards

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

• There are also methodologies that an organization


can adopt that describe the complete set of activities,
roles, and work products needed to build software.
– Rational Unified Process and Extreme Programming are
methodologies.

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.

• Maturity level 2 : Managed


– requirements are managed.
– processes are planned and controlled.
– projects are managed and implemented according to their
documented plans.
– This risk involved is lower than Initial level, but still exists.
– Quality is better than Initial level.
17
• Maturity level 3 : Defined
– processes are well characterized and described using standards, proper
procedures, and methods, tools, etc.
– Medium quality and medium risk involved.
– Focus is process standardization.
• Maturity level 4 : Quantitatively managed
– quantitative objectives for process performance and quality are set.
– quantitative objectives are based on customer requirements,
– process performance measures are analyzed quantitatively.
– higher quality of processes is achieved.
– lower risk
• Maturity level 5 : Optimizing
– continuous improvement in processes and their performance.
– improvement has to be both incremental and innovative.
– highest quality of processes.
– lowest risk in processes and their performance. 18
SPICE
One of the most well-known SPI frameworks is
SPICE(Software Process Improvement and
Capability Determination).
SPICE is a framework that provides a standard for
assessing and improving software
development processes in organizations.
SPICE widely used for SPI frameworks, such as
CMMI and ISO/IEC standard for software life
cycle processes.

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)?

• Team Software Process (TSP) is a team-based


process. TSP focuses on team productivity.
• Basically, it is a top-down approach. The TSP is
an adaptive process, and process
management methodology.

26
Key Features of Team Software Process (TSP):

• Team-focused: TSP is team-focused, meaning that


it emphasizes the importance of collaboration and
communication among team members throughout
the software development process.
• Process-driven: TSP is process-driven, meaning
that it provides a structured approach to software
development that emphasizes the importance of
following a disciplined process.
• Metrics-driven: TSP is metrics-driven, meaning
that it emphasizes the collection and analysis of
data to measure progress, identify areas for
improvement, and make data-driven decisions.
27
• Incremental: TSP 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: TSP is quality-focused,
meaning that it emphasizes the importance of
producing high-quality software that meets user
requirements and is free of defects.
• Feedback-oriented: TSP is feedback-oriented,
meaning that it emphasizes the importance of
receiving feedback from peers, mentors, and
other stakeholders to identify areas for
improvement.
28
Advantages 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.

PSP is a structured language and it is easy to TSP is an unstructured language and it is


Language Structure read and write. difficult to read and write.

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)

SCM is a discipline of Software Engineering that provides


a better process for handling, organizing, and
controlling the changes in requirements, codes, teams,
and other elements in the software project
development life cycle.
SCM ensures the maintenance of consistency,
traceability, and stability in software development.

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

• Effective Bug Tracking:


Linking code modifications to issues that have been
reported, makes bug tracking more effective.
• Continuous Deployment and Integration:
SCM combines with continuous processes to automate
deployment and testing, resulting in more
dependable and timely software delivery.
• Risk management:
SCM lowers the chance of introducing critical flaws by
assisting in the early detection and correction of
problems.
37
• Support for Big Projects:
Source Code Control (SCM) offers an orderly method
to handle code modifications for big projects,
fostering a well-organized development process.
• Reproducibility:
By recording precise versions of code, libraries, and
dependencies, source code versioning (SCM)
makes builds repeatable.
• Parallel Development
SCM facilitates parallel development by enabling
several developers to collaborate on various
branches at once.
38
The main advantages of SCM
• Improved productivity and efficiency by reducing the
time and effort required to manage software
changes.
• Reduced risk of errors and defects by ensuring that
all changes were properly tested and validated.
• Increased collaboration and communication among
team members by providing a central repository for
software artifacts.
• Improved quality and stability of software systems
by ensuring that all changes are properly controlled
and managed.
39
The main disadvantages of SCM
• Increased complexity and overhead, particularly in
large software systems.
• Difficulty in managing dependencies and ensuring that
all changes are properly integrated.
• Potential for conflicts and delays, particularly in large
development teams with multiple contributors.

40
Challenges of SCM in Software Engineering

SCM can be challenging, especially in large and complex projects.


Following are some of the most common challenges associated with SCM:
• Managing a Large Number of Configuration Items-
• Ensuring Accurate and Consistent Data-.
• Managing Change Requests
• Collaboration
• Cost and Resources
• Integration with Development Workflow

41

You might also like