SE 470Software Development Processes
James Nowotarski
07 April 2003
• 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 Objectives
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
Today’s agenda
Course Map
Overview. Introduction. History
Content. Rational Unified Process. Extreme Programming
Implementation. Tools, Training, Roles. CMM, Metrics. Selection & Evaluation
Briefings (Term Papers)
1 2 3 4 6 7 8 9 10 115
Assignments
Quizzes
Week
Mem
ori
al D
ay
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
Today’s agenda
Core Concepts
method/Methodology
• A systematic way of doing something
• Typically consists of these key content pieces:
1. Processes (what)2. Deliverables (what)3. Techniques (how)4. Roles (who)5. Estimating guidelines (how long)
In SE 470, we will use the terms method and Methodology interchangeably
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
A D IVersion 1
A D IVersion 2
A D IVersion 3
Core Concepts
Incremental life cycle models advocate delivering the end product piecemeal
A D IVersion 1
A D IVersion 2
A D IVersion 3
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 UserDesign
ConstructTechDesign
RAD
Req’ts UserDesign
Construct
Core Concepts
Modeling/DiagrammingTechnique
Core Concepts
1NF = No repeating groups
2NF = 1NF + no partial dependencies (non-key attribute dependent on portion of primary key)
3NF = 2NF + no transitive dependencies (non-key attribute dependent on another non-key attribute)
Normalization (Process Technique)
Core Concepts
• 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
Capability Maturity Model (CMM)
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimizing 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)
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
Today’s agenda
• 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
What does a methodology product consist of?
• 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
Methodology Marketplace
No single vendor dominates this market
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
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
Today’s agenda
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
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
Today’s agenda
Summary Timeline
1960 1970 1980 1990 2000
Tech eraMainframe
Decentralized
Distributed Internet
Life cyclemodel
Stage wise
Waterfall
Iterative/Incremental
Methapproach
Structured Analysis/Design
Information Engineering
Object-Oriented A/DAgile
ContentUpdates
• Data mgmt • UI design• Bus process reengineering • Data/process distribution • CASE tools
• JAD• Prototyping • Multimedia content mgmt
• Network design/mgmt • Quality• Security
• OLTP
Waterfall model
Systemrequirements
Softwarerequirements
Analysis
Program design
Coding
Testing
Operations
Source: Royce, W. "Managing the Development of Large Software Systems."
Royce’s 5 Improvements to the Basic Process
Improvement Relevance today (H, M, L)
1.
2.
3.
4.
5.
Program design comes first
Systemrequirements
Softwarerequirements
Preliminary program design
Analysis
Coding
Testing
Operations
Programdesign
Or, Architecture comes first
Systemrequirements
Softwarerequirements
Architecture design/build
Analysis
Coding
Testing
Operations
Programdesign
Do it twice
Systemrequirements
Softwarerequirements
Architecture design/build
Analysis
Coding
Testing
Operations
Programdesign
Preliminarydesign
Analysis Program
design Coding
Testing
Usage
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
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
Many of the problems attributed to the Waterfall Process are really problems with the way it was applied, not as it was intended
Protracted integration and late breakage
Conventional application of the waterfall model typically results in late integration and performance showstoppers
Dev
elop
men
t p
rogr
ess
(% c
oded
)
100%Late designbreakage
Original target date
Source: Royce, W. Software Project Management: A Unified Framework. Addison-Wesley (1998).
Integrationbegins
Spiral Model
Determine objectives, alternatives, constraints
Evaluate alternatives, identify and resolve risks
Develop verify next level product
Plan next phases
Spiral Model
Assessment
Planning and analysis
Design
Implementation
Iterative Development
A D IVersion 1
A D IVersion 2
A D IVersion 3
Today’s version of the spiral model is iterative development with incremental delivery
Incremental Delivery
Today’s version of the spiral model is iterative development with incremental delivery
A D IVersion 1
A D IVersion 2
A D IVersion 3
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 1980 1990 2000
Tech eraMainframe
Decentralized
Distributed Internet
Life cyclemodel
Stage wise
Waterfall
Iterative/Incremental
Methapproach
Structured Analysis/Design
Information Engineering
Object-Oriented A/DAgile
ContentUpdates
• Data mgmt • UI design• Bus process reengineering • Data/process distribution • CASE tools
• JAD• Prototyping • Multimedia content mgmt
• Network design/mgmt • Quality• Security
• OLTP
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 • Larry Constantine• Ed Yourdon• Chris Gane/Trish Sarson• Tom DeMarco• Peter Chen• Paul Ward/Steve Mellor
Key Players/Products • Yourdon, inc. • Softech• IBM
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)
GET_DATA
employee_data
CALC_SALARY
employee_ data
salary
CALC_TAX
salary
tax
PRINT_CHECK
employee_data
salary
tax
Program Graph
READ_DATA
CALC_SALARY
CALC_TAXES
PRINT_PAYCHECK
employee_data
employee_data
salary
salary
taxes
Program Graph
READ_DATA
CALC_SALARY
CALC_TAXES
PRINT_PAYCHECK
employee_data
employee_data
salary
salary
taxes
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
Data Flow Diagram
GradesD1
Maintainstudentsstudent info
Maintainassignments
7
Producegrade report
grade info
Professor
5
Gradeassignment
D2Assignments
D3Students
assignment info
Student
1
grade info
student info
assignment info
grade report
3
studentinfocompleted
assignment
grade info
assignmentinfo
Entity Relationship Diagram
Is an instance of
Computer Model
model_num
manufacturer_nameprocessor_typememory_amt
Workstation
serial_num
purchase_datemodel_numemployee_id
Describes
Employee
employee_id
employee_namephone_numoffice_num
HasAssignedto
Software
package_id
purchase_datepackage_namepackage_version_numpackage_author
Workstation Software
package_idserial_num
install_date
Incident
incident_num
employee_idbegin_timestampend_timestampproblem_descresolution_descstatus_codeserial_numpackage_id
isinstalled on
isassociated with
containsisinstalled on
results in
pertains to
Information Engineering
Approach Information Engineering
Key ideas/frameworks • Enterprise modeling• Repository/Encyclopedia• Automated Tools/Generators• End user participation
Gurus • Clive Finkelstein• James Martin
Key Players/Products • James Martin & Co./IEM• Texas Instruments/IEF• Knowledgeware/IEW
Information Engineering
PLANNING
ANALYSIS
DESIGN
CONSTRUCTION
Scope
Enterprise
Business Area/System
Process/Subsystem
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 • Pair programming• Continuous testing• Short iterations• Heavy user involvement• Lightweight method
Gurus • Kent Beck• Martin Fowler
Key Players/Products • Agile Alliance
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
Today’s agenda
• Read Kruchten, chapters 1, 2, 4 (see course map)• Assignment 1: Mapping symptoms to root causes
to best practices
Topics for April 14