Identifying and Qualifying Reusable Software Components
Computer - Special issue on cryptography
An Automated Approach to Information Systems Decomposition
IEEE Transactions on Software Engineering
Reengineering of configurations based on mathematical concept analysis
ACM Transactions on Software Engineering and Methodology (TOSEM)
Tool support for planning the restructuring of data abstractions in large systems
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
Assessing modular structure of legacy code based on mathematical concept analysis
ICSE '97 Proceedings of the 19th international conference on Software engineering
An intelligent tool for re-engineering software modularity
ICSE '91 Proceedings of the 13th 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
Points-to analysis for program understanding
Journal of Systems and Software
A Precise Method for Identifying Reusable Abstract Data Types in Code
ICSM '94 Proceedings of the International Conference on Software Maintenance
Recovering the Structure of Software Systems Using Tube Graph Interconnection Clustering
ICSM '96 Proceedings of the 1996 International Conference on Software Maintenance
Finding Components in a Hierarchy of Modules: a Step towards Architectural Understanding
ICSM '97 Proceedings of the International Conference on Software Maintenance
Program Understanding and Maintenance with the CANTO Environment
ICSM '97 Proceedings of the International Conference on Software Maintenance
Identifying modules via concept analysis
ICSM '97 Proceedings of the International Conference on Software Maintenance
Extracting Abstract Data Types from C Programs: A Case Study
ICSM '93 Proceedings of the Conference on Software Maintenance
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)
Using the O-A Diagram to Encapsulate Dynamic Memory Access
ICSM '98 Proceedings of the International Conference on Software Maintenance
Bunch: A Clustering Tool for the Recovery and Maintenance of Software System Structures
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
Using Automatic Clustering to Produce High-Level System Organizations of Source Code
IWPC '98 Proceedings of the 6th International Workshop on Program Comprehension
Automatic Identification of Reusable Components
CASE '95 Proceedings of the Seventh International Workshop on Computer-Aided Software Engineering
Locating Features in Source Code
IEEE Transactions on Software Engineering
Program Execution-Based Module Cohesion Measurement
Proceedings of the 16th IEEE international conference on Automated software engineering
A Survey of Software Refactoring
IEEE Transactions on Software Engineering
Formal Concept Analysis in Software Engineering
Proceedings of the 26th International Conference on Software Engineering
A Scalable Approach to User-Session based Testing of Web Applications through Concept Analysis
Proceedings of the 19th IEEE international conference on Automated software engineering
A language-independent software renovation framework
Journal of Systems and Software - Special issue: Software reverse engineering
The Structural Complexity of Software: An Experimental Test
IEEE Transactions on Software Engineering
Revisiting the ΔIC approach to component recovery
Science of Computer Programming - Software analysis, evolution and re-engineering
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
Applying Concept Analysis to User-Session-Based Testing of Web Applications
IEEE Transactions on Software Engineering
Hierarchical Clustering for Software Architecture Recovery
IEEE Transactions on Software Engineering
Formal Concept Analysis in Relational Database and Rough Relational Database
Fundamenta Informaticae
Proceedings of the 2nd India software engineering conference
Software Engineering
Journal of Systems and Software
Journal of Software Maintenance and Evolution: Research and Practice - Special Issue on the 12th Conference on Software Maintenance and Reengineering (CSMR 2008)
Journal of Systems and Software
Extending the reflexion method for consolidating software variants into product lines
Software Quality Control
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
Analysis of early aspects in requirements goal models: a concept-driven approach
Transactions on aspect-oriented software development III
Relational Contexts and Relational Concepts
Fundamenta Informaticae
A two-step technique for extract class refactoring
Proceedings of the IEEE/ACM international conference on Automated software engineering
Identifying Extract Class refactoring opportunities using structural and semantic cohesion measures
Journal of Systems and Software
Journal of Software Maintenance and Evolution: Research and Practice
On the relationship of concern metrics and requirements maintainability
Information and Software Technology
Rough contexts and rough-valued contexts
RSKT'06 Proceedings of the First international conference on Rough Sets and Knowledge Technology
A survey of formal concept analysis support for software engineering activities
Formal Concept Analysis
Formal concept analysis-based class hierarchy design in object-oriented software development
Formal Concept Analysis
Navigation spaces for the conceptual analysis of software structure
ICFCA'05 Proceedings of the Third international conference on Formal Concept Analysis
Modeling the growth of complex software function dependency networks
Information Systems Frontiers
Formal Concept Analysis in Relational Database and Rough Relational Database
Fundamenta Informaticae
Combining concept lattice with call graph for impact analysis
Advances in Engineering Software
Fast, scalable detection of "Piggybacked" mobile applications
Proceedings of the third ACM conference on Data and application security and privacy
Leveraging design rules to improve software architecture recovery
Proceedings of the 9th international ACM Sigsoft conference on Quality of software architectures
Formal query systems on contexts and a representation of algebraic lattices
Information Sciences: an International Journal
Improving software modularization via automated analysis of latent topics and dependencies
ACM Transactions on Software Engineering and Methodology (TOSEM)
Hi-index | 0.00 |
Low coupling between modules and high cohesion inside each module are the key features of good software design. This is obtained by encapsulating the details about the internal structure of data and exporting only public functions with a clean interface. The only native support to encapsulation offered by procedural programming languages, such as C, is the possibility to limit the visibility of entities at the file level. Thus, modular decomposition is achieved by assigning functions and data structures to different files. This paper proposes a new approach to using concept analysis for module restructuring, based on the computation of extended concept subpartitions. Alternative modularizations, characterized by high cohesion around the internal structures that are being manipulated, can be determined by such a method. To assess the quality of the restructured modules, the trade-off between encapsulation violations and decomposition is considered and proper measures for both factors are defined. Furthermore, the cost of restructuring is evaluated through a measure of distance between original and new modularizations. Concept subpartitions were determined for a test suite of 20 programs of variable size, 10 public domain and 10 industrial applications. On the resulting module candidates, the trade-off between encapsulation and decomposition was measured, together with an estimate of the cost of restructuring. Moreover, the ability of concept analysis to determine meaningful modularizations was assessed in two ways. First, programs without encapsulation violations were used as oracles, assuming the absence of violations as an indicator of careful decomposition. Second, the suggested restructuring interventions were actually implemented in some case studies to evaluate the feasibility of restructuring and to deeply investigate the code organization before and after the intervention. Concept analysis was experienced to be a powerful tool supporting module restructuring.