You are on page 1of 22

Processos e Métricas de Software

Cap. 2 e 3: Process a Generic View, Prescriptive Process Models

Nuno Jardim Nunes, njn@uma.pt, http://dme.uma.pt/njn

Slides Baseados em Pressman e Sommerville


A Layered Technology

Software Engineering

tools
methods
process model
a “quality” focus
A Process Framework

Process framework
Framework activities
work tasks
work products
milestones & deliverables
QA checkpoints
Umbrella Activities
Framework Activities

• Communication
• Planning
• Modeling
• Analysis of requirements
• Design

• Construction
• Code generation
• Testing

• Deployment
Umbrella Activities

• Software project management


• Formal technical reviews
• Software quality assurance
• Software configuration management
• Work product preparation and production
• Reusability management
• Measurement
• Risk management
The Process Model:
Adaptability

• 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
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 process-related activities.
Process Patterns

• Process patterns define a set of activities, actions, work tasks, work


products and/or related behaviors
• A template is used to define a pattern
• Typical examples:
• Customer communication (a process activity)
• Analysis (an action)
• Requirements gathering (a process task)
• Reviewing a work product (a process task)
• Design model (a work product)
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
Assessment and Improvement

Software Process

identifies is examined by identifies capabilities


modifications to and risk of

Software Process
Assessment

Capability
Software Process leads to leads to
Determination
Improvement
motivates
Prescriptive Models

• Prescriptive process models advocate an orderly approach to software


engineering
• That leads to a few questions …
• If prescriptive process models strive for structure and order, are they
inappropriate for a software world that thrives on change?
• Yet, if we reject traditional process models (and the order they imply)
and replace them with something less structured, do we make it
impossible to achieve coordination and coherence in software work?
The Waterfall Model

Communication
project initiation Planning
requirement gathering estimating Modeling
scheduling
analysis Construction
tracking
design Deployment
code
test delivery
support
feedback
The Incremental Model

increment # n
Co m m u n i c a t i o n
Planning
M odel i ng
analysis Co n s t ru c t i o n
design
code De p l o y m e n t
test d e l i v e ry
fe e d b a c k

delivery of
increment # 2 n th increment

Co m m u n i c a t i o n
Planning
M odel i ng
analysis Co n s t ru c t i o n
design code De p l o y m e n t
test d e l i v e ry
fe e d b a c k
delivery of
increment # 1 2nd increment

Co m m u n i c a t i o n
Planning
M odel i ng
analysis Co n s t ru c t i o n
design code
test
De p l o y m e n t
d e l i v e ry delivery of
fe e d b a c k
1st increment

project calendar time


The RAD Model
Team # n
M o d e lin g
business modeling
data modeling
process modeling

Co n st ru ct io n
component reuse
Team # 2 automatic code
Com m u n ication generation
testing
Mo d el i ng
business modeling
data modeling
process modeling

P lan n in g
Co nstructi o n De ploym e n t
Team # 1 component reuse integration
automatic code
generation delivery
M ode lin g testing feedback
business modeling
data modeling
process modeling

Con stru ction


component reuse
automatic code
generation
testing

60 - 90 days
Evolutionary Models: Prototyping

Quick
Q u ick p lan
plan
Com m u n ication
communication

MoModeling
d e lin g
Q u ick d e sig n
Quick design

Deployment
Deployment
De live ry
delivery & Con stru ction
& Fe e dback
feedback Construction
of
of prototype
prototype
Evolutionary Models: The Spiral

planning
estimation
scheduling
risk analysis

communication

modeling
analysis
design
start

deployment
construction
delivery code
feedback test
Evolutionary Models: Concurrent
none

Modeling activity

represents the state


Under of a software engineering
activity or task
development

Awaiting
changes

Under review

Under
revision

Baselined

Done
Still Other Process Models

• Component based development—the process to apply when reuse is a


development objective
• Formal methods—emphasizes the mathematical specification of
requirements
• AOSD—provides a process and methodological approach for defining,
specifying, designing, and constructing aspects
• Unified Process—a “use-case driven, architecture-centric, iterative and
incremental” software process closely aligned with the Unified
Modeling Language (UML)
The Unified Process (UP)
elaboration
Elabor ation

Incep tion
inception

inception

constr uction
Release
tr ansition
software increment

pr od uction
UP Phases

UP Phases
Inception Elaboration Construction Transition Production

Workflows

Requirements

Analysis

Design

Implementation

Test

Support

Iterations #1 #2 #n-1 #n
UP Work Products

Inception phase

Elaboration phase
Vision document
Initial use-case model
Initial project glossary Construction phase
Use-case model
Initial business case Supplementary requirements
Initial risk assessment. including non-functional Transition phase
Design model
Project plan, Analysis model Software components
phases and iterations. Software architecture Integrated software Delivered software increment
Business model, Description. increment Beta test reports
if necessary. Executable architectural Test plan and procedure General user feedback
One or more prototypes prototype.
Inceptio
Test cases
n Preliminary design model Support documentation
Revised risk list user manuals
Project plan including installation manuals
iteration plan description of current
adapted workflows increment
milestones
technical work products
Preliminary user manual
The Primary Goal of Any Software Process: High
Quality

Remember:

High quality = project timeliness

Why?

Less rework!

You might also like