You are on page 1of 25

A Layered Technology

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

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:
 Standard CMMI assessment
 CMM based appraisal for internal process improvement
 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
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

• Easy to understand, easy to use


• Provides structure to inexperienced staff
• Milestones are well understood
• Sets requirements stability
• Good for management control (plan, staff, track)
• Works well when quality is more important than
cost or schedule
Waterfall Deficiencies

• All requirements must be known upfront


• Deliverables created for each phase are considered
frozen – inhibits flexibility
• Can give a false impression of progress
• Does not reflect problem-solving nature of software
development – iterations of phases
• Integration is one big bang at the end
• Little opportunity for customer to preview the system
(until it may be too late)
When to use the Waterfall Model

• Requirements are very well known


• Product definition is stable
• Technology is understood
• New version of an existing product
• Porting an existing product to a new platform.
Incremental Process Models (1)
Communication
Software Functionality and Features

Planning

Modeling (analysis, design) increment # n

Construction (code, test)

Deployment (delivery, feedback)


delivery of nth
increment
increment # 2

delivery of 2nd
increment # 1 increment

delivery of 1st
increment

Project Calendar Time

The incremental model


Incremental Process Models (2)

• Combines elements of the waterfall model applied


in an iterative fashion
• Each linear sequence produces deliverable
“increments” of the software
• The first increment is often a core product
• The core product is used by the customer (or
undergoes detailed evaluation)
• Based on evaluation results, a plan is developed for
the next 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

•Needs good planning and design.


•Needs a clear and complete definition of the
whole system before it can be broken down
and built incrementally.
•Total cost is higher than waterfall.
WATERFALL INCREMENT

You might also like