A Survey of Dynamic Software Metrics <s> Yacoub et al. Metrics <s> Abstract The "architecture" of a software system refers to its highest-level modular decomposition and the interrelationship patterns between its modules. An architecture serves as a blueprint for implementation and also as the chief determinant of a system's ability evolve. Consequently, there is an increased interest in methods for specifying and validating software architectures. One such method is based on the ROOM mode ling language which combines the object paradigm with mode ling abstractions devised specifically for distributed real-time software. To overcome the treacherous "architectural decay" phenomenon, whereby, over time, software diverges increasingly from its specification, ROOM formally constrains the implementation to its architectural specification. This is achieved primarily through full automated code generation, a technique that is panicularly challenging in real-time applications where stringent performance and memory requirements are the norm. <s> BIB001 </s> A Survey of Dynamic Software Metrics <s> Yacoub et al. Metrics <s> As object-oriented (OO) analysis and design techniques become more widely used, the demand on assessing the quality of OO designs increases substantially. Recently, there has been much research effort devoted to developing and empirically validating metrics for OO design quality. Complexity, coupling, and cohesion have received a considerable interest in the field. Despite the rich body of research and practice in developing design quality metrics, there has been less emphasis on dynamic metrics for OO designs. The complex dynamic behavior of many real-time applications motivates a shift in interest from traditional static metrics to dynamic metrics. This paper addresses the problem of measuring the quality of OO designs using dynamic metrics. We present a metrics suite to measure the quality of designs at an early development phase. The suite consists of metrics for dynamic complexity and object coupling based on execution scenarios. The proposed measures are obtained from executable design models. We apply the dynamic metrics to assess the quality of a pacemaker application. Results from the case study are used to compare static metrics to the proposed dynamic metrics and hence identify the need for empirical studies to explore the dependency of design quality on each. <s> BIB002
Yacoub et al. BIB002 define dynamic complexity metrics using ROOMcharts BIB001 specifications and use the simulation reports to calculate dynamic measurements. The ROOMcharts are extensions of state-diagrams and are used for behavioural specifications in real-time object modelling and simulation. The proposed dynamic complexity metrics extend authors' previous work  for measuring operational complexity  of modules based on Petri Net models. The operational complexity of objects is based on the static McCabe's cyclomatic complexity  obtained from a control flow graph. For each scenario x, a subset of the ROOMchart model of an object o i is executed in terms of state entries, state exits, and fired transitions. This subset of the ROOMchart model is translated into control flow graph. Then, it is possible to calculate the cyclomatic complexity of the executed path for each object o i for a scenario x, i.e., ocpx x (o i ). Using the probabilities of execution scenarios (or operation profiles), a measure of the operational complexity of the object from the simulation report is obtained. Using these reports, the complexity of each object o i for each scenario x can be obtained and the probabilities of scenarios can be used to calculate the operational complexity of the object as given below: Thus, dynamic complexity metrics guide the process of identifying complex objects and trace these objects to classes from which they are instantiated. As a result, classes can be graded based on the complexity of their instantiated objects and more efforts for implementation and testing will be higher devoted to classes having higher dynamic complexity.