Prescriptive Process Models 123 Prescriptive Models n Prescriptive























- Slides: 23

Prescriptive Process Models 1/23

Prescriptive Models n Prescriptive process models advocate an orderly approach to software engineering 2/23

The Waterfall Model Pro: the most widely used model; a template for use Con: inflexible to changing customer requirements This is a good model to use when requirements are well understood 3/23

Incremental Models Incremental Model: delivers software in small but usable pieces, each piece builds on pieces already delivered Rapid Application and Development (RAD) Model: makes heavy use of reusable software components with an extremely short development cycle 4/23

The Incremental Model delivers software in small but usable pieces, each piece builds on pieces already delivered 5/23

A software project has significant functionality but big pressure on short time-to-market…. . How does the incremental model help to deliver this software by the business deadline? Example: A word-processing software I: basic file management, editing, document production II: more sophisticated editing and document production III: spelling and grammar checking IV: advanced page layout capability 6/23

The RAD Model The RAD model is a high-speed adaptation of the linear sequential model. Project requirements must be well understood and the project scope tightly constrained Developers can use component-based construction techniques to build a fully functional system in a short time period Pro: may shorten development time significantly Con: the system may not be modularized for use; performance issue; risk issue 7/23

The RAD Model makes heavy use of reusable software components with an extremely short development cycle 8/23

Assumptions of using RAD model for software project development: 1. A project can be modularized 2. Major functionality could be delivered in short time 3. Sufficient human resources will be available 9/23

Evolutionary Models Prototyping Model: good first step when customer has a legitimate need, but is clueless about the details, developer needs to resist pressure to extend a rough prototype into a production product Spiral Model: couples iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model Concurrent Development Model: similar to spiral model often used in development of client/server applications 10/23

Evolutionary Models: Prototyping Quick plan communication Modeling Quick design Deployment delivery & feedback Construction of prototype 11/23

The Prototyping Model This model is good to use when the customer has legitimate needs, but is not able to articulate the details at the start of the project. A small mock-up of a working system is developed and presented to the customer. Pro: evaluated by user and used to refine requirements Con: the first system built is barely usable; unrealistic expectations from the customer; the performance issue 12/23

Which software projects are easy to prototype? Human-machine interaction Computer graphics Mathematical algorithms Command-driven systems Control functions Real-time applications Embedded software 13/23

Evolutionary Models: The Spiral Each loop in the spiral shows a phase of the SW process Each loop will be split into few sections, the task regions Each region conducts a set of work tasks, the task set 14/23

A Spiral Model (II) The loops in the spiral could be identified as: § concept development, product enhancement and product maintenance OR § product specification, prototype development, software versions updated OR § system feasibility, requirements definition, system design, etc. 15/23

A Spiral Model (III) The task regions in each spiral loop could contain: § customer communication, planning, risk analysis, engineering, construction & release, customer evaluation OR § objective setting, risk assessment and reduction, development and validation, planning Points: when to trigger a new phase of the spiral and what to do? 16/23

A Spiral Model (IV) § It combines the iterative nature of prototyping with the systematic control found in the linear sequential model § Assessment of both management and technical risks is performed as each incremental release is completed §It demands risk assessment expertise and relies on this expertise for success. 17/23

Evolutionary Models: Concurrent different parts (stages) of a project will be performed at different places (activities) concurrently in the process 18/23

Still Other Process Models n Component based development—the process to apply when reuse is a development objective n Formal methods—emphasizes the mathematical specification of requirements n Unified Process—a “use-case driven, architecture-centric, iterative and incremental” software process closely aligned with the Unified Modeling Language (UML) 19/23

The Unified Process (UP) elaboration inception 20/23

The Unified Process (UP) Use-case driven, architecture centric, iterative, and incremental software process Phases • Inception phase (customer communication and planning) • Elaboration phase (communication and modeling) • Construction phase • Transition phase (customer delivery and feedback) • Production phase (software monitoring and support) 21/23

UP Phases 22/23

UP and UML is a modeling notation and language to support OO software engineering practice UP is a process framework in which UML may be applied as part of software engineering activities In UP, what’s the meaning of a workflow? A task set Does the UP phase occur in a sequence? No. UP phases could be with staggered concurrency. 23/23