Lect 2 ProcessModels
Lect 2 ProcessModels
Software Process 1
Software Dev Process
Process is distinct from product
products are outcomes of executing a process
on a project
Software Process 2
Software Process…
Process: A particular method, generally
involving a number of steps
Software Process: A set of steps, along
with ordering constraints on execution, to
produce software with desired outcome
Software Process 3
Generic Process Model in Software Engineering
Software Process:
It is a set of activities, methods, practices, and transformations
that people use to develop and maintain software and the
associated products. As a Software Organization, the software
process becomes better defined and more consistently
implemented throughout the organization.
Example: Project plans, Design-Documents, Code, Test cases,
and User-manualsThe Generic process model is an abstraction of
the software development process. It specifies the stages and
order of a process. Generic Process Model will define the
following
The tasks to be performed.
The input and output of each task.
The pre and post conditions for each task.
The flow and sequence of each task.
Software Process 4
Software Process 5
Software Process 6
Generic Process Framework Activities: It establishes the foundation for
a complete software process by identifying a small number of framework
activities. It also includes a set of umbrella activities that are applicable
across the entire software process. Each framework activity is populated
by a set of software engineering actions. A Generic Process Framework for
Software Engineering encompasses five activities.
Generic Process Model in Software Engineering
1. Communication: This framework activity involves heavy communication
and collaboration with the customer. It encompasses requirements
gathering and other related activities.
2. Planning: This activity establishes a plan for the software engineering
work that follows. It describes the technical tasks which are conduct. The
resource requires and the work products are producing with a work
schedule.
3. Modeling: It encompasses the creation of models that allow the
developer and the customer. It is easy to better understand Software
requirements and the design that will achieve those requirements.
4. Construction: This activity combines code generation and the testing
that is required to uncover errors in the code.
5. Deployment: The software delivered to the customer who evaluates the
delivered product. ItSoftware Process
also provides feedback based on the evaluation. 7
Linear model
The linear model of software development is based on
the premise that software is best developed (or can
only be developed) by working through a series of
discrete steps in a specific sequence. The steps are
usually defined as the following, or as a variation on the
following:
1. System requirements
2. Software requirements
3. Analysis
4. Program design
5. Coding
6. Testing
7. Operations
Software Process 8
Linear Process Flow
Software Process 9
Iterative Process Flow
Software Process 11
Identifying a Task Set
A task set defines the actual work to be done to accomplish
the objectives of a software engineering action.
A list of the task to be accomplished
A list of the work products to be produced
A list of the quality assurance filters to be applied
Software Process 12
Process Assessment and Improvement
Standard CMMI Assessment Method for Process Improvement-(SCAMPI)—
provides a five step process assessment model that incorporates five phases:
initiating, diagnosing, establishing, acting and learning.
CMM-Based Appraisal for Internal Process Improvement (CBAIPI)—
provides a diagnostic technique for assessing the relative maturity of a software
organization; uses the SEI CMM as the basis for the assessment [Dun01]
SPICE—The SPICE (ISO/IEC15504) standard defines a set of requirements for
software process assessment. The intent of the standard is to assist
organizations in developing an objective evaluation of the efficacy of any defined
software process. [ISO08]
ISO 9001:2000 for Software—a generic standard that applies to any
organization that wants to improve the overall quality of the products, systems, or
services that it provides. Therefore, the standard is directly applicable to software
organizations and companies.
Software Process 13
Prescriptive Models
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?
Software Process 14
Key Processes
Software Process 15
Software Dev Processes
Two major processes
Engineering– “development and quality steps
needed to engineer the software”
Project management – “planning and
controlling the development process”
Key Roles
Developers execute Engineering process
Software architects, lead developers, ...
Software Process 16
Other Processes…
Other processes
Configuration management: manages the
evolution of artifacts
Change management: how changes are
incorporated
Inspection process: how inspections are
conducted on artifacts
Process Improvement Process:
Software Process 17