Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
Using Neural Networks to Modularize Software
Machine Learning - Special issue on structured connectionist systems
An intelligent tool for re-engineering software modularity
ICSE '91 Proceedings of the 13th international conference on Software engineering
ICSE '94 Proceedings of the 16th international conference on Software engineering
Recovering software architecture from the names of source files
Journal of Software Maintenance: Research and Practice
Identifying Modules via Concept Analysis
IEEE Transactions on Software Engineering
Concept Analysis for Module Restructuring
IEEE Transactions on Software Engineering
Agile Software Development: Principles, Patterns, and Practices
Agile Software Development: Principles, Patterns, and Practices
Practical Software Maintenance: Best Practices for Managing Your Software Investment
Practical Software Maintenance: Best Practices for Managing Your Software Investment
Search based reverse engineering
SEKE '02 Proceedings of the 14th international conference on Software engineering and knowledge engineering
Leveraging Legacy System Dollars for E-Business
IT Professional
Public versus Published Interfaces
IEEE Software
CSMR '01 Proceedings of the Fifth European Conference on Software Maintenance and Reengineering
Component Clustering Based on Maximal Association
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
Bunch: A Clustering Tool for the Recovery and Maintenance of Software System Structures
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
Facilitating Program Comprehension by Mining Association Rules from Source Code
IWPC '03 Proceedings of the 11th IEEE International Workshop on Program Comprehension
Using Automatic Clustering to Produce High-Level System Organizations of Source Code
IWPC '98 Proceedings of the 6th International Workshop on Program Comprehension
A Multiple Hill Climbing Approach to Software Module Clustering
ICSM '03 Proceedings of the International Conference on Software Maintenance
A Survey of Software Refactoring
IEEE Transactions on Software Engineering
On combining graph-partitioning with non-parametric clustering for image segmentation
Computer Vision and Image Understanding
Information-Theoretic Software Clustering
IEEE Transactions on Software Engineering
Software Clustering Based on Dynamic Dependencies
CSMR '05 Proceedings of the Ninth European Conference on Software Maintenance and Reengineering
ACM SIGPLAN Notices
Software Clustering based on Omnipresent Object Detection
IWPC '05 Proceedings of the 13th International Workshop on Program Comprehension
Search-based improvement of subsystem decompositions
GECCO '05 Proceedings of the 7th annual conference on Genetic and evolutionary computation
Spectral and meta-heuristic algorithms for software clustering
Journal of Systems and Software - Special issue: Software reverse engineering
On the Automatic Modularization of Software Systems Using the Bunch Tool
IEEE Transactions on Software Engineering
API-Based and Information-Theoretic Metrics for Measuring the Quality of Software Modularization
IEEE Transactions on Software Engineering
Hierarchical Clustering for Software Architecture Recovery
IEEE Transactions on Software Engineering
Metrics for Measuring the Quality of Modularization of Large-Scale Object-Oriented Software
IEEE Transactions on Software Engineering
Journal of Software Maintenance and Evolution: Research and Practice
Identification of Move Method Refactoring Opportunities
IEEE Transactions on Software Engineering
Discovery of architectural layers and measurement of layering violations in source code
Journal of Systems and Software
Hi-index | 0.00 |
There exists number of large business critical software systems of recent vintage that are becoming increasingly difficult to maintain. These systems, written in newer languages such as C and Java are fast becoming legacy and showing the same symptoms of modularity deterioration reminiscent of older legacy systems written in Cobol and PL1. However, this problem has not received much attention from the software modularization community. In this paper, we argue that the modularization needs of these relatively newer systems, which generally have some modular structure, is significantly different from the needs of older, mainly monolithic, legacy systems. We emphasize the need for incrementally improving modularity and propose a software refactoring based approach to solve this problem, thereby, uniting hitherto two disparate threads of research - software modularization and software refactoring. As part of this refactoring based modularity improvement approach, we identify a set of modularity smells and specify how to detect these smells in poorly modularized software systems. A validation of these modularity smells is carried out using several open source systems.