Autori: Ferreira Franco E, Armenia S, Hiramai K
Editore: BSLab
Tipologia Prodotto: Contributo in volume
Collana: SYDIC International Workshop – Book of Abstract
Numero prima e ultima pagina: 38 – 43
ISBN: 9788890824258
Anno di Pubblicazione: 2017
Abstract:
The dissemination of software systems in corporate environments is a reality, and some authors no longer consider them as a competitive advantage, but rather as commodities (Carr, 2003). Its mass diffusion made companies operational and managerial dependent on them (Melville, Kraemer and Gurbaxani, 2004). This phenomenon that has been accelerated by the increased competitiveness (Bharadwaj et al., 2013; Drnevich and Croson, 2013) and the increasing amount of information produced and consumed (Chen, Chiang and Storey, 2012). In addition to its ubiquitous presence, software systems are operating for a longer time and demanding increasing resources. According to Jones (2008), the mean lifetime of management information systems (MIS) reached 20 years in 2005, twice the average lifetime measured on 1990. Consequently, some authors started to compare them to natural systems, where observed behaviors can be explained in terms of survival goals (Sauer, 1993). Their success (survival) is achieved through the continuous supply of resources that support the sustainment of its operation (Yeo, 2002). As a software system ages, it needs to be continuously modified and expanded to remain useful and meeting business needs and objectives (Lehman, 1980; Parnas, 1994). This longevity demands higher levels of effort being spent on maintenance activities, which in turn increases the share of maintenance costs when compared to total costs of ownership of a software system. INCOSE (2015) reported that approximately 80% of the total resources invested in software systems are due to the operating and maintenance phases. It is not surprisingly that nowadays the software inventory owned by a company usually represents a significant share of its assets (Wiederhold, 2006); thus they have a vital interest in preserving and maximizing the investments made to build their software libraries and optimize future ones. Nevertheless, what are the health conditions of those software systems? Avgeriou et al. (2016) state that “many large software systems are, like most of the world’s state economies, in deep debt. However, this debt is technical, no financial.” These debts are due to violations of architecture and coding good practices that lead to quality decrease over time. The metaphor “technical debt” was created to describe the liability accumulated by the decisions taken, intentional or not, to deliver software systems containing sub-optimal code quality to achieve short-term business objectives (Cunningham, 1993). Over the time, it increases the maintenance costs, the number of unresolved errors, reduces its modifiability to meet current and future business needs, and therefore, harms users’ satisfaction in the long-term evaluation. For reducing this liability, the software system must be refactored to remove the violations incurred. The refactoring can be performed during maintenance activities, and there are many taxonomies for defining them. The ISO/IEC 14764:2006 standard was selected for describing the different activities and effort necessaries for sustaining a software system operation lifecycle. Software systems operation and maintenance are social-technical endeavors, which involves interactions between technological components, people, information and organizational issues. From those interactions a dynamically complex environment arise, containing feedback loops, accumulations, delays between causes and effects, present emergent behaviors, and requires non-trivial and non-intuitive solutions Georgantzas and Katsamakas, 2008). The current work aims to explore how to prioritize function and nonfunctional maintenance activities to extend a software systems lifetime, for maximizing the investments made, while still being able to meet future needs and preserving sufficient levels of its quality characteristics. Software Process Simulation and Modeling (SPSM) is an area of research that has sought to contribute for better evaluating and predicting potential impacts of proposed software process improvements. It has been perceived as an approach: capable of analyzing complex business context; to support policy design and evaluation; and to perform tests and experiments for evaluating scenarios that would often be economically unfeasible to explore in the real world (Kellner, Madachy and Raffo, 1999). The main contribution of this work is the proposal and development of a simulation model that permits to expand the current knowledge regarding the long-term implications that maintenance practices have on the software’s quality characteristics, by uncovering elements and its causal effect relationships that account for the observed dynamical behavior and identifying dysfunctional consequences of current practices. The model will also support the design and evaluation (through scenario analysis) of maintenance policies that sustain adequate levels of quality attributes throughout the life cycle of software systems and optimize the tradeoff compromise between technical debt accumulation, maintenance cost, and software quality characteristics. In the mid-80s, works applying the System Dynamics approach to study the dynamics associated with software projects contexts began to emerge (Abdel-Hamid and Madnick, 1982; Abdel-Hamid, 1984); which proliferated in the 90´s (Abdel-Hamid and Madnick, 1991; Waeselynck and Pfahl, 1994; Lin, Abdel-Hamid and Sherif, 1997; Wernick and Lehman, 1999). The existing published works focused on software development process or part of the development process leaving a gap not explored related to the implementation and post implementation phases of software systems initiatives; that involves the interaction with end users, maintenance activities, long-term evaluations, etc. Recently, some works were published dealing with the operation, maintenance, and especially software sustainment regarding military systems of systems based on software (Ferguson, Phillips and Sheard, 2014; Sheard et al., 2014). Although dealing with long-term maintenance effects, those works did not distinct maintenance activities types nor did the deal with software quality characteristics. This is a case study research work, which proceeded in four phases: the sampling of a case, data gathering, model development and calibration, and data analysis. In the first phase, a single case was selected to increase the depth of the analysis, acquire knowledge and report experience. The criteria used for software system selection was based on the availability of its source code, its relations to the MIS application category, and being under development and maintenance for a long period. For data gathering, the Software Quality Assessment base on Life-cycle Expectance (SQALE) method was used in conjunction with a static analysis tool. SQALE represents a method to estimate and manage technical debt by defining a quality model, which establish a list of nonfunctional requirements representing the “right code” and serves as a reference to estimates the software’s technical debt (Letouzey and Ilkiewicz, 2012). Static analysis is the process of evaluating a system or component, based on its form, structure, content or documentation, which does not require program execution and can also be automated (ISO/IEC/IEEE 24765:2010). The SonarQube2 tool was employed to gather the empirical data because it implements the SQALE methods and groups its metrics according to the SQuaRE’s quality model (ISO/IEC 25010:2011); the proxy used in this work for characterizing the software quality attributes (functional suitability, reliability, security, and maintainability). In the third phase, the proposed model was developed applying the Systems Dynamics approach and extended the results presented in a previous work (Franco et al., 2016). The System Dynamics approach was developed in the 50’s to study complex business problems (Forrester, 1961) and consists of an iterative process to define a dynamic hypothesis, develop a simulation model, test it, and to formulate and evaluate different intervention policies (Sterman, 2000). The results of this work are expected to be obtained in the fourth phase, where new policies of software maintenance process could be and discussed, and the proposed model could be able to support the long-term evaluation consequences caused by of decisions taken during software acquisition, operation, and maintenance.
Keywords: Software Quality, Software Maintenance; Technical Debt; System Dynamics.