chair of software engineering atot - lecture 1, 31 march 2003 1 advanced topics in object technology...

47
ATOT - Lecture 1, 31 March 2003 1 Chair of Software Engineering Advanced Topics in Object Technology Bertrand Meyer

Post on 22-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

ATOT - Lecture 1, 31 March 2003

1

Chair of Software Engineering

Advanced Topics in Object Technology

Bertrand Meyer

Page 2: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 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

Page 3: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

ATOT - Lecture 1, 31 March 2003

3

Chair of Software Engineering

Lecture 1:

Introduction, Quality issues, Lifecycle

Page 4: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

ATOT - Lecture 1, 31 March 2003

4

Chair of Software Engineering

Agenda for today

Introduction Quality issues Lifecycle

Page 5: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

ATOT - Lecture 1, 31 March 2003

5

Chair of Software Engineering

Agenda for today

Introduction Quality issues Lifecycle

Page 6: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

ATOT - Lecture 1, 31 March 2003

6

Chair of Software Engineering

Introduction

Course objectives Topics Technologies Guest lectures Textbook Grading Practical setup

Page 7: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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

Page 8: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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 …

Page 9: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

ATOT - Lecture 1, 31 March 2003

9

Chair of Software Engineering

Technologies

Eiffel .NET

Page 10: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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

Page 11: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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.

Page 12: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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

Page 13: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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

Page 14: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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

Page 15: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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

Page 16: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

ATOT - Lecture 1, 31 March 2003

16

Chair of Software Engineering

Before getting started…

Please fill in the questionnaire: Anonymous! You have 10 minutes

Page 17: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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.

Page 18: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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

Page 19: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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)

Page 20: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

ATOT - Lecture 1, 31 March 2003

20

Chair of Software Engineering

Agenda for today

Introduction Quality issues Lifecycle

Page 21: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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

Page 22: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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.

Page 23: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

ATOT - Lecture 1, 31 March 2003

23

Chair of Software Engineering

Agenda for today

Introduction Quality issues Lifecycle

Page 24: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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

Page 25: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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.

Page 26: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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

Page 27: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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.

Page 28: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

ATOT - Lecture 1, 31 March 2003

28

Chair of Software Engineering

Quality control?

Analysts

Designers

Implementers

Testers

Customers

Page 29: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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)

Page 30: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

ATOT - Lecture 1, 31 March 2003

30

Chair of Software Engineering

The escherfall (Spiral)

M.C Escher:Waterval

Page 31: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

ATOT - Lecture 1, 31 March 2003

31

Chair of Software Engineering

Tasks

Analysts

Designers

Implementers

Testers

Page 32: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

ATOT - Lecture 1, 31 March 2003

32

Chair of Software Engineering

Seamless development

SpecificationSpecification TRANSACTION, PLANE, CUSTOMER, …

Example classes

Page 33: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

ATOT - Lecture 1, 31 March 2003

33

Chair of Software Engineering

Seamless development

Specification

Design

Specification TRANSACTION, PLANE, CUSTOMER, …

STATE, USER_COMMAND, …

Example classes

Page 34: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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

Page 35: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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

Page 36: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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

Page 37: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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

Page 38: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

ATOT - Lecture 1, 31 March 2003

38

Chair of Software Engineering

Reversibility

Specification

Design

Implementation

V & V

Generalization

Specification

Page 39: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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.

Page 40: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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.

Page 41: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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

Page 42: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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”

Page 43: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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

Page 44: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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

Page 45: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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.

Page 46: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

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

Page 47: Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer

ATOT - Lecture 1, 31 March 2003

47

Chair of Software Engineering

End of lecture 1