«UNIVERSITY OF CALIFORNIA, IRVINE Enhancing Architecture-Implementation Conformance with Change Management and Support for Behavioral Mapping ...»
UNIVERSITY OF CALIFORNIA,
Enhancing Architecture-Implementation Conformance with Change Management and Support
for Behavioral Mapping
submitted in partial satisfaction of the requirements
for the degree of
DOCTOR OF PHILOSOPHY
in Information and Computer Science
by Yongjie Zheng
Professor Richard N. Taylor, Chair Professor André van der Hoek Assistant Professor James A. Jones © 2012 Yongjie Zheng DEDICATION To Mom and Dad.
TABLE OF CONTENTSPage LIST OF FIGURES vi LIST OF TABLES viii ACKNOWLEDGMENTS ix CURRICULUM VITAE xi
OF THE DISSERTATION xiv 1 Introduction
1.1 Research Question
1.4 Organization of the Dissertation
2 Architecture- Implementation Mapping
2.1 One- Way Mapping
2.1.1 Full Code Generation
2.1.2 Architecture Refinement
2.1.3 Reverse Engineering
2.1.4 Runtime Monitoring
2.2 Two- Way Mapping
2.2.1 Code Generation and Separation
2.2.2 Architecture Frameworks
2.2.3 Unified Representations
2.2.4 Roundtrip Engineering
3 Related Work
3.1 Architecture Modeling
3.1.1 Definition of Software Architecture
3.1.2 Architecture Description Languages
3.1.3 Modeling Aspects
3.2 Code Generation
3.3 Architecture- Centric Software Development
3.3.1 Model- Driven Development
3.3.2 Architecture- based Research
3.4 Software Traceability
3.5 Software Change Management
4.1 Design Principles
iii 4.2 Overview
4.3 Code Separation and Integration
4.3.1 Deep Separation
4.3.2 Code Integration
4.3.3 Discussion: Deep Separation vs. Shallow Separation
4.4 Change Management
4.4.1 Architecture Change Model
4.4.2 Architecture- based Code Regeneration
4.4.3 Architecture Change Notification
4.4.4 Discussion: Prevention of Programmer- induced Negative Properties
4.5 Support for Behavioral Mapping
4.5.1 Architecture Behavioral Modeling in 1.x- Way Mapping
4.5.2 Applying Deep Separation to Behavioral Code
4.6 Revisiting Architecture- Implementation Mapping
5.1 Implementation Environment
5.1.2 ArchStudio 4
5.2 Implementation Tasks
5.2.1 State Diagram Editor and Sequence Diagram Editor
5.2.2 Recording Architecture Changes
5.2.3 Change Analysis and Refinement
5.2.4 Code Generation
5.2.5 Sending Change Notifications
5.3 Tool Usage
5.4 Lessons Learned
5.4.1 About Eclipse
5.4.2 About ArchStudio
6 Experiments and Validations
6.2 Evaluation I: Deep Separation of ArchStudio 4
6.2.1 Evaluation Method
6.2.3 Threats to Validity
6.3 Evaluation II: Replaying Changes of ACTS
6.3.1 Evaluation Method
6.3.3 Threats to Validity
6.4 Evaluation III: Replaying Changes of 1.x- Way Mapping
6.4.1 Evaluation Method
6.4.3 Threats to Validity
6.5 Discussion: Generalization of Results
iv 7.2 Future Work
7.2.1 Remaining Challenges of Architecture- Implementation Mapping
7.2.2 Architecture- based Dynamic Adaptation
7.2.3 Implementation of Product Line Architectures
7.2.4 Advanced Architecture Change Management
Figure 2- 1: Reverse engineering diagram excerpted from .
Figure 2- 2: An example of partial class.
Figure 2- 3: An ArchJava example excerpted from .
Figure 3- 1: xADL schemas and dependencies
Figure 3- 2: Different code generation strategies see code differently.
Figure 3- 3: Model- driven development.
Figure 3- 4: Architecture- based research.
Figure 4- 1: An overview of 1.x- way architecture- implementation mapping.
Figure 4- 2: Rules of deep separation for architecture- prescribed code.
Figure 4- 3: Rules of deep separation for user- defined code.
Figure 4- 4: Structural architecture of the calculator application.
Figure 4- 5: Integrating code by method calls.
Figure 4- 6: An example of code integration framework.
Figure 4- 7: Architecture changes in 1.x- way mapping.
Figure 4- 8: Code regeneration mechanisms.
Figure 4- 9: Prevention of programmer- induced negative properties.
Figure 4- 10: Example of a behavioral architecture definition.
Figure 4- 11: Structure of the architecture- prescribed code generated from a state diagram................... 96 Figure 5- 1: The architecture of the Eclipse platform .
Figure 5- 2: A screenshot of the state diagram editor.
Figure 5- 3: A screenshot of the sequence diagram editor.
Figure 5- 4: Architecture change recording in the Archipelago modeling environment.
Figure 5- 5: Code generation in 1.x- way mapping.
Figure 5- 6: A configuration panel that tunes the mapping process.
Figure 5- 7: An example of architecture change notifications.
Figure 6- 1: ArchStudio 4's architecture.
Figure 6- 2: Replaying environment.
Figure 6- 3: A screenshot of development history in Subclipse.
Figure 6- 4: Change details shown in Trac.
vi Figure 6- 5: Recovered architecture milestones.
Figure 6- 6: Architecture diagrams of 1.x- way mapping.
Table 2- 1: Architecture- implementation mapping.
Table 4- 1: A comparison of architecture- implementation mapping approaches.
Table 6- 1: Results of Evaluation I.
Table 6- 2: Results of Evaluation II.
Table 6- 3: Results of Evaluation III.
Special thanks goes to my advisor, Professor Richard N. Taylor, who recruited me to a research group that I have been very proud of and let me work on interesting projects. I thank Dick from the bottom of my heart for offering me all the support, guidance, and resources I needed to complete my Ph.D. study. In particular, I really appreciate the trust and space that Dick gave me in research, and always pointing me to the directions that later on I felt very excited about. These significantly fostered the development of my dissertation work. Last, but not least, I thank Dick for inviting me to a delicious homemade Thanksgiving dinner. Yes, that was unforgettable!
I would like to thank my dissertation committee members, Professor André van der Hoek and Professor James A. Jones. Thank you for spending time reading my survey paper, topic proposal, and dissertation, and giving me helpful feedback. I always think the time we spent together in my candidacy exam and topic defense is one of my most valuable experiences during my PhD study.
Discussing my research with world-class researchers in two-hour period, in my eyes, is one of most exciting things.
In addition, a thank you to Professor Donald J Patterson and Professor Lizhi Sun, who both joined my candidacy committee. Thank you for your time and comments! What you did really meant a lot to me. I also want to thank Professor Nenad Medvidović of University of Southern California. I met with Neno several times, and he has been helpful to me all the time.
Many thanks to Eric Dashofy. Eric reviewed my ICSE paper, topic proposal, NSF proposal, and gave me challenging questions that I had to think over before I could respond. Those long conversations we once had by email not only made many ideas and concepts clear, but also helped to get my research ready to face a wider research community. Particularly, I want to thank Eric for developing ArchStudio 4, a wonderful system and platform based on which my dissertation work was done. Thank you, Eric, for everything!
Hazel Asuncion and Scott Hendrickson gave me many help when I first came to UC Irvine.
Hazel also kindly answered all my questions regarding her ACTS project during the evaluation of my dissertation work. I would like to use this opportunity to express my gratitude to both of them for being such great group mates to me.
I would like to extend my thanks to Justin Erenkrantz, Michael Gorlick, Alegria Baquero, Kyle Strasser, Leyna Cotran, Erik Trainer, Rosalva Gallardo Valencia, HyeJung Choi, Derek Pfister, Francisco Servant, and Fang Deng. Justin, Michael, Alegria, and I worked together on the CREST demo project, which finally generated some impressive results. Kyle is my constant office mate, who comes to the office every day as I do and patiently answered my questions ix ranging from English to places to buy eyeglasses. Leyna gave a guest lecture to an undergraduate class that I once taught, and I really appreciate the time and effort she spent on that. Erik spent a whole morning in helping me record the demo video of my developed tool. His charming voice made the video absolutely better, and I know that was far more than the lunch I treated him. In addition, HyeJung, Derek, and I took many classes together and we worked together on several class projects. Paco, Fang, and I attended ASE 2011 together, and we had a great time there.
Thank you, everyone!
Finally, I give my most sincere gratitude to my family. To my wife Yan and my daughter Janie, I love you so much and thank you for bringing me so much pleasure. To Dad and Mom, who have done so many things for me unconditionally, words are not enough to express my gratitude.
Without your support, I do not think I am still on my way to pursuit my academic goal. I would also like to thank my brother Yongsheng Zheng, my sister Dongmei Zheng, my uncle Shubiao Liu, my cousin Gang Liu, and their families. I miss all of you in this big family. I love you all!
Field of Study Software engineering, software architecture and design, architecture-implementation mapping, architecture-centric software development.
Teaching Instructor. INF 111: Software Tools and Methods (21 students) - Summer 2010.
xi Teaching Assistant. INF 123: Software Architectures, Distributed Systems, and Interoperability – Spring 2009; INF 117: Project in Software Systems Design – Winter 2009; INF 121: Software Design I – Fall 2008.
Reader. INF 117: Project in Software Systems Design – Spring 2008; ICS 52: Introduction to Software Engineering – Winter 2008; INF 113: Requirement Analysis and Engineering – Fall 2007.
Publications Yongjie Zheng and Richard N. Taylor. "Enhancing Architecture-Implementation Conformance
with Change Management and Support for Behavioral Mapping", Proceedings of ICSE 2012:
34th International Conference on Software Engineering, June 2-9, 2012, Zurich, Switzerland. (to appear).
Yongjie Zheng and Richard N. Taylor. "xMapper: An Architecture-Implementation Mapping Tool", Informal Research Demonstration, Proceedings of ICSE 2012: 34th International Conference on Software Engineering, June 2-9, 2012, Zurich, Switzerland. (to appear).
Yongjie Zheng and Richard N. Taylor. "Taming Changes With 1.x-Way ArchitectureImplementation Mapping", Short Paper, Proceedings of ASE 2011: 26th IEEE/ACM International Conference On Automated Software Engineering, November 6–12, 2011, Lawrence, Kansas.
Yongjie Zheng. "1.x-Way Architecture-Implementation Mapping", Doctoral Symposium, Proceedings of ICSE 2011: 33rd International Conference on Software Engineering, May 21-28, 2011, Honolulu, Hawaii.
Yongjie Zheng and Richard N. Taylor. "A Rationalization of Confusion, Challenges, and Techniques in Model-Based Software Development", ISR Technical Report UCI-ISR-11-5, August 2011.
Yongjie Zheng and Alvin T.S. Chan. "MobiGATE: A Mobile Computing Middleware for the Active Deployment of Transport Services", IEEE Transactions on Software Engineering, Jan 2006, vol. 32, no. 1, pp 35-50.
Yongjie Zheng, Alvin T.S. Chan, and Grace Ngai. "Applying Coordination for Service Adaptation in a Mobile Computing Environment", IEEE Internet Computing, Sep/Oct 2006, pp.
61-67, vol. 10, no. 5, IEEE.
Yongjie Zheng, Alvin T.S. Chan, and Grace Ngai. "MCL: A MobiGATE Coordination Language for Highly Adaptive and Reconfigurable Mobile Middleware", Software Practice and Experience, special issue on Auto-adaptive and Reconfigurable Systems, 36(11-12), pp1355xii Yongjie Zheng and Alvin T.S. Chan. "Coordinated Composition of Services for Adaptive Mobile Middleware", Proc. of the 11th IEEE Symposium on Computers and Communications (ISCC 2006), June 26-29, 2006, Pula, Calkiari, Sardinia, Italy.
Yongjie Zheng and Alvin T.S. Chan. "Stream Composition for Highly Adaptive and Reconfigurable Mobile Middleware", Proceedings of 28th IEEE Annual International Computer Software and Applications Conference (COMPSAC 2004), IEEE Press, 28-30 Sep 2004, Hong Kong.
Yongjie Zheng and Alvin T.S. Chan. "MobiGATE: A Mobile Gateway Proxy for the Active Deployment of Transport Entities", Proceedings of the 2004 International Conference on Parallel Processing (ICPP 2004), 15-18 Aug 2004, Montreal, Quebec, Canada, IEEE.
Yongjie Zheng, Yang Wang, Hanjian Fu, and Drew Schechter. "IBM CrossWorlds Collaborations as a Web Service", IBM WebSphere Developer Technical Journal, Aug 2002.
Software architecture plays an increasingly important role in complex software development.