Upload
damon-hood
View
216
Download
1
Tags:
Embed Size (px)
Citation preview
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
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
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.
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
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
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
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.
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
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
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.