The ASM Method is a practical and scientifically well-founded systems engineering method that bridges the gap between the two ends of system development: The method builds upon three basic concepts: In the original conception of ASMs, a single agent executes a program in a sequence of steps, possibly interacting with its environment.
This notion was extended to capture distributed computations, in which multiple agents execute their programs concurrently.
Since ASMs model algorithms at arbitrary levels of abstraction, they can provide high-level, low-level and mid-level views of a hardware or software design.
Due to the algorithmic and mathematical nature of these three concepts, ASM models and their properties of interest can be analyzed using any rigorous form of verification (by reasoning) or validation (by experimentation, testing model executions).
In 2000, Gurevich axiomatized the notion of sequential algorithms, and proved the ASM thesis for them.