Abstract
This paper concerns the development of both theoretical and operational frameworks, called Panorama, for comprehending large scale, multi-lingual software systems. The foundation to the system is the development and deployment of instrumentation agents, which have the ability to burrow through the software at various levels of depth—both statically and dynamically and treating the software as Black box and/or White box—in order to collect valuable information. In our past research (Gallagher and Lakshmi Narasimhan in, IEEE Trans Softw Engg 23(8):473–484, 1997), we have developed both a theoretical framework and an implementation of a core set of instrumentation statements in order to optimize data generation for testability purposes. This framework is distributed and applicable to assembly language, procedural and OO paradigms, and combinations thereof. This basic framework has been augmented with additional theoretical foundation and instrumentation procedures so that processes for software visualization and comprehension can be achieved. The instrumentation is completely handled by a distributed agent-based system, which is also capable of detecting the underlying programming languages and capturing all book-keeping information needed for various application requirements. It is envisaged that robust optimization procedures are required (as was shown before for testability purposes) for dynamic system composition. The system has the capability for self-cataloguing and querying toward the above-mentioned purposes, in addition to providing view-tailoring and view maintenance for specific application domains. The Panorama system can be mounted over a Cloud environment also.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Code ontology development will be part of this research.
- 2.
It is recognized that any instrumentation perturbs the execution environment. Because these instrumentation statements are diagnostic in nature and meant to facilitate information prospecting, they are unlikely to affect program execution in a substantial manner. However, because they are somewhat intrusive, they can affect real-time software execution. There are other ways [24] to instrument real time software, which are beyond the scope of this proposal.
- 3.
Primary modules in a modern submarine software system include combat system, command & control system, propulsion system, missile control and guidance system, navigation system and sensor system, and the typical size of the overall system will be around 30–40 Million lines of code.
References
Investing in our future: information technology research—technical priorities on software research, president’s information technology advisory committee (PITAC) report to the president of the USA (2002). Also, freely available at: http://www.ccic.gov/ac/report/
Hoe AV, Sethi R, Ullman JD (1994) Compilers—principles, techniques and tools. Addison-Wesley Publication
Muchnick S (1997) Advanced compiler design and implementation. Morgan Kaufmann Publication
Rosemberg J (1996) How debuggers work—algorithms, data structures, and architecture. Wiley
Object File Formats: http://www.backerstreet.com/cg/work.htm
Reverse Engineering the LEGO RCX (2001) Kekoa Proudfoot. Inc. Research Paper submitted to Stanford University Conference on Reverse Engineering, USA. Also available at: http://graphics.stanford.edu/~kekoa/rcx/talk/#Index
van den Brand MGJ, Klint P, Verhoef C (1999) Reverse engineering and system renovation—an annotated bibliography, technical report from the programming research group, University of Amsterdam. Also available at: http://adam.wins.uva.nl/~x/reeng/REanno.html
Paul S, Prakash A (1994) Supporting queries on source code: a formal framework. Int J Software Eng Knowl Eng 4(3):325–348
Hall RJ (1995) Automatic extraction of executable program subsets by simultaneous dynamic program slicing. Autom Softw Eng 2:33–53
Tip F (1995) A survey of program slicing techniques. J Program Lang 3:121–189
Gallagher M, Lakshmi Narasimhan V (1997) ADTEST: a test data generation suite for Ada software systems. IEEE Trans Softw Eng 23(8): 473–484
El Emam K, Object oriented metrics: a review of theory and practice. IEEE Trans Softw Eng (to appear)
Lakshmi Narasimhan V (2000) Fundamental issues in management and processing of semi-formatted and free text. Internal technical presentation report, defence science and technology organization (DSTO), Adelaide, Australia
Milner W, Spooner DL (1976) Automatic generation of floating point test data. IEEE Trans Softw Eng 223–226
Ward M, Heineman G (2001) A framework for visualizing the behavior of component-based software systems. Worcester Polytechnic Institute Download
Marshall S, Using and visualizing reusable code. Victoria University of Wellington Download
Rayside D, Litoiu M, Storey MA, Best C. Visualizing flow diagrams with SHriMP (IBM Centre for Advanced Studies Toronto), Margaret-Anne Storey and Casey Best, (University of Victoria) Download
Schauer R, Keller RK, Pattern visualization for software comprehension. IEEE Conf Softw Eng. http://www.iro.umontreal.ca/~labgelo/Publications/Papers/iwpc98.pdf.
Mittermeir RT et al (2001) Goal-driven combination of software comprehension approaches for component based development. In: Proceedings of the 2001 symposium on Software reusability: putting software reuse in context
Cheikes BA, Gertner AS (2002) Software instrumentation for intelligent embedded training. MITRE internal report, 2002
Vo K-P et al, Xept: a software instrumentation method for exception handling. In: Eighth international symposium on software reliability engineering (ISSRE ‘97)
Bailes PA et al (1995) Knowledge-based requirements analysis for ada design recovery: design entity identification and representation. University of Queensland technical report
Welty C (1995) Towards an epistemology for software representations. In: Proceedings of the tenth knowledge-based software engineering conference. IEEE Computer Society Press
Krishna CM, Shin KG (1997) Realtme systems. McGraw Hill Publication, Chapter 3, p 40
Lakshmi Narasimhan V, Hendradjaya B (2005) Some theoretical considerations for a suite of metrics for the integration of software components. J Inf Sci (Elsevier Press)
Shatnawi A, Mili H, El Boussaidi et al (2017) Analyzing program dependencies in Java EE applications. In: Proceedings of 2017 IEEE/ACM 14th international conference on mining software repositories (MSR), pp 64–74
Additional References can be obtained from the authors.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2024 The Author(s), under exclusive license to Springer Nature Singapore Pte Ltd.
About this paper
Cite this paper
Lakshmi Narasimhan, V., Krishna, R.V. (2024). Panorama: A Multi-language Software Information Prospecting Facility. In: Joshi, A., Mahmud, M., Ragel, R.G., Karthik, S. (eds) ICT: Innovation and Computing. ICTCS 2023. Lecture Notes in Networks and Systems, vol 879. Springer, Singapore. https://doi.org/10.1007/978-981-99-9486-1_11
Download citation
DOI: https://doi.org/10.1007/978-981-99-9486-1_11
Published:
Publisher Name: Springer, Singapore
Print ISBN: 978-981-99-9485-4
Online ISBN: 978-981-99-9486-1
eBook Packages: EngineeringEngineering (R0)