Component-based Robotics Engineering Davide Brugali, Luca Gherardi Università degli Studi di Bergamo Anchorage, AK, USA May 7, 2010 Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 1 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010
IEEE Tutorial Component-based Robotics Engineering • Part I: Reusable building block • IEEE RAM, December 2009 • Part II: Systems and Models • IEEE RAM, March 2010 Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 2 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010
Introduction TODAY: A lot of robotics software are available but often not reusable • They are tight to specific robot GOAL: build robotic software through a composition of reusable building blocks • called component Solution: Component Based Software engineering Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 3 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010
What is reuse? Software reuse is: • the practice of developing software, • from a stock of building blocks, • so that similarities in requirements and/or architecture between applications ca be exploited, • to achieve substantial benefits in productivity, quality and business performance. Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 4 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010
What makes a component reusable Three aspects are equally important • Quality. The component has to be usable (reliability, performance, efficiency,…), • Functionality . It should be desirable to reuse the component (it offer a function that is needed), • Technique. It should be possible to reuse the component (portability, interoperability, modularity). Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 5 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010
Types of reuse Horizontal component: provide functionality that can used in totally different use cases. Vertical component: provide functionality that can be used in a specific domain. Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 6 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010
Component-Based System Component: a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third part. Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 7 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010
Component Provided 1..* Interface Component * Required Functional 1..* Interface Specification 1 1..* Contract * Component Implementation 1 * * 1 Object Class instance Separation of specification and implementation Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 8 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010
Component Specification Interface design concept • Provided/Required • Service/Data • Strongly-typed/Loosely-typed • Stateful/Stateless • Minimal/Complete Contract Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 9 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010
Implementation example Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 10 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010
Component framework A skeleton of a component implementation that can be specialized by a component developer to produce custom component. Stable point Variation point Variant Life span Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 11 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010
Implementing variability Classification according to binding time • Compile time, Link time, Run time Technologies • Inheritance and extension • Aggregation and delegation • Parameterization • Conditional compilation • Dynamic Link Libraries • Reflection Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 12 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010
Refactoring A technique that aims to restructure a set of existing software libraries without affecting their external behavior in order to harmonize their architecture, data structures, and APIs. Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 13 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010
Path planner component-framework Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 14 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010
Motion planning Component-based system Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 15 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010
Separation of functional and extra-functional requirements Provided 1..* Interface 1..* Computation Component Component * * Required Extra-Functional Functional 1..* Interface Specification Specification 1..* Configuration 1 1 1..* Contract * * Component 1 * * Container Implementation 1 * Port Resource Service * 1 Object Class instance Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 16 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010
Computation Is concerned with the data processing algorithms • Data transformation -> data flow design • Control transformation -> control flow design Different levels of concurrency's granularity • Fine grain • Medium grain • Large grain Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 17 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010
Granularity of control transformation Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 18 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010
Components Assembly n sequential Components + m service Components + 1 container Component = Component Assembly Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 19 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010
Separation of functional and extra-functional requirements Provided 1..* Interface 1..* Computation Component Component * * Required Extra-Functional Functional 1..* Interface Specification Specification 1..* Configuration 1 1 1..* Contract * * Component 1 * * Container Implementation 1 * Port Resource Service * 1 Object Class instance Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 20 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010
Configuration Determines which system components should exist, and how they are inter-connected A configuration is described in term of • Components • Connection between component • Connectors: architectural building blocks used to model interactions among components and rules that govern those interactions Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 21 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010
Quality of Service QoS depends on implementation, availability of resources and environment Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 22 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010
Separation of component and system requirements Provided 1..* Interface 1..* 1..* Communication Computation Component Component System * * * Required Extra-Functional Functional 1..* Specification Interface Specification Specification 1..* 1..* Coordination Configuration 1 1 1..* 1 Contract * * * Component 1 * 1 * System Container Implementation 1 * Connector Connections E2E QoS Port Resource Service * 1 Object Class instance Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 23 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010
Communication Deal with the exchange of data Two types of communication • Imperative: caller/provider mechanism • Reactive: broadcaster/listener mechanism Visibility implies dependencies and influence reusability of components. Three dimensions of decoupling • Space / Time / Synchronization decoupling Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 24 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010
Decoupling degree between component Three dimensions of decoupling • Space decoupling • Time decoupling • Synchronization decoupling Communication paradigm influence the decoupling degree Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 25 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010
Communication paradigm Communication paradigm influence the decoupling degree • Remote method invocation • Publish/Subscribe Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 26 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010
Coordination Is concerned with the interaction of the various system components Coordination language & models • Data-driven • Control-driven Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 27 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010
Interaction between components Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 28 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010
Recommend
More recommend