On the Interplay of Architecture and Collaboration on Software Evolution and Maintenance
Total Page:16
File Type:pdf, Size:1020Kb
On the Interplay of Architecture and Collaboration on Software Evolution and Maintenance A Thesis Submitted to the Faculty of Drexel University by Sunny Wong in partial fulfillment of the requirements for the degree of Ph.D. in Computer Science December 2010 c Copyright 2010 Sunny Wong. All Rights Reserved. Acknowledgements Numerous people have been involved in the completion of this thesis. I am grateful for their support and acknowledge that, without them, I would not be where I am today. Words cannot express my gratitude to everyone who has helped me along the way—but here goes anyways. First and foremost, I would like to express my gratitude and appreciation to my advisor, Dr. Yuanfang Cai, without whom this thesis would not be possible. Dr. Cai’s guidance and support has been the driving force behind my success. I am indebted to her patient advising in leading me through this journey known as graduate school and academic research. The unique opportunity of working with her as been a truly unforgettable experience. I would like to thank the other members of my thesis committee: Dr. Carliss Baldwin, Dr. Spiros Mancoridis, Dr. Ali Shokoufandeh, Dr. Giuseppe “Peppo” Valetto, and Dr. Tao Xie. The feedback and encouragement from my committee members have pushed me to look at my work from different perspectives and to work outside of my comfort zone. Their time and input has been greatly appreciated. I want to recognize Dr. Miryung Kim for her editorial advice and insights. She has helped me become a better writer in more clearly explaining technical details. I also would like to acknowledge my other collaborators: Dr. Alessandro Garcia, Dr. Jeff Gray, Dr. Claudio Sant’Anna, Dr. Kevin Sullivan, Yuanyuan Song, and Hyun Cho. It was a pleasure working with you all. I want to thank my colleagues from Drexel University: Kanwarpreet Sethi, Archit Baweja, Georgi Simeonov, Kelly Blincoe, and Mike Dalton; whose efforts in getting various parts of this thesis published are greatly appreciated. My former colleague, Kanwarpreet “KP” Sethi, desires special recognition for his tremendous help. KP was always available to proofread, discuss research ideas, and help implement tools (especially Minos and Parcae)—even when he had his own thesis to work on. Thanks to the members of the SERG lab for the numerous “board meetings” and social events to keep me sane. Finally, this research was supported in part by the Koerner Family Fellowship and by the National Science Foundation, under grants CCF-0916891 and DUE-0837665. Table of Contents List of Figures .......................................................................................... iv List of Tables ........................................................................................... vi Abstract................................................................................................. viii 1. Introduction......................................................................................... 1 2. Background ......................................................................................... 5 2.1 Software Modularity.......................................................................... 5 2.1.1 Canonical Modularity Theories ..................................................... 5 2.1.2 Modularity Models and Assessment ................................................ 8 2.2 Evolutionary Coupling ....................................................................... 11 2.2.1 Association Rules Mining ............................................................ 12 2.2.2 Other Evolutionary Coupling Derivation Techniques.............................. 13 2.3 Modularity Violations ........................................................................ 13 2.3.1 Conformance Checking............................................................... 14 2.3.2 Design Smells ......................................................................... 16 2.4 Socio-Technical Congruence ................................................................. 16 2.4.1 Conway’s Law ........................................................................ 17 2.4.2 Coordination and Congruence....................................................... 17 2.4.3 Empirical Studies..................................................................... 19 2.4.4 Identifying and Addressing Coordination Mismatches ............................ 20 3. Challenges........................................................................................... 22 3.1 Modularity .................................................................................... 22 3.2 Evolutionary Coupling ....................................................................... 22 3.3 Modularity Violations ........................................................................ 23 4. Scalable Formal Model............................................................................. 24 4.1 Formalization of the Augmented Constraint Network ..................................... 27 4.1.1 Mathematical Formalization of ACN ............................................... 27 4.1.2 Complexity of Dependency Analysis ................................................ 29 4.2 Formalizing UML Class Diagram to ACN .................................................. 30 4.2.1 Decisions in UML Classes and Interfaces ........................................... 31 4.2.2 Assumption Relations in UML ...................................................... 31 i 4.3 Binary Augmented Constraint Network .................................................... 34 4.4 PWDR Derivation Algorithm from BACN ................................................. 36 4.4.1 Complexity Analysis ................................................................. 39 4.5 Change Impact Analysis using BACNs ..................................................... 40 4.5.1 Complexity of Impact Analysis...................................................... 40 4.5.2 Algorithm............................................................................. 41 4.6 Evaluation..................................................................................... 44 4.6.1 Subjects............................................................................... 45 4.6.2 Evaluation Questions................................................................. 46 4.6.3 Experimental Results with Previously Studied Systems .......................... 47 4.6.4 Experimental Results with Newly Studied Projects ............................... 50 4.7 Discussion..................................................................................... 55 4.8 Related Work ................................................................................. 57 4.9 Conclusion .................................................................................... 58 5. Identifying and Assessing Concurrent Work...................................................... 59 5.1 Related Work ................................................................................. 61 5.2 Approach...................................................................................... 63 5.2.1 Overview.............................................................................. 63 5.2.2 Formalization ......................................................................... 68 5.3 Evaluation..................................................................................... 72 5.3.1 Keyword in Context.................................................................. 72 5.3.2 Parcae ............................................................................... 73 5.3.3 Apache Ant ........................................................................... 74 5.3.4 Eclipse JDT........................................................................... 80 5.4 Discussion..................................................................................... 87 5.4.1 Threats to Validity ................................................................... 88 5.4.2 Future Work .......................................................................... 89 5.5 Conclusion .................................................................................... 89 6. Generalizing Evolutionary Dependencies ......................................................... 91 6.1 Related Work ................................................................................. 92 6.1.1 Impact Analysis ...................................................................... 92 6.1.2 Markov Processes..................................................................... 94 ii 6.2 Approach...................................................................................... 94 6.2.1 Definitions and Background ......................................................... 95 6.2.2 Computing Stochastic Dependencies................................................ 96 6.2.3 Example............................................................................... 98 6.2.4 Hybrid Stochastic Dependencies .................................................... 99 6.3 Evaluation..................................................................................... 100 6.3.1 Subjects............................................................................... 100 6.3.2 Evaluation Procedure ................................................................ 101 6.3.3 Results ................................................................................ 103 6.3.4 Hybrid Stochastic Dependencies ...................................................