Documente Academic
Documente Profesional
Documente Cultură
ESEIntroduction
ESE Introduction
Assistants
Oscar.Nierstrasz@iam.unibe.ch
Schtzenmattstr. 14/103,
Tel. 031 631.4618
Lukas Renggli
Lectures
Exercises
WWW
www.iam.unibe.ch/~scg/Teaching/ESE/
OscarNierstrasz
ESE1.2
ESEIntroduction
Roadmap
>
>
>
>
>
Course Overview
What is Software Engineering?
The Iterative Development Lifecycle
Software Development Activities
Methods and Methodologies
OscarNierstrasz
ESE1.3
ESEIntroduction
Roadmap
>
>
>
>
>
Course Overview
What is Software Engineering?
The Iterative Development Lifecycle
Software Development Activities
Methods and Methodologies
OscarNierstrasz
ESE1.4
ESEIntroduction
Principle Texts
OscarNierstrasz
ESE1.5
ESEIntroduction
Recommended Literature
>
>
>
>
>
>
>
OscarNierstrasz
ESE1.6
ESEIntroduction
Course schedule
Week
Date
Lesson
25-Oct-06
1-Nov-06
Requirements Collection
8-Nov-06
15-Nov-06
Responsibility-Driven Design
22-Nov-06
Software Validation
29-Nov-06
6-Dec-06
Modeling Behaviour
13-Dec-06
20-Dec-06
Project Management
10
10-Jan-07
Software Architecture
11
17-Jan-07
Software Quality
12
24-Jan-07
Software Metrics
13
31-Jan-07
TBA ...
14
7-Feb-07
Final Exam
OscarNierstrasz
ESE1.7
ESEIntroduction
Roadmap
>
>
>
>
>
Course Overview
What is Software Engineering?
The Iterative Development Lifecycle
Software Development Activities
Methods and Methodologies
OscarNierstrasz
ESE1.8
ESEIntroduction
Final Program
OscarNierstrasz
ESE1.9
ESEIntroduction
OscarNierstrasz
ESE1.10
ESEIntroduction
Team-work
Parnas
>
OscarNierstrasz
ESE1.11
ESEIntroduction
What is Software Engineering? (III)
OscarNierstrasz
ESE1.12
ESEIntroduction
Roadmap
>
>
>
>
>
Course Overview
What is Software Engineering?
The Iterative Development Lifecycle
Software Development Activities
Methods and Methodologies
OscarNierstrasz
ESE1.13
ESEIntroduction
Design
Implementation
Testing
Maintenance
OscarNierstrasz
ESE1.14
ESEIntroduction
Requirements
Collection
Analysis
Design
Implementation
Testing
Maintenance
ESE1.15
ESEIntroduction
1.
Real projects rarely follow the sequential flow that the model proposes.
Iteration always occurs and creates problems in the application of the
paradigm
2.
It is often difficult for the customer to state all requirements explicitly. The
classic life cycle requires this and has difficulty accommodating the natural
uncertainty that exists at the beginning of many projects.
3.
OscarNierstrasz
ESE1.16
ESEIntroduction
Iterative Development
In practice, development is always iterative, and all
activities progress in parallel.
Requirements
Collection
Maintenance through iteration
Analysis
Testing
Implementation
Design
OscarNierstrasz
If the waterfall
model is pure
fiction, why is it
still the dominant
software process?
ESE1.17
ESEIntroduction
Iterative Development
Plan to iterate your analysis, design and implementation.
You wont get it right the first time, so integrate, validate and test
as frequently as possible.
OscarNierstrasz
ESE1.18
ESEIntroduction
Incremental Development
OscarNierstrasz
ESE1.19
ESEIntroduction
Requirements
Inception
Elaboration
Construction
Transition
Analysis
Design
Implementation
Test
Iter.
#1
Iter.
#2
...
...
...
...
... ...
Iter. Iter.
#n-1 #n
OscarNierstrasz
ESE1.20
ESEIntroduction
alpha demo
Customer Evaluation =
Assessment of the
results of engineering
OscarNierstrasz
Engineering =
Development of the
evolving system next level product
ESE1.21
ESEIntroduction
Roadmap
>
>
>
>
>
Course Overview
What is Software Engineering?
The Iterative Development Lifecycle
Software Development Activities
Methods and Methodologies
OscarNierstrasz
ESE1.22
ESEIntroduction
Requirements Collection
OscarNierstrasz
ESE1.23
ESEIntroduction
Changing requirements
OscarNierstrasz
ESE1.24
ESEIntroduction
OscarNierstrasz
ESE1.25
ESEIntroduction
Object-Oriented Analysis
OscarNierstrasz
ESE1.26
ESEIntroduction
Prototyping (I)
OscarNierstrasz
ESE1.27
ESEIntroduction
Prototyping (II)
ESE1.28
ESEIntroduction
Design
OscarNierstrasz
ESE1.29
ESEIntroduction
Conways Law
OscarNierstrasz
ESE1.30
ESEIntroduction
OscarNierstrasz
ESE1.31
ESEIntroduction
OscarNierstrasz
ESE1.32
ESEIntroduction
Maintenance
OscarNierstrasz
ESE1.33
ESEIntroduction
Maintenance activities
Maintenance entails:
> configuration and version management
> reengineering (redesigning and refactoring)
> updating all analysis, design and user documentation
Repeatable,
automated tests
enable evolution
and refactoring
OscarNierstrasz
ESE1.34
ESEIntroduction
Maintenance costs
Maintenance typically
accounts for 70% of
software costs!
Changes in
User
Requirement
s
Means: most
project costs
concern continued
development after
deployment
Lientz 1979
OscarNierstrasz
ESE1.35
ESEIntroduction
Roadmap
>
>
>
>
>
Course Overview
What is Software Engineering?
The Iterative Development Lifecycle
Software Development Activities
Methods and Methodologies
OscarNierstrasz
ESE1.36
ESEIntroduction
OscarNierstrasz
ESE1.37
ESEIntroduction
Object-Oriented Methods:
a brief history
First generation:
Second generation:
Third generation:
OscarNierstrasz
ESE1.38
ESEIntroduction
>
>
>
>
>
>
OscarNierstrasz
ESE1.39
ESEIntroduction
>
>
>
>
>
>
OscarNierstrasz
ESE1.40
ESEIntroduction
License
>
http://creativecommons.org/licenses/by-sa/2.5/
Attribution-ShareAlike 2.5
Attribution. You must attribute the work in the manner specified by the author or licensor.
Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting
work only under a license identical to this one.
For any reuse or distribution, you must make clear to others the license terms of this work.
Any of these conditions can be waived if you get permission from the copyright holder.
Your fair use and other rights are in no way affected by the above.
OscarNierstrasz
ESE1.41