Transparency Masters for Software Engineering: A
Download
Report
Transcript Transparency Masters for Software Engineering: A
Chapter 2
Process: A Generic View
SWE311_Ch02 (071)
Software & Software Engineering
Slide 1
Overview
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.
SWE311_Ch02 (071)
Software & Software Engineering
Slide 2
Software 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.
SWE311_Ch02 (071)
Software & Software Engineering
Slide 3
Software Engineering - Goals
deliver on time
within budget
required quality
Satisfying the true needs of stakeholders
SWE311_Ch02 (071)
Software & Software Engineering
Slide 4
A Layered Technology
Software Engineering
tools
methods
process model
a “quality” focus
SWE311_Ch02 (071)
Software & Software Engineering
Slide 5
A Process Framework
Process framework
Framework activities
work tasks
work products
milestones & deliverables
QA checkpoints
Umbrella Activities
SWE311_Ch02 (071)
Software & Software Engineering
Slide 6
Common Process Framework
Communication
Planning - work plan, technical risks, resource
requirements, work products produced, and work schedule
Modeling
Analysis of requirements
Design
Construction
Customer collaboration
Requirement gathering
Code generation
Testing
Deployment - software delivered for customer evaluation
and feedback
SWE311_Ch02 (071)
Software & Software Engineering
Slide 7
Software 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
SWE311_Ch02 (071)
Software & Software Engineering
Slide 8
Software 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
SWE311_Ch02 (071)
Software & Software Engineering
Slide 9
Arranging 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
SWE311_Ch02 (071)
Software & Software Engineering
Slide 10
Process 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 9001:2000
CMM and CMMI involves process assessment and
process improvement
SWE311_Ch02 (071)
Software & Software Engineering
Slide 11
Assessment and Improvement
Softw ar e Pr oce s s
is examined by
identif ies
modifications to
identif ies capabilities
and risk of
Softw are Process
Assessment
Softw are Process
Improvement
leads to
leads to
Capability
Determination
motivates
SWE311_Ch02 (071)
Software & Software Engineering
Slide 12
Software 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)
SWE311_Ch02 (071)
Software & Software Engineering
Slide 13
CMMI (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)
SWE311_Ch02 (071)
Software & Software Engineering
Slide 14
The 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 processrelated activities.
SWE311_Ch02 (071)
Software & Software Engineering
Slide 15
Personal 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
SWE311_Ch02 (071)
Software & Software Engineering
Slide 16
Team 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
SWE311_Ch02 (071)
Software & Software Engineering
Slide 17
Team 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
SWE311_Ch02 (071)
Software & Software Engineering
Slide 18
Process 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
SWE311_Ch02 (071)
Software & Software Engineering
Slide 19
The Primary Goal of Any Software
Process: High Quality
Remember:
High quality = project timeliness
Why?
Less rework!
SWE311_Ch02 (071)
Software & Software Engineering
Slide 20