A Case Study in Using ACL 2 for Feature-Oriented Verification

Feature-oriented software systems are built from components that encapsulate cohesive end-user features. Feature-oriented components are interesting because they cross-cut the system architecture, capturing behavior fragments from several system entities. Features support a plug-and-play style of software construction, in which several systems can be constructed from the same core set of features. This approach requires novel forms of formal verification that support modular reasoning about feature-based components. This paper presents a case study on modeling and verifying a feature-oriented email system in ACL2. The main goal of the study is to identify classes of theorems that should be proven about individual features so that properties about compositions of features can be derived from the theorems on the individual features. A secondary goal is to evaluate ACL2 as a modeling and verification framework for feature-oriented systems. We present our feature model and insights into verification, then discuss the strengths and weaknesses of ACL2 in this problem domain.

[1]  Harold Ossher,et al.  Multi-dimensional Separation of Concerns in Hyperspace Multi-dimensional Separation of Concerns in Hyperspace , 1999 .

[2]  Robert J. Hall,et al.  Feature Interactions in Electronic Mail , 2000, FIW.

[3]  Martin L. Griss Implementing Product-Line Features By Composing Component Aspects , 2000 .

[4]  Kathi Fisler,et al.  Modular Verification of Open Features Through Three-Valued Model Checking � , 2003 .

[5]  Kathi Fisler,et al.  Parameterized interfaces for open system verification of product lines , 2004 .

[6]  Paul J. Kühn,et al.  The Feature and Service Interaction Problem in Telecommunications Systems. A Survey , 1998, IEEE Trans. Software Eng..

[7]  Lodewijk Bergmans,et al.  Composing crosscutting concerns using composition filters , 2001, CACM.

[8]  Kathi Fisler,et al.  Modular verification of collaboration-based software designs , 2001, ESEC/FSE-9.

[9]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[10]  Christian Prehofer,et al.  Feature-Oriented Programming: A Fresh Look at Objects , 1997, ECOOP.

[11]  Don S. Batory,et al.  The design and implementation of hierarchical software systems with reusable components , 1992, TSEM.

[12]  Robert Bruce Findler,et al.  Modular object-oriented programming with units and mixins , 1998, ICFP '98.

[13]  Amy P. Felty,et al.  Feature specification and automated conflict detection , 2003, TSEM.

[14]  Brian Glenn Roberts Modular Detection of Feature Interactions Through Theorem Proving: A Case Study , 2003 .

[15]  Mira Mezini,et al.  Programming with Aspectual Components , 1999 .