You are on page 1of 41

SOFTWARE PROCESS

MANAGEMENT [SE 4095]

1
Course Objective

 At the end of the course students will be able to:


 Understand problems related to the software process.
 Familiarize the standard process to the needs of a specific
environment.
 Manage the execution and the optimization of a software team.
 Understand the basics of process management and how it fits into the
front end of the life cycle

2
Course Description

 To provide a comprehensive background for understanding


and managing the development process in a software
company.

3
Outline
1) Introduction
2) The Plan-based approach Vs The Agile approach [XP ,SCRUM]
3) Personal Software Process (PSP) Vs Team Software Process (TSP)
4) Process Improvement and CMM/CMMI Concepts:
5) The CMMI Model Components
6) The CMMI Model Overview
7) Product development start
8) Managing the Project
9) Project and Organization Support
10) Product development implementation
11) Organizational Improvement
12) High Maturity

Outline
4
Outline
 (1) Introduction
 The Plan-based approach Vs The Agile approach [XP ,SCRUM ]….
ASSIGNMENT
 (2) Personal Software Process (PSP) Vs Team Software Process (TSP)
 (3) Process Improvement and CMM/CMMI Concepts:
 The CMMI Model Components
 The CMMI Model Overview
 (4) Product development start ….. Ass 2.
 Managing the Project
 Project and Organization Support
 Product development implementation
 Organizational Improvement
 High Maturity

5
Teaching learning methods
 Class room lectures,
 Group work and presentation student centered
learning approaches.

6
Class Schedule
Date & Time:
 Teusday: 10:00- 11:50- Friday;10-6:50;

Room:
 Lecture: Varnero

7
Course policy:

 Students must attend more than 85% of the class.


 They must be available on time during their class.
 Late more than 5 minutes is strongly prohibited.
 Students must switch off their hand held phone during the
class session.
 Students must be disciplined during their class time.

8
Assessment
 Assignment One: 30% [Individual]
 Assignment Two: 20%[Presentation]
 Final Exam 50%
– Group for Assignment 2/3/4/5 (to be decided)
 Tentative

9
Lecture One: Introduction To Software
Process Management

10
Brain Storming
 What Is Software?
 Why Software Is Important?
 What Is Software Engineering?
 Why We Engineer The Software?
Why Software is Important?
 The economies of ALL developed nations are dependent on
software.
 More and more systems are software controlled
( transportation, medical, telecommunications, military,
industrial, entertainment,)
 Software engineering is concerned with theories, methods and
tools for professional software development.
Software costs
 Software costs often dominate computer system costs. The
costs of software on a PC are often greater than the
hardware cost.
 Software costs more to maintain than it does to develop.
 For systems with a long life, maintenance costs may be
several times development costs.
 Software engineering is concerned with cost-effective
software development.
Why We Engineer The Software?
 Much software has poor design and is getting worse
 Demand for software is high and rising
 We are in a perpetual ‘software crisis’
 We have to learn to ‘engineer’ software

SP
M
Introduction
What makes you Better

1. Why are you better programmer than 1st year students?

2. Why are some organizations are better than others … deliver


software on time, with high quality and less defect.
Introduction
Introduction
The software process
 What it is, and how to improve it?
 The Need for a Defined Process

IntWorkshopSoftwareProcessEducationTraining_June_2015
What is a Process?
A process is a series of steps involving activities, constraints and
resources that produce an intended output of some kind.

• A software process (or a software engineering process)

guides and supports the development of a software product.

• In the last decade there has been a great of deal of resources


devoted to the definition, implementation, and improvement of
software development processes.
What is a Process?
A “defined” software process would have a documented description
of its features which would typically include the following:
– scripts that define the process steps
– standards and procedures for carrying our process steps
– forms and templates for collecting process data and documenting
process outcomes
What is a Process?
Any process has the following characteristics.
 It prescribes all of the major activities.
 It uses resources and produces intermediate and final products.
 It may include sub-processes and has entry and exit criteria
 The activities are organized in a sequence.
 Constraints or control may apply to activities
(budget control, availability of resources )
Software Process:
A Process is defined in 3 steps:
1)Policy: It represents general statements or guidelines of an
organization.
2)Process: It describes about “what to do” in the process.
It has a overview of key areas like key activities, planning,
staffing, scheduling, risk management etc.
3)Procedure: It describes about “how to do” in the process.
It identifies tools, methods and techniques to be used in
the process.
Software Quality Management
People and the Software Process:
 Software development is still a people-intensive activity.
 Talented people are the most important element in any software
organization.
 Even if you get the best people available, if they do not follow a
common process, if everyone wrote in different programming
languages, used different conventions, or didn't co-ordinate their
design and code changes with their peers, the results will be
chaos.
Software Quality Management
People and the Software Process
 Successful software organizations have learned that even
the best professionals need a structured and disciplined
environment in which to do cooperative work.
 Software organizations that do not establish such
disciplines condemn their people to endless hours of
repetitively solving technically minor problems.
 The obvious fact is that attracting the best people is
vital, but it is also essential to support them with an
effectively managed software process.
Technology and the Software Process
There are several factors which limit the effective use of software
technology:
 An ill-defined process, inconsistent process implementation,
and poor process management.
 Software technology cannot be fully effective until these
problems have been properly addressed.
The Importance of the Process Management
There is one famous saying in Chinese:
 The upper grade doctors focus on prevention of disease.
 The middle grade doctors focus on treating the early stage
of disease.
 The lower grade doctors focus on treating the sickness
already.
Need For Process Management
 Today, large complex projects require the coordinated
work of many teams.
 Methods applied for larger projects work equally well for
the smaller groups and the individual professionals.
 Even the best professionals need a structured and
disciplined environment in which to do cooperative work.
 It is also essential that at the individual level, one must be
capable of assessing and grading one's current software
process.
 One must be capable of knowing how to improve it and
from where to make a start.
Responsibilities & Objectives
 Process management is a set of activities and
infrastructures used to predict, evaluate, and control the
performance of a process.
 The objectives of the software process management are to
produce products according to a plan, while
simultaneously improving the organization's capability to
produce better products.
Responsibilities & Objectives
 At the individual level, the objective of the software
process management is to ensure that the processes one
operates or supervises are predictable, meet customer's
needs and (where appropriate) are being continually
improved.
 From the larger, organizational perspective, the objective
of the process management is to ensure that the same
holds good for every process within the organization.
 The following four key responsibilities are central to the
software process management.
The 4 key responsibilities of process management
(a) Define the process, i.e., create disciplined and structured
environment required for controlling and improving the process.
(b) Measure the process; measurements being the basis for
detecting deviations from the acceptable performance.
(c) Control the process, ie, keeping the process within its normal
(inherent) performance boundaries, ie, making it behave the way
one wants it to.
(d) Improve the process.
Execution, or rather adherence to the process is not a process
management responsibility, but is the responsibility of project
management.
Summary
 To remain competitive, software companies must establish
practices that enhance quality and advance process
management.
To this end, they have increasingly turned to software process
improvement (SPI) methodologies, of which the ISO 9000
standards and the capability maturity model (CMM) are the
best known.
 The underlying principle of both methodologies is to
assess organizational capabilities to produce quality software,
but they depend on different underlying processes.
Summary
 Process definition is a prerequisite to process improvement.
 Defined processes promote collaboration and teamwork by
making activities, roles, and dependencies visible.
 Process management supports improvement of the defined
process through measurement and feedback.
 Current implementations of process management combine four
steps: definition, measure, control, and improvement.
 Process definition provides an exact description for the work to
be performed.
Assignment one[20%]………… Group work
Key points to be included:
‒ What?
― Software Process and process Models
(1) Waterfall Model
‒ Strength
(2) Evolutionary Development ‒ Weakness
(3) Spiral Model
‒ When to use it?
(4) Incremental Model
(5) Agile Methods ‒ Compare with an other model
(6) Prototyping Model
(7) V-Shaped SDLC Model
(8) Scrum Development Methodology Marking
(9) Feature Driven Development Presentation 10 Individually….. 10 - 7
(10) Rapid Application Development (RAD) Document 10
(11) Dynamic Systems Development Model
Methodology
(12) Extreme Programming Methodology
(13) Joint Application Development Methodology
Assignment two[30%]…….. Individual
A Kind Project : Main content:
from idea origination 1. Brief introduction
to….. document the idea. 2. Source of the idea
2.1 New technology?
#New Idea 2.2 Sector?
#Existing System 3. Detail description
Improvements. 3.1 Key problem to be solved
3.2 Advantage and disadvantage
4. Basic logic
5. Conclusion
6. Reference

You might also like