Results 1 - 10
of
12
Reengineering class hierarchies using concept analysis
- In ACM Trans. Programming Languages and Systems
, 1998
"... A new method is presented for analyzing and reengineering class hierarchies. In our approach, a class hierarchy is processed along with a set of applications that use it, and a fine-grained analysis of the access and subtype relationships between objects, variables and class members is performed. Th ..."
Abstract
-
Cited by 103 (7 self)
- Add to MetaCart
A new method is presented for analyzing and reengineering class hierarchies. In our approach, a class hierarchy is processed along with a set of applications that use it, and a fine-grained analysis of the access and subtype relationships between objects, variables and class members is performed. The result of this analysis is again a class hierarchy, which is guaranteed to be behaviorally equivalent to the original hierarchy, but in which each object only contains the members that are required. Our method is semantically well-founded in concept analysis: the new class hierarchy is a minimal and maximally factorized concept lattice that reflects the access and subtype relationships between variables, objects and class members. The method is primarily intended as a tool for finding imperfections in the design of class hierarchies, and can be used as the basis for tools that largely automate the process of reengineering such hierarchies. The method can also be used as a space-optimizing source-to-source transformation that removes redundant fields from objects. A prototype implementation for Java has been constructed, and used to conduct several case studies. Our results demonstrate that the method can provide valuable insights into the usage of the class hierarchy in a specific context, and lead to useful restructuring proposals.
Identifying objects using cluster and concept analysis
- In 21st International Conference on Software Engineering, ICSE-99
, 1999
"... and their applications. SMC is sponsored by the Netherlands Organization for Scientific Research (NWO). CWI is a member of ..."
Abstract
-
Cited by 77 (14 self)
- Add to MetaCart
and their applications. SMC is sponsored by the Netherlands Organization for Scientific Research (NWO). CWI is a member of
Understanding class hierarchies using concept analysis
- ACM Transactions on Programming Languages and Systems
, 2000
"... A new method is presented for analyzing and reengineering class hierarchies. In our approach, a class hierarchy is processed along with a set of applications that use it, and a fine-grained analysis of the access and subtype relationships between objects, variables, and class members is performed. T ..."
Abstract
-
Cited by 33 (6 self)
- Add to MetaCart
A new method is presented for analyzing and reengineering class hierarchies. In our approach, a class hierarchy is processed along with a set of applications that use it, and a fine-grained analysis of the access and subtype relationships between objects, variables, and class members is performed. The result of this analysis is again a class hierarchy, which is guaranteed to be behaviorally equivalent to the original hierarchy, but in which each object only contains the members that are required. Our method is semantically well-founded in concept analysis: the new class hierarchy is a minimal and maximally factorized concept lattice that reflects the access and subtype relationships between variables, objects and class members. The method is primarily intended as a tool for finding imperfections in the design of class hierarchies, and can be used as the basis for tools that largely automate the process of reengineering such hierarchies. The method can also be used as a space-optimizing source-to-source transformation that removes redundant fields from objects. A prototype implementation for Java has been constructed, and used to conduct several case studies. Our results demonstrate that the method can provide valuable insights into the usage of a class hierarchy in a specific context, and lead to useful restructuring proposals.
A Survey of Formal Concept Analysis Support for Software Engineering Activities
- In Gerd Stumme, editor, Proceedings of the First International Conference on Formal Concept Analysis - ICFCA’03
, 2003
"... Abstract. Formal Concept Analysis (FCA) has typically been applied in the field of software engineering to support software maintenance and object-oriented class identification tasks. This paper presents a broader overview by describing and classifying academic papers that report the application of ..."
Abstract
-
Cited by 26 (5 self)
- Add to MetaCart
Abstract. Formal Concept Analysis (FCA) has typically been applied in the field of software engineering to support software maintenance and object-oriented class identification tasks. This paper presents a broader overview by describing and classifying academic papers that report the application of FCA to software engineering. The papers are classified using a framework based on the activities defined in the ISO12207 Software Engineering standard. Two alternate classification schemes based on the programming language under analysis and target application size are also discussed. In addition, the authors work to support agile methods and formal specification via FCA is introduced. 1
Types and Concept Analysis for Legacy Systems
- IN INT WORKSHOP ON PROG COMPR
, 2001
"... We combine type inference and concept analysis in order to gain insight into legacy software systems. Type inference for COBOL yields the types for variables and program parameters. These types are used to perform mathematical concept analysis on legacy systems. We have developed ..."
Abstract
-
Cited by 24 (0 self)
- Add to MetaCart
We combine type inference and concept analysis in order to gain insight into legacy software systems. Type inference for COBOL yields the types for variables and program parameters. These types are used to perform mathematical concept analysis on legacy systems. We have developed
A File System Based on Concept Analysis
- Int. Conf. Rules and Objects in Databases, LNCS 1861
, 2000
"... . We present the design of a file system whose organization is based on Concept Analysis "`a la Wille-Ganter". The aim is to combine querying and navigation facilities in one formalism. The file system is supposed to offer a standard interface but the interpretation of common notions like direct ..."
Abstract
-
Cited by 18 (9 self)
- Add to MetaCart
. We present the design of a file system whose organization is based on Concept Analysis "`a la Wille-Ganter". The aim is to combine querying and navigation facilities in one formalism. The file system is supposed to offer a standard interface but the interpretation of common notions like directories is new. The contents of a file system is interpreted as a Formal Context, directories as Formal Concepts, and the sub-directory relation as Formal Concepts inclusion. We present an organization that allows for an efficient implementation of such a Conceptual File System. 1 Introduction: Querying vs. Navigation Information retrieval includes representation, storage, organization, and access to information. Two information retrieval methods are widely adopted and applied. The first method is hierarchical classification, which is frequently found in computer tools: e.g., file systems, bookmarks, or menus. In this model, searches are done by navigating in a classification structure t...
Research Issues in the Renovation of Legacy Systems
, 1999
"... . The goals of this tutorial are to: (i) give the reader a quick introduction to the field of software renovation as a whole; (ii) show that many techniques from compiler technology and formal methods can be applied; (iii) demonstrate that research should be driven by real-life, industrial, case ..."
Abstract
-
Cited by 12 (3 self)
- Add to MetaCart
. The goals of this tutorial are to: (i) give the reader a quick introduction to the field of software renovation as a whole; (ii) show that many techniques from compiler technology and formal methods can be applied; (iii) demonstrate that research should be driven by real-life, industrial, case studies; and (iv) indicate that many challenging problems are still unsolved. During the presentation of this turorial, demonstrations will be given of several of the case studies discussed here. 1 Introduction Software renovation is using tomorrow's technology to bring yesterday's software to the level of today. In this paper, we provide an overview of this research area. We start (in this section) by exploring the need for software renovation. Moreover, we provide definitions of the basic terminology, and pointers to the most important literature. We then proceed to discuss two aspects of software renovation in more detail. In Section 2 we study how we can increase our understanding of...
Searching for Objects and Properties with Logical Concept Analysis
- Int. Conf. Conceptual Structures, LNCS 2120
, 2001
"... Logical Concept Analysis is Formal Concept Analysis where logical formulas replace sets of attributes. We define a Logical Information System that combines navigation and querying for searching for objects. Places and queries are unified as formal concepts represented by logical formulas. Answer ..."
Abstract
-
Cited by 11 (5 self)
- Add to MetaCart
Logical Concept Analysis is Formal Concept Analysis where logical formulas replace sets of attributes. We define a Logical Information System that combines navigation and querying for searching for objects. Places and queries are unified as formal concepts represented by logical formulas. Answers can be both extensional (objects belonging to a concept) and intensional (formulas refining a concept). Thus, all facets of navigation are formalized in terms of Logical Concept Analysis. We show that the definition of being a refinement of some concept is a specific case of Knowledge Discovery in a formal context. It can be generalized to recover more classical KD operations like machine-learning through the computation of necessary or sufficient properties (modulo some confidence), or data-mining through association rules. 1
Applications of Concept Lattices to Code Inspection and Review
, 2002
"... Given a small universe comprising a set of items and their properties, there is a well known mathematical procedure for creating the lattice of concepts in this universe, where each concept is a coherent set of items with their distinctive features. In this research we show how this technique can be ..."
Abstract
-
Cited by 10 (2 self)
- Add to MetaCart
Given a small universe comprising a set of items and their properties, there is a well known mathematical procedure for creating the lattice of concepts in this universe, where each concept is a coherent set of items with their distinctive features. In this research we show how this technique can be employed to two recurring tasks of the JAVA programmer: (1) reverse engineering of class files, and (2) clustering, structuring, and understanding the methods of a given class. We view the set of data members used by a Java method as its essential characteristics. With this perspective the construction of the class concept lattice is straightforward, yielding a concise visualization of the class. For the purpose of class understanding and reverse engineering, we offer a methodology for structured analysis of this lattice. A large real life example demonstrates how non-trivial discoveries on the class implementation can be made by solely inspecting the lattice and the names of methods and data members. This example also shows how concept lattices can be used to compare different versions of the class. A more detailed visualization of a class can be obtained by superimposing the function call graph on the class concept lattice. We describe a semi-automatic technique, which using the class concept lattice and the function call graph, will cluster, organize, sort and otherwise structure the code of a given Java class so as to achieve an efficient path for code inspection
Concept Lattices in Software Analysis
- IN FORMAL CONCEPT ANALYSIS
, 1967
"... About ten years ago, the first serious applications of concept lattices in software analysis were published. Today, a wide range of applications of concept lattices in static and dynamic analysis of software artefacts is known. This overview summarizes important papers from the last ten years, an ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
About ten years ago, the first serious applications of concept lattices in software analysis were published. Today, a wide range of applications of concept lattices in static and dynamic analysis of software artefacts is known. This overview summarizes important papers from the last ten years, and presents three methods in some detail: 1. methods to extract classes and modules from legacy software; 2. the Snelting/Tip algorithm for application-specific, semantics-preserving refactoring of class hierarchies; 3. Ball's method for infering dynamic dominators and control flow regions from program traces. We conclude with some perpectives on further uses of concept lattices in software technology.

