Professional Documents
Culture Documents
Process Models
Process Models
Process model
What is it?
They define a distinct set of activities, actions, tasks, milestones, and work products that are
required to engineer high-quality software
They are not perfect but they provide a useful roadmap for SW engineering work
Who does it?
SW engineers, and their managers adopts it, also the people who requested the software
Why it is important?
They are important because they provide stability, control, and organization to an activity that
can, if left uncontrolled, become quite chaotic
What are the steps?
The process guides a SW team through a set of framework activities that are organized into a
process flow that may be linear, incremental, or evolutionary
What is the work product?
The work products are the programs, documents, and data that are produced as a consequence
of the activities and tasks defined by the process
How do I ensure that I have done it right?
The quality, timeliness, and long term viability of the product you build are the best indicators
of the efficacy of the process that you use
Prescriptive Models
Every SW engineering organization should describe a unique set of framework activities for
the SW process it adopts
Each framework activity is populated with a set of SW engineering actions
Each action is defined in terms of a task set that identifies the work (and work products) to be
accomplished to meet development goals
Resultant process model is adapted to accommodate specific nature of each project, people
who do the work, environment in which work is conducted
SW engineers have traditionally chosen a generic process framework that encompasses the
following framework activities: communication, planning, modeling, construction, and
deployment
All SW process models can accommodate the generic framework activities, but each applies a
different emphasis to these activities and defines a workflow that invokes each framework
activity in a different manner
The Waterfall Model
Used when requirements well understood, when work flows from communication
through deployment in a reasonably linear fashion
Waterfall model, sometimes called classic life cycle, suggests a systematic, sequential
approach to software development that begins with customer specification of requirements and
progresses through various phases, culminating in on-going support of the completed software
Problems with Waterfall Model
Real projects rarely follow the sequential flow that the model proposes
The customer must have patience. A working version of the program will not be
available until late in the project time-span
When it is used, the first increment is often a core product. That is, basic requirements
are addressed, but many supplementary features remain undelivered
The core product is used by customer. As a result, a plan is developed for next
increment
If requirements are well understood and project scope is constrained, the RAD process
enables a development team to create a fully functional system within a very short time
period
If a business application can be modularized in a way that enables each major function
to be completed in less than 3 months, it is a candidate for RAD
Each major function can be addressed by a separate RAD team and then integrated to
form a whole
Drawback of RAD
1. For large, but scalable projects, RAD requires sufficient human resources to create right
number of RAD teams
2. If developers and customers are not committed to the rapid-fire activities necessary, RAD
projects will fail
3. If a system cannot be properly modularized, building the components necessary for RAD will
be problematic
4. RAD may not be appropriate when technical risks are high
Evolutionary models are iterative. They are characterized in a manner that enables SW
engineers to develop increasingly more complete versions of the software
Evolutionary Models: Prototyping
The prototyping paradigm assists the SW engineer and the customer to better
understand what is to be built when requirements are fuzzy(customer identify general objective
but not defines the details of input ,processing , and processing so the developer becomes
unsure about efficiency , algorithms and so on to solve this problem prototype is used )
The customer sees what appears to be a working version of SW, unaware that in the
rush to get it working we havent considered overall quality or long-term maintainability
It a realistic model that can be used to be used to develop large scale system and software
Problems with Spiral Model
Demands considerable risk assessment expertise and relies on this expertise for success