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