Top Banner
Chapter 3 Prescriptive Process Models - Generic process framework (revisited) - Traditional process models - Specialized process models - The unified process
26
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Pressman ch-3-prescriptive-process-models

Chapter 3Prescriptive Process Models

Chapter 3Prescriptive Process Models

- Generic process framework (revisited)

- Traditional process models

- Specialized process models

- The unified process

- Generic process framework (revisited)

- Traditional process models

- Specialized process models

- The unified process

Page 2: Pressman ch-3-prescriptive-process-models

2

Generic Process FrameworkGeneric Process Framework

Communication Involves communication among the customer and other stake holders;

encompasses requirements gathering

Planning Establishes a plan for software engineering work; addresses technical

tasks, resources, work products, and work schedule

Modelling (Analyze, Design) Encompasses the creation of models to better under the requirements and

the design

Construction (Code, Test) Combines code generation and testing to uncover errors

Deployment Involves delivery of software to the customer for evaluation and feedback

Communication Involves communication among the customer and other stake holders;

encompasses requirements gathering

Planning Establishes a plan for software engineering work; addresses technical

tasks, resources, work products, and work schedule

Modelling (Analyze, Design) Encompasses the creation of models to better under the requirements and

the design

Construction (Code, Test) Combines code generation and testing to uncover errors

Deployment Involves delivery of software to the customer for evaluation and feedback

Page 3: Pressman ch-3-prescriptive-process-models

3

Modeling: Software Requirements AnalysisModeling: Software Requirements Analysis

Helps software engineers to better understand the problem they will work to solve

Encompasses the set of tasks that lead to an understanding of what the business impact of the software will be, what the customer wants, and how end-users will interact with the software

Uses a combination of text and diagrams to depict requirements for data, function, and behavior Provides a relatively easy way to understand and review

requirements for correctness, completeness and consistency

Helps software engineers to better understand the problem they will work to solve

Encompasses the set of tasks that lead to an understanding of what the business impact of the software will be, what the customer wants, and how end-users will interact with the software

Uses a combination of text and diagrams to depict requirements for data, function, and behavior Provides a relatively easy way to understand and review

requirements for correctness, completeness and consistency

Page 4: Pressman ch-3-prescriptive-process-models

4

Modeling: Software DesignModeling: Software Design

Form the “blueprint” for a product Creates a model that that provides detail about software data structures,

software architecture, interfaces, and components that are necessary to implement the system

Architectural design Represents the structure of data and program components that are required

to build the software User Interface Design

Creates an effective communication medium between a human and a computer

Component-level Design Defines the data structures, algorithms, interface characteristics, and

communication mechanisms allocated to each software component

Form the “blueprint” for a product Creates a model that that provides detail about software data structures,

software architecture, interfaces, and components that are necessary to implement the system

Architectural design Represents the structure of data and program components that are required

to build the software User Interface Design

Creates an effective communication medium between a human and a computer

Component-level Design Defines the data structures, algorithms, interface characteristics, and

communication mechanisms allocated to each software component

Page 5: Pressman ch-3-prescriptive-process-models

Traditional Process ModelsTraditional Process Models

Page 6: Pressman ch-3-prescriptive-process-models

6

Prescriptive Process ModelPrescriptive Process Model

Defines a distinct set of activities, actions, tasks, milestones, and work products that are required to engineer high-quality software

The activities may be linear, incremental, or evolutionary

Defines a distinct set of activities, actions, tasks, milestones, and work products that are required to engineer high-quality software

The activities may be linear, incremental, or evolutionary

Page 7: Pressman ch-3-prescriptive-process-models

7

Waterfall Model(Diagram)Waterfall Model(Diagram)

CommunicationProject initiation

Requirements gathering

PlanningEstimatingSchedulingTracking Modeling

AnalysisDesign Construction

CodeTest Deployment

DeliverySupport

Feedback

Page 8: Pressman ch-3-prescriptive-process-models

8

Waterfall Model(Description)Waterfall Model(Description)

Oldest software lifecycle model and best understood by upper management

Used when requirements are well understood and risk is low Work flow is in a linear (i.e., sequential) fashion Used often with well-defined adaptations or enhancements to current

software

Oldest software lifecycle model and best understood by upper management

Used when requirements are well understood and risk is low Work flow is in a linear (i.e., sequential) fashion Used often with well-defined adaptations or enhancements to current

software

Page 9: Pressman ch-3-prescriptive-process-models

9

Waterfall Model(Problems)Waterfall Model(Problems)

Doesn't support iteration, so changes can cause confusion Difficult for customers to state all requirements explicitly and up front Requires customer patience because a working version of the

program doesn't occur until the final phase Problems can be somewhat alleviated in the model through the

addition of feedback loops (see the next slide)

Doesn't support iteration, so changes can cause confusion Difficult for customers to state all requirements explicitly and up front Requires customer patience because a working version of the

program doesn't occur until the final phase Problems can be somewhat alleviated in the model through the

addition of feedback loops (see the next slide)

Page 10: Pressman ch-3-prescriptive-process-models

10

Waterfall Model with Feedback(Diagram)

Waterfall Model with Feedback(Diagram)

CommunicationProject initiation

Requirements gathering

PlanningEstimatingSchedulingTracking Modeling

AnalysisDesign Construction

CodeTest Deployment

DeliverySupport

Feedback

Page 11: Pressman ch-3-prescriptive-process-models

11

Incremental Model(Diagram)Incremental Model(Diagram)

Communication PlanningModeling

ConstructionDeployment

Communication PlanningModeling

ConstructionDeployment

Communication PlanningModeling

ConstructionDeployment

Increment #1

Increment #2

Increment #3

Page 12: Pressman ch-3-prescriptive-process-models

12

Incremental Model(Description)Incremental Model(Description)

Used when requirements are well understood Multiple independent deliveries are identified Work flow is in a linear (i.e., sequential) fashion within an increment

and is staggered between increments Iterative in nature; focuses on an operational product with each

increment Provides a needed set of functionality sooner while delivering optional

components later Useful also when staffing is too short for a full-scale development

Used when requirements are well understood Multiple independent deliveries are identified Work flow is in a linear (i.e., sequential) fashion within an increment

and is staggered between increments Iterative in nature; focuses on an operational product with each

increment Provides a needed set of functionality sooner while delivering optional

components later Useful also when staffing is too short for a full-scale development

Page 13: Pressman ch-3-prescriptive-process-models

13

Prototyping Model(Diagram)Prototyping Model(Diagram)

Communication

Quick Planning

ModelingQuick Design

ConstructionOf Prototype

Deployment,Delivery,

and Feedback

Start

Page 14: Pressman ch-3-prescriptive-process-models

14

Prototyping Model(Description)Prototyping Model(Description)

Follows an evolutionary and iterative approach

Used when requirements are not well understood Serves as a mechanism for identifying software requirements Focuses on those aspects of the software that are visible to the

customer/user Feedback is used to refine the prototype

Follows an evolutionary and iterative approach

Used when requirements are not well understood Serves as a mechanism for identifying software requirements Focuses on those aspects of the software that are visible to the

customer/user Feedback is used to refine the prototype

Page 15: Pressman ch-3-prescriptive-process-models

15

Prototyping Model(Potential Problems)Prototyping Model(Potential Problems)

The customer sees a "working version" of the software, wants to stop all development and then buy the prototype after a "few fixes" are made

Developers often make implementation compromises to get the software running quickly (e.g., language choice, user interface, operating system choice, inefficient algorithms)

Solution: Define the rules up front on the final disposition of the prototype before it

is built In most circumstances, plan to discard the prototype and engineer the

actual production software with a goal toward quality

The customer sees a "working version" of the software, wants to stop all development and then buy the prototype after a "few fixes" are made

Developers often make implementation compromises to get the software running quickly (e.g., language choice, user interface, operating system choice, inefficient algorithms)

Solution: Define the rules up front on the final disposition of the prototype before it

is built In most circumstances, plan to discard the prototype and engineer the

actual production software with a goal toward quality

Page 16: Pressman ch-3-prescriptive-process-models

THE RAD MODELTHE RAD MODEL

Communication

Planning

Modeling

Construction

Modeling

Construction

Modeling

Construction

Deployement

Team#1

Team#2

Team#3

60-90 Days

Page 17: Pressman ch-3-prescriptive-process-models

RAD MODEL(Description)RAD MODEL(Description)

Rapid application development (RAD) is an incremental process model that emphasizes on extremely short development cycle (e.g., 60 to 90 days)

…Provided requirements are well understood and project scope is constrained. encompasses following phases:

Communication: Works to understand the business problems. Planning: is essential because multiple software teams work in parallel on

different system functions. Modeling includes

Business modeling- The information flow among business functions is modeled.

Rapid application development (RAD) is an incremental process model that emphasizes on extremely short development cycle (e.g., 60 to 90 days)

…Provided requirements are well understood and project scope is constrained. encompasses following phases:

Communication: Works to understand the business problems. Planning: is essential because multiple software teams work in parallel on

different system functions. Modeling includes

Business modeling- The information flow among business functions is modeled.

Page 18: Pressman ch-3-prescriptive-process-models

RAD MODEL(Description)RAD MODEL(Description)

Data modeling- Previous information flow is refined into a set of data objects. Process modeling- The data objects defined in the data modeling phase are transformed to

implement a business function.

Construction : RAD assumes the use of fourth generation techniques Rather

than conventional third generation programming languages. Reuse Automated tools are used for construction. Deployment :

Data modeling- Previous information flow is refined into a set of data objects. Process modeling- The data objects defined in the data modeling phase are transformed to

implement a business function.

Construction : RAD assumes the use of fourth generation techniques Rather

than conventional third generation programming languages. Reuse Automated tools are used for construction. Deployment :

Page 19: Pressman ch-3-prescriptive-process-models

RAD MODEL(Drawbacks)RAD MODEL(Drawbacks) For large but scalable projects, RAD requires sufficient human

resources to create the right number of RAD teams. RAD requires developers and customers who are committed to

rapid fire activities. Not all types of applications are appropriate for RAD. RAD is not appropriate when technical risks are high.

For large but scalable projects, RAD requires sufficient human resources to create the right number of RAD teams.

RAD requires developers and customers who are committed to rapid fire activities.

Not all types of applications are appropriate for RAD. RAD is not appropriate when technical risks are high.

Page 20: Pressman ch-3-prescriptive-process-models

20

Spiral Model(Diagram)Spiral Model(Diagram)

Start

Start

Communication

Planning

Modeling

ConstructionDeployment

Page 21: Pressman ch-3-prescriptive-process-models

21

Spiral Model(Description)Spiral Model(Description)

Follows an evolutionary approach Used when requirements are not well understood and risks are high Inner spirals focus on identifying software requirements and project risks;

may also incorporate prototyping Outer spirals take on a classical waterfall approach after requirements

have been defined, but permit iterative growth of the software Operates as a risk-driven model…a go/no-go decision occurs after each

complete spiral in order to react to risk determinations Requires considerable expertise in risk assessment Serves as a realistic model for large-scale software development

Follows an evolutionary approach Used when requirements are not well understood and risks are high Inner spirals focus on identifying software requirements and project risks;

may also incorporate prototyping Outer spirals take on a classical waterfall approach after requirements

have been defined, but permit iterative growth of the software Operates as a risk-driven model…a go/no-go decision occurs after each

complete spiral in order to react to risk determinations Requires considerable expertise in risk assessment Serves as a realistic model for large-scale software development

Page 22: Pressman ch-3-prescriptive-process-models

22

General Weaknesses of Evolutionary Process Models

General Weaknesses of Evolutionary Process Models1) Prototyping poses a problem to project planning because of the

uncertain number of iterations required to construct the product2) Evolutionary software processes do not establish the maximum

speed of the evolution• If too fast, the process will fall into chaos• If too slow, productivity could be affected

3) Software processes should focus first on flexibility and extensibility, and second on high quality

• We should prioritize the speed of the development over zero defects• Extending the development in order to reach higher quality could

result in late delivery

1) Prototyping poses a problem to project planning because of the uncertain number of iterations required to construct the product

2) Evolutionary software processes do not establish the maximum speed of the evolution

• If too fast, the process will fall into chaos• If too slow, productivity could be affected

3) Software processes should focus first on flexibility and extensibility, and second on high quality

• We should prioritize the speed of the development over zero defects• Extending the development in order to reach higher quality could

result in late delivery

Page 23: Pressman ch-3-prescriptive-process-models

Specialized Process ModelsSpecialized Process Models

Page 24: Pressman ch-3-prescriptive-process-models

24

Component-based Development ModelComponent-based Development Model

Consists of the following process steps Available component-based products are researched and evaluated

for the application domain in question Component integration issues are considered A software architecture is designed to accommodate the

components Components are integrated into the architecture Comprehensive testing is conducted to ensure proper functionality

Relies on a robust component library Capitalizes on software reuse, which leads to documented

savings in project cost and time

Consists of the following process steps Available component-based products are researched and evaluated

for the application domain in question Component integration issues are considered A software architecture is designed to accommodate the

components Components are integrated into the architecture Comprehensive testing is conducted to ensure proper functionality

Relies on a robust component library Capitalizes on software reuse, which leads to documented

savings in project cost and time

Page 25: Pressman ch-3-prescriptive-process-models

25

Formal Methods Model(Description)Formal Methods Model(Description)

Encompasses a set of activities that leads to formal mathematical specification of computer software

Enables a software engineer to specify, develop, and verify a computer-based system by applying a rigorous, mathematical notation

Ambiguity, incompleteness, and inconsistency can be discovered and corrected more easily through mathematical analysis

Offers the promise of defect-free software Used often when building safety-critical systems

Encompasses a set of activities that leads to formal mathematical specification of computer software

Enables a software engineer to specify, develop, and verify a computer-based system by applying a rigorous, mathematical notation

Ambiguity, incompleteness, and inconsistency can be discovered and corrected more easily through mathematical analysis

Offers the promise of defect-free software Used often when building safety-critical systems

Page 26: Pressman ch-3-prescriptive-process-models

26

Formal Methods Model(Challenges)Formal Methods Model(Challenges)

Development of formal methods is currently quite time-consuming and expensive

Because few software developers have the necessary background to apply formal methods, extensive training is required

It is difficult to use the models as a communication mechanism for technically unsophisticated customers

Development of formal methods is currently quite time-consuming and expensive

Because few software developers have the necessary background to apply formal methods, extensive training is required

It is difficult to use the models as a communication mechanism for technically unsophisticated customers