Extracting Model Clones from Conceptual Schemas

Abstract — The paper presents an overview of techniques and tools that enable the effective e valuation and refactoring of a Web application’s conceptual schema. Moreover, based on the introduction of the notion of model clones, as partial conceptual schemas that are repeated within a broader application model and the notion of model smells, as certain blocks in the Web applications model that imply the possibility of refactoring, this paper illustrates a methodology and a tool for detecting and evaluating the existence of potential model clones, in order to identify problems in an application’s conceptual schema by means of efficiency, consistency, usability and overall quality. The proposed methodology can be deployed either in the process of designing an application or in the process of re-engineering it. Evaluation is performed according to a number of inspection steps, starting from a first level evaluation of the compositions used in the hypertext design and proceeding to a second level evaluation concerning data manipulation and presentation to the user.

[1]  Jim Conallen,et al.  Modeling Web application architectures with UML , 1999, CACM.

[2]  Kostas Kontogiannis,et al.  Evaluation experiments on the detection of programming patterns using software metrics , 1997, Proceedings of the Fourth Working Conference on Reverse Engineering.

[3]  Tor Guimaraes,et al.  Managing application program maintenance expenditures , 1983, CACM.

[4]  Tom Mens,et al.  A survey of software refactoring , 2004, IEEE Transactions on Software Engineering.

[5]  Cornelia Boldyreff,et al.  Reverse engineering to achieve maintainable WWW sites , 2001, Proceedings Eighth Working Conference on Reverse Engineering.

[6]  Franca Garzotto,et al.  HDM—a model-based approach to hypertext application design , 1993, TOIS.

[7]  J. Howard Johnson,et al.  Substring matching for clone detection and change tracking , 1994, Proceedings 1994 International Conference on Software Maintenance.

[8]  Dennis Shasha,et al.  GraphGrep: A fast and universal method for querying graphs , 2002, Object recognition supported by user interaction for service robots.

[9]  Giannis Tzimas,et al.  Model Cloning: A Push to Reuse or a Disaster? , 2006, Adaptive and Personalized Semantic Web.

[10]  Jiawei Han,et al.  CloseGraph: mining closed frequent graph patterns , 2003, KDD '03.

[11]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[12]  G. Rossi,et al.  An Object Oriented Approach to Web-Based Application Design , 1998 .

[13]  Giuliano Antoniol,et al.  Modeling clones evolution through time series , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[14]  Paolo Paolini,et al.  A Conceptual Model and a Tool Environment for Developing More Scalable, Dynamic, and Customizable Web Applications , 1998, EDBT.

[15]  Franca Garzotto,et al.  HDM—a model for the design of hypertext applications , 1991, HYPERTEXT '91.

[16]  Stéphane Ducasse,et al.  A language independent approach for detecting duplicated code , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[17]  Gustavo Rossi,et al.  An Object Oriented Approach to Web-Based Applications Design , 1998, Theory Pract. Object Syst..

[18]  Ettore Merlo,et al.  Assessing the benefits of incorporating function clone detection in a development process , 1997, 1997 Proceedings International Conference on Software Maintenance.

[19]  Ivar Jacobson,et al.  Unified Modeling Language User Guide, The (2nd Edition) (Addison-Wesley Object Technology Series) , 2005 .

[20]  Paolo Tonella,et al.  Using clustering to support the migration from static to dynamic web pages , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[21]  Stéphane Ducasse,et al.  Visual Detection of Duplicated Code , 1998, ECOOP Workshops.

[22]  Paul W. Oman,et al.  Using metrics to evaluate software system maintainability , 1994, Computer.

[23]  강문설 [서평]「The Unified Modeling Language User Guide」 , 1999 .

[24]  Jiawei Han,et al.  gSpan: graph-based substructure pattern mining , 2002, 2002 IEEE International Conference on Data Mining, 2002. Proceedings..

[25]  Barry W. Boehm,et al.  Software Engineering Economics , 1993, IEEE Transactions on Software Engineering.

[26]  Udi Manber,et al.  Finding Similar Files in a Large File System , 1994, USENIX Winter.

[27]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[28]  Chen Wang,et al.  Scalable mining of large disk-based graph databases , 2004, KDD.

[29]  Tomás Isakowitz,et al.  RMM: a methodology for structured hypermedia design , 1995, CACM.

[30]  Massimiliano Di Penta,et al.  Clone Analysis in the Web Era: an Approach to Identify Cloned Web Pages , 2001 .

[31]  J. Howard Johnson,et al.  Identifying redundancy in source code using fingerprints , 1993, CASCON.

[32]  Magdalena Balazinska,et al.  Measuring clone based reengineering opportunities , 1999, Proceedings Sixth International Software Metrics Symposium (Cat. No.PR00403).

[33]  Stefano Ceri,et al.  Web Modeling Language (WebML): a modeling language for designing Web sites , 2000, Comput. Networks.

[34]  Jim Conallen,et al.  Building Web applications with UML , 1999 .

[35]  Jens Krinke,et al.  Identifying similar code with program dependence graphs , 2001, Proceedings Eighth Working Conference on Reverse Engineering.

[36]  Paolo Merialdo,et al.  Design and Maintenance of Data-Intensive Web Sites , 1998, EDBT.

[37]  Stefano Ceri,et al.  Designing Data-Intensive Web Applications , 2002 .

[38]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[39]  Ettore Merlo,et al.  Experiment on the automatic detection of function clones in a software system using metrics , 1996, 1996 Proceedings of International Conference on Software Maintenance.

[40]  Brenda S. Baker,et al.  On finding duplication and near-duplication in large software systems , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

[41]  Shinji Kusumoto,et al.  CCFinder: A Multilinguistic Token-Based Code Clone Detection System for Large Scale Source Code , 2002, IEEE Trans. Software Eng..