The Experts below are selected from a list of 1962 Experts worldwide ranked by ideXlab platform
Mojtaba Shahin - One of the best experts on this subject based on the ideXlab platform.
-
An empirical study of Architecting for continuous delivery and deployment
Empirical Software Engineering, 2019Co-Authors: Mojtaba Shahin, Mansooreh Zahedi, Muhammad Ali Babar, Liming ZhuAbstract:Recently, many software organizations have been adopting Continuous Delivery and Continuous Deployment (CD) practices to develop and deliver quality software more frequently and reliably. Whilst an increasing amount of the literature covers different aspects of CD, little is known about the role of software architecture in CD and how an application should be (re-) architected to enable and support CD. We have conducted a mixed-methods empirical study that collected data through in-depth, semi-structured interviews with 21 industrial practitioners from 19 organizations, and a survey of 91 professional software practitioners. Based on a systematic and rigorous analysis of the gathered qualitative and quantitative data, we present a conceptual framework to support the Process of (re-) Architecting for CD. We provide evidence-based insights about practicing CD within monolithic systems and characterize the principle of “small and independent deployment units ” as an alternative to the monoliths. Our framework supplements the Architecting Process in a CD context through introducing the quality attributes (e.g., resilience) that require more attention and demonstrating the strategies (e.g., prioritizing operations concerns) to design operations-friendly architectures. We discuss the key insights (e.g., monoliths and CD are not intrinsically oxymoronic) gained from our study and draw implications for research and practice.
-
the intersection of continuous deployment and Architecting Process practitioners perspectives
Empirical Software Engineering and Measurement, 2016Co-Authors: Mojtaba Shahin, Muhammad Ali Babar, Liming ZhuAbstract:Context: Development and Operations (DevOps) is an emerging software industry movement to bridge the gap between software development and operations teams. DevOps supports frequently and reliably releasing new features and products-- thus subsuming Continuous Deployment (CD) practice. Goal: This research aims at empirically exploring the potential impact of CD practice on Architecting Process. Method: We carried out a case study involving interviews with 16 software practitioners. Results: We have identified (1) a range of recurring architectural challenges (i.e., highly coupled monolithic architecture, team dependencies, and ever-changing operational environments and tools) and (2) five main architectural principles (i.e., small and independent deployment units, not too much focus on reusability, aggregating logs, isolating changes, and testability inside the architecture) that should be considered when an application is (re-) architected for CD practice. This study also supports that software architecture can better support operations if an operations team is engaged at an early stage of software development for taking operational aspects into considerations. Conclusion: These findings provide evidence that software architecture plays a significant role in successfully and efficiently adopting continuous deployment. The findings contribute to establish an evidential body of knowledge about the state of the art of Architecting for CD practice
-
a systematic review of software architecture visualization techniques
Journal of Systems and Software, 2014Co-Authors: Mojtaba Shahin, Peng Liang, Muhammad Ali BabarAbstract:Abstract Context Given the increased interest in using visualization techniques (VTs) to help communicate and understand software architecture (SA) of large scale complex systems, several VTs and tools have been reported to represent architectural elements (such as architecture design, architectural patterns, and architectural design decisions). However, there is no attempt to systematically review and classify the VTs and associated tools reported for SA, and how they have been assessed and applied. Objective This work aimed at systematically reviewing the literature on software architecture visualization to develop a classification of VTs in SA, analyze the level of reported evidence and the use of different VTs for representing SA in different application domains, and identify the gaps for future research in the area. Method We used systematic literature review (SLR) method of the evidence-based software engineering (EBSE) for reviewing the literature on VTs for SA. We used both manual and automatic search strategies for searching the relevant papers published between 1 February 1999 and 1 July 2011. Results We selected 53 papers from the initially retrieved 23,056 articles for data extraction, analysis, and synthesis based on pre-defined inclusion and exclusion criteria. The results from the data analysis enabled us to classify the identified VTs into four types based on the usage popularity: graph-based, notation-based, matrix-based, and metaphor-based VTs. The VTs in SA are mostly used for architecture recovery and architectural evolution activities. We have also identified ten purposes of using VTs in SA. Our results also revealed that VTs in SA have been applied to a wide range of application domains, among which “graphics software” and “distributed system” have received the most attention. Conclusion SA visualization has gained significant importance in understanding and evolving software-intensive systems. However, only a few VTs have been employed in industrial practice. This review has enabled us to identify the following areas for further research and improvement: (i) it is necessary to perform more research on applying visualization techniques in architectural analysis, architectural synthesis, architectural implementation, and architecture reuse activities; (ii) it is essential to pay more attention to use more objective evaluation methods (e.g., controlled experiment) for providing more convincing evidence to support the promised benefits of using VTs in SA; (iii) it is important to conduct industrial surveys for investigating how software architecture practitioners actually employ VTs in Architecting Process and what are the issues that hinder and prevent them from adopting VTs in SA.
-
architectural design decision visualization for architecture design preliminary results of a controlled experiment
European Conference on Software Architecture, 2011Co-Authors: Mojtaba Shahin, Peng LiangAbstract:Visualization of architectural design decision (ADD) and its rationale, as a kind of traceability information, is supposed to facilitate the understanding of architecture design and the reasoning behind the design rationale, which is supposed to improve the Architecting Process and gets better architecture design results. But the lack of empirical evaluation that supports this statement prevents industrial practitioners from using ADD visualization in their daily Architecting activities. In this paper, we conducted a controlled experiment to investigate how visualization of ADD can improve the understanding of architecture design by using Compendium, an open source tool for rationale visualization. The preliminary results show that visualization of ADD and its rationale does not increase the total time for reading architecture document (including visualization diagrams of ADDs) plus designing task, and it improves the understanding of architects on existing architecture design with better new design results.
-
improving understandability of architecture design through visualization of architectural design decision
Sharing and Reusing Architectural Knowledge, 2010Co-Authors: Mojtaba Shahin, Peng Liang, Mohammad Reza KhayyambashiAbstract:Concentrating on components and connectors in traditional approaches to document software architecture causes the problems, such as high costs for architecture change and erode during architecture evolution. These problems result in a tendency to record architectural design decisions and their rationale made throughout Architecting Process. This tendency encourages practitioners and researchers to develop various models and related tools to model, capture, manage, share, and (re)use architectural design decisions. But there still remains a need to visualize and explore architectural design decisions due to the huge number of decisions and relationships among them in large and complex systems development. In this paper, we first make a survey on tools that support visualization of architectural design decisions, their features and deficiencies. Second we investigate how Compendium tool can be employed as a general tool to visualize architectural design decisions and their rationale. Last we present how the visualization by Compendium can improve the understandability and support the communication of architectural design in Architecting Process.
Peng Liang - One of the best experts on this subject based on the ideXlab platform.
-
CHAPTER 9Architectural Debt Management inValue-Oriented Architecting
2016Co-Authors: Peng Liang, Paris AvgeriouAbstract:In the field of software architecture (SA), there has been a paradigm shift from describing the out-come of the Architecting Process to documenting architectural knowledge (AK), such as architecture decisions and rationale, which are considered as first-class entities of a software architecture (ISO/ IEC/IEEE, 2011). Architecture decisions often involve trade-offs made between a number o
-
architecture viewpoints for documenting architectural technical debt
Software Quality Assurance: In Large Scale and Complex Software-intensive Systems, 2016Co-Authors: Peng Liang, Paris AvgeriouAbstract:Abstract Technical debt (TD) has attracted an increasing interest from researchers and practitioners in the software engineering domain. Currently, most approaches to managing TD focus on dealing with TD at source code level, while few methods deal with TD at architecture level. If architectural technical debt (ATD) is not effectively managed in the Architecting Process, the knowledge about ATD is not made available to involved stakeholders and the impact of ATD is not considered during architecture decision-making. Thus, the system’s maintainability and evolvability can be intentionally or unintentionally compromised. As a result, architectures are costly to maintain and new features are difficult to introduce. To facilitate the management of ATD, it needs to be documented so that it becomes explicit to stakeholders. To this end, we propose a set of architecture viewpoints related to ATD (ATD viewpoints in short). Each viewpoint frames a number of concerns related to ATD. These ATD viewpoints together help to get a comprehensive understanding of ATD in a software system, thereby providing support for architecture decision-making. To evaluate the effectiveness of the ATD viewpoints in documenting ATD, we conducted a case study in a large telecommunications company. The results of this case study show that the documented ATD views can effectively facilitate the documentation of ATD. Specifically, the ATD viewpoints are relatively easy to understand; it takes an acceptable amount of effort to document ATD using the ATD viewpoints; and the documented ATD views are useful for stakeholders to understand the ATD in the software project.
-
a systematic review of software architecture visualization techniques
Journal of Systems and Software, 2014Co-Authors: Mojtaba Shahin, Peng Liang, Muhammad Ali BabarAbstract:Abstract Context Given the increased interest in using visualization techniques (VTs) to help communicate and understand software architecture (SA) of large scale complex systems, several VTs and tools have been reported to represent architectural elements (such as architecture design, architectural patterns, and architectural design decisions). However, there is no attempt to systematically review and classify the VTs and associated tools reported for SA, and how they have been assessed and applied. Objective This work aimed at systematically reviewing the literature on software architecture visualization to develop a classification of VTs in SA, analyze the level of reported evidence and the use of different VTs for representing SA in different application domains, and identify the gaps for future research in the area. Method We used systematic literature review (SLR) method of the evidence-based software engineering (EBSE) for reviewing the literature on VTs for SA. We used both manual and automatic search strategies for searching the relevant papers published between 1 February 1999 and 1 July 2011. Results We selected 53 papers from the initially retrieved 23,056 articles for data extraction, analysis, and synthesis based on pre-defined inclusion and exclusion criteria. The results from the data analysis enabled us to classify the identified VTs into four types based on the usage popularity: graph-based, notation-based, matrix-based, and metaphor-based VTs. The VTs in SA are mostly used for architecture recovery and architectural evolution activities. We have also identified ten purposes of using VTs in SA. Our results also revealed that VTs in SA have been applied to a wide range of application domains, among which “graphics software” and “distributed system” have received the most attention. Conclusion SA visualization has gained significant importance in understanding and evolving software-intensive systems. However, only a few VTs have been employed in industrial practice. This review has enabled us to identify the following areas for further research and improvement: (i) it is necessary to perform more research on applying visualization techniques in architectural analysis, architectural synthesis, architectural implementation, and architecture reuse activities; (ii) it is essential to pay more attention to use more objective evaluation methods (e.g., controlled experiment) for providing more convincing evidence to support the promised benefits of using VTs in SA; (iii) it is important to conduct industrial surveys for investigating how software architecture practitioners actually employ VTs in Architecting Process and what are the issues that hinder and prevent them from adopting VTs in SA.
-
architectural debt management in value oriented Architecting
Economics-Driven Software Architecture, 2014Co-Authors: Peng Liang, Paris AvgeriouAbstract:Architectural technical debt (ATD) may be incurred when making architecture decisions. In most cases, ATD is not effectively managed in the Architecting Process: It is not made explicit, and architecture decision making does not consider the ATD incurred by the different design options. This chapter proposes a conceptual model of ATD and an architectural technical debt management Process applying this ATD conceptual model in order to facilitate decision making in a value-oriented perspective of Architecting. We also demonstrate how ATD management can be employed in architectural synthesis and evaluation in a case study. The contribution of this work provides a controllable and predictable balance between the value and cost of architecture design in the long term.
-
architectural design decision visualization for architecture design preliminary results of a controlled experiment
European Conference on Software Architecture, 2011Co-Authors: Mojtaba Shahin, Peng LiangAbstract:Visualization of architectural design decision (ADD) and its rationale, as a kind of traceability information, is supposed to facilitate the understanding of architecture design and the reasoning behind the design rationale, which is supposed to improve the Architecting Process and gets better architecture design results. But the lack of empirical evaluation that supports this statement prevents industrial practitioners from using ADD visualization in their daily Architecting activities. In this paper, we conducted a controlled experiment to investigate how visualization of ADD can improve the understanding of architecture design by using Compendium, an open source tool for rationale visualization. The preliminary results show that visualization of ADD and its rationale does not increase the total time for reading architecture document (including visualization diagrams of ADDs) plus designing task, and it improves the understanding of architects on existing architecture design with better new design results.
S Manolis - One of the best experts on this subject based on the ideXlab platform.
-
developing an architecture for the software subsystem of a learning technology system an engineering approach
International Conference on Advanced Learning Technologies, 2001Co-Authors: A Paris, R Simos, P Andreas, S ManolisAbstract:There exists an urgent demand on defining architectures for learning technology systems (LTS), so that high-level frameworks for understanding these systems can be discovered, portability, interoperability and reusability can be achieved and adaptability over time can be accomplished. The authors propose an Architecting Process for only the software subsystem of an LTS. We base our work upon the LTSA working standard of IEEE LTSC, which serves as a business model and on the practices of a well-established software engineering Process. Special emphasis is granted on imposing a component based nature on the produced architecture.
Liming Zhu - One of the best experts on this subject based on the ideXlab platform.
-
An empirical study of Architecting for continuous delivery and deployment
Empirical Software Engineering, 2019Co-Authors: Mojtaba Shahin, Mansooreh Zahedi, Muhammad Ali Babar, Liming ZhuAbstract:Recently, many software organizations have been adopting Continuous Delivery and Continuous Deployment (CD) practices to develop and deliver quality software more frequently and reliably. Whilst an increasing amount of the literature covers different aspects of CD, little is known about the role of software architecture in CD and how an application should be (re-) architected to enable and support CD. We have conducted a mixed-methods empirical study that collected data through in-depth, semi-structured interviews with 21 industrial practitioners from 19 organizations, and a survey of 91 professional software practitioners. Based on a systematic and rigorous analysis of the gathered qualitative and quantitative data, we present a conceptual framework to support the Process of (re-) Architecting for CD. We provide evidence-based insights about practicing CD within monolithic systems and characterize the principle of “small and independent deployment units ” as an alternative to the monoliths. Our framework supplements the Architecting Process in a CD context through introducing the quality attributes (e.g., resilience) that require more attention and demonstrating the strategies (e.g., prioritizing operations concerns) to design operations-friendly architectures. We discuss the key insights (e.g., monoliths and CD are not intrinsically oxymoronic) gained from our study and draw implications for research and practice.
-
the intersection of continuous deployment and Architecting Process practitioners perspectives
Empirical Software Engineering and Measurement, 2016Co-Authors: Mojtaba Shahin, Muhammad Ali Babar, Liming ZhuAbstract:Context: Development and Operations (DevOps) is an emerging software industry movement to bridge the gap between software development and operations teams. DevOps supports frequently and reliably releasing new features and products-- thus subsuming Continuous Deployment (CD) practice. Goal: This research aims at empirically exploring the potential impact of CD practice on Architecting Process. Method: We carried out a case study involving interviews with 16 software practitioners. Results: We have identified (1) a range of recurring architectural challenges (i.e., highly coupled monolithic architecture, team dependencies, and ever-changing operational environments and tools) and (2) five main architectural principles (i.e., small and independent deployment units, not too much focus on reusability, aggregating logs, isolating changes, and testability inside the architecture) that should be considered when an application is (re-) architected for CD practice. This study also supports that software architecture can better support operations if an operations team is engaged at an early stage of software development for taking operational aspects into considerations. Conclusion: These findings provide evidence that software architecture plays a significant role in successfully and efficiently adopting continuous deployment. The findings contribute to establish an evidential body of knowledge about the state of the art of Architecting for CD practice
Muhammad Ali Babar - One of the best experts on this subject based on the ideXlab platform.
-
An empirical study of Architecting for continuous delivery and deployment
Empirical Software Engineering, 2019Co-Authors: Mojtaba Shahin, Mansooreh Zahedi, Muhammad Ali Babar, Liming ZhuAbstract:Recently, many software organizations have been adopting Continuous Delivery and Continuous Deployment (CD) practices to develop and deliver quality software more frequently and reliably. Whilst an increasing amount of the literature covers different aspects of CD, little is known about the role of software architecture in CD and how an application should be (re-) architected to enable and support CD. We have conducted a mixed-methods empirical study that collected data through in-depth, semi-structured interviews with 21 industrial practitioners from 19 organizations, and a survey of 91 professional software practitioners. Based on a systematic and rigorous analysis of the gathered qualitative and quantitative data, we present a conceptual framework to support the Process of (re-) Architecting for CD. We provide evidence-based insights about practicing CD within monolithic systems and characterize the principle of “small and independent deployment units ” as an alternative to the monoliths. Our framework supplements the Architecting Process in a CD context through introducing the quality attributes (e.g., resilience) that require more attention and demonstrating the strategies (e.g., prioritizing operations concerns) to design operations-friendly architectures. We discuss the key insights (e.g., monoliths and CD are not intrinsically oxymoronic) gained from our study and draw implications for research and practice.
-
the intersection of continuous deployment and Architecting Process practitioners perspectives
Empirical Software Engineering and Measurement, 2016Co-Authors: Mojtaba Shahin, Muhammad Ali Babar, Liming ZhuAbstract:Context: Development and Operations (DevOps) is an emerging software industry movement to bridge the gap between software development and operations teams. DevOps supports frequently and reliably releasing new features and products-- thus subsuming Continuous Deployment (CD) practice. Goal: This research aims at empirically exploring the potential impact of CD practice on Architecting Process. Method: We carried out a case study involving interviews with 16 software practitioners. Results: We have identified (1) a range of recurring architectural challenges (i.e., highly coupled monolithic architecture, team dependencies, and ever-changing operational environments and tools) and (2) five main architectural principles (i.e., small and independent deployment units, not too much focus on reusability, aggregating logs, isolating changes, and testability inside the architecture) that should be considered when an application is (re-) architected for CD practice. This study also supports that software architecture can better support operations if an operations team is engaged at an early stage of software development for taking operational aspects into considerations. Conclusion: These findings provide evidence that software architecture plays a significant role in successfully and efficiently adopting continuous deployment. The findings contribute to establish an evidential body of knowledge about the state of the art of Architecting for CD practice
-
a systematic review of software architecture visualization techniques
Journal of Systems and Software, 2014Co-Authors: Mojtaba Shahin, Peng Liang, Muhammad Ali BabarAbstract:Abstract Context Given the increased interest in using visualization techniques (VTs) to help communicate and understand software architecture (SA) of large scale complex systems, several VTs and tools have been reported to represent architectural elements (such as architecture design, architectural patterns, and architectural design decisions). However, there is no attempt to systematically review and classify the VTs and associated tools reported for SA, and how they have been assessed and applied. Objective This work aimed at systematically reviewing the literature on software architecture visualization to develop a classification of VTs in SA, analyze the level of reported evidence and the use of different VTs for representing SA in different application domains, and identify the gaps for future research in the area. Method We used systematic literature review (SLR) method of the evidence-based software engineering (EBSE) for reviewing the literature on VTs for SA. We used both manual and automatic search strategies for searching the relevant papers published between 1 February 1999 and 1 July 2011. Results We selected 53 papers from the initially retrieved 23,056 articles for data extraction, analysis, and synthesis based on pre-defined inclusion and exclusion criteria. The results from the data analysis enabled us to classify the identified VTs into four types based on the usage popularity: graph-based, notation-based, matrix-based, and metaphor-based VTs. The VTs in SA are mostly used for architecture recovery and architectural evolution activities. We have also identified ten purposes of using VTs in SA. Our results also revealed that VTs in SA have been applied to a wide range of application domains, among which “graphics software” and “distributed system” have received the most attention. Conclusion SA visualization has gained significant importance in understanding and evolving software-intensive systems. However, only a few VTs have been employed in industrial practice. This review has enabled us to identify the following areas for further research and improvement: (i) it is necessary to perform more research on applying visualization techniques in architectural analysis, architectural synthesis, architectural implementation, and architecture reuse activities; (ii) it is essential to pay more attention to use more objective evaluation methods (e.g., controlled experiment) for providing more convincing evidence to support the promised benefits of using VTs in SA; (iii) it is important to conduct industrial surveys for investigating how software architecture practitioners actually employ VTs in Architecting Process and what are the issues that hinder and prevent them from adopting VTs in SA.