Software Process
Overview
What? A software process as a framework for
the tasks that are required to build high-quality
software.
Who? Managers, software engineers, and
customers.
Why? Provides stability, control, and organization
to an otherwise chaotic activity.
Steps? A handful of activities are common to all
software processes, details vary.
Work product? Programs, documents, and data.
What is software engineering?
Definition :
(1) The application of systematic, disciplined, quantifiable
approach to the development, operation, and maintenance
of software; that is, the application of engineering to
software.(2) The study of approaches as in (1) above
Its a discipline that is concerned with all aspects of software
production.
Software engineers should adopt
Systematic and organized approach to their work
Use appropriate tools and techniques depending on the
problem to be solved
The development constraints and the resources available
Apply Engineering Concepts to developing Software
Challenge for Software Engineers is to produce high quality
software with finite amount of resources & within a predicted
schedule
Software Engineering Layered
Technology
Layered Technology
Tools: CASE preferred
Methods: technical how tos
Process model: the framework
A quality focus: the bedrock
Layered Technology
A quality Focus
Every organization is rest on its commitment to quality.
Total quality management, similar continuous improvement culture
and it is this culture ultimately leads to development of increasingly
more effective approaches to software engineering.
The bedrock that supports software engineering is a quality focus.
Process:
Its a foundation layer for software engineering.
It define framework for a set of key process areas (KRA) for
effectively manage and deliver quality software in a cost effective
manner
The processes define the tasks to be performed and the order in which
they are to be performed
Layered Technology
Methods:
It provide the technical how-to's for building software.
Methods encompass a broad array of tasks that include requirements
analysis, design, program construction, testing, and support.
There could be more than one technique to perform a task and
different techniques could be used in different situations.
Tools:
Provide automated or semi-automated support for the process,
methods and quality control.
When tools are integrated so that information created by one tool can
be used by another, a system for the support of software development,
called computer-aided software engineering (CASE)
Process Framework
Software Process
Process framework
Umbrella Activities
Framework activity 1
Framework activity n
Process Framework
Umbrella Activities
Framework activities
work tasks
work products
milestones & deliverables
QA checkpoints
Process framework
Why process :
A process defines who is doing what, when and how to reach a
certain goal.
To build complete software process.
Identified a small number of framework activities that are
applicable to all software projects, regardless of their size or
complexity.
It encompasses a set of umbrella activities that are applicable
across the entire software process.
Process Framework
Each framework
activities is
populated by a set
for software
engineering actions
a collection of
related tasks.
Each action has
individual work task.
Generic Process Framework
Activities
Communication:
Heavy communication with customers, stakeholders, team
Encompasses requirements gathering and related activities
Workflow that is to follow
Describe technical task, likely risk, resources will require, work
products to be produced and a work schedule.
Planning:
Modeling:
Help developer and customer to understand requirements
(Analysis of requirements) & Design of software
Construction
Code generation: either manual or automated or both
Testing to uncover error in the code.
Delivery to the customer for evaluation
Customer provide feedback
Deployment:
The Process Model: Adaptability
The framework activities will always
be applied on every project ... BUT
The tasks for each activity will vary
based on:
The type of project (an entry point to
the model)
Characteristics of the project
Common sense judgment; concurrence
of the project team
Umbrella Activities
Software project tracking and control
Formal technical reviews
Define criteria for work product reuse
Mechanisms to achieve reusable components.
Measurement
Help to create work products such as models, documents, logs, form and list.
Reusability management
Manages the effects of change.
Document preparation and production
Define and conducts the activities required to ensure software quality.
Software configuration management
Assessing software work products in an effort to uncover and remove errors
before goes into next action or activity.
Software quality assurance
Assessing progress against the project plan.
Take adequate action to maintain schedule.
Define and collects process, project, and product measures
Assist the team in delivering software that meets customers needs.
Risk management
Assesses risks that may effect that outcome of project or quality of product
(i.e. software)
Capability Maturity Model
Integration (CMMI)
The Software Engineering Institute (SEI) has
developed process meta-model to measure
organization different level of process
capability and maturity.
CMMI developed by SEI
The CMMI defines each process area in terms
of specific goals and the specific practices
required to achieve these goals.
Specific goals establish the characteristics
that must exist if the activities implied by a
process area are to be effective.
Specific practices refine a goal into a set of
process-related activities.
Five Levels of Software Process
Maturity
Characteristics of Each Level
Initial Level (Level 1)
Characterized as ad hoc, and occasionally even chaotic
Few processes are defined, and success depends on
individual effort
Repeatable (Level 2)
Basic project management processes are established to
track cost, schedule, and functionality
The necessary process discipline is in place to repeat
earlier successes on projects with similar application
Characteristics of Each Level
(continued)
Defined (Level 3)
The software process for both management and
engineering activities is documented, standardized, and
integrated into a standard software process for the
organization
All projects use an approved, tailored version of the
organization's standard software process for developing
and maintaining software
Managed (Level 4)
Detailed measures of the software process and product
quality are collected
Both the software process and products are quantitatively
understood and controlled
Optimized (Level 5)
Continuous process improvement is enabled by
quantitative feedback from the process and from piloting
innovative ideas and technol
Key Process Areas