Curriculum Vitae Zhenchang Xing Computing Science Department University of Alberta, Edmonton, Alberta T6G 2E8 Phone: (780) 433 0808 E-mail: xing@cs.ualberta.ca http://www.cs.ualberta.ca/~xing EDUCATION Ph.D. in Computer Science (specialize in Software Engineering) from the Computing Science Department, University of Alberta, Edmonton Alberta, Canada, June 5 2008 (Degree Confer Date) M.Eng. in Computer Software and Theory from the Institute of Machine Intelligence, Nankai University, Tianjin, P.R. China, July 2000. B.Sc. in Computer Software from the Department of Computer and System Science, Nankai University, Tianjin, P.R. China, July 1997. AWARDS Outstanding Ph.D. research achievement award, Computing Science Department, University of Alberta, 2007 Best paper award of the 22 nd International Conference on Software Maintenance, 2006. SKILLS Programming Languages: C/C++ (5 years), Java (5 years), SQL (5 years), XML/XSLT (2 years) Development practices: Object-Oriented Software Development (8 years), UML (5 years), Test-Driven Development (3 years), Design Patterns and Refactorings (5 years) Frameworks: MFC (3 years), J2EE (1 year), Eclipse Plugin Development (5 years), Eclipse GEF (1 year) Database Systems: MS SQL Server (2 years), PostgreSQL (3 years), DB2(6 months), MS FoxPro (1 year) Software Tools: MS Visual Studio (5 years), gcc/gdb (6 months), Eclipse (5 years), IBM WebSphere (1 year), IBM Jazz and TeamConcert (4 months), JUnit (3 years), MS Visual Source Safe (4 years), CVS (5 years), Subversion (1 year) RESEARCH INTERESTS Research areas: Software evolution, Collaborative software development, Reverse engineering, Date mining in software engineering, Knowledge-based software engineering Research subtopics: Software differencing and merging, Asynchronous API evolution and reuse, Modelbased selective regression testing, Software architecture/design compliance checking, User interface evolution and reengineering, Program analysis and comprehension, Design recovery and specification mining, Design evolution analysis, Change pattern mining, Software design mentoring, Knowledge and expertise sharing and transfer 1/5
RESEARCH AND TECHNICAL EXPERIENCE Dec 2006 Feb 2007: Application Specialist, Institute for Information Technology, National Research Council Canada. In this project, I have developed a data collection and effort estimation method to investigate the effectiveness of Test-Driven Development for early defect detection. A study with student participants is ongoing to apply this method to (a) gauge whether TDD indeed permits early detection of errors in small programs; and (b) estimate the savings achieved by detecting these errors when they occur and fixing them immediately upon discovery versus detecting and fixing them at the end of the programming task. Jan 2002 Now: Ph.D. Student and Graduate Research Assistant, Computing Science Department, University of Alberta. During my PhD study, I have developed a model-differencing based methodology to analyze and support object-oriented evolutionary development. As a proof of concept, this methodology has been implemented in three open source software tools JDEvAn, JDEvAn Viewer, and Diff-CatchUp, which can be downloaded at my web site http://www.cs.ualberta.ca/~xing. I was one of the two graduate students participating in the research project JRefleX: Mentoring Software Design and Team Collaboration, led by my supervisor Dr. Eleni Stroulia, which won the 2004 IBM Eclipse Innovation Award. Aug 2000 Dec 2001: Software Engineer, Institute of Machine Intelligence, Nankai University. In this position, I continued my work on the development and maintenance of Business Card Recognition and Management System. July 1997 July 2000: Master Student, Graduate Research Assistant and Software Developer, Institute of Machine Intelligence, Nankai University. During this period, I studied Carnegie Mellon Software Engineering Institute s software risk management and software capability maturity model and investigated what practices may help improve the ad-hoc development process at Institute of Machine Intelligence. I also participated in the development and maintenance of several industrial software projects, including the OCR software TypeReader (ExperVision Inc.), the web-based information management system (Tianjin Municipal Health Bureau), the Product and Sale Management System (Tianjin Seamless Steel Pipe Ltd.), and the Business Card Recognition and Management System (Fujian Futong Ltd.). TEACHING AND MENTORING EXPERIENCE I was teaching assistant of the senior undergraduate software engineering course Introduction to Software Engineering for seven terms. The course covers a wide-range of topics, including software process, project management, agile/iterative software development, Test-Driven Development, requirement analysis, agile requirements, Unified Modeling Language, design patterns, refactoring, graphic user interface design, etc. This course was recently recognized as the best software engineering course among 41 Canadian universities, in terms of imparting industry-recognized best practices (http://blog.chapmanconsulting.ca/2007/ 09/27/Reviewing+Canadian+CompSci+Schools+Whos+Teaching+Best+Practices+Part+II.aspx). I supervised and mentored two summer student projects during my PhD study. The first project is to automate the process for the cost-benefit analysis of refactoring activities, developed by one of the previous Master students of my supervisor. The tool developed in this project was recently used in our work on capturing and analyzing refactorings in an open-source software project (publication #8). The second project is to develop a tool that automatically takes snapshots of source-code repositories according to user-specified time span and interval; it then passes these snapshots through a fact extractor to reverse-engineer class models and populates 2/5
the extracted model facts into a relational database. This tool provides a general reverse-engineering infrastructure, on which much of software-evolution related research within our research group relies. PROFESSIONAL ACTIVITIES Program committee member: ACM/IEEE ICSE Workshop on Comparison and Versioning of Software Models, May 2008. The 22 nd IEEE/ACM International Conference on Automated Software Engineering (Expert-Review Panel), November 2007. The 17 th Annual International Conference hosted by the IBM Centers for Advanced Studies, CASCON, October 2007. The 16 th Annual International Conference hosted by the IBM Centers for Advanced Studies, CASCON, October 2006. Tool demonstration co-chair: The 14th Working Conference on Reverse Engineering, October 2007. Journal Referee: IEEE Transactions on Software Engineering, The special issue for the best papers from the 20 th International Conference on Software Maintenance, 2005. Conference/Workshop Reviewer: The 12 th European Conference on Software Maintenance and Reengineering, 2008. The 22 nd International Conference on Software Maintenance, 2006. The 13 th Working Conference on Reverse Engineering, 2006. The 10 th European Conference on Software Maintenance and Reengineering, 2006. The 13 th International Conference on Program Comprehension, 2005. The 1 st International Workshop on Mining Software Repositories, 2004. The 8 th European Conference on Software Maintenance and Reengineering, 2004. The 10 th Working Conference on Software Engineering, 2003. The 2 nd ASERC Workshop on Software Architecture, 2003. PUBLICATIONS (All publications are available at http://www.cs.ualberta.ca/~xing/cv-all.html) Journal publications 1. Z. Xing and E. Stroulia, Support API Evolution with Diff-CatchUp, IEEE Transaction on Software Engineering, 33(12):818-836, 2007. 2. Z. Xing and E. Stroulia, Differencing Logical UML Models, Journal of Automated Software Engineering, 14(2):215-259, June 2007. 3. Z. Xing and E. Stroulia, Understanding the Evolution and Co-evolution of Classes in Object-oriented Systems, International Journal of Software Engineering and Knowledge Engineering, Vol. 16, No. 1, 23-52, February 2006. 4. Z. Xing and E. Stroulia, Analyzing the Evolutionary History of the Logical Design of Object-oriented Software, IEEE Transactions on Software Engineering, 31(10):850-868, Oct. 2005. 3/5
Peer-reviewed conferences 5. Z. Xing and E. Stroulia, The JDEvAn tool suite in Support of Object-Oriented Evolutionary Development, The 30 th International Conference on Software Engineering Research Demonstration, Leipzig, Germany, May 10-18, 2008 (Accepted). 6. Z. Xing and E. Stroulia, Refactoring Detection based on UMLDiff Change-facts Queries, In Proc. of the 13 th Working Conference on Reverse Engineering, Benevento, Italy, October 23-27, 2006. 7. Z. Xing and E. Stroulia, Refactoring Practice: How it is and how it Should be Supported - An Eclipse Case Study, In Proc. of the 22 nd International Conference on Software Maintenance, Philadelphia, Pennsylvania, September 24-27, 2006 (Best Paper Award). 8. C. Schofield, B. Tansey, Z. Xing and E. Stroulia, Digging the Development Dust for Refactorings, In Proc. of the 14 th International Conference on Program Comprehension, Athens, Greece, June 14-16, 2006. 9. Z. Xing and E. Stroulia, UMLDiff: An Algorithm for Object-oriented Design Differencing, In Proc. of the 20 th International Conference on Automated Software Engineering, pp. 54-65, Nov 7-11, 2005, Long beach CA, USA, ACM Press (Nominated for the Best Paper Award). 10. Z. Xing and E. Stroulia, Towards Experience-based Mentoring of Evolutionary Development, In Proc. of the 21 st International Conference on Software Maintenance, pp. 621-624, Sept 25-30, 2005, Budapest, Hungary, IEEE Press. 11. Z. Xing, Design Mentoring based on Design Evolution Analysis, The Doctoral Symposium of the 27 th International Conference on Software Engineering (Extended Abstract in the Conference Proceedings), pp. 660, May 15-21, 2005, St. Louis, Missouri, USA, IEEE Press. 12. Z. Xing and E. Stroulia, Understanding Phases and Styles of Object-Oriented Systems' Evolution, In Proc. of the 20 th International Conference on Software Maintenance, pp. 242-251, Sept 11-14, 2004, Chicago Illinois, USA, IEEE Press (Nominated for the Best Paper Award). 13. Z. Xing and E. Stroulia, Data-mining in Support of Detecting Class Co-evolution, In Proc. of the 16 th International Conference on Software Engineering and Knowledge Engineering, pp. 123-128, June 20-24, 2004, Banff Alberta, Canada (Nominated for the Best Paper Award). 14. Z. Xing and E. Stroulia, Understanding Class Evolution in Object-Oriented Software, In Proc. of the 12 th International Workshop on Program Comprehension, pp. 34-43, June 24-26, 2004, Bari, Italy, IEEE Press. Peer-reviewed workshops 15. Z. Xing and E. Stroulia, Design Mentoring based on Design Evolution Analysis. In Proc. of Eclipse Technology exchange workshop, OOPSLA 2004, Vancouver BC, Canada. 16. Z. Xing and E. Stroulia, Recognizing Refactoring from Change Tree, In Proc. of REFACE (REFactoring: Achievements, Challenges, Effects) workshop in conjunction with the 10 th Working Conference on Reverse Engineering, Nov 13, 2003, Victoria BC, Canada. 17. K. Wong, W. Blanchet, Y. Liu, C. Schofield, E. Stroulia, and Z. Xing, JRefleX: Towards Supporting Small Student Software Teams, In Proc. Of Eclipse Technology exchange workshop, pp.56-60, OOPSLA 2003, Oct 27, 2003, Anaheim CA, USA. Technical reports 18. Z. Xing and E. Stroulia, Understanding Object-Oriented Architecture Evolution via Change Detection, University of Alberta Technical Report TR03-20, November 2003. 19. Z. Xing and E. Stroulia, Bottom-up Design-Evolution Concern Discovery and Analysis, University of Alberta Technical Report TR07-13, July 2007. 4/5
Thesis 20. Z. Xing, Supporting Object-Oriented Evolutionary Development by Design Evolution Analysis, Ph.D. Dissertation, University of Alberta, 2007. PRESENTATIONS and POSTERS Presentations 1. Does TDD save our neck? Software Engineering Group Seminar, Institute for Information Technology, National Research Council, February 9, 2007, Ottawa, Canada. 2. Refactoring Detection based on UMLDiff Change-facts Queries, The 13 th Working Conference on Reverse Engineering, October 23-27, 2006, Benevento, Italy. 3. UMLDiff: An Algorithm for Object-Oriented Design Differencing. The 20 th International Conference on Automated Software Engineering, November 11, 2005, Long Beach, California, USA. 4. Design Mentoring based on Design Evolution Analysis, The Doctoral Symposium of 27 th International Conference on Software Engineering, May 2005, St. Louis, Missouri, USA. 5. Understanding Phases and Styles of Object-oriented Systems Evolution, The 20 th International Conference on Software Maintenance, September 2004, Chicago Illinois, USA. 6. Understanding Class Evolution in Object-Oriented Software, The 12 th International Workshop on Program Comprehension, June 2004, Bari, Italy. 7. Recognizing Refactoring from Change Tree, The First International Workshop on REFactoring: Achievements, Challenges, Effects, November 2003, Victoria BC, Canada. 8. Understanding Software Evolution via Change Detection, 2003 CSER (Consortium for Software Engineering, Canada) meeting, Toronto. Posters 9. Supporting Object-Oriented Evolutionary Development by Design Evolution Analysis, The 17 th Annual International Conference hosted by the IBM Centers for Advanced Studies, CASCON, October 2007, Toronto, Canada. 10. Design Mentoring based on Design Evolution Analysis, The IBM Centers for Advanced Studies Technology Link Event, December 2004, Ottawa, Canada. 11. Evolution Analysis: Understanding How the Software System Evolves, The 13 th Annual International Conference hosted by the IBM Centers for Advanced Studies, CASCON, October 2003, Toronto, Canada. 12. Understanding Software Evolution via Change Detection, The 25 th International Conference on Software Engineering, May 2003, Portland, Oregon. 5/5