Technical forum: Using logical data models for understanding and transforming legacy business applications

Many legacy applications perform essential business functions; yet, due to a number of factors, modifying such applications in order to accommodate new business requirements can be troublesome. Such factors include: the volume of code in a typical application, logical code structure that has deteriorated as updates have accumulated over time, functional redundancy, code structure that reflects the dated technology on which it was built, and scarce technical skills. We have argued that the consequent difficulty of understanding and modifying legacy code can be ameliorated through the use of logical data models. In the Mastery project, we are developing both algorithms for extracting logical data models from legacy COBOL applications and software tools that use the generated models to query and transform the code from which the models are derived.

[1]  Arie van Deursen,et al.  Identifying objects using cluster and concept analysis , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[2]  Mark Lycett,et al.  Service-oriented architecture , 2003, 2003 Symposium on Applications and the Internet Workshops, 2003. Proceedings..

[3]  Satish Chandra,et al.  Dependent Types for Program Understanding , 2005, TACAS.

[4]  Frank Tip,et al.  Aggregate structure identification and its application to program analysis , 1999, POPL '99.

[5]  Kendall Scott,et al.  UML distilled - a brief guide to the Standard Object Modeling Language (2. ed.) , 2000, notThenot Addison-Wesley object technology series.

[6]  クリストファー リンキスト,et al.  SERVICE ORIENTED ARCHITECTURE SOAでビジネスを変革する! : 柔軟性のあるITアーキテクチャを整備し、環境の変化への即応を図る米国企業 (ITアーキテクチャの青写真を描く) , 2006 .

[7]  Aniello Cimitile,et al.  Recovering a Conceptual Data Model from COBOL Code , 1996, SEKE.

[8]  Giuseppe Visaggio,et al.  Function recovery based on program slicing , 1993, 1993 Conference on Software Maintenance.

[9]  Saurabh Sinha,et al.  Semantics-based reverse engineering of object-oriented data models , 2006, ICSE '06.

[10]  Fritz Henglein,et al.  AnnoDomini: from type theory to Year 2000 conversion tool , 1999, POPL '99.

[11]  Kangde Yao,et al.  A Brief Guide to the Standard Object Modelling Language , 2000 .

[12]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..

[13]  Arie van Deursen,et al.  Exploring legacy systems using types , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[14]  Robert O'Callahan,et al.  Lackwit: A Program Understanding Tool Based on Type Inference , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[15]  William G. Griswold,et al.  Dynamically discovering likely program invariants to support program evolution , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[16]  Sandrine Blazy,et al.  Partial Evaluation for the Understanding of Fortran Programs , 1994, Int. J. Softw. Eng. Knowl. Eng..

[17]  Arie van Deursen,et al.  Understanding COBOL systems using inferred types , 1999, Proceedings Seventh International Workshop on Program Comprehension.

[18]  Martin C. Rinard,et al.  Role-based exploration of object-oriented programs , 2002, ICSE '02.

[19]  Arie van Deursen,et al.  Documenting software systems using types , 2006, Sci. Comput. Program..

[20]  Daniel Jackson,et al.  Alloy: a lightweight object modelling notation , 2002, TSEM.