Abstract:Abstract-Dependency-based software change impact analysis is the domain concerned with estimating the sets of artifacts impacted by a change to a related artifact. Research has shown that analysing the various class dependency types independently will never completely reveal the impact sets. Therefore, dependency types are combined to improve the precision of estimated when compared to impact sets.Software classes can be linked in different ways; for instance semantically, if their meaning is somewhat related … Show more
Context: Long-term software projects employ different software developers who collaborate on shared artifacts. The accumulation of changes pushed by different developers leave traces on the underlying code, that have an effect on its future maintainability, and even reuse.Objective: This study focuses on the how the changes by different developers might have an impact on the code: we investigate whether the work of multiple developers, and their experience, have a visible effect on the structural metrics of the underlying code.Method: We consider nine object-oriented (OO) attributes and we measure them in a GitHub sample containing the top 200 'forked' projects. For each of their classes, we evaluated the number of distinct developers contributing to its source code, and their experience in the project.Results: We show that the presence of multiple developers working on the same class has a visible effect on the chosen OO metrics, and often in the opposite direction to what the guidelines for each attribute suggest. We also show how the relative experience of developers in a project plays an important role in the distribution of those metrics, and the future maintenance of the Java classes.Conclusions: Our results show how distributed development has an effect on the structural attributes of a software system and how the experience of developers plays a fundamental role in that effect. We also discover workarounds
Context: Long-term software projects employ different software developers who collaborate on shared artifacts. The accumulation of changes pushed by different developers leave traces on the underlying code, that have an effect on its future maintainability, and even reuse.Objective: This study focuses on the how the changes by different developers might have an impact on the code: we investigate whether the work of multiple developers, and their experience, have a visible effect on the structural metrics of the underlying code.Method: We consider nine object-oriented (OO) attributes and we measure them in a GitHub sample containing the top 200 'forked' projects. For each of their classes, we evaluated the number of distinct developers contributing to its source code, and their experience in the project.Results: We show that the presence of multiple developers working on the same class has a visible effect on the chosen OO metrics, and often in the opposite direction to what the guidelines for each attribute suggest. We also show how the relative experience of developers in a project plays an important role in the distribution of those metrics, and the future maintenance of the Java classes.Conclusions: Our results show how distributed development has an effect on the structural attributes of a software system and how the experience of developers plays a fundamental role in that effect. We also discover workarounds
“…Numerous studies have emphasized the complexity of source code changes after the initial system has been realized, for example, see [11][12][13]. Studies that examine the relation of source code to IS architectures have a different focus than this research.…”
Section: Related Research On Software Evolutionmentioning
This study links business requirements and adaptability of existing software systems. Organizations expect flexibility of IT with regard to business requirements. We hypothesize that the flexibility of business requirements is difficult in IT systems, because of software dependencies in the way domain knowledge is implemented. In this paper, we, therefore, explore how Business requirements have been implemented in the source code of three open source healthcare systems. Outcomes suggest that a tight interdependency of business terminology and functionality in source code hides business requirements from view and thereby hinders IT flexibility on higher levels.
“…As such, a number of dependency analysis techniques based on analyzing source code have continued to emerge in the field. Dependency analysis approaches are further classified as dynamic or static analysis based on the method utilized for obtaining the information needed to identify change impacts [13][14] [15]. Dynamic analysis requires that program information be collected during runtime for estimating change impacts and as such, incurs a high overhead cost.…”
Change is an inevitable phenomenon of life. This inevitability of change in the real world has made a software change an indispensable characteristic of software systems and a fundamental task of software maintenance and evolution. The continuous evolution process of software systems can greatly affect the systems’ quality and reliability if proper mechanisms to manage them are not adequately provided. Therefore, there is a need for automated techniques to effectively make an assessment of proposed software changes that may arise due to bug fixes, technological advancements, changing user requirements etc., before their implementation. Software Change Impact Analysis (CIA) is an essential activity for comprehending and identifying potential change impacts of software changes that can help prevent the system from entering into an erroneous state. Despite the emergence of different CIA techniques, they are yet to reach an optimal level of accuracy desired by software engineers. Consequently, researchers in recent years have come up with hybrid CIA techniques which are a blend of multiple CIA approaches, as a way of improving the accuracy of change impacts analysis techniques. This study presents these hybrid CIA techniques and how they improve accuracy. They are also compared and areas for further research are identified.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.