SE 470 Software Development Processes

advertisement
SE 470
Software Development Processes
James Nowotarski
07 April 2003
Today’s Objectives
• Understand leading methodology philosophies,
movements, products, and gurus of the past,
present, and future
• Understand distinguishing characteristics of
structured methods and information engineering
• Compare and contrast waterfall and iterative life
cycle models
Today’s agenda
Topic
Duration
• Week 1 Recap
15 minutes
• Marketplace Snapshot
30 minutes
• Summary of market developments
15 minutes
*** Break
15 minutes
• Frameworks, Philosophies, Gurus
75 minutes
• Quiz #1
30 minutes
Course Map
Week
1
2
3
4
5
6
7
8
9
Content
. Rational Unified Process
. Extreme Programming
Implementation
. Tools, Training, Roles
. CMM, Metrics
. Selection & Evaluation
Briefings (Term Papers)
Assignments
Quizzes
Memorial Day
Overview
. Introduction
. History
10
11
Today’s agenda
Topic
Duration
• Week 1 Recap
15 minutes
• Marketplace Snapshot
30 minutes
• Summary of market developments
15 minutes
*** Break
15 minutes
• Frameworks, Philosophies, Gurus
75 minutes
• Quiz #1
30 minutes
Core Concepts
In SE 470, we will use the terms method and
Methodology interchangeably
method/Methodology
•
A systematic way of doing something
•
Typically consists of these key content
pieces:
1.
2.
3.
4.
5.
Processes (what)
Deliverables (what)
Techniques (how)
Roles (who)
Estimating guidelines (how long)
Core Concepts
Broad categories of methods
•
•
•
•
Structured methods
Information engineering
Object-oriented methods
Lightweight/Agile methods
Core Concepts
Life cycle model
• The iteration and control strategy adopted by a
systems development organization
• Examples
- Waterfall
- Iterative/Evolutionary/Spiral
- Incremental
Core Concepts
The waterfall model is the granddaddy of life
cycle models
Core Concepts
Iterative/Evolutionary/Spiral life cycle models
advocate multiple “threads” through the SDLC
phases
Version 1
A
D
I
Version 2
A
D
I
Version 3
A
D
I
Core Concepts
Incremental life cycle models advocate
delivering the end product piecemeal
Version 1
A
D
I
Version 2
A
D
I
Version 3
A
D
I
Core Concepts
Routes
• A “route” is a preconfigured specialization of a
methodology, depending on a variety of factors:
- custom vs. packaged solution
- degree of project team distribution
- project team size
- technology platform
- application type
• Examples
- Custom Client/Server: Large Project
- Custom Client/Server: Small Project
- Rapid Application Development (RAD)
- Packaged Systems Development
- Data Warehouse
- SAP implementation
Core Concepts
RAD vs. Traditional
Traditional
Req’ts
Analysis
User
Design
Tech
Design
Construct
RAD
Req’ts
User
Design
Construct
Core Concepts
Modeling/Diagramming
Technique
Core Concepts
Normalization (Process Technique)
1NF = No repeating groups
2NF = 1NF + no partial dependencies (non-key
attribute dependent on portion of primary key)
3NF = 2NF + no transitive dependencies (nonkey attribute dependent on another non-key
attribute)
Core Concepts
Capability Maturity Model (CMM)
• A framework for:
– Judging the maturity of an organization’s software processes
– Identifying key practices required to increase the maturity of
these practices
• Levels of maturity
Optimizing
Level
Managed
Level
Defined Level
Repeatable Level
Initial Level
Common Drivers Behind
Methodology Adoption
• Project failure leads to realization that “we need a more
formal process”
• Codify best practices, so as to increase predictability and
reliability of software development process
• especially as IT organization grows
• Continued pressure on time to market and quality (web
services)
• Certification (e.g., Capability Maturity Model)
• Desire to stay current and/or sustain/develop competitive
edge
• Need to support distributed development teams (multi-site
and/or multi-organization)
Today’s agenda
Topic
Duration
• Week 1 Recap
15 minutes
• Marketplace Snapshot
30 minutes
• Summary of market developments
15 minutes
*** Break
15 minutes
• Frameworks, Philosophies, Gurus
75 minutes
• Quiz #1
30 minutes
What does a methodology product
consist of?
• Content
– building blocks (processes, deliverables, etc.)
– pre-defined routes
• Delivery vehicle (e.g., browser)
• Tools for authoring and publishing content
• Tools for applying the methodology to a specific project
– project planning and estimating tools
– process management tools
– project management tools
• Deliverable templates tightly coupled with a development
and/or execution platform
• Training and support
• Maintenance
Methodology Marketplace
No single vendor dominates this market
• Rational Software is collecting a fair amount of mindshare
• 3 key categories to consider:
– methodologies developed and delivered by consultants
– methodologies from software tool vendors
– methodologies from industry consortia or other groups
• Tremendous variability among the products
– Content
– Delivery vehicles
– Integration with development tools
Methodologies Developed and
Delivered by Consultants
Consulting firms methodologies have greatest depth and breadth of
content, but not all sell their methodology as a standalone product
Consultant
Methodology
Sold as
Standalone
Product?
PricewaterhouseCoopers
Summit Ascendant
Yes
Headstrong
gantthead.com
Yes
Fujitsu
Macroscope
Yes
Accenture
Accenture Delivery Methods
No
AMS
No
EDS
No
IBM
No
Keane
No
Methodologies from Software
Development Tool Vendors
Customers are increasingly demanding (and receiving)
process guidance from their tool vendors
Vendor
Methodology
Notes
Rational Software
Rational Unified Process
(RUP)
• Many vendor and
consulting partners
Computer Associates
CA ProcessContinuum
• Focus on large
accounts
Allen Systems Group (ASG)
Visual Process
Client/Server Connection
CS 10,000
• Easy to use
Aonix
Select ProcessDirector
• Strong coverage of
CBD
Methodologies from Industry
Consortia or Gurus
There is a growing interest among large corporate
shops in so-called “agile” methods from industry gurus
Guru/Consortium
Methodology
Notes
Kent Beck
Martin Fowler
Extreme Programming (XP)
• Many vendor and
consulting partners
Alistair Cockburn
Crystal
• Focus on large
accounts
Jim Highsmith
Adaptive software
development
Peter Coad
Feature driven development
Dynamic Systems
Development Method (DSDM)
Consortium
DSDM
• More RAD than agile
• Used in Europe more
than U.S.
Key Trends: Content
•
•
•
•
•
•
Component-based development
Reuse
Agile processes
Development of mobile applications
Development with/for web services
Distributed development teams, especially
offshore
How Does a Methodology Stay
Fresh?
• Experience
• New technologies that cause changes in
development processes
• Consortia/Gurus
• Academics
“ . . . those looking for true best practices and leading edge
methodologies should turn to the consulting industry rather than tool
or software vendors” -- Giga Information Group
Today’s agenda
Topic
Duration
• Week 1 Recap
15 minutes
• Marketplace Snapshot
30 minutes
• Summary of market developments
15 minutes
*** Break
15 minutes
• Frameworks, Philosophies, Gurus
75 minutes
• Quiz #1
30 minutes
Factoid
• Fastest-growing jobs: Software
application engineers (7.2% a year
through 2010), Computer support
specialists (7.0%), Software systems
engineers (6.6%), Systems
administrators (6.2%), Personal and
home care aides (5.0%), Security
guards (3.1%), Customer service reps
(2.8%)
Source: Business 2.0, March 2003
Today’s agenda
Topic
Duration
• Week 1 Recap
15 minutes
• Marketplace Snapshot
30 minutes
• Summary of market developments
15 minutes
*** Break
15 minutes
• Frameworks, Philosophies, Gurus
75 minutes
• Quiz #1
30 minutes
Summary Timeline
1960
1970
1990
1980
2000
Mainframe
Decentralized
Tech era
Distributed
Internet
Stage wise
Life cycle
model
Meth
approach
Content
Updates
Waterfall
Iterative/Incremental
Structured Analysis/Design
Information Engineering
Object-Oriented A/D
Agile
• OLTP
• Data mgmt
• JAD
• Prototyping
• UI design
• Bus process reengineering
• Data/process distribution
• CASE tools
• Multimedia content mgmt
• Quality • Network design/mgmt
• Security
Waterfall model
System
requirements
Software
requirements
Analysis
Program
design
Coding
Source: Royce, W. "Managing
the Development of Large
Software Systems."
Testing
Operations
Royce’s 5 Improvements to the
Basic Process
Improvement
1.
2.
3.
4.
5.
Relevance
today (H, M, L)
Program design comes first
System
requirements
Software
requirements
Preliminary
program design
Analysis
Program
design
Coding
Testing
Operations
Or, Architecture comes first
System
requirements
Software
requirements
Architecture
design/build
Analysis
Program
design
Coding
Testing
Operations
Do it twice
System
requirements
Software
requirements
Architecture
design/build
Analysis
Preliminary
design
Analysis
Program
design
Program
design
Coding
Coding
Testing
Usage
Testing
Operations
Why do it twice?
“Without this first pass, the project
manager is at the mercy of human
judgment. With this first-pass
‘simulation,’ he can at least perform
experimental tests of some key
hypotheses and scope down what
remains for human judgment, which in
the case of computer program design . .
. is invariably and seriously optimistic”
Problems with the Waterfall Process
Many of the problems attributed to the Waterfall
Process are really problems with the way it was
applied, not as it was intended
Problems
• Protracted integration and late design breakage
• Focus on fully elaborated documents and
review meetings for early requirements and
design phases
• Late risk resolution
• Adversarial stakeholder relationships
• Requirements-driven functional decomposition
Protracted integration and
late breakage
Conventional application of the waterfall
model typically results in late integration and
performance showstoppers
Late design
breakage
100%
Development progress
(% coded)
Integration
begins
Original
target date
Source: Royce, W. Software Project Management: A Unified Framework. Addison-Wesley (1998).
Spiral Model
Determine
objectives,
alternatives,
constraints
Evaluate
alternatives,
identify and
resolve risks
Plan next
phases
Develop verify
next level
product
Spiral Model
Planning and
analysis
Assessment
Design
Implementation
Iterative Development
Today’s version of the spiral model is iterative
development with incremental delivery
Version 1
A
D
I
Version 2
A
D
I
Version 3
A
D
I
Incremental Delivery
Today’s version of the spiral model is iterative
development with incremental delivery
Version 1
A
D
I
Version 2
A
D
I
Version 3
A
D
I
Small Group Activities
• Compare/Contrast Waterfall and
Spiral/Iterative/Incremental
– How are they different?
– How are they similar?
– When to use waterfall?
– When to use spiral/iterative/incremental?
Summary Timeline
1960
1970
1990
1980
2000
Mainframe
Decentralized
Tech era
Distributed
Internet
Stage wise
Life cycle
model
Meth
approach
Content
Updates
Waterfall
Iterative/Incremental
Structured Analysis/Design
Information Engineering
Object-Oriented A/D
Agile
• OLTP
• Data mgmt
• JAD
• Prototyping
• UI design
• Bus process reengineering
• Data/process distribution
• CASE tools
• Multimedia content mgmt
• Quality • Network design/mgmt
• Security
Structured Methods
Approach
Structured Analysis/Design
Key ideas/frameworks
Analysis:
• Data flow diagrams
• Entity-relationship diagrams
• State-transition diagrams
Design:
• Structure charts
• Coupling/Cohesion
Gurus
•
•
•
•
•
•
Key Players/Products
• Yourdon, inc.
• Softech
• IBM
Larry Constantine
Ed Yourdon
Chris Gane/Trish Sarson
Tom DeMarco
Peter Chen
Paul Ward/Steve Mellor
Structure Chart
PROCESS_PAYROLL
for each employee
get_data(:employee_data)
calc_salary(employee_data:salary)
calc_tax(salary:tax)
print_check(employee_data, salary, tax)
employee_data
employee_data
employee_
data
salary
salary
tax
salary
GET_DATA
CALC_SALARY
CALC_TAX
tax
PRINT_CHECK
Program Graph
employee_data
PRINT_
PAYCHECK
salary
CALC_
SALARY
taxes
employee_
data
READ_
DATA
salary
CALC_
TAXES
Program Graph
Big idea: As a prelude to creating a design, represent
the basic computational requirement for the system to
be designed in more abstract terms, i.e., in terms of
data flow
employee_data
PRINT_
PAYCHECK
salary
CALC_
SALARY
taxes
employee_
data
READ_
DATA
salary
CALC_
TAXES
Data Flow Diagram
1
Professor
s tudent info
Maintain
students
ass ignment info
3
D3
s tudent info
Students
ass ignment info
D2
Maintain
assignments
Assignments
ass ignment
info
c ompleted
ass ignment
5
s tudent
info
D1
grade info
Grades
Grade
assignment
Student
grade info
7
grade info
Produce
grade report
grade report
Entity Relationship Diagram
Employee
employee_id
employee_name
phone_num
office_num
Computer Model
model_num
manufacturer_name
processor_type
memory_amt
Ass igned
Has
to
Workstation
serial_num
purchase_date
model_num
employee_id
is
ins talled on
Is an instanc e of
Desc ribes
c ontains
Workstation Software
package_id
serial_num
is
is
install_date
ins talled on ass ociated with
Software
package_id
purchase_date
package_name
package_version_num
package_author
results in
pertains to
Incident
incident_num
employee_id
begin_timestamp
end_timestamp
problem_desc
resolution_desc
status_code
serial_num
package_id
Information Engineering
Approach
Information Engineering
Key ideas/frameworks
•
•
•
•
Gurus
• Clive Finkelstein
• James Martin
Key Players/Products
• James Martin & Co./IEM
• Texas Instruments/IEF
• Knowledgeware/IEW
Enterprise modeling
Repository/Encyclopedia
Automated Tools/Generators
End user participation
Information Engineering
Scope
PLANNING
Enterprise
ANALYSIS
Business Area/System
DESIGN
Process/Subsystem
CONSTRUCTION
Program/Module
Object-Oriented Methods
Approach
OO Analysis/Design
Key ideas/frameworks
•
•
•
•
•
Unified Process/UML
Use cases
Inheritance
Object/Class Modeling
Reuse
Gurus
•
•
•
•
•
Grady Booch
Ivar Jacobson
James Rumbaugh
Sally Shlaer/Steve Mellor
Peter Coad
Key Players/Products
•
•
•
•
Rational/RUP
Object Management Group
IBM
Apple
Agile Methods
Approach
Agile
Key ideas/frameworks
•
•
•
•
•
Gurus
• Kent Beck
• Martin Fowler
Key Players/Products
• Agile Alliance
Pair programming
Continuous testing
Short iterations
Heavy user involvement
Lightweight method
Today’s agenda
Topic
Duration
• Week 1 Recap
15 minutes
• Marketplace Snapshot
30 minutes
• Summary of market developments
15 minutes
*** Break
15 minutes
• Frameworks, Philosophies, Gurus
75 minutes
• Quiz #1
45 minutes
Topics for April 14
• Read Kruchten, chapters 1, 2, 4 (see course map)
• Assignment 1: Mapping symptoms to root causes
to best practices
Download