An empirical approach to studying software evolution
C. Kemerer, und S. Slaughter. IEEE Transactions on Software Engineering, 25 (4):
493--509(1999)
Zusammenfassung
With the approach of the new millennium, a primary focus in software engineering involves issues relating to upgrading, migrating, and evolving existing software systems. In this environment, the role of careful empirical studies as the basis for improving software maintenance processes, methods, and tools is highlighted. One of the most important processes that merits empirical evaluation is software evolution. Software evolution refers to the dynamic behaviour of software systems as they are maintained and enhanced over their lifetimes. Software evolution is particularly important as systems in organizations become longer-lived. However, evolution is challenging to study due to the longitudinal nature of the phenomenon in addition to the usual difficulties in collecting empirical data. We describe a set of methods and techniques that we have developed and adapted to empirically study software evolution. Our longitudinal empirical study involves collecting, coding, and analyzing more than 25000 change events to 23 commercial software systems over a 20-year period. Using data from two of the systems, we illustrate the efficacy of flexible phase mapping and gamma sequence analytic methods, originally developed in social psychology to examine group problem solving processes. We have adapted these techniques in the context of our study to identify and understand the phases through which a software system travels as it evolves over time. We contrast this approach with time series analysis. Our work demonstrates the advantages of applying methods and techniques from other domains to software engineering and illustrates how, despite difficulties, software evolution can be empirically studied
- large body of data
- one of few longitudinal studies on software change, using social science methodologies
- "maintenance .. is a low status activity professionally" p493
- did Yuen's work study same system (OS/360) as Lehman?
- states that Swanson's three change rationales (corrective, adaptive, perfective) are too large grained to capture all possible actions
- modules are a bad unit of study, too variable
- used software change events (revisions/changesets)
- "to classify each event in a change log, we used a content analytic approach" p498
- descriptive set of data is not generalizable, e.g. financial vs manifest
- some of the classification seems questionable, e.g. is a complete restructuring really ädapt logic"
- question: look at how biologists figure out 'why' a certain adaptation occurs e.g. in reaction to some external pressure? This is the wrong way to thin k about evolution. The environment changes, and the organism mutates (randomly), and hopefully the mutation was a good one. Can you pinpoint the mutation that was successful?
- emphasize need for good commercial partner
- emphasize research teams might need to be large
- emphasize using soc sci methods as well-established.
-
%0 Journal Article
%1 kemerer99
%A Kemerer, C. F.
%A Slaughter, S.
%D 1999
%J IEEE Transactions on Software Engineering
%K evolution empirical software litmap
%N 4
%P 493--509
%T An empirical approach to studying software evolution
%U http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=799945
%V 25
%X With the approach of the new millennium, a primary focus in software engineering involves issues relating to upgrading, migrating, and evolving existing software systems. In this environment, the role of careful empirical studies as the basis for improving software maintenance processes, methods, and tools is highlighted. One of the most important processes that merits empirical evaluation is software evolution. Software evolution refers to the dynamic behaviour of software systems as they are maintained and enhanced over their lifetimes. Software evolution is particularly important as systems in organizations become longer-lived. However, evolution is challenging to study due to the longitudinal nature of the phenomenon in addition to the usual difficulties in collecting empirical data. We describe a set of methods and techniques that we have developed and adapted to empirically study software evolution. Our longitudinal empirical study involves collecting, coding, and analyzing more than 25000 change events to 23 commercial software systems over a 20-year period. Using data from two of the systems, we illustrate the efficacy of flexible phase mapping and gamma sequence analytic methods, originally developed in social psychology to examine group problem solving processes. We have adapted these techniques in the context of our study to identify and understand the phases through which a software system travels as it evolves over time. We contrast this approach with time series analysis. Our work demonstrates the advantages of applying methods and techniques from other domains to software engineering and illustrates how, despite difficulties, software evolution can be empirically studied
@article{kemerer99,
abstract = {With the approach of the new millennium, a primary focus in software engineering involves issues relating to upgrading, migrating, and evolving existing software systems. In this environment, the role of careful empirical studies as the basis for improving software maintenance processes, methods, and tools is highlighted. One of the most important processes that merits empirical evaluation is software evolution. Software evolution refers to the dynamic behaviour of software systems as they are maintained and enhanced over their lifetimes. Software evolution is particularly important as systems in organizations become longer-lived. However, evolution is challenging to study due to the longitudinal nature of the phenomenon in addition to the usual difficulties in collecting empirical data. We describe a set of methods and techniques that we have developed and adapted to empirically study software evolution. Our longitudinal empirical study involves collecting, coding, and analyzing more than 25000 change events to 23 commercial software systems over a 20-year period. Using data from two of the systems, we illustrate the efficacy of flexible phase mapping and gamma sequence analytic methods, originally developed in social psychology to examine group problem solving processes. We have adapted these techniques in the context of our study to identify and understand the phases through which a software system travels as it evolves over time. We contrast this approach with time series analysis. Our work demonstrates the advantages of applying methods and techniques from other domains to software engineering and illustrates how, despite difficulties, software evolution can be empirically studied},
added-at = {2006-03-24T16:34:33.000+0100},
author = {Kemerer, C. F. and Slaughter, S.},
biburl = {https://www.bibsonomy.org/bibtex/251db5929342d8ffe70c6aebb0a802c40/neilernst},
citeulike-article-id = {328047},
comment = {- large body of data
- one of few longitudinal studies on software change, using social science methodologies
- "maintenance .. is a low status activity professionally" p493
- did Yuen's work study same system (OS/360) as Lehman?
- states that Swanson's three change rationales (corrective, adaptive, perfective) are too large grained to capture all possible actions
- modules are a bad unit of study, too variable
- used software change events (revisions/changesets)
- "to classify each event in a change log, we used a content analytic approach" p498
- descriptive set of data is not generalizable, e.g. financial vs manifest
- some of the classification seems questionable, e.g. is a complete restructuring really "adapt logic"
- question: look at how biologists figure out 'why' a certain adaptation occurs e.g. in reaction to some external pressure? This is the wrong way to thin k about evolution. The environment changes, and the organism mutates (randomly), and hopefully the mutation was a good one. Can you pinpoint the mutation that was successful?
- emphasize need for good commercial partner
- emphasize research teams might need to be large
- emphasize using soc sci methods as well-established.
-},
description = {sdasda},
interhash = {2bd1d5cb43f759604c539a73fda48724},
intrahash = {51db5929342d8ffe70c6aebb0a802c40},
journal = {IEEE Transactions on Software Engineering},
keywords = {evolution empirical software litmap},
number = 4,
pages = {493--509},
priority = {0},
timestamp = {2006-03-24T16:34:33.000+0100},
title = {An empirical approach to studying software evolution},
url = {http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=799945},
volume = 25,
year = 1999
}