Analyzing the Uses of a Software Modeling Tool

Xiaoming Li, Daryl Shannon, Jabari Walker, Sarfraz Khurshid, Darko Marinov

Research output: Contribution to journalArticlepeer-review


While a lot of progress has been made in improving analyses and tools that aid software development, less effort has been spent on studying how such tools are commonly used in practice. A study into a tool's usage is important not only because it can help improve the tool's usability but also because it can help improve the tool's underlying analysis technology in a common usage scenario. This paper presents a study that explores how (beginner) users work with the Alloy Analyzer, a tool for automatic analysis of software models written in Alloy, a first-order, declarative language. Alloy has been successfully used in research and teaching for several years, but there has been no study of how users interact with the analyzer. We have modified the analyzer to log (some of) its interactions with the user. Using this modified analyzer, 11 students in two graduate classes formulated their Alloy models to solve a problem set (involving two problems, each with one model). Our analysis of the resulting logs (total of 68 analyzer sessions) shows several interesting observations; based on them, we propose how to improve the analyzer, both the performance of analyses and the user interaction. Specifically, we show that: (i) users often perform consecutive analyses with slightly different models, and thus incremental analysis can speed up the interaction; (ii) users' interaction with the analyzer is sometimes predictable, and akin to continuous compilation, the analyzer can precompute the result of a future action while the user is editing the model; and (iii) (beginner) users can naturally develop semantically equivalent models that have significantly different analysis time, so it is useful to study manual and automatic model transformations that can improve performance.

Original languageEnglish (US)
Pages (from-to)3-18
Number of pages16
JournalElectronic Notes in Theoretical Computer Science
Issue number2 SPEC. ISS.
StatePublished - Oct 24 2006


  • Alloy Analyzer
  • SAT solver
  • Software modeling

ASJC Scopus subject areas

  • Theoretical Computer Science
  • Computer Science(all)


Dive into the research topics of 'Analyzing the Uses of a Software Modeling Tool'. Together they form a unique fingerprint.

Cite this