Projects and recent papers on software reuse/evolution and structural clone analysis

 

 

 

 

§                     Software reuse and evolution with XVCL

§                     Structural clone analysis

§                     Earlier projects on reverse engineering, static program analysis and reengineering 

 

 

 

 

Software Reuse and Evolution with XVCL

Managing families of similar software products is a central theme in software reuse and evolution. The main technical challenge is to deal with variability in a way that fully exploits similarity among products. Successful solution should allow us to avoid repetitive work via reuse of generic software structures. We believe the variability problem, and the problem of software change in general, is inherently difficult to tackle in the world of conventional OO and component technologies. We explore an alternative solution to the problem, in which we create a meta-level platform to treat variability as a first-class citizen, still with full integration with core programming technologies. Our solution is XVCL (XML-based Variant Configuration Language),  a generative technique developed in our lab, based on frame concepts developed in industrial practice. Having experimented with XVCL in lab studies and industrial projects, we realized that, technically, there may be no difference between software reuse and evolution – both can be achieved at the same time, by means of the same, simple generative mechanisms. Our research is to provide an evidence for this hypothesis, and to transfer of XVCL approach into the industrial software development.

Industry Collaborations: An essential part of our research is experimentation and industry collaborations. We have a long-term and fruitful research partnership with ST Electronics (Info-Software Systems) Pte. Ltd. Recently, we started working on XVCL technology transfer with Retive Solutions Pte Ltd .

Links: XVCL Brochure and XVCL Web site http://xvcl.comp.nus.edu.sg

§                     XVCL is described in: 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   

Sample projects in that area:

XVCL Workbench is a productivity tool helping developers create and evolve reusable assets in XVCL representation, and their effective reuse. Workbench is an Eclipse-based IDE for XVCL, including smart editor, static/dynamic analyzer, debugger and visualization.

Web Portals, mobile devise software, Customer Relation Management Systems

and on component platforms: JEE, .NET, Ruby on Rails

Recent selected papers:

§                     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

§                     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

§                     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

§                     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 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; the paper received ACM SIGSOFT distinguished paper award

§                     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

§                     Zhang, H. and Jarzabek, S. A Mechanism for Handling Variants in Software Product Lines,” special issue on Software Variability Management of Elsevier’s journal Science of Computer Programming, Volume 53, Issue 3, Dec. 2004,  pp. 381-407

§                     Jarzabek, S. Genericity -  a “Missing in Action” Key to Software Simplification and Reuse,” 13th Asia-Pacific Software Engineering Conference, APSEC’06, IEEE Comp. Soc., 6-8 December 2006, Bangalore, India, pp. 293-300

§                     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

§                     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

§                     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

§                     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

§                     Rajapakse, D.C, Basit, A.H. and Jarzabek, S. An Empirical Study on Limits of Clone Unification Using Generics ” for 17th Int. Conference on Software Engineering and Knowledge Engineering, SEKE'05, July 2005, Taipei, Taiwan, pp. 109-114

§                     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; the paper received ACM SIGSOFT distinguished paper award

§                     Zhang, W., Jarzabek, S., Loughran, N and Rashid, A. “Reengineering a PC-based System into the Mobile Device Product Line,”, Proc. 4th Int. Workshop on  Principles of Software Evolution IWPSE’03, IEEE Comp. Soc., September 2003, Helsinki, Finland, pp. 149-160

§                     Zhang, H. and Jarzabek, S “An XVCL-based Approach to Software Product Line Development,” Conf. on Software Engineering and Knowledge Engineering,SEKE’03, San Francisco, July 2003, pp. 267-275

§                     Zhang, H., Jarzabek, S. and Yang, B. “Quality Prediction and Assessment for Product Lines,” Conf. on Advanced Information Systems Engineering CAiSE'03, Austria, June 2003, Springer-Verlag LNCS 2681, pp. 681-695

§                     Jarzabek, S, Yang, B. and Sam, S. “Addressing Quality Attributes in Domain Analysis for Product Lines,” IEE Proceedings Software, IEE and British Computer Society, Vol. 153, No. 2, April 2006, pp. 61-73

§                     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

§                     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

Structural clone analysis

Research on software similarity patterns so far has been mainly focused on detection of similar code fragments, so-called simple clones. The knowledge and possible unification of simple clones can help in maintenance. Further gains can be obtained by elevating the level of software similarity analysis to the design-level, larger granularity similar program structures, such as recurring architecture-level patterns of collaborating components. Recurring patterns of simple clones often indicate the presence of interesting higher-level similarities that we call structural clones. Detection of structural clones can help in understanding the design of a system for quality assessment, better maintenance and re-engineering for reuse into Product Line architectures, opening new options for design recovery.

In this line of our research, we systematically study a structural clone phenomenon. We aim at formulating an ontology for structural clones, developing techniques for structural clone detection, and exploiting the benefits of structural clone detection for software maintenance, reuse and re-engineering.

With XVCL, we can represent structural clones in generic, adaptable form. Recovery of structural clones is an enabling technique for re-engineering legacy software into software product Lines, and/or into maintainable representations.

Sample projects in that area:

Recent selected papers:

§                     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

Earlier projects on reverse engineering, static program analysis and reengineering:

§                     Jarzabek, S. and G. Wang “Model-based Design of Reverse Engineering Tools", Journal of Software Maintenance: Research and Practice, No. 10, 1998, John Wiley & Sons, pp. 353-380

§                     Jarzabek, S. “Design of Flexible Static Program Analyzers with PQL,” IEEE Transactions on Software Engineering, March 1998, pp. 197-215

§                     Jarzabek, S and Woon, I. “Towards precise Description of Reverse Engineering Heuristics,” Proc.  EUROMICRO Working Conference on Software Maintenance and Reengineering, IEEE Computer Society Press, March 1997, Berlin, pp. 3-9

§                     Jarzabek, S. "PQL: A language for specifying abstract program views," Proc. 5th European Software Engineering Conference, ESEC'95, Barcelona, September 1995, Lecture Notes in Computer Science, No. 989, Springer Verlag, pp. 324-342

§                     Jarzabek, S and Tan, P.K. “Design of a Generic Reverse Engineering Assistant Tool,” Proc. 2nd Working Conference on Reverse Engineering, WCRE, Toronto, Canada, July 14-16, 1995, IEEE Computer Society Press, Los Alamitos, USA, pp. 61-70

§                     Jarzabek, S. "Systematic Design of Static Program Analyzers," Proc. 18th Annual Int. Comuter Software & Applications Conf. COMPSAC'94, Taipei, November 9-11, 1994, IEEE Computer Society Press, Los Alamitos, USA, pp. 281-286

§                     Jarzabek, S. “Specifying Program Transformations with PQTL,” Proc. ICSE-17 Workshop on Program Transformations for Software Evolution, 24 April 1995, Seatle, USA, ed. William Griswold, TRCS95-418, University of California, San Diego, pp. 35-46

§                     Jarzabek, S. “Systematic Design of Static Program Analyzers,” Proc. 18th Annual Int. Comuter Software & Applications Conf.  COMPSAC’94, Taipei, November 9-11, 1994, IEEE Computer Society Press, Los Alamitos, USA, pp. 281-286

§                     Jarzabek, S., Shen, H. and Chan, H.C. A hybrid Program Knowledge Base system for Static Program Analyzers. Proc. First Asia Pacific Software Engineering Conference, APSEC'94, Tokyo, December 1994, IEEE Computer Society Press, Los Alamitos, USA, pp. 400-409

§                     Jarzabek, S. "Specifying Program Transformations with PQTL," Proc. ICSE-17 Workshop on Program Transformations for Software Evolution, 24 April 1995, Seatle, USA, ed. William Griswold, TRCS95-418, University of California, San Diego, pp. 35-46

§                     Jarzabek, S. and Woon, I. "Interplay between an Enterprise Information Architecture and Domain Analysis," Proc. Third World Conference on Integrated Design and Process Technology, July 6, 1998, Berlin, pp. 154-161

§                     Jarzabek, S. and T.W. Ling “Model-based Support for Business Re-engineering,” Journal of Information and Software Technology, vol. 38, No. 5, May 1996, pp. 355-374

§                     Jarzabek, S. and Ling, T.W. “A conceptual model for business re-engineering methods and tools,” Proc. 14th Int. Conference on Object-Oriented and Entity-Relationship Modelling, OO-ER’95, Queensland, Australia, Dec. 12-15, 1995, in Lecture Notes in Computer Science, Springer-Verlag, Germany, Dec. 1995, pp. 260-269

§                     Jarzabek, S “Lifecycle approach to strategic re-engineering of software,” Journal of Software Maintenance: Research and Practice, vol. 6, no. 6, December 1994, John Wiley & Sons,  287-317

§                     Jarzabek, S., CL Tan and Tham, K. An Object-oriented Model for Recovered Designs in Software Reengineering. Information Technology Journal, vol. 6, no. 2, December 1994, 80-94

§                     Jarzabek, S. "Domain Model-Driven Software Re-engineering and Maintenance," Journal of Systems and Software, January 1993, 20:37-51

§                     Jarzabek, S. and Lim, W.M. "Modeling in Strategic Reengineering," Proc. 6th Int. Conference on Software Engineering and Knowledge Engineering, Riga, Latvia, June 1994, published by Knowledge System Institute, USA, pp. 249-256

§                     Jarzabek, S "Strategic Reengineering of Software: Lifecycle Approach," Proc. 6'th Int. Workshop on CASE, CASE'93, IEEE Computer Society, Singapore, July 1993, pp. 211-220

§                     Jarzabek, S. "Software Reengineering for Reusability," Proc. 17th Annual Int. Computer Software and Applications Conference COMPSAC93, IEEE Computer Society, Phoenix, USA, November 1993, pp. 100-106

§                     Jarzabek, S. and Huang, R. “The case for User-Centered CASE Tools,” Communications of ACM, August 1998, pp. 93-99

§                     Chee, C.L., Jarzabek, S. and Paul, R. “F-metric: a WWW-based framework for intelligent formulation and analysis of metric queries,Journal of Systems and Software, No. 43, 1998, Elsevier Science Inc., pp. 119-132

§                     Teh H.Y., Jarzabek,  S. and Tiako, P. “WWW-based Communication Tool for Distributed Team-based Software Development,” Proc. Conf. Systemics, Cybernetics and Informatics and the International Conference on Information Systems Analysis and Synthesis, SCI'99/ISAS'99, Florida, August  1999

§                     Huang, R. and Jarzabek, S. “PCS: A CASE Tool for Distributed Group Software Development,” International Federation for Information Processing Congress, IFIP’96, Advanced IT Tools, Canberra, September 1996, UK: Chapman & Hall, pp. 402-410

§                     Chee, C.L., Jarzabek, S. and Ramamoorthy, C.V. “An Intelligent Process for Formulating and Answering Project Queries,” Proc. 6th Int. Conference on Software Engineering and Knowledge Engineering, SEKE’96,  Nevada, USA, June 1996, pp. 309-316

§                     Jarzabek, S. and T.W. Ling “Model-based Support for Business Re-engineering,” Journal of Information and Software Technology, vol. 38, No. 5, May 1996, pp. 355-374

§                     Jarzabek, S. and Ling, T.W. “A conceptual model for business re-engineering methods and tools,” Proc. 14th Int. Conference on Object-Oriented and Entity-Relationship Modelling, OO-ER’95, Queensland, Australia, Dec. 12-15, 1995, in Lecture Notes in Computer Science, Springer-Verlag, Germany, Dec. 1995, pp. 260-269

§                     Jarzabek, S. and Ling, T.W. "Model-based Design of Tools for Business Understanding and Re-engineering," Proc. 7th Int. Workshop on Computer Aided Software Engineering, CASE'95, Toronto, Canada, July 10-14, 1995, IEEE Computer Society Press, Los Alamitos, USA, pp. 328-337