Title: Chapter 2 Process: A Generic View
1Chapter 2Process A Generic View
2Overview
- The roadmap to building high quality software
products is software process. - Software processes are adapted to meet the needs
of software engineers and managers as they
undertake the development of a software product. - A software process provides a framework for
managing activities that can very easily get out
of control. - Different types of projects require different
software processes. - The software engineer's work products (programs,
documentation, data) are produced as a
consequence of the activities defined by the
software process. - The best indicators of how well a software
process has worked are the quality, timeliness,
and long-term viability of the resulting software
product.
3Software Engineering
- Software engineering is the establishment and
sound engineering principles applied to obtain
reliable and efficient software in an economical
manner. - Software engineering is the application of a
systematic, disciplined, quantifiable approach to
the development, operation, and maintenance of
software. - Software engineering encompasses a process,
management techniques, technical methods, and the
use of tools.
4Software Engineering - Goals
- deliver on time
- within budget
- required quality
- Satisfying the true needs of stakeholders
5A Layered Technology
Software Engineering
tools
methods
process model
a quality focus
6A Process Framework
Process framework Framework activities work
tasks work products milestones deliverables QA
checkpoints Umbrella Activities
7Common Process Framework
- Communication
- Customer collaboration
- Requirement gathering
- Planning - work plan, technical risks, resource
requirements, work products produced, and work
schedule - Modeling
- Analysis of requirements
- Design
- Construction
- Code generation
- Testing
- Deployment - software delivered for customer
evaluation and feedback
8Software Engineering Umbrella Activities
- Software project management
- Tracking and control
- Formal technical reviews
- Assess engineering work products to uncover and
remove errors before they propagate to next
activity - Software quality assurance
- Maintain software quality
- Software configuration management
- Manage effects of change
9Software Engineering Umbrella Activities
- Work product preparation and production
- Create models, documents, logs, forms, lists,
etc. - Reusability management
- Defines criteria for work product reuse and
establish mechanisms to achieve component reuse - Measurement
- Define and collect process, project, and product
measures - Risk management
- Assess risks that may affect project outcomes or
quality
10Arranging Framework Activities
- the framework activities will always be applied
on every project ... BUT - the tasks (and degree of rigor) for each activity
will vary based on - the type of project
- characteristics of the project
- common sense judgment concurrence of the project
team - There are few different process models that vary
in the way that frameworks activities are arranges
11Process Assessment
- The process should be assessed to ensure that it
meets a set of basic process criteria that have
been shown to be essential for a successful
software engineering. - Many different assessment options are available
- SCAMPI
- CBA IPI
- SPICE
- ISO 90012000
- CMM and CMMI involves process assessment and
process improvement
12Assessment and Improvement
13Software Engineering Institute (SEI) Capability
Maturity Model Integration (CMMI)
- Level 0 Incomplete (process is not performed or
does not achieve all goals defined for - Level 1 Performed (work tasks required to
produce required work products are being
conducted) - Level 2 Managed (people doing work have access
to adequate resources to get job done,
stakeholders are actively involved, work tasks
and products are monitored, reviewed, and
evaluated for conformance to process description)
14CMMI (cont)
- Level 3 Defined (management and engineering
processes documented, standardized, and
integrated into organization-wide software
process) - Level 4 Quantitatively Managed (software process
and products are quantitatively understood and
controlled using detailed measures) - Level 5 Optimizing (continuous process
improvement is enabled by quantitative feedback
from the process and testing innovative ideas)
15The CMMI
- 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.
16Personal Software Process (PSP)
- Recommends five framework activities
- Planning
- High-level design
- High-level design review
- Development
- Postmortem
- stresses the need for each software engineer to
identify errors early and as important, to
understand the types of errors
17Team Software Process (TSP)
- Objectives
- Build self-directed teams that plan and track
their work, establish goals, and own their
processes and plans - Show managers how to coach and motivate their
teams and maintain peak performance - Accelerate software process improvement by making
CCM Level 5 behavior normal and expected - Provide improvement guidance to high-maturity
organizations - Measures are analyzed with the intent of
improving the team process
18Team Software Process (TSP)
- Each project is launched using a script that
defines the tasks to be accomplished - Scripts for Project Activities
- Project launch
- Design
- Implementation
- Integration and system testing
- Postmortem
19Process Technology Tools
- Used to adapt process models to be used by
software project team - Allow organizations to build automated models of
common process framework, task sets, and umbrella
activities - These automated models can be used to determine
workflow and examine alternative process
structures - Tools can be used to allocate, monitor, and even
control all software engineering tasks defined as
part of the process model
20The Primary Goal of Any Software Process High
Quality
Remember High quality project
timeliness Why? Less rework!