Dependency cycles in software systems : quality issues and opportunities for refactoring
Doctoral thesis
Åpne
Permanent lenke
http://hdl.handle.net/11250/297522Utgivelsesdato
2015Metadata
Vis full innførselSamlinger
Sammendrag
Society, systems and related businesses are increasingly dependent on software applications,
which are integrated and interoperate with other systems. This dependency has implications for
the dependability of both the systems and the businesses. There have been reported cases over
the years of both systems and business failures due to software defects. However, the work and
effort needed to correct defects is not trivial. This involves changing existing applications,
which may be overly complex in their structure. Software undergoes constant evolution due to
changes in the business environment such as introduction of new technology or new
requirements. It is therefore not surprising that the cost of software maintenance is normally
estimated to be the highest in the overall software budget. As the software evolves, so does its
size and complexity.
One aspect of software complexity is dependency cycles that are formed among software classes
and packages. Many design guidelines advocate to avoid dependency cycles and argue that they
inhibit software quality. Despite this conventional wisdom, empirical evidence shows that
modern software indeed is riddled with this anti-pattern. The question remains that if cyclic
property is known to be complex and is pervasive in software applications, how does it relate to
defects and change in general, and what can be done to improve efforts to mitigate it?
This thesis investigates dependency cycles among software components; an aspect of software
structural complexity, to find how such properties correlate with defect measures and change
rates, and how this knowledge can motivate to refactor and improve these possible defects
hotspots in affected systems. The two main research questions to achieve these objectives are
stated as follows:
RQ1. What is the effect of dependency cycles on external quality measures of software
systems?
RQ2. How to refactor dependency cycle to impact the structural quality and reduce
refactoring efforts?
This work contributes mainly to improvement in software quality (maintainability and
indirectly, reliability) and software metrics. The following are the three major contributions of
this thesis:
C1. Better understanding of how to utilize different defect metrics to improve software quality
C2. Identification of the impact of dependency cycles on software quality
C2-1: Identification of dependency cycles and neighbourhood as defect hotspots in software
systems
C2-2: Better understanding of the change impact of dependency cycles
C3. Tool and metrics to refactor defect- and change-prone hotspots in dependency cycles
C3-1: Added metrics to understand the complexity of components and improve the
refactoring of cyclically dependent components
C3-2: A cycle breaking decision support system to refactor cyclically connected
components
Består av
Paper 1: Oyetoyan, Tosin Daniel; Conradi, Reidar; Cruzes, Daniela Soares. A Comparison of Different Defect Measures to Identify Defect-Prone Components. I: 2013 Joint Conference of the 23nd International Workshop on Software Measurement (IWSM) and the Eighth International Conference on Software Process and Product Measurement (Mensura). IEEE Computer Society 2013, s. 181-190 http://dx.doi.org/10.1109/IWSM-Mensura.2013.34 " © 2013 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes, creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works."Paper 2: Oyetoyan, Tosin Daniel; Cruzes, Daniela Soares; Conradi, Reidar. A study of cyclic dependencies on defect profile of software components. Journal of Systems and Software 2013 ;Volum 86.(12) s. 3162-3182 http://dx.doi.org/10.1016/j.jss.2013.07.039 This article is reprinted with kind permission from Elsevier, sciencedirect.com
Paper 3: Oyetoyan, Tosin Daniel; Conradi, Reidar; Cruzes, Daniela Soares. Criticality of Defects in Cyclic Dependent Components. I: IEEE 13th International Working Conference on Source Code Analysis and Manipulation (SCAM) Eindhoven, 22-23 Sept. 2013. IEEE Computer Society 2013, s. 21-30 http://dx.doi.org/10.1109/SCAM.2013.6648180 "© 2013 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes, creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works."
Paper 4: Oyetoyan, Tosin Daniel; Cruzes, Daniela Soares; Conradi, Reidar. Can Refactoring Cyclic Dependent Components Reduce Defect-Proneness?. I: 29th IEEE International Conference on Software Maintenance (ICSM 2013). IEEE Computer Society 2013 s. 420-423 http://dx.doi.org/10.1109/ICSM.2013.62 " © 2013 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes, creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works."
Paper 5: Oyetoyan, Tosin Daniel; Cruzes, Daniela Soares; Conradi, Reidar. Transition and Defect Patterns of Components in Dependency Cycles during Software Evolution. I: IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE), Antwerp, 3-6 Febr. 2014. IEEE Computer Society 2014 ISBN 978-1-4799-3752-3. s. 283-292 http://dx.doi.org/10.1109/CSMR-WCRE.2014.6747180 " © 2014 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes, creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works."
Paper 6: Oyetoyan, Tosin Daniel; Dietrich, Jens; Falleri, Jean-Rémy; Jezek, Kamil. Circular Dependencies and Change-Proneness: An Empirical Study. I: 2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER). IEEE conference proceedings 2015 ISBN 978-1-4799-8469-5. s. 241-250 http://dx.doi.org/10.1109/SANER.2015.7081834 " © 2015 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes, creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works."
Paper 7: Oyetoyan, Tosin Daniel; Cruzes, Daniela Soares; Thurmann-Nielsen,Christian. A Decision Support System to Refactor Class Cycles
Paper 8: Oyetoyan, Tosin Daniel; Cruzes, Daniela Soares; Conradi, Reidar. Can Reused Components Provide Lead to Future Defective Components in Smart Grid Applications?. I: Parallel and Distributed Computing and Systems : Software Engineering and Applications (PDCS 2012). ACTA Press 2012
Paper 9: Oyetoyan, Tosin Daniel; Conradi, Reidar; Sand, Kjell. Initial survey of Smart Grid activities in the Norwegian energy sector - use cases, industrial challenges and implications for research. I: Software Engineering for the Smart Grid (SE4SG), 2012 International Workshop. IEEE conference proceedings 2012 ISBN 978-1-4673-1863-1. s. 34-37 http://dx.doi.org/10.1109/SE4SG.2012.6225715
Paper 10: Oyetoyan, Tosin Daniel; Conradi, Reidar; Cruzes, Daniela Soares. Open Source Software for the Smartgrid: Challenges for Software Safety and Evolution. NIK: Norsk Informatikkonferanse 2011 ;Volum 2011. s. 239-243 http:// www.tapironline.no/last-ned/867