Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
ICSE '94 Proceedings of the 16th international conference on Software engineering
Component software: beyond object-oriented programming
Component software: beyond object-oriented programming
AntiPatterns: refactoring software, architectures, and projects in crisis
AntiPatterns: refactoring software, architectures, and projects in crisis
Pattern-based reverse-engineering of design components
Proceedings of the 21st international conference on Software engineering
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Object Oriented Reengineering Patterns
Object Oriented Reengineering Patterns
Towards pattern-based design recovery
Proceedings of the 24th International Conference on Software Engineering
Reverse Engineering and Design Recovery: A Taxonomy
IEEE Software
Atomic Architectural Component Recovery for Program Understanding and Evolution
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
Software Architecture Recovery based on Pattern Matching
ICSM '03 Proceedings of the International Conference on Software Maintenance
Architecture-Aware Adaptive Clustering of OO Systems
CSMR '04 Proceedings of the Eighth Euromicro Working Conference on Software Maintenance and Reengineering (CSMR'04)
Automated Design Flaw Correction in Object-Oriented Systems
CSMR '04 Proceedings of the Eighth Euromicro Working Conference on Software Maintenance and Reengineering (CSMR'04)
Detecting higher-level similarity patterns in programs
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Product Metrics for Automatic Identification of "Bad Smell" Design Problems in Java Source-Code
METRICS '05 Proceedings of the 11th IEEE International Software Metrics Symposium
Systematic Gene Function Prediction Using a Fuzzy Nearest-Cluster Method on Gene Expression Data
IMSCCS '06 Proceedings of the First International Multi-Symposiums on Computer and Computational Sciences - Volume 1 (IMSCCS'06) - Volume 01
CoCoME - The Common Component Modeling Example
The Common Component Modeling Example
The Common Component Modeling Example: Comparing Software Component Models
The Common Component Modeling Example: Comparing Software Component Models
Journal of Systems and Software
Software Architecture: Foundations, Theory, and Practice
Software Architecture: Foundations, Theory, and Practice
Reverse Engineering Software-Models of Component-Based Systems
CSMR '08 Proceedings of the 2008 12th European Conference on Software Maintenance and Reengineering
Software Architecture Reconstruction: A Process-Oriented Taxonomy
IEEE Transactions on Software Engineering
DECOR: A Method for the Specification and Detection of Code and Design Smells
IEEE Transactions on Software Engineering
Reverse engineering with the reclipse tool suite
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
A tool for design pattern detection and software architecture reconstruction
Information Sciences: an International Journal
Reverse Engineering Component Models for Quality Predictions
CSMR '10 Proceedings of the 2010 14th European Conference on Software Maintenance and Reengineering
Proceedings of the 8th international ACM SIGSOFT conference on Quality of Software Architectures
Hi-index | 0.00 |
During the software lifecycle, software systems have to be continuously maintained to counteract architectural deterioration and retain their software quality. In order to maintain a software it has to be understood first which can be supported by (semi-)automatic reverse engineering approaches. Reverse engineering is the analysis of software for the purpose of recovering its design documentation, e.g., in form of the conceptual architecture. Today, the most prevalent reverse engineering approaches are (1) the clustering based approach which groups the elements of a given software system based on metric values in order to provide an overview of the system and (2) the pattern-based approach which tries to detect pre-defined patterns in the software which can give insight about the original developers' intentions. In this paper, we present an approach towards combining these techniques: we show how the detection and removal of certain bad smells in a software system can improve the results of a clustering-based analysis. We propose to integrate this combination of reverse engineering approaches into a reengineering process for component-based software systems.