Pascal Zaragoza, A. Seriai, Abderrahmane Seriai, Anas Shatnawi, Mustapha Derras
{"title":"Leveraging the Layered Architecture for Microservice Recovery","authors":"Pascal Zaragoza, A. Seriai, Abderrahmane Seriai, Anas Shatnawi, Mustapha Derras","doi":"10.1109/ICSA53651.2022.00021","DOIUrl":"https://doi.org/10.1109/ICSA53651.2022.00021","url":null,"abstract":"The microservice-oriented architecture (MSA) is an architectural style which involves organizing an application as of small independent services, each oriented towards one business functionality while being data autonomous. In pursuit of modernizing their software to take advantage of the Cloud, companies have been eager to migrate their monolithic legacy software towards an MSA. This migration necessitates an identification phase to reorganize classes around the monolith’s functionalities as a set of microservice candidates. However, most identification approaches fail to utilize the monolith’s internal multilayered architecture to identify those functionalities, and thus the microservices. As a consequence, ignoring the internal multilayered architecture increases the risk of identifying microservice by their technical layer which is recognized as a conceptual anti-pattern. In this paper, we explore the impact of the multi-layer architecture in monolithic applications during the identification to develop a semi-automatic approach that relies on it to identify an MSA. Particularly, we analyze the presentation layer to determine the endpoints of each business functionality of the monolith. From these endpoints, we apply a vertical decomposition to identify the necessary classes to implement each feature as a microservice. In the process, we also define the bounded context of each microservice during the vertical decomposition of the data-access layer. For the evaluation, we implemented a model-driven process and applied it on a set of varying open-source applications commonly used in the literature. We compared the results of approach with and without the reverse-engineering of the internal architecture to measure the impact of our approach on the identification of quality microservices. Using decomposition metrics (e.g., MoJoFM, c2ccvg), we were able to measure a significant positive impact.","PeriodicalId":179123,"journal":{"name":"2022 IEEE 19th International Conference on Software Architecture (ICSA)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130246251","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":"Architectural Design Decisions for Machine Learning Deployment","authors":"S. Warnett, Uwe Zdun","doi":"10.1109/ICSA53651.2022.00017","DOIUrl":"https://doi.org/10.1109/ICSA53651.2022.00017","url":null,"abstract":"Deploying machine learning models to production is challenging, partially due to the misalignment between software engineering and machine learning disciplines but also due to potential practitioner knowledge gaps. To reduce this gap and guide decision-making, we conducted a qualitative investigation into the technical challenges faced by practitioners based on studying the grey literature and applying the Straussian Grounded Theory research method. We modelled current practices in machine learning, resulting in a UML-based architectural design decision model based on current practitioner understanding of the domain and a subset of the decision space and identified seven architectural design decisions, various relations between them, twenty-six decision options and forty-four decision drivers in thirty-five sources. Our results intend to help bridge the gap between science and practice, increase understanding of how practitioners approach deployment of their solutions, and support practitioners in their decision-making.","PeriodicalId":179123,"journal":{"name":"2022 IEEE 19th International Conference on Software Architecture (ICSA)","volume":"118 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129501643","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}
C. Timperley, Tobias Dürschmid, B. Schmerl, D. Garlan, Claire Le Goues
{"title":"ROSDiscover: Statically Detecting Run-Time Architecture Misconfigurations in Robotics Systems","authors":"C. Timperley, Tobias Dürschmid, B. Schmerl, D. Garlan, Claire Le Goues","doi":"10.1109/ICSA53651.2022.00019","DOIUrl":"https://doi.org/10.1109/ICSA53651.2022.00019","url":null,"abstract":"Robot systems are growing in importance and complexity. Ecosystems for robot software, such as the Robot Operating System (ROS), provide libraries of reusable software components that can be configured and composed into larger systems. To support compositionality, ROS uses late binding and architecture configuration via “launch files” that describe how to initialize the components in a system. However, late binding often leads to systems failing silently due to misconfiguration, for example by misrouting or dropping messages entirely.In this paper we present ROSDiscover, which statically recovers the run-time architecture of ROS systems to find such architecture misconfiguration bugs. First, ROSDiscover constructs component level architectural models (ports, parameters) from source code. Second, architecture configuration files are analyzed to compose the system from these component models and derive the connections in the system. Finally, the reconstructed architecture is checked against architectural rules described in first-order logic to identify potential misconfigurations.We present an evaluation of ROSDiscover on real world, off-the-shelf robotic systems, measuring the accuracy, effectiveness, and practicality of our approach. To that end, we collected the first data set of architecture configuration bugs in ROS from popular open-source systems and measure how effective our approach is for detecting configuration bugs in that set.","PeriodicalId":179123,"journal":{"name":"2022 IEEE 19th International Conference on Software Architecture (ICSA)","volume":"77 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127940353","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}
Michel Muszynski, Sven Lugtigheid, F. C. Filho, S. Brinkkemper
{"title":"A Study on the Software Architecture Documentation Practices and Maturity in Open-Source Software Development","authors":"Michel Muszynski, Sven Lugtigheid, F. C. Filho, S. Brinkkemper","doi":"10.1109/ICSA53651.2022.00013","DOIUrl":"https://doi.org/10.1109/ICSA53651.2022.00013","url":null,"abstract":"The best practices in the industry for Software Architecture (SA) documentation are not always followed, despite it being known that SA documentation can positively influence different aspects of software development. Open-Source Software (OSS) projects often operate in a different manner compared to proprietary software projects. This study investigates contemporary SA documentation practices in OSS projects to gain insights into: (1) what architectural elements are described, (2) what the different description formats and types are, and (3) what the maturity of the architecture description is. The SA description documentation of six OSS projects is identified, classified, and evaluated: VLC, OpenEHR, openKM, GIMP, Audacity, and Home Assistant. The results show that natural language is widely used in describing the architecture, sometimes accompanied by diagrams of informal models. The majority of documentation was found on websites and wikis. The maturity was evaluated by applying the Architectural Capability Model (ArchCaMo). Out of the five maturity levels, most projects did not get past the first level. Only one project reached the second level, and one project showed potential for level three as it was the only project with explicitly documented SA design decisions.","PeriodicalId":179123,"journal":{"name":"2022 IEEE 19th International Conference on Software Architecture (ICSA)","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123676266","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":"Tool-Assisted Componentization of Java Applications","authors":"Mahmoud M. Hammad, Ibrahim Abueisa, S. Malek","doi":"10.1109/ICSA53651.2022.00012","DOIUrl":"https://doi.org/10.1109/ICSA53651.2022.00012","url":null,"abstract":"Many popular object-oriented (OO) programming languages, such as Java, do not provide explicit support for architecture-based development, i.e., do not provide programming-language constructs that are at the granularity of architectural constructs, such as components and ports. The gap between how engineers design their systems and how they implement them has been one of the leading causes of architectural drift—a situation in which the prescriptive architecture (the designed architecture) does not match the descriptive architecture (the implemented architecture). To mitigate this challenge, in its ninth iteration, Java introduced the concept of Java Platform Module System (JPMS), which for the first time provides explicit implementation-level support for well-known architectural constructs, such as components (called modules) and ports (called module directives). Despite this, the majority of existing Java applications (apps) are still purely OO programs that do not make use of the new constructs, because converting them to well-structured component-based (CB) programs is a tedious and error-prone task. In fact, prior research has shown that when engineers convert OO apps to CB apps, they tend to be highly over-privileged, i.e., components are granted more access privileges than they actually need. To mitigate these challenges, we have developed OO2CB, an approach for conversion of an OO Java app to a least-privilege CB Java app. OO2CB employs component recovery techniques to assist the developer in determining a given OO app’s components. It then statically analyzes the source code of the app to determine the dependencies among its recovered components and the required port types for facilitating their interaction. Finally, OO2CB generates a functionally equivalent CB app that satisfies the least-privilege security principle. Our experiments on several large real-world OO Java apps corroborate the effectiveness of OO2CB.","PeriodicalId":179123,"journal":{"name":"2022 IEEE 19th International Conference on Software Architecture (ICSA)","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126448120","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. Konersmann, Angelika Kaplan, Thomas Kühn, R. Heinrich, A. Koziolek, R. Reussner, J. Jürjens, Mahmood S. Al-Doori, Nicolas Boltz, Marco Ehl, Dominik Fuchß, Katharina Groser, Sebastian Hahner, Jan Keim, Matthias Lohr, Timur Saglam, Sophie Schulz, Jan-Philipp Töberg
{"title":"Evaluation Methods and Replicability of Software Architecture Research Objects","authors":"M. Konersmann, Angelika Kaplan, Thomas Kühn, R. Heinrich, A. Koziolek, R. Reussner, J. Jürjens, Mahmood S. Al-Doori, Nicolas Boltz, Marco Ehl, Dominik Fuchß, Katharina Groser, Sebastian Hahner, Jan Keim, Matthias Lohr, Timur Saglam, Sophie Schulz, Jan-Philipp Töberg","doi":"10.1109/ICSA53651.2022.00023","DOIUrl":"https://doi.org/10.1109/ICSA53651.2022.00023","url":null,"abstract":"Context: Software architecture (SA) as research area experienced an increase in empirical research, as identified by Galster and Weyns in 2016 [1]. Empirical research builds a sound foundation for the validity and comparability of the research. A current overview on the evaluation and replicability of SA research objects could help to discuss our empirical standards as a community. However, no such current overview exists.Objective: We aim at assessing the current state of practice of evaluating SA research objects and replication artifact provision in full technical conference papers from 2017 to 2021.Method: We first create a categorization of papers regarding their evaluation and provision of replication artifacts. In a systematic literature review (SLR) with 153 papers we then investigate how SA research objects are evaluated and how artifacts are made available.Results: We found that technical experiments (28%) and case studies (29%) are the most frequently used evaluation methods over all research objects. Functional suitability (46% of evaluated properties) and performance (29%) are the most evaluated properties. 17 papers (11%) provide replication packages and 97 papers (63%) explicitly state threats to validity. 17% of papers reference guidelines for evaluations and 14% of papers reference guidelines for threats to validity.Conclusions: Our results indicate that the generalizability and repeatability of evaluations could be improved to enhance the maturity of the field; although, there are valid reasons for contributions to not publish their data. We derive from our findings a set of four proposals for improving the state of practice in evaluating software architecture research objects. Researchers can use our results to find recommendations on relevant properties to evaluate and evaluation methods to use and to identify reusable evaluation artifacts to compare their novel ideas with other research. Reviewers can use our results to compare the evaluation and replicability of submissions with the state of the practice.","PeriodicalId":179123,"journal":{"name":"2022 IEEE 19th International Conference on Software Architecture (ICSA)","volume":"128 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121537884","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":"Architectural Refactoring for Functional Properties in Evolutionary Architecture","authors":"Nacha Chondamrongkul, Jing Sun","doi":"10.1109/ICSA53651.2022.00022","DOIUrl":"https://doi.org/10.1109/ICSA53651.2022.00022","url":null,"abstract":"The evolutionary architecture supports software systems to make small functional changes frequently and reliably. With fitness functions defined, we can ensure that the architectural goals are met as the system evolves. However, some functionality changes cause architectural changes, which impact a large part of the software system. Therefore, we aim at ensuring that changes in the architectural design do not impact the existing functionalities, while new functionalities are incorporated into the new design. This paper proposes an approach to automate architectural design refactoring that supports changes in functionalities. Our approach applies formal modeling and verification to refactor and verify the evolution process of software systems. The proposed algorithms help to automatically refactor the design by referencing the given architecture design. With our appproach, the evolution process can be planned and formally verified to guarantee that the system can evolve safely to support functionality changes. We evaluated our approach with four real-world systems. The results show the effectiveness of our refactoring approach to support new functional properties.","PeriodicalId":179123,"journal":{"name":"2022 IEEE 19th International Conference on Software Architecture (ICSA)","volume":"129 12","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133877640","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":"Effort Estimation for Architectural Refactoring of Data Tier Software","authors":"Ersin Ersoy, Hasan Sözer","doi":"10.1109/ICSA53651.2022.00016","DOIUrl":"https://doi.org/10.1109/ICSA53651.2022.00016","url":null,"abstract":"Architectural refactoring requires substantial effort. We introduce an approach and a tool to predict this effort prior to refactoring. We focus on PL/SQL programs that are developed as data access tiers of business software. There are two types of common refactoring needs for these programs. First, some of the modules might need to be migrated to a separate database. Second, some of the modules in the data tier might need to be migrated to the application tier. In both cases, the refactoring effort is proportional to the amount of coupling between the migrated modules and the rest of the modules in the database. Our tool can parse PL/SQL programs to reveal this coupling based on an analysis of SQL queries. Unlike prior studies, our tool can analyze queries that are created dynamically and that use multiple tables as well as PL/SQL-specific features. We evaluate our approach with an industrial PL/SQL program from the telecommunications domain. Our results are approved to be accurate by domain experts.","PeriodicalId":179123,"journal":{"name":"2022 IEEE 19th International Conference on Software Architecture (ICSA)","volume":"32 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130724166","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}