Prescriptive and Agile Process Models
Prescriptive and Agile Process Models
Models
The prescriptive process models stress detailed
definition, identification, and application of process
activates and tasks. Intent is to improve system
quality, make projects more manageable, make
delivery dates and costs more predictable, and
guide teams of software engineers as they perform
the work required to build a system.
Unfortunately, there have been times when these
objectives were not achieved. If prescriptive models
are applied dogmatically and without adaptation,
they can increase the level of bureaucracy.
Prescriptive and Agile Process
Models
• Agile process models emphasize project
“agility” and follow a set of principles that lead
to a more informal approach to software process.
It emphasizes maneuverability and adaptability.
It is particularly useful when Web applications
are engineered.
The Essence of Practice
• How does the practice of software engineering
fit in the process activities mentioned above?
Namely, communication, planning, modeling,
construction and deployment.
• George Polya outlines the essence of problem
solving, suggests:
1.Understand the problem (communication and analysis).
2.Plan a solution (modeling and software design).
3.Carry out the plan (code generation).
4.Examine the result for accuracy (testing and quality
assurance).
Understand the Problem
• Who has a stake in the solution to the problem?
That is, who are the stakeholders?
• What are the unknowns? What data,
functions, and features are required to
properly solve the problem?
• Can the problem be compartmentalized? Is it
possible to represent smaller problems that
may be easier to understand?
• Can the problem be represented graphically?
Can an analysis model be created?
Plan the Solution
• Have you seen similar problems before? Are there
patterns that are recognizable in a potential
solution? Is there existing software that implements
the data, functions, and features that are required?
• Has a similar problem been solved? If so, are elements
of the solution reusable?
• Can subproblems be defined? If so, are solutions
readily apparent for the subproblems?
• Can you represent a solution in a manner that leads to
effective implementation? Can a design model be
created?
Carry Out the Plan
• Does the solutions conform to the plan? Is
source code traceable to the design model?
• Is each component part of the solution
provably correct? Has the design and code
been reviewed, or better, have correctness
proofs been applied to algorithm?
Examine the Result
• Is it possible to test each component part of the
solution? Has a reasonable testing strategy
been implemented?
• Does the solution produce results that conform
to the data, functions, and features that are
required? Has the software been validated
against all stakeholder requirements?
Hooker’s General Principles for Software
Engineering Practice: important underlying
law
Help you establish mind-set for solid software
engineering practice (David Hooker 96).
•1: The Reason It All Exists: provide values to users
•2: KISS (Keep It Simple, Stupid! As simple as possible)
•3: Maintain the Vision (otherwise, incompatible
design)
•4: What You Produce, Others Will Consume (code
with concern for those that must maintain and
extend the system)
Hooker’s General Principles for Software
Engineering Practice: important underlying
law