|
Dr. XING Zhenchang
Lee Kuan Yew Research Fellow
Department of Computer Science
School of Computing
National University of Singapore
13 Computing Drive, Singapore 117417
E-mail: xingzc@comp.nus.edu.sg
Telephone: +65 65167370
Fax: +65 67791610
Office: COM1-03-25
|

|
|
|
News |
|
- Sept 28, 2011: I and my collaborators won the Best Paper Award at the 27th International Conference on Software Maintenance for the paper "An
Exploratory Study of Feature Location Process: Distinct Phases, Recurring Patterns, and Elementary Actions", co-authored with
Jinshui Wong, Xin Peng, and Wenyun Zhao from Fudan University, China.
|
|
Research Interests |
|
|

My research focuses on two fundamental software engineering techniques, model differencing
and traceability recovery, with applications to sustainable software maintenance and
reengineering. I also have keen interests in human aspects of software engineering, with the
overarching goal of improving the productivity of software engineers.
Currently, my research
centers on three on-going research projects: (1) multi-dimensional software maintenance of large,
complex software and information systems, (2) reengineering legacy software into sustainable
cloud services, and (3) cloud-based personalized actionable intelligence for software engineering.
These projects are motivated by practical problems encountered in engineering software,
information needs of software engineers, and challenges faced by industry.
|
|
Awards |
|
- 2011: Best Paper Award, The 27th International Conference on Software Maintenance
- 2009: Outstanding Ph.D. Thesis Award, Department of Computing Science, University of Alberta
- 2007: Outstanding Ph.D. Research Achievement Award, Department of Computing Science, University of Alberta
- 2006: Best Paper Award, The 22nd International Conference on Software Maintenance
- 2004: IBM Eclipse Innovation Award, JReflex: Mentoring Software Design and Team Collaboration (under the supervision of Prof. Eleni Stroulia)
|
|
Recent and Selected Publications |
|
|
Please check out my past work (2004 - 2008) on Support
Evolutionary Software Development via Design Evolutoin Analysis at DBLP.
Peer-reviewed journal articles:
-
Z. Xing and E. Stroulia. Differencing Logical UML Models. Automated Software Engineering Journal, 14(2):215-259, 2007.
-
Z. Xing and E. Stroulia. Support API Evolution with Diff-CatchUp. IEEE Transactions on Software Engineering, 33(12):818-836, 2007.
-
Z. Xing and E. Stroulia. Understanding the Evolution and Co-evolution of Classes in Object-oriented Systems.
International Journal on Software Engineering and Knowledge Engineering, 16(1):23-52, 2006.
-
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, 2005.
Peer-reviewed papers:
-
S. Wang, D. Lo, Z. Xing and L. Jiang. Concern Localization using Information Retreval: An Empirical Study on Linux Kernel.
Proceedings of the 18th Working Conference on Reverse Engineering, 2011 (to appear).
-
T. Zhu, Y. Wu, X. Peng, Z. Xing and W. Zhao. Monitoring Software Evolution Quality by Analyzing Deviation Trends of Modularity Views.
Proceedings of the 18th Working Conference on Reverse Engineering, 2011 (to appear).
-
Z. Xing, Y. Xue and S. Jarzabek. CloneDifferentiator: Analyzing Clones by Differentiation.
Proceedings of the 26th International Conference on Automated Software Engineering (Formal Tool Demonstration), 2011 (to appear).
-
Z. Xing, Y. Liu, J. Sun and J.S. Dong. Differencing Labeled Transition Systems
Proceedings of the 13the International Conference on Formal Engineering Methods, 2011 (to appear).
-
J. Wang, X. Peng, Z. Xing and W. Zhao. An Exploratory Study of Feature Location Process: Distinct Phases, Recurring Patterns, and Elementary Actions.
Proceedings of the 27the International Conference on Software Maintenance, pp. 213-222, 2011. (Best Paper Award)
-
G. Zhang, X. Peng, Z. Xing and W. Zhao. Incremental and Iterative Reengineering Towards Software Product Line: An Industrial Case Study.
Proceedings of the 27the International Conference on Software Maintenance (Industrial Track), pp. 418-427, 2011.
-
X. Peng, Z. Xing, X. Tan, Y. Yu and W. Zhao. Iterative Context-Aware Feature Location.
Proceedings of the 33rd International Conference on Software Engineering (New Ideas and Emerging Results), pp. 900-093, 2011.
-
J. Zhu, X. Peng, S. Jarzabek, Z. Xing, Y. Xue and W. Zhao. Improving Product Line Architecture Design and Customization by Raising the Level of Variability Modeling.
Proceedings of the 12th International Conference on Software Reuse, pp. 151-166, 2011.
-
Z. Xing. Model Differencing with GenericDiff.
Proceedings of the 25th International Conference on Automated Software Engineering, pp.135-138, 2010.
-
Z. Xing, J. Sun, Y. Liu and J.S. Dong. SpecDiff: Debugging Formal Specifications.
Proceedings of the 25th International Conference on Automated Software Engineering (Formal Tool Demonstration), pp. 353-354, 2010.
-
Y. Xue, Z. Xing and S. Jarzabek. Understanding Feature Evolution in a Family of Product Variants.
Proceedings of the 17th Working Conference on Reverse Engineering, pp. 109-118, 2010.
-
Z. Xing and E. Stroulia. Refactoring Practice: How it is and How it Should be Supported ¨C An Eclipse Case Study.
Proceedings of the 22nd International Conference on Software Maintenance, 2006, pp. 458-468 (Best Paper Award)
-
Z. Xing and E. Stroulia. UMLDiff: An Algorithm for Object-oriented Design Differencing.
Proceedings of the 20th International Conference on Automated Software Engineering, 2005, pp. 54-65
(Best Paper Award Nominee, Google Scholar Citation: ~175).
-
Z. Xing and E. Stroulia. Understanding Phases and Styles of Object-Oriented Systems¡¯ Evolution.
Proceedings of the 20th International Conference on Software Maintenance, 2004, pp. 242-251 (Best Paper Award Nominee).
Technical reports (for future conference or journal submissions):
- Z. Xing. GenericDiff: Supporting Model Differencing as a Service.
- Y. Xue, Z. Xing and S. Jarzabek. Distilling Useful Clones By Contextual Difference (submitted to ICSE2012).
- Z. Xing, Y. Xue and S. Jarzabek. Feature Location in Evolving Software Product Family.
- Y. Xue, Z. Xing and S. Jarzabek. Sandwich Approach for Reengineering Legacy Software Product Family.
- X. Bai, L. Huang and Z. Xing. Graph Differencing Based Software Process Conformance Checking.
- X. Peng, Z. Xing, X. Tan, Y. Yu and W. Zhao. Improving Feature Location using Structural Similarity and Graph Matching
(submitted to Journal of Software Maintenance and Evolution: Research and Practice)
- G. Zhang, X. Peng, Z. Xing and W. Zhao. EmergentSPL: A Value-Based Incremental Approach for Reengineering Towards Software Product Lines
(submitted to Journal of Informatoin and Software Technology)
|
|
Professional Activities |
|
|
Program Committee Member
- International Conference on Software Maintenance (ICSM), 2008, 2009, 2010, 2011(Early Research Achievement Track)
- Working Conference on Reverse Engineering (WCRE), 2007(Tool-demo co-chair), 2011
- International Workshop on Software Clones (IWSC), 2010, 2011
- ICSE Workshop on Comparison and Versionong of Software Models (CVSM), 2008, 2009, 2010
- International Conference on Automated Software Engineering (ASE), 2007(Expert Review Panel)
- International Conference hosted by IBM Centers for Advanced Studies (CASCON), 2006, 2007
Invited Talks
-
2008: Supporting Evolutionary Software Development vis Design Evolution Analysis
North Carolina State University, Iowa State University, University of Calgary
-
2010: Model Differencing with GenericDiff and its Applications
Tampere University of Technology, Clarkson University, North Carolina State University, Southern Methodist University,
University of Texas at Austin, University of Washington, University of Waterloo, Ecole Polytechnique de Montreal, Fudan University
|
|
Research Projects |
|
|
Research Grants
- Academic Research Fund (Singapore), Model-Driven Comparison and Merging of COTS-Intensive Systems, March 2009¨CFebruary 2012, 69K SGD, PI
|
|
Research Summary |
|
|
Model Differencing and its Applications in Software Engineering
Software systems can be abstracted in various types of graph-based models, describing
requirement, structural, and behavioral aspects of software systems. Comparing software
models and detecting their differences is a highly relevant task in many applications.
I designed
UMLDiff algorithm for comparing UML class models of Object-Oriented (OO)
software. The UMLDiff algorithm has been applied to analyze design evolution of
OO software and to support evolutionary software development (e.g., design
mentoring, API-evolution catchup).
Designing a model-specific differencing
algorithm (such as UMLDiff) requires significant thought and effort. To support
model differencing as service, I designed GenericDiff, a general
framework for model comparison that can be easily deployed in a wide class of
application domains where a model comparison algorithm is required. GenericDiff
serves as an infrastructure on top of which a few applications have been
investigated, including analyzing software clones by differentiation,
reengineering a software family via automatic variability analysis,
debugging and understanding changing behaviors of formal
specifications, and process model conformance checking.
Recently, I have also been
incorporating graph differencing techniques with other analytic techniques (such
as clone detection, clustering, design structure matrices, and SAT solver) to
investigate (a) multi-dimensional software maintenance based on model
recovery and differencing; (b) reengineering legacy software into sustainable cloud-based
services (proposed with Prof. Stan Jarzabek and Prof. David Rosenblum), (c) the
design modularity and co-evolution issues of database-centric information
systems, and (d) the reliabity of evolving software ecosystems.
Traceability Recovery in Large Software Systems
Software maintenance could account for 40%-90% of total software cost. During software
maintenance, recovering traceability links among software artifacts,
for example, to link code units with a concern described in natural language,
has been recognized as one of the most common activities undertaken by software developers.
Information Retrieval (IR) based techniques have been widely applied for traceability
recovery and concern localization. We recently have conducted a large-scale empirical study
in which we investigated the effectiveness of ten IR techniques, some of which have not
been used for concern localization, on a Linux kernel dataset. This study reveals some
"surprising" findings about the effectiveness of IR techniques on large software corpora.
We are now developing a custom IR technique that is specifically suited for concern
localization in large software systems.
In addition to customizing IR techniques for software corpora, I also investigated
novel ways to improve concern localization. My recent work proposed an iterative
context-aware technique for concern localization. This technique solves the
concern localization problem as a graph matching problem. It addresses two outstanding
issues in existing techniques, i.e., analyzing each concern independently and performing
only a one-shot analysis.
I am also looking into the challenges in feature location in evolving software product
family, which consists of several similar but also different product variants. Feature
Location in such a setting has to properly address the existence of common and variant
features across products as well as the evolution of features and their implementations
over time. This is a crucial step in reengineering product variants into reusable
services, which requires linking commonalities and variability across requirements,
designs, and implementations.
Human-Oriented Software Engineering
Software engineering is a human oriented process that consists of activities which involve
information in both human and technical contexts. Existing research on software
engineering are mostly centered on technical aspects of software engineering
(artifacts, techniques, or tools). There is a great need to investigate and better
understand the human aspects of software engineering.
My earlier work proposed to mentoring software design and team collaboration (JReflex
project) by mining historical data collected in software repository. This work takes into
account certain human factors (such as when developers commit their changes) in the
analysis. But it is still an artifact- and tool-centric research.
My recent exploratory study on the behavior patterns of developers in feature location
activities represents a successful attempt to better understand how developers perform
software engineering tasks and how they interact with software engineering tools.
Specifically, I proposes a conceptual framework for understanding feature location
process. Guided by this conceptual framework, I am now investigating an intelligent,
interactive, online feature location wizard that can deliver personalized actionable
intelligence for developer's feature location tasks.
In the similar vein, I am also investigating the
information needs of developers in comprehending software clones and taking informed
maintenance actions on software clones. This work is built on the clone differentiation
technique I proposed for bridging the gap between clone detection and clone management.
Along this line, I recently proposed a project titled "Cloud-based Personalized
Actionable Intelligence" for the proposed Institute for Felicitous Computing led by Prof.
David Rosenblum. This project aims at addressing the "artifact rich" but "intelligence
poor" issues in software engineering research. Furthermore, I also view software
engineering as a convenient proxy for other application domains,
such as proactive healthcare, intelligent transportation,
because these application domains share similar
challenges in collecting data (especially user behavior information) and delivering
personalized actionable intelligence to the fingertips of users.
|
|
Education |
|
- Ph.D. in Computer Sciences, University of Alberta, Canada, 2008
- M.S. in Computer Sciences (Computer Software and Theory) Nankai University, China, 2000
- B.S. in Computer Sciences (Software) Nankai University, China, 1997
|
|
Professional Experience |
|
- 2009 - Present: Lee Kuan Yew Research Fellow, National University of Singapore
- 2008: Postdoctoral Fellow, University of Alberta, Canada
- 2006 - 2007: Application Specialist, Institute for Information Technology, National Research Council, Canada
- 2000: Software Engineer, Institute of Machine Intelligence, Nankai University , China
|
|
Teaching |
|
- CS3213, Software Systems Design, Fall 2011
|
|
List of Advisees |
|
|
PhD Advisor
- National University of Singapore: Yinxing Xue (co-supervised with Prof. Stan Jarzabek, expected 2012)
Yinxing's thesis proposal titled "Reengineering Legacy Software Products into Software Product Line based on Automatic Variability Analysis" has been accepted for formal presentation (acceptance rate: 12 out of 54 submissions) at the doctoral symposium of the 33rd International Conference on Software Engineering
M.Comp Thesis Examiner
- National University of Singapore: Yang Hang (2011)
Research Assistant Advisor
- National University of Singapore: Ha Duy Trung (co-supervised with Prof. Stan Jarzabek, 2009-2010)
Undergraduate Student Advisor
- National University of Singapore: Li Yen Wong (Final Year Project, 2009-2010)
- National University of Singapore: Jiayi Zhu (exchange student from Fudan University, co-supervised with Prof. Stan Jarzabek, 2009)
- Singapore Management University: Shaowei Wong (exchange student from Zhejiang University, co-supervised with Dr. David Lo, 2009)
|
|
Software Tools |
|
- JDEvAn tools: UML model differencing, software evolution analysis and visualization
- GenericDiff: A general framework for model comparison (available upon request)
- CloneDifferentiator: analyzing software clones by PDG differentiation
- SpecDiff: Differencing labeled transition systems (a graph differencing component integrated with PAT model checker)
- ICFL: Iterative context-aware feature location (under development)
|
| |