360 likes | 790 Views
Chapter 3 Process Models. Prescriptive Models. What is it A prescriptive process model defines a distinct set of activities, actions, tasks, milestones, and work products to engineering high-quality software. Prescriptive process models advocate an orderly approach to software engineering
E N D
Prescriptive Models • What is it • A prescriptive process model defines a distinct set of activities, actions, tasks, milestones, and work products to engineering high-quality software. • 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?
Prescriptive Models (cont.) • Regardless of the process model selected, it should accommodate the following generic framework activities: • communication • planning • modeling • construction • deployment
Process Models • Waterfall model • Incremental process models • Incremental model • RAD (rapid application development) model • Evolutionary process models • Prototyping model • Spiral model • Concurrent development model
The Linear Model • Waterfall model • Winston Royce, 1970 • Also called the software life cycle
Problems of Waterfall Model • Real projects rarely follow the sequential flow that the model proposes • It is often difficult for the customer to state all requirements explicitly • The customer must have patience • Applicable only when the requirements are well-defined and stable
The Incremental Model • The objective is to work with customers and to evolve a final system from an initial outline specification. Should start with well-understood requirements • This model combines elements of waterfall model applied in an iterative fashion • Particular useful when staffing is limited in initial stage
The RAD Model • Rapid Application Development is an incremental software development process model, emphasizing a short development cycle (e.g., 60 to 90 days) • For application’s requirement been well understood
Drawbacks of RAD Model • Need sufficient RAD teams for large, scalable projects • Easy to fail if developers and users are not committed to rapid-fire activities • The system need to be properly modularized • May not be appropriate if high performance is an issue • May not be appropriate when technical risks are high
The Prototyping Model • Objective is to understand the system requirements. Should start with poorly understood requirements • More commonly adopted within the context of any process model • Problems • “prototype” yes, it’s a prototype • Compromise (less-than-ideal) while implementation
The Spiral Model • Originally proposed by Boehm • Emphasize on risk management • Using this model, software is developed in a series of evolutionary releases • The spiral model can be adapted to apply throughout the life of the software • It is a realistic model to the development of large-scale systems
Drawbacks of Spiral Model • May difficult to convince customers to adopt the model – uncertain number of cycles to construct the product • Requires considerable risk assessment expertise • Problems will occur if a major risk is not uncovered and managed
Concurrent Development Model • Also known as concurrent engineering • Represented as a series of framework activities, software engineering actions and tasks, and associated states • Define a series of events that will trigger transition from state to state • Provide an accurate picture of project current state
Still Other Process Models • Component-based development model • The process to apply when reuse is a development objective • It is evolutionary in nature • It incorporates the following steps • Research and evaluate available component-based products • Consider component integration issues • Design a software architecture to accommodate the components • Integrate components into the architecture • Conduct comprehensive testing
Still Other Process Models (cont.) • Formal methods model • The process to apply when a mathematical specification is to be developed • Ambiguity, incompleteness, and inconsistency can be discovered and corrected more easily – promise of defect-free software • Drawbacks • Time-consuming and expensive • Need extensive training • Hard to serve as a communication mechanism • Useful for safety-critical software, e.g., Aircraft avionics, medical devices
Still Other Process Models (cont.) • Aspect-oriented software development (AOSD) • Aspect – customer concerns that cut across multiple system functions, features and information, e.g., • User interface aspects • Distribution aspects (transport and receiving) • Persistence aspects (data store/retrieve and indexing) • Security aspects • Transaction aspects • AOSD provides a process and methodological approach for defining, specifying, designing, and constructing aspects (modeled as components)
The Unified Process • What is UP • Developed by Ivar Jacobson, James Rumbaugh, and Grady Booch • A framework for object-oriented software engineering using UML (the Unified Modeling Language), an industry standard for object-oriented software development • It is a use-case driven, architecture-centric, iterative, and incremental model
The Unified Process (cont.) • Phases of UP • Inception • Identify business requirements, described as use-cases • Propose a rough system architecture • Elaboration • Refine and expand the preliminary use-cases • Expand the architecture to include five different views • Use-case model, analysis model, design model, implementation model, deployment model
The Unified Process (cont.) • Construction • Develop or acquires the software components to accomplish an initial release • Transition • Software is given to users for beta-testing to collect defects and necessary changes • Create support information, e.g., user manuals, installation procedures, trouble-shooting guides • Production • Monitor the on-going use of the software, and evaluate defect reports and change requests
The Unified Process (UP) inception elaboration inception