Professional Documents
Culture Documents
tools
methods
process model
a “quality” focus
Any engineering approach must rest on organizational commitment to quality which fosters
a continuous process improvement culture.
Process layer as the foundation defines a framework with activities for effective delivery of
software engineering technology. Establish the context where products (model, data, report,
and forms) are produced, milestone are established, quality is ensured and change is
managed.
Method provides technical how-to’s for building software. It encompasses many tasks
including communication, requirement analysis, design modeling, program construction,
testing and support.
Tools provide automated or semi-automated support for the process and methods.
A Process Framework
A process is a collection of activities, actions and tasks that are
performed when some work product is to be created
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
Communication: communicate with customer to
understand objectives and gather requirements
Planning: creates a “ map ” defines the work by
describing the tasks, risks and resources, work products
and work schedule.
Modeling: Create a “ sketch ” , what it looks like
architecturally, how the constituent parts fit together
and other characteristics.
Construction: code generation and the testing.
Deployment: Delivered to the customer who evaluates
the products and provides feedback based on the
evaluation.
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
Assess the process model followed by an
organization and rate the organization with different
levels
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.
CMMI Levels
• Incomplete
-Process is adhoc. Objective and goal of process areas are not known
• Performed
-Goal,objective,work tasks,work products and other activities of software
process are carried out
• Managed
-Activities are monitored, reviewed, evaluated and controlled
• Defined
-Activities are standardized, integrated and documented
• Quantitatively Managed
-Metrics and indicators are available to measure the process and quality
• Optimized
- Continuous process improvement based on quantitative feed back from the
user
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
Software Process
Software Process
Assessment
Capability
Software Process leads to leads to
Determination
Improvement
motivates
Types of Software process
models
• Waterfall Model
• Incremental process models
• Evolutionary process models
Prototyping
Spiral model
Concurrent model
The Waterfall Model
Also called classic life cycle model.
Used when requirements are well understood in the
beginning.
This Model suggests a systematic, sequential approach to
software development.
Begins with customer specification of requirements
(communication) and progresses through planning,
modeling, construction and deployment.
The Waterfall Model
Waterfall Strengths
Planning
delivery of 2nd
increment # 1 increment
delivery of 1st
increment
21
Incremental Process Models (3)
• The incremental process model, like prototyping and
other evolutionary approaches, is iterative in nature
• But unlike prototyping, the incremental model
focuses on the delivery of an operational product
with each increment
• Particularly useful when
• Staffing is unavailable
• Increments can be planned to manage technical risks
22
Advantages of Incremental model:
• Generates working software quickly and early during
the software life cycle.
• This model is more flexible – less costly to change
scope and requirements.
• It is easier to test and debug during a smaller
iteration.
• In this model customer can respond to each built.
• Lowers initial delivery cost.
• Easier to manage risk because risky pieces are
identified and handled during it’d iteration.
Disadvantages of Incremental model