Pub Date : 2020-03-01DOI: 10.1109/ICSA-C50368.2020.00053
Markus böbel, I. Gerostathopoulos, T. Bures
Software architecture practice relies more and more on data-driven decision-making. Data-driven decisions are taken either by humans or by software agents via analyzing streams of timeseries data coming from different running systems. Since the quality of sensed data influences the analysis and subsequent decision-making, detecting data anomalies is an important and necessary part of any data analysis and data intelligence pipeline (such as those typically found in smart and self-adaptive systems). Although a number of data science libraries exist for timeseries anomaly detection, it is both time consuming and hard to plug realtime anomaly detection functionality in existing pipelines. The problem lies with the boilerplate code that needs to be provided for common tasks such as data ingestion, data transformation and preprocessing, invoking of model re-training when needed, and persisting of identified anomalies so that they can be acted upon or further analysed. In response, we created a toolbox for realtime anomaly detection that automates the above common tasks and modularizes the anomaly detection process in a number of clearly defined components. This serves as a plug-in solution for architecting and development of smart systems that have to adapt their behavior at runtime. In this paper, we describe the microservice architecture used by our toolbox and explain how to deploy it for obtaining an out-of-the-box solution for realtime anomaly detection out of ready-to-use components. We also provide an initial assessment of its performance.
{"title":"A Toolbox for Realtime Timeseries Anomaly Detection","authors":"Markus böbel, I. Gerostathopoulos, T. Bures","doi":"10.1109/ICSA-C50368.2020.00053","DOIUrl":"https://doi.org/10.1109/ICSA-C50368.2020.00053","url":null,"abstract":"Software architecture practice relies more and more on data-driven decision-making. Data-driven decisions are taken either by humans or by software agents via analyzing streams of timeseries data coming from different running systems. Since the quality of sensed data influences the analysis and subsequent decision-making, detecting data anomalies is an important and necessary part of any data analysis and data intelligence pipeline (such as those typically found in smart and self-adaptive systems). Although a number of data science libraries exist for timeseries anomaly detection, it is both time consuming and hard to plug realtime anomaly detection functionality in existing pipelines. The problem lies with the boilerplate code that needs to be provided for common tasks such as data ingestion, data transformation and preprocessing, invoking of model re-training when needed, and persisting of identified anomalies so that they can be acted upon or further analysed. In response, we created a toolbox for realtime anomaly detection that automates the above common tasks and modularizes the anomaly detection process in a number of clearly defined components. This serves as a plug-in solution for architecting and development of smart systems that have to adapt their behavior at runtime. In this paper, we describe the microservice architecture used by our toolbox and explain how to deploy it for obtaining an out-of-the-box solution for realtime anomaly detection out of ready-to-use components. We also provide an initial assessment of its performance.","PeriodicalId":202587,"journal":{"name":"2020 IEEE International Conference on Software Architecture Companion (ICSA-C)","volume":"101 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124057085","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}
Pub Date : 2020-03-01DOI: 10.1109/ICSA-C50368.2020.00051
Emilia Cioroaica, Stanislav Chren, Barbora Buhnova, T. Kuhn, D. Dimitrov
Formation of digital ecosystems enables a multitude of actors like organisations, users and developers to achieve different goals in cooperations. The achievement of operational, tactical and strategic goals of involved actors relies on trustworthy cooperation of systems that operate in open environments and might meet for the first time at runtime. Thus the evaluation of a potential collaborator’s trustworthiness also needs to be performed at runtime.In this paper, we enhance our work on trust prediction in digital ecosystems, based on digital twins evaluation, with a supporting reference architecture that enables the creation of such a digital twin for automatic computation of trust.
{"title":"Reference Architecture for Trust-Based Digital Ecosystems","authors":"Emilia Cioroaica, Stanislav Chren, Barbora Buhnova, T. Kuhn, D. Dimitrov","doi":"10.1109/ICSA-C50368.2020.00051","DOIUrl":"https://doi.org/10.1109/ICSA-C50368.2020.00051","url":null,"abstract":"Formation of digital ecosystems enables a multitude of actors like organisations, users and developers to achieve different goals in cooperations. The achievement of operational, tactical and strategic goals of involved actors relies on trustworthy cooperation of systems that operate in open environments and might meet for the first time at runtime. Thus the evaluation of a potential collaborator’s trustworthiness also needs to be performed at runtime.In this paper, we enhance our work on trust prediction in digital ecosystems, based on digital twins evaluation, with a supporting reference architecture that enables the creation of such a digital twin for automatic computation of trust.","PeriodicalId":202587,"journal":{"name":"2020 IEEE International Conference on Software Architecture Companion (ICSA-C)","volume":"40 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126921216","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}
Pub Date : 2020-03-01DOI: 10.1109/ICSA-C50368.2020.00031
Pamella Soares de Sousa, Nataniel Parente Nogueira, R. Santos, P. Maia, J. Souza
The problem of lack of trust in data sharing between different parties can bureaucratize processes carried out by entities such as notary’s office. Blockchain technology can circumvent this problem by providing a distributed and unchanging base. By merging this technology with the microservice architecture, secure and robust systems can be created due to the independent deployments and development of microservices, thus easing the application maintenance and evolution. Considering the advantages in the combination of the mentioned technologies, the present work aims to propose an approach that allows the integration between notary’s offices and other institutions, ensuring security and celerity in the exchange of information between the parties. In this paper we report on our academic experience in the creation of the proposed approach, a pilot prototype, the development process and the tools used in the implementation, and the lessons learned.
{"title":"Building a prototype based on Microservices and Blockchain technologies for notary’s office: An academic experience report","authors":"Pamella Soares de Sousa, Nataniel Parente Nogueira, R. Santos, P. Maia, J. Souza","doi":"10.1109/ICSA-C50368.2020.00031","DOIUrl":"https://doi.org/10.1109/ICSA-C50368.2020.00031","url":null,"abstract":"The problem of lack of trust in data sharing between different parties can bureaucratize processes carried out by entities such as notary’s office. Blockchain technology can circumvent this problem by providing a distributed and unchanging base. By merging this technology with the microservice architecture, secure and robust systems can be created due to the independent deployments and development of microservices, thus easing the application maintenance and evolution. Considering the advantages in the combination of the mentioned technologies, the present work aims to propose an approach that allows the integration between notary’s offices and other institutions, ensuring security and celerity in the exchange of information between the parties. In this paper we report on our academic experience in the creation of the proposed approach, a pilot prototype, the development process and the tools used in the implementation, and the lessons learned.","PeriodicalId":202587,"journal":{"name":"2020 IEEE International Conference on Software Architecture Companion (ICSA-C)","volume":"40 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134447476","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}
Pub Date : 2020-03-01DOI: 10.1109/ICSA-C50368.2020.00039
Satya Sai Srinivas Abbabathula, Nataraj Kuntagod, R. Rote, Sanjay Podder
Rapid unplanned urbanization and unhealthy lifestyle habits are contributing to a significant increase in non-communicable diseases (NCD). As per WHO [1], almost three quarters of NCD deaths occur in low and middle-income countries. This problem is compounded due to lack of awareness and accessibility to affordable healthcare.In such countries, with physical infrastructure lagging and access to primary healthcare itself a challenge, a shift from treating illness to promoting and maintaining wellness through health enablers like outreach healthcare providers is emerging as a viable alternative. While the community health worker (CHW) model has shown to influence better health outcomes in rural areas, generating adequate financial incentives for CHWs to sustain the program is a challenge. In this paper, we explore the architecture of a digital system that can address the demand for quality primary healthcare by creating a new channel of technology-enabled healthcare micro-entrepreneurs who will act as the last mile connect between the hospitals and the citizens. We present the pilot results conducted with 45 health navigators at Channapatna, India.
{"title":"Last Mile Healthcare Through Micro-entrepreneurs","authors":"Satya Sai Srinivas Abbabathula, Nataraj Kuntagod, R. Rote, Sanjay Podder","doi":"10.1109/ICSA-C50368.2020.00039","DOIUrl":"https://doi.org/10.1109/ICSA-C50368.2020.00039","url":null,"abstract":"Rapid unplanned urbanization and unhealthy lifestyle habits are contributing to a significant increase in non-communicable diseases (NCD). As per WHO [1], almost three quarters of NCD deaths occur in low and middle-income countries. This problem is compounded due to lack of awareness and accessibility to affordable healthcare.In such countries, with physical infrastructure lagging and access to primary healthcare itself a challenge, a shift from treating illness to promoting and maintaining wellness through health enablers like outreach healthcare providers is emerging as a viable alternative. While the community health worker (CHW) model has shown to influence better health outcomes in rural areas, generating adequate financial incentives for CHWs to sustain the program is a challenge. In this paper, we explore the architecture of a digital system that can address the demand for quality primary healthcare by creating a new channel of technology-enabled healthcare micro-entrepreneurs who will act as the last mile connect between the hospitals and the citizens. We present the pilot results conducted with 45 health navigators at Channapatna, India.","PeriodicalId":202587,"journal":{"name":"2020 IEEE International Conference on Software Architecture Companion (ICSA-C)","volume":"86 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117290755","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}
Pub Date : 2020-03-01DOI: 10.1109/ICSA-C50368.2020.00021
Yegor Bugayenko
Class cohesion is a measure of the degree to which a class’s inner elements, like methods and attributes, are bound or related to one another. There have been over thirty different formulas proposed in order to calculate the metric. None of them are explicitly designed to deal with constructors in any different way than with regular methods—they simply treat them as identical entities. However, as many object-oriented theorists say, constructors play a very specific role in object life-cycle. In the scope of this empirical research, five different formulas were implemented in two ways: including constructors and excluding them. Then both set of formulas were applied to the same set of 1000 mid-size open source Java projects. The results obtained demonstrated how much of a distraction constructors were bringing into metric calculations.
{"title":"The Impact of Constructors on the Validity of Class Cohesion Metrics","authors":"Yegor Bugayenko","doi":"10.1109/ICSA-C50368.2020.00021","DOIUrl":"https://doi.org/10.1109/ICSA-C50368.2020.00021","url":null,"abstract":"Class cohesion is a measure of the degree to which a class’s inner elements, like methods and attributes, are bound or related to one another. There have been over thirty different formulas proposed in order to calculate the metric. None of them are explicitly designed to deal with constructors in any different way than with regular methods—they simply treat them as identical entities. However, as many object-oriented theorists say, constructors play a very specific role in object life-cycle. In the scope of this empirical research, five different formulas were implemented in two ways: including constructors and excluding them. Then both set of formulas were applied to the same set of 1000 mid-size open source Java projects. The results obtained demonstrated how much of a distraction constructors were bringing into metric calculations.","PeriodicalId":202587,"journal":{"name":"2020 IEEE International Conference on Software Architecture Companion (ICSA-C)","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134104340","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}
Pub Date : 2020-03-01DOI: 10.1109/ICSA-C50368.2020.00023
T. Rosa, A. Goldman, E. Guerra
Microservice is an architectural style that proposes that a complex system should be developed from small and independent services that work together. There is not a welldefined boundary about when a software architecture can be considered based on microservices or not. Because of that, defining microservices context and infrastructure is challenging, especially to characterize aspects related to microservice size, data consistency, and microservices coupling. Thus, it is crucial to understand the microservices-based software characteristics, to comprehend the impact of some evolutions on architecture, and evaluate how much a particular architecture fits the microservices architectural style. Therefore, based on bibliographic research and case studies conducted in academical and industrial environments, we aim to propose a model to characterize the architecture structure based on the main guidelines of the microservice architectural style. This model introduces dimensions that measure characteristics based on modules size, coupling to data sources, and service collaboration. This study should facilitate the mapping, measurement, and monitoring of different impacts generated in the software architecture from increments and refactoring performed. This work is on the initial development stage and as a result, we expected that the model supports architectural decisions that consider different quality attributes to achieve the right balance between service independence and collaboration for a given system.
{"title":"How ‘micro’ are your services?","authors":"T. Rosa, A. Goldman, E. Guerra","doi":"10.1109/ICSA-C50368.2020.00023","DOIUrl":"https://doi.org/10.1109/ICSA-C50368.2020.00023","url":null,"abstract":"Microservice is an architectural style that proposes that a complex system should be developed from small and independent services that work together. There is not a welldefined boundary about when a software architecture can be considered based on microservices or not. Because of that, defining microservices context and infrastructure is challenging, especially to characterize aspects related to microservice size, data consistency, and microservices coupling. Thus, it is crucial to understand the microservices-based software characteristics, to comprehend the impact of some evolutions on architecture, and evaluate how much a particular architecture fits the microservices architectural style. Therefore, based on bibliographic research and case studies conducted in academical and industrial environments, we aim to propose a model to characterize the architecture structure based on the main guidelines of the microservice architectural style. This model introduces dimensions that measure characteristics based on modules size, coupling to data sources, and service collaboration. This study should facilitate the mapping, measurement, and monitoring of different impacts generated in the software architecture from increments and refactoring performed. This work is on the initial development stage and as a result, we expected that the model supports architectural decisions that consider different quality attributes to achieve the right balance between service independence and collaboration for a given system.","PeriodicalId":202587,"journal":{"name":"2020 IEEE International Conference on Software Architecture Companion (ICSA-C)","volume":"40 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116287630","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}
Pub Date : 2020-03-01DOI: 10.1109/ICSA-C50368.2020.00049
Gastón Márquez, Yoslandy Lazo, H. Astudillo
Microservices is an architectural style that promotes the facility to build and maintain systems by breaking down its business capabilities into smaller and distributed services. Often, practitioners commonly use frameworks to provide generic functionalities to address recurring quality attribute concerns on microservices-based systems. Nevertheless, in practical settings, frameworks information is incomplete, imprecise, and changing as well as requirements. More realistically deployable approaches combine the exploration of candidate architectures with their evaluation regarding requirements satisfaction and the fuzziness and incompleteness available frameworks information. This article outlines a novel technique, called $mu$Azimut, whose purpose is to generate, evaluate, and compare frameworks assemblies using potentially incomplete, imprecise, and changing descriptions of non-functional requirements and frameworks. The frameworks assemblies evaluation is based on a support score which allows modeling imperfect architectural knowledge. The technique is evaluated in an industrial case study. The results point out that $mu$Azimut generates solutions that are close to those solutions that an architect selects for designing microservices architectures.
{"title":"Evaluating Frameworks Assemblies In Microservices-based Systems Using Imperfect Information","authors":"Gastón Márquez, Yoslandy Lazo, H. Astudillo","doi":"10.1109/ICSA-C50368.2020.00049","DOIUrl":"https://doi.org/10.1109/ICSA-C50368.2020.00049","url":null,"abstract":"Microservices is an architectural style that promotes the facility to build and maintain systems by breaking down its business capabilities into smaller and distributed services. Often, practitioners commonly use frameworks to provide generic functionalities to address recurring quality attribute concerns on microservices-based systems. Nevertheless, in practical settings, frameworks information is incomplete, imprecise, and changing as well as requirements. More realistically deployable approaches combine the exploration of candidate architectures with their evaluation regarding requirements satisfaction and the fuzziness and incompleteness available frameworks information. This article outlines a novel technique, called $mu$Azimut, whose purpose is to generate, evaluate, and compare frameworks assemblies using potentially incomplete, imprecise, and changing descriptions of non-functional requirements and frameworks. The frameworks assemblies evaluation is based on a support score which allows modeling imperfect architectural knowledge. The technique is evaluated in an industrial case study. The results point out that $mu$Azimut generates solutions that are close to those solutions that an architect selects for designing microservices architectures.","PeriodicalId":202587,"journal":{"name":"2020 IEEE International Conference on Software Architecture Companion (ICSA-C)","volume":"177 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131720327","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}
Pub Date : 2020-03-01DOI: 10.1109/ICSA-C50368.2020.00040
Tuomas Granlund, T. Mikkonen, Vlad Stirbu
Manufacturing of medical devices is strictly controlled by authorities, and manufacturers must conform to the regulatory requirements of the region in which a medical device is being marketed for use. In general, these requirements make no difference between the physical device, embedded software running inside a physical device. or software that constitutes the device in itself. As a result, standalone software with intended medical use is considered to be a medical device. Consequently, its development must meet the same requirements as the physical medical device manufacturing. This practice creates a unique challenge for organizations developing medical software. In this paper, we pinpoint a number of regulatory requirement mismatches between physical medical devices and standalone medical device software. The view is based on experiences from industry, from the development of all-software medical devices as well as from defining the manufacturing process so that it meets the regulatory requirements.
{"title":"On Medical Device Software CE Compliance and Conformity Assessment","authors":"Tuomas Granlund, T. Mikkonen, Vlad Stirbu","doi":"10.1109/ICSA-C50368.2020.00040","DOIUrl":"https://doi.org/10.1109/ICSA-C50368.2020.00040","url":null,"abstract":"Manufacturing of medical devices is strictly controlled by authorities, and manufacturers must conform to the regulatory requirements of the region in which a medical device is being marketed for use. In general, these requirements make no difference between the physical device, embedded software running inside a physical device. or software that constitutes the device in itself. As a result, standalone software with intended medical use is considered to be a medical device. Consequently, its development must meet the same requirements as the physical medical device manufacturing. This practice creates a unique challenge for organizations developing medical software. In this paper, we pinpoint a number of regulatory requirement mismatches between physical medical devices and standalone medical device software. The view is based on experiences from industry, from the development of all-software medical devices as well as from defining the manufacturing process so that it meets the regulatory requirements.","PeriodicalId":202587,"journal":{"name":"2020 IEEE International Conference on Software Architecture Companion (ICSA-C)","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127465877","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}
Pub Date : 2020-03-01DOI: 10.1109/ICSA-C50368.2020.00024
Nacha Chondamrongkul, Jing Sun, I. Warren
Designing a software system that applied the microservice architecture style is a challenging task, as its characteristics are vulnerable to various security attacks. Software architect, therefore, needs to pinpoint the security flaws in the design before the implementation can proceed. This task is error-prone as it requires manual analysis on the design model, to identify security threats and trace possible attack scenarios. This paper presents an automated security analysis approach for microservice architecture. Our approach can automatically identify security threats according to a collection of formally defined security characteristics and provide an insightful result that demonstrates how the attack scenarios may happen. A collection of formally defined security characteristics can be extended to support other security characteristics not addressed in this paper.
{"title":"Automated Security Analysis for Microservice Architecture","authors":"Nacha Chondamrongkul, Jing Sun, I. Warren","doi":"10.1109/ICSA-C50368.2020.00024","DOIUrl":"https://doi.org/10.1109/ICSA-C50368.2020.00024","url":null,"abstract":"Designing a software system that applied the microservice architecture style is a challenging task, as its characteristics are vulnerable to various security attacks. Software architect, therefore, needs to pinpoint the security flaws in the design before the implementation can proceed. This task is error-prone as it requires manual analysis on the design model, to identify security threats and trace possible attack scenarios. This paper presents an automated security analysis approach for microservice architecture. Our approach can automatically identify security threats according to a collection of formally defined security characteristics and provide an insightful result that demonstrates how the attack scenarios may happen. A collection of formally defined security characteristics can be extended to support other security characteristics not addressed in this paper.","PeriodicalId":202587,"journal":{"name":"2020 IEEE International Conference on Software Architecture Companion (ICSA-C)","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121071565","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}