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
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/
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:”
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
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?
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
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."
50
RUP Guiding Principles
IterativeDevelopment
QualityCustomerValue
Attack riskAccommodatechange
Work togetherExecutablesoftware
Architecturebaseline
Component-baseddevelopment
Objectives
Strategies
Tactics
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
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
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
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:
Top Related