Application discovery and understanding
Application discovery and understanding (ADU) is the process of automatically analyzing artifacts of a software application and determining metadata structures associated with the application in the form of lists of data elements and business rules. The relationships discovered between this application and a central metadata registry is then stored in the metadata registry itself.
Business benefits of ADU
On average, developers are spending only 5% of their time writing new code, 20% modifying the legacy code and up to 60% understanding the existing code.[1] Thus, ADU saves a great deal of time and expense for organizations that are involved in the change control and impact analysis of complex computer systems. Impact analysis allows managers to know that if specific structures are changed or removed altogether, what the impact of those changes might be to enterprise-wide systems. This process has been largely used in the preparation of Y2K changes and validations in software.[2]
Application Discovery and Understanding is part of the process enabling development teams to learn and improve themselves by providing information on the context and current state of the application.[3]
The process of gaining application understanding is greatly accelerated when the extracted metadata is displayed using interactive diagrams. [4]
When a developer can browse the metadata, and drill down into relevant details on demand, then application understanding is achieved in a way that is natural to the developer.[5] Significant reductions in the effort and time required to perform full impact analysis have been reported when ADU tools are implemented.[6] ADU tools are especially beneficial to newly hired developers. A newly hired developer will be productive much sooner and will require less assistance from the existing staff when ADU tools are in place.[7]
ADU process
ADU software is usually written to scan the following application structures:
- Data structures of all kinds
- Application source code
- User interfaces (searching for labels of forms)
- Reports
The output of the ADU process frequently includes:
- Lists of previously registered data elements discovered within an application
- List of unregistered data elements discovered
Note that a registered data element is any data element that already exists within a metadata registry.
See also
Related
References
- Xin XIA; Lingfeng BAO; David LO; Zhengchang XING; Ahmed E HASSAN. "Measuring program comprehension: A large-scale field study with professionals".
{{cite journal}}
: Cite journal requires|journal=
(help) - Bohner (1996). "Impact analysis in the software change process: A year 2000 perspective". Proceedings of International Conference on Software Maintenance ICSM-96. pp. 42–51. doi:10.1109/ICSM.1996.564987. ISBN 0-8186-7677-9. S2CID 41115735.
- van Solingen; Berghout; Kusters; Trienekens (2000). "From process improvement to people improvement: enabling learning in software development". Information and Software Technology. 42 (14): 965–971. doi:10.1016/S0950-5849(00)00148-8.
- Lanza, Michele; Ducasse, Stéphane (2002). "Understanding Software Evolution using a Combination of Software Visualization and Software Metrics" (PDF). In Proceedings of LMO 2002 (Langages et Modèles à Objets): 135–149.
- Storey, M.-A.D.; Wong, K.; Fracchia, F.D.; Muller, H.A. (1997). "On integrating visualization techniques for effective software exploration". Proceedings of VIZ '97: Visualization Conference, Information Visualization Symposium and Parallel Rendering Symposium. pp. 38–45. doi:10.1109/INFVIS.1997.636784. ISBN 0-8186-8189-6. S2CID 3091024.
- Canfora, G.; Cerulo, L. (2005). "Impact Analysis by Mining Software and Change Request Repositories". 11th IEEE International Software Metrics Symposium (METRICS'05). p. 29. doi:10.1109/METRICS.2005.28. ISBN 0-7695-2371-4. S2CID 16199730.
- Lanza, Michele; Ducasse, Stéphane (2002). "Understanding Software Evolution using a Combination of Software Visualization and Software Metrics" (PDF). In Proceedings of LMO 2002 (Langages et Modèles à Objets): 135–149.