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

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

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

    View Slide

  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

    View Slide

  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

    View Slide

  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.

    View Slide

  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.

    View Slide

  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.

    View Slide

  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

    View Slide

  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
    [email protected] 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.

    View Slide

  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/

    View Slide

  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.

    View Slide

  11. 11
    Proposal Background
    Reactive Systems and Design
    • Set of design principles for creating
    cohesive systems.
    • Responsive
    • Resilient
    • Elastic
    • Message Driven

    View Slide

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

    View Slide

  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

    View Slide

  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.

    View Slide

  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?

    View Slide

  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.

    View Slide

  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.

    View Slide

  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.

    View Slide

  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)

    View Slide

  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.

    View Slide

  21. 21
    Twitter: @jpd1as GitHub: jpdias http://jpdias.me [email protected]
    Thank you

    View Slide