An iterative requirements engineering framework based on Formal Concept Analysis and C–K theory
Highlights
► This study proposes an interactive expert system for requirements engineering. ► Using Formal Concept Analysis conceptual models can be iteratively improved. ► CK-theory provides a structure to this iterative requirements engineering process. ► Real life cases studies show the applicability of the proposed approach. ► Normalized class models are the result of our FCA based approach.
Introduction
During the conceptual modeling phase, user requirements are represented in a specification of what the system does as if there were a perfect implementation technology available (McMenamin & Palmer, 1984). This is not a model of how an implementation works but of what an implementation must accomplish. Use cases and the conceptual domain model are the most important artifacts resulting from this phase. A use case is a system usage scenario involving one or more actors and the purpose of a use case specification is to describe the flow of events in detail including how the use case starts, ends, modifies the system and interacts with actors. By analyzing the domain of interest, identifying and modeling relevant entities and relationships we obtain the conceptual domain model. In Lindland, Sindre, and Solvberg (1994) a framework is presented for evaluating the quality of conceptual models. A distinction is made between syntactic and semantic quality. Several methods have been introduced for detecting and handling syntactic problems such as inconsistencies. 75% of these techniques, such as model checkers, theorem provers, coherence checkers, etc. are formal (Lucas, Molina, & Toval, 2009) and unfortunately not very popular in the industrial software development community (Beckert et al., 2006). This unpopularity is usually due to the fact that these approaches are difficult for modelers to use directly and that the feedback they offer, is usually poor and difficult for non-experts to understand. Semantic validation of requirements and conceptual models is a social rather than a technical process, which is inherently subjective and difficult to formalize (Vliet, 2000). While some errors can be detected automatically, most errors can only be detected with the involvement of humans (Moody, 1998) since a conceptual model can only be evaluated against people’s (tacit) needs, desires and expectations.
According to Wieringa and Heerkens (2006) one of the problems is that we miss sound methodology that captures the essential elements of requirements engineering. The research on requirements engineering and conceptual modelling quality which has been done so far seems to have had little impact or practice (Moody, 2005). Few of the proposals have been widely accepted in practice and many have never been applied outside a research environment. Several authors claimed that researchers need to address the issue of practitioner acceptance (Kaindl et al., 2002, Moody, 2003). According to the literature on quality management, the most effective way to improve quality of products is to improve the process by which they are produced (Evans & Lindsay, 2004). So far, conceptual modeling quality research has focused almost exclusively on product quality: very few proposals even mention the issue of process quality (Maier, 1999, Maier, 2001). In requirements engineering, we can distinguish four broad categories of activities: elaboration of requirements artifacts, syntactic verification, modification of the model and validation of the semantics of the model with the business users. We propose Formal Concept Analysis (FCA) as a human-centered and easily understandable instrument to support the modeling of a software system (Ganter & Wille, 1999; Wille, 1982). It is a technique for mathematically describing and visualizing concepts and their interrelationships. In particular, the intuitive visual display was found to be of major importance during a number of case studies and a modeling case in which 20 students took part. The lattice helped in stimulating conscious reasoning over syntactic and semantic errors, inconsistencies and different modeling choices that were made. Amongst others, we gained insight in missing objects, missing or faulty assigned operations, wrong dependencies, alternative solutions, etc. FCA allows the user to reason over the semantics, consistency and relations among UML models. A lattice can automatically be derived from an object – use case interaction matrix and easily be transformed into a UML class diagram. This class model construction procedure based on FCA has the additional advantage of resulting in “normalized” class diagrams. These models contain no more many-to-many relations, no more optional-to-optional relations and no more reflexive relations, leading to less ambiguous class diagrams.
The requirements engineering process is framed in the C–K design science theory (Hatchuel & Weil, 2003) and each of the four categories of activities can be mapped to one of the four operators of the C–K design square. At the core of the method are multiple successive iterations through a learning loop. The actionable information in the K space, i.e. the use cases and conceptual model, are transformed to an FCA lattice which can be used for formal verification of the model and proposing modifications to the model. The results are feeded back to the domain experts, and the semantic validity of the model is analyzed together with the business user. The FCA lattices serve here as a communication instrument.
The remainder of this paper is composed as follows. In Section 2 we introduce the essentials of conceptual model quality and UML class model normalization. Section 3 discusses FCA, C–K theory and the relevance of these techniques in requirements engineering. Section 4 shows how C–K theory can be used as a frame work for iterative requirements engineering and the relevance is showcased with multiple case studies. Section 5 describes a validation experiment. In Section 6 related work is presented. Finally, Section 7 concludes the discussion.
Section snippets
Use cases, conceptual domain model and quality
The quality of the end product depends greatly on the accuracy of the requirements specification and developers are more and more concentrating on how to improve the early stages of development. Both use cases and the conceptual model are important parts of early development of a software system. According to (Belgamo & Fabbri, 2004), these requirements models deserve special attention, since it is in the requirements engineering phase where substantial communication difficulties concentrate
FCA and C–K theory essentials
The Concept–Knowledge theory (C–K theory) was initially proposed and further developed by Hatchuel, 1996, Hatchuel and Weil, 1999, Hatchuel and Weil, 2002. C–K theory is a unified design theory that defines design reasoning dynamics as a joint expansion of the Concept (C) and Knowledge (K) spaces through a series of continuous transformations within and between the two spaces (Hatchuel & Weil, 2003). C–K theory makes a formal distinction between Concepts and Knowledge: the knowledge space
Iterative requirements engineering process using FCA
According to Wieringa and Heerkens (2006), many of the papers published in the requirements engineering field describe techniques for use in requirements engineering practice: for example, how to improve the process of negotiating requirements or how to build use case models, etc. Unfortunately, there are few research papers that investigate the properties of these techniques, or the problems to be solved by these techniques (Wieringa, 2005, Wieringa et al., 2005). According to the authors, the
Validation experiment
We empirically showed the relevance of our research with a modelling experiment in which 20 students took part.
Related work
FCA has been used in various application domains including knowledge discovery, software engineering, information retrieval, etc. (Poelmans, Elzinga, Viaene, & Dedene, 2010a). Notoriuos applications in knowledge discovery include the identification of domestic violence from statements made by victims of a violent incident (Poelmans et al., 2009, Poelmans et al., 2010b), human trafficking suspects (Poelmans, Elzinga, Viaene, Dedene, & Kuznetsov, 2011) and radicalizing subjects (Elzinga,
Conclusions
In this paper we showed the relevance of normalized class models in early requirements engineering. FCA was used to derive a concept lattice from the use case-entity interaction matrix. This lattice was used for syntactic verification and semantic validation of the UML model and use case – entity interaction matrix. After a successive number of normalization steps, a normalized UML class model is obtained with desirable properties such as the absence of many-to-many, optional-to-optional and
Acknowledgements
Jonas Poelmans is aspirant of the “Fonds voor Wetenschappelijk Onderzoek – Vlaanderen” or “Research Foundation Flanders.”
References (71)
- et al.
Generalization specialization and role in object oriented conceptual modeling
Data & Knowledge Engineering
(1996) - Ambler, S. (2009). Introduction to Object-Orientation and the UML. Ambysoft Inc....
- et al.
Debugging temporal specifications with concept analysis
PLDI
(2003) - et al.
Intelligent systems and formal methods in software engineering
IEEE Intelligent Systems
(2006) - Belgamo, A., & Fabbri, S. (2004). Constructing use case model by using a systematic approach: description of a study....
From framework through experience to learning: the essential nature of action research
- Christopher, A. (1965). A city is not a tree. Architectural Forum, Vol 122, No 1, April, pp. 58–62 (Part I) and Vol...
Out of the crisis
(1986)- et al.
Objects, components and framework with UML: The Catalysis Approach
(1998) - Duwel, S. (1999). Enhancing system analysis by means of formal concept analysis. In Conference on advanced information...