james nowotarski 11 september 2008 se 425 principles and practices of software engineering autumn...

82
James Nowotarski 11 September 2008 SE 425 Principles and Practices of Software Engineering Autumn 2008

Upload: abner-williamson

Post on 01-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

James Nowotarski

11 September 2008

SE 425Principles and

Practices of Software Engineering

Autumn 2008

2

Understand what the course is about (i.e., course objectives)

Understand how the course will achieve its objectives Get acquainted Level set:

What is software engineering Why use a software engineering process What are the key vocabulary terms to understand Why does any of this matter

Today’s Objectives

3

Topic Duration

Questionnaire & Intros 30 minutes

Does software engineering matter? 45 minutes

*** Break 15 minutes

Course overview 15 minutes

Key models and frameworks 90 minutes

Today’s Agenda

4

Software = “single most important technology on the world stage”

- Pressman, p.7

Does SE Matter?

5

Does SE Matter?

As noted by Carr, IT is often viewed as a commodity and, thus, not “core”

• IT is like electric power -- a commodity that is required by all but provides distinction to none

• IT capability is broadly accessible and affordable

• New or proprietary technologies offer opportunity for companies to gain a step, but this advantage is short-lived

• Further evidence of IT commoditization:– overcapacity– price drops– vendors positioning selves as “utilities”

Source: Carr, N. (2003, May). IT doesn’t matter. Harvard Business Review, 81(5), 41-49.

6

Buy vs. build Lease (utility model) vs. buy

• Open source download vs. lease Software as a commodity? “Although the industry is moving toward component-

based construction, most software continues to be custom built” (Pressman, p.7)

Does SE Matter?

7

“Why write your own application for word processing or e-mail or, for that matter, supply-chain management when you can buy a ready-made, state-of-the-art application for a fraction of the cost?”

“…more companies [are] replac[ing] customized applications with standardized ones”

Source: Carr, N. (2003, May). IT doesn’t matter. Harvard Business Review, 81(5), 41-49.

Does SE Matter?

8

IT Outsourcing

Buy

Build

Commodity Differential

Critical

Useful

StrategicImportance

Potential for Differentiation

Buy vs. build

9

Software Engineering

• The establishment and use of sound engineering principles in order to economically obtain software that is reliable and works efficiently on real machines (Fritz Bauer, 1969)

What is SE?

10

Who is Fritz Bauer?

• Professor of Mathematics and Computer Science at Munich University of Technology

11

Who is Fritz Bauer?

• Chairman of 1968 NATO Software Engineering Conference

• Credited with coining the term “software engineering”

12

Who is Fritz Bauer?

• Software engineering = “The part of computer science that is too difficult for the computer scientists.”

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 13

What is software engineering?

Software engineering is an engineering discipline that is concerned with all aspects of software production.

Software engineers should adopt a systematic and organised approach to their work and use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available.

14

Software Engineering

(1)The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.

(2) The study of approaches as in (1).

Source: “IEEE Standard Glossary of Software Engineering Terminology,” IEEE std 610.12-1990

What is SE?

15

Software Engineering Body of Knowledge

Software requirementsSoftware designSoftware constructionSoftware testingSoftware maintenanceSoftware configuration managementSoftware engineering managementSoftware engineering processSoftware engineering tools and methodsSoftware quality

Source: Guide to the Software Engineering Body of Knowledge. (2004). IEEE. www.swebok.org

What is SE?

16

IT OutsourcingBest jobs in America

1. Software engineer

2. College professor

3. Financial adviser

4. Human resources manager

5. Physician’s assistant

6. Market research analyst

7. Computer/IT analyst

8. Real estate appraiser

9. Pharmacist

10. Psychologist

Source:Kalwarski, T., Mosher, D., Paskin, J. & Rosato, D. (2006, May). 50 best jobs in America. Money. Retrieved September 8, 2008, from http://money.cnn.com/magazines/moneymag/bestjobs/2006/

17

IT OutsourcingBest jobs in America

18

IT OutsourcingFasting growing jobs in U.S.

Source:Dohm, A. & Shniper, L. (2007, November). Occupational employment projections to 2016. Monthly Labor Review Online. Retrieved September 8, 2008, from http://www.bls.gov/opub/mlr/2007/11/art5full.pdf

19

IT OutsourcingFasting growing jobs in U.S.

• Computer software engineers, application

• Computer systems analysts

• Network systems and data communication analysts

• Home health aides

• Medical assistants

• Personal and home care aides

“Six occupations…will be among both the fastest growing occupations and the occupations that register the largest numeric growth:”

IT project failure rates are high

20

Source: Standish Group, 2007

Software failures are legion

21

The London Stock Exchange (LSE) shut down for seven hours on Monday due to a software problem as opposed to too much trading volume as was initially speculated, Reuters reported. Reuters quoted an LSE spokesperson as saying:

It was software-related, a coincidence, due to two processes we couldn't have foreseen. We've introduced a fix and we're confident it will not happen again.

Source: Charette, R. (2008, September 10). London Stock Exchange shutdown caused by software problem. Message

posted to http://blogs.spectrum.ieee.org/riskfactor/2008/09/london_stock_exchange_shutdown.html

22

Topic Duration

Questionnaire & Intros 30 minutes

Does software engineering matter? 45 minutes

*** Break 15 minutes

Course overview 15 minutes

Key models and frameworks 90 minutes

Today’s Agenda

23

Activity – Software categories

In small groups, develop a 1-minute summary of one of the following: System software Application software (custom) Application software product Engineering/Scientific software Embedded software Web-based applications

For each, describe and discuss software engineering challenges

24

System software

Description

Challenges

25

Application software (custom-built)

Description

Challenges

26

Application software (product)

Description

Challenges

27

Engineering/Scientific software

Description

Challenges

28

Embedded software

Description

Challenges

xx

29

Web-based applications

Description

xx

Challenges

xx

30

Technology

ProcessPeople

The software engineering discipline consists of people, process, and technology components

Core Concepts

31

Technology1

ProcessPeople

The focus of SE 425 is the process component of software engineering

Core Concepts

Technology1

ProcessPeople

… for the delivery of technology-enabled business solutions

1 SE is primarily concerned with the software subset of technology

Core Concepts

process Sequence of steps performed for a given

purpose “A specific ordering of work activities

across time and place with a beginning, an end, and clearly identified inputs and outputs” -- Tom Davenport

An overloaded term, can apply at multiple levels

32

33

software process (also known as “method”)

• Within the context of software engineering, a formalized approach or series of steps for performing some significant portion of software development

Software Process (aka “Methodology”)

• A collection of methods based on a common philosophy that fit together in a framework called the systems development life cycle

-- Ken Orr

Core Concepts

34

• A systematic way of doing something

• Typically consists of these key content pieces:

1. Steps (what)2. Deliverables (what)3. Techniques (how)4. Roles (who)5. Estimating guidelines (how long)

In SE 425, we will use the terms “software process” and “Software Process” interchangeably

Core Concepts

35

Key Question: Deliverables

Steps Techniques

What does the system need to do?Functional requirementsQuality requirementsData modelProcess model

1. Gather requirements2. Create data model3. Create process model

InterviewingObservationEntity-relationship modelingNormalizationData flow modeling

Example: Analysis

Roles Estimating guidelines

Business analystDomain expertEnd user

8 hours per data entityetc.

36

Justifying a Methodology

• Vendors and consultants have not done much to substantiate quantitatively the value of their methodologies

• What would you say if asked to provide justification?

37

Justifying a Methodology

Reasons

• xx

38

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)

39

Methodology - Who needs it?

“Any first attempt at converting folklore into knowledge, and a guessing game into a discipline, is liable to be misread as a downgrading of individual ability and its replacement by a rule book. Any such attempt would be nonsense, of course. No book will ever make a wise man out of a donkey or a genius out of an incompetent. The foundation in a discipline, however, gives to today’s competent physician a capacity to perform well beyond that of the ablest doctor of a century ago, and enables the outstanding physician of today to do what the medical genius of yesterday could hardly have dreamt of. No discipline can lengthen a man’s arm. But it can lengthen his reach by hoisting him on the shoulders of his predecessors. Knowledge organized in a discipline does a good deal for the merely competent; it endows him with some effectiveness. It does infinitely more for the truly able; it endows him with excellence.”

From Managing for Results, by Peter F. Drucker

40

Systems development life cycle (SDLC) A description of the phases of an

information system

Planning Modeling Construction Deployment

Example

Core Concepts

SDLC is another synonym for software process

41

SDLC model

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

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

Core Concepts

42

The waterfall model is the granddaddy of life cycle models

Core Concepts

Planning

Modeling

Construction

Deployment

43

Advantages of waterfall?

44

What’s wrong with waterfall?

45

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. (1998). Software project management: A unified framework. Addison-Wesley.

Integrationbegins

What’s wrong with waterfall?

46

Iterative/Evolutionary/Spiral life cycle models advocate multiple “threads” through the SDLC phases

M C DVersion 1

M C DVersion 2

M C DVersion 3

Core Concepts

47

Incremental life cycle models advocate delivering the end product piecemeal

M C DVersion 1

M C DVersion 2

M C DVersion 3

Core Concepts

48

Waterfall model

Systemrequirements

Softwarerequirements

Analysis

Program design

Coding

Testing

Operations

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

49

Rational Unified Process (RUP)

50

RUP Guiding Principles

IterativeDevelopment

QualityCustomerValue

Attack riskAccommodatechange

Work togetherExecutablesoftware

Architecturebaseline

Component-baseddevelopment

Objectives

Strategies

Tactics

51

M C DVersion 1

M C DVersion 2

M C DVersion 3

Iterative Development

52

In RUP, end product is the result of development cycles

Version 1

Development CycleVersion 2

Development CycleVersion 3

Development Cycle

Product delivered to users

53

Development cycle consists of phases

Development Cycle

Inception Elaboration Construction Transition

54

Phase consists of IterationsDevelopment Cycle

Elaboration

Iterationn Iterationn+1

55

Iteration consists of ActivitiesDevelopment Cycle

Elaboration

Iterationn+1IterationnR

A&D

C

T

R

A&D

C

T

Each phase contains one or more iterations

56

Each Iteration is a mini-waterfall

R

A&D

C

T

R

A&D

C

T

R

A&D

C

T

57

Iterative Advantages/Disadvantages

Advantages

Disadvantages

59Copyright © 1997 by Rational Software Corporation

Risk

Transition

Inception

Elaboration

Construction

PreliminaryIteration

Architect.Iteration

Architect.Iteration

Devel. Iteration

Devel. Iteration

Devel. Iteration

TransitionIteration

TransitionIteration

Post-deployment

Waterfall

Time

Risk Profile: Iterative vs. Waterfall

Iterative

60

Is RUP = Waterfall in disguise?

Systemrequirements

Softwarerequirements

Analysis

Program design

Coding

Testing

Operations

Inception

Elaboration

Construction

Transition

61

Phase boundaries in waterfall are activities

Systemrequirements

Softwarerequirements

Analysis

Program design

Coding

Testing

Operations

Phase

Phase

Phase

Phase

Phase

Phase

62

Phase boundaries in RUP are milestones

Systemrequirements

Softwarerequirements

Analysis

Program design

Coding

Testing

Operations

RUP Phase

Milestone

63

RUP Guiding Principles

IterativeDevelopment

QualityCustomerValue

Attack riskAccommodatechange

Work togetherExecutablesoftware

Architecturebaseline

Component-baseddevelopment

Objectives

Strategies

Tactics

64

Why focus on risk and change?

Life cycle phase

Co

st

of

ch

an

ge

Req Anal. Des. Impl. Test Prod

y = axp

65

RUP Guiding Principles

IterativeDevelopment

QualityCustomerValue

Attack riskAccommodatechange

Work togetherExecutablesoftware

Architecturebaseline

Component-baseddevelopment

Objectives

Strategies

Tactics

66

Why emphasis on executable software?

“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”

67

RUP Artifacts by Phase and Discipline

Discipline Inception Elaboration Construction TransitionBusiness Modeling

RequirementsVisionUse Cases (20-80%)ActorsSoftware Req SpecGlossary

Analysis & Design Software Arch Doc

Implementation

Build PlanBuildTest Results

Test

Test PlanTest ScriptTest DataTest Results

Test Strategy

DeploymentDeployment Plan Training Materials

Support MaterialsAcceptance Test ResultsChange Requests

Product

Executable ArchitectureUser Interface PrototypeUser Interface DesignUse Case RealizationDesign ModelDatabase Design

Business Architecture

68

RUP Artifacts by Phase and Discipline

Discipline Inception Elaboration Construction Transition

Configuration and Change Management

Project Management Risk ListRisk Mgmt PlanBusiness CaseQA PlanSoftware Dev Plan

Environment

Dev Case (Process)ToolsGuidelinesTemplatesSupport

CM PlanCM EnvironmentChange Requests

69

Agile/Light/Lean Methods

On February 11-12, 2001 seventeen proponents met at Snowbird ski resort and what emerged was the:

Agile “Software Development” Alliance

“We have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan”

70

Approach References

XP www.extremeprogramming.org

www.xprogramming.com

M. Marchesi et al, Extreme Programming Perspectives, Addison-Wesley, 2002.

Crystal A. Cockburn, Agile Software Development, Addison-Wesley, 2001

SCRUM K. Schwaber and M. Beedle, Agile Software Development with Scrum, Prentice Hall, 2001.

Adaptive Software Development

J. Highsmith, Adaptive Software Development, Dorset House, 2000.

FDD S. Palmer, A Practical Guide to Feature-Driven Development, Prentice Hall, 2002.

Agile - General http://www.agilealliance.org/home

http://www.agilemodeling.com

Agile/Light/Lean Methods

72

RUP Guiding Principles

IterativeDevelopment

QualityCustomerValue

Attack riskAccommodatechange

Work togetherExecutablesoftware

Architecturebaseline

Component-baseddevelopment

Objectives

Strategies

Tactics

73

XP Conceptual Framework

IterativeDevelopment

QualityCustomerValue

Attack riskAccommodatechange

Work togetherExecutablesoftware

Architecturebaseline

Component-baseddevelopment

Objectives

Strategies

Practices

74

Phase boundaries in waterfall are activities

Systemrequirements

Softwarerequirements

Analysis

Program design

Coding

Testing

Operations

Phase

Phase

Phase

Phase

Phase

Phase

75

Phase boundaries in RUP are milestones

Systemrequirements

Softwarerequirements

Analysis

Program design

Coding

Testing

Operations

RUP Phase

Milestone

76

XP winds the RUP model more tightly

Systemrequirements

Softwarerequirements

Analysis

Program design

Coding

Testing

Operations

Each day on an XP project

FunctioningCode

77

What is XP

Life cycle phase

Co

st

of

ch

an

ge

Req Anal. Des. Impl. Test Prod

y = axp

RUP – “In general, as the project progresses, you should be more careful about introducing change”

78

What is XP

Time

Co

st

of

ch

an

ge

XP purports to change the curve so that the cost to find and repair software problems does not rise dramatically over time

79

RUP vs. XP

Attribute RUP (“Heavyweight”) XP (“Lightweight”)

Time and Effort Allocation 2 weeks-6 months 2 weeks - 2 months

Architecture Stabilized during Elaboration phase

Just enough to support functionality

Scope of Activities and Artifacts

Broad Narrow

Few, simple. Omits: Business modeling Deployment

Project size Small to Very Large Small to Medium

Artifacts 25-30 in small project roadmap

roughly 30

Roles ~ 30 (5 in small project roadmap)

7

80

Read Pressman Chapters 1-4, 7-8 Read Royce article Assignment 1- Critique the Royce article

For September 18

81

Extra slides

82

Solution “Stack”

Application software and Data

Middleware

Hardware/Network

System Software

Examples

Workstations, Mobile devicesServers, storageRouters, switches

Development tools, languagesWeb servers, App serversDatabase management systems Operating systems

CRMERPPayroll

Application programming interfacesTransaction processing monitors

Solution stack

Public InfrastructureInternetTelecomm providers

Business processesCustomer serviceProduct development

83

Testing

Requirements

Functional Design

TechnicalDesign

DetailedDesign

Code

Unit Test

IntegrationTest

SystemTest

AcceptanceTest

Flow of Work

Verification

Validation

Testing: Test that the product implements the specification

Legend:

84

Four major forms of conversion