Chapter 4 - Software Process Models

Réussis tes devoirs et examens dès maintenant avec Quizwiz!

What are the 6 practices or principles of Rational Unified Process?

1) Develop interactively, with risk as primary driver 2) Manage requirements 3) Employ a component-based architecture 4) Model SW visually 5) Verify quality continuously 6) Control Changes

What are the 4 phases of Rational Unified Process?

1) Inception 2) Elaboration 3) Construction 4) Transition

Entry and Exit Criteria

Entry Criteria The entry criteria for an activity must be met before the activity can start. •List and describe required: artifacts, people, tools, definition of activity to be performed Exit Criteria The exit criteria must be met before an activity can be considered complete and before the next activity may start. •Describe the artifacts that must be available for the next activity •All of the artifacts are reviewed, all or some %age of teh errors are corrected, people in the downstream activities have accepted the artifacts

What are process models?

•A description of: -- Tasks that need to be performed -- Pre- and post- conditions for each task -- Inputs and outputs for each task -- Sequence of performance -- Conditions under which performance takes place -- Who does what •*Goal:* to achieve "desired results" •A structure for the development of products

Incremental Overall

•Adapts better to changes in requirements •Potentially uses fewer resources •Requires that the overall problem can be decomposed into pieces -- Pieces need to be separable -- If not, complexity increases •Managing overalapping releases can be more complicated •Less visibility into whole process

(3) Spiral Model

•Attempt to reduce risks associated with SW development •Risk driven approach -- Waterfall is a "big bang" process with heavy upfront investment -- In spiral, product gradually becomes more mature as you wind through successive spirals. It is a cyclic approach to incrementally develop the software system, while reducing the project risk as the project goes through cycles of development >> Risk analyzed frequently, mitigated >> or, project abandoned -- Heavy use of prototyping & modeling -- Requires more client involvement/communication than prior models *4 Quadrants:* (1) Identify objectives, alternatives, constraints for this iteration (2) Evaluate alternatives relative to objectives, constraints, identify and resolve risks -- Cost-benefit analysis: >> Cost vs. value >> Time to develop >> Resources required >> Impact on existing system (3) Development - (depending on the amount of and type of identified risks, this can be a prototype, more detailed evaluation, or some other step) (4) Validate achievement of objective and plan for next iteration (client involvement) •Phases can mean different things on different iterations through the spiral -- Development could mean: build a prototype, validate a design, write code -- Planning could be for requirements solicitation, development, testing •OK to return to and rework previous decisions •Releases don't overlap •Usually gives client something to react to early *Disadvantages:* •Risk analysis can be tricky •Process visibility poor

Phase 3: Construction

•Complete the implementation •Achieve the version of the code that is releasable to a restricted set of Alpha test sites •Establish activities remaining to complete project

Continuous Integration

*Advantages:* •Reduced complexity of components •Parallel development should be faster •Easier management of smaller streams •Risk containment--trouble with one component won't delay the others *Disadvantages:* •Poorer visibility into whole process •If linkages are needed between components can increase complexity, not decrease •Harder to create a unified design

Assessing SW Processes

*CMU SEI Capability Maturity Model (CMM)* •Help a software organization define its level of maturity in software development • 5 levels: Initial, Repeatable, Defined, Managed, Optimizing *ISO 9001* •Applies to QA in design, dev, production, installation, and servicing •Clients often req manufacturer to be ISO 9001 certified as part of contract *ISO 9000-3* •Guide for applying ISO 9001 to SW dev •Applies to dev, supply, installation, & maintenance of computer SW •Aimed at making sure provider manages the software dev process & provides visibility into the process for client eval

(1) Waterfall Model

•Essentially, the steps of the traditional engineering process model •One of the first SW process models •Document driven approach •*Advantages:* simplicity, familiarity, visibility, easy to monitor where you are on the path to completion, requirements must be specified in the first steps, four main tasks use be completed before the software can be packaged for release (requirements, design, implementation, test). •*Disadvantages:* assumes all requirements are known in advance, doesn't incorporate changes well, unidirectional, clients need LOTS of patience, limited interaction with the users (only at requirements phase and software delivery) •Good for projects that are small and have very well-defined requirements

Phase 1: Inception

•Establish scope and goals •Establish critical use cases and major scenarios •Establish some architecture and design alternatives •Estimate schedule and required resources •Plan the implementation, testing, integration, and configuration methodologies •Estimate risks

(2) Incremental Models

•Implementing all the functionality of a large SW project can be daunting •Modification to Waterfall Model where you divide whole system into a set of smaller, independent components -- Implement independently -- As completed, merge into single integration of whole system •*Advantages:* reduced complexity of components, Risk containment--trouble with one component won't delay the others

Rational Unified Process (RUP)

•More recent SW development process -- Distills essential elements of some earlier processes -- Also based on UML *The process framework is driven by 3 major concepts:* (1) Architecture-centric (high level design elements that span use cases) — Initially provides the "form" of the system, which is use case independent -- Ex: user interface standards, error handling standards — The use cases drive the architecture and the architecture influences the choice of use cases (2) Use case analysis and requirements driven -- Each major use case represents a key component of the system -- Architecture refined to accommodate major use cases -- Elaboration of use cases can also drive changes in the architecture (3) Both iterative and incremental -- Develop large software in smaller increments -- Develop each increment in iterative fashion >> First iteration: all use cases & requirements >> Second iteration: Deal with major risks >> Rinse and repeat

Multiple Releases

•Step after continuous integration •First release contains core (or critical) functionality •Subsequent releases add functionality •*Advantages:* -- Get product to market faster -- Implementation by client can be easier since impact is compartmentalized -- Bug fixes integrated with next release •*Disadvantages:* -- Dependency between components problematic -- Design of subsequent release may impact earlier releases

Why have a process model?

•To help with coordinating and controlling -- *Tasks* to be performed -- *Personnel* who perform the tasks •Goals include to make the process: consistent, repeatable, transparent, manageable

V Model

Variation of waterfall, with emphasis on the purpose of testing •Requirements engineering --> System design --> Program design --> Implementation --> Unit testing (verification) --> System testing (verification) --> Acceptance testing (validation)

Rational Unified Process Advantages & Disadvantages

Advantages: •Good for BIG projects •Can deal with complex requirements Disadvantages: •Complicated process •Requires support and management attention

Phase 4: Transition

Last phase prior to the release of the software to general users. •Establish final SW product for general release •Establish user readiness and acceptance of the software •Establish support readiness •Gain agreement on release and deployment

Phase 2: Elaboration

Most critical phase of the RUP. •Establish major and critical requirements for system •Establish baseline design •Establish implementation, integration, and testing methodologies •Establish major test scenarios •Establish measurement and metrics for the defined goals •Organize and set up resources

Is a process needed for ALL software development?

Not necessarily for all projects No SW process fits all SW projects


Ensembles d'études connexes

Sir Gawain and the Green Knight Review

View Set

Course 6 - Agile Project Management | Quizes & Questions

View Set

Compentency Exam - Op Management

View Set

Chapter 26: Disorders of Blood Flow and Blood Pressure Regulation

View Set

Peptic Ulcer Disease, Hinkle Ch. 47

View Set

Ch. 4: Process Costing and Hybrid Product-Costing Systems

View Set