System Structure Analysis: Clustering with Data Bindings
IEEE Transactions on Software Engineering - Annals of discrete mathematics, 24
Lattice model of browsable data spaces
Information Sciences: an International Journal
Interprocedural slicing using dependence graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Building and maintaining analysis-level class hierarchies using Galois Lattices
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Reengineering of configurations based on mathematical concept analysis
ACM Transactions on Software Engineering and Methodology (TOSEM)
An improved algorithm for identifying objects in code
Software—Practice & Experience
Program generalization for software reuse: from C to C++
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
Lackwit: a program understanding tool based on type inference
ICSE '97 Proceedings of the 19th international conference on Software engineering
Assessing modular structure of legacy code based on mathematical concept analysis
ICSE '97 Proceedings of the 19th international conference on Software engineering
Reengineering class hierarchies using concept analysis
SIGSOFT '98/FSE-6 Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineering
Design of class hierarchies based on concept (Galois) lattices
Theory and Practice of Object Systems - Special issue high availability in CORBA
Finding Components in a Hierarchy of Modules: a Step towards Architectural Understanding
ICSM '97 Proceedings of the International Conference on Software Maintenance
Reengineering procedural into object-oriented systems
WCRE '95 Proceedings of the Second Working Conference on Reverse Engineering
Recovering abstract data types and object instances from a conventional procedural language
WCRE '95 Proceedings of the Second Working Conference on Reverse Engineering
Evaluating process clusters to support automatic program understanding
WPC '96 Proceedings of the 4th International Workshop on Program Comprehension (WPC '96)
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Reverse engineering framework reuse interfaces
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
A user-assisted approach to component clustering
Journal of Software Maintenance: Research and Practice
A language-independent software renovation framework
Journal of Systems and Software - Special issue: Software reverse engineering
Revisiting the ΔIC approach to component recovery
Science of Computer Programming - Software analysis, evolution and re-engineering
Recovering UML class models from C++: A detailed explanation
Information and Software Technology
Automated clustering to support the reflexion method
Information and Software Technology
API-Based and Information-Theoretic Metrics for Measuring the Quality of Software Modularization
IEEE Transactions on Software Engineering
New Frontiers of Reverse Engineering
FOSE '07 2007 Future of Software Engineering
Hierarchical Clustering for Software Architecture Recovery
IEEE Transactions on Software Engineering
A trait based re-engineering technique for Java hierarchies
Proceedings of the 6th international symposium on Principles and practice of programming in Java
Proceedings of the 2nd India software engineering conference
Software Engineering
Extending the reflexion method for consolidating software variants into product lines
Software Quality Control
Reverse-engineering of an industrial software using the unified process: an experiment
SEA '07 Proceedings of the 11th IASTED International Conference on Software Engineering and Applications
Identifying components in object-oriented programs using dynamic analysis and clustering
CASCON '09 Proceedings of the 2009 Conference of the Center for Advanced Studies on Collaborative Research
Automatic generation of abstract views for legacy software comprehension
Proceedings of the 3rd India software engineering conference
A desiderata for refactoring-based software modularity improvement
Proceedings of the 3rd India software engineering conference
An incremental approach for attribute reduction in concept lattice
RSKT'07 Proceedings of the 2nd international conference on Rough sets and knowledge technology
Deriving high-level abstractions from legacy software using example-driven clustering
Proceedings of the 2011 Conference of the Center for Advanced Studies on Collaborative Research
Combining concept lattice with call graph for impact analysis
Advances in Engineering Software
Putting the developer in-the-loop: an interactive GA for software re-modularization
SSBSE'12 Proceedings of the 4th international conference on Search Based Software Engineering
Modular specification and checking of structural dependencies
Proceedings of the 12th annual international conference on Aspect-oriented software development
CASCON '13 Proceedings of the 2013 Conference of the Center for Advanced Studies on Collaborative Research
Hi-index | 0.01 |
We describe a general technique for identifying modules in legacy code. The method is based on concept analysis驴a branch of lattice theory that can be used to identify similarities among a set of objects based on their attributes. We discuss how concept analysis can identify potential modules using both 驴positive驴 and 驴negative驴 information. We present an algorithmic framework to construct a lattice of concepts from a program, where each concept represents a potential module. We define the notion of a concept partition, present an algorithm for discovering all concept partitions of a given concept lattice, and prove the algorithm correct.