Annotation This volume defines a common example for modelling approaches of component based systems. It is based on the Dagstuhl research seminar CoCoME (Common Component Modelling Example), which was held from August 1-3, 2007, at Schloss Dagstuhl, Germany. The Common Component Modelling Example makes it possible to compare different approaches and to validate existing models. It serves as a platform for the classification of existing models and approaches and the interchange of research ideas, enabling researchers to focus and to tackle aspects less frequently dealt with. The CoCoME project is an ongoing venture, one of the aims of which is the adoption of the Common Component Modelling Example by the entire component community as a means of comparing and validating their approaches Title Page Preface Organization Table of Contents Introduction CoCoTA – Common Component Task Introduction Timeline, Input to the Teams and Expected Output Participating Teams Reviewing and Evaluation Process Conclusions References CoCoME - The Common Component Modeling Example Introduction and System Overview Functional Requirements and Use Case Analysis Extra-Functional Properties Architectural Component Model Implementation System Tests References Modeling Components and Component-Based Systems in KobrA Introduction Goals and Scope of the Component Model Modeled Cutout of CoCoME Benefit of the Modeling Effort and Lessons Learned Component Model Separation of Development Dimensions Separation of Projections Separation of Specifications and Realizations Separation of Process and Product Modelling the CoCoME Computation Independent Model Platform Independent Model Platform Specific Model Analysis Tools Summary References A Rich Services Approach to CoCoME Introduction Goals and Scope of the Component Model Modeled Cutout of CoCoME Benefit of the Modeling Effort and Lessons Learned Component Model Rich Services Logical Model Rich Services Deployment Model Rich Services Development Process Message Sequence Charts Modeling the CoCoME Domain Model Trading System Rich Service Enterprise Rich Service Store Rich Service Cash Desk Rich Service Deployment of Rich Services Discussion and Analysis Tool Support Summary References Modelling with Relational Calculus of Object and Component Systems - rCOS Introduction Goals and Scope of the Component Model Modelled Cutout of CoCoME Benefit of the Modelling Effort and Lessons Learned Overview Component Model Object Modelling in rCOS Refinement Component Modelling in rCOS Related Work The Example Detailed Design Component-Based Architecture Analyses Verification, Analysis and Tool Support Summary References Component-Interaction Automata Approach (CoIn) Introduction Goals and Scope of the Component Model Modeled Cutout of CoCoME Benefit of the Modeling Effort and Lessons Learned Component Model Definition of a Component-Interaction Automaton Composition of Component-Interaction Automata Textual Notation Modelling the CoCoME Static View Behavioural View Specification of the CashDeskApplication (Level 3) Specification of the CashBoxControllerComposite (Level 3) Specification of the CashDesk (Level 2) Specification of the CashDeskChannel (Level 2) Specification of the Coordinator (Level 2) Specification of the CashDeskLine (Level 1) Specification of the Persistence (Level 3) Specification of the Data (Level 2) Specification of the StoreApplication (Level 3) Specification of the ProductDispatcher (Level 3) Specification of the TradingSystem (Level 0) Transformations Analysis Temporal-Logic Properties Use Cases Test Cases Tools Summary References Service-Oriented Modeling of CoCoME with Focus and AutoFocus Introduction Goals and Scope of the Component Model Benefits of the Modeling: A Tailored Approach for the CoCoME Example Modeled Cutout of CoCoME Effort and Lessons Learned Outline Component Model: FOCUS Modeling the CoCoME POS System Functional/Service Architecture Level Logical Level Deployment Level Analysis Tools Summary References Modelling the CoCoME with the JAVA/A Component Model Introduction Goals and Scope of the Component Model Modelled Cutout of the CoCoME Benefits of the Modelling Effort and Lessons Learned Component Model Modelling the CoCoME Architectural Deviations Trading System —Stores and Enterprises Cash Desks— The Embedded System Part Inventory— The Information System Part Analysis Analysis of Functional Requirements Non-functional Requirements Tools Qualitative and Quantitative Analysis Architectural Programming Summary References Linking Programs to Architectures: An Object-Oriented Hierarchical Software Model Based on Boxes Introduction Goals and Scope of the Component Model Modeled Cutout of CoCoME Benefit of the Modeling Effort and Lessons Learned Component Model The Executable Modeling Layer The Architectural Modeling Layer Modeling the CoCoME The Bank Component The TradingSystem Component The EnterpriseClient Component The TradingSystem::Store Component The CashDeskLine Component The Coordinator Component The SaleStatistics Component The CashDesk Component The CardReaderController Component The ScannerController Component The LightDisplayController Component The CashDesk::Application Component The CashBoxController Component PrinterController CashDeskGUI Inventory::Application Inventory::Data Missing Parts Analysis Tools Summary Limitations Future Work Response to the Jury Comments References Modelling the CoCoME with DisCComp Introduction Goals and Scope of the Component Model Modeled Cutout of CoCoME Benefit of the Modeling Effort and Lessons Learned Component Model The DisCComp System Model The DisCComp Description Technique Modelling the CoCoME Static View Behavioural View Component Specifications Specification of Component Inventory::Application::Store Specification of Component Inventory::Data::Persistence Specification of Component Inventory::Data::Store Specification View of Component Inventory::GUI::Store Specification of Component Inventory::Data Specification of Component Inventory::Application Specification of Component Inventory Transformations Analysis Tools Summary References Palladio – Prediction of Performance Properties Introduction Goals and Scope of the Component Model Modeled Cutout of CoCoME Benefit of the Modeling Effort and Lessons Learned History Related Work Component Model Views, Roles, and Sub-models Repository Model Service Effect Specifications System Model Resource Types Resource Environment Allocation Model Usage Model Summary Syntax and Semantics Modelling the CoCoME Repository Model Service Effect Specification System Model Resource Types Resource Environment Model Allocation Model Usage Model Transformations Analysis Queuing Network Simulation The Stochastic Process Algebra Capra Tools Summary Limitations Lessons Learned Conclusion References {\sf KLAPER}: An Intermediate Language for Model-Driven Predictive Analysis of Performance and Reliability Introduction Goals and Scope of the Model Modeled Cutout of CoCoME Benefit of the Modeling Effort and Lessons Learned The KLAPER Model: An Abstraction for Component Models The Basic Methodology The {\sf KLAPER} Metamodel {\sf KLAPER}-Based Model Generation Modelling the CoCoME: Generation of a {\sf KLAPER} Model from a Design-Level Model Transformation from the UML to the {\sf KLAPER} Metamodel (Pre-assembly) Transformation from the UML to the {\sf KLAPER} Metamodel (Post-assembly) Examples of {\sf KLAPER} Modeling of CoCoME Transformations from {\sf KLAPER} Models to Analysis Models The LQN Model Transformation Rules from {\sf KLAPER} to LQN Examples of Target LQN Models of CoCoME Analysis Tools Summary References CoCoME in Fractal Introduction Goals and Scope of the Component Model Modeled Cutout of CoCoME Benefit of the Modeling Effort and Lessons Learned Structure of the Chapter Component Model Static View (Metamodel) Behavioral View Deployment View Modeling the CoCoMe Static View Behavioral View Deployment View Implementation View Specification of Selected Components Transformations Analysis Tools and Results Summary References CoCoME in SOFA Introduction Goals and Scope of the Component Model Modeled Cutout of CoCoME Benefit of the Modeling Effort and Lessons Learned Component Model Static View Behavior View Deployment View Performance View Comparison with Other Component Models Modeling the CoCoME Static View Behavioral View Deployment View Implementation View Performance View Specification of CashDeskApplication Specification of Component CashDeskBus Transformations Analysis Compliance Both Vertical and Horizontal Verification of Code against Frame Protocols Run Time Checking against Code Performance Analysis Tools and Results BP Checker Modified JPF and BP Checker Cushion Development Support Tool Summary References A Specification Language for Distributed Components Implemented in GCM/ProActive Introduction Goals and Scope of the Component Model Contribution Part of CoCoME Modelled Benefits Lessons Learned Component Model The Grid Component Model (GCM) A GCM Reference Implementation: GCM/ProActive pNets and Behavioural Models The Java Distributed Component Specification Language (JDC) UML Component Diagrams, and the CTTool Editor Modelling the CoCoME Black-Box View Architectural View GCM View Deployment View Specification of the CashDesk Component Specification of the CashBoxController Component Transformations Tools Overview Generation of Safe GCM/ProActive Code Generation of Behavioural Models Analysis System Verification Summary References CoCoME Jury Evaluation and Conclusion Introduction and Overview Semi-formal Modeling Formal Modeling, Focused on Functional Correctness Formal Models, Focusing on Behavior and Quality Properties Models Tailored for a Specific Application Domain Conclusions Author Index Introduction / Andreas Rausch [and Others] -- Cocota -- The Common Component Modeling Example / Sebastian Herold [and Others] -- Modeling Components And Component-based Systems In Kobra / Colin Atkinson [and Others] -- A Rich Services Approach To Cocome / Barry Demchak [and Others] -- Modelling With Relational Calculus Of Object And Component Systems -- Rcos / Zhenbang Chen [and Others] -- Component Interaction Auotmata Approach (coin) / Barbara Zimmerov [and Others] -- Service-oriented Modeling Of Cocome With Focus And Autofocus / Manfred Broy [and Others] -- Modelling Cocome With Java/a Component Model / Alexander Knapp [and Others] -- Linking Programs To Architectures: An Object-oriented Hierarchical Software Model Based On Boxes / Jan Shafer [and Others] -- Modelling The Cocome With Disccomp / Andre Appel [and Others] -- Palladio -- Prediction Of Performance Properties / Klaus Krogmann, Ralf Reussner -- Klaper: An Intermediate Language For Model-driven Predictive Analysis Of Performance And Reliability / Vincenzo Grassi [and Others] -- Cocome In Fractal / Lubomir Bulej [and Others] -- Cocome In Sofa / Tomas Bures [and Others] -- A Specification Language For Distributed Components Implemented In Gcm/proactive / Antonio Cansado [and Others] -- Cocome Jury Evaluation And Conclusion / Manfred Broy, Johannes Siedersleben, Clemens Szyperski. Andreas Rausch ... [et Al.] (eds.). Based On A Seminar Held At Schloss Dagstuhl, Germany, Aug. 1-3, 2007, And Sponsored By The German Computer Science Society. Includes Bibliographical References And Index. Based on the 2007 Dagstuhl Research Seminar CoCoME, this book defines a common example for modeling approaches of component-based systems. The book makes it possible to compare different approaches and to validate existing models.