Investigating Software Maintainability Development: a Case for ISO 9126

Total Page:16

File Type:pdf, Size:1020Kb

Investigating Software Maintainability Development: a Case for ISO 9126 IJCSI International Journal of Computer Science Issues, Vol. 11, Issue 2, No 2, March 2014 ISSN (Print): 1694-0814 | ISSN (Online): 1694-0784 www.IJCSI.org 18 InInvestigatingvestigating Software Maintainability Development: A case for ISO 9126 Ahmad Haboush, Mohammad Alnabhan, Anas AL-Badareen, Mohammad Al-nawayseh and Bassam EL-Zaghmouri Faculty of Information Technology, Jerash University Jerash, Jordan Abstract Software maintainability has been considered as a main characteristic in many software product quality models. However, these models have different definitions for maintainability and sub characteristics. ISO 9126 is one of the main and most frequently used models in software product quality. This model has been revised and replaced by ISO 25010 as a new model of software product quality. In addition to the many modifications that were performed on ISO 9126 model, maintainability was one of the main modified characteristics. However, it was developed unclearly without any standard base, and with no clear definition or evidence of how the sub characteristics were defined and modified. This paper investigates these modifications and the differences between the definitions of the maintainability in the two models, ISO 9126 and ISO 25010. As a result of this discussion, it has been concluded that both models ISO 9126 and ISO 25010 lack of a clear definition or standard base for defining software maintainability and its sub characteristics. Fig. 1: The ISO/IEC 9126 Model Keywords: Quality Model, ISO/IEC 9126, ISO/IEC 25010, Maintainability, Reusability. • ISO/IEC 9126-1 [1]: new updated quality model. • ISO/IEC 9126-2 [2]: new set of external measures. 1. Introduction • ISO/IEC 9126-3 [3]: new set of internal measures. • ISO/IEC 9126-4 [4]: new set of quality in use The In last decades, many models of software quality have measures. been proposed. In 1978, ISO/IEC intended to propose a standard model for software quality in order to unify the However, this model suffers from the ambiguity in the evaluation process of software quality as well as to definition of the quality characteristics and their eliminate the debate between software quality models. The relationships [5], and it is not suitable to measure the first version was released in 1991, and called ISO 9126. design quality of software product [6]. The inconsistency in definitions of the quality characteristics and their sub- As shown in figure 1, the model specified six characteristics results contradictions in the developed characteristics including Functionality, Reliability, models [7]. Consequently, different quality models are Usability, Efficiency, Maintainability, and Portability; developed to evaluate same types of software products. which are further divided into 21 sub-characteristics. The Therefore, ISO/IEC proposed a new model that aim to defined characteristics are applicable to every kind of resolve these problems and many others as stated in software, including computer programs and data contained literature. in firmware, and provide consistent terminology for software product quality. They also provide a framework ISO/IEC 25010 [8] is a derived version from ISO/IEC for making trade-offs between software product 9126:1991 (see figure 2). The model incorporates the same capabilities. Several corrections and enhancements were quality characteristics with some modifications. Software performed and revised versions were released, as follows: maintainability is one of the main characteristics that were Copyright (c) 2014 International Journal of Computer Science Issues. All Rights Reserved. IJCSI International Journal of Computer Science Issues, Vol. 11, Issue 2, No 2, March 2014 ISSN (Print): 1694-0814 | ISSN (Online): 1694-0784 www.IJCSI.org 19 affected by these modifications. Two characteristics were eliminated (stability and compliance) and new other two The maintenance process has been defined as one of the were added (reusability, and modularity). main factors that have impact on the quality of the software product. The ability to achieve this process has been However, as in ISO 9126, the maintainability sub considered early since the first model of software quality. characteristics were defined ambiguously without clear All the models agreed that, software maintainability is one definition or standard form, the modifications in the new of the main factors in software quality, but they differ in version ISO 25010 were also performed in the same way. the characteristics that are used to measure this factor and the structure of these characteristics. Generally, software The paper starts in section two with presenting the maintenance requires an understandable, analyzable, maintenance process and its objectives. Section three modifiable, and testable software product in order to be presents the reuse process and its relationship with the performed efficiently. maintenance. Section four presents the modularity characteristic and its relationship with maintenance According to ISO/IEC 25010 [8], software maintainability processes. Section five presents the stability and its is the degree of the effectiveness and efficiency of relationship with modifiability. Section six presents the modifying the software product by maintainers. This compliance characteristic. Finally, discussion and characteristic represents the ability to modify the software recommendations are presented in section seven. product efficiently and easily in order to correct, enhance, or adapt it. ISO 9126 involves five sub characteristics in order to measure the maintainability factor: analyzability, 2. Software Maintenance changeability, stability, testability, and compliance, while ISO 25010 involves modularity, reusability, analyzability, Software maintenance is the process of modifying software modifiability, and testability. product either for correction, enhancement, or adaptation. It is an inescapable part of software lifecycle [9], which is According to IEEE [15] software maintainability is any required to keep the software product useful and updated modification made on software product after delivery, in with the world changes [10-11]. However, the main order to correct faults, improve performance and other problem with software maintenance is that it is the most attributes, or to adapt the product to a modified hard, costly and error and error-prone process in software environment. This standard identified four main objectives life cycle [12-13]. Its cost is approximately equal to (80- that the maintenance process can be performed for: 90%) of the total cost of software development life cycle a) Corrective; [10, 14]. Therefore, much attention has been given to this b) Adaptive; process, and how it can be performed efficiently with a c) Perfective; and minimum cost. d) Emergency. Fig. 2: The ISO/IEC 25010 Quality Model Copyright (c) 2014 International Journal of Computer Science Issues. All Rights Reserved. IJCSI International Journal of Computer Science Issues, Vol. 11, Issue 2, No 2, March 2014 ISSN (Print): 1694-0814 | ISSN (Online): 1694-0784 www.IJCSI.org 20 reusable assets or modifying the existing components to According to AL-Badareen [16-17], software maintenance achieve them. Therefore, three main types of reusable is a process of modifying software product, which assets can be involved in the reuse process [18]: normal conducted through four main tasks: understanding, asset, reusable asset with internal components, and analyzing, modifying, and testing the software product, see reusable asset with market components. figure 3. • Normal asset: is a software component developed for specific function in certain software product meanwhile the reusability characteristics are not considered during the development process. This type of software components is in-house developed software which includes design and its all internal components. Moreover, it is required to be portable and interoperable to work with different systems in different environments. Therefore, it has to be modified to achieve the new requirements. Fig. 3: Software Maintenance Processes • Reusable Asset with Internal Components: software components that are developed to be used in different Software maintenance mainly focuses on the modification of software product. According to Souza [10], the software systems in the future. It is in-house developed maintenance process is performed on software product software which includes the design and all of its internal after its delivery. The maintenance process does not care components. This type of components possesses the about modifying the software product, as much as reusability characteristics, and also allows any achieving the modification objectives efficiently. modification might be required for adaptation to the new system. 3. Software Reuse • Reusable Asset with Market Components: is reusable Software reuse is the process of using an existing software software components imported from external sources. It product or part of it in order to develop a new software is a market resource, which does not allow any product. This process is used to reduce the effort, cost, and modification might be required. Therefore, any time of developing software products [18]. It increases the modification required for adaptation has to be on the productivity of software development [19] [20] as well as enhances the quality it[21]. system architecture instead of the component. According to ISO/IEC 25010 [8], software reusability is Based on the types of the reusable
Recommended publications
  • ASSESSING the MAINTAINABILITY of C++ SOURCE CODE by MARIUS SUNDBAKKEN a Thesis Submitted in Partial Fulfillment of the Requireme
    ASSESSING THE MAINTAINABILITY OF C++ SOURCE CODE By MARIUS SUNDBAKKEN A thesis submitted in partial fulfillment of the requirements for the degree of Master of Science in Computer Science WASHINGTON STATE UNIVERSITY School of Electrical Engineering and Computer Science DECEMBER 2001 To the Faculty of Washington State University: The members of the Committee appointed to examine the thesis of MARIUS SUNDBAKKEN find it satisfactory and recommend that it be accepted. Chair ii ASSESSING THE MAINTAINABILITY OF C++ SOURCE CODE Abstract by Marius Sundbakken, M.S. Washington State University December 2001 Chair: David Bakken Maintenance refers to the modifications made to software systems after their first release. It is not possible to develop a significant software system that does not need maintenance because change, and hence maintenance, is an inherent characteristic of software systems. It has been estimated that it costs 80% more to maintain software than to develop it. Clearly, maintenance is the major expense in the lifetime of a software product. Predicting the maintenance effort is therefore vital for cost-effective design and development. Automated techniques that can quantify the maintainability of object- oriented designs would be very useful. Models based on metrics for object-oriented source code are necessary to assess software quality and predict engineering effort. This thesis will look at C++, one of the most widely used object-oriented programming languages in academia and industry today. Metrics based models that assess the maintainability of the source code using object-oriented software metrics are developed. iii Table of Contents 1. Introduction .................................................................................................................1 1.1. Maintenance and Maintainability.......................................................................
    [Show full text]
  • A Quantitative Reliability, Maintainability and Supportability Approach for NASA's Second Generation Reusable Launch Vehicle
    A Quantitative Reliability, Maintainability and Supportability Approach for NASA's Second Generation Reusable Launch Vehicle Fayssai M. Safie, Ph. D. Marshall Space Flight Center Huntsville, Alabama Tel: 256-544-5278 E-mail: Fayssal.Safie @ msfc.nasa.gov Charles Daniel, Ph.D. Marshall Space Flight Center Huntsville, Alabama Tel: 256-544-5278 E-mail: Charles.Daniel @msfc.nasa.gov Prince Kalia Raytheon ITSS Marshall Space Flight Center Huntsville, Alabama Tel: 256-544-6871 E-mail: Prince.Kalia @ msfc.nasa.gov ABSTRACT The United States National Aeronautics and Space Administration (NASA) is in the midst of a 10-year Second Generation Reusable Launch Vehicle (RLV) program to improve its space transportation capabilities for both cargo and crewed missions. The objectives of the program are to: significantly increase safety and reliability, reduce the cost of accessing low-earth orbit, attempt to leverage commercial launch capabilities, and provide a growth path for manned space exploration. The safety, reliability and life cycle cost of the next generation vehicles are major concerns, and NASA aims to achieve orders of magnitude improvement in these areas. To get these significant improvements, requires a rigorous process that addresses Reliability, Maintainability and Supportability (RMS) and safety through all the phases of the life cycle of the program. This paper discusses the RMS process being implemented for the Second Generation RLV program. 1.0 INTRODUCTION The 2nd Generation RLV program has in place quantitative Level-I RMS, and cost requirements [Ref 1] as shown in Table 1, a paradigm shift from the Space Shuttle program. This paradigm shift is generating a change in how space flight system design is approached.
    [Show full text]
  • Software Quality Management
    Software Quality Management 2004-2005 Marco Scotto ([email protected]) Software Quality Management Contents ¾Definitions ¾Quality of the software product ¾Special features of software ¾ Early software quality models •Boehm model • McCall model ¾ Standard ISO 9126 Software Quality Management 2 Definitions ¾ Software: intellectual product consisting of information stored on a storage device (ISO/DIS 9000: 2000) • Software may occur as concepts, transactions, procedures. One example of software is a computer program • Software is "intellectual creation comprising the programs, procedures, rules and any associated documentation pertaining to the operation of a data processing system" •A software product is the "complete set of computer programs, procedures and associated documentation and data designated for delivery to a user" [ISO 9000-3] • Software is independent of the medium on which it is recorded Software Quality Management 3 Quality of the software product ¾The product should, on the highest level… • Ensure the satisfaction of the user needs • Ensure its proper use ¾ Earlier: 1 developer, 1 user • The program should run and produce results similar to those expected ¾ Later: more developers, more users • Need to economical use of the storage devices • Understandability, portability • User-friendliness, learnability ¾ Nowadays: • Efficiency, reliability, no errors, able to restart without using data Software Quality Management 4 Special features of software (1/6) ¾ Why is software ”different”? • Does not really have “physical” existence
    [Show full text]
  • Software Maintainability and Usability in Agile Environment
    Software Maintainability and Usability in Agile Environment {tag} {/tag} International Journal of Computer Applications © 2013 by IJCA Journal Volume 68 - Number 4 Year of Publication: 2013 Authors: Monika Agarwal Rana Majumdar 10.5120/11569-6873 {bibtex}pxc3886873.bib{/bibtex} Abstract This research is based on software maintainability and usability in the agile environment. Maintainability of the system is the ability to undergo changes relatively easily. These changes can affect components, services, interfaces and functionality when adding or changing functions, errors, and respond to business needs. Usability is defined as the application that meets the requirements of users and consumers by providing an intuitive, easy to locate and globalize and provides good access for disabled users and leads to a good overall user experience. In the conventional method of the software development, there are many metrics to calculate the maintenance and use of software. This research is to determine whether the same measures apply to Agile, or there is a need to change some metrics used for the agile environment. The goal of software engineering is to develop good quality maintainable software in schedule and budget. Inflated software costing, delayed time frame, or not meeting quality standards express a failure. A survey suggests about 45% of software fails due to the lack of quality. It is therefore one of the most important aspects for the success of software. Refer ences 1 / 3 Software Maintainability and Usability in Agile Environment - P. Antonellis, D. Antoniou, Y. Kanellopoulos, C. Makris, E. Theodoridis, C. Tjortjis, and N. Tsirakis, "A data mining methodology for evaluating maintainability according to ISO/IEC-9126 software engineering – product quality standard," in Special Session on System Quality and Maintainability - SQM2007, 2007.
    [Show full text]
  • Easychair Preprint Machine Learning Algorithm for Assessing Reusability
    EasyChair Preprint № 4142 Machine Learning Algorithm for Assessing Reusability in Component Based Software Development Pooja Negi and Umesh Kumar Tiwari EasyChair preprints are intended for rapid dissemination of research results and are integrated with the rest of EasyChair. September 7, 2020 MACHINE LEARNING ALGORITHM FOR ASSESING REUSABILITY IN COMPONENT BASED SOFTWARE DEVELOPMENT 1Pooja Negi, 2Umesh Kumar Tiwari 1,2 Department of Computer Science and Engineering, Graphic Era Deemed to be University, Dehradun [email protected], 2 [email protected] Abstract- Software reusability has been present for several decades. Software reusability is defined as making new software from existing one. Objects that can be reused: design, code, software framework. We reviewed several approaches in this dissertation, i.e. object-oriented metrics, coupling factor, etc., by which the software's reusability increases. Therefore this thesis analysis on how to classify and reuse the program using those metrics and apply the algorithm of machine learning. In this thesis we test open source software and generate a ck metric of that source code then a machine learning algorithm will process the data using weka tool to give the result. We test coefficient of correlation, mean absolute error, root mean square error, relative absolute error and root relative square error less the program would be better from this we get 98.64 accuracy on online examination system software. Keywords- Reusability, Machine Learning Algorithm, Random Forest, ck-metric. 1. Introduction In today’s world every sector of service or industry is dependent on computer based application. Industry which develops and outsources the software service is major and growing rapidly in the world.
    [Show full text]
  • Quality-Based Software Reuse
    Quality-Based Software Reuse Julio Cesar Sampaio do Prado Leite1, Yijun Yu2, Lin Liu3, Eric S. K. Yu2, John Mylopoulos2 1Departmento de Informatica, Pontif´ıcia Universidade Catolica´ do Rio de Janeiro, RJ 22453-900, Brasil 2Department of Computer Science, University of Toronto, M5S 3E4 Canada 3School of Software, Tsinghua University, Beijing, 100084, China Abstract. Work in software reuse focuses on reusing artifacts. In this context, finding a reusable artifact is driven by a desired functionality. This paper proposes a change to this common view. We argue that it is possible and necessary to also look at reuse from a non-functional (quality) perspective. Combining ideas from reuse, from goal-oriented requirements, from aspect-oriented programming and quality management, we obtain a goal-driven process to enable the quality-based reusability. 1 Introduction Software reuse has been a lofty goal for Software Engineering (SE) research and prac- tice, as a means to reduced development costs1 and improved quality. The past decade has seen considerable progress in fulfilling this goal, both with respect to research ideas and industrial practices (e.g., [1–3]). Current reuse techniques focus on the reuse of software artifacts on the basis of de- sired functionality. However, non-functional properties (qualities) of a software system are also crucial. Systems fail because of inadequate performance, security, reliability, usability, or precision, to name a few. Quality concerns, therefore, should also be front and centre in methods for software reuse. For example, in designing for the NASA Mars Spirit spacecraft, one would not adopt a “cosine” function from an arbitrary mathemat- ical library.
    [Show full text]
  • Adaptability Evaluation at Software Architecture Level Pentti Tarvainen*
    The Open Software Engineering Journal, 2008, 2, 1-30 1 Open Access Adaptability Evaluation at Software Architecture Level Pentti Tarvainen* VTT Technical Research Centre of Finland, Kaitoväylä 1, P.O. Box 1100, FIN-90571 Oulu, Finland Abstract: Quality of software is one of the major issues in software intensive systems and it is important to analyze it as early as possible. An increasingly important quality attribute of complex software systems is adaptability. Software archi- tecture for adaptive software systems should be flexible enough to allow components to change their behaviors depending upon the environmental and stakeholders' changes and goals of the system. Evaluating adaptability at software architec- ture level to identify the weaknesses of the architecture and further to improve adaptability of the architecture are very important tasks for software architects today. Our contribution is an Adaptability Evaluation Method (AEM) that defines, before system implementation, how adaptability requirements can be negotiated and mapped to the architecture, how they can be represented in architectural models, and how the architecture can be evaluated and analyzed in order to validate whether or not the requirements are met. AEM fills the gap from requirements engineering to evaluation and provides an approach for adaptability evaluation at the software architecture level. In this paper AEM is described and validated with a real-world wireless environment control system. Furthermore, adaptability aspects, role of quality attributes, and diversity of adaptability definitions at software architecture level are discussed. Keywords: Adaptability, adaptation, adaptive software architecture, software quality, software quality attribute. INTRODUCTION understand the system [6]. Examples of design decisions are the decisions such as “we shall separate user interface from Today, quality of a software system plays an increasingly the rest of the application to make both user interface and important role in the domain of software engineering.
    [Show full text]
  • Turning FAIR Data Into Reality
    Final Report and Action Plan from the European Commission Expert Group on FAIR Data TURNING FAIR INTO REALITY Research and Innovation 2018 Turning FAIR into reality European Commission Directorate General for Research and Innovation Directorate B – Open Innovation and Open Science Unit B2 – Open Science Contact Athanasios Karalopoulos E-mail [email protected] [email protected] European Commission B-1049 Brussels Manuscript completed in November 2018. This document has been prepared for the European Commission however it reflects the views only of the authors, and the Commission cannot be held responsible for any use which may be made of the information contained therein. More information on the European Union is available on the internet (http://europa.eu). Luxembourg: Publications Office of the European Union, 2018 Print ISBN 978-92-79-96547-0 doi:10.2777/54599 KI-06-18-206-EN-C PDF ISBN 978-92-79-96546-3 doi: 10.2777/1524 KI-06-18-206-EN-N © European Union, 2018. Reuse is authorised provided the source is acknowledged. The reuse policy of European Commission documents is regulated by Decision 2011/833/EU (OJ L 330, 14.12.2011, p. 39). For any use or reproduction of photos or other material that is not under the EU copyright, permission must be sought directly from the copyright holders. The Expert Group operates in full autonomy and transparency. The views and recommendations in this report are those of the Expert Group members acting in their personal capacities and do not necessarily represent the opinions of the European Commission or any other body; nor do they commit the Commission to implement them.
    [Show full text]
  • Software Maintainability and Reusability Using Cohesion Metrics
    International Journal of Computer Trends and Technology (IJCTT) – Volume 54 Issue 2-December2017 Software Maintainability and Reusability using Cohesion Metrics Adekola, O.D#1, Idowu, S.A*2, Okolie, S.O#3, Joshua, J.V#4, Akinsanya, A.O*5, Eze, M.O#6, EbiesuwaSeun#7 #1Faculty, Computer Science Department, Babcock University,Ilishan-Remo, Ogun State, Nigeria *2Faculty, Computer Science Department, Babcock University,Ilishan-Remo, Ogun State, Nigeria #3Faculty, Computer Science Department, Babcock University,Ilishan-Remo, Ogun State, Nigeria #4Faculty, Computer Science Department, Babcock University,Ilishan-Remo, Ogun State, Nigeria *5Faculty, Computer Science Department, Babcock University,Ilishan-Remo, Ogun State, Nigeria #6Faculty, Computer Science Department, Babcock University,Ilishan-Remo, Ogun State, Nigeria #7Faculty, Computer Science Department, Babcock University,Ilishan-Remo, Ogun State, Nigeria Abstract - Among others, remarkable external software’s lifetime. Ahn et al., (2003) estimated that quality attributes of interest to software practitioners/ maintenance takes up to 80% of the total costof engineers include testability, maintainability and producing software applications. Expectation of reusability.Software engineers still combat achieving more reliable, quicker time-to-market and softwarecrisis and even chronic software affliction maintainable systems. A lot of research has gone into not because there is no standardized software the areas of software reuse and maintenance due to development process but because enough attention is the fact that these among other issues concern not given to seemingly insignificant but crucial intimately system developers/architects/engineers details of internal design attributes such as cohesion rather than end-users. Therehas been enormous and coupling especially in object-oriented systems. growth in software reuse research from the days of Consequently, the aftermath is increased structured programming concepts to object-oriented maintenance cost, effort and time which negatively methods and beyond (e.g.
    [Show full text]
  • Software Reusability: Approaches and Challenges
    International Journal of Research and Innovation in Applied Science (IJRIAS) |Volume VI, Issue V, May 2021|ISSN 2454-6194 Software Reusability: Approaches and Challenges Moko Anasuodei1, Ojekudo, Nathaniel Akpofure2 1Department of Computer Science and Informatics, Faculty of Science, Federal University Otuoke, Nigeria 2Department of Computer Science, Faculty of Natural and Applied Sciences, Ignatius Ajuru University of Education, Nigeria Abstract: Software reuse is used to aid the software phases. Software engineering has been more centered on development process which in recent times can improve the original development which gives an optimal software at a resulting quality and productivity of software development, by faster and less costly price, a design process based on assisting software engineers throughout various software systemic reusable is now recognized. engineering phases to enhance the quality of software, provide quick turnaround time for software development using few Software reuse reduces efforts and cost, because software people, tools, and methods, which creates a good software development costs can be extremely high, but they are quality by enhancing integration of the software system to shared, such that the cost of reuse can be extremely low. provide a competitive advantage. This paper examines the One major advantage of software reuse suggested by concept of software reuse, the approaches to be considered for keswani et al (2014) explains that there is a significant need software reuse, which is broadly shared into three categories: component-based software reuse, domain engineering and for the number of bugs to be reduced during software software product lines, architecture-based software reuse and development process, such that instead of developing an challenges that affect the software reuse development process.
    [Show full text]
  • Is It Transferrable? Information's Reusability, Adaptability, And
    Is it Transferrable? Information’s Reusability, Adaptability, and Transportability through SCORM Macarena Aspillaga, Ph.D. VSD Corporation Lane, Suite 200 Virginia Beach, VA 23462 Abstract The need for the sharable content object reference model (SCORM) to decrease the size of its shareable content object (SCO) is evident, especially since the introduction of Web 2.0 environments and new delivery systems. If SCORM is to be part of these emerging technologies, it needs to decrease its SCO size to the activity level to allow greater reusability, repurpose, adaptability, and portability of its learning objects. This will keep courses current at a lower cost, as well as enhance the transfer of knowledge; it will also help teach competencies, which will boost productivity. Greater reusability will help increase mental models. Emerging technologies will require that SCORM incorporate new standards for navigation, as new mobile learning environments communicate in shorter segments, requiring smaller SCOs and a different data model. Background Advanced Distributed Learning (ADL) developed a collection of specifications and standards known as the sharable content object reference model, or SCORM, as a way to standardize e-learning within the defense industry. The need arose because each government contractor had its own system and guidelines, resulting in many inconsistencies. As a result, ADL is now in charge of publishing, governing, and updating SCORM specifications and standards. There have been several versions since SCORM’s inception in 1997. The latest version, SCORM 1.3, launched in 2004, and includes the ability to specify sequencing of activities that use content objects, and resolve ambiguities. This latest version also allows using and sharing information, regarding success status for multiple learning objectives or competencies across content objects and across courses for the same learner within the same learning management system (LMS).
    [Show full text]
  • Measuring Software Maintainability
    Aalto University School of Science Degree Programme in Computer Science and Engineering Juha Viljanen Measuring software maintainability Master's Thesis Espoo, August 10, 2015 Supervisor: Professor Marjo Kauppinen, Aalto University Advisor: Robert Brotherus Lic.Phil. (Chem.) Timo Lehtinen D.Sc. (Tech) Aalto University School of Science ABSTRACT OF Degree Programme in Computer Science and Engineering MASTER'S THESIS Author: Juha Viljanen Title: Measuring software maintainability Date: August 10, 2015 Pages: 94 Major: Software Engineering Code: T241-3 Supervisor: Professor Marjo Kauppinen Advisor: Robert Brotherus Lic.Phil. (Chem.) Timo Lehtinen D.Sc. (Tech) Maintenance forms the major part of the software's development costs. Keep- ing the software's code base in a good shape, i.e. maintainable, speeds up and reduces the cost of making changes and makes them less risky. Refactoring and reengineering are practices to improve a software's maintainability. An essential part of keeping a software's maintainability at a desired level or systematically improving its maintainability is to measure the progress and to find the parts of code whose improvement would have the biggest affect on the overall maintainability. This can be done by using metrics. It is crucial to make sure the metrics are actively used by the company personnel. This can be done by providing useful deployment practices for the metrics. A literature review and a case study was conducted using a simplified version of the Design Science. The aim was to find a relevant set of metrics and useful ways of deploying them at the case company. In the case study, workshops were organized at the case company to fulfill the aim.
    [Show full text]