Abstract
ABSTRACT Retaining a satisfactory performance for a program has been an important yet difficult task for software maintenance. This difficulty can largely be attributed to the performance ripple effect of software modifications which, in turn, is caused by the performance dependencies between program entities. Among various linguistic mechanisms contributing to the causes of performance dependencies, module invocation may be the one most commonly used. This mechanism, however, may appear in a variety of syntactic forms in a program, ranging from a simple form such as subprogram invocation to more complex forms such as task communication and data abstraction. This paper presents an approach to the modeling of module invocation based performance dependencies among program entities for Ada1 programs. This approach is based on an extended program invocation graph model. In this model, an Ada program is analyzed and partitioned into primitive program entities that will be mapped into vertices of this graph model. The edges between vertices are constructed in accordance with the invocation mechanisms linking the corresponding program entities. Since this graph model preserves the transitive property of performance dependency relations between program entities, the tracing of indirect performance dependencies can then be converted into a simple computation of transitive closure of this graph model. This technique forms partially the theoretical basis for the analysis of performance ripple effect as a consequence of program modifications. Although this approach was developed to analyze performance dependencies for Ada programs, the technique presented can be easily tailored to analyze programs written in other concurrent programming languages.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have