component based robotics engineering
play

Component-based Robotics Engineering Davide Brugali, Luca Gherardi - PowerPoint PPT Presentation

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


  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. Implementation example Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 10 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010

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

  12. 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

  13. 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

  14. Path planner component-framework Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 14 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010

  15. Motion planning Component-based system Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 15 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010

  16. 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

  17. 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

  18. Granularity of control transformation Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 18 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. Interaction between components Davide Brugali, Luca Gherardi UNIVERSITÀ DEGLI 28 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010

Recommend


More recommend