TYPE-FLOW ANALYSIS FOR LEGACY COBOL CODE

Alvise Spanò, Michele Bugliesi, Agostino Cortesi

Abstract

Many business applications today still rely on COBOL programs written decades ago that are difficult to maintain and upgrade due to technological limitations and lack of experts in the language. Several companies have been trying to migrate their software base to modern platforms, but code translation is problematic because most business processes implemented are often no longer documented or even known. Applying existing Program Understanding techniques to COBOL could be a way for aiding IT specialists in charge of a porting - but useful raw information must be extracted from the source code in order to get these techniques yield to meaningful results. We believe that the types of variables used in programs are an important part of such raw information and we present an approach based on static analysis of types rather than data. Our system is capable of reconstructing the type-flow of a COBOL program throughout branches, jumps and loops in finite time and to track type information on reused variables occurring in the code. It also detects a number of error-prone situations, type mismatches or misuses and notifies that by means of messages annotated in the code along with types inferred for each variable occurrence.

References

  1. F. Nielson, H.R. Nielson, C. H. (1999). Principles of Static Analysis. Springer Verlag.
  2. Holt, R. C. (2008). WCRE 1998 most influential paper: Grokking software architecture. In WCRE (Working Conference on Reverse Engeneering), pages 5-14. IEEE.
  3. IBM (2009). Cobol z/OS language reference. Website. http://publib.boulder.ibm.com/ infocenter/ pdthelp/ v1r1/ index.jsp?topic=/ com.ibm.debugtool.doc 7.1/ eqa7rm0293.htm.
  4. Kernighan, B. W. and Ritchie, D. (1988). The C Programming Language, Second Edition. Prentice-Hall.
  5. Kuipers, T. and Moonen, L. (2000). Types and concept analysis for legacy systems. In IWPC, pages 221-230. IEEE Computer Society.
  6. Moonen, L. (2001). Generating robust parsers using island grammars. In WCRE (Working Conference on Reverse Engeneering).
  7. Moonen, L. (2003). Exploring software systems. In ICSM, pages 276-280. IEEE Computer Society.
  8. Stroustrup, B. (2000). The C++ Programming Language. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 3rd edition.
  9. van Deursen, A. and Moonen, L. (1998). Type inference for cobol systems. In WCRE (Working Conference on Reverse Engeneering), pages 220-230.
  10. van Deursen, A. and Moonen, L. (1999). Understanding cobol systems using inferred types. In IWPC. IEEE Computer Society.
  11. van Deursen, A. and Moonen, L. (2000). Exploring legacy systems using types. In WCRE (Working Conference on Reverse Engeneering), pages 32-41.
  12. van Deursen, A. and Moonen, L. (2001). An empirical study into cobol type inferencing. Sci. Comput. Program., 40(2-3):189-211.
  13. van Deursen, A. and Moonen, L. (2006). Documenting software systems using types. Sci. Comput. Program., 60(2):205-220.
Download


Paper Citation


in Harvard Style

Spanò A., Bugliesi M. and Cortesi A. (2011). TYPE-FLOW ANALYSIS FOR LEGACY COBOL CODE . In Proceedings of the 6th International Conference on Software and Database Technologies - Volume 2: ICSOFT, ISBN 978-989-8425-77-5, pages 64-75. DOI: 10.5220/0003506700640075


in Bibtex Style

@conference{icsoft11,
author={Alvise Spanò and Michele Bugliesi and Agostino Cortesi},
title={TYPE-FLOW ANALYSIS FOR LEGACY COBOL CODE},
booktitle={Proceedings of the 6th International Conference on Software and Database Technologies - Volume 2: ICSOFT,},
year={2011},
pages={64-75},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0003506700640075},
isbn={978-989-8425-77-5},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 6th International Conference on Software and Database Technologies - Volume 2: ICSOFT,
TI - TYPE-FLOW ANALYSIS FOR LEGACY COBOL CODE
SN - 978-989-8425-77-5
AU - Spanò A.
AU - Bugliesi M.
AU - Cortesi A.
PY - 2011
SP - 64
EP - 75
DO - 10.5220/0003506700640075