51
CBSE, © Prof. Uwe Aßmann 1 12. Finding Components in Component Repositories Prof. Dr. Uwe Aßmann Technische Universität Dresden Institut für Software- und Multimediatechnik http://st.inf.tu-dresden.de Version 15-0.5, 18.04.15 1. Component Search with Metadata 2. Searching and Browsing with Faceted Classication 3. Faceted Metadata 4. UML Components 5. Searching by Conformance to Protocols

12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

CBSE, © Prof. Uwe Aßmann 1

12. Finding Components in Component Repositories

Prof. Dr. Uwe Aßmann Technische Universität Dresden

Institut für Software- und Multimediatechnik

http://st.inf.tu-dresden.de Version 15-0.5, 18.04.15

1.  Component Search with Metadata

2.  Searching and Browsing with Faceted Classication

3.  Faceted Metadata 4.  UML Components 5.  Searching by Conformance

to Protocols

Page 2: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 2

Obligatory Literature

►  R. Prieto-Diaz. Implementing Faceted Classification for Software Reuse. CACM May 1991, vol 34(5). In the ACM digital library.

►  U. Aßmann. Reuse in Semantic Applications. REWERSE summer school 2005, La Valetta, Malta. Lecture Notes In Computer Science (LNCS) 3564.

■  http://www.springerlink.com/content/blx9yfthkq5xjtjg/

Page 3: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 3

References

•  http://simile.mit.edu/wiki/Longwell •  http://simile.mit.edu/exhibit •  http://flamenco.berkeley.edu •  http://search.express.ebay.com •  http://base.google.com ►  FacetMap: Greg Smith, Mary Czerwinski, Brian Meyers, Daniel Robbins,

George Robertson, Desney S. Tan. FacetMap: A Scalable Search and Browse Visualization. IEEE Transactions on visualization and computer graphics, vol.12 , No. 5, september/october 2006.

►  Thorsten Teschke. Semantische Komponentensuche auf Basis von Geschäftsprozessmodellen. Dissertation. Universität Oldenburg, 2003.

►  Facet-based search of computer science literature in DBLP repository ►  http://dblp.l3s.de/?q=&newQuery=yes&resTableName=query_resultOsC5mC

§  Luca de Alfaro and Thomas A. Henzinger, Interface automata, ACM SIGSOFT FSE/ESEC, 2001

http://doi.acm.org/10.1145/503209.503226

Page 4: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

CBSE, © Prof. Uwe Aßmann 4

12.1. Component Search in Component Repositories

It should be as easy to find good quality reusable software assets as it is to find a book on the internet

http://softwarereuse.nasa.gov/

Page 5: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 5

Component Repositories

§  Components must be stored in component repositories with metadata (markup, attributes) to find them again

§  Description by Metadata: •  Attributes: Keywords, Author data •  Contracts (Usage protocols, behavioral specifications)

State machines Sequence diagrams Contracts (pre/post/invariants)

§  Examples of Component Repositories •  CORBA

implementation registry interface registry

•  COM+ registry •  Commercial Component Stores www.componentsource.com •  Debian Linux Component System (apt, dpkg) •  CTAN TeX Archive

Page 6: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 6

Why Searching Components?

§  A public component repository is called a market, managed by a trader (broker)

•  Distributing or selling components •  Companies can register components at the the trader •  Customers can search components in the markets and buy or rent them

§  Searching for functionality (interface, contract, protocol) •  Reuse instead of build •  Searching for components to replace own ones •  Semantic substituability (CM-S) should be ensured

§  Searching for quality features •  Performance, energy consumption, reliability

Page 7: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

CBSE, © Prof. Uwe Aßmann 7

12.2 Searching and Browsing with Faceted Classifications

(thanks to Jan Polowinski)

Page 8: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 8

Faceted Classification for Better Matchmaking

►  A facet is a dimension of a classification ■  Facets simplify search: Facet classification has been invented in library science to

simplify the description and search for books [Ranganathan]. ■  A component (or service) is described in several facets, dimensions, which are

orthogonal to each other

►  Matchmaking engines can look up a service by stating the desired properties for all facets.

►  Classifications can be arranged in facets if several partitions of a group of objects exist that are orthogonal ■  In domain modelling, this is often the case ■  Without facets, multiple inheritance hierarchies have to be specified, which are

often clumsy and error-prone

►  Idea: use facets for better matchmaking

Page 9: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 9

Comparison

Standard Classification ►  V Vögel

■  V1 Atmung der Vögel ■  V2 Fortpflanzung der Vögel

►  F Fische ■  F1 Atmung der Fische ■  F2 Fortpflanzung der Fische

►  S Säugetiere ■  S1 Atmung der Säugetiere ■  S2 Fortpflanzung der Säugetiere

►  I Insekten ■  I1 Atmung der Insekten ■  I2 Fortpflanzung der Insekten

•  Kiemen: F1 Example: Wikipedia

Faceted Classification ►  Prozeßfacette

■  P Physiologie .  PA Atmung .  PF Fortpflanzung

►  Tierfacette ■  1 Vögel ■  2 Fische ■  3 Säugetiere ■  4 Insekten

•  Kiemen: PA 2

Page 10: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 10

Facetted Browsing

►  Here Facet means: an interesting property of an object orthogonal to other properties

►  Incremental refinement of a set of results by restricting values of the data's facets

►  Empty result views impossible ►  Many application domains

Page 11: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 11

Page 12: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 12

Facet

Facet

Facet

Facet

Page 13: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 13

Widget for Restriction of Facet Values

Page 14: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 14

Sorting and Grouping

Mechanisms

Page 15: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 15

Result Set

Page 16: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 16

More Examples of Facetted Browsers

►  Flamenco ■  FLexible information

Access using MEtadata in Novel COmbinations

■  University of California, Berkeley

■  Browses DB ►  Longwell

■  SIMILE-Project ■  Browses RDF

►  Exhibit ■  SIMILE-Project

►  mSpace ■  University of Southampton

►  FacetMap ■  Microsoft Research

Page 17: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 17

Facetted Browsing in e-Commerce

Page 18: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 18

Page 19: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 19

Page 20: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 20

Page 21: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 21

Page 22: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

CBSE, © Prof. Uwe Aßmann 22

12.3 Faceted Metadata for Search in Component Repositories

Page 23: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 23

Example: Service Facets in a UNIX System

►  To describe the services of a UNIX system, [Prieto-Diaz] employed a 4-faceted scheme ■  function ■  logical object ■  implementation object ■  tool

►  UNIX services can be described with appropriate facet values and looked up in a repository

►  Example: “append a line to a file with a text editor” ■  (function = append, logical class = line, implementation class = file, tool = text

editor):

Function Logical class

Implementation Class

Tool

edit Line File Text editor

Page 24: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 24

Example: Services in a UNIX System

►  [Prieto-Diaz] already suggested to use controlled vocabulary (domain ontologies) to improve the effectiveness of the search: ■  If every facet is described by an ontology, the service descriptions are

standardized for a user group and improve understanding of service semantics.

►  Facets simplified the description of the components, improved the understanding of their domain, and facilitated the search in component libraries.

Page 25: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 25

And for Components?

Page 26: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 26

And for Components?

Page 27: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 27

Other Advantages

►  The facet classification is rather immune to extensions ■  Extending one facet leaves all others invariant ■  Example: If Europe is extended with a new member state, the matchmaking

algorithm can deliver new courses from the new member state, without affecting the rest of the semantic specifications at all

►  The accuracy can be improved by synonym lists (thesauri) ■  Synonyms increase the chances for a match ■  They permit to search not only for keywords, but also for their synonyms

(assembled in a thesaurus) ■  Beyond synonyms other refinement relations of concepts can be used to improve

the search

■  Example: Great Britain is used as a synonym for England, Scotland, and Wales. Synonyms allows for matchmaking on any of the keywords, so that students looking for a course need not bother about geographic and political details.

Page 28: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 28

The Use of Ontologies in Faceted Matchmaking

►  Ontologies simplify matchmaking by standardization ■  Since they provide standardized terminology and standardized

ontological relations between the terms, queries can specify .  keywords with a precise, shared, and standardized meaning (semantic

search), .  contextual information for search in context, where the context is defined by

the ontological relations of the terms.

►  Example: ■  A web course on IT basics can be queried by the standardized word IT-

basics (being semantic search) ■  also in context, by relating it to courses such as IT-advanced or IT-

preparatory (contextual search) .  “find me an IT basics course, which has a preceding preparatory IT course

and has a follow-up advanced IT course“

Page 29: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 29

Putting up a Component Repository for Your Company

►  Define facets for component metadata ■  If possible, reuse an ontology for a facet ■  Form a thesaurus for synonyms ■  Store the metadata as a tuple in the database

►  Realize a search algorithm that uses facets together with thesauri ►  Or use a faceted browser with the metadata

Page 30: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

CBSE, © Prof. Uwe Aßmann 30

12.4 UML Components

Page 31: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 31

Natural and Dependent Types

§  An object with a natural type (entity type) lives on its own and exists independent of context and collaborators (see DPF) ■  The type does not depend on other types (independent type) ■  Types that depend on others are called dependent types. ■  Role types, facet types, part types are dependent types.

.  Hotel vs. HotelRoom

.  Car vs. Screw or Motor

.  Book vs. Reader

§  A big object (bob) is complex, hierarchical object with a natural type

•  Usually, it has subobjects with dependent types, role types and others.

►  A business object (domain object) is a bob with a natural type of the domain model (business model) ►  Usually, business objects (domain objects) are large hierarchical objects ■  They can consist of thousands of smaller objects of dependent types (part-of

relation) ■  They can play many roles with context-based types

Page 32: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 32

Component Specification with UML Components

•  A UML component is a hierarchical class for big objects with provided and required interfaces (roles)

•  Provided interfaces (provided roles) use „lollipop“ notation •  Required interfaces (required roles) use „plug“ notation

•  UML components can specify big objects with one natural core object and many dependent subobjects Some components are required to use specific other interfaces

<<comp spec>> CompanyMgr ICompanyMgt

<<comp spec>> CompanyMgr

ICompanyMgt

IAddressMgt

<<comp spec>> AdressMgr

Page 33: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 33

Ports of UML Components

§  A port is a connection point of a UML component. •  A port has a set of roles (interfaces) •  It may be represented by a port object (gate)

System

Port Provided interfaces Required

interfaces

Page 34: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 34

Lollipops und Plugs (Balls and Sockets)

►  For a UML component, provided and required interfaces can be distinguished

n  A required interface specifies what the current class needs to execute.

<<provided>> Addresses

<<required>> Text AddressManager

listAdresses() listAdresses() sort()

Adresses

Text

Page 35: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 35

Ports

►  Ports consist of port classes with interfaces and behavior in form of interface automata

n  provided: normal, offered interface n  required: used, necessary interface

Component

<<provided>> Port class

<<required>> Port class

Component

Port

Page 36: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 36

Nesting of UML Components

►  UML components n  Ports are connected by links (connections) n  Delegation link: links outer and inner port

DocumentSystem Link/connection Delegator

Text Manager

Address Manager Adresses

email

email Manager

Text

Forms

Buffer

Lines TextRep

IText

IForm

Page 37: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 37

Refinement of UML Components

►  UML components are nested, i.e., are bobs. ►  Nesting is indicated by aggregation and part-of relationship. ►  Nesting is introduced by an encapsulation operator encapsulate.

Document System

Document System

Text Manager

Address Manager Adresses

email email

Manager

Text

Forms

Buffer

Lines TextRep

IText

IForm

encapsulate

decompose  

Page 38: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 38

Encapsulation means Aggregation

►  Nesting means Aggregation n  A UML component is a package and a façade for all subcomponents

DocumentSystem

Text Manager

Address Manager Adresses

email

email Manager

Text

Forms

Buffer

Lines TextRep

IText

IForm

DocumentSystem

Text Manager

Address Manager

Adresses

email

email Manager

Text

Forms

Buffer

Lines

TextRep

IText

IForm

Page 39: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

CBSE, © Prof. Uwe Aßmann 39

12.5 Searching in Component Repositories by Contract Conformance

Contract Conformance means semantic substituability

Page 40: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 40

Ports can be Equipped with Interface Automata Contracts

►  Ports consist of port classes with interfaces and behavior in form of interface automata (port automata, protocol automata)

n  provided: normal, offered interface n  required: used, necessary interface

Component

<<provided>> Port class

<<required>> Port class

Component Port

Interface automaton

Interface automaton

Page 41: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 41

Component Protocols with Operational Contracts

§  The port protocol automata can be composed to a component protocol automaton §  Components may have a protocol automaton in which their ports, services,

procedures should be called, invoked, or signalled •  The provided protocol specifies in which order the services can be invoked (given by a provided interface

automaton)

•  The required protocol specifies in which order the services can be invoked (given by a requried interface automaton)

§  The order of component invocation can be specified by a language over the alphabet of the ports, services, procedures (state-based protocol contract, operational contract)

•  Finite state automaton (regular language) UML state chart (Hierarchical finite state machine, prococol machines)

Data flow diagram •  Stack machine (context-free language)

•  Petri net (regular dialects, context-free and context-sensitive dialects)

§  The contract provides an abstraction of the implementation of the component •  Implementations must be proven to be conformant to the procotol

§  The conformance checking is decidable if the protocol language is decidable §  Sets of paths over states (words over state and edge alphabet)

Page 42: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 42

Subsumption of Interface/Port Protocols

§  A provided-port protocol Pr(P1) is-contained-in (is smaller than, is-weaker-than) a provided-port protocol Pr(P2), if Pr(P1) <= Pr(P1)

§  A port protocol Pr(P1) subsumes (contains, is-stronger-than) a port protocol Pr(P2), if Pr(P1) > Pr(P2), i.e., if the set of guarantees of P1 is larger than that of P2, i.e., it delivers more

§  Then, port P1 is conformant to P2 and P1 can substitute P2 in connections, because P1 delivers less paths of states than P2

§  Subsumption checking of ports, and thus, conformance checking, should be decidable (protocol language should be decidable)

Pr(P1) = a b b* c <= Pr(P2) = a b* c

Component

<<provided>> Port Class

P1 a b

c b

Component

<<provided>> Port Class

P2 a b c

<=

Page 43: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 43

D:Component

r r r s t

<<provided>> Port Class 2

Subsumption of Guarantees (Provided Protocols)

§  A component‘s guarantee (provided protocol) G(C1) is-contained-in (is-weaker-than, offers-less) a second component‘s guarantee G(C2), if forall ports P in C1.providedPorts Exists Q in C2.providedPorts: Pr(P) <= Pr(Q)

•  C1 offers/delivers less than C2

§  A component‘s guarantee G(C1) subsumes (is-stronger-than, offers-more) a second component‘s guarantee G(C2), if for all ports P in C1.providedPorts exists Q in C2.providedPorts: Pr(P) > Pr(Q)

§  Then, C1 is guarantee-conformant to C2 and can substitute it in output connections

a b b* c

<<provided>> Port Class 1

<= E:Component

r* s t

<<provided>> Port Class 2

a b* c

<<provided>> Port Class 1

Pr(D.PortClass1) = a b b* c <= Pr(E.PortClass1) = a b* c Pr(D.PortClass2) = r r r s t <= Pr(E.PortClass2) = r* s t

Page 44: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 44

D:Component

r* s t

<<required>> Port Class 2

Subsumption of Assumptions (Required Protocols) §  A component‘s assumption (required protocol) A(C1) contains (is-stronger-than, demands-

more) a second component‘s assumption A(C2), if for all ports P in C1.requiredPorts holds: •  Exists Q in C2.requiredPorts: Pr(P) > Pr(Q) (required ports of C2 have smaller or less assumptions)

•  Q‘s required ports require less assumptions than P‘s required ports

§  A component‘s assumption A(C1) subsumes (is-contained-in, is-weaker-than, demands-less) a second component‘s assumption A(C2), if for all ports P in C1.requiredPorts holds:

•  Exists Q in C2.requiredPorts: Pr(P) <= Pr(P) (required ports of C2 have larger and more assumptions) §  Then, C1 is assumption-conformant to C2 and can substitute it in input connections

a b* c

<<required>> Port Class 1

> E:Component

r s t

<<required>> Port Class 2

a b c

<<required>> Port Class 1

A(E.ReqPortClass1) = a b c <= G(D.ReqPortClass1) = a b* c A(E.ReqPortClass2) = r s t <= G(D.ReqPortClass2) = r* s t

Page 45: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 45

Subsumption of Guarantees and Counterwise Subsumption of Assumptions

§  A component protocol Prot(C1) can subsume a component protocol Prot(C2) if G(C1) <= G(C2) and A(C2) <= A(C1)

•  If C1‘s assumptions are weaker than C2‘s •  And if C1‘s guarantees are stronger than C2‘s

§  Then, C1 is conformant to C2 and C1 can substitute C2 in input and output connections

§  C1 can be substituted for C2, if •  C1 delivers more or equal than C2 and (more performant) •  C1 demands less or equal than C2 (less demanding)

Page 46: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 46

Component

Subsumption of Protocols

§  A component protocol P(C1) can subsume a component protocol P(C2)

•  P(C1) <= P(C2) •  For finite automata: P(C1) P(C2)

§  Then, C1 is conformant to C2 and C1 can substitute C2 §  Subsumption checking and thus, conformance checking, should

be decidable (protocol language should be decidable)

!

<<provided>> Port class

<<required>> Port class

Page 47: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 47

Searching by Protocol

§  A component C can be found in a repository, if a query protocol Q is given with Q <= P(C)

§  Search consists of subsumption checking with all component protocols in the repository

§  Query protocols can be: •  Metadata about the component •  Provided protocols •  Required protocols •  Provided and required protocols

Page 48: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 48

Declarative Protocols

§  A protocol can also be specified as predicates over the states of a component (declarative contract)

•  Preconditions (assumptions) •  Postconditions (guarantees) •  Invariants

§  Then, the protocol consists of logic expressions §  The logic should be decidable

•  OCL •  Description logic •  Datalog •  Temporal logic (propositional logic with temporal quantifiers)

§  Subsumption checking of protocols and conformance can be done by reasoning

•  E.g., by subsumption checking of an OWL class hierarchy

Page 49: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 49

The End - Acknowledgements

§  Faceted browsing slides are courtesy to Jan Polowinski.

Page 50: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 50

Example: Finding Courses in Europe based on Ontologies

►  A course in the unified Bologna world of European education can be described by several facets: ■  topic area (computer science, music, literature, etc.), ■  level of advancement (undergraduate, graduate), ■  cost (free, non-free), ■  country (Germany, Italy, WesternEurope, EasternEurope, etc.)

►  Every facet can be described by an ontology, in this case on ■  topic area ■  level ■  cost ■  country

►  A semantic description of a course selects one value for each facet and forms a tuple ■  A free undergraduate music course could be described by the tuple (topic area =

music, advancement = undergraduate, cost = free, country = WesternEurope).

Page 51: 12. Finding Components in Component Repositoriesst.inf.tu-dresden.de/.../teaching/ss15/cbse/slides/... · Prof. U. Aßmann, CBSE 23 Example: Service Facets in a UNIX System To describe

Prof. U. Aßmann, CBSE 51

Ex. Finding Courses in Europe

►  Searching a course throughout the course databases in Europe consists of comparing the tuple point-wise to database entries.

►  The values need not match exactly, ■  Subsumption (inheritance) in the facet ontologies can be used to deliver

refinement of matchings. ■  Example: if free-course is subsumed by non-free-course, the matcher can yield a

free course, even if the client desired a non-free one. ■  Example: a matchmaker can return a (music, undergraduate, non-free, Germany)-

course which should fit the client's desires.