A Survey of Dynamic Software Metrics <s> Potential Research Directions <s> During initial program comprehension, software engineers could benefit from knowing the most need-to-be-understood classes in the system under study in order to kick-start their software reconnaissance. Previously we have used Webmining techniques on runtime trace data to identify these important classes. Here, we reprise this Webmining technique and make a thorough comparison of its effectiveness when collecting static information of the software system under study. Apache Ant and Jakarta JMeter, two medium-scale open source Java software systems, serve as case studies. From publicly available developers notes we conclude that the Webmining technique in combination with dynamic analysis provides the best results with a level of recall of 90% when comparing with the developers' opinion <s> BIB001 </s> A Survey of Dynamic Software Metrics <s> Potential Research Directions <s> Dynamic analysis has long been a subject of study in the context of (compiler) optimization, program comprehension, test coverage, etc. Ever-since, the scale of the event trace has been an important issue. This scalability issue finds its limits on the computational front, where time and/or space complexity of algorithms become too large to be handled by a computer, but also on the cognitive front, where the results presented to the user become too large to be easily understood. This research focuses on delivering a number of program comprehension solutions that help software engineers to focus on the software system during their initial program exploration and comprehension phases. The key concepts we use in our techniques are "frequency of execution" and runtime "coupling". To validate our techniques we used a number of open-source software systems, as well as an industrial legacy application. <s> BIB002
From the above detailed discussions of different types of dynamic metrics, it can easily be said that the field of dynamic metrics is wide open for researchers. Some of the possible research directions in the area of dynamic metrics are listed below: • From above discussions on dynamic metrics, it can be easily observed that there are no major metrics available at runtime for the measurement of testability of the software systems. Thus, future research may involve investigating the role of dynamic metrics in the area of software testing. These measures can guide about the effectiveness of software testing strategies and can also contribute to better judgement of the testability of the code in its operational environment. • As mentioned in Section 2, dynamic metrics have the advantage of being more precise, but they are difficult to measure in comparison to static ones. Thus, there is clear opportunity for researchers in hybrid approach where the dynamic analysis results are augmented by static information for collection of metrics data. This hybrid approach can combine static as well as dynamic approaches to make the measurement process more cost-effective. • Since the main difficulty arises in collection process of dynamic metrics, it becomes important to devise some techniques so as to make the process of collection of the dynamic metrics easy. We have found the aspectoriented approach as one such technique, which has the potential of computing various metrics at runtime such as dynamic coupling, dynamic cohesion. Going in further details of aspect-oriented approach is beyond the scope of this paper. • As some dynamic metrics have been successfully used for the purpose of program comprehension  BIB001 BIB002 , another possible direction of research can be to use dynamic metrics for identifying the key classes as well as the key collaborations among these classes in a system. These key classes and key collaborations can be useful in better understanding the system for the purpose of clustering and the measurement of amount of actual coupling among them. • From the above study, it can easily be observed that very few metrics have been proposed for measuring cohesion at runtime. Hence, measurement of dynamic cohesion of object-oriented programs based on associations taking place at runtime or dynamic/hybrid slicing can be a promising area for future research. • Since pseudo dynamic metrics can easily be measured from operation profiles, which is obtained from UML diagrams, the UML based representation helps in calculating various metrics for different purposes with a low cost. Such metrics will have benefits of both dynamic and static measures. Defining such pseudo dynamic metrics for the measurement of different software attributes is another promising research opportunity readily available to researchers. • As described above, there are a number of dynamic metrics proposed for the measurement of internal attributes of the software. But, impact of these metrics is not well studied on external attributes of software applications. Goseva-Popstojanova  has studied the impact of dynamic metrics on the identification of failure prone components of the software applications being used by NASA. Identification of the most problematic parts of software holds enormous potential for reducing the cost and improving the quality of software. Thus, study of the impact of several dynamic metrics like dynamic coupling metrics on the external attributes of the software applications is another good alternate for future research. • It can be easily observed from the survey of different works conducted by different authors that, till date, dynamic metrics have been measured and validated using only small software systems. In future research in this direction, large-scale industrial systems need to be undertaken to evaluate the usefulness of the proposed dynamic metrics in real-life scenarios.