chair of software engineering atot - lecture 1, 31 march 2003 1 advanced topics in object technology...
Post on 22-Dec-2015
214 views
TRANSCRIPT
ATOT - Lecture 1, 31 March 2003
1
Chair of Software Engineering
Advanced Topics in Object Technology
Bertrand Meyer
ATOT - Lecture 1, 31 March 2003
2
Chair of Software Engineering
Contact
Chair of Software Engineering: http://se.inf.ethz.ch
Course assistant: Karine Arnout http://se.inf.ethz.ch/people/arnout
ATOT - Lecture 1, 31 March 2003
3
Chair of Software Engineering
Lecture 1:
Introduction, Quality issues, Lifecycle
ATOT - Lecture 1, 31 March 2003
4
Chair of Software Engineering
Agenda for today
Introduction Quality issues Lifecycle
ATOT - Lecture 1, 31 March 2003
5
Chair of Software Engineering
Agenda for today
Introduction Quality issues Lifecycle
ATOT - Lecture 1, 31 March 2003
6
Chair of Software Engineering
Introduction
Course objectives Topics Technologies Guest lectures Textbook Grading Practical setup
ATOT - Lecture 1, 31 March 2003
7
Chair of Software Engineering
Course objectives
Provide you with solid knowledge of: Object technology principles and methods The practice of object-oriented analysis, design
and implementation Some open issues Some recent developments Two specific technologies
ATOT - Lecture 1, 31 March 2003
8
Chair of Software Engineering
Topics
Quality issues Lifecycle Abstract Data Types Object model choices Inheritance techniques Design patterns Concurrent object-oriented computation Language mechanisms Persistence and O-O database Project management Genericity, typing issues, covariance …
ATOT - Lecture 1, 31 March 2003
9
Chair of Software Engineering
Technologies
Eiffel .NET
ATOT - Lecture 1, 31 March 2003
10
Chair of Software Engineering
Guest lectures (tentative)
Philippe Lahire, University of Nice (France): Aspect-Oriented Programming (16 April 2003)
…
ETH assistants Karine Arnout
ATOT - Lecture 1, 31 March 2003
11
Chair of Software Engineering
Textbook
Bertrand Meyer: Object-Oriented Software Construction, 2nd edition. Prentice Hall, 1997. Available from Ruth Bürkli, RZ-F8 Price: CHF 81.00
Recommended: Erich Gamma et al.: Design Patterns. Addison-
Wesley, 1995.
ATOT - Lecture 1, 31 March 2003
12
Chair of Software Engineering
Grading
Exam (2h): 40% 2 July 2003
Project: 60% Development of a
“Pattern Wizard” Deadline: 18 June 2003
ATOT - Lecture 1, 31 March 2003
13
Chair of Software Engineering
Practical setup
Course page: http://se.inf.ethz.ch/teaching/ss2003/atot_ss2003.html
Slides: http://se.inf.ethz.ch/teaching/ss2003/atot_ss2003.html#slides
ATOT - Lecture 1, 31 March 2003
14
Chair of Software Engineering
Practical setup (cont’d)
Please send an email: To: [email protected] Subject: ATOT course participant Content:
Your name Preferred email address Status
Diplom student (semester), Ph.D. student, other.
Taking the course for credit or not. Attach a picture (JPEG, GIF, PNG) if you wish
ATOT - Lecture 1, 31 March 2003
15
Chair of Software Engineering
Practical setup (cont’d)
If any questions / problems, contact:
Karine Arnout http://se.inf.ethz.ch/people/arnout Office: RZ-F7 Phone: 01 632 47 23
ATOT - Lecture 1, 31 March 2003
16
Chair of Software Engineering
Before getting started…
Please fill in the questionnaire: Anonymous! You have 10 minutes
ATOT - Lecture 1, 31 March 2003
17
Chair of Software Engineering
Some words of warning
Steps in reacting to O-O (from the preface to Object-Oriented Software Construction): “(1) It’s trivial; (2) It’s wrong; (3) That’s how I did it all along anyway.”
Beware of the “mOOzak” phenomenon.
ATOT - Lecture 1, 31 March 2003
18
Chair of Software Engineering
Some words of warning (cont’d)
benefit_from_course is-- Make students succeed.
requiresome_humility
doall_exercises
ensureOO_mastery_for_fun_and_profit
end
ATOT - Lecture 1, 31 March 2003
19
Chair of Software Engineering
Terminology
I will be strict about terminology: Endless confusions in the literature and in discussions. Basic concepts have precise definitions — no justification
whatsoever for such confusions. Object technology is (in part) about bringing rational,
scientific principles to software. No excuse for sloppy terminology.
Alternative conventions will be mentioned when necessary.
CHF 5 fine for saying “object” when meaning “class” (after lecture 4)
ATOT - Lecture 1, 31 March 2003
20
Chair of Software Engineering
Agenda for today
Introduction Quality issues Lifecycle
ATOT - Lecture 1, 31 March 2003
21
Chair of Software Engineering
The goal: Software quality
REUSABILITY EXTENDIBILITY RELIABILITY (Correctness + Robustness) PORTABILITY EFFICIENCY INTEGRITY …
Correctness: The ability of a software system to perform according to
specification, in cases defined by the specification. Robustness:
The ability of a software system to react in a reasonable manner to cases not covered by the specification.
Robustness
SPECIFICATION
Correctness
ATOT - Lecture 1, 31 March 2003
22
Chair of Software Engineering
The challenge of software quality
Reliability [correctness + robustness]: It should be easier to build software that
functions properly, and easier to guarantee what it does.
Modularity [reusability + extendibility]: We should build less software! Software should be easier to modify.
ATOT - Lecture 1, 31 March 2003
23
Chair of Software Engineering
Agenda for today
Introduction Quality issues Lifecycle
ATOT - Lecture 1, 31 March 2003
24
Chair of Software Engineering
The waterfall model of the lifecycle
FEASIBILITY STUDY
REQUIREMENTS ANALYSIS
SPECIFICATION
GLOBAL DESIGN
DETAILED DESIGN
IMPLEMENTATION
DISTRIBUTION
VALIDATION & VERIFICATION
PROJECT PROGRESS
ATOT - Lecture 1, 31 March 2003
25
Chair of Software Engineering
Arguments for the waterfall
(After B.W. Boehm: Software engineering economics)
The activities are necessary. (But: merging of middle activities.)
The order is the right one.
ATOT - Lecture 1, 31 March 2003
26
Chair of Software Engineering
The waterfall model of the lifecycle
FEASIBILITY STUDY
REQUIREMENTS ANALYSIS
SPECIFICATION
GLOBAL DESIGN
DETAILED DESIGN
IMPLEMENTATION
DISTRIBUTION
VALIDATION & VERIFICATION
PROJECT TIME
DESIGN AND IMPLEMENTATION
ATOT - Lecture 1, 31 March 2003
27
Chair of Software Engineering
Problems with the waterfall
Late appearance of actual code. Lack of support for requirements change — and
more generally for extendibility and reusability. Lack of support for the maintenance activity (70%
of software costs?). Division of labor hampering Total Quality
Management. Impedance mismatches. Highly synchronous model.
ATOT - Lecture 1, 31 March 2003
28
Chair of Software Engineering
Quality control?
Analysts
Designers
Implementers
Testers
Customers
ATOT - Lecture 1, 31 March 2003
29
Chair of Software Engineering
Impedance mismatches
As Management requested it. As the Project Leader defined it. As Systems designed it.
As Programming developed it. As Operations installed it. What the user wanted.
(Pre-1970 cartoon; origin unknown)
ATOT - Lecture 1, 31 March 2003
30
Chair of Software Engineering
The escherfall (Spiral)
M.C Escher:Waterval
ATOT - Lecture 1, 31 March 2003
31
Chair of Software Engineering
Tasks
Analysts
Designers
Implementers
Testers
ATOT - Lecture 1, 31 March 2003
32
Chair of Software Engineering
Seamless development
SpecificationSpecification TRANSACTION, PLANE, CUSTOMER, …
Example classes
ATOT - Lecture 1, 31 March 2003
33
Chair of Software Engineering
Seamless development
Specification
Design
Specification TRANSACTION, PLANE, CUSTOMER, …
STATE, USER_COMMAND, …
Example classes
ATOT - Lecture 1, 31 March 2003
34
Chair of Software Engineering
Seamless development
Specification
Design
Implementation
Specification TRANSACTION, PLANE, CUSTOMER, …
STATE, USER, …
HASH_TABLE, LINKED_LIST…
Example classes
ATOT - Lecture 1, 31 March 2003
35
Chair of Software Engineering
Seamless development
Specification
Design
Implementation
V & V
Specification TRANSACTION, PLANE, CUSTOMER, …
STATE, USER, …
HASH_TABLE, LINKED_LIST…
TEST_DRIVER, …
Example classes
ATOT - Lecture 1, 31 March 2003
36
Chair of Software Engineering
Seamless development
Specification
Design
Implementation
V & V
Generalization
Specification TRANSACTION, PLANE, CUSTOMER, …
STATE, USER, …
HASH_TABLE, LINKED_LIST…
TEST_DRIVER, …
Example classes
ATOT - Lecture 1, 31 March 2003
37
Chair of Software Engineering
deferred class VAT
inherit
TANK
feature
in_valve, out_valve: VALVE
fill is-- Fill the vat.
requirein_valve.openout_valve.closed
deferredensure
in_valve.closedout_valve.closedis_full
end
empty, is_full, is_empty, gauge, maximum, ... [Other features] ...
invariant
is_full = (gauge >= 0.97 * maximum) and (gauge <= 1.03 * maximum)
end
Analysis classes
Precondition
Class invariant
-- i.e. specified only.
-- not implemented.
Postcondition
ATOT - Lecture 1, 31 March 2003
38
Chair of Software Engineering
Reversibility
Specification
Design
Implementation
V & V
Generalization
Specification
ATOT - Lecture 1, 31 March 2003
39
Chair of Software Engineering
Seamless development
Use consistent notation from analysis to design, implementation and maintenance.
Advantages: Smooth process. Avoids gaps (improves
productivity, reliability). Direct mapping from problem to solution, i.e.
from software system to external model. Better responsiveness to customer requests. Consistency, ease of communication. Better interaction between users, managers and
developers.
ATOT - Lecture 1, 31 March 2003
40
Chair of Software Engineering
Single model principle
Use a single base for everything: analysis, design, implementation, documentation...
Use tools to extract the appropriate views.
ATOT - Lecture 1, 31 March 2003
41
Chair of Software Engineering
The cluster model
Specification
Design
Implementation
V & V
Generalization
Specification
Specification
Design
Implementation
V & V
Generalization
Specification
Feasibility study
Division into clusters
Specification
Design
Implementation
V & V
Generalization
Specification
PROJECT TIME
Cluster 1
Cluster 2
Cluster n
ATOT - Lecture 1, 31 March 2003
42
Chair of Software Engineering
The cluster model: extreme variants (1)
Feasibility study
Division into clusters
Specification
Design
Implementation
V & V
Generalization
SpecificationSpecification
Design
Implementation
V & V
Generalization
Specification
Cluster 2 Cluster 3
Specification
Design
Implementation
V & V
Generalization
Specification
Cluster 1
Specification
Design
Implementation
V & V
Generalization
Specification
Cluster 4
Specification
Design
Implementation
V & V
Generalization
Specification
Cluster 5
“Clusterfall”
ATOT - Lecture 1, 31 March 2003
43
Chair of Software Engineering
The cluster model: extreme variants (2)
Feasibility study
Division into clusters
Cluster 1
Cluster 2
Cluster n
The Trickle model
ATOT - Lecture 1, 31 March 2003
44
Chair of Software Engineering
Quality goals: the Osmond curves
DESIRABLE
COMMON
Functionality
Other qualities
Debugging
Envisaged
Early releases
ATOT - Lecture 1, 31 March 2003
45
Chair of Software Engineering
Cluster development
Bottom-up development: from the most general clusters (providing utility functions) to the most application-specific ones.
Flexible scheduling of clusters – depending on resources, team experience, customer and management demands. Waterfall is one extreme; “trickle” is the other.
Sub-lifecycle sequencing: specification, design and implementation, validation, generalization.
Relations between clusters: each cluster may be a client of lower-level ones.
ATOT - Lecture 1, 31 March 2003
46
Chair of Software Engineering
Reading assignment
For Monday 7 April 2003: OOSC2 chapters Chapter 1: Software quality Chapter 28: The software construction process
ATOT - Lecture 1, 31 March 2003
47
Chair of Software Engineering
End of lecture 1