a classification framework for component models
DESCRIPTION
A Classification Framework for Component Models. Ivica Crnkovic, Séverine Sentilles, Aneta Vulgarakis, Michel Chaudron. Mälardalen University, Sweden. What is component?. The component case Many definitions Some known ones: - PowerPoint PPT PresentationTRANSCRIPT
A Classification Framework for Component Models
Ivica Crnkovic, Séverine Sentilles, Aneta Vulgarakis, Michel Chaudron
Mälardalen University, Sweden
19 Apr 2023 2
What is component?• The component case
– Many definitions– Some known ones:
• software component is a unit of composition with contractually specified interfaces and context dependencies only. A software component can be deployed independently and is subject to composition by third parties.
Szyperski
• A software component is a software element that conforms to a component model and can be independently deployed and composed without modification according to a composition standard
Heineman and Councill
– Intuitive perception may be quite different at different levels (model, implementation, run-time)
19 Apr 2023 3
Different solutions
Many CB models (with many different characteristics) exist todayy
<<component>>
Client
<<component>>
ServerIdenticalItf
C1wcet1f1
A
C2wcet2f2
Inputports
Outputports
AUTOSARBIPCOMDESCCACorba CMEJBFractalKOALAKobrA
MS COMOpenComOSGi PINPECOSROBOCOPRUBUSSaveCCMSOFA 2.0
19 Apr 2023 ICATSarajevo - 2007-10-29 4
Questions– What is common to component models?
– It is possible to identify common principles and common features?
– Is it possible to utilize/instantiate these principles for particular component models in particular domains?
19 Apr 2023 5
Goal
• Propose a classification framework for component models– Identify characteristics and categorize them– Illustrate its use by providing a survey of a number
of component models
19 Apr 2023 6
Definitions: Software Component – Component Model
Definition: • A Software Component is a software building block that conforms to
a component model. • A Component Model defines standards for
– (i) properties that individual components must satisfy and – (ii) methods, and possibly mechanisms, for composing components.
Some definitions first…
CBS = <C,B,P>– C = {Ci} - components
– B = {Bj} - bindings
– P = system platform
– Bindings• Between components and the platform -> components deployment• Between components – components binding
19 Apr 2023
7
1
2
component component
<<platform>>
A Component model defines standards for (i)properties that individual components must satisfymethods for composing components.
More definitiones
• Component SpecificationC = <{Interfaces}, {Properties}>
• Component compliance to component model
• Component Composition:
• Interface composition (BINDING) : I(C) = I(C1) I(C2)
• Property composition: Pi(C) = Pi(C1) Pi(C2)
19 Apr 2023 8
Classification• How to describe
– (i) Commonalities?
– (ii) Differences?
• Different approaches– Specification of Meta model– List of characteristics– Identification of categories and their
characteristics
19 Apr 2023 9
19 Apr 2023 10
The Classification Framework - Categories
• Three dimensions– Lifecycle. – Construction. – Extra-Functional
Properties.
lifecycle
EFP
construction
Component lifecycle
19 Apr 2023 ICAT Sarajevo - 2007-10-29 12
Component lifecycle
requirementsrequirements
modellingmodelling
implementationimplementation
packagingpackaging
deploymentdeployment
ExecutionExecutionSpecification• Interface• Models• Meta data
Specification• Interface• Models• Meta data
Code• Source code• Executable code• Executable models
Code• Source code• Executable code• Executable models
Storage• Repository• Package• Meta data
Storage• Repository• Package• Meta data
InstalledFilesInstalledFiles
ExecutablecodeExecutablecode
Component forms
Construction (I)
• Specification of– Interface
– Composition• Binding• interaction
19 Apr 2023 14
<<component>>Client
<<component>>Client
<<component>>Server
1. the component interface used for the interaction with other components and external environment
2. the means of component binding (initiate communication)3. communication.
Interface SpecificationCategories
• Levels– - Syntactic
- Functional Semantic- Behavioral
• Specification language
• Distinquish– Provide
– Require
• Interface type– Operation-based
– Port-based
19 Apr 2023 15
<<component>>
Client
<<component>>
Client
<<component>>
Client
Binding & Deployment
19 Apr 2023 ICAT Sarajevo - 2007-10-29 16
19 Apr 2023 17
Binding
Horizontal
<<component>>
Client
<<component>>
Server
Vertical
<<component>>Server
<<component>>
Client
<<component>>
Server
(delegation,agregation)
19 Apr 2023 18
Binding & composition
Vertical
<<component>>Server
<<component>>
Client
<<component>>
Server
(delegation,agregation)
Composite
component
19 Apr 2023 19
Binding (II)
<<component>>
Client
<<component>>
Server
Exogenous
<<component>>
Client
<<component>>
Server
<<Connector>>In between
<<component>>
Server
Endogenous
19 Apr 2023
20
Interactions
Architectural style
(client-server, pipe-filter)
Communication type
(synchronous, asynchronous)
<<component>>
Client
<<component>>
Server
Construction classification
• Interface– operation-based/port-based– provides/requires
– The interface level (syntactic, semantic, behaviour)
– distinctive features
• Binding– Horisontal, Vertical– Endogenous, Exogenous
• Interaction– Architectural Style– Communication type (synchronous/asynchronous)
19 Apr 2023 21
19 Apr 2023 22
Extra-Functional Properties
• Management of extra-functional properties– Does a component provide any support for extra-functional
properties?– What are the mechanisms?– Which properties are managed?
• Composition of extra-functional properties– P(C1 o C2) = P(C1) o P(C2)– What kind of composition is supported?– Which properties?
Component Execution Platform
component component
EFP Management EFP Management
Component Execution Platform
EFP Management
component component
Component Execution Platform
component
EFP Management
EFP Management EFP Management
component
Component Execution Platform
component
EFP Management EFP Management
component
EFP Managed systemwideEFP Managed per collaboration
Exogenous EFPmanagement
Endogenous EFPmanagement
A B
C D
Component Execution Platform
component component
EFP Management EFP Management
Component Execution Platform
EFP ManagementEFP Management
component component
Component Execution Platform
component
EFP ManagementEFP Management
EFP ManagementEFP Management EFP ManagementEFP Management
component
Component Execution Platform
component
EFP ManagementEFP Management EFP ManagementEFP Management
component
EFP Managed systemwideEFP Managed per collaboration
Exogenous EFPmanagement
Endogenous EFPmanagement
A B
C D
Management of EFP
EPF – compositions
Pi(C) = Pi(C1) Pi(C2)
Problems:
1. Composition operators?
2. Influence of external factors
19 Apr 2023 24
EPF – composition types (II)
1. Directly composable properties. A property of an assembly is a function of, and only of, the same property of the components involved.
– P(A) = f(P(C1),…P(Ci),…,P(Cn))
2. Architecture-related properties. A property of an assembly is a function of the same property of the components and of the software architecture.
– P(A) = f(SA, …P(Ci)…), i=1…n
– SA = software architecture
19 Apr 2023 25
EPF – composition types (III)3 Derived properties. A property of an assembly depends on several
different properties of the components. – P(A) = f(SA, …Pi(Cj)…), i=1…m, j=1…n– Pi = component properties– Cj = components
4 Usage-depended properties. A property of an assembly is determined by its usage profile. – P(A,U) = f(SA, …Pi(Cj,U)…), i=1…m, j=1…n – U = Usage profile
5 System environment context properties. A property is determined by other properties and by the state of the system environment.– P(S,U,X) = f(SA, …Pi(Cj,U,X)…), i=1…m, j=1…n – S= system, X = system context
19 Apr 2023 26
Classification summary
19 Apr 2023 27
Component models evaluations
Selection criteria:
1. A component model includes a component definition;
2. A component model provides rules for component interoperability;
3. Component functional properties are unambiguously specified by component interface;
4. A component interface is used in the interoperability mechanisms;
5. A component is an executable piece of software and the component model either directly specifies its form or unambiguously relates to it via interface and interoperability specification.
19 Apr 2023 29
19 Apr 2023 30
Chosen component models(25 component models)
• AUTOSAR
• BIP
• BlueArX
• CCM
• COMDES II
• CompoNETS
• EJB
• Fractal
• KOALA
• KobrA
• IEC 61131
• IEC 61499
• JavaBeans
• MS COM• OpenCOM• OSGi• Palladio• PECOS• Pin• ProCom• ROBOCOP• RUBUS• SaveCCM• SOFA 2.0
19 Apr 2023 31
Lifecycle table Component
ModelsModelling Implementation Packaging Deployment
AUTOSAR N/A C Non-formal specification of container At compilation
BIPA 3-layered representation: behavior, interaction,
and priorityBIP Language N/A At compilation
BlueArX N/A C N/A At compilation
CCM N/A Language independentDeployment Unit archive
(JARs, DLLs)At run-time
COMDES II ADL-like language C N/A At compilation
CompoNETS Behavour modeling (Petri Nets) Language independentDeployment Unit archive
(JARs, DLLs)At run-time
EJB N/A Java EJB-Jar files At run-time
FractalADL-like language
(Fractal ADL, Fractal IDL), Annotations (Fractlet)
Java (in Julia, Aokell)C/C++ (in Think)
.Net lang. (in FracNet)File system based repository At run-time
KOALA ADL-like languages (IDL,CDL and DDL) C File system based repository At compilation
KobrA UML Profile Language independent N/A N/A
IEC 61131Function Block Diagram (FBD)
Ladder Diagram (LD)Sequential Function Chart (SFC)
Structured Text (ST)Instruction List (IL)
N/A At compilation
IEC 61499 Function Block Diagram (FBD) Language independent N/A At compilation
JavaBeans N/A Java Jar packages At compilation
MS COM N/A OO languages DLLAt compilation and at run-
timeOpenCOM N/A OO languages DLL At run-time
OSGi N/A Java Jar-files (bundles)At run-time and at
compilationPalladio UML profile Java N/A At run-timePECOS ADL-like language (CoCo) C++ and Java Jar packages or DLL At compilation
Pin ADL-like language (CCL) C DLL At compilationProCom ADL-like language, timed automata C File system based repository At compilation
ROBOCOP ADL-like language, resource management model C and C++ Structures in zip filesAt compilation and at run-
timeRUBUS Rubus Design Language C File system based repository At compilation
SaveCCM ADL-like (SaveComp), timed automata C File system based repository At compilationSOFA 2.0 Meta-model based specification language Java Repository At run-time
19 Apr 2023 32
Lifecycle table Component
ModelsModelling Implementation Packaging Deployment
AUTOSAR N/A CN/A
At compilation
BIP
A 3-layered representation:
behavior, interaction and priority
Source code, implementation in
BIP languageN/A
At compilation
CCM
Abstract model: OMG-IDL,Programming model: CIDL
Language independent.
Deployment Unit archive
(JARs, DLLs)At run-time
Fractal
ADL-like language (Fractal ADL, Fractal
IDL), Annotations (Fractlet)
Julia, Aokell(Java)Think(C/C++)FracNet(.Net)
File system based repository
At run-time
KOALAADL-like languages
(IDL,CDL and DDL)C
File system based repository
At compilation
EJB N/A Java binary code EJB-Jar files At run-time
19 Apr 2023 33
Constructs table - Interface
ComponentModels
Interface type
Distinction of
Provides / Requires
Distinctive featuresInterface Language
Interface Levels
(Syntactic,Semantic,
Behaviour)
AUTOSAROperation-
basedPort-based
Yes AUTOSAR Interface* C header files Syntactic
BIP Port-based No Complete interfaces,Incomplete interfaces
BIP LanguageSyntacticSemanticBehaviour
BlueArX Port-based Yes N/A C Syntactic
CCMOperation-
basedPort-based
YesFacets and receptaclesEvent sinks and event
sources
CORBA IDL, CIDL Syntactic
COMDES II Port-based Yes N/AC header filesState charts diagrams
SyntacticBehaviour
CompoNETS
Operation-based
Port-basedYes
Facets and receptaclesEvent sinks and event
sources
CORBA IDL, CIDL,
Petri netsSyntacticBehaviour
EJB Operation-based No N/A
Java Programming Language + Annotations
Syntactic
Fractal Operation-based Yes Component Interface,
Control Interface
IDL, Fractal ADL, or Java or
C, Behavioural
Protocol
SyntacticBehaviour
KOALA Operation-based Yes Diversity Interface,
Optional InterfaceIDL, CDL Syntactic
19 Apr 2023 34
Constructs table – Binding & interactionComponent
Models Interaction Styles Communication TypeBinding Type
Exogenous Hierarchical
AUTOSAR Request response, Messages passing
Synchronous, Asynchronous No Delegation
BIPTriggering
Rendez-vous, Broadcast
Synchronous, Asynchronous No Delegation
BlueArX Pipe&filter Synchronous No Delegation
CCM Request response, Triggering
Synchronous, Asynchronous No No
COMDES II Pipe&filter Synchronous No No
CompoNETS Request response Synchronous, Asynchronous No No
EJB Request response Synchronous, Asynchronous No No
Fractal Multiple interaction styles
Synchronous, Asynchronous Yes Delegation,
Aggregation
KOALA Request response Synchronous No Delegation, Aggregation
19 Apr 2023 35
EFPComponent
ModelsManagement of
EFPProperties
specificationComposition and analysis support
BlueArXEndogenous per collaboration (A)
Resource usage, Timing properties
N/A
EJB 3.0Exogenous system wide
(D)N/A N/A
FractalExogenous per
collaboration (C)
Ability to add properties (by adding “property”
controllers)N/A
KOALAEndogenous system wide
(B)Resource usage
Compile time checks of resources
KobrAEndogenous per collaboration (A)
N/A N/A
PalladioEndogenous system wide
(B)Performance properties
specificationPerformance properties
PECOSEndogenous system wide
(B)
Timing properties, generic specification of other
propertiesN/A
PinExogenous system wide
(D)Analytic interface, timing
properties
Different EFP composition theories,
example latency
ProComEndogenous system wide
(B)Timing and resources
Timing and resources at design and compile
time
RobocopEndogenous system wide
(B)
Memory consumption, Timing properties,
reliability, ability to add other properties
Memory consumption and timing properties at
deployment
RubusEndogenous system wide
(B)Timing
Timing properties at design time
SaveCCMEndogenous system wide
(B)
Timing properties, generic specification of other
properties
Timing properties at design time
SOFA 2.0Endogenous system wide
(B)Behavioural (protocols) Composition at design
19 Apr 2023 36
DomainsApplications and business domain of the Component Models
• General-purpose:– Basic mechanisms for the production and the composition of
components – Provide no guidance, nor support for any specific architecture.
• Specialised:– Specific application domains
(i.e. consumer electronics, automotive, …)
19 Apr 2023 37
Domains
19 Apr 2023 38
Conclusion• From the results we can recognize some recurrent patterns such as
– general-purpose component models utilize client-server style– Specialized domains (mostly embedded systems) pipe & filter is
the predominate style.– Composition of extra-functional properties is rather scarce.– Behaviour & Semantic rarely supported – Almost never repository
• Summary– The classification framework helps in understanding component models
principles– Enables comparison– Can be used as a check-list when development new component models
Literature
• Ivica Crnkovic, Séverine Sentilles, Aneta Vulgarakis, Michel Chaudron, A Classification Framework for Component Models
• Ivica Crnkovic, Magnus Larsson: Classification of Quality Attributes
19 Apr 2023 39