Extracting Constraint Knowledge from Code: A Case-Based Reasoning Approach

  • Andrew Broad
  • Nick Filer
Conference paper


The underlying motivation for the authors’ research on constraint understanding is comparative constraint understanding. The same constraint can be expressed in different ways in different models, and a comparative constraint-understanding system would be able to assess the extent to which two models have equivalent constraint semantics. Understanding constraint semantics can be used to support tasks such as mediation and mapping.

This paper presents a prototype method for understanding constraints in code. In particular, it focuses on understanding the constraints in EXPRESS information models, for which an experimental computerised system has been implemented. A case-based reasoning approach is taken, in which cases suggest so-called higher-level constraints to extract from matching fragments of EXPRESS code.


Information Model Constraint Semantic Case Library Algebraic Specification Abstract Constraint 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Quilici A. A memory-based approach to recognizing programming plans. Communications of the ACM1994; 37 (5): 84–93CrossRefGoogle Scholar
  2. 2.
    Chikofsky EJ, Cross JH II. Reverse engineering and design recovery: A taxonomy. IEEE Software1990; 7 (1): 13–17CrossRefGoogle Scholar
  3. 3.
    Grand M. Java language reference. O’Reilly & Associates, Sebastopol, 1997Google Scholar
  4. 4.
    van Vliet JC. Software engineering: Principles and perspective. John Wiley & Sons, Chichester, 1993Google Scholar
  5. 5.
    ISO TC184/SC4. Industrial automation systems and integration — Product data representation and exchange — Part 11: Description methods: The EXPRESS language reference manual. ISO standard, reference no. ISO 10303-11. ISO, Switzerland, 1994Google Scholar
  6. 6.
    Kasadha FS. An approach to the application of information models. MSc thesis, University of Manchester, Manchester, 1996Google Scholar
  7. 7.
    Broad AP. The application of case-based reasoning to the understanding of constraints on information models. MPhil thesis, University of Manchester, Manchester, 1999. Internet: Google Scholar
  8. 8.
    Kolodner JL. Case-based reasoning. Morgan Kaufmann Publishers, San Mateo, 1993Google Scholar
  9. 9.
    Woods S, Yang Q. The program understanding problem: Analysis and a heuristic approach. In: Proceedings of the 18th International Conference on Software Engineering (ICSE-96), Berlin, Germany, 1996, pp 6–15CrossRefGoogle Scholar
  10. 10.
    Brown MG. A memory model for case retrieval by activation passing. PhD thesis, University of Manchester, Manchester, 1993. Technical report UMCS-94-2-1. Internet: Google Scholar
  11. 11.
    Watson ID. Applying case-based reasoning: Techniques for enterprise systems. Morgan Kaufmann Publishers, San Francisco, 1997MATHGoogle Scholar
  12. 12.
    Rich C, Wills LM. Recognizing a program’s design: A graph-parsing approach. IEEE Software1990; 7 (l): 82–89CrossRefGoogle Scholar
  13. 13.
    ISO TC184/SC4. Industrial automation systems and integration — Product data representation and exchange — Part 212: Application protocol: Electrotechnical design and installation. ISO committee draft, reference no. ISO 10303-212. ISO, Switzerland, 1996. Internet: Scholar
  14. 14.
    Lau RYW . EDIF: Electronic Design Interchange Format version 4 0 0 level 0 information model. Electronic Industries Association, EDIF Steering Committee, 1996Google Scholar

Copyright information

© Springer-Verlag London Limited 2000

Authors and Affiliations

  • Andrew Broad
    • 1
  • Nick Filer
    • 1
  1. 1.Department of Computer ScienceUniversity of ManchesterManchesterEngland

Personalised recommendations