Detecting model clashes during software systems development

  • Authors:
  • Barry Boehm;Mohammed Saleh Al-Said

  • Affiliations:
  • -;-

  • Venue:
  • Detecting model clashes during software systems development
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

Software models are widely used during software systems development. Software developers use the models to better understand the system users' requirements, develop candidate solutions, and validate their decisions. Currently, the set of existing software models is large. Model clashes occur when models with inconsistent assumptions are used at the same time during the development of a software dependent system. Model clashes occur frequently, impede product development, and may cause project failure if not detected and avoided in a timely manner. But outsides of product model clashes (architecture, structure, traceability gaps), relatively little has been done to address them. This thesis lays out the background of the model clashes problem which includes formally defining a model-clash, formally demonstrating that model clashes exist between software models, and listing the causes of model clashes. It describes a new method for identifying the models' assumptions and the clashes among these assumptions. This method was validated by applying it against a mixture of commonly used software models and the result was used to assess the ability of MBASE (Model Based system Architecting and Software Engineering) to identify and avoid model clashes. A semi-automated software tool was developed based on this method. To demonstrate the value of detecting and avoiding model clashes, this thesis establishes the relationship between the consequences of model clashes and the risk in software projects. Using data from 35 completed software projects, it shows that each clash has an impact, which can be defined as the product of the clash's occurrence probability and severity. This thesis shows that the clash impact is directly related to the project risk exposure. Finally, this thesis describes an experiment involving 18 software projects, where a process was applied to detect, analyze, resolve, and avoid model clashes. The results demonstrate the distribution of the different clash types and each type contribution to the project risk. The results also validate the hypothesis: detecting and avoiding model clashes during software systems development improves the software projects' outcome.