{"title":"Experience Report: Combining Mixed-Criticality Support with Resource Reservation and Spare Capacity Allocation","authors":"R. J. Bril, E. Luit","doi":"10.1109/ICSA-C.2019.00019","DOIUrl":"https://doi.org/10.1109/ICSA-C.2019.00019","url":null,"abstract":"This paper reports upon our on-going research in supporting mixed criticality by means of an OSEK-compliant real-time operating system (RTOS). In our earlier work, we presented support for an (extended) adaptive mixed-criticality (AMC*) scheme using the OSEK-compliant RTOS μC/OS-II. Based on experiments with that set-up, we identified AMC-inherited undesirable behavior, and sketched improvements of that scheme to resolve or mitigate those issues. In this paper, we revisit the identified undesirable behavior, and specify and illustrate improvements based on resource reservation and space-capacity allocation. Our proposed improvements have also been implemented in μC/OS- II in combination with RELTEQ (Relative Timed Event Queues).","PeriodicalId":239999,"journal":{"name":"2019 IEEE International Conference on Software Architecture Companion (ICSA-C)","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134023041","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Yuting Fu, A. Terechko, T. Bijlsma, P. Cuijpers, J. Redegeld, A. Ors
{"title":"A Retargetable Fault Injection Framework for Safety Validation of Autonomous Vehicles","authors":"Yuting Fu, A. Terechko, T. Bijlsma, P. Cuijpers, J. Redegeld, A. Ors","doi":"10.1109/ICSA-C.2019.00020","DOIUrl":"https://doi.org/10.1109/ICSA-C.2019.00020","url":null,"abstract":"Autonomous vehicles use Electronic Control Units running complex software to improve passenger comfort and safety. To test safety of in-vehicle electronics, the ISO 26262 standard on functional safety recommends using fault injection during component and system-level design. A Fault Injection Framework (FIF) induces hard-to-trigger hardware and software faults at runtime, enabling analysis of fault propagation effects. The growing number and complexity of diverse interacting components in vehicles demands a versatile FIF at the vehicle level. In this paper, we present a novel retargetable FIF based on debugger interfaces available on many target systems. We validated our FIF in three Hardware-In-the-Loop setups for autonomous driving based on the NXP BlueBox prototyping platform. To trigger a fault injection process, we developed an interactive user interface based on Robot Operating System, which also visualized vehicle system health. Our retargetable debugger-based fault injection mechanism confirmed safety properties and identified safety shortcomings of various automotive systems.","PeriodicalId":239999,"journal":{"name":"2019 IEEE International Conference on Software Architecture Companion (ICSA-C)","volume":"117 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117279831","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
R. Boer, P. Lago, R. Verdecchia, Philippe B Kruchten
{"title":"DecidArch V2: An Improved Game to Teach Architecture Design Decision Making","authors":"R. Boer, P. Lago, R. Verdecchia, Philippe B Kruchten","doi":"10.1109/ICSA-C.2019.00034","DOIUrl":"https://doi.org/10.1109/ICSA-C.2019.00034","url":null,"abstract":"We report on the use of our DecidArch game to teach software architecture design decision making in two consecutive years. We compare the support of three learning goals for the first version of the game with the second, revised version. Results show how the game has clearly improved. For the remaining issues. we suggest final improvements.","PeriodicalId":239999,"journal":{"name":"2019 IEEE International Conference on Software Architecture Companion (ICSA-C)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-03-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130476580","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Machine Learning System Architectural Pattern for Improving Operational Stability","authors":"Haruki Yokoyama","doi":"10.1109/ICSA-C.2019.00055","DOIUrl":"https://doi.org/10.1109/ICSA-C.2019.00055","url":null,"abstract":"Recently, machine learning systems with inference engines have been widely used for a variety of purposes (such as prediction and classification) in our society. While it is quite important to keep the services provided by these machine learning systems stable, maintaining stability can be difficult given the nature of machine learning systems whose behaviors can be determined by program codes and input data. Therefore, quick troubleshooting (problem localization, rollback, etc.) is necessary. However, common machine learning systems with three-layer architectural patterns complicate the troubleshooting process because of their tightly coupled functions (e.g., business logic coded from design and inference engine derived from data). To solve the problem, we propose a novel architectural pattern for machine learning systems in which components for business logic and components for machine learning are separated. This architectural pattern helps operators break down the failures into a business logic part and a ML-specific part, and they can rollback the inference engine independent of the business logic when the inference engine has some problems. Through a practical case study scenario, we will show how our architectural pattern can make troubleshooting easier than common three-layer architecture.","PeriodicalId":239999,"journal":{"name":"2019 IEEE International Conference on Software Architecture Companion (ICSA-C)","volume":"3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-03-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117017144","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
F. Wessling, Christopher Ehmke, Ole Meyer, V. Gruhn
{"title":"Towards Blockchain Tactics: Building Hybrid Decentralized Software Architectures","authors":"F. Wessling, Christopher Ehmke, Ole Meyer, V. Gruhn","doi":"10.1109/ICSA-C.2019.00048","DOIUrl":"https://doi.org/10.1109/ICSA-C.2019.00048","url":null,"abstract":"Blockchain-based applications usually consist of centralized elements (e.g., web servers and back-end logic) connected to decentralized elements such as smart contracts. The engineering of such hybrid software architectures poses a challenge as it is unclear which elements should be centralized or decentralized. Furthermore the impact of this decision (or the balance between those two areas) on software quality attributes such as security, maintainability, performance or costs is currently unknown. The goal is to build a software architecture using the benefits and handling the challenges of blockchain technology while fulfilling the relevant quality attributes. While there are several approaches examining the relation between architectural decisions and quality attributes in centralized systems, research is at an early stage for decentralized elements in software architectures. This paper presents a first step towards architectural blockchain tactics. With a simplified experiment comparing two implementation variants of an Ethereum smart contract we show that software design patterns are not always beneficial and that the expected usage scenarios have a strong impact on the operational costs. We argue that further research and validation is necessary for gaining more qualitative and quantitative insights to make informed architectural design decisions when using blockchain technology and give a first outline on how to achieve this.","PeriodicalId":239999,"journal":{"name":"2019 IEEE International Conference on Software Architecture Companion (ICSA-C)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-03-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125505826","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Paolo Arcaini, R. Mirandola, E. Riccobene, P. Scandurra
{"title":"A Pattern-Oriented Design Framework for Self-Adaptive Software Systems","authors":"Paolo Arcaini, R. Mirandola, E. Riccobene, P. Scandurra","doi":"10.1109/ICSA-C.2019.00037","DOIUrl":"https://doi.org/10.1109/ICSA-C.2019.00037","url":null,"abstract":"Multiple interacting MAPE-K loops, structured according to specific interaction patterns, have been introduced to design the adaptation logic in case of decentralized self-adaptive software systems. Designing such complex systems requires the availability of tools where MAPE patterns can be easily instantiated to provide fast architectural solutions, and the encoding towards specific domains is facilitated by automatic mapping of such pattern instantiations in domain-specific languages; validation and verification must be also supported to assure correct development of reliable systems. In this paper, we present a pattern-oriented framework, based on the MSL (MAPE Specification Language) modeling language, for the design of self-adaptive systems. The framework supports: (i) explicit modeling of the adaptation logic in terms of patterns of interactive MAPE-K loops; (ii) ability to tailor MSL models for a specific application domain and synthesize from them other modeling artifacts/code according to a target implementation context and scope (e.g., OpenHAB); (iii) ability to perform validation and verification of MSL models by means of the ASMETA formal framework.","PeriodicalId":239999,"journal":{"name":"2019 IEEE International Conference on Software Architecture Companion (ICSA-C)","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-03-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122325770","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
M. Hesenius, A. Usov, Claas Rink, Dmitri Schmidt, V. Gruhn
{"title":"A Flexible Platform Architecture for the Dynamic Composition of Third-Party-Services","authors":"M. Hesenius, A. Usov, Claas Rink, Dmitri Schmidt, V. Gruhn","doi":"10.1109/ICSA-C.2019.00044","DOIUrl":"https://doi.org/10.1109/ICSA-C.2019.00044","url":null,"abstract":"The increasing availability of IP-based services and the rise of the platform economy in several industrial branches allow vendors to conquer new sales markets and develop new business models. Technical interoperability among services available on platforms is a desirable feature, but also a major challenge. Typically, service providers need to implement APIs of other services directly - an expensive, cumbersome, and often error-prone task. We present a platform architecture that allows to define, publish, and implement third-pary APIs to ease dynamic service composition.","PeriodicalId":239999,"journal":{"name":"2019 IEEE International Conference on Software Architecture Companion (ICSA-C)","volume":"262 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-03-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132349940","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Towards Consistency Checking Between Software Architecture and Informal Documentation","authors":"Jan Keim, A. Koziolek","doi":"10.1109/ICSA-C.2019.00052","DOIUrl":"https://doi.org/10.1109/ICSA-C.2019.00052","url":null,"abstract":"In the development process, documenting the software architecture is important to capture all reasoning and design decisions. Without a good and complete documentation, there is a lot of tacit knowledge that easily can get lost resulting in threats for success and increased costs. However, software architecture documentation is often missing or outdated. One reason for it is the tedious and costly process of creating and updating documentation in comparison to (perceived) low benefits. In this paper, we first present our long-term vision, where all information from any sources are persisted to avoid losing crucial information about a system. A base problem in this vision is keeping information from different sources consistent, with a major challenge of keeping consistency between models and informal documentation. We plan to address checking the consistency between models and textual natural language artefacts using natural language understanding. For this, we plan to break down the task into smaller subtasks that should provide a better understanding of the documents and their semantics. The extracted information should then be used to create traceability links and to check whether statements within the textual documentation are consistent with the software architecture models.","PeriodicalId":239999,"journal":{"name":"2019 IEEE International Conference on Software Architecture Companion (ICSA-C)","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-03-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116814394","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"PerOpteryx: Automated Improvement of Software Architectures","authors":"A. Busch, Dominik Fuchß, A. Koziolek","doi":"10.1109/ICSA-C.2019.00036","DOIUrl":"https://doi.org/10.1109/ICSA-C.2019.00036","url":null,"abstract":"The design phase of software development processes is a decisive part of the quality characteristics of the later software system. If errors are not or only late discovered in early phases of the development, this often has strong effects on quality and costs of the project. Software architecture models systematically help to prevent errors in early phases, such as the design phase. On the basis of models, software architectures and their quality properties can be evaluated and optimized at design time. PerOpteryx supports the systematic process of evaluating and optimizing software architecture models early considering quality attributes, such as performance, reliability, costs. The approach automatically generates architecture candidates based on several degrees of freedom of component-based software architectures. PerOpteryx then automatically evaluates and optimizes these architecture candidates with regard to the quality requirements of the software system. PerOpteryx is the first automated tool for systematic quality optimization of component-based software architectures that combines quantitatively modeled knowledge with qualitatively modeled architecture knowledge. Including qualitatively modeled knowledge enables quality characteristics to be taken into account in the optimization process that would have been too cost-intensive to model quantitatively.","PeriodicalId":239999,"journal":{"name":"2019 IEEE International Conference on Software Architecture Companion (ICSA-C)","volume":"122 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-03-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123340621","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"PaaSArch: Quality Evaluation Tool for PaaS Cloud Applications Using Generated Prototypes","authors":"David Gesvindr, Barbora Buhnova","doi":"10.1109/ICSA-C.2019.00038","DOIUrl":"https://doi.org/10.1109/ICSA-C.2019.00038","url":null,"abstract":"Platform as a Service (PaaS) cloud offers a plethora of architectural options when designing new PaaS cloud applications. The quality evaluation of each architectural alternative is very difficult due to unknown performance and internal architecture of the used PaaS cloud services. The PaasArch tool supports software architects in quality evaluation of PaaS cloud applications using generated prototypes. Within the tool, fully functional cloud applications can be automatically generated based on their model, deployed to the cloud, and benchmarked. Our experiments show that the benchmarks give very good guidance to the software architect about the quality (namely performance) of evaluated architectural alternatives.","PeriodicalId":239999,"journal":{"name":"2019 IEEE International Conference on Software Architecture Companion (ICSA-C)","volume":"46 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-03-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124184920","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}