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
Assessing modular structure of legacy code based on mathematical concept analysis
ICSE '97 Proceedings of the 19th international conference on Software engineering
Rigi: a visualization environment for reverse engineering
ICSE '97 Proceedings of the 19th international conference on Software engineering
On the inference of configuration structures from source code
ICSE '94 Proceedings of the 16th 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
Lightweight extraction of object models from bytecode
Proceedings of the 21st international conference on Software engineering
Identifying objects using cluster and concept analysis
Proceedings of the 21st international conference on Software engineering
Identifying Modules via Concept Analysis
IEEE Transactions on Software Engineering
Reveal: a tool to reverse engineer class diagrams
CRPIT '02 Proceedings of the Fortieth International Conference on Tools Pacific: Objects for internet, mobile and embedded applications
Supporting document and data views of source code
Proceedings of the 2002 ACM symposium on Document engineering
Reverse Engineering and Design Recovery: A Taxonomy
IEEE Software
Structural Redocumentation: A Case Study
IEEE Software
Locating Features in Source Code
IEEE Transactions on Software Engineering
Applying concept formation methods to object identification in procedural code
ASE '97 Proceedings of the 12th international conference on Automated software engineering (formerly: KBSE)
Software Reengineering Based on Concept Lattices
CSMR '00 Proceedings of the Conference on Software Maintenance and Reengineering
GXL: Toward a Standard Exchange Format
WCRE '00 Proceedings of the Seventh Working Conference on Reverse Engineering (WCRE'00)
Application of UML Associations and Their Adornments in Design Recovery
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
Reverse Engineering of the UML Class Diagram from C++ Code in Presence of Weakly Typed Containers
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Aiding Program Comprehension by Static and Dynamic Feature Analysis
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Object Oriented Design Pattern Inference
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
A Comparison of Graphs of Concept for Reverse Engineering
IWPC '00 Proceedings of the 8th International Workshop on Program Comprehension
Source Code Files as Structured Documents
IWPC '02 Proceedings of the 10th International Workshop on Program Comprehension
An XML-Based Lightweight C++ Fact Extractor
IWPC '03 Proceedings of the 11th IEEE International Workshop on Program Comprehension
A Case Study of Applying an Eclectic Approach to Identify Objects in Code
IWPC '99 Proceedings of the 7th International Workshop on Program Comprehension
UML Distilled: A Brief Guide to the Standard Object Modeling Language
UML Distilled: A Brief Guide to the Standard Object Modeling Language
Exploring Differences in Exchange Formats - Tool Support and Case Studies
CSMR '03 Proceedings of the Seventh European Conference on Software Maintenance and Reengineering
Static and Dynamic C++ Code Analysis for the Recovery of the Object Diagram
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
Extraction and Use of Class Dependency Information for Java
WCRE '02 Proceedings of the Ninth Working Conference on Reverse Engineering (WCRE'02)
A Study on the Current State of the Art in Tool-Supported UML-Based Static Reverse Engineering
WCRE '02 Proceedings of the Ninth Working Conference on Reverse Engineering (WCRE'02)
Reverse Engineering of the Interaction Diagrams from C++ Code
ICSM '03 Proceedings of the International Conference on Software Maintenance
Revealing Class Structure with Concept Lattices
WCRE '03 Proceedings of the 10th Working Conference on Reverse Engineering
DMS®: Program Transformations for Practical Scalable Software Evolution
Proceedings of the 26th International Conference on Software Engineering
Reverse engineering of UML specifications from java programs
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Recovering binary class relationships: putting icing on the UML cake
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Mappings for Accurately Reverse Engineering UML Class Models from C++
WCRE '05 Proceedings of the 12th Working Conference on Reverse Engineering
Boxology of NBA and TA: A Basis for Understanding Software Architecture
WCRE '05 Proceedings of the 12th Working Conference on Reverse Engineering
Toward an Infrastructure to Support Interoperability in Reverse Engineering
WCRE '05 Proceedings of the 12th Working Conference on Reverse Engineering
The Reduction Theory of Object Oriented Concept Lattices and Property Oriented Concept Lattices
RSKT '09 Proceedings of the 4th International Conference on Rough Sets and Knowledge Technology
Granular reduction of property-oriented concept lattices
ICCS'10 Proceedings of the 18th international conference on Conceptual structures: from information to intelligence
A two-stage framework for UML specification matching
Information and Software Technology
Generating smart wrapper libraries for arbitrary APIs
SLE'09 Proceedings of the Second international conference on Software Language Engineering
Hi-index | 0.00 |
An approach to recovering design-level UML class models from C++ source code to support program comprehension is presented. A set of mappings are given that focus on accurately identifying such elements as relationship types, multiplicities, and aggregation semantics. These mappings are based on domain knowledge of the C++ language and common programming conventions and idioms. Additionally, formal concept analysis is used to detect design-level attributes of UML classes. An application implementing these mappings is used to reverse engineer a moderately sized, open-source application and the resultant class model is compared against those produced by other UML reverse engineering tools. This comparison shows that the presented mapping rules effectively produce meaningful and semantically accurate UML models.