Professional Documents
Culture Documents
Chapter 2
Prescriptive Process Models
1
Definitions
■ Software Engg. is the establishment and use of sound
engineering principles in order to obtain economically
software that is reliable and works efficiently on real
machines ……
2
A Layered Technology
Software Engineering
tools
methods
process model
a “quality” focus
3
Process, Method, Tools
■ Process defines framework
■ Process forms basis for management control.
■ Process establishes context for methods to be applied ,
Work product, milestones, quality ensured, Change
Managed
■ Method provide Technical “How To”
■ Tools provide support for methods & processes
4
A Process Framework
Process framework
Framework activities
work tasks
work products
milestones & deliverables
QA checkpoints
Umbrella Activities
5
Framework Activities
■ Communication
■ Planning
■ Modeling
■ Analysis of requirements
■ Design
■ Construction
■ Code generation
■ Testing
■ Deployment
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 6
Umbrella Activities
■ Software project tracking and control
■ Formal technical reviews
■ Software quality assurance
■ Software configuration management
■ Work product preparation and production
■ Reusability management
■ Measurement
■ Risk management
7
The Capability Maturity Model
Integration (CMMI)
■ Capability levels :
Level 1 : Initial
Level 2 : Managed
Level 3 : Defined
Level 4 : Quantitatively managed
Level 5 : Optimized
9
Maturity Level 1 - Initial
10
Maturity Level 2 - Managed
■ An organization has achieved all the specific and generic goals of the process areas
assigned to maturity levels 1
■ At Maturity Level 2, an organization’s development processes are repeatable and produce
consistent and measurable results.
■ At this stage, all business projects are managed so that processes are “planned,
performed, measured and controlled.
■ The focus is on the management of requirements, processes, work products and services.
You want to ensure all stakeholders are established and given ownership over specific
tasks.
■ The status of the work products and the delivery of services are visible to management at
defined points.
■ Commitments are established among relevant stakeholders and are revised as needed.
Work products are reviewed with stakeholders and are controlled.
■ Progress is starting to show and there is a full set of practices in place that specifically
address improvement in the practice area.
■ This risk involved is lower than Initial level, but still exists. Quality is better than Initial level
11
Maturity Level 3 - Defined
■ An organization has achieved all the specific and generic goals of the process areas
assigned to maturity levels 2
■ Maturity Level 3 is when your organization has processes that are well characterized and
understood and are described in standards, procedures, tools and methods.
■ Processes should be well-defined and documented, and they should be continually
improved to some extent over time.
■ This level brings more organization and standardization to your process by establishing
reliability and efficiency.
■ Medium quality and medium risk involved.
■ There’s a focus on achieving project and organizational performance objectives and there
are clear organizational standards in place for addressing projects in that practice area.
12
Maturity Level 4 - Quantitatively Managed and capable
■ An organization has achieved all the specific and generic goals of the process areas
assigned to maturity levels 3
■ Maturity Level 4 is reserved for processes that have reached a stage where they can be
measured using defined metrics that demonstrate how the process is beneficial to
business operations.
■ These processes have been repeatedly tested, refined and adapted in multiple conditions
across the organization.
■ All key stakeholders and process users are competent in the established process and
comfortable deploying it in various environments.
■ By now, your process should easily adapt to suit other projects in the organization and to
stand as a template for future process development.
■ high quality is achieved and risks are lower
13
Maturity Level 5 - Optimizing
■ An organization has achieved all the specific and generic goals of the process areas
assigned to maturity levels 4
■ The final level of maturity describes processes that are continually monitored and
improved as needed.
■ Your processes should always remain flexible enough to accommodate new technologies
and innovation in the organization.
■ Development processes aren’t meant to be static and the fifth and final level of maturity
isn’t an end-point. Organizations still need to maintain a constant focus on process
performance to maintain that appraisal level.
■
14
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 15
Prescriptive Models
■ Prescriptive process models advocate an orderly approach to
software engineering
■ “prescriptive” because they prescribe a set of process
elements—framework activities, software engineering actions, tasks,
work products, quality assurance, and change control mechanisms
for each project. Each process model also prescribes a process flow
(also called a work flow)—that is, the manner in which the process
elements are interrelated to one another.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 16
The Waterfall Model / Linear Sequential
model / Classic lifecycle model
1. Requirements: Potential requirements, deadlines and guidelines for the project are analyzed and placed into a
functional specification. This stage handles the defining and planning of the project without mentioning specific
processes.
2. Analysis: The system specifications are analyzed to generate product models and business logic that will guide
production. This is also when financial and technical resources are audited for feasibility.
3. Design: A design specification document is created to outline technical design requirements such as programming
4. Coding/Implementation: The source code is developed using the models, logic and requirements designated in
the prior stages. Typically, the system is designed in smaller components, or units, before being implemented
together.
5. Testing: This is when quality assurance, unit, system and beta tests take place to report issues that may need
to be resolved. This may cause a forced repeat of the coding stage for debugging. If the system passes the tests,
6. Operation/Deployment: The product or application is deemed fully functional and is deployed to a live
environment.
7. Maintenance: Corrective, adaptive and perfective maintenance is carried out indefinitely to improve, update and
enhance the final product. This could include releasing patch updates or releasing new versions.
18
Some of the major advantages of the Waterfall Model are as follows −
19
Disadvantages of the waterfall model
The disadvantages of the waterfall model typically surround risk associated with a lack of revision,
including:
● Design is not adaptive; often when a flaw is found, the entire process needs to start over.
● Ignores the potential to receive mid-process user or client feedback and make changes based on
results.
● Does not handle requests for changes, scope adjustments or updates well.
● No working product is available until the later stages of the life cycle.
20
The Incremental Model
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 21
■ There are many situations in which initial software requirements are reasonably well
defined but there may be a compelling need to provide a limited set of software
functionality to users quickly and then refine and expand on that functionality in
later software releases. In such cases, you can choose a process model that is designed
to produce the software in increments.
■ When an incremental model is used, the first increment is often a core product. That
is, basic requirements are addressed but many supplementary features (some known,
others unknown) remain undelivered. The core product is used by the customer (or
undergoes detailed evaluation), plan is developed for the next increment. This
process is repeated following the delivery of each increment, until the complete
product is produced.
■ Useful when staffing is unavailable, easy to test and debug, more flexible, better risk
management,not all requirements are gathered up front for the entire software life
cycle
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 22
Advantages-
1. Prepares the software fast.
2. Clients have a clear idea of the project.
3. Changes are easy to implement.
4. Easy to test and debug
5. Provides risk handling support, because of its iterations.
Disadvantages-
1. A good team and proper planned execution are required.
2. Because of its continuous iterations the cost increases.
3. Modules should be clearly defined. Well defined module interfaces are needed.
4. Solving a problem in one unit would require correction in all the units and consume a lot of
time. 23
The Rapid Application Development
Model (RAD)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 24
Advantages of RAD
■ Emphasizes on short development cycle
■ It is high speed adaptation of waterfall model.
■ Rapid development is achieved by using component
based construction approach.
Advantage of RAD Model
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided
■
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 25
Drawbacks of RAD
■ For Large (but scalable) projects, RAD requires sufficient resources
to create the right number of RAD teams.
■ Not all applications are compatible for RAD. If a system cannot be
properly modularized, building components for RAD will be
problematic.
■ RAD not appropriate when technical risks are high. This normally
occurs when a new application makes heavy use of new technology
or when the new software requires a high degree of interoperability.
■ It requires equal commitment from both customers and developers.
One sided commitment can be disastrous.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 26
When we use the Incremental Model?
● When the requirements are superior.
● A project has a lengthy development schedule.
● When Software team are not very well skilled or trained.
● When the customer demands a quick release of the product.
● You can develop prioritized requirements first.
29
A prototype is a toy implementation of the system. A prototype usually turns out to be a
very crude version of the actual system, possible exhibiting limited functional capabilities,
low reliability, and inefficient performance as compared to actual software. In many
instances, the client only has a general view of what is expected from the software
product. In such a scenario where there is an absence of detailed information regarding
the input to the system, the processing needs, and the output requirement, the
prototyping model may be employed.
30
Advantage of Prototype Model
1. This model is flexible in design.
2. It is easy to detect errors.
3. We can find missing functionality easily.
4. There is scope of refinement, it means new requirements can be easily accommodated.
5. It can be reused by the developer for more complicated projects in the future.
6. It ensures a greater level of customer satisfaction and comfort.
7. It helps developers and users both understand the system better.
8. Integration requirements are very well understood and deployment channels are decided at a very early
stage.
9. It can actively involve users in the development phase.
10.
31
Disadvantages of using Prototype Model :
1. This model is costly.
2. It has poor documentation because of continuously changing customer requirements.
3. There may be too much variation in requirements.
4. Customers sometimes demand the actual product to be delivered soon after seeing an early
prototype.
5. There may be sub-optimal solutions because of developers in a hurry to build prototypes.
6. Customers may not be satisfied or interested in the product after seeing the initial prototype.
7. There is certainty in determining the number of iterations.
8. There may be incomplete or inadequate problem analysis.
9. There may increase the complexity of the system.
32
■ Often, a customer defines a set of general objectives for
software, but does not identify detailed requirements for
functions and features. In other cases, the developer may
be unsure of the efficiency of an algorithm, the
adaptability of an operating system
■ In such cases prototyping may offer the best approach.
■ the prototyping paradigm assists you and other
stakeholders to better understand what is to be built
when requirements are fuzzy.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 33
Evolutionary Models: The Spiral
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 34
■ The first circuit around the spiral might result in the development of a product
specification; subsequent passes around the spiral might be used to develop a
prototype and then progressively more sophisticated versions of the software.
■ Each pass through the planning region results in adjustments to the project plan. Cost
and schedule are adjusted based on feedback derived from the customer after
delivery. In addition, the project manager adjusts the planned number of iterations
required to complete the software.
■ The spiral model demands a direct consideration of technical risks at all stages of the
project and, if properly applied, should reduce risks before they become problematic.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 35
Advantages of Spiral Model:
Below are some advantages of the Spiral Model.
1. Risk Handling: The projects with many unknown risks that occur as the development proceeds, in
that case, Spiral Model is the best development model to follow due to the risk analysis and risk
handling at every phase.
2. Good for large projects: It is recommended to use the Spiral Model in large and complex projects.
3. Flexibility in Requirements: Change requests in the Requirements at later phase can be
incorporated accurately by using this model.
4. Customer Satisfaction: Customer can see the development of the product at the early phase of the
software development and thus, they habituated with the system by using it before completion of the
total product.
36
Disadvantages of Spiral Model:
Below are some main disadvantages of the spiral model.
1. Complex: The Spiral Model is much more complex than other SDLC models.
2. Expensive: Spiral Model is not suitable for small projects as it is expensive.
3. Too much dependability on Risk Analysis: The successful completion of the project is very much
dependent on Risk Analysis. Without very highly experienced experts, it is going to be a failure to
develop a project using this model.
4. Difficulty in time management: As the number of phases is unknown at the start of the project, so
time estimation is very difficult.
37
38
For Information
39
Evolutionary Models: Concurrent
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 40
■ The concurrent process model can be represented schematically as a
series of major technical activities, tasks, and their associated states.
■ Figure 2.10 provides a schematic representation of one activity with
the concurrent process model.
■ All activities exist concurrently but reside in different states. For
example, early in a project the customer communication activity (not
shown in the figure) has completed its first iteration and exists in the
awaiting changes state.
■ The analysis activity now makes a transition into the under
development state. If, however, the customer indicates that changes
in requirements must be made, the analysis activity moves from the
under development state into the awaiting changes state.
■ The concurrent process model defines a series of events that will
trigger transitions from state to state for each of the software
engineering activities.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided
with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 41