Computer Sciences Seminar
Thursday, March 21
12:30 PM, NAC 8/206

Software Architecture Extraction and Tradeoff Analysis

Swapna S. Gokhale
Telcordia Technologies (formerly Bell Communications Research)

Abstract
Software architecture may be defined as a collection of artifacts such as files and functions and the interactions among these artifacts. Information regarding the architecture of a software application is essential towards the achievement of a number of diverse objectives such as the analysis of the non-functional attributes of the application, understanding the dependancies amongs its artifacts, and identifying the artifacts involved in the implementation of a specific feature or a group of features. While the architecture of a software application may be well defined at inception, it tends to deviate substantially from the original version as the application undergoes several maintenance phases. For such a legacy application, the source code is the only reliable means of information from which the architecture needs to be extracted. We present a dynamic technique to extract the architecture of an application from its source code. Our extraction technique is based on data flow analysis and uses the trace data that can be collected during the execution of an application. We demonstrate our technique by extracting the architecture of a network routing simulator. The choice of the network routing simulator as an example application for the demonstration of our technique was motivated by the fact that its architecture is well defined and intuitive, which enables us to validate the architecture extracted using our technique. We then present a brief discussion of how dynamic analysis could be used for the analysis of non-functional attributes of an application such as performance and reliability, as well as for software maintenance activities. Architecture based analysis techniques also facilitate the evaluation of the tradeoffs between the cost and the non-functional attributes of an application. We describe an optimization framework founded on architecture-based analysis techniques, and illustrate how the framework can be used to evaluate cost and reliability tradeoffs using an evolution algorithm.

Bio
Swapna S. Gokhale is presently a Research Scientist at Telcordia Technologies (formerly Bell Communications Research) in Morristown, NJ. She received her B.E. (Hons.) in Electrical and Electronics Engineering and Computer Science from the Birla Institute of Technology and Science (BITS), Pilani, India, and her MS and Ph.D. in Electrical and Computer Engineering from Duke University. She was a Post Graduate Researcher at the University of California, Riverside prior to joining Telcordia. Her research interests include software architecture, software testing and reliability, Quality of Service in wireless and wireline networks and converged IP/PSTN networks.