Author :
Baratta-Perez, Grace ; Conn, Richard L. ; Finnell, Charles A. ; Walsh, Thomas J.
Author_Institution :
Software Eng. Center, Mitre Corp., Eatontown, NJ, USA
Abstract :
A major thrust of modern software engineering methods, languages, and tools is to promote software visibility and to present information about the underlying software architecture. With large, complex software systems, automated tools are indispensable for identifying the architectural components, the structure that interconnects them, and other subtle dependencies. This article describes the construction of an Ada System Dependency Analyzer (SDA), a software architecture analysis tool that generates a quantitative snapshot of an Ada application´s software architecture. The SDA can process thousands of Ada source files during a single run and report on them as a group of files comprising a single Ada system. Our SDA tool identifies Ada source code dependencies on COTS products such as operating systems, compilers, the X Window System, and on routines written in other languages, and can thus predict software portability and reliability problems. It rapidly and accurately processes 24,000 lines of code per minute (a time-consuming, if not impossible, operation if done manually) and has successfully processed more than seven million lines of code in eight complex systems. Although originally developed for Ada, our methods and the technology we adopted will let us construct analogous tools for other programming languages such as C, C++, Cobol; and PL/I.<>
Keywords :
Ada; software maintenance; software portability; software reliability; software tools; system monitoring; Ada System Dependency Analyzer tool; C; C++; COTS products; Cobol; PL/I; X Window System; automated tools; commercial off-the-shelf software; compilers; configuration management tools; operating systems; quantitative snapshot; reliability; software architecture; software architecture analysis tool; software engineering; software maintenance; software portability; software visibility; source code dependencies; Automatic speech recognition; Computer architecture; Feedback; Military computing; Software architecture; Software maintenance; Software reusability; Software safety; Software systems; Software tools;