A Classification Framework for Component Models Ivica Crnkovic, Séverine Sentilles, Aneta Vulgarakis, Michel Chaudron Mälardalen University, Sweden.

Slides:



Advertisements
Similar presentations
Component-Based Software Engineering Main issues: assemble systems out of (reusable) components compatibility of components.
Advertisements

Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
Component Oriented Programming 1 Chapter 2 Theory of Components.
Architecture Representation
By Philippe Kruchten Rational Software
Seminarium on Component-based Software Engineering Jan Willem Klinkenberg CORBA.
Basic Concepts in Component-Based Software Engineering
Component-based Software Engineering Marcello Bonsangue LIACS – Leiden University Fall 2005 Component Model Comparison.
Component Models and Technology Component-based Software Engineering
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
The Architecture Design Process
Unified Modeling (Part I) Overview of UML & Modeling
Page 1 Building Reliable Component-based Systems Chapter 4 - Component Models and Technology Chapter 4 Component Models and Technology.
Course Instructor: Aisha Azeem
Page 1, August 14, 2015 Advanced CBSE Advanced Component-Based Software Engineering - Course Organization Ivica Crnkovic Mälardalen University Software.
QoS-enabled middleware by Saltanat Mashirova. Distributed applications Distributed applications have distinctly different characteristics than conventional.
Software Architecture Classification for Estimating the Costs of COTS Integration Yakimovich, Bieman, Basili; icse 99.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1.
Workshop on Integrated Application of Formal Languages, Geneva J.Fischer Mappings, Use of MOF for Language Families Joachim Fischer Workshop on.
An Introduction to Software Architecture
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
Séverine Sentilles1 Advanced Component-Based Software Engineering Overview of several component models.
Component Models and Technologies Which one to choose What are their commonalities ? What are their differences ?
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
Comparing JavaBeans and OSGi Towards an Integration of Two Complementary Component Models HUMBERTO CERVANTES JEAN-MARIE FAVRE 09/02.
Component frameworks Roy Kensmil. Historical trens in software development. ABSTRACT INTERACTIONS COMPONENT BUS COMPONENT GLUE THIRD-PARTY BINDING.
Performance evaluation of component-based software systems Seminar of Component Engineering course Rofideh hadighi 7 Jan 2010.
Component Models - main characteristics Ivica Crnkovic.
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
Component Oriented Programming 1 Introduction to COP.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
ProActive components and legacy code Matthieu MOREL.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Component Models - main characteristics Ivica Crnkovic.
CBSE Component Based Software Engineering cs. upt
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 32. Review Behavioral Patterns – Observer Pattern – Chain of command.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
Introduction to business component technologies. Component definitions Szyperski: A software component is a unit of composition with contractually specified.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
A Classification Framework for Component Models Ivica Crnkovic, Séverine Sentilles, Aneta Vulgarakis, Michel Chaudron.
Chapter 9 Architectural Design. Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software.
SOFA 2 Component Model Tomáš Bureš, Petr Hnětynka, František Plášil CHARLES UNIVERSITY PRAGUE Faculty of Mathematics and Physics Czech Republic.
Chapter 17 - Component-based software engineering
Databases (CS507) CHAPTER 2.
Object-Oriented Analysis and Design
SOFTWARE DESIGN AND ARCHITECTURE
Systems Analysis and Design With UML 2
OO Methodology OO Architecture.
Software Design and Architecture
Distribution and components
Out-of-Process Components
Abstract descriptions of systems whose requirements are being analysed
CORBA Within the OS & Its Implementation
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
The OMG Approach (continued)
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Component-Based Software Engineering
Software Architecture
Component--based development
Chapter 20 Object-Oriented Analysis and Design
Service Oriented Architecture (SOA)
IMPORTANT NOTICE TO STUDENTS:
Analysis models and design models
An Introduction to Software Architecture
Chapter 9 Architectural Design.
Quality Assurance for Component-Based Software Development
Out-of-Process Components
Architectural Mismatch: Why reuse is so hard?
Presentation transcript:

A Classification Framework for Component Models Ivica Crnkovic, Séverine Sentilles, Aneta Vulgarakis, Michel Chaudron Mälardalen University, Sweden

11-Jul-162 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)

11-Jul-163 Different solutions Many CB models (with many different characteristics) exist today > Client > Server IdenticalItf C1 wcet1 f1 A C2 wcet2 f2 Input ports Output ports AUTOSAR BIP COMDES CCA Corba CM EJB Fractal KOALA KobrA MS COM OpenCom OSGi PIN PECOS ROBOCOP RUBUS SaveCCM SOFA 2.0

11-Jul-16ICATSarajevo 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?

11-Jul-165 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

11-Jul-166 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 = {C i } - components –B = {B j } - bindings –P = system platform –Bindings Between components and the platform -> components deployment Between components – components binding 11-Jul component > A Component model defines standards for (i)properties that individual components must satisfy methods for composing components.

More definitiones Component Specification C = Component compliance to component model Component Composition: Interface composition (BINDING) : I(C) = I(C 1 )  I(C 2 ) Property composition: P i (C) = P i (C 1 )  P i (C 2 ) 11-Jul-168

Classification How to describe –(i) Commonalities? –(ii) Differences? Different approaches –Specification of Meta model –List of characteristics –Identification of categories and their characteristics 11-Jul-169

10 The Classification Framework - Categories Three dimensions –Lifecycle. –Construction. –Extra-Functional Properties. lifecycle EFP construction

11-Jul-1611 The Classification Framework - Categories Three dimensions –Lifecycle. The lifecycle dimension identifies the support provided (explicitly or implicitly) by the component model, in certain points of a lifecycle of components or component-based systems. Construction. The construction dimension identifies (i) the component interface used for the interaction with other components and external environment, and (ii) the means of component binding (initiate communication )and (iii) communication. Extra-Functional Properties. The extra-functional properties dimension identifies specifications and support that includes the provision of property values and means for their composition. Domains. This dimension shows in which application and business domains component models are used. lifecycle EFP Domain ADomain B

Component lifecycle 11-Jul-16ICAT Sarajevo Component lifecycle requirements modelling implementation packaging deployment Execution Specification 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 Installed Files Installed Files Executable code Executable code Component forms

11-Jul-1613 Lifecycle category Different stages of a component lifecycle Modelling. The component models provide support for the modelling and the design of component-based systems and components. Implementation. The component model provides support for generating and maintaining code. The implementation can stop with the provision of the source code, or can continue up to the generation of a binary (executable) code. Storage & Packaging. Since components can be developed separately from systems, there is a need for their storage and packaging – either for the repository or for a distribution Deployment & Execution. At a certain point of time, a component is integrated into a system. This activity happens at different points of development or maintenance phase.

Construction (I) Specification of –Interface –Composition Binding interaction 11-Jul-1614 > Client > Client > 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 Specification Categories Levels –- Syntactic - Functional Semantic - Behavioral Specification language Distinquish –Provide –Require Interface type –Operation-based –Port-based 11-Jul-1615 > Client > Client > Client

Binding & Deployment 11-Jul-16ICAT Sarajevo

11-Jul-1617 Binding Horizontal > Client > Server Vertical > Server > Client > Server (delegation,agregation)

11-Jul-1618 Binding & composition Vertical > Server > Client > Server (delegation,agregation) Composite component

11-Jul-1619 Binding (II) > Client > Server Exogenous > Client > Server > In between > Server Endogenous

11-Jul Interactions Architectural style (client-server, pipe-filter) Communication type (synchronous, asynchronous) > Client > 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) 11-Jul-1621

11-Jul-1622 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?

Management of EFP

EPF – compositions P i (C) = P i (C 1 )  P i (C 2 ) Problems: 1.Composition operators? 2.Influence of external factors 11-Jul-1624

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 11-Jul-1625

EPF – composition types (III) 3Derived 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 4Usage-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 5System 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 11-Jul-1626

Component model LifecycleModelling Implementatio n PackagingDeploymentAt compilationAt run-timeConstructs Interface specification Interface typeOperation-basedPort-based Distinction of Provides / Requires Interface Language Interface LevelsSyntaxSemanticBehaviour Distinctive features Interaction Interaction Styles Communication Type SynchronousAsynchronousBinding type Exogenous / Endogenous Vertical Extra functional properties Management Endogenous Collaborative Endogenous Systemwide Exogenous Collaborative Exogenous Systemwide SpecificationComposition Classification summary 11-Jul-1627

11-Jul-1628 Illustration of the Classification Framework use Survey of 25 component models Selection of documentation for each component model –Satisfies criteria –Disposability the definition (Interfaces, composition) –Some points in the table have been subject our interpretation.

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. 11-Jul-1629

11-Jul-1630 Chosen component models ( 25 component models) AUTOSAR BIP BlueArX CCM COMDES II CompoNETS EJB Fractal KOALA KobrA IEC IEC JavaBeans MS COM OpenCOM OSGi Palladio PECOS Pin ProCom ROBOCOP RUBUS SaveCCM SOFA 2.0

11-Jul-1631 Lifecycle table Component Models ModellingImplementationPackagingDeployment AUTOSARN/AC Non-formal specification of container At compilation BIP A 3-layered representation: behavior, interaction, and priority BIP LanguageN/AAt compilation BlueArXN/AC At compilation CCMN/ALanguage independent Deployment Unit archive (JARs, DLLs) At run-time COMDES IIADL-like languageCN/A At compilation CompoNETSBehavour modeling (Petri Nets)Language independent Deployment Unit archive (JARs, DLLs) At run-time EJBN/AJavaEJB-Jar filesAt run-time Fractal ADL-like language (Fractal ADL, Fractal IDL), Annotations (Fractlet) Java (in Julia, Aokell) C/C++ (in Think).Net lang. (in FracNet) File system based repositoryAt run-time KOALAADL-like languages (IDL,CDL and DDL)CFile system based repositoryAt compilation KobrAUML ProfileLanguage independentN/A IEC Function Block Diagram (FBD) Ladder Diagram (LD) Sequential Function Chart (SFC) Structured Text (ST) Instruction List (IL) N/AAt compilation IEC 61499Function Block Diagram (FBD)Language independentN/AAt compilation JavaBeansN/AJavaJar packagesAt compilation MS COMN/AOO languagesDLL At compilation and at run- time OpenCOMN/AOO languagesDLLAt run-time OSGiN/AJavaJar-files (bundles) At run-time and at compilation PalladioUML profileJavaN/AAt run-time PECOSADL-like language (CoCo)C++ and JavaJar packages or DLLAt compilation PinADL-like language (CCL)CDLLAt compilation ProComADL-like language, timed automataCFile system based repositoryAt compilation ROBOCOPADL-like language, resource management modelC and C++Structures in zip files At compilation and at run- time RUBUSRubus Design LanguageCFile system based repositoryAt compilation SaveCCMADL-like (SaveComp), timed automataCFile system based repositoryAt compilation SOFA 2.0Meta-model based specification languageJavaRepositoryAt run-time

11-Jul-1632 Lifecycle table Component Models ModellingImplementationPackagingDeployment AUTOSARN/AC At compilation BIP A 3-layered representation: behavior, interaction and priority Source code, implementation in BIP language N/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 KOALA ADL-like languages (IDL,CDL and DDL) C File system based repository At compilation EJBN/AJava binary codeEJB-Jar filesAt run-time

11-Jul-1633 Constructs table - Interface Component Models Interface type Distinction of Provides / Requires Distinctive features Interface Language Interface Levels ( Syntactic, Semantic, Behaviour) AUTOSAR Operation- based Port-based YesAUTOSAR Interface*C header filesSyntactic BIPPort-basedNo Complete interfaces, Incomplete interfaces BIP Language Syntactic Semantic Behaviour BlueArXPort-basedYes N/A CSyntactic CCM Operation- based Port-based Yes Facets and receptacles Event sinks and event sources CORBA IDL, CIDL Syntactic COMDES II Port-basedYes N/A C header files State charts diagrams Syntactic Behaviour CompoNET S Operation- based Port-based Yes Facets and receptacles Event sinks and event sources CORBA IDL, CIDL, Petri nets Syntactic Behaviour EJB Operation- based NoN/A Java Programming Language + Annotations Syntactic Fractal Operation- based Yes Component Interface, Control Interface IDL, Fractal ADL, or Java or C, Behavioural Protocol Syntactic Behaviour KOALA Operation- based Yes Diversity Interface, Optional Interface IDL, CDLSyntactic

11-Jul-1634 Constructs table – Binding & interaction COMPONENT MODELS INTERACTION STYLES COMMUNICATION TYPE BINDING TYPE EXOGENOUSHIERARCHICAL AUTOSAR Request response, Messages passing Synchronous, Asynchronous NoDelegation BIP Triggering Rendez-vous, Broadcast Synchronous, Asynchronous NoDelegation BlueArXPipe&filterSynchronousNoDelegation CCM Request response, Triggering Synchronous, Asynchronous No COMDES IIPipe&filterSynchronousNo CompoNETSRequest response Synchronous, Asynchronous No EJBRequest response Synchronous, Asynchronous No Fractal Multiple interaction styles Synchronous, Asynchronous Yes Delegation, Aggregation KOALARequest responseSynchronousNo Delegation, Aggregation

11-Jul-1635 EFP Component Models Management of EFP Properties specification Composition and analysis support BlueArX Endogenous per collaboration (A) Resource usage, Timing properties N/A EJB 3.0 Exogenous system wide (D) N/A Fractal Exogenous per collaboration (C) Ability to add properties (by adding “property” controllers) N/A KOALA Endogenous system wide (B) Resource usage Compile time checks of resources KobrA Endogenous per collaboration (A) N/A Palladio Endogenous system wide (B) Performance properties specification Performance properties PECOS Endogenous system wide (B) Timing properties, generic specification of other properties N/A Pin Exogenous system wide (D) Analytic interface, timing properties Different EFP composition theories, example latency ProCom Endogenous system wide (B) Timing and resources Timing and resources at design and compile time Robocop Endogenous system wide (B) Memory consumption, Timing properties, reliability, ability to add other properties Memory consumption and timing properties at deployment Rubus Endogenous system wide (B) Timing Timing properties at design time SaveCCM Endogenous system wide (B) Timing properties, generic specification of other properties Timing properties at design time SOFA 2.0 Endogenous system wide (B) Behavioural (protocols)Composition at design

11-Jul-1636 Domains Applications 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, …)

11-Jul-1637 Domains Models AUTOSAR BIP BlueArX CCM COMDES II CompoNETS EJB Fractal KOALA KobrA IEC IEC JavaBeasns MS COM OpenCOM OSGi Palladio General- purpose xxxxxxxxx Specialisedxx x xx xx x Models PECOS Pin ProCom Robocop RUBUS SaveCCM SOFA 2.0 General- purpose xx Specialisedxxxxx

11-Jul-1638 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 ModelsA Classification Framework for Component Models Ivica Crnkovic, Magnus Larsson: Classification of Quality AttributesClassification of Quality Attributes 11-Jul-1639