eXtreme Programming at universities: an educational perspective
Proceedings of the 25th International Conference on Software Engineering
Polymetric Views-A Lightweight Visual Approach to Reverse Engineering
IEEE Transactions on Software Engineering
A Survey of Software Refactoring
IEEE Transactions on Software Engineering
Object-Oriented Reengineering Patterns
Proceedings of the 26th International Conference on Software Engineering
Evaluating Clone Detection Techniques from a Refactoring Perspective
Proceedings of the 19th IEEE international conference on Automated software engineering
eXtreme programming: helpful or harmful in educating undergraduates?
Journal of Systems and Software - Special issue: The new context for software engineering education and training
The Class Blueprint: Visually Supporting the Understanding of Classes
IEEE Transactions on Software Engineering
The story of moose: an agile reengineering environment
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Improving evolvability through refactoring
MSR '05 Proceedings of the 2005 international workshop on Mining software repositories
How do APIs evolve? A story of refactoring: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice - IEEE International Conference on Software Maintenance (ICSM2005)
Cataloging design abstractions
Proceedings of the 2006 international workshop on Role of abstraction in software engineering
Refactorings for Fortran and high-performance computing
Proceedings of the second international workshop on Software engineering for high performance computing system applications
The composition refactoring triangle (CRT) practical toolkit: from spaghetti to lasagna
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Proceedings of the 6th international conference on Aspect-oriented software development
Software Evolution from the Field
Electronic Notes in Theoretical Computer Science (ENTCS)
A case study in re-engineering to enforce architectural control flow and data sharing
Journal of Systems and Software
Semantic clustering: Identifying topics in source code
Information and Software Technology
Optimizing data structures at the modeling level in embedded multimedia
Journal of Systems Architecture: the EUROMICRO Journal
On The Detection of Test Smells: A Metrics-Based Approach for General Fixture and Eager Test
IEEE Transactions on Software Engineering
Mining and classification of diverse crosscutting concerns
Proceedings of the 2008 AOSD workshop on Linking aspect technology and evolution
Automatic identification of key classes in a software system using webmining techniques
Journal of Software Maintenance and Evolution: Research and Practice
Towards High Coherent Requirement Implementation in Evolving Global Cooperative Software Design
Computer Supported Cooperative Work in Design IV
Journal of Systems and Software
Using machine learning to refine Category-Partition test specifications and test suites
Information and Software Technology
Analyzing the co-evolution of comments and source code
Software Quality Control
Executing code in the past: efficient in-memory object graph versioning
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Delving source code with formal concept analysis
Computer Languages, Systems and Structures
The evolution and impact of code smells: A case study of two open source systems
ESEM '09 Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement
Software System Understanding via Architectural Views Extraction According to Multiple Viewpoints
OTM '09 Proceedings of the Confederated International Workshops and Posters on On the Move to Meaningful Internet Systems: ADI, CAMS, EI2N, ISDE, IWSSA, MONET, OnToContent, ODIS, ORM, OTM Academy, SWWS, SEMELS, Beyond SAWSDL, and COMBEK 2009
Identification of refactoring opportunities introducing polymorphism
Journal of Systems and Software
Object-oriented reengineering: report on the workshop WOOR'07 at ECOOP 2007 10th anniversary edition
ECOOP'07 Proceedings of the 2007 conference on Object-oriented technology
Generating a catalog of unanticipated schemas in class hierarchies using Formal Concept Analysis
Information and Software Technology
Redocumentation of a legacy banking system: an experience report
Proceedings of the Joint ERCIM Workshop on Software Evolution (EVOL) and International Workshop on Principles of Software Evolution (IWPSE)
DNCOCO'10 Proceedings of the 9th WSEAS international conference on Data networks, communications, computers
Analyzing software process models with AVISPA
Proceedings of the 2011 International Conference on Software and Systems Process
Combining clustering and pattern detection for the reengineering of component-based software systems
Proceedings of the joint ACM SIGSOFT conference -- QoSA and ACM SIGSOFT symposium -- ISARCS on Quality of software architectures -- QoSA and architecting critical systems -- ISARCS
A scalable goal-oriented approach to software variability recovery
Proceedings of the 15th International Software Product Line Conference, Volume 2
Problem-solution mapping for forward and reengineering on architectural level
Proceedings of the 12th International Workshop on Principles of Software Evolution and the 7th annual ERCIM Workshop on Software Evolution
How to "make a bridge to the new town" using OntoAccess
ISWC'11 Proceedings of the 10th international conference on The semantic web - Volume Part II
Fifth international workshop on object-oriented reengineering
ECOOP'04 Proceedings of the 2004 international conference on Object-Oriented Technology
A model-driven process for the modernization of component-based systems
Science of Computer Programming
How design patterns affect application performance – a case of a multi-tier J2EE application
FIDJI'04 Proceedings of the 4th international conference on Scientific Engineering of Distributed Java Applications
Object-oriented reengineering patterns — an overview
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Lessons learned in applying formal concept analysis to reverse engineering
ICFCA'05 Proceedings of the Third international conference on Formal Concept Analysis
Agile software assessment with Moose
ACM SIGSOFT Software Engineering Notes
Relation of code clones and change couplings
FASE'06 Proceedings of the 9th international conference on Fundamental Approaches to Software Engineering
Identification and application of Extract Class refactorings in object-oriented systems
Journal of Systems and Software
Refactoring abstract state machine models
ABZ'12 Proceedings of the Third international conference on Abstract State Machines, Alloy, B, VDM, and Z
A reuse-oriented development process for component-based robotic systems
SIMPAR'12 Proceedings of the Third international conference on Simulation, Modeling, and Programming for Autonomous Robots
Dynamic profiling-based approach to identifying cost-effective refactorings
Information and Software Technology
Assessing technical debt by identifying design flaws in software systems
IBM Journal of Research and Development
oZone: Layer identification in the presence of cyclic dependencies
Science of Computer Programming
Improving software modularization via automated analysis of latent topics and dependencies
ACM Transactions on Software Engineering and Methodology (TOSEM)
Hi-index | 0.00 |
From the Publisher:The documentation is missing or obsolete, and the original developers have departed. Your team has limited understanding of the system, and unit tests are missing for many, if not all, of the components. When you fix a bug in one place, another bug pops up somewhere else in the system. Long rebuild times make any change difficult. All of these are signs of software that is close to the breaking point. Many systems can be upgraded or simply thrown away if they no longer serve their purpose. Legacy software, however, is crucial for operations and needs to be continually available and upgraded. How can you reduce the complexity of a legacy system sufficiently so that it can continue to be used and adapted at acceptable cost? Based on the authors' industrial experiences, this book is a guide on how to reverse engineer legacy systems to understand their problems, and then reengineer those systems to meet new demands. Patterns are used to clarify and explain the process of understanding large code bases, hence transforming them to meet new requirements. The key insight is that the right design and organization of your system is not something that can be evident from the initial requirements alone, but rather as a consequence of understanding how these requirements evolve.