mdh.sePublications
Change search
Link to record
Permanent link

Direct link
BETA
Publications (10 of 10) Show all publications
Pei-Breivold, H., Crnkovic, I. & Larsson, M. (2012). A systematic review of software architecture evolution research. Information and Software Technology, 54(1), 16-40
Open this publication in new window or tab >>A systematic review of software architecture evolution research
2012 (English)In: Information and Software Technology, ISSN 0950-5849, E-ISSN 1873-6025, Vol. 54, no 1, p. 16-40Article in journal (Refereed) Published
Abstract [en]

Context: Software evolvability describes a software system's ability to easily accommodate future changes. It is a fundamental characteristic for making strategic decisions, and increasing economic value of software. For long-lived systems, there is a need to address evolvability explicitly during the entire software lifecycle in order to prolong the productive lifetime of software systems. For this reason, many research studies have been proposed in this area both by researchers and industry practitioners. These studies comprise a spectrum of particular techniques and practices, covering various activities in software lifecycle. However, no systematic review has been conducted previously to provide an extensive overview of software architecture evolvability research. Objective: In this work, we present such a systematic review of architecting for software evolvability. The objective of this review is to obtain an overview of the existing approaches in analyzing and improving software evolvability at architectural level, and investigate impacts on research and practice. Method: The identification of the primary studies in this review was based on a pre-defined search strategy and a multi-step selection process. Results: Based on research topics in these studies, we have identified five main categories of themes: (i) techniques supporting quality consideration during software architecture design, (ii) architectural quality evaluation, (iii) economic valuation, (iv) architectural knowledge management, and (v) modeling techniques. A comprehensive overview of these categories and related studies is presented. Conclusion: The findings of this review also reveal suggestions for further research and practice, such as (i) it is necessary to establish a theoretical foundation for software evolution research due to the fact that the expertise in this area is still built on the basis of case studies instead of generalized knowledge; (ii) it is necessary to combine appropriate techniques to address the multifaceted perspectives of software evolvability due to the fact that each technique has its specific focus and context for which it is appropriate in the entire software lifecycle.

National Category
Engineering and Technology
Identifiers
urn:nbn:se:mdh:diva-13637 (URN)10.1016/j.infsof.2011.06.002 (DOI)000297871500002 ()2-s2.0-80055099082 (Scopus ID)
Available from: 2011-12-15 Created: 2011-12-15 Last updated: 2017-12-08Bibliographically approved
Breivold, H. P., Crnkovic, I. & Larsson, M. (2012). Software architecture evolution through evolvability analysis. Journal of Systems and Software, 85(11), 2574-2592
Open this publication in new window or tab >>Software architecture evolution through evolvability analysis
2012 (English)In: Journal of Systems and Software, ISSN 0164-1212, E-ISSN 1873-1228, Vol. 85, no 11, p. 2574-2592Article in journal (Refereed) Published
Abstract [en]

Software evolvability is a multifaceted quality attribute that describes a software system's ability to easily accommodate future changes. It is a fundamental characteristic for the efficient implementation of strategic decisions, and the increasing economic value of software. For long life systems, there is a need to address evolvability explicitly during the entire software lifecycle in order to prolong the productive lifetime of software systems. However, designing and evolving software architectures are the challenging task. To improve the ability to understand and systematically analyze the evolution of software system architectures, in this paper, we describe software architecture evolution characterization, and propose an architecture evolvability analysis process that provides replicable techniques for performing activities to aim at understanding and supporting software architecture evolution. The activities are embedded in: (i) the application of a software evolvability model; (ii) a structured qualitative method for analyzing evolvability at the architectural level; and (iii) a quantitative evolvability analysis method with explicit and quantitative treatment of stakeholders' evolvability concerns and the impact of potential architectural solutions on evolvability. The qualitative and quantitative assessments manifested in the evolvability analysis process have been applied in two large-scale industrial software systems at ABB and Ericsson, with experiences and reflections described. (c) 2012 Elsevier Inc. All rights reserved.

National Category
Engineering and Technology
Identifiers
urn:nbn:se:mdh:diva-16169 (URN)10.1016/j.jss.2012.05.085 (DOI)000309315500014 ()2-s2.0-84865263003 (Scopus ID)
Available from: 2012-11-20 Created: 2012-11-20 Last updated: 2017-12-07Bibliographically approved
Pei-Breivold, H., Crnkovic, I., Land, R. & Larsson, M. (2008). Analyzing Software Evolvability of an Industrial Automation Control System: A Case Study. In: Proceedings - The 3rd International Conference on Software Engineering Advances, ICSEA 2008: . Paper presented at 3rd International Conference on Software Engineering Advances, ICSEA 2008; Sliema; 26 October 2008 through 31 October 2008 (pp. 205-213).
Open this publication in new window or tab >>Analyzing Software Evolvability of an Industrial Automation Control System: A Case Study
2008 (English)In: Proceedings - The 3rd International Conference on Software Engineering Advances, ICSEA 2008, 2008, p. 205-213Conference paper, Published paper (Refereed)
National Category
Engineering and Technology
Identifiers
urn:nbn:se:mdh:diva-7210 (URN)10.1109/ICSEA.2008.16 (DOI)2-s2.0-57649211740 (Scopus ID)978-1-4244-3218-9 (ISBN)
Conference
3rd International Conference on Software Engineering Advances, ICSEA 2008; Sliema; 26 October 2008 through 31 October 2008
Available from: 2009-09-25 Created: 2009-09-25 Last updated: 2013-12-19Bibliographically approved
Kettu, T., Kruse, E., Larsson, M. & Mustapic, G. (2008). Using architecture analysis to evolve complex industrial systems. In: Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) Volume 5135: (pp. 326-341). Springer
Open this publication in new window or tab >>Using architecture analysis to evolve complex industrial systems
2008 (English)In: Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) Volume 5135, Springer, 2008, p. 326-341Chapter in book (Refereed)
Abstract [en]

ABB is a large industrial company with a broad product portfolio that contains products that can be categorized as highly complex industrial systems. Software embedded in complex industrial systems must support rigid system dependability requirements. It is not only a challenge to design and implement these systems as dependable, but it is also difficult to maintain this important property over time. There are several factors that make software evolution a challenging task, such as: size of the software base is measured in order of MLOC, products are long-lived and extended to support new requirements over time longer than 10 years. Because of personnel turnover important knowledge is lost from time to time, and the only artifact that is really up-to-date is the implementation itself. Therefore, to obtain an up-to-date view of the system and prevent expensive mistakes during system evolution, it is beneficial to find practical ways to obtain an up-to-date view on an architectural level without having to read thousands of lines of source code. These activities should be seen as an important contribution for preventing the introduction of faults into software systems since they contribute to improve and maintain the overall system dependability. This experience paper provides practical advices on how to reconstruct the architecture of existing systems by combining the use of tools and the existing knowledge within the organization. The paper is based on experiences from two cases in different sub domains within industrial automation.

Place, publisher, year, edition, pages
Springer, 2008
Series
Lecture Notes in Computer Science, ISSN 0302-9743 ; 5135
Series
Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
National Category
Engineering and Technology
Identifiers
urn:nbn:se:mdh:diva-21166 (URN)10.1007/978-3-540-85571-2_14 (DOI)2-s2.0-51849089160 (Scopus ID)354085570X (ISBN)9783540855705 (ISBN)
Available from: 2013-11-04 Created: 2013-08-27 Last updated: 2016-05-17Bibliographically approved
Pei-Breivold, H. & Larsson, M. (2007). Component-Based and Service-Oriented Software Engineering: Key Concepts and Principles. In: EUROMICRO 2007 - Proceedings of the 33rd EUROMICRO Conference on Software Engineering and Advanced Applications, SEAA 2007: . Paper presented at 33rd EUROMICRO Conference on Software Engineering and Advanced Applications, SEAA 2007; Lubeck; Germany; 27 August 2007 through 31 August 2007 (pp. 13-20).
Open this publication in new window or tab >>Component-Based and Service-Oriented Software Engineering: Key Concepts and Principles
2007 (English)In: EUROMICRO 2007 - Proceedings of the 33rd EUROMICRO Conference on Software Engineering and Advanced Applications, SEAA 2007, 2007, p. 13-20Conference paper, Published paper (Refereed)
Abstract [en]

Component-based software engineering (CBSE) and service-oriented software engineering (SOSE) are two of the most dominant engineeringparadigms in current software community and industry. Although they have continued their development tracks in parallel and have different focus, both paradigms have similarities in many senses, which also have resulted in confusion in understanding and applying similar concepts or the same concepts designated differently. In this paper, we present a comparison analysis framework of CBSE and SOSE and analyze them from a variety of perspectives. We discuss as well the possibility of combining the strengths of the two paradigms to meet non-functional requirements. The contribution of this paper is to clarify the characteristics of CBSE and SOSE, shorten the gap between them and bring the two worlds together so that researchersand practitioners become aware of essential issues of both paradigms, which may serve as inputs for further utilizing them in a reasonable andcomplementary way.

National Category
Engineering and Technology
Identifiers
urn:nbn:se:mdh:diva-7022 (URN)10.1109/EUROMICRO.2007.25 (DOI)2-s2.0-48049088087 (Scopus ID)97-0769529776 (ISBN)
Conference
33rd EUROMICRO Conference on Software Engineering and Advanced Applications, SEAA 2007; Lubeck; Germany; 27 August 2007 through 31 August 2007
Available from: 2009-09-25 Created: 2009-09-25 Last updated: 2014-05-26Bibliographically approved
Pei Breivold, H. & Larsson, M. (2007). Component-Based and Service-Oriented Software Engineering: Key Concepts and Principles. In: EUROMICRO 2007 - Proceedings of the 33rd EUROMICRO Conference on Software Engineering and Advanced Applications, SEAA 200: . Paper presented at 33rd EUROMICRO Conference on Software Engineering and Advanced Applications, SEAA 2007; Lubeck; Germany; 27 August 2007 through 31 August 2007. , Article number 4301060
Open this publication in new window or tab >>Component-Based and Service-Oriented Software Engineering: Key Concepts and Principles
2007 (English)In: EUROMICRO 2007 - Proceedings of the 33rd EUROMICRO Conference on Software Engineering and Advanced Applications, SEAA 200, 2007, Vol. Article number 4301060Conference paper, Published paper (Refereed)
Abstract [en]

Component-based software engineering (CBSE) and service-oriented software engineering (SOSE) are two of the most dominant engineering paradigms in current software community and industry. Although they have continued their development tracks in parallel and have different focus, both paradigms have similarities in many senses, which also have resulted in confusion in understanding and applying similar concepts or the same concepts designated differently. In this paper, we present a comparison analysis framework of CBSE and SOSE and analyze them from a variety of perspectives. We discuss as well the possibility of combining the strengths of the two paradigms to meet non-functional requirements.

The contribution of this paper is to clarify the characteristics of CBSE and SOSE, shorten the gap between them and bring the two worlds together so that researchers and practitioners become aware of essential issues of both paradigms, which may serve as inputs for further utilizing them in a reasonable and complementary way.

National Category
Computer Systems
Identifiers
urn:nbn:se:mdh:diva-4435 (URN)10.1109/EUROMICRO.2007.25 (DOI)9780769529776 (ISBN)
Conference
33rd EUROMICRO Conference on Software Engineering and Advanced Applications, SEAA 2007; Lubeck; Germany; 27 August 2007 through 31 August 2007
Projects
SOFAR
Available from: 2008-12-04 Created: 2008-12-04 Last updated: 2016-02-11Bibliographically approved
Larsson, M., Norström, C., Wall, A. & Crnkovic, I. (2006). Technology Transfer: Why some Succeed and some don't. In: Proceedings - International Conference on Software Engineering, 2006: . Paper presented at 2006 International Workshop on Software Technology Transfer in Software Engineering, TT '06, Co-located with the 28th International Conference on Software Engineering, ICSE 2006; Shanghai; China; 20 May 2006 through 28 May 2006 (pp. 23-27).
Open this publication in new window or tab >>Technology Transfer: Why some Succeed and some don't
2006 (English)In: Proceedings - International Conference on Software Engineering, 2006, 2006, p. 23-27Conference paper, Published paper (Refereed)
Abstract [en]

In this paper we present several technology transfer cases both successes and failures. These cases describe transfers from research department within a large corporation to a product company, university to a large product company and university to a small product company. Based on the analysis of these cases we outline several strategies that can be used, in isolation or combined, in order to increase the probability for success

National Category
Other Engineering and Technologies
Identifiers
urn:nbn:se:mdh:diva-6899 (URN)10.1145/1138046.1138055 (DOI)2-s2.0-77953592120 (Scopus ID)159593412X (ISBN)
Conference
2006 International Workshop on Software Technology Transfer in Software Engineering, TT '06, Co-located with the 28th International Conference on Software Engineering, ICSE 2006; Shanghai; China; 20 May 2006 through 28 May 2006
Available from: 2009-09-25 Created: 2009-09-25 Last updated: 2015-09-15Bibliographically approved
Crnkovic, I., Larsson, M. & Preiss, O. (2005). Concerning predictability in dependable component-based systems: Classification of quality attributes. In: Architecting Dependable Systems III: (pp. 257-278). Springer
Open this publication in new window or tab >>Concerning predictability in dependable component-based systems: Classification of quality attributes
2005 (English)In: Architecting Dependable Systems III, Springer, 2005, p. 257-278Chapter in book (Refereed)
Abstract [en]

One of the main objectives of developing component-based software systems is to enable efficient building of systems through the integration of components. All component models define some form of component inter-face standard that facilitates the programmatic integration of components, but they do not facilitate or provide theories for the prediction of the quality attributes of the component compositions. This decreases significantly the value of the component-based approach to building dependable systems. If it is not possible to predict the value of a particular attribute of a system prior to integration and deployment to the target environment the system must be subjected to other procedures, often costly, to determine this value empirically. For this reason one of the challenges of the component-based approach is to obtain means for the "composition" of quality attributes. This challenge poses a very difficult task because the diverse types of quality attributes do not have the same underlying conceptual characteristics, since many factors, in addition to component properties, influence the system properties. This paper analyses the relation between the quality attributes of components and those of their compositions. The types of relations are classified according to the possibility of predicting properties of compositions from the properties of the components and according to the influences of other factors such as software architecture or system environment. The classification is exemplified with particular cases of compositions of quality attributes, and its relation to dependability is discussed. Such a classification can indicate the efforts that would be required to predict the system attributes which are essential for system dependability and in this way, the feasibility of the component-based approach in developing dependable systems.

Place, publisher, year, edition, pages
Springer, 2005
Series
Lecture Notes in Computer Science, ISSN 0302-9743 ; 3549
National Category
Engineering and Technology
Identifiers
urn:nbn:se:mdh:diva-25351 (URN)10.1007/11556169_12 (DOI)000233384200012 ()2-s2.0-77149164431 (Scopus ID)978-3-540-31648-0 (ISBN)
Available from: 2014-06-23 Created: 2014-06-23 Last updated: 2014-06-23Bibliographically approved
Larsson, M. (2004). Predicting Quality Attributes in Component-based Software Systems. (Doctoral dissertation).
Open this publication in new window or tab >>Predicting Quality Attributes in Component-based Software Systems
2004 (English)Doctoral thesis, monograph (Other scientific)
Publisher
p. 200
Series
Mälardalen University Press Dissertations, ISSN 1651-4238 ; 8
National Category
Computer Sciences
Research subject
Datavetenskap
Identifiers
urn:nbn:se:mdh:diva-61 (URN)91-88834-33-6 (ISBN)
Public defence
2004-03-12, V262, Vargens Vret, Västerås, 14:00
Opponent
Supervisors
Available from: 2005-11-24 Created: 2005-11-24 Last updated: 2018-01-13
Larsson, M. (2000). Applying Configuration Management Techniques to Component-based Systems. (Licentiate dissertation).
Open this publication in new window or tab >>Applying Configuration Management Techniques to Component-based Systems
2000 (English)Licentiate thesis, monograph (Other scientific)
Abstract [en]

Building software from components, rather than writing the code from scratch has several advantages, including reduced time to market and more efficient resource usage. However, component based development without consideration of all the risks and limitations involved may give unpredictable results, such as the failure of a system when a component is used in an environment for which it was not originally designed. One of the basic problems when developing component-based systems is that it is difficult to keep track of components and their interrelationships. This is particularly problematic when upgrading components. One way to maintain control over upgrades is to use component identification and dependency analysis. These are well known techniques for managing system configurations during development, but are rarely applied in managing run-time dependencies. The main contribution of this thesis is to show how Configuration Management (CM) principles and methods can be applied to component-based systems. This thesis presents a method for analysing dependencies between components. The method predicts the influence of a component update by identifying the components in a system and constructing a graph describing their dependencies. Knowledge of the possible influences of an update is important, since it can be used to limit the scope of testing and be a basis for evaluating the potential damage of the update. The dependency graphs can also be used to facilitate maintenance by identifying differences between configurations, e.g., making it possible to recognise any deviations from a functioning reference configuration. For evaluation of the method, a prototype tool which explores dependencies and stores them under version control has been developed. The prototype has been used for partial analysis of the Windows 2000 platform. Preliminary experiments indicate that most components have only a few dependencies. The method has thus given an indication that the analysis of the effects of component updates may not be as difficult as might be expected.

Identifiers
urn:nbn:se:mdh:diva-1831 (URN)
Available from: 2008-11-11 Created: 2008-11-11 Last updated: 2013-12-03
Organisations
Identifiers
ORCID iD: ORCID iD iconorcid.org/0000-0002-6200-4125

Search in DiVA

Show all publications