Formal concept analysis applications to requirements engineering and design

Currently, the bulk of applications of Formal Concept Analysis (FCA) in software engineering have focussed on software maintenance and re-engineering. In this thesis we broaden the approach by applying FCA to a number of early-phase activities within the software engineering life-cycle. With respect to the requirements engineering phase, a case study is presented comparing two class hierarchies that model aspects of a mass-transit railway ticketing system. The first hierarchy was produced for an existing Object-Z specification of the system while the second was derived using FCA. Contrasting the two hierarchies revealed that they were essentially the same, however, the differences highlighted specification artefacts in the existing hierarchy. With respect to the design phase, the thesis discusses the use of FCA for the navigation and visualisation of Formal Specifications written in Z. In response to the continued call for formal methods tool support, we implement and explore a prototype specification browser that exploits the abstractions afforded by FCA. The research hypothesis is an integrated architecture for navigating formal specifications using FCA. This architecture is realised using ZML and ToscanaJ to produce a practical research tool. The thesis also includes the first broad survey of FCA in the domain of software engineering and an FCA-based methodology for surveying academic literature in general.

[1]  Steven M. German,et al.  Research goals for formal methods , 1996, CSUR.

[2]  Rokia Missaoui,et al.  A Framework for Incremental Generation of Frequent Closed Itemsets , 2002 .

[3]  Rokia Missaoui,et al.  An Incremental Concept Formation Approach for Learning from Databases , 1994, Theor. Comput. Sci..

[4]  Paul Rook,et al.  Controlling software projects , 1986, Softw. Eng. J..

[5]  Rudolf Wille,et al.  Conceptual Structures of Multicontexts , 1996, ICCS.

[6]  Galal H. Galal-Edeen,et al.  Object-Oriented Architectural Evolution , 1999, ECOOP Workshops.

[7]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[8]  Peter Becker,et al.  The ToscanaJ Suite for Implementing Conceptual Information Systems , 2005, Formal Concept Analysis.

[9]  Ivar Jacobson,et al.  Unified Modeling Language User Guide, The (2nd Edition) (Addison-Wesley Object Technology Series) , 2005 .

[10]  Rainer Koschke,et al.  Locating Features in Source Code , 2003, IEEE Trans. Software Eng..

[11]  Bernhard Ganter,et al.  Attribute Exploration with Background Knowledge , 1999, Theor. Comput. Sci..

[12]  Gabriela Arévalo,et al.  Understanding Behavioral Dependencies in Class Hierarchies using Concept Analysis , 2003, Obj. Logiciel Base données Réseaux.

[13]  Daniel Jackson,et al.  A Comparison of Object Modelling Notations : Alloy , UML and Z , 1999 .

[14]  Leiter der Arbeit Detecting Software Patterns using Formal Concept Analysis , 2003 .

[15]  Paul A. Swatman,et al.  FOOM: a diagrammatic illustration of Object-Z specifications , 1996, Object Oriented Syst..

[16]  Gregor Snelting,et al.  Assessing Modular Structure of Legacy Code Based on Mathematical Concept Analysis , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[17]  Roger Duke,et al.  Formal Object Oriented Specification Using Object-Z , 2000 .

[18]  Donald D. Cowan,et al.  Experiments with the Z Interchange Format and SGML , 1995, ZUM.

[19]  李幼升,et al.  Ph , 1989 .

[20]  Graeme Smith,et al.  The Object-Z Specification Language , 1999, Advances in Formal Methods.

[21]  Roger S. Pressman,et al.  Software engineering (3rd ed.): a practitioner's approach , 1992 .

[22]  Gregor Snelting Software reengineering based on concept lattices , 2000, Proceedings of the Fourth European Conference on Software Maintenance and Reengineering.

[23]  Jeannette M. Wing A study of 12 specifications of the library problem , 1988, IEEE Software.

[24]  Jonathan P. Bowen,et al.  Z on the Web Using Java , 1998, ZUM.

[25]  Richard J. Cole,et al.  The Management And Visualisation Of Document Collections Using Formal Concept Analysis , 2000 .

[26]  David A. Carrington,et al.  Visualization of formal specifications , 1999, Proceedings Sixth Asia Pacific Software Engineering Conference (ASPEC'99) (Cat. No.PR00509).

[27]  Peter Becker Multi-dimensional Representations of Conceptual Hierarchies , 2001 .

[28]  Paolo Tonella,et al.  Concept Analysis for Module Restructuring , 2001, IEEE Trans. Software Eng..

[29]  Gregor Snelting,et al.  Reengineering of configurations based on mathematical concept analysis , 1996, TSEM.

[30]  Thomas Tilley Tool Support for FCA , 2004, ICFCA.

[31]  Rokia Missaoui,et al.  Generating frequent itemsets incrementally: two novel approaches based on Galois lattice theory , 2002, J. Exp. Theor. Artif. Intell..

[32]  Thomas W. Reps,et al.  Identifying Modules via Concept Analysis , 1999, IEEE Trans. Software Eng..

[33]  Gregor Snelting,et al.  Concept analysis—a new framework for program understanding , 1998, PASTE '98.

[34]  Gerd Stumme,et al.  Attribute Exploration with Background Implications and Exceptions , 1996 .

[35]  David A. Carrington,et al.  An integrated framework with UML and Object-Z for developing a precise and understandable specification: the light control case study , 2000, Proceedings Seventh Asia-Pacific Software Engeering Conference. APSEC 2000.

[36]  Marianne Huchard,et al.  An Environment for Building and Maintaining Class Hierarchies , 1999, ECOOP Workshops.

[37]  Christian Lindig A Concept Analysis Framework , .

[38]  M. Fowler Improving the Design of Existing Code , 2000 .

[39]  Jeannette M. Wing A specifier's introduction to formal methods , 1990, Computer.

[40]  Jin Song Dong,et al.  Object-Z web environment and projections to UML , 2001, WWW '01.

[41]  G. Snelting,et al.  Understanding class hierarchies with KABA , 1999 .

[42]  Barry W. Boehm,et al.  A spiral model of software development and enhancement , 1986, Computer.

[43]  Fabio Vitali,et al.  Visualizing Z Notation in HTML Documents , 1998, ZUM.

[44]  Daniel Jackson,et al.  Alcoa: the Alloy constraint analyzer , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[45]  Peter Becker,et al.  A Survey of Formal Concept Analysis Support for Software Engineering Activities , 2005, Formal Concept Analysis.

[46]  Vincent Duquenne,et al.  Structuration of phenotypes and genotypes through galois lattices and implications , 2003, Appl. Artif. Intell..

[47]  Susan Stepney,et al.  Characters + Mark-up = Z Lexis , 2002, ZB.

[48]  Egon Börger,et al.  High Level System Design and Analysis Using Abstract State Machines , 1998, FM-Trends.

[49]  Jin Song Dong,et al.  A XML/XSL approach to visualize and animate TCOZ , 2001, Proceedings Eighth Asia-Pacific Software Engineering Conference.

[50]  C. Lee Giles,et al.  CiteSeer: an automatic citation indexing system , 1998, DL '98.

[51]  Urs Andelfinger Diskursive Anforderungsanalyse und Validierung - ein Beitrag zum Reduktionsproblem bei Systementwicklungen in der Informatik , 1995 .

[52]  Debbie Richards,et al.  Assisting decision making in requirements reconciliation , 2002, The 7th International Conference on Computer Supported Cooperative Work in Design.

[53]  Christian Lindig Concept-Based Component Retrieval , 1995 .

[54]  Ali Mili,et al.  On the lattice of specifications: Applications to a specification methodology , 2005, Formal Aspects of Computing.

[55]  Gregor Snelting,et al.  On the inference of configuration structures from source code , 1994, Proceedings of 16th International Conference on Software Engineering.

[56]  W. W. Royce,et al.  Managing the development of large software systems , 1970 .

[57]  Dusan M. Velasevic,et al.  Reverse Engineering of Use Case Realizations in UML , 2000, SOEN.

[58]  J. Michael Spivey,et al.  Z Notation - a reference manual (2. ed.) , 1992, Prentice Hall International Series in Computer Science.

[59]  Arie van Deursen,et al.  Identifying objects using cluster and concept analysis , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[60]  David A. Carrington,et al.  Formalizing the UML Class Diagram Using Object-Z , 1999, UML.

[61]  Peter W. Eklund,et al.  Browsing Semi-structured Web Texts Using Formal Concept Analysis , 2001, ICCS.

[62]  Donald E. Knuth,et al.  Literate Programming , 1984, Comput. J..

[63]  Deborah Richards,et al.  Representing Requirements in Natural Language as Concept Lattices , 2003 .

[64]  Daniel Dominic Sleator,et al.  Parsing English with a Link Grammar , 1995, IWPT.

[65]  Oscar Nierstrasz,et al.  Understanding Classes using X-Ray Views , 2003 .

[66]  Fred S. Roberts,et al.  Applications of combinatorics and graph theory to the biological and social sciences , 1989 .

[67]  Jonathan P. Bowen,et al.  Applications of Formal Methods , 1995 .

[68]  Rudolf Wille,et al.  Conceptual Landscapes of Knowledge: A Pragmatic Paradigm for Knowledge Processing , 1999 .

[69]  Debbie Richards,et al.  A Controlled Language to Assist Conversion of Use Case Descriptions into Concept Lattices , 2002, Australian Joint Conference on Artificial Intelligence.

[70]  Ramez Elmasri,et al.  Fundamentals of Database Systems , 1989 .

[71]  Peter W. Eklund,et al.  Algorithms for Creating Relational Power Context Families from Conceptual Graphs , 1999, ICCS.

[72]  Kate Finney,et al.  Mathematical Notation in Formal Specification: Too Difficult for the Masses? , 1996, IEEE Trans. Software Eng..

[73]  Jin Song Dong,et al.  Deep Semantic Links of TCSP and Object-Z: TCOZ Approach , 2002, Formal Aspects of Computing.

[74]  Oscar Nierstrasz,et al.  Moose — a Language-Independent Reengineering Environment , 2004 .

[75]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[76]  Rokia Missaoui,et al.  Experimental Comparison of Navigation in a Galois Lattice with Conventional Information Retrieval Methods , 1993, Int. J. Man Mach. Stud..

[77]  Rainer Koschke,et al.  Feature-driven program understanding using concept analysis of execution traces , 2001, Proceedings 9th International Workshop on Program Comprehension. IWPC 2001.

[78]  Jim Woodcock,et al.  Using Z - specification, refinement, and proof , 1996, Prentice Hall international series in computer science.

[79]  David A. Carrington,et al.  A Formal Metamodeling Approach to a Transformation between the UML State Machine and Object-Z , 2002, ICFEM.

[80]  Jin Song Dong,et al.  A Formal Object Approach to the Design of ZML , 2002, Ann. Softw. Eng..

[81]  Wolfgang Hesse,et al.  A software modelling exercise using FCA , 2003 .

[82]  Jonathan P. Bowen,et al.  Seven More Myths of Formal Methods , 1995, IEEE Softw..

[83]  Houari A. Sahraoui,et al.  Applying concept formation methods to object identification in procedural code , 1997, Proceedings 12th IEEE International Conference Automated Software Engineering.

[84]  Ian J. Hayes,et al.  Specification case studies , 1987 .

[85]  Thomas Tilley,et al.  Towards an FCA based tool for visualising formal specifications , 2003 .

[86]  Rokia Missaoui,et al.  Design of Class Hierarchies Based on Concept (Galois) Lattices , 1998, Theory Pract. Object Syst..

[87]  C. M. Sperberg-McQueen,et al.  Extensible Markup Language (XML) , 1997, World Wide Web J..

[88]  Antoni Diller,et al.  Z - an introduction to formal methods , 1990 .

[89]  Jin Song Dong,et al.  Timed Communicating Object Z , 2000, IEEE Trans. Software Eng..

[90]  Joseph A. Goguen,et al.  OOZE: An Object Oriented Z Environment , 1991, ECOOP.

[91]  John C. Knight,et al.  Why are Formal Methods Not Used More Widely , 1997 .

[92]  Gerd Stumme,et al.  CEM-Visualisation and Discovery in Email , 2000, PKDD.

[93]  Leslie Lamport,et al.  LaTeX - A Document Preparation System: User's Guide and Reference Manual, Second Edition , 1994 .

[94]  Rokia Missaoui,et al.  Applying Concept Formation Methods to Software Reuse , 1995, Int. J. Softw. Eng. Knowl. Eng..

[95]  Debbie Richards,et al.  RECOCASE-tool: a CASE tool for RECOnciling requirements viewpoints , 2002 .

[96]  Diego Mollá,et al.  ExtrAns - Answer Extraction from Technical Documents by Minimal Logical Forms and Selective Highlighting , 1999 .

[97]  Aniello Cimitile,et al.  A case study of applying an eclectic approach to identify objects in code , 1999, Proceedings Seventh International Workshop on Program Comprehension.

[98]  Giuliano Antoniol,et al.  Program understanding and maintenance with the CANTO environment , 1997, 1997 Proceedings International Conference on Software Maintenance.

[99]  Peter Gorm Larsen,et al.  A Lightweight Approach to Formal Methods , 1998, FM-Trends.

[100]  Stephan Düwel BASE - Ein begriffbasiertes Analyseverfahren für die Software-Entwicklung , 2000, Softwaretechnik-Trends.

[101]  Deborah Richards,et al.  Using RECOCASE to Compare Use Cases from Multiple Viewpoints , 2002 .

[102]  Lubos Mikusiak,et al.  Z Browser - A Tool for Visualization of Z Specifications , 1995, ZUM.

[103]  Jun Sun,et al.  XML-Based Static Type Checking and Dynamic Visualization for TCOZ , 2002, ICFEM.

[104]  Frank Vogt,et al.  TOSCANA - a Graphical Tool for Analyzing and Exploring Data , 1994, GD.

[105]  Rainer Koschke,et al.  Aiding program comprehension by static and dynamic feature analysis , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[106]  Bernhard Ganter,et al.  Formal Concept Analysis: Mathematical Foundations , 1998 .

[107]  G. S. BraunschweigAbteilung Algorithms for Concept Lattice Decomposition and Their Application , 1995 .

[108]  Rokia Missaoui,et al.  Incremental structuring of knowledge bases , 1998 .

[109]  Claudio Carpineto,et al.  Order-theoretical ranking , 2000 .

[110]  John A. McDermid,et al.  CADi: An architecture for Z tools and its implementation , 1995, Softw. Pract. Exp..

[111]  Richard Cole,et al.  Conceptual Analysis of Software Structure , 2003, SEKE.

[112]  Stephan Duwel,et al.  Enhancing System Analysis by Means of Formal Concept Analysis , 1999 .

[113]  J. S. Dong,et al.  Z Family on the Web with Their Uml Photos , 2001 .

[114]  Norman E. Fenton,et al.  Effects of structure on the comprehensivility of formal specifications , 1999, IEE Proc. Softw..

[115]  Wendy Johnston A Type Checker for Object-Z , 1996 .

[116]  Frank Tip,et al.  Understanding class hierarchies using concept analysis , 2000, TOPL.

[117]  Peter W. Eklund,et al.  Scalability in Formal Concept Analysis , 1999, Comput. Intell..

[118]  P. Burmeister Formal concept analysis with ConImp : introduction to the basic features , 2003 .

[119]  Gerd Stumme,et al.  Computing iceberg concept lattices with T , 2002, Data Knowl. Eng..

[120]  Giuliano Antoniol,et al.  Object oriented design pattern inference , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[121]  Kevin Lano Z++, An Object-orientated Extension to Z , 1990, Z User Workshop.

[122]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[123]  Thomas Ball,et al.  The concept of dynamic analysis , 1999, ESEC/FSE-7.

[124]  Julian Rose,et al.  Z - An introduction to formal methods (2nd edn) : Antoni Diller John Wiley, Chichester (1994) £22.50 (1st edn published in 1990) ISBN 0 471 93973 0 , 1995, Inf. Softw. Technol..

[125]  Ingo Schmitt,et al.  Restructuring Object-Oriented Database Schemata by Concept Analysis , 1998, FMLDO.

[126]  Mark Saaltink,et al.  The Z/EVES System , 1997, ZUM.

[127]  James R. Larus,et al.  Debugging temporal specifications with concept analysis , 2003, PLDI '03.

[128]  Daniel Jackson,et al.  Some Shortcomings of OCL, the Object Constraint Language of UML , 2000, TOOLS.

[129]  Hafedh Mili,et al.  Building and maintaining analysis-level class hierarchies using Galois Lattices , 1993, OOPSLA '93.

[130]  R. Wille,et al.  Ein TOSCANA-Erkundungssystem zur Literatursuche , 2000 .

[131]  Wolfgang Hesse,et al.  Bridging the gap between Use Case Analysis and Class Structure Design by Formal Concept Analysis , 2001 .

[132]  Mike Spivey A guide to the zed style option , 2005 .

[133]  Frank Tip,et al.  Reengineering class hierarchies using concept analysis , 1998, SIGSOFT '98/FSE-6.

[134]  J. Michael Spivey,et al.  An introduction to Z and formal specifications , 1989, Softw. Eng. J..

[135]  K. Beck,et al.  Extreme Programming Explained , 2002 .

[136]  Jin Song Dong,et al.  ZML: XML Support for Standard Z , 2003, ZB.

[137]  Ling Liu,et al.  Formalizing UML Models with Object-Z , 2002, ICFEM.

[138]  Leon Moonen,et al.  Types and concept analysis for legacy systems , 2000, Proceedings IWPC 2000. 8th International Workshop on Program Comprehension.

[139]  T. Clark,et al.  of the 2 nd BCS-FACS Northern Formal Methods Workshop , Ilkley , 14-15 July 1997 Foundations of the Unified Modeling Language , 1997 .

[140]  Lotfi Lakhal,et al.  iO2 - An Algorithmic Method for Building Inheritance Graphs in Object Database Design , 1996, ER.

[141]  Debbie Richards,et al.  Reconciling Use Cases via Controlled Languages and Graphical Models , 2001, INAP.

[142]  John Wordsworth Software development with Z - a practical approach to formal methods in software engineering , 1992, International computer science series.

[143]  Edmund M. Clarke,et al.  Formal Methods: State of the Art and Future Directions Working Group Members , 1996 .

[144]  Uri Dekel Applications of Concept Lattices to Code Inspection and Review , 2002 .

[145]  Bernhard Ganter,et al.  Applied lattice theory: formal concept and analysis , 1997 .

[146]  Anthony Hall,et al.  Seven myths of formal methods , 1990, IEEE Software.

[147]  Petko Valtchev,et al.  Galicia : an open platform for lattices , 2003 .

[148]  Vincent Duquenne,et al.  Latticial Structures in Data Analysis , 1999, Theor. Comput. Sci..