A Survey of Dynamic Software Metrics <s> Dynamic Metrics for Risk Assessment <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> BIB001 </s> A Survey of Dynamic Software Metrics <s> Dynamic Metrics for Risk Assessment <s> Risk assessment is an essential process of every software risk management plan. Several risk assessment techniques are based on the subjective judgement of domain experts. Subjective risk assessment techniques are human-intensive and error-prone. Risk assessment should be based on product attributes that we can quantitatively measure using product metrics. This paper presents a methodology for risk assessment at the early stages of the development lifecycle, namely the architecture level. We describe a heuristic risk assessment methodology that is based on dynamic metrics obtained from UML specifications. The methodology uses dynamic complexity and dynamic coupling metrics to define complexity factors for the architecture elements (components and connectors). Severity analysis is performed using FMEA (failure mode and effect analysis), as applied to architecture simulation models. We combine severity and complexity factors to develop heuristic risk factors for the architecture components and connectors. Based on component dependency graphs that were developed earlier for reliability analysis, and using analysis scenarios, we develop a risk assessment model and a risk analysis algorithm that aggregates the risk factors of components and connectors to the architectural level. We show how to analyze the overall risk factor of the architecture as the function of the risk factors of its constituting components and connectors. A case study of a pacemaker is used to illustrate the application of the methodology. <s> BIB002
Yacoub et al. BIB002 present a risk assessment methodology that is based on dynamic metrics obtained from UML specifications during the early stages of the software development lifecycle, specifically at the architecture level. This work is based on authors' BIB001 earlier work done on dynamic complexity and dynamic coupling metrics, which can be obtained from simulating design specifications. The complexity of components of real-time applications can be assessed at runtime using dynamic metrics. The dynamic metrics are used to account for the fact that a fault in a frequently executed component will frequently manifest itself into a failure. Severity analysis is performed using Failure Mode and Effect Analysis (FMEA)  with the aid of simulation runs to study the effect of a failure. The FMEA technique is an efficient way to identify all possible failure modes and their consequential effects on the system. In this method, failure modes of architecture elements are identified and their effects are recorded. Then, these failure modes are ranked according to the degree of severity of their effects and the worst-case effect on the system is recognized. In this particular work, authors combine severity and complexity factors to develop heuristic risk factors for the architecture components and connectors. Based on component dependency graphs and using analysis scenarios, they develop a risk assessment model and a risk analysis algorithm that aggregates risk factors of components and connectors at the architectural level. This work shows a method to analyse the overall risk factor of the architecture as the function of the risk factors of its constituting components and connectors.