The remaining chapters in this thesis contain the articles that have been produced during the course of the research work. In this section we list the abstracts and publication information for the papers.
1.7.1
Chapter 2
A Survey on Software Architecture Evaluation Methods with Focus on Performance, Maintainability, Testability, and Portability
Mattsson, M., Mårtensson, F., and Grahn, H. To be submitted. “The software architecture has been identified as an important part of a software system. The architecture describes the different components in a system and their interaction. Further, the soft- ware architecture impacts the quality attributes of a system, e.g., performance and maintainability. Therefore, methods for evaluat- ing the quality attributes of software architectures are becoming increasingly important. Several evaluation methods have been proposed in order to assist the developer in creating a software architecture that will have a potential to fulfil the requirements on the system. Most evaluation methods focus on evaluation of a single quality attribute but in industrial practice it is common to have require¬ments on several quality aspects of a system. In this paper, we present a survey of software architecture evalu- ation methods. We focus on methods for evaluating one or sev- eral of the quality attributes performance, maintainability, testability, and portability. Based on a literature search and review of 240 articles, we present and compare ten evaluation methods. We have found that most evaluation methods only address one quality attribute, and very few can evaluate several quality attributes simultaneously in the same framework or method. Further, only one of the methods includes trade-off anal- ysis. Therefore, our results suggest an increased research focus on software architecture evaluation methods than can address several quality attributes and the possible trade-offs between dif- ferent quality attributes.”
Introduction
Thesis Papers 21
1.7.2
Chapter 3
A Case Against Continuous Simulation for Software Architecture Evaluation
Mårtensson, F., Jönsson, P., Bengtsson, PO., Grahn, H., and Mattsson M., Proc. Applied Simulation and Modelling, pp. 97- 105, ISBN: 0-88986-354-9, September 2003, Marbella, Spain. “A software architecture is one of the first steps towards a soft- ware system. The design of the architecture is important in order to create a good foundation for the system. The design process is performed by evaluating architecture alternatives against each other. A desirable property of a good evaluation method is high efficiency at low cost. In this paper, we investigate the use of continuous simulation as a tool for software architecture per- formance evaluation. We create a model of the software architec- ture of an existing software system using a tool for continuous simulation, and then simulate the model. Based on the case study, we conclude that continuous simulation is not feasible for soft- ware architecture performance evaluation, e.g., we identified the need of discrete functionality to correctly simulate the system, and that it is very time consuming to develop a model for per- formance evaluation purposes. However, the modelling process is valuable for increasing knowledge and understanding about an architecture.”
1.7.3
Chapter 4
An Approach for Performance Evaluation of Software Architectures using Prototyping
Mårtensson, F., Grahn, H., and Mattsson, M., Proc. Software
Engineering and Applications, pp. 605-612, ISBN: 0-88986-394-
63-5, November 2003, Los Angeles, USA.
“The fundamental structure of a software system is referred to as the software architecture. Researchers have identified that the quality attributes of a software system, e.g., performance and maintainability, often are restricted by the architecture. There- fore, it is important to evaluate the quality properties of a system already during architectural design. In this paper we propose an approach for evaluating the performance of a software architec- ture using architectural prototyping. As a part of the approach we have developed an evaluation support framework. We also show
22 Thesis Papers
the applicability of the approach and evaluate it using a case study of a distributed software system for automated guided vehi- cles.”
1.7.4
Chapter 5
Evaluating Software Quality Attributes of Communication Components in an Automated Guided Vehicle System
Mårtensson, F., Grahn, H., and Mattsson, M., Proc. 10th IEEE
International Conference on Engineering of Complex Computer Systems, pp. 550-558, ISBN: 0-7695-2284-X, June 2005, Shang-
hai, China.
“The architecture of a large complex software system, i.e., the division of the system into components and modules, is crucial since it often affects and limits the quality attributes of the sys- tem, e.g., performance and maintainability. In this paper we eval- uate three software components for intra- and inter-process communication in a distributed real-time system, i.e., an auto- mated guided vehicle system. We evaluate three quality attributes: performance, maintainability, and portability. The per- formance and maintainability are evaluated quantitatively using prototype-based evaluation, while the portability is evaluated qualitatively. Our findings indicate that it might be possible to use one third-party component for both intra- and inter-process communication, thus replacing two in-house developed compo- nents.”
1.7.5
Chapter 6
Forming Consensus on Testability in Software Developing Organizations
Mårtensson, F., Grahn, H., and Mattsson, M., Proc. Fifth Confer-
ence on Software Engineering Research and Practice in Sweden,
pp. 31-38, ISBN: 91-88834-99-9, October 2005, Västerås, Swe- den.
“Testing is an important activity in all software development projects and organizations. Therefore, it is important that all parts of the organization have the same view on testing and testability of software components and systems. In this paper we study the
Introduction
Validity of Results 23
view on testability by software engineers, software testers, and managers, using a questionnaire followed by interviews. The questionnaire also contained a set of software metrics that the respondents grade based on their expected impact on testability. We find, in general, that there is a high consensus within each group of people on their view on testability. Further, we have identified that the software engineers and the testers mostly have the same view, but that their respective views differ on how much the coupling between modules and the number of parameters to a module impact the testability. Base on the grading of the software metrics we conclude that size and complexity metrics could be complemented with more specific metrics related to memory management operations.”