## Identifying modules via concept analysis (1997)

Venue: | Proc. International Conference on Software Maintenance |

Citations: | 4 - 0 self |

### BibTeX

@INPROCEEDINGS{Si97identifyingmodules,

author = {Michael Si and Thomas Reps},

title = {Identifying modules via concept analysis},

booktitle = {Proc. International Conference on Software Maintenance},

year = {1997},

pages = {170--179},

publisher = {IEEE Computer Society Press}

}

### Years of Citing Articles

### OpenURL

### Abstract

We describe a general technique for identifying modules in programs that donot designate them explicitly. The method is based on concept analysis | a branch of lattice theory that can beusedtoidentify similarities among a set of objects basedontheirattributes. We discuss how concept analysis can identify potential modules using both \positive " and \negative" information. We present analgorithmic framework to construct a lattice of concepts from a program, where each concept represents a potential module. We describe an algorithm that, givenaconcept lattice, identi es possible ways of partitioning the program into modules. We discuss a prototype implementation and some results on small and medium-sized programs.

### Citations

410 |
Restructuring lattice theory: An approach based on hierarchies of concepts
- Wille
- 1981
(Show Context)
Citation Context ...ur-leggedg) bot (;;ffour-legged; hair-covered; intelligent; marine; thumbedg) Figure 3: The concept lattice (and accompanying key) for the mammal example. The fundamental theorem for concept lattices =-=[12]-=- relates subconcepts and superconcepts as follows: !! G[ (Xi;Yi)= Xi ; \ ! Yi : i2I The signi cance of the theorem is that the least common superconcept of a set of concepts can be computed by interse... |

112 |
System Structure Analysis: Clustering with Data Bindings
- Hutchens, Basili
- 1985
(Show Context)
Citation Context ...for which x z y. The set of ancestors of x, denoted by ancs(x), isthe set of lattice elements y such that y x and y6= x. 14s[1] A sups(?) // the atomic partition [2] P fAg [3] W fAg [4] while W6=; do =-=[5]-=- remove some p from W [6] for each c2p [7] for each c 0 2 sups(c) [8] p 0 p,ancs(c 0 ) [9] if ( S p 0 )\c 0 =; // if p 0 and c 0 are disjoint [10] p 00 p 0 [fc 0 g [11] if p 00 62 P [12] P P[fp 00 g [... |

51 |
Recovering abstract data types and object instances from a conventional procedural language
- Yeh, Harris, et al.
- 1995
(Show Context)
Citation Context ...then be supplied to a suitable transformation tool that maps C code to C++ code, as in the aforementioned example. Although other modularization algorithms are able to identify the same decomposition =-=[2, 14]-=-, they are unable to handle a variant of this example in which stack and queue are more tightly intertwined (see Section 3.2). In Section 3.2, we show that concept analysis is able to group the code f... |

11 |
Experiments in Identifying Reusable Abstract Data Types in Program Code
- Canfora, al
- 1993
(Show Context)
Citation Context ...then be supplied to a suitable transformation tool that maps C code to C++ code, as in the aforementioned example. Although other modularization algorithms are able to identify the same decomposition =-=[2, 14]-=-, they are unable to handle a variant of this example in which stack and queue are more tightly intertwined (see Section 3.2). In Section 3.2, we show that concept analysis is able to group the code f... |

9 | Recovering the architectural design for software comprehension - Canfora, Lucia, et al. - 1994 |

9 | Evaluating process clusters to support automatic program understanding
- Kunz
- 1996
(Show Context)
Citation Context ..., denoted by ancs(x), isthe set of lattice elements y such that y x and y6= x. 14s[1] A sups(?) // the atomic partition [2] P fAg [3] W fAg [4] while W6=; do [5] remove some p from W [6] for each c2p =-=[7]-=- for each c 0 2 sups(c) [8] p 0 p,ancs(c 0 ) [9] if ( S p 0 )\c 0 =; // if p 0 and c 0 are disjoint [10] p 00 p 0 [fc 0 g [11] if p 00 62 P [12] P P[fp 00 g [13] W W[fp 00 g [14] endif [15] endif [16]... |

7 |
Program comprehension through the identi cation of abstract data types
- Cimitile, Tortorella, et al.
- 1994
(Show Context)
Citation Context ...are no elements z for which x z y. The set of ancestors of x, denoted by ancs(x), isthe set of lattice elements y such that y x and y6= x. 14s[1] A sups(?) // the atomic partition [2] P fAg [3] W fAg =-=[4]-=- while W6=; do [5] remove some p from W [6] for each c2p [7] for each c 0 2 sups(c) [8] p 0 p,ancs(c 0 ) [9] if ( S p 0 )\c 0 =; // if p 0 and c 0 are disjoint [10] p 00 p 0 [fc 0 g [11] if p 00 62 P ... |

7 |
Lackwit: Practical Program Understanding With Type Inference
- Oâ€™Callahan, Jackson
- 1997
(Show Context)
Citation Context ...rom statement s" or\is part of the slice with respect to statement s". Information obtained from type inferencing: Type inference can be used to uncover distinctions between seemingly identical types =-=[10, 9]-=-. For example, if f is a function declared to be of type int int!bool, type inference might discover that f's most general type is of the form! bool. This reveals that the type of f's rst argument is ... |

4 |
Reengineering of con gurations based on mathematical concept analysis
- Snelting
- 1996
(Show Context)
Citation Context ...ent marine thumbed pp ppp pp pp pp pp Table 1: A crude characterization of mammals. In order to understand the basics of concept analysis, a few de nitions are required. We follow the presentation in =-=[11]-=-. A context is a tripleC =(O;A;R), whereOandAare nite sets (the objects and attributes, respectively), andRis a binary relation betweenOandA. In the mammal example, the objects are the di erent kinds ... |

1 |
A greedy approach toobjectidenti cation in imperative code
- Achee, Carver
- 1994
(Show Context)
Citation Context ... is the set of lattice elements y such that x y and there are no elements z for which x z y. The set of ancestors of x, denoted by ancs(x), isthe set of lattice elements y such that y x and y6= x. 14s=-=[1]-=- A sups(?) // the atomic partition [2] P fAg [3] W fAg [4] while W6=; do [5] remove some p from W [6] for each c2p [7] for each c 0 2 sups(c) [8] p 0 p,ancs(c 0 ) [9] if ( S p 0 )\c 0 =; // if p 0 and... |

1 |
Identifying objects inaconventional procedural language: An example of data design recovery
- Liu, Wilde
- 1990
(Show Context)
Citation Context ... set of lattice elements y such that y x and y6= x. 14s[1] A sups(?) // the atomic partition [2] P fAg [3] W fAg [4] while W6=; do [5] remove some p from W [6] for each c2p [7] for each c 0 2 sups(c) =-=[8]-=- p 0 p,ancs(c 0 ) [9] if ( S p 0 )\c 0 =; // if p 0 and c 0 are disjoint [10] p 00 p 0 [fc 0 g [11] if p 00 62 P [12] P P[fp 00 g [13] W W[fp 00 g [14] endif [15] endif [16] endfor [17] endfor [18] en... |

1 |
Program generalization for software reuse: FromCto C
- Si, Reps
- 1996
(Show Context)
Citation Context ...rom statement s" or\is part of the slice with respect to statement s". Information obtained from type inferencing: Type inference can be used to uncover distinctions between seemingly identical types =-=[10, 9]-=-. For example, if f is a function declared to be of type int int!bool, type inference might discover that f's most general type is of the form! bool. This reveals that the type of f's rst argument is ... |