Meta-level parameterization and generation for enhanced genericity
The Importance and Difficulties of Systematic Treatment of Redundancies
Time: 11am, Friday 10th December
Computer Science & Software Engineering
Seminar Room 1.24
Speaker:
Assoc Prof. Stan Jarzabek
Department of Computer Science, School of Computing
National University of Singapore
Abstract:
The design of generic solutions to avoid repetition, at analysis, architecture, design and code
levels, is the heart of systematic reuse. However, in many cases, genericity and non-redundancy
are difficult to achieve with conventional techniques (such as OO generics, design patterns,
architectural approaches or component-based technologies). This is evidenced by high presence of
redundancies in programs (i.e., recurring similar program structures, so-called clones).
Redundancies cause update anomalies that hinder program understanding and maintenance. Therefore,
generic design solutions have to do with both reusability and maintainability, the two
economically desirable . but also difficult to achieve - software engineering goals. In the
seminar, I will discuss empirical and analytical arguments to support the above claims, in particular,
reasons why redundancies occur, problems they are causing, and difficulties of combating redundancies
in the frame of the existing component-based and OO programming paradigms. I will argue about the
general nature of the observed symptoms, and their causes. Finally, I will describe how the above
problems can be treated with a meta-level technique of XVCL [1]. XVCL combines unrestricted meta-level
parameterization with generation features to achieve higher levels of reusability and maintainability,
beyond what we can do with conventional OO and component-based design methods. The approach is practical
as it complements, rather than competes with component-based programming paradigms. It has been
successfully applied in industrial projects. The approach is useful in building software product line
architectures for systematic reuse, in managing multiple versions of software released to different
clients during software evolution, and in day-to-day maintenance. The core of the seminar is based on
[2], and also on two yet unpublished papers [3,4].
Summary of redundancy analysis: Our empirical studies revealed high presence of redundancies, 50%-68%
[2],[3], in new, well-designed class libraries and application programs. For example, the extent of the
redundant code in Java Buffer library was 68%, in parts of STL (C++) - over 50%, in command and control
application (J2EE and C#) . 68%, and in certain ASP Web portal modules . up to 90% [4]. The last two
results are from industrial applications of XVCL by our industry partner SES Systems Pte Ltd. In our
studies, we considered as redundant any kind of repetition, counter-productive for maintenance, resulting
in recurring patterns of similar program structures - simple code fragments (e.g., similar class methods),
patterns of inter-related classes (e.g., design or analysis patterns), or patterns of components at the
architecture level. In many cases, redundancies occurred as there was no simple way of avoiding them with
conventional methods, without compromising other important design goals. However, we could effectively
treat all the redundancies by unifying them with generic structures built with XVCL.
[1] XVCL. XVCL - XML-based Variant Configuration Language - is a public domain, open source
meta-programming technique for effective reuse and maintenance, developed at NUS:
http://fxvcl.sourceforge.net
[2] Jarzabek, S. and Li, S. .Eliminating Redundancies with a .Composition with Adaptation.
Meta-programming Technique,. Proc. ESEC-FSE'03, European Software Engineering Conference
and ACM SIGSOFT Symposium on the Foundations of Software Engineering, ACM Press, September
2003, Helsinki, pp. 237-246; paper received ACM Distinguished Paper award
[3] Jarzabek, S. .The Importance and Difficulties of Systematic Treatment of Redundancies,.
submitted for publication
[4] Pettersson, U., and Jarzabek, S. .An Industrial Application of a Reuse Technique to a Web
Portal Product Line,. submitted for publication
About the speaker:
Stan is an Associate Professor at the Department of Computer Science, School of Computing,
National University of Singapore (NUS) and an adjunct Associate Professor at the Department of
Electrical & Computer Engineering, University of Waterloo. He received his Master in Mathematics
and Ph.D. in Computer Science from the Warsaw University. He spent 12 years of his professional
career in industry. Stan is interested in domain analysis, architecture design and architecture
implementation techniques for reusable and maintainable software. Stan has worked on product line
approach to software reuse, component-based software engineering, static program analysis, reverse
engineering, programming environments and compiler-compilers. He has published 70 papers in
international journals and conference proceedings (his recent paper received the ACM SIGSOFT
distinguished paper award). He has given courses for industry on software reuse and re-engineering.
In 2000-02, he was a Principal Investigator in collaborative projects involving universities
(NUS and the University of Waterloo) and companies in Singapore and Toronto. Stan joined NUS in 1992.
In 1990-92, he was a Research Manager at CSA Research Pte. Ltd. (a company developing CASE tools).
In 1984-89, he was an Assistant Professor at the McMaster University, Hamilton, Canada, doing research
on software engineering. In 1998-99, he was on sabbatical leave from NUS, at the Fraunhofer Institute
for Experimental Software Engineering, Germany and at the University of Waterloo, Canada.
Email: stan[at]comp.nus.edu.sg
fax: 65-6779-4580; tel: 65-6874-2863 (office) 65-96255863 (mobile)
Full CV at: http://www.comp.nus.edu.sg/~stan/CVStanJ.pdf
|