Towards a metrics suite for object oriented design
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Object-oriented metrics that predict maintainability
Journal of Systems and Software - Special issue on object-oriented software
A Validation of Object-Oriented Design Metrics as Quality Indicators
IEEE Transactions on Software Engineering
CURE: an efficient clustering algorithm for large databases
SIGMOD '98 Proceedings of the 1998 ACM SIGMOD international conference on Management of data
Effective distribution of object-oriented applications
Communications of the ACM
A Unified Framework for Coupling Measurement in Object-Oriented Systems
IEEE Transactions on Software Engineering
OO distributed programming is not distributed OO programming
Communications of the ACM
Enhancing design reusability by clustering specifications
SAC '96 Proceedings of the 1996 ACM symposium on Applied Computing
A Unified Framework for Cohesion Measurement in Object-OrientedSystems
Empirical Software Engineering
Data Mining: An Industrial Research Perspective
IEEE Computational Science & Engineering
Legacy Information Systems: Issues and Directions
IEEE Software
A Metrics Suite for Object Oriented Design
IEEE Transactions on Software Engineering
A Methodology for Migration of Legacy Applications to Distributed Object Management
EDOC '97 Proceedings of the 1st International Conference on Enterprise Distributed Object Computing
Migrating Legacy Systems towards Object-Oriented Platforms
ICSM '97 Proceedings of the International Conference on Software Maintenance
Exploiting Design Heuristics for Automatic Problem Detection
ECOOP '98 Workshop ion on Object-Oriented Technology
Metrics-Based Problem Detection in Object-Oriented Legacy Systems Using Audit-Reengineer
Proceedings of the Workshop on Object-Oriented Technology
Reengineering legacy systems for distributed environments
Journal of Systems and Software
Architectural Design Recovery Using Data Mining Techniques
CSMR '00 Proceedings of the Conference on Software Maintenance and Reengineering
Software Architectural Specification for Optimal Object Distribution
SCCC '98 Proceedings of the XVIII International Conference of the Chilean Computer Science Society
Finding Reusable Software Components in Large Systems
WCRE '96 Proceedings of the 3rd Working Conference on Reverse Engineering (WCRE '96)
Encapsulating legacy software for use in client/server systems
WCRE '96 Proceedings of the 3rd Working Conference on Reverse Engineering (WCRE '96)
Extracting Reusable Modules from Legacy Code: considering the issues of module granularity
WCRE '96 Proceedings of the 3rd Working Conference on Reverse Engineering (WCRE '96)
The Implications of Non-functional Requirements for the Reengineering of Legacy Code
WCRE '97 Proceedings of the Fourth Working Conference on Reverse Engineering (WCRE '97)
Evaluating Architectural Extractors
WCRE '98 Proceedings of the Working Conference on Reverse Engineering (WCRE'98)
Type-Check Elimination: Two Object-Oriented Reengineering Patterns
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
A Hybrid Reverse Engineering Approach Combining Metrics and Program Visualization
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
Experiments with Clustering as a Software Remodularization Method
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
A Tool for Securely Integrating Legacy Systems into a Distributed Environment
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
Active Files: A Mechanism for Integrating Legacy Applications into Distributed Systems
ICDCS '00 Proceedings of the The 20th International Conference on Distributed Computing Systems ( ICDCS 2000)
Identification of Data Cohesive Subsystems Using Data Mining Techniques
ICSM '98 Proceedings of the International Conference on Software Maintenance
A Case Study in Software Wrapping
ICSM '98 Proceedings of the International Conference on Software Maintenance
An Experiment in Identifying Persistent Objects in Large Systems
ICSM '98 Proceedings of the International Conference on Software Maintenance
Evolutionary Migration of Legacy Systems to an Object-Based Distributed Environment
ICSM '99 Proceedings of the IEEE 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
Leveraging Software Reengineering Systems for Heterogeneous Distributed Computing Environments
ICSM '00 Proceedings of the International Conference on Software Maintenance (ICSM'00)
Design recovery and data mining: a methodology that identifies data-cohesive subsystems based on mining association rules
Reengineering legacy systems for distributed environments
Journal of Systems and Software
Reengineering standalone C++ legacy systems into the J2EE partition distributed environment
Proceedings of the 28th international conference on Software engineering
Software—Practice & Experience
Developing legacy system migration methods and tools for technology transfer
Software—Practice & Experience
Journal of Systems and Software
Automated translation of Java source code to Eiffel
TOOLS'11 Proceedings of the 49th international conference on Objects, models, components, patterns
Reducing the class coupling of legacy code by a metrics-based relocation of class members
CEE-SET'09 Proceedings of the 4th IFIP TC 2 Central and East European conference on Advances in Software Engineering Techniques
Hi-index | 0.00 |
In the last decade, we have seen an increasing use of both the object-oriented paradigm and distributed systems. As a result, there is increasing interest in migrating and reengineering legacy systems to these new hardware technologies and software development paradigms. We define a reengineering environment that assists with the migration of legacy systems to distributed object environments. The reengineering environment includes the methodology and an integrated set of tools that support the implementation of the methodology. The methodology consists of multiple phases. First, we use reverse engineering techniques for program comprehension and design recovery. We then decompose the system into a hierarchy of subsystems by defining relationships between the entities of the underlying paradigm of the legacy system. The decomposition is driven by data mining, software metrics, and clustering techniques. Next, if the underlying paradigm of the legacy system is not object-based, we perform object-based adaptations on the subsystems. We then create components by wrapping objects and defining an interface. Finally, we allocate components to different sites by specifying the requirements of the system and characteristics of the network as an integer-programming model that minimizes the remote communication. We use middleware technologies for the implementation of the distributed object system.