Software dependability applications in process modeling

Software process modeling can be used to reason about strategies for attaining software dependability. The impact of different processes and technologies on dependability attributes can be evaluated through modeling and simulation. Strategies may have overlapping capabilities, and process modeling is useful for assessing mixed strategies. Dependability has many facets, and there is no single software dependability metric that fits all situations. A stakeholder value-based approach is useful for determining relevant dependability measures for different contexts. Analytical models and simulation techniques including continuous systems and discrete event modeling approaches can be applied to dependability. Continuous systems modeling is easier for aggregate analyses. Discrete event has some advantages for dependability applications because multiple attributes related to dependability measures can be attached to system entities, particularly when those same attributes are represented in empirical data. Combined approaches using the advantages of both are attractive for dependability applications. Two primary processes can be modeled to investigate dependability phenomena. Development process models mainly address software defect introduction and removal rates. Operational process models address the probability of various classes of failure: race conditions, deadlocks, missing real-time deadlines. An overview of sample applications is presented. An elaborated example shows how modeling can be used to optimize a process for dependability. There have been relatively few dependability modeling applications to-date, and the field is rich for exploration.