• 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
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.
• 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.
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.
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/
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.
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).
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
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.
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?
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.
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.
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.
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)
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.