|
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.
|