Professional Documents
Culture Documents
University of Toronto
Traditional View:
Scientists
create knowledge study the world as it is are trained in scientific method use explicit knowledge are thinkers
Engineers
apply that knowledge seek to change the world are trained in engineering design use tacit knowledge are doers
Engineering Projects
Project Management Project Initiation
Engineers
Project Lifecycles
Software Engineering lifecycles: Waterfalls, spirals, etc Requirements Lifecycles
create knowledge are problem-driven seek to understand and explain design devices to test theories prefer contingent knowledge but rely on tacit knowledge
2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license.
University of Toronto
University of Toronto
What is engineering?
Engineering is the development of cost-effective solutions to practical problems, through the application of scientific knowledge
Cost-effective
Consideration of design trade-offs, esp. resource usage Minimize negative impacts (e.g. environmental and social cost)
Solutions
Emphasis on building devices
Radical design:
Never been done, or past solutions have failed
Often involves a very complex problem
Practical problems
solving problems that matter to people improving human life in general through technological advance
Examples:
Most of Computer Engineering involves normal design All of Systems Engineering involves radical design (by definition!) Much of Software Engineering involves radical design (soft systems!) 4
2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license.
2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license.
University of Toronto
University of Toronto
Is software different?
Project Management
Software is different!
software is invisible, intangible, abstract
its purpose is to configure some hardware to do something useful
there are no physical laws underlying software behaviour there are no physical constraints on software complexity software never wears out
traditional reliability measures dont apply no manufacturing variability
Software Myths:
Myth: Myth: Myth: Myth: Myth: Myth? Cost of software is lower than cost of physical devices Software is easy to change Computers are more reliable than physical devices Software can be formally proved to be correct Software reuse increases safety and reliability Computers reduce risk over mechanical systems
5
Effort - How much effort will be needed? How much has been expended? Time - What is the expected schedule? How far are we deviating from it? Size - How big is the planned system? How much have we built? Defects - How many errors are we making? How many are we detecting?
And how do these errors impact quality?
2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license.
University of Toronto
University of Toronto
Project Types
Project Context
Existing System
There is nearly always an existing system Studying it is important:
May just be a set of ad hoc workarounds for the problem If we want to avoid the weaknesses of the old system while preserving what the stakeholders like about it
Pre-Existing Components
Benefits: Tension:
Can dramatically reduce development cost Easier to decompose the problem if some subproblems are already solved Solving the real problem vs. solving a known problem (with ready solution)
Product Families
Vertical families: e.g. basic, deluxe and pro versions of a system Horizontal families: similar systems used in related domains
Need to define a common architecture that supports anticipated variability 8
2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license.
University of Toronto
University of Toronto
Waterfall Model
perceived need requirements
Lifecycle models
Useful for comparing projects in general terms Not enough detail for project planning
View of development:
a process of stepwise refinement largely a high level management view
Examples:
Sequential models: Waterfall, V model Rapid Prototyping Phased Models: Incremental, Evolutionary Iterative Models: Spiral Agile Models: eXtreme Programming
Problems:
Static view of requirements ignores volatility Lack of user involvement once specification is written Unrealistic separation of specification from design Doesnt accommodate prototyping, reuse, etc.
design
code
integrate
2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license.
2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license.
10
University of Toronto
University of Toronto
V-Model
Level of abstraction system requirements system integration
Prototyping lifecycle
Preliminary design requirements prototype build prototype evaluate prototype
design
code
test
integrate
Problems:
users treat the prototype as the solution a prototype is only a partial specification
2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license.
11
2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license.
12
University of Toronto
University of Toronto
Release 1
design Requirements
version 1
release 2
r is r is r a n a is k ly s is ka
ka
design
nal
ysi
es
st con
t iv es
3
s4
er
design
integrate test
na
Al at tern iv e s
a lt
na
t iv
nal
ysi
s3
design
budget4
budget3
budget2
er
a lt
budget1
prototype1
prototype2
prototype3 prototype4
det ail des ed ign
reqts
design
code
version 2
test
integrate
lessons learnt
O&M
in t eg rat io n
dev
e lo
pm
reqts
design
version 3
code
test
integrate
lessons learnt
O&M
and
tes
tp
la n
Plan
integrate
reqts
design
code
test
implem
entation
plan
it un t s te
co
de
ent
p la
re sof qu tw ir e a r m e en ts so ft de wa s ig r e n
concept of operation
2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license.
13
2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license.
University of Toronto
University of Toronto
Agile Models
Basic Philosophy
Extreme Programming
Collect User stories Planning game
Release
Planning game
Weaknesses
Relies on programmers memory
Code can be hard to maintain
Select and estimate user story cards at the beginning of each release
Write test cases before code The program code is the design doc
Can also use CRC cards (ClassResponsibility-Collaboration)
code
Continuous Integration
Integrate and test several times a day
2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license.
15
2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license.
16
University of Toronto
University of Toronto
Inquiry Cycle
(e.g. customer feedback)
Initial hypothesis
Prior Knowledge
Specification Agreement
common view personal view informal semi-formal formal
complete
Observe
Requirements models are theories about the world; Designs are tests of those theories
fair
Intervene
Model
vague
Representation
Design
2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license.
18
University of Toronto
Summary
What is engineering?
Not that different from science Greater awareness of professional responsibility
because of immediate scope for harm to the public
Engineering Projects
You cannot control that which you cannot measure Constraints:
and many important measures are derived from initial problem analysis Is there a customer? Existing system / existing components / existing product family
Project Lifecycles
Useful for comparing projects in general terms Represent different philosophies in software development Requirements evolve through their own lifecycles too!
2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license.
19