scispace - formally typeset
Book ChapterDOI

An Incremental Class Reorganization Approach

Reads0
Chats0
TLDR
A new algorithm is proposed that analyses the redefinitions carried out on inherited properties when a class is added to a hierarchy, and restructures the hierarchy to discover missing abstractions and to enforce programming style guidelines.
Abstract
Software components developed with an object-oriented language require frequent reorganizations before they become stable, reusable classes. We propose a new algorithm that analyses the redefinitions carried out on inherited properties when a class is added to a hierarchy, and restructures the hierarchy to discover missing abstractions and to enforce programming style guidelines. We illustrate our automatic restructuring approach with simple examples, describe formally the algorithm and the object model it is based on, and discuss its suitability for object-oriented software engineering. The results of applying the algorithm to the Eiffel library are examined.

read more

Citations
More filters
Journal ArticleDOI

A refactoring tool for Smalltalk

TL;DR: The Smalltalk Refactoring Browser is a tool that carries out many refactorings automatically, and provides an environment for improving the structure of Smalltalk programs, and so reduces the cost of making reusable software.
Proceedings ArticleDOI

Finding refactorings via change metrics

TL;DR: A set of heuristics for detecting refactorings by applying lightweight, object-oriented metrics to successive versions of a software system are proposed and suggested to support the reverse engineering process by focusing attention on the relevant parts of a program.
Journal ArticleDOI

An experimental investigation on the innate relationship between quality and refactoring

TL;DR: Investigation of the evolution history of three Java open source projects to investigate whether refactoring activities occur on code components for which certain indicators—such as quality metrics or the presence of smells as detected by tools—suggest there might be need forRefactoring operations indicates that, more often than not, quality metrics do not show a clear relationship with refactored.
Journal ArticleDOI

Search-based refactoring for software maintenance

TL;DR: A software tool capable of refactoring object-oriented programs to conform more closely to a given design quality model is constructed, by formulating the task as a search problem in the space of alternative designs.
Book

Object-oriented software composition

TL;DR: Based on the research of the Object Systems Group in Geneva, this book looks at a range of issues, from programming languages and systems through to tools, frameworks and methods to the development of multimedia systems as an application domain.
References
More filters
Journal Article

Designing reusable classes

TL;DR: This paper describes what it is like to design systems in Smalltalk and how classes are developed so that they will be reusable.
Proceedings ArticleDOI

Semantics and implementation of schema evolution in object-oriented databases

TL;DR: A framework for supporting schema evolution is established, the semantics of schema evolution are defined, and the implementation of the implementation is discussed.
Book

Object-Oriented Concepts, Databases, and Applications

TL;DR: A growing interest in the object-oriented programming paradigm prompted the editors to compile a wide-ranging introduction to the subject, beginning with basic concepts and then covering a variety of applications in databases and other areas.
Proceedings ArticleDOI

Class modification in the GemStone object-oriented DBMS

TL;DR: After defining a set of invariants for GemStone databases, several issues that impact class modification are discussed, including concurrency and authorization, and lead to difficult choices.
Proceedings ArticleDOI

Object-oriented programming: an objective sense of style

TL;DR: A simple, programming language independent rule which encodes the ideas of encapsulation and modularity in an easy to follow form for the object-oriented programmer is introduced and it is proved that any object- oriented program can be transformed to satisfy the Law.