Upgrade to Pro — share decks privately, control downloads, hide ads and more …

A Reactive and Model-based Approach for Develop...

JP
September 04, 2018

A Reactive and Model-based Approach for Developing Internet-of-Things Systems

Presented at the 7th Software Engineering Doctoral Symposium, part of the 11th International Conference on the Quality of Information and Communications Technology. Coimbra, Portugal

DOI: https://doi.org/10.1109/QUATIC.2018.00049

JP

September 04, 2018
Tweet

More Decks by JP

Other Decks in Research

Transcript

  1. 1 A Reactive and Model-based Approach for Developing Internet-of-Things Systems

    João Pedro Dias, [email protected] Hugo Sereno Ferreira, [email protected] João Pascoal Faria, [email protected] By Wilgengebroed on Flickr [CC BY 2.0], via Wikimedia Commons
  2. 2 Outline 1. Context 2. Background 3. State-of-the-Art 4. Proposal

    Background 5. High-level Overview 6. Hypothesis 7. Research Questions (revision) 8. Work Plan 9. Final Remarks
  3. 3 Context: Software • Software is known to be problematic.

    • Mostly because of faults introduced during the development phase of the Software Development Lifecycle. • Complexity, both essential and accidental, is largely identified as a root cause of most of the problems. • Standish Group International. The Chaos Report.Tech. rep. Standish Group International, 2015. • Frederick Phillips Jr. Brooks. “No silver bullet -Essence and Accidents of Software Engineering”. In: Proceedings of the IFIP Tenth World Computing Conference
  4. 4 Context: Internet- of-Things • Internet-of-Things as the peak of

    ubiquitous computing and connectivity brings a set of inherently complex characteristics that need to be tackled by the developer during the Software Development Lifecycle (SDLC): • Heterogeneity (Technological fragmentation) • Large-scale • Real-time • Highly-dynamic topologies • Human-in-the-Loop.
  5. 5 Context: Software Engineering & IoT • Due to the:

    • Inherent complexity of developing software • Mostly unique proprieties of the Internet-of-Things • The need appears of reducing the complexity of developing IoT systems, at least from a developer’s perspective. • Providing new approaches, tools, patterns and knowledge or by adopting existent ones from other software engineering areas.
  6. 6 Background • Model-driven engineering (MDE) is a widely accept

    approach to address complexity. • DSML, transformations and generators • [email protected] seeks to extend the applicability of models produced in MDE approaches to the runtime environment.
  7. 7 Background • Visual Programming • Alternative to text-based programming

    systems. • Extensive set of icons and diagrams to convey information. S. K. Chang, Handbook of Software Engineering and Knowledge Engineering. World Scientific Publishing Co., 2002
  8. 8 State-of-the-Art: ThingML • MDSE approach for IoT, based on

    UML2 state charts • Key features: • Modeling Language • Toolset • Methodology • Downsides: • Only text-based • Limitations on orchestration • Models@runtime only preliminarily explored • Does not contemplate liveness & live programming B. Morin, N. Harrand and F. Fleurey, "Model-Based Software Engineering to Tame the IoT Jungle," in IEEE Software. C. Prehofer and L. Chiarabini, “From Internet of things mashups to model-based development,” International Computer Software and Applications Conference.
  9. 9 State-of-the-Art: Node-RED • Node-RED is a programming tool (mashup-tool)

    for wiring together hardware devices, APIs and online services. • Browser-based editor to wire together flows using the wide range of nodes in the palette that can be deployed to its runtime in a single-click. Node-RED, Flow-based programming for the Internet of Things, https://nodered.org/ Scargill, P.; Node-Red Madness,, https://tech.scargill.net/node-red-madness/
  10. 10 State-of-the-Art: IoTVerification and Validation • 16 IoT testing tools

    were analyzed and compared, from simulators to test- runners and test-beds. • Main findings: • Key features that differentiate IoT testing needs from the traditional systems are: • Heterogeneity, large-scale, dynamic topology and hardware-constrains. • Still lagging behind on the best practices and lessons learnt from Software Engineering.
  11. 11 Proposal Background Reactive Systems and Design • Set of

    design principles for creating cohesive systems. • Responsive • Resilient • Elastic • Message Driven
  12. 12 Proposal Background Liveness & Live Programming 1. Informative (e.g.

    flowchart as ancillary description) 2. Informative and Significant (e.g. executable flowchart) 3. Informative, Significant and Responsive (e.g. edit- triggered updates) 4. Informative, Significant, Responsive and Live (e.g. stream-drive updates) 5. Tactically Predictive (adds programming via selection from running predicted behaviors) 6. Strategically Predictive (adds inference of gross functionality) S. L. Tanimoto, “A perspective on the evolution of live programming,” in 2013 1st International Workshop on Live Programming (LIVE).
  13. 13 High-level Overview • IoT Systems: • Have high-degree of

    heterogeneity of devices and/or standards; • Are systems of systems: • Result from the combination of other and already existent systems; • Are of large-scale, thus, require orchestration; • Are highly-dynamic in terms of topology; • The target audience are developers, more specifically: Systems Integrators
  14. 14 Hypothesis H: A Live MD(S)E approach tailored for the

    Internet-of-Things positively impacts the development, integration, operations, and evolution of such systems at scale. - Live MD(S)E is where there is a bidirectional causal connection between models and runtime. - Visual Notations (building blocks of VPLs) are typically used in MD(S)E; we intend to leverage this to a Live Visual Notation. - The focus is given on the component/service integration (construct), operate/monitor and evolution, however, the particularities and needs of the IoT components (e.g. devices) will be taken into account.
  15. 15 RQ1: What are the human- understandable abstractions (language) adequate

    to support the development, integration, operations, and evolution of IoT systems? RQ2: How to make this language incrementally executable (incremental reification), thus supporting rapid evolution in a seamless fashion for the end-user? RQ3: How to reflect at the model-level the runtime information in a way that facilitates the monitoring and evolution of such systems, thus increasing its liveness? Research Questions RQ3: How can we improve the liveness of each Software Development Lifecycle phases to better tackle the Internet-of- Things Systems? RQ2: What will be the components for an Integrated Software Development model for the Internet-of-Things? RQ1: What are the human- understandable abstractions (language) adequate to support the development, integration, operations, and evolution of IoT systems?
  16. 16 Engineering Method of Research Validation • “Engineers develop and

    test a solution to a hypothesis. Based on the results of the test, they improve the solution until it requires no further improvement.” • Systematization of widespread, diffuse, and organized empirical best practices through observational and historical methods; • Laboratorial quasi-experiments, that incrementally validates the sanity of the proposed solution; • Real-world case-studies, as both a conduit to harvest practical requirements, as to provide a tight feedback and application over the conducted investigation • Example Scenario: Ambient Assisted Living(AAL) Research & Validation Methodology M. V. Zelkowitz and D. R. Wallace, “Experimental models for validating technology,” Computer, vol. 31, no. 5, pp. 23–31, 1998.
  17. 17 Current Results (Publications) • "Patterns for Things that Fail"

    by António Ramadas, Gil Domingues, João Dias, Ademar Aguiar, Hugo Ferreira • 24th Pattern Languages of Programs Conference 2017 • “A Brief Overviewof Existing Tools for Testing the Internet-of-Things” by João Pedro Dias, Flávio Couto, Ana C.R. Paiva and Hugo Sereno Ferreira • 11th IEEE International Conference on Software Testing, Verification and Validation Workshops (ICSTW) 2018 • Short-term publications: • “Landscape of Visual Programming for the Internet-of-Things” by João Pedro Dias, João Pascoal Faria and Hugo Sereno Ferreira • “Dynamic Allocation of Serverless Functions in IoT Environments” by Duarte Pinto, João Pedro Dias and Hugo Sereno Ferreira • TBD Journal publicationwith all of the state-of-the-artfindings.
  18. 18 Work Plan 1. Literature review on IoT systems and

    related body of knowledge on software practices, design, and architectures. Experimentation and evaluation of market-ready solutions; 2. Formalization of the approach above mentioned, with the definition of the model abstractions to be used and guidelines on the tools needed to validate it; 3. Systematization, by the means of patterns, of the widespread, diffuse, and organized empirical best practices through observational and historical methods. 4. Development of the toolset, according to the validation needs of the approach; 5. Validation of the approach, by the means of using the toolset, under laboratorial quasi-experiments; 6. Iteratively improve the toolset with the modifications needed during the laboratorial experimental phase; 7. Proceed to real-world case-studies, as both a conduit to harvest practical requirements, as to provide a tight feedback and application over the conducted investigation.
  19. 19 19 Simplified Gantt Chart Task 2017 2018 2019 2020

    2021 Literature Review (1) a+b Formalization(2) a Systematization(3) a Toolset(4) a Validation – 1st (5) b Improvement(6) Real-World Val. (7) a Writing a) Conference Publication (1+) b) Journal Publication (1)
  20. 20 20 Final Remarks • Software development for Internet-of-Things systems

    is far behind of the best practices for developing other kinds of software systems • IoT as a systems of systems will raise several challenges in terms of component/service integration (construct), operation/monitorization and system evolution. • A Model-driven Engineering approach can tame the IoT jungle (like ThingML). • A Live Model-driven Software Engineering approach tailored for IoT will positively improve the SDLC of such systems.