components
play

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


  1. 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 Presented at Nordic Workshop on Programming Theory, Bergen, Norway, Oct 11-13, 2000 )

  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

  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

  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?

  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

  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 Component contractual (binary interfaces unit) contractual dependencies

  7. Component contractual (binary interfaces unit) contractual dependencies

  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

  9. Objects (1) Objects (1) Object - abstraction from a real-world entity, with associated items of information and a set of specific operations It has – a unique and invariant identifier – a class to which it belongs – a state that has a certain value

  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

  11. Classes (2) Classes (2) Person ? Person} ? ? ? Driver} superclass / base class ? Person} ? ? ? Physician} inheritance Driver Physician subclasses / derived classes

  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 )

  13. The conceptual difference: their role their role The conceptual difference: Objects Components – describe / implement – describe / implement real-world entities (and services of real-world their hierarchies) entities – mathematical modelling – engineering approach to approach to software software – partition the state space – partition the service space

  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

  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

  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

  17. Components vs vs. Objects = . Objects = Components Service vs vs. Identity . Identity Service 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

  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

  19. UML Diagrams Outline (1) UML Diagrams Outline (1) MDS Drive Input Mail Load Unload Send Mail Confirm Delivery Customer Dispatch Transport

  20. UML Diagrams Outline (2) UML Diagrams Outline (2) MDS Drive Input Mail Load Unload Send Mail Confirm Delivery Customer Dispatch Transport

  21. UML Diagrams Outline (3) UML Diagrams Outline (3) Driver Drive Load Driver Task Unload On Duty On leave 1 1 Outage 0..1 0..1 TruckDriver CarDriver BusDriver

  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

Recommend


More recommend