Inter-Module Renaming and Reorganizing: Examples of Program Manipulation in-the-Large, Manuel M. Ammann and Robert D. Cameron
@InProceedings{ ammann.cameron:inter-module,
author = {Manuel M. Ammann and Robert D. Cameron},
title = {Inter-Module Renaming and Reorganizing: Examples of
Program Manipulation in-the-Large},
pages = {354-361},
booktitle = {Proceedings of the International Conference on Software
Maintenance ~1994},
year = {1994},
publisher = {IEEE Computer Society Press},
month = sep,
abstract = {Maintaining software often requires repetetive and
errorprone manipulations of source code, particularly when
changes must be propagated across many modules. Practical
program manipulation tools can alleviate the problems by
automatically making changes throughout a program. Such
tools can become even more valuable when they allow for
manipulation in-the-large: the systematic modification of
all the modules that comprise a software project. We
demonstrate this concept with two prototype tools. An
inter-module renamer locates and renames all and only
appropriate instances of an identifier throughout a
project, ensuring that no conflicts arise. An inter-module
reorganizer automates the task of moving program entities
between modules such that import/export declarations are
properly updated for modules dependent on the moved entity
and for items on which the moved entity is dependent. Our
tools are designed for modern block-structured and
object-oriented languages such as Modula-3.},
class = {Alteration, Re-Design, Inter-module_Reorganization}
}
PAT: A Retargetable Parallelizing Tool for Fortran, Bill Appelbe and Kevin Smith
@InProceedings{ appelbe.smith:pat,
author = {Bill Appelbe and Kevin Smith},
title = {PAT: A Retargetable Parallelizing Tool for Fortran},
booktitle = {Proceedings of the International Conference on Software
Maintenance ~1990},
year = {1990},
pages = {357-359},
organization = {IEEE},
publisher = {IEEE Computer Society Press},
abstract = {PAT (Parallelization Assistant Tool) is retargetable tool
that converts sequential Fortran to Parallel Fortran, for
IBM, Cray, and Sequent multiprocessors. It runs on a range
of UNIX workstations, using X windows to display source
code, program analysis and tranformation. PAT is intended
to help programmers convert their program from sequential
to parallel code, while simultaneously educating them in
exploiting and understanding applications level and
architectural parallelism. PAT has been installed at a
range of sites for over a year. This paper reports upon
experiences with PAT, limitations of it's approach, future
development and use of PAT's analysis for other tools.},
class = {Alteration, Re-Design,
From_Sequential_to_Concurrent_Execution}
}
Exploiting design heuristics for automatic problem detection, Holger B\ar and Oliver Ciupke
@InProceedings{ bar.ciupke:exploiting*1,
author = {Holger B{\"a}r and Oliver Ciupke},
editor = {Serge Demeyer and Jan Bosch},
title = {Exploiting design heuristics for automatic problem
detection},
booktitle = {Object-Oriented Technology (ECOOP'98 Workshop Reader)},
series = {Lecture Notes in Computer Science},
volume = {1543},
publisher = {Springer-Verlag},
month = jul,
year = {1998},
class = {Alteration, Re-Design, Problem_Detection}
}
On the Migration of Relational Schemas and Data to Object-Oriented Database Systems, Andreas Behm and Andreas Geppert and Klaus R. Dittrich
Available as
compressed postscript.
@InProceedings{ behm.geppert.ea:on,
author = {Andreas Behm and Andreas Geppert and Klaus R. Dittrich},
title = {On the Migration of Relational Schemas and Data to
Object-Oriented Database Systems},
booktitle = {Proc. 5th International Conference on Re-Technologies for
Information Systems},
publisher = {Oesterreichische Computer Gesellschaft},
year = {1997},
editor = {J. Györkös and M. Krisper and H.C. Mayr},
pages = {13-33},
address = {Klagenfurt, Austria},
month = {December},
url = {ftp://ftp.ifi.unizh.ch/pub/techreports/TR-97/ifi-97.10.ps.gz}
,
abstract = {Many organizations have collected large volumes of data
which are often stored in relational databases. Now that
object-oriented database management systems (OODBMSs) are
becoming mature, many organizations also want to benefit
from object-oriented technology in general and OODBMSs in
particular. One general approach to migrate to object
technology is to divide the process into two phases, where
the first one transforms the relational into an
object-oriented schema and the second one migrates the data
into the object-oriented database system. Our approach
differs from comparable approaches because it provides
assistance in both phases, while other work considers only
the first phase. In the first phase we use transformation
rules to construct an object-oriented schema which is
semantically equivalent to the relational schema. In the
second phase, the schema transformation information is used
to generate programs that migrate the relational data into
an object-oriented database. The concepts of both, schema
transformation and data migration are implemented using O2
as the OODBMS.},
keywords = {OODBMS, Migration, Schema Transformation, Reengineering},
class = {Database_Migration Re-Design Alteration }
}
Scenarios for the Identification of Objects in Legacy Systems, H. Bosma and E. Fielt and T. Wiggerts
@InProceedings{ bosma.fielt.ea:scenarios,
author = {H. Bosma and E. Fielt and T. Wiggerts},
title = {Scenarios for the Identification of Objects in Legacy
Systems},
booktitle = {Fourth Working Conference on Reverse Engineering},
publisher = {IEEE Computer Society},
year = {1997},
editor = {I. Baxter and A. Quilici and C. Verhoef},
pages = {24-32},
month = {October},
abstract = {In this article we propose an incremental approach to the
identification of (business) objects in legacy
applications. In this approach different object
identification scenarios can be applied alternately. Three
different strategies are presented: function driven, data
driven and object driven objectification. We discuss these
scenarions and report on experiences gained from applying
them to a subsystem of a real-life mortgage system. We also
discuss related work.},
keywords = {legacy, objects, identification, extraction, scenarios,
experiences},
class = {From_Procedural_to_Object-Oriented Re-Design Alteration }
}
Migrating Legacy Systems --- Gateways, Interfaces \& The Incremental Approach, M.L. Brodie and M. Stonebraker
@Book{ brodie.stonebraker:migrating,
author = {M.L. Brodie and M. Stonebraker},
title = {Migrating Legacy Systems --- Gateways, Interfaces \& The
Incremental Approach},
publisher = {Morgan Kaufmann Publishers, Inc.},
year = {1995},
note = {This book gives a detailed description of strategies for
migrating legacy systems. It advocates an incremental
approach for the migration instead of doing it in {\em one}
step. The legacy system is analyzed and the components to
be updated are identified. The legacy system and the new
system work in parallel and are connected via gateways.
Migrated components are removed from the legacy system and
added to the new system. The crucial steps in this process
are establishing the right ordering of the components to be
migrated and the use of powerful gateways. It is preferable
not to develop these gateways yourself but to obtain them
from third party software producers. A number of
case-studies is presented and these case-studies
demonstrate that these gateways are crucial even if all the
code of the legacy system becomes obsolete. The book
concludes with an extensive list of third party software
producers which produce gateways},
class = {Reengineering_in_General, Experiences, Alteration,
Re-Design}
}
Two Module-Factoring Techniques, F.W. Calliss and B.J. Cornelius
@Article{ calliss.cornelius:two,
author = {F.W. Calliss and B.J. Cornelius},
title = {Two Module-Factoring Techniques},
journal = {Journal of Software Maintenance: Research and Practice},
year = {1989},
volume = {1},
pages = {81-89},
abstract = {Module factoring is splitting a module into smaller
modules, each of which performs a distinct task. They
describe two techniques: one based on type families, one
based on imported entities.},
class = {Alteration, Re-Design, Inter-module_Reorganization }
}
Criteria for software modularization, D. N. Card and G. T. Page and F. E. McGarry
@InProceedings{ card.page.ea:criteria,
author = {D. N. Card and G. T. Page and F. E. McGarry},
title = {Criteria for software modularization},
pages = {372--377},
booktitle = {Proceedings of the 8th International Conference on
Software Engineering },
year = {1985},
publisher = {IEEE Computer Society Press},
month = aug,
class = {Alteration, Re-Design, Inter-module_Reorganization}
}
Software restructuring by enforcing localization and information hiding, W Chu and S. Patel
@InProceedings{ chu.patel:software*1,
title = {Software restructuring by enforcing localization and
information hiding},
author = {W Chu and S. Patel},
pages = {165--172},
booktitle = {SM92},
year = {1992},
note = { Starting with information describing function calls and
global variable usage, this paper presents a clustering
technique that generates Ada-like packages describing the
structure of a given software system. Has been applied to
several existing systems implemented in C},
class = {Alteration, Re-Design, Inter-module_Reorganization}
}
Automatic Detection of Design Problems in Object-Oriented Reengineering, Oliver Ciupke
Available as
compressed postscript.
@InProceedings{ ciupke:automatic,
author = {Oliver Ciupke},
title = {Automatic {D}etection of {D}esign {P}roblems in
{O}bject-{O}riented {R}eengineering},
year = {1999},
month = aug,
booktitle = {Technology of Object-Oriented Languages and Systems -
TOOLS 30},
editor = {Donald Firesmith and Richard Riehle and Gilda Pour and
Bertrand Meyer},
publisher = {IEEE Computer Society},
address = {Santa Barbara, CA},
pages = {18--32},
isbn = {0-7695-0278-4},
url = {http://www.fzi.de/prost/people/ciupke/problem-detect.ps.gz}
,
keywords = {Object-oriented reengineering, design problems, tool
support for reengineering, model capture, problem
detection},
abstract = {The evolution of software systems over many years often
leads to unnecessarily complex and inflexible designs which
in turn lead to a huge amount of effort for enhancements
and maintenance. Thus, the reengineering of object-oriented
software becomes more and more important as the number, age
and size of such legacy systems grow. A key issue during
reengineering is the identification and location of design
problems which prevent the efficient further development of
a system. Up to now this problem area has not been
sufficiently supported, either by methods, or by tools. In
this paper, we present a technique for analyzing legacy
code, specifying frequent design problems as queries and
locating the occurrences of these problems in a model
derived from source code. We present our experiences with a
tool set which we implemented to support this task by
automatically analyzing a given system and detecting the
specified problems. We applied our tools to check
violations of a number of well-known design rules in
existing source code taken from several case studies, both
from industrial and academic fields. These experiments
showed that the task of problem detection in reengineering
can be automated to a large degree, and that the technique
presented can be efficiently applied to real-world code.},
class = {Alteration, Re-Design, Problem_Detection}
}
Tool Support for Automatic Problem Detection, Oliver Ciupke
@TechReport{ ciupke:tool,
author = {Oliver Ciupke},
title = {Tool Support for Automatic Problem Detection},
institution = {Forschungszentrum Informatik},
year = {1998},
type = {FAMOOS Achievement Report},
number = {A 2.7.1},
month = sep,
id = {impctut-ar271, ar271fzi},
path = {/fzi/prost/Projects/FAMOOS/doc/achievements/impctut-a271},
class = {Alteration, Re-Design, Problem_Detection}
}
CUI to GUI Migration: Static Analysis of Character-Based Panels, Ingo Claßen and Klaus Hennig and Ingo Mohr and Michael Schulz
@InProceedings{ claßen.hennig.ea:cui,
author = {Ingo Claßen and Klaus Hennig and Ingo Mohr and Michael
Schulz},
title = {CUI to GUI Migration: Static Analysis of Character-Based
Panels},
booktitle = {1st European Conference on Software Maintenance and
Reengineering 97},
month = mar,
year = {1997},
publisher = {IEEE Computer Society Press},
abstract = {This paper reports on progress in the construction of an
integrated tool environment for the migration of
character-based panels of mainframe applications into
graphical user interfaces. It presents our approach for
static analysis of character-based panels that is based on
the identification of dialog entities in panels using
generalized descriptions of panel areas and describes a
tool supporting the identification process. The goal of our
approach is to increase the level of automation in the
migration process compared to existing migration tools. },
class = {Alteration, Re-Design, User_Interface_Migration}
}
The Retrospective Introduction of Abstraction into Software, A. Colbrook and C. Smythe
@InProceedings{ colbrook.smythe:retrospective,
author = {A. Colbrook and C. Smythe},
title = {The Retrospective Introduction of Abstraction into
Software},
booktitle = {Proceedings of the International Conference on Software
Maintenance ~1989},
year = {1989},
organization = {IEEE},
publisher = {IEEE Computer Society Press},
pages = {166-173},
abstract = {The re-engineering of program control flow schemas,
although a widely advocated preventive maintenance
technique, fails to address the underlying problems of
software which contains poorly structured data.
A technique is proposed which facilitates the retrospective
introduction of abstract data types into existing systems
and the corresponding software tool to aid this process is
presented. The resulting source code is structured in terms
of both data and control flow, thereby significantly
promoting the ease of maintenance. },
class = {Alteration, Re-Design,
Introduction_of_Abstract_Data_Types_and_Objects}
}
Olin Bray and Michael Hess, Reengineering a Configuration-Management System
@Article{ configuration-management-system:olin,
author = {Reengineering a Configuration-Management System},
title = {Olin Bray and Michael Hess},
journal = {IEEE Software},
year = {1995},
volume = {12},
number = {1},
pages = {55-63},
month = {January},
class = {Reengineering_in_General, Experiences, Alteration,
Re-Design, From_Mainframe_to_Client-Server_Architecture}
}
Experience with User Interface Re-engineering: Transferring DOS Panels to Windows, László Csaba
@InProceedings{ csaba:experience,
author = {László Csaba},
title = {Experience with User Interface Re-engineering:
Transferring DOS Panels to Windows},
booktitle = {1st European Conference on Software Maintenance and
Reengineering 97},
month = mar,
year = {1997},
publisher = {IEEE Computer Society Press},
abstract = {This article describes a method of user interface
reengineering used in a project of turning a large
character based archaic DOS application into a modern
Windows application. The program was originally written for
mainframe environment in COBOL language. During the
conversion the working core had to be left unchanged. In
the applied method the original program - recompiled for
Windows with the I/O calls replaced - is run and remote
controlled through a communications module by the new
wrapping application. The new program, the Artificial User
Program was developed with S-Prog, a highly effective
visual tool. Some parts of the source were generated by
Word Basic macros. },
class = {Alteration, Re-Design, User_Interface_Migration},
keywords = {DOS, Windows, User Interface Reengineering, Remote
Controlling, Artificial User Program, S-Prog, Word Basic}
}
Identifying Objects using Cluster and Concept Analysis, Deursen, A. van and T. Kuipers
Available as
split.pdf.
@InProceedings{ deursen.kuipers:identifying,
author = {Deursen, A. van and T. Kuipers},
title = {Identifying Objects using Cluster and Concept Analysis},
booktitle = {21st International Conference on Software Engineering,
ICSE-99},
publisher = {ACM},
year = {1999},
pages = {246--255},
url = {http://www.cwi.nl/~arie/papers/split.pdf},
abstract = {Many approaches to support (semi-automatic) identification
of objects in legacy code take the data structures as
starting point for candidate classes. Unfortunately, legacy
data structures tend to grow over time, and may contain
many unrelated fields at the time of migration. We propose
a method for identifying objects by semi-automatically
restructuring the legacy data structures. Issues involved
include the selection of record fields of interest, the
identification of procedures actually dealing with such
fields, and the construction of coherent groups of fields
and procedures into candidate classes. We explore the use
of cluster and concept analysis for the purpose of object
identification, and we illustrate their effect on a 100,000
LOC Cobol system. Furthermore, we use these results to
contrast clustering with concept analysis techniques.},
keywords = {remodularization, cluster analysis, concept analysis,
class diagram},
class = {Introduction_of_Abstract_Data_Types
Inter-module_Reorganizatio
From_Procedural_to_Object-Oriented Reverse_Design Re-Design
System_Modularization Recovery_of_Software_Architecture
Alteration Software_Reverse_Engineering }
}
Reengineering Deteriorated Object-oriented Code, Richard Fanta and Vaclav Rajlich
@Unpublished{ fanta.rajlich:reengineering,
author = {Richard Fanta and Vaclav Rajlich},
title = {Reengineering Deteriorated Object-oriented Code},
year = {1998},
class = {Alteration, Re-Design,
Inhertiance_Hierarchies_Restructuring}
}
Reengineering Class Hierarchies using Concept Analysis, G. Snelting, and F. Tip
@InProceedings{ g-snelting.tip:reengineering,
author = {G. Snelting, and F. Tip},
title = {Reengineering Class Hierarchies using Concept Analysis},
booktitle = {Proc. SIGSOFT Symposium on Foundations of Software
Engineering},
publisher = {ACM},
year = {1998},
key = {Concept Analysis},
class = {Inhertiance_Hierarchies_Restructuring
Software_Reverse_Engineering Static_Data_Flow_Analysis
Reverse_Design Re-Design Static_Control_Flow_Analysis
Fundamental_Methods_in_Reverse_Design Alteration
Static_Analysis }
}
pRETS: A Parallel Reverse-Engineering Tool Set For the Adaption of Sequential Programs, Bruce Gifford and Warren Harrison
@InProceedings{ gifford.harrison:prets,
author = {Bruce Gifford and Warren Harrison},
title = {{pRETS}: A Parallel Reverse-Engineering Tool Set For the
Adaption of Sequential Programs},
booktitle = {Proceedings of the International Conference on Software
Maintenance ~1990},
year = {1990},
pages = {344-346},
organization = {IEEE},
publisher = {IEEE Computer Society Press},
class = {Alteration, Re-Design,
From_Sequential_to_Concurrent_Execution}
}
Design Recovery of Legacy Database Applications based on Possibilistic Reasoning, Jens H. Jahnke and Melanie Heitbreder
Available as
hypertext.
@InProceedings{ jahnke.heitbreder:design,
author = {Jens H. Jahnke and Melanie Heitbreder},
title = {Design Recovery of Legacy Database Applications based on
Possibilistic Reasoning},
booktitle = {Proceedings of 7th IEEE International Conference of Fuzzy
Systems (FUZZ'98)},
publisher = {IEEE Computer Society},
year = {1998},
month = {May},
url = {http://www.uni-paderborn.de/cs/jahnke.html},
abstract = {Industrial database applications often evolve over three
or more generations of developers, cover several hundred
thousand lines of code and maintain a vast amount of data.
A rapidly growing number of companies face the problem that
they have to adapt or modernise such existing legacy
database applications (LDA) in order to keep up with
emerging requirements. The documentation of such LDAs is
often obsolete as they have been developed over several
generations of programmers. This paper presents an
application of possibilistic reasoning to infer the
semantic information that is necessary to recover the
conceptual design of an LDA. A dedicated, graphical
language (called Generic Fuzzy Reasoning Nets) is
introduced to specify and customise the applied reverse
engineering process. The actual reasoning process is
performed by a nonmonotonic inference engine based on fuzzy
petri nets which supports lazy execution of expensive
analysis operations.},
keywords = {data reverse engineering, expert system, uncertain
reasoning, legacy database},
class = {Extracting_Business_Rules Software_Reverse_Engineering
Database_Migration Reverse_Design Re-Design
Process_Models_for_Reverse_Design Alteration }
}
A Design Environment for Migrating Relational to Object-Oriented Database Systems, J.-H. Jahnke and W. Schäfer and A. Zündorf
@InProceedings{ jahnke.schäfer.ea:design,
author = {J.-H. Jahnke and W. Schäfer and A. Zündorf},
title = {A Design Environment for Migrating Relational to
Object-Oriented Database Systems},
booktitle = {Proceedings of the International Conference on Software
Maintenance ~1996},
publisher = {IEEE Computer Society Press},
year = {1996},
abstract = {Object-oriented technology has become mature enough to
satisfy many new requirements coming from areas like
computer-aided design (CAD) computer-integrated
manufacturing (CIM) or software engineering (SE). However a
competetive information management infrastructure often
demands to merge data from CAD- CIM- or SE-systems with
business data stored in a relational system. In addition
complex dependencies between those data stored in the
different systems might exist and should be maintained. One
approach for seamless integration of object-oriented and
relational systems is to migrate the data (and the
corresponding schema) from a relational to an
object-oriented system. In this paper we describe an
integrated design environment that supports the migration
process and overcomes major drawbacks of comparable
approaches.},
class = {Alteration, Re-Design, Database_Migration }
}
Generic Fuzzy Reasoning Nets as a Basis for Reverse Engineering Relational Database Applications, J.-H. Jahnke and W. Schäfer and A. Zündorf
@Book{ jahnke.schäfer.ea:generic,
author = {J.-H. Jahnke and W. Schäfer and A. Zündorf},
title = {Generic Fuzzy Reasoning Nets as a Basis for Reverse
Engineering Relational Database Applications},
booktitle = {Proceedings of the European Conference on Software
Engineering 1997},
publisher = {Springer Verlag},
year = {1997},
month = {September},
abstract = {Object-oriented technology has become mature enough to
satisfy many new requirements coming from areas like
computer-aided design (CAD) computer-integrated
manufacturing (CIM) or software engineering (SE). However a
competitive information management infrastructure often
demands to merge data from CAD- CIM- or SE-systems with
business data stored in a relational system. One approach
for seamless integration of object- oriented and relational
systems is to migrate from a relational to an object-
oriented system. The first step in this migration process
is reverse engineering of the legacy database. In this
paper we propose a new graphical and executable language
called Generic Fuzzy Reasoning Nets for modelling and
applying reverse engineering knowledge. In particular this
language enables to define and analyse fuzzy knowledge
which is usually all what is available when an existing
database schema has to be reverse engineered into an
object-oriented one. The analysis process is based on
executing a fuzzy petri net which is parameterized with the
fuzzy knowledge about a concrete data base application.},
class = {Alteration, Re-Design, Database_Migration }
}
Rewriting Poor Design Patterns by Good Design Patterns, Jens H. Jahnke and Albert Zuendorf
Available as
hypertext.
@InProceedings{ jahnke.zuendorf:rewriting,
author = {Jens H. Jahnke and Albert Zuendorf},
title = {Rewriting Poor Design Patterns by Good Design Patterns},
booktitle = {Proc. of ESEC:FSE '97 Workshop on Object-Oriented
Reengineering.},
publisher = {Technical Report TUV-1841-97-10 Technical University of
Vienna Information Systems Institute Argentinierstrasse
8/184-1 A-1040 Wien Austria. },
year = {1997},
editor = {S. Demeyer and H. Gall},
url = {http://www.uni-paderborn.de/fachbereich/AG/schaefer/ag_dt/Personal/Jahnke/Jahnke.html}
,
keywords = {restructuring design patterns fuzzy analysis pattern
rewriting graph grammars},
class = {Re-Design Alteration }
}
Managing Uncertainty and Inconsistency in Database Reengineering Processes, Jens-Holger Jahnke
Available as .
@PhDThesis{ jahnke:managing,
author = {Jens-Holger Jahnke},
title = {Managing Uncertainty and Inconsistency in Database
Reengineering Processes},
school = {University of Paderborn, Department of Mathematics and
Computer Science},
year = {1999},
address = {33095 Paderborn, Germany},
month = {August},
abstract = {This dissertation tackles one of the most urgent problems
in today's information technology, namely the renovation
and migration of legacy information systems to modern
platforms and net-centric architectures. In this context,
several methods, tools, and processes have been proposed to
support reengineering and modernizations of legacy database
applications. This can be a complex task because many
legacy databases have grown over several generations of
programmers and lack a sufficient documentation.
Computer-aided reengineering methods and processes have a
great potential to reduce the complexity and risks involved
in database design recovery and migration projects. Still,
current reengineering tools are hardly adopted for
practical problems in industry because they often make
idealistic assumptions about the structure of legacy
systems and the characteristics of reengineering processes.
The goal of this thesis is to provide concepts and
techniques to overcome these severe limitations. In
particular, our focus is on developing mechanisms to manage
uncertainty and inconsistency in computer-aided databases
reengineering processes. In practice, uncertain knowledge
plays an important role in activities aiming to recover
conceptual design documents for large idiosyncratic
implementation structures. This fact is neglected in
current database reengineering methods and tools. In this
dissertation, we identify and extend a theory that provides
a suitable basis to deal with uncertain reengineering
knowledge and allows to implement practical tools and
environments to support reengineering processes. The
requirement for consistency management considers the fact
that it is unrealistic to presume that database
reengineering processes can be executed in a number of
sequential phases or steps without iterations. In practice,
larger reengineering projects comprise many process
iterations due to various reasons like incomplete knowledge
about legacy implementation structures or necessary
"on-the-fly" modifications of the legacy system. Detecting
and removing inconsistencies caused by such iterations
significantly increase costs and durations of current
reengineering projects. In this thesis, we employ graph
transformation theory to develop mechanisms which allow to
detect and eliminate inconsistencies between legacy schema
implementations and their abstract representation,
automatically. Our results have been implemented in the
database reengineering environment Varlet and evaluated
with an industrial project. They are suitable to complement
many existing approaches in the domain of information
system reengineering and migration. As an example, we
describe the integration of Varlet with an existing
middleware product for data integration.},
class = {Using_graphs Database_Migration Re-Design
Data_Reverse_Engineering Alteration
Software_Reverse_Engineering
Intermediate_Representations_of_Source_Code },
url = {http://www.csr.uvic.ca/~jens/Docs/thesis.pdf}
}
Generating Linkage between Source Code and Evolvable Domain Knowledge for the Ease of Software Evolution, Yang Li and Hongji Yang and William Chu
Available as .
@InProceedings{ li.yang.ea:generating,
author = {Yang Li and Hongji Yang and William Chu},
title = {Generating Linkage between Source Code and Evolvable
Domain Knowledge for the Ease of Software Evolution},
booktitle = {Proceedings of IEEE International Symposium on Principles
of Software Evolution (ISPSE2000)},
publisher = {IEEE Computer Society Press},
year = {2000},
editor = {},
chapter = {},
pages = {},
address = {Kanazawa, Japan},
month = {Nov},
url = {},
abstract = {Business software systems unexceptably need to be evolved
to cater for new/changed requirement coming from market or
adapt to new operating environment. One of the most
significant problems in current software evolution practice
is that software maintainers usually find it quite
difficult to locate the program sections in source code
which need to be modified and to identify the extent to
which the changes in these program sections could affect
the rest of the software system. In this paper, we propose
a knowledge engineering based approach to solving this
problem. In particular, we match a software program with a
pre-defined domain knowledge base in the representation of
simplified semantic network we proposed in order to link
the source program with its domain level interpretation.
The domain knowledge base contains only important domain
knowledge where potential evolutions could occur, which
reduces the size of the knowledge base. Moreover, a domain
oriented program partitioning method is also proposed to
cut a program into self-contained modules with manageable
size. In these ways, the computational complexity involved
in generating the linkage is significantly reduced which
makes this approach applicable. An example shows that
software evolution can be easily carried out as the domain
knowledge it links with evolves. },
keywords = {software evolution, knowledge engineering, program
partitioning, evolvable domain knowledge, semantic
network},
note = {This paper gives engineering-oriented considerations to
link generation between domain knowledge and source code
prior to successful software evolution.},
class = {Software_Evolution Knowledge-Based_Concept_Assignment
Using_graphs Change_Impac
Cognitive_Processes_in_Human_Program_Understanding Metrics
Reverse_Design Re-Design System_Modularization
Recovery_of_Software_Architecture
Metric-Based_Methods_in_Reverse_Design Alteration
Human_Oriented_Concept_Assignment_by_Informal_Reasoning
Intermediate_Representations_of_Source_Code
Software_Reverse_Engineering }
}
Reverse engineering of user interfaces., E. Merlo and J.F. Girard and K. Kontogiannis and P. Panangaden and R. De Mori
@InProceedings{ merlo.girard.ea:reverse,
author = {E. Merlo and J.F. Girard and K. Kontogiannis and P.
Panangaden and R. {De Mori}},
title = {Reverse engineering of user interfaces.},
booktitle = {Working Conference on Reverse Engineering},
year = {1993},
month = {May 21-23},
address = {Baltimore, Maryland},
pages = {171-179},
note = { Extracts user interface descriptions from COBOL/CICS
source code and translates them to abstract behaviour
descriptions based on process algebra (CCS). Part of the
analysis is done using Refine/COBOL. The translation itself
is done manually},
class = {Alteration, Re-Design, User_Interface_Migration},
ftp = {ftp.crim.ca/gl/public/wcre93.ps.Z}
}
Knowledge-based User Interface Migration, Melody Moore and Spencer Rugaber and Phil Seaver
@InProceedings{ moore.rugaber.ea:knowledge-based,
author = {Melody Moore and Spencer Rugaber and Phil Seaver},
title = {Knowledge-based User Interface Migration},
booktitle = {Proceedings of the International Conference on Software
Maintenance ~1994},
year = {1994},
abstract = {A significant problem in reengineering large systems is
adapting the user interface to a new environment. Often,
drastic changes in the user interface are inevitable, as in
migrating a text-based system to a workstation with
Graphical User Interface capabilities. This experience
report chronicles a study of user interface migration
issues, examining and evaluating current tools and
techniques. It also describes a case study undertaken to
explore the use of knowledge engineering to aid in
migrating interfaces across platforms.},
keywords = {User Interface, reengineering, migration, reverse
engineering, knowledge-based},
ftp = {ftp.cc.gatech.edu//pub/groups/reverse/repository/uif\_migration.ps}
,
class = {Alteration, Re-Design, User_Interface_Migration}
}
Domain Analysis for Transformational Reuse, Melody Moore and Spencer Rugaber
Available as
Melody.Moore.
@InProceedings{ moore.rugaber:domain,
author = {Melody Moore and Spencer Rugaber},
title = {Domain Analysis for Transformational Reuse},
booktitle = {Proceedings of the Fourth Working Conference on Reverse
Engineering},
publisher = {IEEE Computer Society Press Los Alamitos California},
year = {1997},
editor = {Ira Baxter and Alex Quilici and Chris Verhoef},
month = {October},
url = {http://www.cc.gatech.edu/fac/Melody.Moore},
abstract = {Domain analysis is an effective technique for enabling
both reuse and reverse engineering. This paper shows how
domain analysis can provide a framework for combining
reverse engineering and forward engineering to implement
transformational reuse for information system user
interfaces.},
keywords = {Reverse engineering domain analysis user interfaces
reuse},
class = {Software_Evolution Reengineering_in_General
User_Interface_Migration Software_Reverse_Engineering
Model_Generating Reverse_Specification Re-Design
Domain_Analysis Alteration }
}
Issues in User Interface Migration, Melody Moore and Spencer Rugaber
@InProceedings{ moore.rugaber:issues,
author = {Melody Moore and Spencer Rugaber},
title = {Issues in User Interface Migration},
booktitle = {Proceedings of the Third Software Engineering Research
Forum},
address = {Orlando Florida},
year = {1993},
month = nov,
abstract = { In today's continually changing world of computing, many
old and outdated systems are being migrated to newer,
faster, and less proprietary platforms. Reengineering
strategies have traditionally concentrated on the
functional design of the program itself. User interfaces,
however, present some unique problems for migration, since
often the user interface changes drastically -- for
example, migrating from a text-based interface to a
graphical user interface. Here we present work that
identifies the important issues in effectively migrating
user interfaces between heterogeneous platforms and
different display technologies.},
ftp = {ftp.cc.gatech.edu//pub/groups/reverse/repository/serf.ps},
class = {Alteration, Re-Design, User_Interface_Migration}
}
Using Knowledge Representation to Understand Interactive Systems, Melody Moore and Spencer Rugaber
Available as
Melody.Moore.
@InProceedings{ moore.rugaber:using,
author = {Melody Moore and Spencer Rugaber},
title = {Using Knowledge Representation to Understand Interactive
Systems},
booktitle = {Proceedings of the Fifth International Workshop on Program
Comprehension (IWPC)},
publisher = {IEEE Computer Society Press},
month = {May},
url = {http://www.cc.gatech.edu/fac/Melody.Moore},
keywords = {knowledge representation reverse engineering user
interfaces},
class = {Reengineering_in_General User_Interface_Migration
Software_Reverse_Engineering Reverse_Specification
Re-Design Domain_Analysis Alteration }
}
Guru - A tool for automatic Restructuring of Self Inheritance Hierarchies, I. Moore
@InProceedings{ moore:guru,
author = {I. Moore},
title = {Guru - A tool for automatic Restructuring of Self
Inheritance Hierarchies},
booktitle = {Tools USA' 95 (Technology of Object-Oriented Languages and
Systems)},
pages = {267-275},
year = {1995},
abstract = {},
class = {Alteration, Re-Design,
Inhertiance_Hierarchies_Restructuring}
}
Representation Issues for Reengineering Interactive Systems, Melody Moore
Available as
Melody.Moore.
@Article{ moore:representation,
author = {Melody Moore},
title = {Representation Issues for Reengineering Interactive
Systems},
journal = {ACM Computing Surveys},
year = {1996},
volume = {28},
number = {4es},
month = {December},
url = {http://www.cc.gatech.edu/fac/Melody.Moore},
keywords = {representation user interface reengineering modeling},
class = {Reengineering_in_General User_Interface_Migration
Software_Reverse_Engineering Model_Generating
Reverse_Specification Re-Design Alteration
Intermediate_Representations_of_Source_Code }
}
Rule-based Detection for Reengineering User Interfaces, Melody Moore
Available as
Melody.Moore.
@InProceedings{ moore:rule-based,
author = {Melody Moore },
title = {Rule-based Detection for Reengineering User Interfaces},
booktitle = {Proceedings of the Third Working Conference on Reverse
Engineering (WCRE)},
publisher = {IEEE Computer Society Press},
year = {1996},
month = {November},
url = {http://www.cc.gatech.edu/fac/Melody.Moore},
keywords = {reverse engineering user interfaces rule base knowledge
representations},
class = {Reengineering_in_General User_Interface_Migration
Software_Reverse_Engineering Model_Generating
Reverse_Specification Re-Design Alteration }
}
A Technique for Reverse Engineering User Interfaces, Melody Moore
@InProceedings{ moore:technique,
author = {Melody Moore},
title = {A Technique for Reverse Engineering User Interfaces},
booktitle = {Proceedings of the Fourth Reverse Engineering Forum},
publisher = {IEEE Computer Society},
year = {1994},
month = {November},
note = {Presentation slides available},
class = {Reengineering_in_General User_Interface_Migration
Re-Design Alteration }
}
Automating the modularization of large COBOL programs: application of an enabling technology for reengineering, Ph. Newcomb and L. Markosian
@InProceedings{ newcomb.markosian:automating,
author = {Ph. Newcomb and L. Markosian},
title = {Automating the modularization of large {COBOL} programs:
application of an enabling technology for reengineering},
booktitle = {Proceedings of the 1st Working Conference on Reverse
Engineering },
pages = {222--230},
year = {1993},
note = { Experience report using the Software Refinery to build a
modularization tool for COBOL},
class = {Alteration, Re-Design, Inter-module_Reorganization}
}
Towards the reverse engineering of denormalized relational databases, J-M. Petit and F. Toumani and J. Boulicaut and J. Kouloumdjian
@InProceedings{ petit.toumani.ea:towards,
author = {J-M. Petit and F. Toumani and J. Boulicaut and J.
Kouloumdjian},
title = {Towards the reverse engineering of denormalized relational
databases},
booktitle = {Proc. 12th International Conference on Data Engineering},
publisher = {S. Su},
year = {1996},
editor = {IEEE Computer Society},
pages = {218-227},
address = {New Orleans},
month = {Feb},
class = {Database_Migration Re-Design Alteration }
}
Case study in Migration to Object-Oriented System structure Using Design Transformation Methods, Sagar Pidaparthi and Grzegorz Cysewski
@InProceedings{ pidaparthi.cysewski:case,
author = {Sagar Pidaparthi and Grzegorz Cysewski},
title = {Case study in Migration to Object-Oriented System
structure Using Design Transformation Methods},
booktitle = {1st European Conference on Software Maintenance and
Reengineering 97},
month = mar,
year = {1997},
publisher = {IEEE Computer Society Press},
abstract = {Procedural programming languages are currently being used
extensively in the software industry for a wide range of
applications. Most of the old procedural programs, used
today may not have any documentation which can be used in
maintenance processes. In the recent time there has been a
paradigm shift towards object oriented design and
programming, from algorithmic decomposition, structured
design and procedural implementation. Hence, there is a
growing need to restructure old programs which have a poor
architecture during evolutionary processes. It is more
economic to restructure existing software into object
oriented topology by identifying objects within the subject
system than to redesign software starting from scratch.
Object identification relies upon program analysis and a
study of inter component relationships and dependencies.
Researchers in re-engineering have proposed some guidelines
to identify objects from within the subject systems. Design
Transformation is the first step in reengineering existing
programs, which can be followed by program translation
methods to transform a procedural program into the newly
identified structure. This paper reports the results of the
application of three object identification methods on a
sample procedural program. Secondly it provides a design of
a system for program component storage and object
identification },
class = {Alteration, Re-Design,
From_Procedural_to_Object-Oriented}
}
The Transition of Application Programs From COBOL to a Fourth Generation Language, Spencer Rugaber and Srinivas Doddapaneni
@InProceedings{ rugaber.doddapaneni:transition,
author = {Spencer Rugaber and Srinivas Doddapaneni},
title = {The Transition of Application Programs From COBOL to a
Fourth Generation Language},
booktitle = {Proceedings of the International Conference on Software
Maintenance ~1993},
year = {1993},
month = sep,
abstract = {It is becoming increasingly desirable to move older
application programs from their traditional mainframe
execution environments to networkes workstations. These
management information systems are most often written in
COBOL and store their data in files. A networked
environment enables the use of relational database
management system and its fourth generation access
language, SQL. A conceptual framework is described that
comprises a variety of stategies for making such a
transition. Decision citeria for selecting among them are
then presented. Finally, a variety of experiments intended
to explore the strategies are recounted. The experiments
include efforts to automate parts of the process.},
address = {Montreal, Canada},
ftp = {ftp.cc.gatech.edu//pub/groups/reverse/repository/transit.ps}
,
class = {Alteration, Re-Design,
From_Mainframe_to_Client-Server_Architecture}
}
Downsizing Large Application Programs, Harry M. Sneed and Erika Nyary
@InProceedings{ sneed.nyary:downsizing,
author = {Harry M. Sneed and Erika Nyary},
title = {Downsizing Large Application Programs},
pages = {110--119},
booktitle = {Proceedings of the International Conference on Software
Maintenance ~1993},
year = {1993},
publisher = {IEEE Computer Society Press},
month = sep,
abstract = {There is a great demand in industry to migrate from the
mainframe to distributed client/server type systems. The
following paper proposes three methods of splitting up
oversized host application programs with the goal of
offloading them on to workstation computers. The three
apporaches are by procedural connection, functional
decomposition, and abstract data typing. The author
describes his experience in applying each of the methods
and explains what other measures are necessary to downsize
a program.},
class = {Alteration, Re-Design,
From_Mainframe_to_Client-Server_Architecture}
}
Migration of procedurally oriented COBOL programs in an object-oriented architecture, H. Sneed
@InProceedings{ sneed:migration,
title = {Migration of procedurally oriented {COBOL} programs in an
object-oriented architecture},
author = {H. Sneed},
booktitle = {\cite{SM92}},
pages = {105--116},
year = {1992},
note = { The subject of this paper is to describe the migration of
procedurally structured COBOL into functionally equivalent
object-oriented programs. Their major differences are
described together with an approach to bridge the gap
between the two},
class = {Alteration, Re-Design,
From_Procedural_to_Object-Oriented}
}
Reengineering Class Hierarchies Using Concept Analysis, Gregor Snelting and Frank Tip
@TechReport{ snelting.tip:reengineering,
author = {Gregor Snelting and Frank Tip},
title = {Reengineering Class Hierarchies Using Concept Analysis},
organization = {IBM T.J. Watson Research Center},
year = {1997},
type = {Technical Report},
number = {RC 21164(94592)24APR97},
address = {IBM T.J. Watson Research Center, P.O. Box 704, Yorktown
Heights, NY 10598, USA},
month = {April},
keywords = {concept analysis, inheritance hierarchy restructuring,
C++},
note = {There is also an extended journal version of this article
in ACM SIGSOFT 1998.},
class = {Inhertiance_Hierarchies_Restructuring Re-Design Alteration
}
}
Reengineering Class Hierarchies Using Concept Analysis, Gregor Snelting and Frank Tip
@InProceedings{ snelting.tip:reengineering*1,
author = {Gregor Snelting and Frank Tip},
title = {Reengineering Class Hierarchies Using Concept Analysis},
publisher = {ACM},
booktitle = {ACM SIGSOFT Symposium on the Foundation of Software
Engineering},
year = {1998},
keywords = {Reengineering of class hierarchies, OOP, object-oriented
programming, concept analysis},
class = {Reengineering Alteration Re-Design
Inhertiance_Hierarchies_Restructuring}
}
Architectural Extraction in Reverse Engineering by Prototyping - An Experiment, Sander Tichelaar and Stephane Ducasse and Theo Dirk Meijler
Available as
archiDocumentation.pdf.
@InProceedings{ tichelaar.ducasse.ea:architectural,
author = {Sander Tichelaar and Stephane Ducasse and Theo Dirk
Meijler},
title = {Architectural Extraction in Reverse Engineering by
Prototyping - An Experiment},
booktitle = {Proceedings ESEC - FFSE 97 Workshop on Object-Oriented
Reengineering},
publisher = {Technical University of Vienna},
year = {1997},
editor = {Serge Demeyer and Harald Gall},
month = {August},
url = {http://iamwww.unibe.ch/~tichel/archiDocumentation.pdf},
abstract = {In this workshop paper we present a prototype approach to
help the extraction of architectural information in the
re-engineering process. Commonly the re-engineering
life-cycle has been defined as a succession of the
following tasks: analysis of requirements model capture
"understanding the system" problem detection problem
analysis reorganization and change propagation. We have
evaluated the benefit of a prototyping approach with a
focus on model capture. Although prototyping is a known
approach to evaluate the application feasibility costs
comparison and validation of choices we focus in this paper
on the aspects of prototyping that are helpful for
re-engineering.},
keywords = {architectural extraction prototyping FAMOOS},
note = {This work is part of the ESPRIT project FAMOOS: A
Framework-based Approach for Mastering Object-Oriented
Software Evolution},
class = {Software_Reverse_Engineering Model_Generating
Reverse_Specification Inter-module_Reorganization
Reverse_Design Re-Design Recovery_of_Software_Architecture
Alteration }
}