+ All Categories
Home > Documents > SE 470 Software Development Processes James Nowotarski 07 April 2003.

SE 470 Software Development Processes James Nowotarski 07 April 2003.

Date post: 11-Jan-2016
Category:
Upload: erick-hoover
View: 215 times
Download: 0 times
Share this document with a friend
55
SE 470 Software Development Processes James Nowotarski 07 April 2003
Transcript
Page 1: SE 470 Software Development Processes James Nowotarski 07 April 2003.

SE 470Software Development Processes

James Nowotarski

07 April 2003

Page 2: SE 470 Software 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

Page 3: SE 470 Software Development Processes James Nowotarski 07 April 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

Page 4: SE 470 Software Development Processes James Nowotarski 07 April 2003.

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

Page 5: SE 470 Software Development Processes James Nowotarski 07 April 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

Page 6: SE 470 Software Development Processes James Nowotarski 07 April 2003.

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

Page 7: SE 470 Software Development Processes James Nowotarski 07 April 2003.

Core Concepts

Broad categories of methods

• Structured methods• Information engineering• Object-oriented methods• Lightweight/Agile methods

Page 8: SE 470 Software Development Processes James Nowotarski 07 April 2003.

Core Concepts

Life cycle model

• The iteration and control strategy adopted by a systems development organization

• Examples- Waterfall- Iterative/Evolutionary/Spiral- Incremental

Page 9: SE 470 Software Development Processes James Nowotarski 07 April 2003.

Core Concepts

The waterfall model is the granddaddy of life cycle models

Page 10: SE 470 Software Development Processes James Nowotarski 07 April 2003.

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

Page 11: SE 470 Software Development Processes James Nowotarski 07 April 2003.

Core Concepts

Incremental life cycle models advocate delivering the end product piecemeal

A D IVersion 1

A D IVersion 2

A D IVersion 3

Page 12: SE 470 Software Development Processes James Nowotarski 07 April 2003.

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

Page 13: SE 470 Software Development Processes James Nowotarski 07 April 2003.

Core Concepts

RAD vs. Traditional

Traditional

Req’ts Analysis UserDesign

ConstructTechDesign

RAD

Req’ts UserDesign

Construct

Page 14: SE 470 Software Development Processes James Nowotarski 07 April 2003.

Core Concepts

Modeling/DiagrammingTechnique

Page 15: SE 470 Software Development Processes James Nowotarski 07 April 2003.

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)

Page 16: SE 470 Software Development Processes James Nowotarski 07 April 2003.

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

Page 17: SE 470 Software Development Processes James Nowotarski 07 April 2003.

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)

Page 18: SE 470 Software Development Processes James Nowotarski 07 April 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

Page 19: SE 470 Software Development Processes James Nowotarski 07 April 2003.

• 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?

Page 20: SE 470 Software Development Processes James Nowotarski 07 April 2003.

• 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

Page 21: SE 470 Software Development Processes James Nowotarski 07 April 2003.

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

Page 22: SE 470 Software Development Processes James Nowotarski 07 April 2003.

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

Page 23: SE 470 Software Development Processes James Nowotarski 07 April 2003.

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.

Page 24: SE 470 Software Development Processes James Nowotarski 07 April 2003.

Key Trends: Content

• Component-based development• Reuse• Agile processes• Development of mobile applications• Development with/for web services• Distributed development teams, especially

offshore

Page 25: SE 470 Software Development Processes James Nowotarski 07 April 2003.

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

Page 26: SE 470 Software Development Processes James Nowotarski 07 April 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

Page 27: SE 470 Software Development Processes James Nowotarski 07 April 2003.

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

Page 28: SE 470 Software Development Processes James Nowotarski 07 April 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

Page 29: SE 470 Software Development Processes James Nowotarski 07 April 2003.

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

Page 30: SE 470 Software Development Processes James Nowotarski 07 April 2003.

Waterfall model

Systemrequirements

Softwarerequirements

Analysis

Program design

Coding

Testing

Operations

Source: Royce, W.  "Managing the Development of Large Software Systems."

Page 31: SE 470 Software Development Processes James Nowotarski 07 April 2003.

Royce’s 5 Improvements to the Basic Process

Improvement Relevance today (H, M, L)

1.

2.

3.

4.

5.

Page 32: SE 470 Software Development Processes James Nowotarski 07 April 2003.

Program design comes first

Systemrequirements

Softwarerequirements

Preliminary program design

Analysis

Coding

Testing

Operations

Programdesign

Page 33: SE 470 Software Development Processes James Nowotarski 07 April 2003.

Or, Architecture comes first

Systemrequirements

Softwarerequirements

Architecture design/build

Analysis

Coding

Testing

Operations

Programdesign

Page 34: SE 470 Software Development Processes James Nowotarski 07 April 2003.

Do it twice

Systemrequirements

Softwarerequirements

Architecture design/build

Analysis

Coding

Testing

Operations

Programdesign

Preliminarydesign

Analysis Program

design Coding

Testing

Usage

Page 35: SE 470 Software Development Processes James Nowotarski 07 April 2003.

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”

Page 36: SE 470 Software Development Processes James Nowotarski 07 April 2003.

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

Page 37: SE 470 Software Development Processes James Nowotarski 07 April 2003.

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

Page 38: SE 470 Software Development Processes James Nowotarski 07 April 2003.

Spiral Model

Determine objectives, alternatives, constraints

Evaluate alternatives, identify and resolve risks

Develop verify next level product

Plan next phases

Page 39: SE 470 Software Development Processes James Nowotarski 07 April 2003.

Spiral Model

Assessment

Planning and analysis

Design

Implementation

Page 40: SE 470 Software Development Processes James Nowotarski 07 April 2003.

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

Page 41: SE 470 Software Development Processes James Nowotarski 07 April 2003.

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

Page 42: SE 470 Software Development Processes James Nowotarski 07 April 2003.

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?

Page 43: SE 470 Software Development Processes James Nowotarski 07 April 2003.

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

Page 44: SE 470 Software Development Processes James Nowotarski 07 April 2003.

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

Page 45: SE 470 Software Development Processes James Nowotarski 07 April 2003.

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

Page 46: SE 470 Software Development Processes James Nowotarski 07 April 2003.

Program Graph

READ_DATA

CALC_SALARY

CALC_TAXES

PRINT_PAYCHECK

employee_data

employee_data

salary

salary

taxes

Page 47: SE 470 Software Development Processes James Nowotarski 07 April 2003.

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

Page 48: SE 470 Software Development Processes James Nowotarski 07 April 2003.

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

Page 49: SE 470 Software Development Processes James Nowotarski 07 April 2003.

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

Page 50: SE 470 Software Development Processes James Nowotarski 07 April 2003.

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

Page 51: SE 470 Software Development Processes James Nowotarski 07 April 2003.

Information Engineering

PLANNING

ANALYSIS

DESIGN

CONSTRUCTION

Scope

Enterprise

Business Area/System

Process/Subsystem

Program/Module

Page 52: SE 470 Software Development Processes James Nowotarski 07 April 2003.

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

Page 53: SE 470 Software Development Processes James Nowotarski 07 April 2003.

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

Page 54: SE 470 Software Development Processes James Nowotarski 07 April 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 45 minutes

Today’s agenda

Page 55: SE 470 Software Development Processes James Nowotarski 07 April 2003.

• Read Kruchten, chapters 1, 2, 4 (see course map)• Assignment 1: Mapping symptoms to root causes

to best practices

Topics for April 14


Recommended