an examination of change profiles in reusable and non-reusable software systems

22
JOURNAL OF SOFTWARE MAINTENANCE AND EVOLUTION: RESEARCH AND PRACTICE J. Softw. Maint. Evol.: Res. Pract. 2010; 22:359–380 Published online 12 May 2010 in Wiley Online Library (wileyonlinelibrary.com). DOI: 10.1002/smr.459 An examination of change profiles in reusable and non-reusable software systems Anita Gupta 1, , , Daniela Cruzes 2 , Forrest Shull 2 , Reidar Conradi 1 , Harald Rønneberg 3 and Einar Landre 3 1 Department of Computer and Information Science (IDI), Norwegian University of Science and Technology (NTNU), Trondheim, Norway 2 Fraunhofer Center Maryland, College Park, U.S.A. 3 StatoilHydro ASA KTJ/IT, Forus, Stavanger SUMMARY This paper reports on an industrial case study in a large Norwegian Oil and Gas company (Statoil- Hydro ASA) involving a reusable Java-class framework and two applications that use that framework. We analyzed software changes from three releases of the reusable framework, called Java Enterprise Framework (JEF), and two applications reusing the framework, called Digital Cargo File (DCF) and Shipment and Allocation (S&A). On the basis of our analysis, we found the following: (1) Profiles of change types for the reused framework and the applications are similar, specifically, perfective changes dominate significantly. (2) Although on observing the mean value adaptive changes are more frequent and are active longer in JEF and S&A, these systems went through less refactoring than DCF. For DCF, we saw that preventive changes were more frequent and were active longer. (3) Finally, we found that designing for reuse seems to lead to a long-term payoff in relation to non-reusable software systems. Copyright © 2010 John Wiley & Sons, Ltd. Received 11 February 2010; Accepted 11 February 2010 KEY WORDS: software reuse; software quality; software changes; case study Correspondence to: Anita Gupta, Department of Computer and Information Science (IDI), Norwegian University of Science and Technology (NTNU), Trondheim, Norway. E-mail: [email protected] Contract/grant sponsor: Norwegian Research Council for the SEVO; contract/grant number: 159916/V30 Contract/grant sponsor: NSF; contract/grant number: CCF0438933 Copyright 2010 John Wiley & Sons, Ltd.

Upload: anita-gupta

Post on 06-Jul-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: An examination of change profiles in reusable and non-reusable software systems

JOURNAL OF SOFTWAREMAINTENANCE AND EVOLUTION: RESEARCH AND PRACTICEJ. Softw. Maint. Evol.: Res. Pract. 2010; 22:359–380Published online 12May 2010 inWiley Online Library (wileyonlinelibrary.com). DOI: 10.1002/smr.459

An examination of changeprofiles in reusable andnon-reusable software systems

Anita Gupta1,∗,†, Daniela Cruzes2, Forrest Shull2,Reidar Conradi1, Harald Rønneberg3 andEinar Landre3

1Department of Computer and Information Science (IDI), Norwegian Universityof Science and Technology (NTNU), Trondheim, Norway2Fraunhofer Center Maryland, College Park, U.S.A.3StatoilHydro ASA KTJ/IT, Forus, Stavanger

SUMMARY

This paper reports on an industrial case study in a large Norwegian Oil and Gas company (Statoil-Hydro ASA) involving a reusable Java-class framework and two applications that use that framework.We analyzed software changes from three releases of the reusable framework, called Java EnterpriseFramework (JEF), and two applications reusing the framework, called Digital Cargo File (DCF) andShipment and Allocation (S&A). On the basis of our analysis, we found the following: (1) Profiles ofchange types for the reused framework and the applications are similar, specifically, perfective changesdominate significantly. (2) Although on observing the mean value adaptive changes are more frequentand are active longer in JEF and S&A, these systems went through less refactoring than DCF. For DCF,we saw that preventive changes were more frequent and were active longer. (3) Finally, we found thatdesigning for reuse seems to lead to a long-term payoff in relation to non-reusable software systems.Copyright © 2010 John Wiley & Sons, Ltd.

Received 11 February 2010; Accepted 11 February 2010

KEY WORDS: software reuse; software quality; software changes; case study

∗Correspondence to: Anita Gupta, Department of Computer and Information Science (IDI), Norwegian University of Scienceand Technology (NTNU), Trondheim, Norway.

†E-mail: [email protected]

Contract/grant sponsor: Norwegian Research Council for the SEVO; contract/grant number: 159916/V30Contract/grant sponsor: NSF; contract/grant number: CCF0438933

Copyright q 2010 John Wiley & Sons, Ltd.

Page 2: An examination of change profiles in reusable and non-reusable software systems

360 A. GUPTA ET AL.

1. INTRODUCTION

Several organizations are planning to invest, or have already invested money, time and resources insoftware reuse. Through this investment, these organizations expect to improve their competitivenesswith respect to their competitors, as well as to reduce time tomarket through the reduction of cost andeffort. Another goal is to increase their productivity in the software development and maintenanceprocess and, consequently, to improve the quality and reliability of the software products theydevelop [1,2].In this process of continuing improvement of productivity and quality, software changes play a big

role because the ability to alter software quickly and reliably means that new business opportunitiescan be taken advantage of, and that businesses thereby can remain competitive [3].The degree to which software reuse can help in achieving these desired benefits has been the

object of study [4–8]. From these studies, some have concluded that reusable software componentsare more stable than non-reusable components [4,6,7]. Other studies conclude the opposite, statingthat reused components with major revisions later will need more changes per source line thannewly developed components [5].However, few of these studies have investigated and compared the characteristics of change

profile (such as distribution, how long the changes tend to stay in the system and number of filesmodified for each change type) for reusable and non-reusable components. Our previous resultshave shown that the change profile of a system can be an indicator of the underlying process usedin software development and whether it has been effective [8].In the study described in this paper, we investigate whether changes’ profiles can provide useful

insights in systems designed for reuse as well as the systems that reuse them. We hypothesizethat aspects of software changes, such as their frequency, type, or difficulty, can help analysts tounderstand characteristics of the process being applied (e.g., whether different change profiles areseen when designing for reuse vs designing for a specific context).The environment of our study was the IT-department of a large Norwegian Oil and Gas company,

StatoilHydro ASA‡. We collected data from software changes for three releases of a reusable classframework called Java Enterprise Framework (JEF). We also collected data from three releaseseach of two additional applications, called Digital Cargo Files (DCF) and Shipment and Allocation(S&A), both of which used this framework ‘as-is’, without modification. All data in our studyare software changes from the evolution (e.g., development) and maintenance phases for the threereleases each of the three systems.We performed statistical analysis and also a Root Causal Analysis (RCA) with a senior developer

to interpret our findings with respect to why the reused framework had lower or higher of certainchange types, compared with those of the applications reusing it.This study shows that

• Perfective changes account statistically significant for the majority of changes in the reusedframework and systems reusing it.

‡ASA stands for ‘allmennaksjeselskap’, meaning Incorporated.

Copyright q 2010 John Wiley & Sons, Ltd. J. Softw. Maint. Evol.: Res. Pract. 2010; 22:359–380DOI: 10.1002/smr

Page 3: An examination of change profiles in reusable and non-reusable software systems

AN EXAMINATION OF CHANGE PROFILES 361

• Although in a short term is not clear the benefits of reuse (differences on the change profiles)in terms of number of changes for JEF compared with DCF and S&A, we have observeddecreasing number of changes for JEF over its three releases.

• We have also observed that for most of the changes, it takes less time to change a file for S&Athan for DCF. Hence, reusing JEF for second time is already starting to payoff.

The paper is structured as follows. Section 2 presents the related work. Section 3 introduces thecontext of changes in StatoilHydro ASA. Section 4 presents the research questions answered in thiscase study. Section 5 describes the research methodology. Section 6 presents the results and thepossible explanations of the results. Section 7 looks into the validity threats for our study. Section8 states our conclusions.

2. RELATED WORK

Lehman et al. [9] carried out the first empirical work on software changes, the two of these well-known Laws of Software Evolution can be summarized as follows: Law of continuing change(a system that is being used undergoes continuing change) and Law of increasing complexity(a computer program that is changed becomes less and less structured).Since Lehman’s works, other studies about changes have been done and changes’ categorizations

have been defined. The most common categorization scheme is to divide changes based on theintent of making the change, namely corrective, adaptive, perfective and preventive. In general,corrective refers to fixing bugs, adaptive is related to new environments or platforms. Implementingaltered or new requirements, as well as improving performance, can be classified as perfective.Finally, changes made to improve future maintainability can be thought of as preventive [10]. Suchtaxonomy is useful because it captures the kind of situations that developers face over time. However,differences may exist in the definition of these change classes, which can make the comparison ofstudies difficult. We have in our study decided to use the definitions given by [11]

• Adaptive changes are those related to adapting to new platforms, environments or other appli-cations.

• Corrective changes are those related to fixing bugs.• Perfective changes are those that encompass new or changed requirements as well as opti-mizations.

• Preventive changes are those having to do with restructuring and reengineering.

Several studies [12–17] have investigated the distributions of different changes (e.g., corrective,adaptive, perfective and preventive) based on change logs of different systems (see our previouspaper [8] for a more detailed description of these studies). However, to summarize, these studiesshowed that

• The classifications of changes have different names for each class among different studies.• Definitions of change types are different among different studies.• The distributions of changes are different for different systems.

In our previous paper [8], we showed different studies and the most frequent changes found inthe results. We also distinguished systems that were designed to be reused as part of another system.

Copyright q 2010 John Wiley & Sons, Ltd. J. Softw. Maint. Evol.: Res. Pract. 2010; 22:359–380DOI: 10.1002/smr

Page 4: An examination of change profiles in reusable and non-reusable software systems

362 A. GUPTA ET AL.

Table I. Studies comparing changes of reusable components vs those in non-reusable ones.

Quality focus Quality measures Conclusion

Change density [4–6] Number of change requests persource code line

Reused components are morestable in terms of volume of codemodified between releases [4]

Percentage of code-line changes(enhancement or repair)

The modules reused with majorrevision (≥25% revision) had themost code changes per SLOC [5]

Number of change requests persource code line

The reusable framework hadhigher change density in the firstrelease, but lower change densitythan the non-reusable applicationover the successive releases [6]

Number of changes [18] The number of changes(enhancement or repair) to amodule

More reuse results in fewerchanges [18]

Amount of modified code [4] Size of modified or new/deletedcode/total size of code percomponent between releases.

Non-reused components aremodified more than the reusedones [4]

Number of change scenarios [19] Number of changes to which asoftware system is exposed (e.g.,adding communication protocols,porting to new platforms, issuesrelated to the database manager,etc.)

Reusing components and aframework resulted in increasedmaintainability in terms of cost ofimplementing change scenarios[19]

We could see that 64% of the studies had perfective changes as the most frequent ones, 21% hadcorrective changes, followed closely by 14% that had adaptive changes as the most frequent ones.A few studies [4–6,18,19] have examined the possible influence of software reuse on the changes

of a system, as shown in Table I.Although most studies [4,6,18,19] in Table I conclude that reusable components are more stable

in terms of the volume of code modified, one study observed that a reused module that undergoesmajor revision has the most changes per source line [5]. A close investigation of the studies inTable I further illustrates that none of the studies performed detailed analyses (as was the case withstudies listed in our previous paper [8]). ‘Detailed analysis’ here refers to dividing the changesinto different types and comparing the distribution of the changes according to type. Thus, furtherstudy is needed to investigate the relation between software reuse and software changes of differenttypes. We are unaware of other previous studies that have compared change distributions betweenreusable and non-reusable software, which we are tour focus in this study.

3. THE STATOILHYDRO ASA SETTING

3.1. The investigated company

StatoilHydro ASA is a Norwegian company, and is part of the Oil and Gas industry. It is repre-sented in 40 countries, has a total of about 31 000 employees and is headquartered in Europe.

Copyright q 2010 John Wiley & Sons, Ltd. J. Softw. Maint. Evol.: Res. Pract. 2010; 22:359–380DOI: 10.1002/smr

Page 5: An examination of change profiles in reusable and non-reusable software systems

AN EXAMINATION OF CHANGE PROFILES 363

StatoilHydro ASA has invested in the development for reuse (i.e., the deliberate development ofsoftware components that can be reused), and also in the development with reuse (i.e. the inclusionof these reusable components into new software) [20].The central IT-department of the company is responsible for developing and delivering software

meant to give key business areas better flexibility in their operation. It is also responsible for theoperation and the support of IT-systems. This department consists of approximately 100 developers,located mainly in Norway.

3.2. The software systems investigated

Since 2003, a central IT strategy of the O&S (Oil Sales, Trading and Supply) business area hasbeen to explore the potential benefits of reusing software systematically. StatoilHydro ASA hasdeveloped a custom framework of reusable components based on J2EE, called JEF. The actual JEFframework consists of seven separate components, which can be applied separately or togetherwhen developing applications. Table II shows the size and the release date of the three JEF releasesthat were available when our analysis was conducted. (After our analysis was completed, JEF 4.0was released. It is not discussed in this paper.) This JEF framework is currently being reused in twoapplications at StatoilHydro ASA. In this study we investigated both of these applications, namelyDCF and S&A.DCF is mainly a document storage application: A ‘cargo file’ is a container for working documents

related to a deal or cargo, used by all parties in the O&S strategy plan at StatoilHydro ASA. DCFis meant to replace the current means of handling cargo files, which are physical folders containingprintouts of documents pertaining to a particular cargo or deal. The DCF application also consistsof seven components. Table II gives an overview of the size and the release date of the threeDCF releases.S&A is an application that employs common business principles to enable efficiency and control

in business processes that pertain to lift (i.e., transfer of gas from storage tank to a ship) and cargoplanning. Lift planning is based on a lifting program that generates an overview of the cargoes thatare scheduled to be lifted. The lifting program operates on a long-term basis (e.g., 1–12 months), andgenerates tentative cargoes based mainly on closing stock and predicted levels of production. Thelifting program is distributed to the partners (other oil and gas companies, such as Shell and Gaz deFrance), so that they can plan the lifting of their stock. The planning of shipment and cargo coversactivities to accomplish such lifting. Users use the lifting program to enter detailed informationabout a cargo, based on documented instructions from partners, and perform short-term planningbased on the pier capacity and storage capacity. After loading, sailing telex and cargo documentsare issued. Then the cargo is closed and verified. The S&A application allows the operators to carry

Table II. Size and release date of the three systems.

Release 1 Release 2 Release 3

System Date Size (NSLOC) Date Size (NSLOC) Date Size (NSLOC)

JEF 14 June 2005 16 875 9 September 2005 18 599 8 November 2005 20 348DCF 1 August 2005 20 702 14 November 2005 21 459 8 May 2006 25 079S&A 2 May 2006 29 957 6 February 2007 50 879 12 December 2007 64 319

Copyright q 2010 John Wiley & Sons, Ltd. J. Softw. Maint. Evol.: Res. Pract. 2010; 22:359–380DOI: 10.1002/smr

Page 6: An examination of change profiles in reusable and non-reusable software systems

364 A. GUPTA ET AL.

out ‘what-if’ analysis on shipments that are to be loaded at terminals and offshore. The currenttrading system (‘SPORT’) is not able to handle complex agreements (i.e., the mixing of oil ofdifferent qualities within the same shipment), or automating the transfer and entry of related data(which is currently often done manually). The main goal of the S&A application is to replace someof the current processes/systems, as well as to offer some new functionality. The S&A applicationhas also three releases. Table II gives an overview of the size and release date of these releases.JEF, DCF and S&A have certain similarities. These systems operate in the same business domain,

were conducted by a fairly stable set of developers from the same IT-department, were built overnearly the same time period and are of similar size. The maturity level is the same for JEF, DCF andS&A. Thus, they provide us with a fairly controlled environment for looking at whether process(i.e., designing for reuse vs designing for a specific context) considerations impact the changecharacterization of systems.From Table II we can see that the framework and the applications are growing. JEF is being used

in Physical Deal Maintenance (PDM) and reused ‘as-is’ in DCF and S&A. For this reason, we saythat JEF is reusable, and DCF and S&A are non-reusable. JEF, DCF and S&A will grow in sizebecause when the clients use the applications they will make some changes to it, which will alsorequire changes to the framework. For instance, adding new functionality to the reusable and thenon-reusable softwares will result in growth for JEF, DCF and S&A. Another explanation of thegrowth of the framework and the applications is that when a defect is found in Release 1, the fixeswill be included in Release 2, etc. Thus, the framework and the application will grow.JEF Release 1 was finished around June 2005, and PDM in the summer 2005 was the first

application to use the JEF framework (Release 1). In this period, some weaknesses in the frameworkwere discovered. These changes were then incorporated into JEF, ending early September 2005.Then, Release 2 of the JEF framework was delivered. The DCF application reused Release 2 of theJEF framework during late summer and autumn 2005. After DCF reused the JEF framework, somemore minor changes were made to the framework, which were finished by early November 2005.Then, Release 3 of the JEF framework was deployed. The second application, S&A, reused Release3 of the JEF framework, and was developed during early 2006. The relation between the JEF andthe applications using/reusing it are shown in Figure 1. The same modules were considered acrossthe different releases of the systems. The entire system was used in each release.The company uses the same test team and has the same test coverage for both the reusable and

non-reusable software. For instance, for unit testing, 85% of the code lines were executed by unittests to ensure that the code worked as expected. Additionally, the users are not the same for JEF,DCF and S&A, and some of the developers have been involved in the development for all threesystems. We have not included defects in the PDM application other than those in JEF in our study,because PDM was the first application to use JEF, not reuse it (like DCF and S&A).

3.3. Collected software change data

To handle changes in requirements or implemented artifacts, Change Requests (CRs) are written (bytest manager or developers) and stored in the Rational ClearQuest tool. Examples of change requestsare to add, modify or delete functionality; solve a problem with major design impact; or adapt tochanges from, for example, JEF component interfaces. The project leader in StatoilHydro ASAconstitutes the Change Control Board (CCB) in this context. The CCB is responsible for approving

Copyright q 2010 John Wiley & Sons, Ltd. J. Softw. Maint. Evol.: Res. Pract. 2010; 22:359–380DOI: 10.1002/smr

Page 7: An examination of change profiles in reusable and non-reusable software systems

AN EXAMINATION OF CHANGE PROFILES 365

Figure 1. The relation between JEF, DCF and S&A.

or rejecting a CR, and distributing the approved change requests (from Rational ClearQuest) amongthe developers. After the approved CRs have been distributed, the developers access the sourcefiles in the version control system, i.e., Rational ClearCase, to make the necessary changes. Whenimplementing the changes, the developers follow the following steps:

• They check-out the files that correspond to the CR that they are working on.• They implement changes on the checked-out files, possibly locking the branch that they areworking on.

• They give the file a change description, which is a thorough description that elaborates onwhat changes they have made, and a time and date (timestamp).

• Finally, they check the changed files back into Rational ClearCase.

Owing to the fact that Rational ClearCase captures information about all source code and othersoftware changes, we extracted the data for JEF, DCF and S&A from Rational ClearCase asdescribed in Table III, with a corresponding example. The information was extracted manually.

4. RESEARCH QUESTIONS

The existence of comparable systems in the StatoilHydro ASA environment gave us the ability toexamine our major research goal, the impact of reuse.

• The reusable framework (JEF) had changes related to all kinds of potential downstream reuse.• The applications reusing the framework, DCF and S&A, had only software changes relatedto the specific goals of that application (explained in Section 3). Some particularities of eachsystem development process are

Copyright q 2010 John Wiley & Sons, Ltd. J. Softw. Maint. Evol.: Res. Pract. 2010; 22:359–380DOI: 10.1002/smr

Page 8: An examination of change profiles in reusable and non-reusable software systems

366 A. GUPTA ET AL.

Table III. The data collected from Rational ClearCase.

Data Example

File id 8System JEFFilename DataAccessExceptionNumber of versions 2Check-in dates Version 1: 19.04.2005, Version 2: 04.01.2007Physical size (kilobytes) 1800Size of a files first version Non-commented SLOC (source lines of code): 34

Commented SLOC: 58Size of a files last version Non-commented SLOC: 34

Commented SLOC: 51Descriptions of what changes occurred Version 1: Component support for accessing data.in each file version Version 2: Remove obsolete java source file header entriesComponent to which the file belongs One of the seven JEF or DCF components

◦ DCF1.0 is relatively unstructured, since it was unclear what the developers were supposedto implement, and how it should be organized. In the beginning, the developers did not havea detailed design, and a lot of changes were made regarding functionality and design duringthe implementation and testing period. DCF 2.0 and 3.0 were based on refactoring. Priorto DCF2.0, when the design and the goals became clearer the developers realized that thecode they had developed was complex and hard to maintain. Therefore, they decided to dorefactoring to improve the structure and ease the code maintenance.

◦ S&A did not experience the same unstructured development as DCF, but S&A release 1.0was developed without involving the users. The users got involved in releases 2.0 and 3.0 andwhen the users got to see the application, many changes were made to requirements. Afterthe deployment of release 3, two new users saw the system and did a lot of acceptance tests.

The research questions we addressed for our goal are:RQ1: Does the distribution of change types vary for different development characteristics? We

hypothesize that the development process being employed would have a measurable impact on thetype and the number of changes required to a system. Making an application reusable may help toreduce certain kinds of changes, but may increase the frequency of other kinds of changes, as forexample, components that need to be reusable may have more adaptive changes. From our previouspaper [8] we saw that since DCF went through refactoring, this application had a higher numberof preventive changes than JEF and S&A. Metrics associated with this research question include

• Number of changes to the source code, classified into perfective, corrective, preventive andadaptive changes for JEF, DCF and S&A.

Related to this research question, we have the following specific questions:

• RQ1.1: Does the reused framework (JEF) have fewer changes than the systems reusing it(DCF and S&A)?

• RQ1.2: Do perfective changes account for the majority of the changes in any type of reusedevelopment approach?

• RQ1.3: Does S&A have fewer changes than DCF?

Copyright q 2010 John Wiley & Sons, Ltd. J. Softw. Maint. Evol.: Res. Pract. 2010; 22:359–380DOI: 10.1002/smr

Page 9: An examination of change profiles in reusable and non-reusable software systems

AN EXAMINATION OF CHANGE PROFILES 367

RQ2: What change types are the longest active for different development characteristics? Ourpurpose is to investigate what change types (perfective, preventive, corrective and adaptive) arelongest active for different systems, which may provide some insight into which types of changesare more difficult or problematic to make. Metrics associated with this research question include

• Number of days to close a change (i.e., the date the change was closed—the date the changewas opened).

It is important to clarify that the changes that are longest active do not necessarily require moreeffort; a change may not have been constantly under work the entire time it was open. However, ifcharacteristic patterns are found, this can be useful as the starting point for a conversation with thedevelopers to explore differences. The following are the related research questions for RQ2:

• RQ2.1: What change type is the longest active for each of the three systems?• RQ2.2: Are changes closed more quickly in JEF than for DCF and S&A?• RQ2.3: Are changes closed more quickly in S&A than DCF?

RQ3: How localized are the effects of different types of changes, for different developmentcharacteristics? We hypothesize that a change that needs to modify many files is not well-supportedby the architecture, and hence more expensive to fix. Our purpose is to investigate whether devel-opment changes can be successful in reducing this metric for a system, and allowing future changesto be more localized. Metrics associated with this research question include

• Number of files modified for each change.

We would like to investigate the following research questions for RQ3:

• RQ3.1: What is the change type with more files modified for each of the three systems?• RQ3.2: Is the average number of files modified per change lower in JEF than DCF and S&A?• RQ3.3: Is the average number of files modified per change lower in S&A than DCF?

RQ4: Can we see the benefits of the reuse during this time? No study listed in Table I hascompared the change distribution of reused software and the software reusing it over time. Wewere particularly interested in gaining insight into properties of systems being designed to bereusable, since that was a major focus for the reuse program at StatoilHydro ASA. Thus, it remainsan open question whether reused software and its applications follow similar or different changeprofiles over time. Answers to this question would make it easier for software maintainers toplan maintenance effort according to possible change profiles of reused software and softwarereusing it.

5. RESEARCH METHODOLOGY

We analyzed a representative sample of the software changes for the JEF framework, and the DCFand S&A applications to answer the research questions RQ1–RQ4.Our analysis began from the files checked into Rational ClearCase. Over all releases, there were

in total 481 files for the JEF, 1365 for DCF and 405 for S&A. We selected a subset of the files

Copyright q 2010 John Wiley & Sons, Ltd. J. Softw. Maint. Evol.: Res. Pract. 2010; 22:359–380DOI: 10.1002/smr

Page 10: An examination of change profiles in reusable and non-reusable software systems

368 A. GUPTA ET AL.

Table IV. Description of data set collected from ClearCase.

Actual number Number of Number ofof files files collected changes collected

DCF: Release 1 (before refactoring) 426 282 2111DCF: Releases 2 and 3 (after refactoring) 939 650 2539S&A 405 343 686JEF framework 481 442 1105

Total 2251 1717 5755

to analyze but still covering a representative subset of the files in each component. When wecollected the data, we decided to have a threshold value of 10 files per component. If a componenthad less than 10 files, we included all the files. If there were more than 10 files, we picked arandom subset that, we assumed, would be representative of the properties of the entire component.A sampling calculator [21] was used to determine the sample size confidence level (95%) andinterval (3%). For example, the component JEFClient had 195 files. Using the calculated samplesize from the sampling calculator, which was 165 files, we randomly (using a mathematical functionin MS Excel, i.e., RAND()∗(b−a)+a) selected 165 files from the JEFClient to include in thedata set.In total, we analyzed changes of 442 files and 1105 changes for the JEF framework, 932 files and

4650 changes for the DCF application, and 343 files and 686 changes from the S&A application.Table IV gives an overview of the actual number of files in Rational ClearCase vs the number offiles we analyzed. We can see that the number of changes for DCF is higher than for JEF becauseDCF development was going on for about 10 months (Table II), whereas JEF development wasgoing on for about 6 months (Table II). Owing to the longer development period, DCF faced morechanges. The number of changes for S&A is lower than JEF and DCF, in spite of the fact thatthe development was going on for more than a year (see Table II). This is because three of thecomponents in S&A (out of seven components) are web components, and there were not reportedany changes to these components in Rational ClearCase.Two researchers classified all the change descriptions separately. They then compared the results

jointly. During the classification and the comparison, we noticed that some of the changes descrip-tions were labelled as ‘no changes’ (meaning no changes were made to the code), and ‘initialreview’ (meaning changes resulting from formal code review of the code). The changes in category‘code review’ are changes we cannot classify, since no description of the change was provided. Wegrouped ‘no changes’ into the category ‘other’ and ‘initial review’ into the category ‘code review’.The changes in the category ‘other’ and ‘code review’ are excluded from the analysis for RQ1–RQ4.Quantitative differences among the change profiles of the systems were used to formulate questionsfor the development team. These questions were addressed via interviews, which elicited possibleexplanations for these differences.We performed a fish-bone RCA [22] by interviewing a senior developer who was familiar with

the development of both the JEF framework and the applications. We first showed him the results ofour data analysis (to avoid a possible threat to validity, we did not show him our research questions).We then asked him to interpret the causes of changes with respect to tools and environment, inputand requirements, method and people.

Copyright q 2010 John Wiley & Sons, Ltd. J. Softw. Maint. Evol.: Res. Pract. 2010; 22:359–380DOI: 10.1002/smr

Page 11: An examination of change profiles in reusable and non-reusable software systems

AN EXAMINATION OF CHANGE PROFILES 369

6. RESULTS

Before investigating our specific research questions, we examined the distribution of data across thechange history. The test for normality of our data sets failed, meaning that the data are not normallydistributed. Hence, we decided not to use T -tests to statistically test our hypotheses but use othernon-parametrical tests. The following is a summary and possible explanation of the results fromour analysis of software changes for JEF, DCF and S&A.

6.1. RQ1: Does the distribution of change types vary for different developmentcharacteristics?

We plotted our data in a histogram, shown in Figure 2. Figure 2 shows that perfective and correctivechanges are among the majority of changes, for both the reusable framework (JEF) and the systemswith reuse (DCF and S&A). From the RCA we got the following explanations:

• The perfective changes constitute the highest percentage in the DCF (58%) and S&A (39%).DCF had time-to-market pressure, unclear requirements and incomplete design at the earlyphases of implementation. This led to many perfective changes later. S&A was first developedwithout involving the users. When the users were first able to provide feedback, many changeswere made to requirements.

• Both DCF (25%) and S&A (24%) have a high percentage of corrective changes. For DCF andS&A, the developers did not have a detailed design at the beginning. Hence, many correctivechanges were made to functionality and design during the implementation and testing period.

Figure 2. Number of Changes: (a) percentages and (b) frequencies.

Copyright q 2010 John Wiley & Sons, Ltd. J. Softw. Maint. Evol.: Res. Pract. 2010; 22:359–380DOI: 10.1002/smr

Page 12: An examination of change profiles in reusable and non-reusable software systems

370 A. GUPTA ET AL.

• Both DCF (16%) and S&A (11%) have a higher percentage of preventive changes than JEF(3%). Time pressure and the incomplete design of DCF led to some refactoring during imple-mentation. S&A had more rules and business logic than JEF and DCF, which also led to somerefactoring. The reason for this was that some of the rules and business logic that developershad developed were complex and hard to maintain. Hence, the need for refactoring.

Our results confirm some of the findings from the earlier studies [15–17], which show that perfec-tive and corrective changes are the most frequent ones independent of which kind of developmentcharacteristics the applications have. Regarding the perfective changes, a contributing factor on DCFwas an incomplete and poorly documented design, which required a high number of improvementsover time. An important factor for S&A was that users were not involved from the beginning ofthe project; when they were involved and used the application, new changes emerged. For JEF, theimportant factor was to develop a common framework to support Graphical User Interface (GUI)development ‘upfront’ (i.e., without knowing all the functionalities a framework may need).The least frequent changes for the system with reuse DCF are the adaptive changes, and for

the reusable framework as well as the system with reuse S&A the least frequent changes are thepreventive changes.We described above the contributing factors for perfective and corrective changes for each of the

systems, since they accounted for the majority of the changes for those systems. The reasons forthe remaining changes (adaptive and preventive) for each system were

• DCF:

◦ Preventive changes: Time pressure and incomplete and poorly documented design lead tosome refactoring, since everything was not implemented optimally the first time.

◦ Adaptive changes: Minor changes were made to the environment/platform, which explainsthe small amount of adaptive changes.

• S&A:

◦ Preventive changes: S&A did not go through the same time pressure as DCF during devel-opment. That resulted in a higher code quality for S&A, and less need for refactoring.

◦ Adaptive changes: S&A has implemented more optimized algorithms to do lift and cargocalculations efficiently and properly (the main part of the application). Therefore, the busi-ness logic in S&A needs to be adjusted to the different environments within which theapplication is going to be used. Additionally, S&A is reusing the third release of JEF andchanges in JEF affected S&A.

• JEF:

◦ Preventive changes: JEF did not go through the same time pressure as DCF and S&A duringdevelopment. That resulted in a higher code quality for JEF, and less need for refactoring.

◦ Adaptive changes: StatoilHydro ASA changed their version control system from PVCSto Rational ClearCase in the middle of the project. All the files in the PVCS had a javacomment, but when StatoilHydro ASA switched to Rational ClearCase the java commentsin all the files were removed. The reason for why these changes are seen as adaptive changesis due to the reason that these files had to be adapted to a different version control system(see Section 2 for the definition of adaptive changes). The higher frequency (comparedwith DCF) of adaptive changes can also be explained by the fact that JEF is built over

Copyright q 2010 John Wiley & Sons, Ltd. J. Softw. Maint. Evol.: Res. Pract. 2010; 22:359–380DOI: 10.1002/smr

Page 13: An examination of change profiles in reusable and non-reusable software systems

AN EXAMINATION OF CHANGE PROFILES 371

various third party components, and changes in these components will cause changes in theframework.

To answer our specific research questions, we used Sample Tests and Confidence Intervals forProportions. We observed the following:

• RQ1.1: Does the reused framework (JEF) have fewer changes than the systems reusing it(DCF and S&A)? For corrective changes, we can accept the hypothesis that the number ofcorrective changes for JEF is significantly fewer than DCF (p-value 0.001) and S&A (p-value0.041). But, in general JEF does not have fewer changes than DCF and S&A. Further, wecannot reject that H0 in favor of H1 that JEF has fewer preventive, perfective and adaptivechanges than DCF and S&A using Tests and Confidence Intervals for Proportions.

• RQ.1.2: Do perfective changes account for the majority of the changes in any type of reusedevelopment approach? Yes, perfective changes account statistically significant for the majorityof changes for JEF (67%), DCF (58%) and S&A (39%).

• RQ1.3: Does S&A have fewer changes than DCF? No, S&A does not have statistically signif-icant fewer changes by type than DCF.

6.2. RQ2: What change types are the longest active for different developmentcharacteristics?

By comparing the change types that are longest active for JEF, DCF and S&A, we found (Figure 3(a))that adaptive changes (average of 8.27days) are longest active for JEF. This is because StatoilHydroASA changed their version control system from PVCS to Rational ClearCase in the middle ofthe project. All the files in the PVCS had a java comment related to this version control system,but when StatoilHydro ASA switched to Rational ClearCase the java comments in all the fileswere removed. The JEF framework is built over various third-party components, and changes inthese components will cause changes in the framework. However, we can speculate that adaptivechanges were longest active for JEF, because they affected many files. Another reason could bethat adaptive changes were given low priority to fix. Thus, these files may have been checked outwhile developers might have been busy with other tasks with higher priority.From Figure 3(b) we can see that preventive changes (average of 4.04 days) are longest active for

DCF. This is due to the incomplete and poorly documented design, which required a high numberof improvements over time.From Figure 3(c) we can see that adaptive changes (average of 4.61 days) are longest active for

S&A. This is due to the reason that S&A implemented more optimized algorithms to do lift andcargo calculations efficiently and properly. Hence, the business logic in S&A must be adjusted tothe different environments within which the application is going to be used. In addition, S&A isreusing the third release of JEF and changes in JEF affected S&A.It is important to clarify that the changes that are longest active do not mean that they require

more effort, since we do not have the effort data. However, by looking into what change types areactive longest we might to some extant be able to say if these changes stay longer in the applicationsand require more time to fix.To answer our research questions, we used a Mann Whitney Test. However, we excluded all the

changes that took more than 90 days because they accounted for a small amount of the changes.

Copyright q 2010 John Wiley & Sons, Ltd. J. Softw. Maint. Evol.: Res. Pract. 2010; 22:359–380DOI: 10.1002/smr

Page 14: An examination of change profiles in reusable and non-reusable software systems

372 A. GUPTA ET AL.

JEF AllAdaptive Corrective Perfective PreventiveNumber 343 15 108 213 7

Mean 2.60933 8.26667 1.87037 2.67136 0St Dev 9.74074 16.5161 7.64773 10.137 0

S&A ll daptive Correctiv Perfectiv PreventiveNumber 299 31 100 145 23

Mean 2.94983 4.6129 3.2 2.65517 1.47826St Dev 9.97249 11.2685 11.9688 8.69657 5.22119

DCF AllAdaptive Corrective PerfectivePreventivNumber 1100 24 478 549 49

Mean 3.03364 2.45833 2.51046 3.42441 4.04082St Dev 10.2855 7.77386 9.16532 11.1945 11.0491

(a)

(b) (c)

Figure 3. Average no. of days the changes are active for: (a) JEF; (b) DCF; and (c) S&A.

This was a very small percentage of the data sample, i.e., JEF outliers 15358 (4%), DCF outliers 19

1119(1.7%) and S&A outliers 14

313 (4.5%). We observed the following:

• RQ2.1: What change type is the longest active for each of the three systems? We have observedon the mean value that adaptive changes are longest active for JEF and S&A, whereas it ispreventive changes for DCF. However, we do not have evidence to reject our H0 hypothesistowards H1 (i.e., that adaptive changes for JEF and S&A and preventive changes for DCF arestatistically significant). This is due to the large variance in the data material. However, thevariance tells us that some changes are more complex to correct than others and the variance

Copyright q 2010 John Wiley & Sons, Ltd. J. Softw. Maint. Evol.: Res. Pract. 2010; 22:359–380DOI: 10.1002/smr

Page 15: An examination of change profiles in reusable and non-reusable software systems

AN EXAMINATION OF CHANGE PROFILES 373

on the change time for those changes in each system is bigger than to the other types as shownin Figure 3.

• RQ2.2: Are changes closed more quickly in JEF than for DCF and S&A? No, statistically wecannot reject the null hypotheses, and say that changes are less active in JEF than DCF andS&A. But, from Figure 3 we can see that there is a slight difference on the time spent fordoing corrective changes in JEF compared with S&A and DCF.

• RQ2.3: Are changes closed more quickly in S&A than DCF? No, statistically we cannot rejectH0 toward H1 (that changes in S&A are less active than DCF).

6.3. RQ3: How localized are the effects of different types of changes, for differentdevelopment characteristics?

By comparing the average number of files changed for each change type (Figure 4), we found thatDCF has a higher number of files modified, on average, for the preventive changes (5.7). FromFigure 4(c) we can see that S&A has a higher number of files modified, on average, for the adaptivechanges (3.35). From Figure 4(a) we can see that JEF has not only a higher number of files modifiedfor the adaptive changes (5.5), but also the largest variability on number of files changed on adaptivechanges.To answer our research questions, we ran a Mann Whitney Test. However, we excluded all the

changes which had more than 100 files modified because they accounted for a small amount of therecords. This was a very small percentage of the data sample, i.e., JEF outliers none, DCF outliers7

1119 (0.6%) and S&A outliers 1313 (0.3%). We observed the following:

• RQ3.1: What is the change type with more files modified for each of the three systems? Wehave observed that adaptive changes are the most frequent change types in the files mostmodified for JEF and S&A, whereas it is preventive changes for DCF. The difference isnot statistically significant especially because of the variability that we can see in the data(Figure 4).

• RQ3.2: Is the average number of files modified per change lower in JEF than DCF and S&A?Although in average the number of files modified per change is quite smaller in JEF than forDCF and S&A, this difference is not significant. When analyzed by type of changes, we failto reject H0 toward H1 (that JEF has less files modified than DCF and S&A).

• RQ3.3: Is the average number of files modified per change lower in S&A than DCF? Yes,for corrective (p-value 0.004) and preventive (p-value 0.002) changes but not for adaptive(p-value 0.9) and perfective changes (p-value 2.08E−08). This is because S&A did not gothrough the same amount of refactoring as DCF. Hence, the average number of files modifiedis less for preventive and corrective changes. The average numbers of files modified are higherfor adaptive and perfective changes.◦ Adaptive changes: S&A has implemented more complex algorithms to do lift and cargo

calculations efficiently and properly. Hence, the business logic in S&A must be adjusted tothe different environments within which the application is going to be used. Hence, we seemore files modified related to adaptive changes.

◦ Perfective changes: S&A was first developed without involving the users. When the usersgot to see the application, many changes were made to requirements. Hence, we see morefiles modified related to perfective changes.

Copyright q 2010 John Wiley & Sons, Ltd. J. Softw. Maint. Evol.: Res. Pract. 2010; 22:359–380DOI: 10.1002/smr

Page 16: An examination of change profiles in reusable and non-reusable software systems

374 A. GUPTA ET AL.

Figure 4. Average amount of files modified for: (a) JEF; (b) DCF; and (c) S&A.

6.4. RQ4: Can we see the benefits of the reuse during this time?

Answer to our research question:

• If compared to S&A and DCF, JEF presents similar changes profile to both systems. Howeverby analyzing the different versions of JEF (Figure 5), we observed that the total number of

Copyright q 2010 John Wiley & Sons, Ltd. J. Softw. Maint. Evol.: Res. Pract. 2010; 22:359–380DOI: 10.1002/smr

Page 17: An examination of change profiles in reusable and non-reusable software systems

AN EXAMINATION OF CHANGE PROFILES 375

Figure 5. Number of changes release wise for JEF.

Figure 6. Average no. of files/day per change type for JEF, DCF and S&A.

changes declined dramatically from release 1 to releases 2 and 3, and release 1 took 2 yearsto develop. Releases 2 and 3 took only 2 months each to develop (see Table II). This can beexplained by the fact that JEF is a reusable framework and is used by several applications.New features are not incorporated into the framework unless they will be used at least by twodifferent projects. The company is very careful when introducing changes to this framework,because changes to the API may affect many applications. The bottom line is that reusablesoftware may be more stable and needs less maintenance effort, if the context of reuse can bepredicted accurately. In addition, it is important to have a well-designed architecture to reducethe complexity of reusable software. Also, the follow-up qualitative RCA revealed that◦ The developers felt that JEF was easier to reuse with S&A than DCF, since JEF included

a higher percentage of third-party components in release 3 (which S&A reused) than inrelease 1 (which DCF reused, see Figure 1).

• If we analyze the effect of the reuse over time, on the effects of the reuse on the two otherapplications, we can see that there are some indicators of initial benefits on the reuse of theapplication JEF for the second time. We saw that the number of files modified per change forcorrective and preventive changes is lower for S&A than for DCF. Also, Figure 6 shows theaverage number of files per day that was changed per change type. We can see that for mostof the changes it takes less time to change a file for S&A than for DCF showing that the useof JEF for the second time is already starting to payoff.

Copyright q 2010 John Wiley & Sons, Ltd. J. Softw. Maint. Evol.: Res. Pract. 2010; 22:359–380DOI: 10.1002/smr

Page 18: An examination of change profiles in reusable and non-reusable software systems

376 A. GUPTA ET AL.

7. THREATS TO VALIDITY

We here discuss the possible threats to validity in our case study and the steps we took to guardagainst them, using the definitions provided by [23]:Construct Validity—‘right metrics’: is concerned with the design of the study. All our data is from

the pre- and post-delivery software changes (covering any reported changes) for the three releasesof the reusable framework, and for the three releases of the applications reusing the framework(DCF and S&A). RCA is often performed on each change. One possible threat to construct validityis that we performed our RCA on a subset of all changes. Given that we did not perform a detailedanalysis of each change, we may have missed important details. However, in StatoilHydro ASAseveral of the developers who are involved in the project are external consultants and when they havecompleted their work on the project, they leave. This made it difficult for us to trace all changes backto each developer. Therefore, we did not have the resources to perform an RCA of each change.External Validity—‘right respondents’: is concerned with the generalization of results outside

the scope of a study. The object of the study is a particular framework designed for reuse, and twoapplications reusing the framework. The whole data set of software changes in StatoilHydro ASAhas been collected for three releases of the reusable framework, as well as for three releases of thetwo applications reusing the framework. Hence, our results should be relevant and valid for otherreleases of the framework and other future releases of the applications. The entire data set is takenfrom one company. Application of these results to other environments needs to be considered on acase by case basis, considering factors such as

• The nature of the software development: JEF, DCF and S&A in our study are based on theobject-oriented programming language, namely Java. Additionally, DCF and S&A is based ona waterfall process, whereas JEF is based on a combined incremental/waterfall process.

• The profile of the company and projects: The profile of the company is an oil and gas company,and hence the projects are related to oil and gas field.

• The way that software changes are defined and classified: Our definition of software changesand other definitions used (see Section 2) may not be the same as those applied in everyenvironment.

• The way that software changes are collected andmeasured:We have collected software changesrelated only to the non-commented source lines of code for a reusable framework and twoapplications reusing the framework.

Internal Validity—‘right data’: is a causal relationship between treatment and outcome. All of thesoftware changes for JEF, DCF and S&A were classified manually. Two researchers independentlyclassified all the changes, and then cross-validated the results. This was done to enhance the validityof the data collection process. A threat to the internal validity is that we sampled the files fromeach application for our analysis, rather than using all files.Conclusion Validity—‘right analysis’: is concerned with the relationship between the treatment

(refers to one particular value of one or more independent variables§ ) and the outcome. We verifiedthe reasons for differences of software change profiles between the JEF, DCF and S&A by inter-viewing one senior developer (see Section 5). Just asking one developer might cause systematic

§ Independent variables are the development method, the experience of the personnel, tool support and the environment [23].

Copyright q 2010 John Wiley & Sons, Ltd. J. Softw. Maint. Evol.: Res. Pract. 2010; 22:359–380DOI: 10.1002/smr

Page 19: An examination of change profiles in reusable and non-reusable software systems

AN EXAMINATION OF CHANGE PROFILES 377

bias. However, we do not consider this possibility to be a threat for our investigation, because thesenior developer has worked with the JEF framework, and the applications reusing the framework.His insights further supported our results for RQ1–RQ4.

8. CONCLUSIONS AND FUTURE WORK

Few published empirical studies characterize and compare the software changes for a reusableframework with those made to a non-reusable application. We have presented the results from acase study for a reusable class framework and two applications reusing it in StatoilHydro ASA. Westudied the impact that software changes had on different development characteristics (e.g., impactof reuse), and performed a follow-up qualitative RCA to find explanations for all our observations.The results of our study show that

• Our results support previous findings to the effect that perfective changes accounts statisticallysignificant for the majority of changes in both reusable and non-reusable softwares. We alsoobserved that DCF and S&A faced higher time-to-market pressure, more unstable requirements,and less quality control than the reusable framework.

• We have evidence that successive attempts to reuse the framework can become less expensive,as measured by the decreasing number of changes for JEF over the three releases. The follow-up qualitative RCA revealed that the reusable framework was perceived as easier to reuse withS&A than DCF, for reasons that included: a larger percentage of third party components, asystematic reuse policy that led to stability of the framework and significant investment inquality testing.

• We can see that for most of the changes it takes less time to change a file for S&A than forDCF, showing that the use of JEF for the second time is already starting to payoff.

Non-reusable applications usually face more unstable requirements, higher time-to-market pres-sure and less quality control than the reusable framework. But making a component reusable willnot automatically lead to less change-prone components as we could see in our results. In orderto lower the amount of software changes of the reusable component, it is important to define andimplement a systematic reuse policy, such as better design [24] and better change management [5].One interesting question raised by StatoilHydro ASA is whether the results of our study could be

used as input to improve future reuse initiatives. Given that reused software has a different changeprofile from the software that reuses it, reused software may need to be tested in ways different fromthose that are used to test the applications that reuse it. A further study will investigate how to adaptthe quality assurance (QA) process of the investigated company according to the characteristicsand software change profiles of the reusable software and software that reuses it. In addition, weintend (i) to expand our data set to include future releases of the JEF framework, future releasesof the DCF and S&A applications, and new applications (further reuse of the JEF framework), and(ii) to refine our research questions on the basis of the initial findings presented herein.

ACKNOWLEDGEMENTS

This work was financed by the Norwegian Research Council for the SEVO project [25] with contract number159916/V30. We thank StatoilHydro ASA for involving us in their reuse projects and Thor Andre Aresvik for

Copyright q 2010 John Wiley & Sons, Ltd. J. Softw. Maint. Evol.: Res. Pract. 2010; 22:359–380DOI: 10.1002/smr

Page 20: An examination of change profiles in reusable and non-reusable software systems

378 A. GUPTA ET AL.

valuable comments. This work is also partially sponsored by NSF grant CCF0438933, ‘Flexible High QualityDesign for Software’.

REFERENCES

1. Frakes WB, Isoda S. Success factors of systematic software reuse. IEEE Software 1995; 11(01):14–19.2. Rine DC. Supporting reuse with object technology—Guest editor’s introduction. IEEE Computer 1997; 30(10):

43–45.3. Bennett KH, Rajlich VT. Software maintenance and evolution: A roadmap. Twenty-second International Conference on

Software Engineering. IEEE Press: Limerick, 2000; 73–78.4. Mohagheghi P, Conradi R, Killi OM, Schwarz H. An empirical study of software reuse vs defect density and stability.

Proceedings of 26th International Conference on Software Engineering. IEEE CS Press: Edinburgh, 2004; 282–292.5. Selby W. Enabling reuse-based software development of large-scale systems. IEEE Transactions on Software Engineering

2005; 31(6):495–510.6. Gupta A, Slyngstad OP, Conradi R, Rønneberg H, Landre E. A case study of defect-density and change-density and

their progress over time. Eleventh European Conference on Software Maintenance and Reengineering. IEEE CS Press:Amsterdam, 2007; 716.

7. Zhang W, Jarzabek S. Reuse without compromising performance: Industrial experience from RPG software product linefor mobile devices. Proceedings of the Ninth International Software Product Line Conference. Springer: Rennes, 2005;57–69.

8. Gupta A, Slyngstad OP, Conradi R, Rønneberg H, Landre E. Experience report on the effect of software developmentcharacteristics on change distribution. Ninth International Conference on Product Focused Software Development andProcess Improvement. IEEE CS Press: Frascati-Monteporzio Catone, 2008; 58–173.

9. Lehman MM. Programs, life cycles and laws of software evolution. Proceedings of the Special Issue Software Engineering,vol. 68(9). IEEE CS Press: London, 1980; 1060–1076.

10. Sommerville I. Software Engineering (6th edn). Addison-Wesley: Reading, MA, 2001.11. Bennet PL. Software Maintenance Management: A Study of the Maintenance of Computer Application Software in 487

Data Processing Organizations. Addison-Wesley: Reading, MA, 1980.12. Mockus A, Votta LG. Identifying reasons for software changes using historical database. Proceedings IEEE International

Conference on Software Maintenance. IEEE CS Press: San Jose, 2000; 120–130.13. Satpathy M, Siebel NT, Rodriguez D. Maintenance of object oriented systems through re-engineering: A case study.

Proceedings of the 10th International Conference on Software Maintenance. IEEE CS Press: Montreal, 2002; 540–549.14. Schach SR, Jin B, Yu L, Heller GZ, Offutt J. Determining the distribution of maintenance categories: Survey versus

management. Empirical Software Engineering 2003; 8(4):351–366.15. Mohagheghi P, Conradi R. An empirical study of software change: Origin, impact, and functional vs. non-functional

requirements. Proceedings at International Symposium on Empirical Software Engineering. IEEE CS Press: Los Angeles,2004; 7–16.

16. Lee MG, Jefferson TL. An empirical study of software maintenance of a web-based Java application. Proceedings IEEEInternational Conference on Software Maintenance. IEEE CS Press: Budapest, 2005; 571–576.

17. Gupta A, Slyngstad OP, Conradi R, Rønneberg H, Landre E. An empirical study of software changes in Statoil ASA—Origin, piority level and relation to component size. International Conference on Software Engineering Advances. IEEECS Press: Tahiti, 2006; 10.

18. Frakes WB, Succi G. An industrial study of reuse, quality, and productivity. Journal of System and Software 2001;57(2):99–106.

19. Algestam H, Offeson M, Lundberg L. Using components to increase maintainability in a large telecommunication system.Proceedings of the Ninth International Asia–Pacific Software Engineering Conference, 2002; 65–73.

20. Sindre G, Conradi R, Karlsson EA. The REBOOT approach to software reuse. Journal of Systems and Software 1995;30(3):201–212.

21. Sampling calculator. Available at: http://www.macorr.com/ss calculator.htm [2008].22. Card DN. Learning from our mistakes with defect causal analysis. IEEE Software 1998; 15(1):56–63.23. Wohlin C, Runeson P, Host M, Ohlsson MC, Regnell B, Wesslen A. Experimentation in Software Engineering—An

Introduction. Kluwer: Dordrecht, 2002.24. Succi G, Benedicenti L, Vernazza T. Analysis of the effects of software reuse on customer satisfaction in an RPG

environment. IEEE Transactions on Software Engineering 2001; 27(5):473–479.25. Sevo project. Available at: http://www.idi.ntnu.no/grupper/su/sevo/ [2008].

Copyright q 2010 John Wiley & Sons, Ltd. J. Softw. Maint. Evol.: Res. Pract. 2010; 22:359–380DOI: 10.1002/smr

Page 21: An examination of change profiles in reusable and non-reusable software systems

AN EXAMINATION OF CHANGE PROFILES 379

AUTHORS’ BIOGRAPHIES

Anita Gupta is a PhD student in the Department of Computer and Information Scienceat NTNU in Trondheim. She is doing her research within the field of software reuse andsoftware evolution and maintenance by investigating software changes and defects.

Daniela S. Cruzes is a postdoctoral fellow at the Norwegian University of Science andTechnology (NTNU). She worked as a researcher fellow at the University of Marylandand Fraunhofer Center for Experimental Software Engineering-Maryland. Dr. DanielaCruzes received her PhD in Experimental Software Engineering from the University ofCampinas—UNICAMP in Brazil. Her research interests are empirical software engi-neering, data mining, systematic reviews, data analysis, and open source software.

Reidar Conradi was born in Oslo in 1946. He received his MS in 1970 and his PhDin 1976, both from the Norwegian University of Science and Technology in Trondheim(NTNU), and has been at NTNU since 1975. He is now a professor in the Departmentof Computer and Information Science (IDI) at NTNU. Conradi was a visiting scientistat the Fraunhofer Center for Experimental Software Engineering in Maryland and atPolitecnico di Milano in 1999/2000. His current research interests lie in software quality,software process improvement, version models, software evolution, open source software,and associated empirical studies.

Dr. Forrest Shull is a senior scientist at the Fraunhofer Center for Experimental SoftwareEngineering in Maryland (FC-MD), a nonprofit research and tech transfer organization,where he leads the Measurement and Knowledge Management Division. At FC-MD,he has been a lead researcher on projects for NASA’s Office of Safety and MissionAssurance, the NASA Safety Center, the U.S. Department of Defense, the NationalScience Foundation, the Defense Advanced Research Projects Agency (DARPA), andcompanies such as Motorola and Fujitsu Labs of America. He is an associate adjunctprofessor at the University of Maryland College Park, and Associate-Editor-in-Chief ofIEEE Software.

Copyright q 2010 John Wiley & Sons, Ltd. J. Softw. Maint. Evol.: Res. Pract. 2010; 22:359–380DOI: 10.1002/smr

Page 22: An examination of change profiles in reusable and non-reusable software systems

380 A. GUPTA ET AL.

Harald Rønneberg is the change manager in StatoilHydro ASA, and he has also aposition as Associate Professor II at UiS (University of Stavanger), Norway.

Einar Landre is a senior software architect working for StatoilHydro, Department forBusiness Applications. He has more than 20 years experience in software developmentwith a focus on distributed systems and their architecture. He has a Master of Sciencedegree in Information Technology from the University of Strathclyde, Scotland.

Copyright q 2010 John Wiley & Sons, Ltd. J. Softw. Maint. Evol.: Res. Pract. 2010; 22:359–380DOI: 10.1002/smr