{"title":"Designing Safety Critical Software Systems to Manage Inherent Uncertainty","authors":"A. Serban","doi":"10.1109/ICSA-C.2019.00051","DOIUrl":"https://doi.org/10.1109/ICSA-C.2019.00051","url":null,"abstract":"Deploying machine learning algorithms in safety critical systems raises new challenges for system designers. The opaque nature of some algorithms together with the potentially large input space makes reasoning or formally proving safety difficult. In this paper, we argue that the inherent uncertainty that comes from using certain classes of machine learning algorithms can be mitigated through the development of software architecture design patterns. New or adapted patterns will allow faster roll out time for new technologies and decrease the negative impact machine learning components can have on safety critical systems. We outline the important safety challenges that machine learning algorithms raise and define three important directions for the development of new architectural patterns.","PeriodicalId":239999,"journal":{"name":"2019 IEEE International Conference on Software Architecture Companion (ICSA-C)","volume":"61 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123167594","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":"Applying Social Network Analysis Techniques to Architectural Smell Prediction","authors":"Antonela Tommasel","doi":"10.1109/ICSA-C.2019.00053","DOIUrl":"https://doi.org/10.1109/ICSA-C.2019.00053","url":null,"abstract":"As a software system evolves, the amount and complexity of the interactions amongst its components is likely to increase, which negatively affects the system design structure and also its quality. For instance, certain modules might become coupled due to a new user feature being added or to suboptimal development decisions. Design degradation symptoms are often related to high coupling and unwanted dependencies, such as: cyclic dependencies or violations to design rules, amongst other architectural smells. Thus, the early detection of such symptoms is important for architects to: i) anticipate dependency-related design problems in different parts of the system, ii) assess possible situations of technical debt, and iii) proactively look for solutions to preserve the quality of the system. Although there are approaches that analyse design dependencies in code bases and flag smell occurrences, very few of them have dealt with the prediction of dependency relations amongst software components. This research hypothesises that a predictive approach can warn architects about dependency-related problems before they appear. To this end, a particular graph-based approach is social networks analysis (SNA), which has been used for modelling both nature and human phenomena. Specifically, SNA techniques can predict links that do not yet exist between pairs of nodes in a network. SNA applications have shown evidence that the topological features of dependency graphs can reveal interesting properties of the software system under analysis. Nonetheless, SNA techniques have not yet been extensively exploited in the Software Architecture community. In this context, the question that motivates this research is to what extent SNA can leverage on information from a software design (and its evolution over time) for inferring new dependencies and likely configurations of architectural smells out of those dependencies.","PeriodicalId":239999,"journal":{"name":"2019 IEEE International Conference on Software Architecture Companion (ICSA-C)","volume":"4 2","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133292931","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":"“Functional-First” Recommendations for Beneficial Microservices Migration and Integration Lessons Learned from an Industrial Experience","authors":"Jean-Philippe Gouigoux, D. Tamzalit","doi":"10.1109/ICSA-C.2019.00040","DOIUrl":"https://doi.org/10.1109/ICSA-C.2019.00040","url":null,"abstract":"MGDIS is a French software development company which successfully migrated her monolith application towards a microservices architecture. This migration was due to a major strategic and technical change and needed an investment of 17 300 person.days over three years. While some results were initially targeted, others were not expected at all. However, with hindsight following an afterward in-depth analysis, they eventually proved to be unexpected best-practices that should be adopted for successful microservices adoption. These lessons learned are outlined following four crucial aspects: functional approach, norms and standards, microservices granularity and their semantics, and finally technical and integration outcomes.","PeriodicalId":239999,"journal":{"name":"2019 IEEE International Conference on Software Architecture Companion (ICSA-C)","volume":"148 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133337636","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. Calinescu, Danny Weyns, Simos Gerasimou, I. Habli
{"title":"Architecting Trustworthy Self-Adaptive Systems (Tutorial)","authors":"R. Calinescu, Danny Weyns, Simos Gerasimou, I. Habli","doi":"10.1109/ICSA-C.2019.00008","DOIUrl":"https://doi.org/10.1109/ICSA-C.2019.00008","url":null,"abstract":"Architecting self-adaptive software systems is challenging. These systems must achieve their goals not only in the environment in which they are deployed initially, but also as this environment changes over time. When self-adaptive systems are used in safety-critical and business-critical applications, this challenge is compounded by the need to also provide guarantees that the system operates correctly at all times. For traditional software systems, such guarantees are provided through assurance cases. These are structured arguments which use comprehensive development-time evidence to explain why a system can be trusted when used for its planned application in a given environment. This tutorial presents the ENTRUST methodology for achieving a similar level of trust in self-adaptive systems [1]. ENTRUST is the first end-to-end methodology for architecting trustworthy self-adaptive systems and dynamic assurance cases guaranteeing the suitability of the software for its intended applications. As advocated by major research initiatives such as the UK-led Assuring Autonomy International Programme (https://www.york.ac.uk/assuring-autonomy/). ENTRUST dynamic assurance cases seamlessly combine evidence obtained during the development of a self-adaptive software system with evidence obtained from its additional verification at runtime. As such, each reconfiguration of an ENTRUST self-adaptive system is accompanied by a new version of the assurance case that confirms the trustworthiness of the reconfigured system architecture.","PeriodicalId":239999,"journal":{"name":"2019 IEEE International Conference on Software Architecture Companion (ICSA-C)","volume":"24 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115779049","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":"Reinforcement Learning for IoT Interoperability","authors":"Sebastian Kotstein, C. Decker","doi":"10.1109/ICSA-C.2019.00010","DOIUrl":"https://doi.org/10.1109/ICSA-C.2019.00010","url":null,"abstract":"In this paper, an approach is introduced how reinforcement learning can be used to achieve interoperability between heterogeneous Internet of Things (IoT) components. More specifically, we model an HTTP REST service as a Markov Decision Process and adapt Q-Learning to the properties of REST so that an agent in the role of an HTTP REST client can learn the semantics of the service and, especially an optimal sequence of service calls to achieve an application specific goal. With our approach, we want to open up and facilitate a discussion in the community, as we see the key for achieving interoperability in IoT by the utilization of artificial intelligence techniques.","PeriodicalId":239999,"journal":{"name":"2019 IEEE International Conference on Software Architecture Companion (ICSA-C)","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124529919","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":"Beyond Reason: Uniting Intuition and Rationality in Software Architecture Decision Making","authors":"C. Pretorius","doi":"10.1109/ICSA-C.2019.00056","DOIUrl":"https://doi.org/10.1109/ICSA-C.2019.00056","url":null,"abstract":"Intuition and rationality, or System 1 and System 2 when speaking more broadly, are two modes of cognitive processing that all humans use when making decisions. System 1 is a type of thinking that involves faster, more holistic forms of processing that tend to use fewer mental resources, whereas System 2 tends to be slower, more deliberate, and more mentally taxing. Both System 1 and System 2 have been shown to be beneficial in a number of decision making contexts. Although it is clear that both System 1 and System 2 have their place in decision making, how and when to use each processing style in software architecture design decision making is a question that remains largely unanswered. Therefore, our research aims to fill this gap by: (i) determining what is actually known from published research regarding the use of System 1 and System 2 in software architecture design decision making, (ii) evaluating System 1 and System 2 empirically in terms of software architecture decision making performance, and: (iii) developing and validating a decision support model to support the use of System 1 alongside System 2 in software architecture design decision making.","PeriodicalId":239999,"journal":{"name":"2019 IEEE International Conference on Software Architecture Companion (ICSA-C)","volume":"137 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124342697","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":"A Machine Learning-Driven Approach for Proactive Decision Making in Adaptive Architectures","authors":"H. Muccini, Karthik Vaidhyanathan","doi":"10.1109/ICSA-C.2019.00050","DOIUrl":"https://doi.org/10.1109/ICSA-C.2019.00050","url":null,"abstract":"Self-adaptation is nowadays considered to be the best solution to dynamically reconfigure a system in the occurrence of deviations from the expected quality of service (QoS) parameters. However, data- and event-driven systems, such as IoT applications, impose new heterogeneity, interoperability, and distribution issues, that make uncertainty on the QoS stability even harder. Typical adaption techniques make use of reactive approaches, an after-the-fact adaptation that starts when the system deviates from the expected QoS parameters. What we envision is instead a proactive approach to anticipate the changes before the event of a QoS deviation. More specifically, we propose IoTArchML, a machine learning-driven approach for decision making in aiding proactive architectural adaptation of IoT system. The approach i) continuously monitors the QoS parameters; ii) predicts, based on historical data, possible deviations from the acceptable QoS parameters; iii) considers a list of possible alternative solutions to prevent the QoS deviation; iv) selects the optimal solution from the list; and v) checks whether the envisioned solution satisfies the overall system QoS requirements. We, therefore, move the focus from self-adaptive architectures to self-learning architectures, enabling the architectures to learn and improve over a period of time.","PeriodicalId":239999,"journal":{"name":"2019 IEEE International Conference on Software Architecture Companion (ICSA-C)","volume":"71 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129706154","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 Continuous Quality: Measuring and Evaluating Feature-Dependent Non-Functional Requirements in DevOps","authors":"Philipp Haindl, Reinhold Plösch","doi":"10.1109/ICSA-C.2019.00024","DOIUrl":"https://doi.org/10.1109/ICSA-C.2019.00024","url":null,"abstract":"Specifically in the context of continuous quality engineering it is vital that software quality models can be operationalized and seamlessly integrated in the toolchains of the projects. Also, to effectively direct engineering efforts in DevOps to ascertain the quality of the most frequently used features it is necessary to specify, measure and evaluate non-functional requirements on the level of individual software features. Current software quality models lack thorough operationalization and require human interventions such as collecting static and operational measures from the different systems or evaluating the fulfillment of feature-dependent non-functional requirements. In this paper we present our planned contribution to these challenges as an operationalizable quality model to measure, assess and evaluate feature-dependent software quality characteristics throughout common DevOps toolchains.","PeriodicalId":239999,"journal":{"name":"2019 IEEE International Conference on Software Architecture Companion (ICSA-C)","volume":"23 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121935519","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}
J. Lotz, Andreas Vogelsang, Ola Benderius, C. Berger
{"title":"Microservice Architectures for Advanced Driver Assistance Systems: A Case-Study","authors":"J. Lotz, Andreas Vogelsang, Ola Benderius, C. Berger","doi":"10.1109/ICSA-C.2019.00016","DOIUrl":"https://doi.org/10.1109/ICSA-C.2019.00016","url":null,"abstract":"The technological advancements of recent years have steadily increased the complexity of vehicle-internal software systems, and the ongoing development towards autonomous driving will further aggravate this situation. This is leading to a level of complexity that is pushing the limits of existing vehicle software architectures and system designs. By changing the software structure to a service-based architecture, companies in other domains successfully managed the rising complexity and created a more agile and future-oriented development process. This paper presents a case-study investigating the feasibility and possible effects of changing the software architecture for a complex driver assistance function to a microservice architecture. The complete procedure is described, starting with the description of the software-environment and the corresponding requirements, followed by the implementation, and the final testing. In addition, this paper provides a high-level evaluation of the microservice architecture for the automotive use-case. The results show that microservice architectures can reduce complexity and time-consuming process steps and make the automotive software systems prepared for upcoming challenges as long as the principles of microservice architectures are carefully followed.","PeriodicalId":239999,"journal":{"name":"2019 IEEE International Conference on Software Architecture Companion (ICSA-C)","volume":"41 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-02-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124787251","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}