Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
PROUST: Knowledge-Based Program Understanding
IEEE Transactions on Software Engineering
Maintenance and porting of software by design recovery
The Institute of Electrical and Electronics Engineers, Inc on Conference on software maintenance--1985
Cognitive processes in program comprehension
Journal of Systems and Software
Computing with structured connectionist networks
Communications of the ACM
Wide-spectrum support for software reusability
Software reuse: emerging technology
Draco: a method for engineering reusable software systems
Software reusability: vol. 1, concepts and models
Systems Software Tools
IEEE Software
What Is Object-Oriented Programming?
IEEE Software
MicroScope: A Knowledge-Based Programming Environment
IEEE Software
Automated Program Recognition
Infinite detail and emulation in an ontologically minimized HCI
CHI '90 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Using object-oriented development for support prototyping
ICSE '90 Proceedings of the 12th international conference on Software engineering
ICSE '90 Proceedings of the 12th international conference on Software engineering
Expert problem solving strategies for program comprehension
CHI '91 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Automatic abstraction of real-time software and re-implementation in Ada
TRI-Ada '91 Proceedings of the conference on TRI-Ada '91: today's accomplishments; tomorrow's expectations
Supporting Software Designers with Integrated Domain-Oriented Design Environments
IEEE Transactions on Software Engineering - Special issue on knowledge representation and reasoning in software development
A measure for composite module cohesion
ICSE '92 Proceedings of the 14th international conference on Software engineering
Program Concept Recognition and Transformation
IEEE Transactions on Software Engineering - Special issue on software maintenance
Program understanding and the concept assignment problem
Communications of the ACM
RE-Analyzer: from source code to structured analysis
IBM Systems Journal
SSR '95 Proceedings of the 1995 Symposium on Software reusability
The spin-off illusion: reuse is not a by-product
SSR '95 Proceedings of the 1995 Symposium on Software reusability
A reengineering framework for small scale software
ACM SIGSOFT Software Engineering Notes
Working results on software re-engineering
ACM SIGSOFT Software Engineering Notes
Reverse engineering and system renovation—an annotated bibliography
ACM SIGSOFT Software Engineering Notes
Understanding natural programs using proper decomposition
ICSE '91 Proceedings of the 13th international conference on Software engineering
The concept assignment problem in program understanding
ICSE '93 Proceedings of the 15th international conference on Software Engineering
Design Recovery for Distributed Systems
IEEE Transactions on Software Engineering
Pattern-based reverse-engineering of design components
Proceedings of the 21st international conference on Software engineering
Assessing software libraries by browsing similar classes, functions and relationships
Proceedings of the 21st international conference on Software engineering
Query by outlines: a new paradigm to help manage programs
Proceedings of the 1999 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Using a document parser to automate software testing
SAC '94 Proceedings of the 1994 ACM symposium on Applied computing
Pattern-based design recovery with SPOOL
Advances in software engineering
Using textual redundancy to study The Mintainability of source
Advances in software engineering
FORM: A feature-oriented reuse method with domain-specific reference architectures
Annals of Software Engineering
The use of domain knowledge in program understanding
Annals of Software Engineering
Playing Detective: Reconstructing Software Architecture from Available Evidence
Automated Software Engineering
A Metric-Based Approach to Detect Abstract Data Types and State Encapsulations
Automated Software Engineering
On the Automatic Recovery of Style-Specific Architectural Relations in Software Systems
Automated Software Engineering
Reverse Engineering and Design Recovery: A Taxonomy
IEEE Software
Recognizing Design Decisions in Programs
IEEE Software
Recovering Traceability Links between Code and Documentation
IEEE Transactions on Software Engineering
Iterative Reengineering of Legacy Systems
IEEE Transactions on Software Engineering
Using textual redundancy to understand change
CASCON '95 Proceedings of the 1995 conference of the Centre for Advanced Studies on Collaborative research
Fast detection of communication patterns in distributed executions
CASCON '97 Proceedings of the 1997 conference of the Centre for Advanced Studies on Collaborative research
Navigating the textual redundancy web in legacy source
CASCON '96 Proceedings of the 1996 conference of the Centre for Advanced Studies on Collaborative research
Visualizing textual redundancy in legacy source
CASCON '94 Proceedings of the 1994 conference of the Centre for Advanced Studies on Collaborative research
Partial design recovery using dynamic programming
CASCON '94 Proceedings of the 1994 conference of the Centre for Advanced Studies on Collaborative research
Recognizers for extracting architectural features from source code
WCRE '95 Proceedings of the Second Working Conference on Reverse Engineering
Reverse engineering as a bridge to CASE
WCRE '95 Proceedings of the Second Working Conference on Reverse Engineering
Finding objects in procedural programs: an alternative approach
WCRE '95 Proceedings of the Second Working Conference on Reverse Engineering
Using Design Recovery Techniques to Transform Legacy Systems
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Iterative Reengineering of Legacy Functions
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Towards automation of checklist-based code-reviews
ISSRE '96 Proceedings of the The Seventh International Symposium on Software Reliability Engineering
Feed-forward and recurrent neural networks for source code informal information analysis
Journal of Software Maintenance: Research and Practice
Theories and techniques of program understanding
CASCON '91 Proceedings of the 1991 conference of the Centre for Advanced Studies on Collaborative research
Toward program representation and program understanding using process algebras
CASCON '92 Proceedings of the 1992 conference of the Centre for Advanced Studies on Collaborative research - Volume 1
Generating programming language-based pattern matchers
CASCON '93 Proceedings of the 1993 conference of the Centre for Advanced Studies on Collaborative research: software engineering - Volume 1
Software Process Representation and Analysis for Framework Instantiation
IEEE Transactions on Software Engineering
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
Automatic detection of incomplete instances of structural patterns in UML class diagrams
Nordic Journal of Computing
The TXL source transformation language
Science of Computer Programming - The fourth workshop on language descriptions, tools, and applications (LDTA'04)
Software reuse: survey and research directions
Journal of Management Information Systems - Special section: Managing virtual workplaces and teleworking with information technology
Semantic clustering: Identifying topics in source code
Information and Software Technology
New Frontiers of Reverse Engineering
FOSE '07 2007 Future of Software Engineering
ACM Transactions on Software Engineering and Methodology (TOSEM)
Exploring the neighborhood with dora to expedite software maintenance
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Automating discovery of software tuning parameters
Proceedings of the 2008 international workshop on Software engineering for adaptive and self-managing systems
Developing natural language-based program analyses and tools to expedite software maintenance
Companion of the 30th international conference on Software engineering
A theory of aspects as latent topics
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Beyond object-oriented technology: where current approaches fall short
Human-Computer Interaction
SEMANTIC METRICS: METRICS BASED ON SEMANTIC ASPECTS OF SOFTWARE
Applied Artificial Intelligence
Cerno: Light-weight tool support for semantic annotation of textual documents
Data & Knowledge Engineering
TXL - A Language for Programming Language Tools and Applications
Electronic Notes in Theoretical Computer Science (ENTCS)
A toolset for the reengineering of complex computer systems
ECBS'97 Proceedings of the 1997 international conference on Engineering of computer-based systems
Applying software analysis technology to lightweight semantic markup of document text
ICAPR'05 Proceedings of the Third international conference on Advances in Pattern Recognition - Volume Part I
Cool features and tough decisions: a comparison of variability modeling approaches
Proceedings of the Sixth International Workshop on Variability Modeling of Software-Intensive Systems
Process elements: components of software process architectures
SPW'05 Proceedings of the 2005 international conference on Unifying the Software Process Spectrum
Hi-index | 4.12 |
Software maintenance and harvesting reusable components from software both require that an analyst reconstruct the software's design. Design recovery recreates design abstractions from a combination of code, existing design documentation (if available), personal experience and general knowledge about problem and application domains. The author shows how to extend the automated assistance available to the software engineer for this process. He explains the concept of design recovery, proposes an architecture to implement the concept, illustrates how the architecture operates, describes progress toward implementing it, and compares this work with other similar work such as reverse engineering and program understanding. Much of the discussion is based on a model-based design recovery system called Desire.