
Associate Professor, Department
of Computer Science, School of Computing,
National University of Singapore (NUS)
Mailing address: Computing 1, #03-68 Law Link, Singapore 117590
My office: S15, 06-08, 3 Science Drive 2, NUS
Tel: (65) 6516 2863, fax (65) 6779-1610, m (65) 96255-863
email: stan 'at' comp 'point'
nus 'point' edu 'point' sg
Research (recent publications):
Recently published book describes results of my research on reuse,
maintenance and XVCL approach:
Jarzabek, S. Effective
Software Maintenance and Evolution: Reused-based Approach, Auerbach,
CRC Press Taylor and Francis, May 2007 http://www.crcpress.com/shopping_cart/products/product_detail.asp?sku=AU3592
I am interested in all aspects of software engineering, especially in
design of high-variability software, i.e., software that can be easily evolved
and reused. Component-based and architecture-centric techniques are the basic
means to achieve reuse via Software Product Line (SPL) approaches. Higher
levels of reuse can be achieved by applying XVCL , a
generative technique to manage variability in software, i.e. to handle variant
features in families of similar systems (Product Lines), and change
propagation. In addition, XVCL provides unrestricted parameterization that
allows us to represent any group of similar program structures (components) in
generic, adaptable form. This helps avoid explosion of similar component
versions that need be managed during reuse, simplifies component selection and
adaption for reuse. XVCL approach is practical as it complements, rather than
competes with conventional programming methods - we call it mixed-strategy to
emphasize this synergistic nature of the approach. Mixed-strategy has been
already successfully applied in industrial projects.
XVCL is an open source, public domain software (http://xvcl.comp.nus.edu.sg).
Consultancy: software design, expert
witness in disputes about potential plagiarism of design and code.
Expert
consultant on software design: Evaluation and second opinion on software design of a system under
development, or existing system; propose and evaluate alternative designs;
finding potential faults.
Expert witness in software plagiarism: Cases of dispute about potential plagiarism
in court cases involving design plagiarism, code plagiarism, IP.
Providing opinion regarding the reasons for project failures.
Collaboration: An essential part of my research is experimentation and industry
collaborations. I have a long-term and fruitful research partnership with ST Electronics (Info-Software Systems)
Pte. Ltd. (formerly known as SES Systems Pte. Ltd.).
Research Projects: In our recent projects, we apply XVCL for reuse in
games for mobile phones, Customer Relation management Systems and other
business domains, and Web applications (Product Lines). We integrate XVCL into
other technologies (e.g., PHP,.NET, JEE) to achieve higher degrees of
changeability and genericity, for better reuse
via Product Line approach.
Re-engineering for reuse, into software Product
Lines is another direction for our work, complementing research on effective
reuse strategies. Reuse usually starts once we have already implemented a couple
of systems. Finding the exact similarities and differences in systems,
so-called software clones, is the core activity in re-engineering for reuse. We
developed Clone Miner and Clone Analyzer, CM/CA,
for finding fine-grained and course-grained, structural similarities in
software systems to facilitate re-engineering for reuse.
Other research areas I am interested in are software evolution, reverse
engineering, design of static program analysis and other software tools, and
compiler-compilers (attribute grammars).
Recent publications describing our projects:
1. Basit, H. A., Jarzabek, S. “Data Mining
Approach for Detecting Higher-level Clones in Software,” to appear in IEEE Trans. on Soft. Eng.
2. Yali Zhang, Hamid Abdul Basit, Stan Jarzabek, Dang
Anh, and Melvin Low “Query-based
Filtering and Graphical View Generation for Clone Analysis,” Proc. 24th
IEEE Int. Conf. on Software Maintenance, ICSM’08, Beijing, September 2008,
pp. 376-385
3. Basit, H., Puglisi, S., Smyth,
W., Turpin, A. and Jarzabek, S. “Efficient Token Based
Clone Detection with Flexible Tokenization,” ESEC-FSE'07,
European Software Engineering Conference and ACM SIGSOFT Symposium on the
Foundations of Software Engineering, ACM Press, September 2007, Dubrovnik,
pp. 513-516
4. Rajapakse, D. and Jarzabek, S. “Towards generic
representation of web applications: solutions and trade-offs,” to appear in Software, Practice & Experience
5. Rajapakse, D.C. and Jarzabek, S. “Using
Server Pages to Unify Clones in Web Applications: A Trade-off Analysis,” Int. Conf. Software Engineering, ICSE’07, Minneapolis,
USA, May 2007, pp. 116-125
6. Grudzien, A., Traczyk, T. and
Jarzabek, S. „Application
of Generative Programming to Evolution of Object-Relational Mapping Layer,” Proc. 2nd AIS SIGSAND European
Symposium on System Analysis and Design, Gdansk, June 5, 2007, pp. 64-71,
ISBN 978-83-7326-447-2
7. Jarzabek, S. and Li, S. ”Unifying clones
with a generative programming technique: a case study,” Journal of Software Maintenance and
Evolution: Research and Practice, John Wiley & Sons, Volume 18, Issue
4, July/August 2006, pp. 267-292,
extended version of ESEC-FSE’03 paper that received ACM Distinguished
Paper Award
8. Jarzabek, S. “Genericity
- a “Missing in Action” Key to Software
Simplification and Reuse,” accepted
for 13th
9.
Basit, H.A.,
Rajapakse, D.C., and Jarzabek, S. “Beyond Templates: a Study of
Clones in the STL and Some General Implications,” Int. Conf. Software Engineering, ICSE’05, St. Louis, USA, May 2005, pp. 451-459
10. Basit, A.H. and Jarzabek, S.
“Detecting
Higher-level Similarity Patterns in Programs,” ESEC-FSE'05,
European Software Engineering Conference and ACM SIGSOFT Symposium on the
Foundations of Software Engineering, ACM Press, September 2005, Lisbon, pp.
156-165
11. Pettersson, U., and Jarzabek,
S. “Industrial
Experience with Building a Web Portal Product Line using a Lightweight, Reactive Approach,” ESEC-FSE'05,
European Software Engineering Conference and ACM SIGSOFT Symposium on the
Foundations of Software Engineering, ACM Press, September 2005, Lisbon, pp.
326-335
12. Zhang, W. and Jarzabek, S. “Reuse without
Compromising Performance: Experience from RPG Software Product Line for Mobile
Devices,” 9th Int. Software Product Line Conference, SPLC’05,
September 2005, Rennes, France, pp. 57-69
13. Yang, J. and Jarzabek, S. “Applying a
Generative Technique for Enhanced Reuse on J2EE Platform,” 4th Int. Conf. on Generative
Programming and Component Engineering, GPCE'05,
Sep 29 - Oct 1, 2005, Tallinn, Estonia, pp. 237-255
14. Rajapakse, D.C and Jarzabek, S. “A
Need-Oriented Assessment of Technological Trends in Web Engineering,” Int. Conf. on Web Engineering, ICWE’05,
July 2005, Sydney, pp. 30-35
15. Rajapakse, D.C and Jarzabek, S. “An
Investigation of Cloning in Web Portals,” Int. Conf. on Web Engineering, ICWE’05, July 2005, Sydney, pp.
252-262 (also poster at WWW’05)
16. Rajapakse, D.C, Basit, A.H. and Jarzabek, S. “
An Empirical Study on Limits of Clone Unification Using Generics ” 17th Int.
Conference on Software Engineering and Knowledge Engineering, SEKE'05, July 2005, Taipei, Taiwan, pp. 109-114
17. Jarzabek, S. and Eng, P.K. “Teaching an Advanced Design, Team-oriented Software
Project Course”, 18th
Int. Conference on Software Engineering Education and Training (CSEE&T),
IEEE CS, April 2005, Ottawa, pp. 223-230
18. Jarzabek, S, Yang, B. and Sam, S. “Addressing Quality
Attributes in
19. Jarzabek, S., Zhang, H., Ru, S., Lam, V.T., and Sun,
Z. “Analysis of meta-programs: a case study,” Journal of Software Engineering
and Knowledge Engineering, Vol. 16, No. 1, Feb. 2006, pp. 77-101, extended version of best papers from Proc. 16th Int. Conference on Software Engineering and Knowledge
Engineering (SEKE'04), Banff, Canada, June 2004
20. Zhang, H. and Jarzabek, S. “A Bayesian Network
Approach to rational architectural design,” Int.
Journal of Software Engineering and Knowledge Engineering, Vol. 15, No. 4,
August 2005, pp. 695-719
Teaching:
Software engineering education is under a lively debate. I am
interested in development of software engineering curricula, in particular in
software engineering project courses. I believe the role of a university is to
teach students fundamental concepts, not over-emphasizing specific technologies
that change so fast. Understanding fundamentals creates a reference point and
shapes judgment that will help graduates adapt to changes through their
careers. It follows that the role of project courses is to teach how to apply
proven principles in large-scale team-based software development. Our CS3215 Software Engineering Project
course is described in the CSEE&T
paper [14].
I also teach graduate course on application of product line approach to
CS6201 Software Reuse.
Before joining the NUS:
I was a Research Manager of the CSA Research Pte. Ltd. and an Adjunct
Senior Lecturer at the NUS (1990-92), Assistant Professor at McMaster
University, Canada (1984-1990), a Lecturer at the University of Maiduguri,
Nigeria (1982-84) and Research Fellow at the Institute of Computers, Warsaw
(1972-82).
Last updated: 03 June, 2009