lecture on object-oriented modelingtheo/lectures/mob/mob1_1.pdfextensibility compatibility...

33
Outline Lecture on Object-Oriented Modeling Thierry G ´ eraud EPITA Research and Development Laboratory (LRDE) 2006 Thierry G ´ eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 1 / 31

Upload: others

Post on 06-Mar-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

Outline

Lecture on Object-Oriented Modeling

Thierry Geraud

EPITA Research and Development Laboratory (LRDE)

2006

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 1 / 31

Page 2: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

Outline

Outline

1 Introduction

2 About SoftwareSoftware and EngineeringSoftware QualityModularity

3 Object-Orientation

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 2 / 31

Page 3: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

Outline

Outline

1 Introduction

2 About SoftwareSoftware and EngineeringSoftware QualityModularity

3 Object-Orientation

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 2 / 31

Page 4: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

Outline

Outline

1 Introduction

2 About SoftwareSoftware and EngineeringSoftware QualityModularity

3 Object-Orientation

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 2 / 31

Page 5: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

Objectives

Keywords:

concepts of the object-oriented (OO) paradigm

OO modeling

overview of OO languages

introduction to the UML

introduction to software engineering

design patterns

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 3 / 31

Page 6: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

How to work

The how-to:

concentrate and listen during class

read the slides every week

read them again!

think about and argue the pros and cons

then start looking at recommended readings

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 4 / 31

Page 7: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

Software and EngineeringSoftware QualityModularity

Outline

1 Introduction

2 About SoftwareSoftware and EngineeringSoftware QualityModularity

3 Object-Orientation

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 5 / 31

Page 8: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

Software and EngineeringSoftware QualityModularity

There’s soft in it!

Software means:

neither rigidwhat are the artifacts?

nor too loose / lax / flaccidwhat are the artifacts?

so something that should evolve under your control

see also:http://en.wikipedia.org/wiki/Software

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 6 / 31

Page 9: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

Software and EngineeringSoftware QualityModularity

Good Software

Getting good software is

hardv. getting unimpressive / second-rate / poor software isvery easy

complexthink about how many klines are involved in somemainstream software...

definitely not spontaneous

see also:http://en.wikipedia.org/wiki/Software_engineering

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 7 / 31

Page 10: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

Software and EngineeringSoftware QualityModularity

Exercise

Imagine that you want to design your own house.What do you do first? Why?

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 8 / 31

Page 11: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

Software and EngineeringSoftware QualityModularity

Difficulties

Difficulties in software construction are:

technical onese.g., with the language, the compiler, the debugger, thelibraries

exercise: name precisely the related difficulties...question: are they really the main difficulties?

design issueswhat are the difficulties here?

project managementwhat does that means to you?

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 9 / 31

Page 12: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

Software and EngineeringSoftware QualityModularity

Think (1/2)

1 draw the curve “number of functionalities w.r.t. time”corresponding to your development process

2 refine the shape of this curve to take into account “specialevents” in software life

3 justify yourself...

4 what’s wrong? what’s the ideal curve? why?

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 10 / 31

Page 13: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

Software and EngineeringSoftware QualityModularity

Think (2/2)

1 have you ever think about the way you work?

2 what have you done to work in a better way?

3 what can you do

to manage complexity?

to enhance software quality?

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 11 / 31

Page 14: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

Software and EngineeringSoftware QualityModularity

Outline

1 Introduction

2 About SoftwareSoftware and EngineeringSoftware QualityModularity

3 Object-Orientation

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 12 / 31

Page 15: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

Software and EngineeringSoftware QualityModularity

Textbook case

Consider this simple piece of C software:

#define FALSE 0#define TRUE 1

int negate(int b){

return b == TRUE ? FALSE : TRUE;}

is it valid? (justify yourself)

is it trusty? (criticize yourself)

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 13 / 31

Page 16: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

Software and EngineeringSoftware QualityModularity

Quality criterions (1/3)

validity = follows specifications

robustness = runs well even when outside of specification

reliability = validity + robustness

how can you ensure validity? (justify yourself)

how can you enforce robustness? (criticize yourself)

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 14 / 31

Page 17: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

Software and EngineeringSoftware QualityModularity

Quality criterions (2/3)

Exercise: try to define

usability...

efficiency...

integrity...

portability...

warning: those concepts are general so do not restrict them!

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 15 / 31

Page 18: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

Software and EngineeringSoftware QualityModularity

Quality criterions (3/3)

Some very important ones:

extensibility

compatibility

reusability

“Adaptability” is not listed here; think about why.

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 16 / 31

Page 19: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

Software and EngineeringSoftware QualityModularity

Object-Orientation and Quality

On one side:

people claim that object-orientation is a good solution to easereusability

on the other side:

people claim that, from a practical point of view,object-orientation fails to ease reusability

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 17 / 31

Page 20: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

Software and EngineeringSoftware QualityModularity

Outline

1 Introduction

2 About SoftwareSoftware and EngineeringSoftware QualityModularity

3 Object-Orientation

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 18 / 31

Page 21: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

Software and EngineeringSoftware QualityModularity

Module: Definition

A module is a piece of software which is

coherent

reasonably sized

well decoupled from the other modules

exercise: describe your last project in terms of modules...

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 19 / 31

Page 22: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

Software and EngineeringSoftware QualityModularity

Module: Definition

granularity of modules goes from fine to coarse

modules are organized in a hierarchical way

a moduleexposes its interfaceencloses its contents

modules interact each other through their interface

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 20 / 31

Page 23: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

Software and EngineeringSoftware QualityModularity

Achieving Quality thru Modularity

the basic idea:

good modularity ⇒ good software

good modularity can be evaluated with some criteria

you should think in those terms to achieve modularity

see: “Object-Oriented Software Construction,” 2nd ed.,Bertrand Meyer, Prentice Hall Professional TechnicalReference, 1987.

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 21 / 31

Page 24: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

Software and EngineeringSoftware QualityModularity

Composability / Decomposability

top-down approach:

bottom-up approach:

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 22 / 31

Page 25: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

Software and EngineeringSoftware QualityModularity

Continuity / Protection

continuity is related to loose coupling and extensibility:

protection is related to integrity (and aspect):

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 23 / 31

Page 26: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

Software and EngineeringSoftware QualityModularity

Comprehensibility

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 24 / 31

Page 27: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

Software and EngineeringSoftware QualityModularity

Open-close principle

you should keep in mind that

a module should be open enoughbut not too much opened

a module should be close enoughbut not too much closed

Exercise: practice on an example of module and clearly draw aline to define the limits of the module...

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 25 / 31

Page 28: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

Software and EngineeringSoftware QualityModularity

Responsibility v. Collaboration

you should keep in mind that:

a module has some clearly defined responsibilities

a module expects some collaborations from few othermodules

Exercise: practice!

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 26 / 31

Page 29: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

Flavors

Many flavors of object-orientation exist:

frame-based languages

actor-based languages

prototype-based languages (JavaScript)

class-based languages (C++)

also read:http://en.wikipedia.org/wiki/Programming_paradigm

http://en.wikipedia.org/wiki/Object_orientation

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 27 / 31

Page 30: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

Two Main Families

Static Dynamicfrom C C++ Objective Corientation compile-time run-timeprinciple method calling message passing

Java and C# are static languages...

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 28 / 31

Page 31: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

Concepts

an object-based language:

class / object

encapsulation / information hiding

abstraction / polymorphism

plus:

inheritance

gives an object-oriented language.

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 29 / 31

Page 32: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

Definitions of Object (1/2)

1 structural definition:

object = state + behavior

2 definition as actor:

object = autonomous active entity

3 other definition:

object = prototype of a concept

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 30 / 31

Page 33: Lecture on Object-Oriented Modelingtheo/lectures/MOB/mob1_1.pdfextensibility compatibility reusability “Adaptability” is not listed here; think about why. Thierry Geraud´ Lecture

IntroductionAbout Software

Object-Orientation

Definitions of Object (2/2)

object = state + behavior

description ↓ ↑ instantiation

class = attributes + methods

please consider:

objects as entities, just for what they are , like a whole

please forget the old scheme “program = data + algorithms”!

Thierry G eraud Lecture on Object-Oriented Modeling EPITA-LRDE 2006 31 / 31