Components vs Objects Components . Objects vs. Luigia Petre - - PowerPoint PPT Presentation

components
SMART_READER_LITE
LIVE PREVIEW

Components vs Objects Components . Objects vs. Luigia Petre - - PowerPoint PPT Presentation

Components vs Objects Components . Objects vs. Luigia Petre Turku Centre for Computer Science & Abo Akademi University, FIN-20520 Turku, Finland ( Presented at Nordic Workshop on Programming Theory, Bergen, Norway, Oct 11-13, 2000


slide-1
SLIDE 1

Components Components vs

vs. . Objects

Objects

Luigia Petre

Turku Centre for Computer Science & Abo Akademi University, FIN-20520 Turku, Finland

(Presented at Nordic Workshop on Programming Theory, Bergen, Norway, Oct 11-13, 2000 Presented at Nordic Workshop on Programming Theory, Bergen, Norway, Oct 11-13, 2000)

slide-2
SLIDE 2

Software Engineering Abstractions Software Engineering Abstractions

Component-based SE = constructing new systems

from already existing, service-providing components

Object-based SE = constructing a new system in

terms of interacting, distinct units of information and services called objects

slide-3
SLIDE 3

Motivation Motivation

Both components and objects

– have encapsulation properties – are accessed via well-defined interfaces – are considered to improve the reuse of software – are considered to alleviate the software evolution phase – are thought of being natural abstractions of real-world entities – a real-world entity can be modelled / implemented using either notion

slide-4
SLIDE 4

Our Aim Our Aim

...is to answer to: (a) What is the essential difference between components and objects? (b) (Why) do we need them both?

slide-5
SLIDE 5

Components (1) Components (1)

Software components = units of composition

with contractually specified interfaces and context dependencies only

A SW component

– can be deployed independently – is subject to composition by third parties

slide-6
SLIDE 6

Components (2) Components (2)

=> possibly 3 parties involved: – one specifies the component, – one implements the specification of a component, – one deploys / use the component

contractual interfaces contractual dependencies Component (binary unit)

slide-7
SLIDE 7

contractual interfaces contractual dependencies Component (binary unit)

slide-8
SLIDE 8

Components (3) Components (3)

A system built up from components – is more robust – is more flexible (alleviates evolution) – has a shorter development time / process The foremost advantage: reuse of software

slide-9
SLIDE 9

Objects (1) Objects (1)

Object - abstraction from a real-world entity, with associated items of information and a set

  • f specific operations

It has – a unique and invariant identifier – a class to which it belongs – a state that has a certain value

slide-10
SLIDE 10

Classes (1) Classes (1)

Class - abstract data type with a set of properties (attributes and operations) common to its objects

  • has the means of creating objects with these

properties

slide-11
SLIDE 11

Classes (2) Classes (2)

Person Physician Driver superclass / base class subclasses / derived classes inheritance ?Person} ? ? ?Driver} ?Person} ? ? ?Physician}

slide-12
SLIDE 12

Objects (2) Objects (2)

Objects interaction -- using each others operations Objects visibility -- the state and the implementation of the operations is hidden A system built up from objects – is modular (designing classes rather than the whole

system)

– is reusable (inheritance) – alleviates evolution (objects are fundamental and

stable, implementation is hidden)

slide-13
SLIDE 13

The conceptual difference: The conceptual difference: their role their role

Objects

– describe / implement real-world entities (and their hierarchies) – mathematical modelling approach to software – partition the state space

Components

– describe / implement services of real-world entities – engineering approach to software – partition the service space

slide-14
SLIDE 14

Example: Mail Delivery System Example: Mail Delivery System (MDS) (MDS)

Services: – input mail – send mail

– load mail into the transportation means – transport mail to destination

– confirm delivery

slide-15
SLIDE 15

MDS Component View MDS Component View

We need a component (PostCar) that is able – to move – to have a certain loading capacity We need a component (Driver) that is able – to drive for x hours in a row – to drive certain types of cars – to receive a salary of no more than y

slide-16
SLIDE 16

MDS Object View MDS Object View

We need a class PostCar, with – a move operation – a capacity attribute We need a class Driver, with attributes in some ranges

slide-17
SLIDE 17

Components Components vs

  • vs. Objects =

. Objects = Service Service vs

  • vs. Identity

. Identity

Using a service from a component: specify the required service and use any component providing an implementation of that service Using a service from an object: specify what object is used and use the service that particular object (with the particular state) can provide

slide-18
SLIDE 18

Using Components and Objects Using Components and Objects

Components -- service-oriented => they describe best the functionality of a system Objects -- identity-oriented => they describe best the problem domain of a system Consequently, we should

– start the software development with components – develop each component in terms of objects

slide-19
SLIDE 19

UML Diagrams Outline (1) UML Diagrams Outline (1)

Drive Unload Transport Dispatch Confirm Delivery Input Mail Send Mail Load Customer MDS

slide-20
SLIDE 20

UML Diagrams Outline (2) UML Diagrams Outline (2)

Drive Unload Transport Dispatch Confirm Delivery Input Mail Send Mail Load Customer MDS

slide-21
SLIDE 21

UML Diagrams Outline (3) UML Diagrams Outline (3)

Driver Drive Load Unload

Driver TruckDriver CarDriver BusDriver Task Outage 0..1 1 On leave On Duty 0..1 1

slide-22
SLIDE 22

Conclusions Conclusions

Components -- service-oriented => best as

functional abstractions

Objects -- identity-oriented => best as

problem domain abstractions

Components and objects -- best as software

construction abstractions