An approach to formal automated analysis of problem-frame concerns Maria Augusta Nelson a , Torsten Nelson b, * , Paulo Alencar c , Don Cowan c a Institute of Informatics, Pontifical Catholic University of Minas Gerais, Belo Horizonte, Brazil b Aspectos Consulting, Belo Horizonte, Brazil c Computer Systems Group, University of Waterloo, Waterloo, Canada Available online 17 October 2005 Abstract We present an approach to performing automated formal analysis of the concerns found in descriptions that follow the problem-frames technique. The descriptions of the problem domains, machine and requirements are written in a formal language. The approach is explained through a case study using the Alloy language. We show that an evaluation of results and counter-examples provided by a model checker can reveal useful information that can help remove inconsistencies as well as composition errors. q 2005 Elsevier B.V. All rights reserved. Keywords: Problem frames; Formal analysis; Concerns; Composition; Alloy 1. Introduction Problems that require a computer-based solution are usually complex in nature. Computer-based systems need to address user interaction, may have to control the environ- ment, are expected to produce results that may be used by other systems, and perform complex functions transforming input into output. In order to understand a problem that requires a computer-based solution and to be able to build such a solution, the human mind needs to decompose the problem and focus on one part at a time. Decomposition helps with the comprehension of the problem, but the final system needs to recompose the parts to produce the solution. When decomposing and recomposing subproblems into solutions, many issues or concerns must be considered and addressed. We present an approach to analyze the concerns that arise when using the problem-frames technique [8] to decompose and recompose subproblems. Our approach involves using a formal language to describe the parts of a problem frame. We then analyze the descriptions using automated analysis tools that allow us to check for inconsistencies and demonstrate useful properties. The examples in this paper were created using the Alloy formal language [7] but we believe the approach is useful for analyzing formal specifications independently of the language that is used. In this paper we describe the approach and show a case study where we formalize the elements of some problem frames, frame three subproblems of a real-world problem, and analyze these subproblems individually and with respect to their composition. Previous work on the formalization of problem frames has demonstrated the benefits of automated analysis [11] to verify domain properties and problem understanding. This paper augments that work by applying projection-based composition techniques [12] to explore problem frame composition concerns. 1.1. Problem frames Problem frames are a technique for problem decompo- sition and analysis. Each problem frame describes a general problem that is commonly solved using a computer, such as controlling devices or visualizing data. The technique involves decomposing complex problems into simpler ones that ‘fit’ one of the existing problem frames. A fundamental characteristic of the technique is that three different kinds of descriptions are necessary to describe a machine that is a computer-based solution to a problem. The first is a description of the domains, which are the parts of the real world that the problem involves. Information and Software Technology 47 (2005) 913–927 www.elsevier.com/locate/infsof 0950-5849/$ - see front matter q 2005 Elsevier B.V. All rights reserved. doi:10.1016/j.infsof.2005.08.005 * Corresponding author. E-mail addresses: guta@pucminas.br (M.A. Nelson), tpnelson@gmail. com (T. Nelson), palencar@csg.uwaterloo.ca (P. Alencar), dcowan@csg. uwaterloo.ca (D. Cowan).