Alloy Analyzer

The Alloy Analyzer is a inserted in the computer science and software engineering programs that can be used in order to analyze specifications, which are written in the same language. The analysis program can create instances of Modellinvarianten, simulate the execution of operations that have been defined as part of the model, and check the custom properties of the model. It also supports the analysis of sub-models, as well as the incremental analysis of models, as they are created, and return results directly to the user.

The analysis program and the associated Alloy language were developed under the direction of Daniel Jackson at the Massachusetts Institute of Technology in the USA. The first prototype was developed in 1997.

Analysis approach

The Alloy Analyzer has been designed especially for so-called lightweight formal methods ( "lightweight formal methods" ). For example, it is intended to support full automatic analysis, as opposed to interactive Theorembeweistechniken used generally of similar languages ​​such as Alloy. The development of Alloy was influenced by the automatic analysis, which is offered by model checkers. However, model checking is not suitable for the type of models that are developed with Alloy. Thus, the core of the application was ultimately built as a model -finder on a SAT solver.

In version 3.0 of the Alloy Analyzer enclosed a built-in SAT -based model finder, which is based on a your standard. With version 4.0, however, the Kodkod model -finder has been integrated for the Alloy analyzer is used as a front end. Both model -finder mainly translate a model of relational logic into a corresponding formula of Boolean algebra and then rely on a standard SAT solver. In the event that the solver finds a solution, the result is transformed back to the corresponding binding constants to variables in the relational model.

To ensure that the problem of model search is decidable, the Alloy Analyzer performs a model search over a limited scope consisting of a finite number of custom objects. This has the consequence that the generality of the results is limited. However, the developers of Alloy Analyzer justify the decision to limit the scope of relying on the small scope hypothesis, which states that a high proportion of program errors can already be found when testing the program for all input values ​​of a small scope.

50412
de