Preserving externally Observable Behavior
نویسندگان
چکیده
A finite set of external actions that the program may perform defines the observable behavior of a program. Refactoring is a disciplined process of applying structural transformations in the code such that the program is improved in terms of quality and its external behavior is preserved. Refactoring includes evaluation of its preconditions, execution of its mechanics and corrective actions required to retain the behavior of the program. These transformations affect various locations throughout a program which includes its clients and unit tests. Due to the complex dependencies involved with in the program, preservation of program behavior often becomes nontrivial. The guidelines on refactoring by Fowler [1] lack precision and leave opportunities for developers to err. In this paper, we analyze and present an exhaustive categorization of refactoring guidelines based on their impact on production and test code together. In order to formalize the existing refactoring guidelines, we rewrite them using the primitive behavior preserving refactorings by Opdyke [19]. In addition these extended refactoring guidelines also adapt the clients and unit tests to keep them syntactically and semantically aligned with the refactored code. KeywordsRefactoring Guideline; Unit testing; Production Code; Test Code, Adaptation
منابع مشابه
Thesis Overview A Toolkit for Constructing Refactoring Engines
Refactoring is a disciplined technique for restructuring a software system in which a programmer uses a sequence of small-scale, behavior preserving changes to effect a larger-scale, behavior-preserving change to the system [1, 2]. Each of these small-scale changes, or refactorings, makes an incremental change to the system’s internal design or code quality while leaving the externally observab...
متن کاملAgent-Oriented Modeling of the Dynamics of Complex Biological Processes I: Single Agent Models
In the pair of papers of which this is Part I, the agent-oriented modeling perspective to cope with biological complexity is discussed. Three levels of dynamics are distinguished and related to each other: dynamics of externally observable agent behavior, dynamics of internal agent processes, and dynamics of multi-agent organisations. Basic agent concepts to describe externally observable agent...
متن کاملAgent-Oriented Modeling of the Dynamics of Complex Biological Processes I: Single Agent Models1
In the pair of papers of which this is Part I, the agent-oriented modeling perspective to cope with biological complexity is discussed. Three levels of dynamics are distinguished and related to each other: dynamics of externally observable agent behavior, dynamics of internal agent processes, and dynamics of multi-agent organisations. Basic agent concepts to describe externally observable agent...
متن کاملSpecifying and Simulating the Externally Observable Behavior of Modules
.................................................................................................................................... i ACKNOWLEDGMENTS ............................................................................................................... ii TABLE OF CONTENTS ...............................................................................................................ii...
متن کاملSynthesis of Externally Synchronous, Internally Asynchronous Circuits
The purpose of this work is to take an arbitrary 2phase synchronous circuit and eliminate its global clock while preserving its externally visible behavior. This is done by converting it into a set of self-timed combinational circuits with latches and a clock generation network that uses only a local handshake. We discuss the overhead required by this approach to selftiming and outline opportun...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2010