10
CS 325: Software Engineering January 15, 2015 Software Process & Methodology Prototyping Process Model Evolutionary Process Model Spiral Process Model Unified Process Model Agile Process Models Software Development Methodologies Agile Methodology: Scrum Agile Methodology: XP Agile Methodology: AUM

CS 325: Software Engineering January 15, 2015 Software Process & Methodology Prototyping Process Model Evolutionary Process Model Spiral Process Model

Embed Size (px)

Citation preview

Page 1: CS 325: Software Engineering January 15, 2015 Software Process & Methodology Prototyping Process Model Evolutionary Process Model Spiral Process Model

CS 325: Software Engineering

January 15, 2015

Software Process & Methodology• Prototyping Process Model• Evolutionary Process Model• Spiral Process Model• Unified Process Model• Agile Process Models• Software Development

Methodologies• Agile Methodology: Scrum• Agile Methodology: XP• Agile Methodology: AUM

Page 2: CS 325: Software Engineering January 15, 2015 Software Process & Methodology Prototyping Process Model Evolutionary Process Model Spiral Process Model

Prototyping Process Model

CS 325January 15, 2015Page 2

To validate the user requirements for new software before progressing too far in the development process, prototypes of the software system may be developed.

Whether a low-fidelity prototype that illustrates the look-and-feel of the design or a high-fidelity prototype that implements part of the system’s functionality, approval by the customer is required before full system implementation is begun.

Design

Prototype

Customer Evaluatio

n

Review & Update

Initial Requirements

Development

Test

Maintain

Customer Satisfactio

n

Page 3: CS 325: Software Engineering January 15, 2015 Software Process & Methodology Prototyping Process Model Evolutionary Process Model Spiral Process Model

Evolutionary Process Model

CS 325January 15, 2015Page 3

Larger systems may require the development of an iterative sequence of prototypes, each refining the system as requirements become clear and alternatives are explored.

Developer

Conception

Customer Conceptio

n

Vers

ion

3

Vers

ion

2

Vers

ion

N

Vers

ion

1ScopeConceptRequirements

ChangesFeaturesFunctionsSpecifications

ChangesDefectsPerformance

Total Package

Redesign

Reevaluate

Respecify

Redesign

Reevaluate

Respecify

Redesign

Reevaluate

RespecifyRedesign

Reevaluate

Respecify

These prototypes tend to be less disposable than in the prototyping process model, representing early working versions of the actual final system.

Page 4: CS 325: Software Engineering January 15, 2015 Software Process & Methodology Prototyping Process Model Evolutionary Process Model Spiral Process Model

Spiral Process Model

CS 325January 15, 2015Page 4

This variation of the evolutionary approach emphasizes extensive risk assessment to allow for easy adaptation to changes and identification of problems.

• Quadrant 3•Putting into practice a

solution to reach the Q1 goals in view of the Q2

risks

• Quadrant 4•Assessing the results of the risk-reduction strategies and planning the next phase

• Quadrant 2•Analyzing the strategy

for achieving this phase’s goals from the

viewpoint of risk

• Quadrant 1•Determining the current phase’s objectives, alternatives, and constraints

Requirements Plan

Risk Analysis

Prototype #1

Requirements

Validation

Life-Cycle Plan

Risk Analysis

Prototype #2

Software

Product Design

Design Verification &

Validation

Development Plan

Risk Analysis

Prototype #3

UML Models

Integration & Test

Plan

Risk Analysis

Operational

Prototype

Benchmarks

Detailed Design

Code

Unit Tests

Integration

Integration Tests

Implementation

Page 5: CS 325: Software Engineering January 15, 2015 Software Process & Methodology Prototyping Process Model Evolutionary Process Model Spiral Process Model

Unified Process Model

CS 325January 15, 2015Page 5

This iterative approach emphasizes a heavily structured hierarchy of activities and milestones.

Project Life-Cycle Phases

Inception(Validate initial

costs and budget)

Elaboration(Identify problem domain

& mitigate risks)

Construction(Build an operational

software system)

Transition(Validate system

& train users)

Iterations

Task

Cate

gori

es

Business Modeling

Requirements

Analysis & Design

Implementation

Test

Deployment

Config/Change Mgmt

Project Mgmt

Environment

Page 6: CS 325: Software Engineering January 15, 2015 Software Process & Methodology Prototyping Process Model Evolutionary Process Model Spiral Process Model

Agile Process Models

CS 325January 15, 2015Page 6

The predictive nature of conventional software development is sometimes seen as an illusion. An alternative approach, agile

development, is characterized by:• Small but highly competent

development teams• The principal measure of

progress is working code• Changes in requirements are

welcome, even if late• Developers, customers, and

managers are all on the same team

• Software delivery is stressed more than analysis and design

Page 7: CS 325: Software Engineering January 15, 2015 Software Process & Methodology Prototyping Process Model Evolutionary Process Model Spiral Process Model

Software Development Methodologies

CS 325January 15, 2015Page 7

While the process lays out the phases of the software development, the methodology details the actual steps taken to accomplish the software development.

Implement-ation

Imple-ment

Train Users

User Approval & User Guide-lines

Assess Impact

on Busines

s

Design & Build

Iteration

Identify Design Proto-types

Review Design Proto-type

Create Design Proto-type

Agree Plan

Functional Model

Iteration

Agree Plan

Identify Functio

n-al Proto-type

Review Functio

n-al Proto-type

Create Functio

n-al Proto-type

Business Study

Prioritize

Require-ments

Design Architec

-ture

Resolve Risks

Plan To Build, Test,

Deploy, Support

Feasibility Study

Deter-mine Time Con-

straints

Deter-mine

Resource Con-straints

Identify Risks

For example, the Dynamic Systems Development Method lays out steps for following the Unified Process.

Page 8: CS 325: Software Engineering January 15, 2015 Software Process & Methodology Prototyping Process Model Evolutionary Process Model Spiral Process Model

Agile Methodology: Scrum

CS 325January 15, 2015Page 8

Scrum is an agile approach in which prioritized requirements are achieved in strict time intervals with regular team input.

PREGAME PHASE DEVELOPMENT PHASE

POSTGAME PHASE

PRODUCT

BACKLOG LIST

PLANNING

regular update

s

priorities

effort estimat

esSTANDARDSCONVENTION

STECHNOLOGYRESOURCESARCHITECTU

RE

HIGH-LEVEL DESIGN/

ARCHITECTURE

SPRINT BACKLOG LIST

SPRINT

ANALYSISDESIGN

EVOLUTION

TESTINGDELIVERY

requirements

no more requirements

NEW PRODUCT INCREMEN

T

FINAL RELEA

SE

DOCUMENTATION

INTEGRATION

SYSTEM TESTING

Page 9: CS 325: Software Engineering January 15, 2015 Software Process & Methodology Prototyping Process Model Evolutionary Process Model Spiral Process Model

Agile Methodology: XP

CS 325January 15, 2015Page 9

Extreme programming (XP) is an agile approach that emphasizes rapid feedback, stressing simplicity, and embracing change.

PAIR PROGRAMMING

ANALYSIS DESIGNPLANNING

FOR TESTING

TESTING

STORIES

STORIESFOR NEXT

ITERATION

COLLECTIVE

DATABASE

TESTSMALL RELEA

SE

UPDATED

RELEASES

FINAL RELEA

SE

EXPLORATION PHASE

PLANNING PHASE

ITERATIONS-TO-RELEASE PHASE

PR

OD

UC

TIO

NIZ

IN

G P

HA

SE

MA

INTEN

AN

CE

PH

AS

E

DEATH

P

HA

SE

regular update

s

priorities

effort estimat

es

continuous review

continuous

integration

feedback

customer approval

customer approval

Page 10: CS 325: Software Engineering January 15, 2015 Software Process & Methodology Prototyping Process Model Evolutionary Process Model Spiral Process Model

Agile Methodology: AUM

CS 325January 15, 2015Page 10

The Agile Unified Methodology. begins with a brief planning phase in which requirements are identified and use cases (models of how the system will be used to achieve particular goals) are derived.

Acquiring Requirements

Deriving Use Cases From

Requirements

Allocating Use Cases &

Subsystems To Iterations

Producing An Architectural

Design Accommodating

Requirements Change

Domain Modeling

User Interface Design

Behavior Modeling &

Responsibility Assignment

Deriving Design Class

Diagram

Test-Driven Development Integration, & Deployment

Bu

sin

ess

Goals

&

Need

s

Req

uire

me

nts

Hig

h-

Level U

se

Cases

Use-C

ase

Itera

tion

A

llocatio

n M

atrix

Softw

are

A

rch

itectu

reCustomer Feedback

Iteration Use Cases

Domain Model

Expanded Use Cases

& UI Design

Behavior Model

Design Class

Diagram

Iterative Phase

Planning Phase

This is followed by an iterative phase in which changes to requirements are addressed, use cases are updated, the user’s domain is conceptualized, the algorithms are formulated (via activity, sequence, and state diagrams), and the planned classes are diagrammed and then implemented and tested.