IWPSE-EVOL '10Pub Date : 2010-09-20DOI: 10.1145/1862372.1862381
F. Mulder, A. Zaidman
{"title":"Identifying cross-cutting concerns using software repository mining","authors":"F. Mulder, A. Zaidman","doi":"10.1145/1862372.1862381","DOIUrl":"https://doi.org/10.1145/1862372.1862381","url":null,"abstract":"Cross-cutting concerns are pieces of functionality that have not been captured into a separate module, thereby hindering program comprehension and maintainability. Solving these problems requires first identifying these cross-cutting concerns in pieces of software. Several methods for identification have been proposed but the option of using software repository mining has largely been left unexplored. That technique can uncover relationships between modules that may not be present in the source code and thereby provide a different perspective on the cross-cutting concerns in a software system. We perform software repository mining on the repositories of two software systems for which the cross-cutting concerns are known: JHotDraw and Tomcat. Based on the results of the evaluation, we make some suggestions for future directions in the area of identifying crosscutting concerns using software repository mining.","PeriodicalId":443035,"journal":{"name":"IWPSE-EVOL '10","volume":"601 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133134242","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
IWPSE-EVOL '10Pub Date : 2010-09-20DOI: 10.1145/1862372.1862394
P. Inverardi, Marco Mori
{"title":"Feature oriented evolutions for context-aware adaptive systems","authors":"P. Inverardi, Marco Mori","doi":"10.1145/1862372.1862394","DOIUrl":"https://doi.org/10.1145/1862372.1862394","url":null,"abstract":"Context-aware adaptive systems are a promising approach to deal with the uncertainty shown by the environment. Their ability is to perform run-time adaptations driven by the context thus promoting software evolution to the norm rather than considering it as an exception.\u0000 We have identified two different kind of evolutions that the system should be able to perform. In the foreseen evolution the context is completely characterized whereas in the unforeseen evolution the context is keep updated as new functionalities are required by the user. Both evolutions are presented using a system notation based on the feature engineering approach that relates requirement, specification and context assumptions. A notion of consistent evolution toward the future system variant is proposed.","PeriodicalId":443035,"journal":{"name":"IWPSE-EVOL '10","volume":"112 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115128146","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
IWPSE-EVOL '10Pub Date : 2010-09-20DOI: 10.1145/1862372.1862374
Andrian Marcus
{"title":"Software is data too: how should we deal with it?","authors":"Andrian Marcus","doi":"10.1145/1862372.1862374","DOIUrl":"https://doi.org/10.1145/1862372.1862374","url":null,"abstract":"Software systems are designed and engineered to process data. However, software is data too. The size and variety of today's software artifacts and the multitude of stakeholder activities result in so much data that individuals can no longer reason about all of it. Software evolution is no longer just about writing code, it is becoming an information management problem.\u0000 Analysis and management of the software data are activities that software engineers are not trained to do. We have to look for solutions outside software engineering, adopt them, and make them our own. These solutions can come from data mining, information retrieval, machine learning, statistical analysis, etc. This is not the first time software engineers are looking at such solutions. It has been going on for about two decades, in a form or another. The results so far indicate that software engineering is facing a paradigm shift, where more and more software engineering tasks are reinterpreted as optimization, search, retrieval, or classification problems. Despite this experience, applications of data analysis, data integration, and data mining in software engineering are in their infancy by comparison with other research fields. New research is needed to adapt existing algorithms and tools for software engineering data and processes, and new ones will have to be created. This research has to be supported by integration with software development processes and with education as well. More than that, in order for this type of research to succeed, it should be supported with new approaches to empirical work, where data and results are shared globally among researchers and practitioners.\u0000 The talk will focus on arguing for and mapping out (part of) this research agenda, while looking back at (some of) the existing work in the area.","PeriodicalId":443035,"journal":{"name":"IWPSE-EVOL '10","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116997484","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
IWPSE-EVOL '10Pub Date : 2010-09-20DOI: 10.1145/1862372.1862391
Yuki Manabe, Yasuhiro Hayase, Katsuro Inoue
{"title":"Evolutional analysis of licenses in FOSS","authors":"Yuki Manabe, Yasuhiro Hayase, Katsuro Inoue","doi":"10.1145/1862372.1862391","DOIUrl":"https://doi.org/10.1145/1862372.1862391","url":null,"abstract":"FOSS (Free and Open Source Software) is repeatedly modified and reused by other FOSS or proprietary software systems. They are released to others under specific licenses whose terms and conditions are usually written on the source-code files as program comments. There are a few researches which automatically analyze the licenses in a FOSS release, but there is no statistical study on the evolution of licenses along the evolution of FOSS. In this paper, we analyze licenses through FreeBSD, OpenBSD, Eclipse, and ArgoUML evolution, using our license analysis tool Ninka, and discuss characteristics on the evolution of the license used in those systems.","PeriodicalId":443035,"journal":{"name":"IWPSE-EVOL '10","volume":"8 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116678589","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
IWPSE-EVOL '10Pub Date : 2010-09-20DOI: 10.1145/1862372.1862390
Keisuke Hotta, Yukiko Sano, Yoshiki Higo, S. Kusumoto
{"title":"Is duplicate code more frequently modified than non-duplicate code in software evolution?: an empirical study on open source software","authors":"Keisuke Hotta, Yukiko Sano, Yoshiki Higo, S. Kusumoto","doi":"10.1145/1862372.1862390","DOIUrl":"https://doi.org/10.1145/1862372.1862390","url":null,"abstract":"Various kinds of research efforts have been performed on the basis that the presence of duplicate code has a negative impact on software evolution. A typical example is that, if we modify a code fragment that has been duplicated to other code fragments, it is necessary to consider whether the other code fragments have to be modified simultaneously or not. In this research, in order to investigate how much the presence of duplicate code is related to software evolution, we defined a new indicator, modification frequency. The indicator is a quantitative measure, and it allows us to objectively compare the maintainability of duplicate code and non-duplicate code. We conducted an experiment on 15 open source software systems, and the result showed that the presence of duplicate code does not have a negative impact on software evolution.","PeriodicalId":443035,"journal":{"name":"IWPSE-EVOL '10","volume":"2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132219427","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
IWPSE-EVOL '10Pub Date : 2010-09-20DOI: 10.1145/1862372.1862384
M. Goeminne, T. Mens
{"title":"A framework for analysing and visualising open source software ecosystems","authors":"M. Goeminne, T. Mens","doi":"10.1145/1862372.1862384","DOIUrl":"https://doi.org/10.1145/1862372.1862384","url":null,"abstract":"Nowadays, most empirical studies in open source software evolution are based on the analysis of program code alone. In order to get a better understanding of how software evolves over time, many more entities that are part of the software ecosystem need to be taken into account. We present a general framework to automate the analysis of the evolution of software ecosystems. The framework incorporates a database that stores all relevant information obtained thanks to several mining tools, and provides a unified data source to visualisation tools. One such visualisation tool is integrated in order to get a first quick overview of the evolution of different aspects of the software project under study. The framework is extensible in order to accommodate more and different types of input and output, depending on the needs of the user. We compare our framework against existing solutions, and show how we can use this framework for carrying out concrete ecosystem evolution experiments.","PeriodicalId":443035,"journal":{"name":"IWPSE-EVOL '10","volume":"238 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116172700","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
IWPSE-EVOL '10Pub Date : 2010-09-20DOI: 10.1145/1862372.1862375
M. D. Penta
{"title":"Empirical studies on software evolution: should we (try to) claim causation?","authors":"M. D. Penta","doi":"10.1145/1862372.1862375","DOIUrl":"https://doi.org/10.1145/1862372.1862375","url":null,"abstract":"In recent and past years, there have been hundreds of studies aimed at characterizing the evolution of a software system. Many of these studies analyze the behavior of a variable over a given period of observation. How does the size of a software system evolve? What about its complexity? Does the number of defects increase over time or does it remain stable?\u0000 In some cases, studies also attempt to correlate variables, and, possibly, to build predictors upon them. This is to say, one could estimate the likelihood that a fault occurs in a class, based on some metrics the class exhibits, on the kinds of changes the class underwent. Similarly, change couplings can be inferred by observing how artifacts tend to co-change. Although in many cases we are able to obtain models ensuring good prediction performances, we are not able to claim any causal-effect relationship between our independent and dependent variables. We could easily correlate the presence of some design constructs with the change-proneness of a software component, however the same correlation could be found with the amount of good Belgian beer our developers drink. As a matter of fact, the component could undergo changes for other, external reasons.\u0000 Recent software evolution studies rely on fine-grained information mined by integrating several kinds of repositories, such as versioning systems, bug tracking systems, or mailing lists. Nowadays, many other precious sources of information, ranging from code search repositories, vulnerability databases, informal communications, and legal documents are also being considered. This would possibly aid to capture the rationale of some events occurring in a software project, and link them to statistical relations we observed.\u0000 The road towards shifting from solid empirical models towards \"principles of software evolution\" will likely be long and difficult, therefore we should prepare ourselves to traverse it and go as far as possible with limited damages. To do this, we need to carefully prepare our traveling equipment by paying attention at: (i) combining quantitative studies with qualitative studies, surveys, and informal interviews, (ii) relating social relations among developers with variables observed on the project, (iii) using proper statistical and machine learning techniques able to capture the temporal relation among different events, and (iv) making a massive use of natural language processing and text mining among the various sources of information available.","PeriodicalId":443035,"journal":{"name":"IWPSE-EVOL '10","volume":"109 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115238421","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
IWPSE-EVOL '10Pub Date : 2010-09-20DOI: 10.1145/1862372.1862393
C. Bezemer, A. Zaidman
{"title":"Multi-tenant SaaS applications: maintenance dream or nightmare?","authors":"C. Bezemer, A. Zaidman","doi":"10.1145/1862372.1862393","DOIUrl":"https://doi.org/10.1145/1862372.1862393","url":null,"abstract":"Multi-tenancy is a relatively new software architecture principle in the realm of the Software as a Service (SaaS) business model. It allows to make full use of the economy of scale, as multiple customers - \"tenants\" - share the same application and database instance. All the while, the tenants enjoy a highly configurable application, making it appear that the application is deployed on a dedicated server. The major benefits of multi-tenancy are increased utilization of hardware resources and improved ease of maintenance, in particular on the deployment side. These benefits should result in lower overall application costs, making the technology attractive for service providers targeting small and medium enterprises (SME). However, as this paper advocates, a wrong architectural choice might entail that multi-tenancy becomes a maintenance nightmare.","PeriodicalId":443035,"journal":{"name":"IWPSE-EVOL '10","volume":"85 1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123567619","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
IWPSE-EVOL '10Pub Date : 2010-09-20DOI: 10.1145/1862372.1862389
John Businge, Alexander Serebrenik, M. Brand
{"title":"An empirical study of the evolution of Eclipse third-party plug-ins","authors":"John Businge, Alexander Serebrenik, M. Brand","doi":"10.1145/1862372.1862389","DOIUrl":"https://doi.org/10.1145/1862372.1862389","url":null,"abstract":"Since the inception of Lehman's software evolution laws in the early 1970s, they have attracted significant attention from the research community. However, to our knowledge, no study of applicability of these laws on the software systems that exhibit constrained evolution process has been carried out so far. In this paper we take a first step in this direction and investigate the constrained evolution of 21 Eclipse third-party plug-ins. We investigate the trends followed by the plug-ins dependencies on Eclipse over time. The study spans 6 years of the evolution of Eclipse evolving from release 3.0 to release 3.5. Our findings confirm the laws of continuing change, self regulation and continuing growth when metrics related to dependencies between the plug-ins and the Eclipse Architecture are considered. Unlike this, the conservation of familiarity law was not confirmed and the results for the declining quality law were inconclusive.","PeriodicalId":443035,"journal":{"name":"IWPSE-EVOL '10","volume":"90 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124613354","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
IWPSE-EVOL '10Pub Date : 2010-09-20DOI: 10.1145/1862372.1862377
Jean-Guy Schneider, Rajesh Vasa, Leonard Hoon
{"title":"Do metrics help to identify refactoring?","authors":"Jean-Guy Schneider, Rajesh Vasa, Leonard Hoon","doi":"10.1145/1862372.1862377","DOIUrl":"https://doi.org/10.1145/1862372.1862377","url":null,"abstract":"Many iterative software development methodologies, such as for example eXtreme Programming, state that refactoring is one of the key activities to be undertaken in order to keep the code-base of a project well-structured and consistent. In such a context, poorly structured code may become a significant obstacle in adding new or in enhancing existing functionality. However, there is some anecdotal evidence that in many software projects, the underlying code-base is not necessarily refactored post-release, often due to time constraints or the misconception that refactoring does not add any apparent value. In order to get further insights into this problem area, we propose to investigate the usage frequency of refactorings in the context of open-source, object-oriented software systems. In this work, we will outline our approach to detecting refactoring and present results obtained from an initial pilot study.","PeriodicalId":443035,"journal":{"name":"IWPSE-EVOL '10","volume":"78 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114783431","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}