Results 1 - 10
of
23
Refactoring Object-Oriented Frameworks
, 1992
"... This thesis defines a set of program restructuring operations (refactorings) that support the design, evolution and reuse of object-oriented application frameworks. The focus of the thesis is on automating the refactorings in a way that preserves the behavior of a program. The refactorings are defin ..."
Abstract
-
Cited by 327 (4 self)
- Add to MetaCart
This thesis defines a set of program restructuring operations (refactorings) that support the design, evolution and reuse of object-oriented application frameworks. The focus of the thesis is on automating the refactorings in a way that preserves the behavior of a program. The refactorings are defined to be behavior preserving, provided that their preconditions are met. Most of the refactorings are simple to implement and it is almost trivial to show that they are behavior preserving. However, for a few refactorings, one or more of their preconditions are in general undecidable. Fortunately, for some cases it can be determined whether these refactorings can be applied safely. Three of the most complex refactorings are defined in detail: generalizing the inheritance hierarchy, specializing the inheritance hierarchy and using aggregations to model the relationships among classes. These operations are decomposed into more primitive parts, and the power of these operations is discussed from the perspectives of automatability and usefulness in supporting design. Two design constraints needed in refactoring are class invariants and exclusive components. These constraints are needed to ensure that behavior is preserved across some refactorings. This thesis gives some conservative algorithms for determining whether a program satisfies these constraints, and describes how to use this design information to refactor a program.
Reusing Object-Oriented Designs
, 1991
"... Reusing the products of the software development process is an important way to reduce software costs and to make programmers and designers more efficient. Object-oriented programming permits the reuse of design as well as programs. This paper describes two techniques for reusing design and how thes ..."
Abstract
-
Cited by 69 (1 self)
- Add to MetaCart
Reusing the products of the software development process is an important way to reduce software costs and to make programmers and designers more efficient. Object-oriented programming permits the reuse of design as well as programs. This paper describes two techniques for reusing design and how these reusable designs are developed. Abstract classes are reusable designs for components while frameworks are reusable designs for entire applications or subsystems. These two techniques are related since frameworks almost always contain abstract classes. Although the most widely used frameworks are for user interfaces, this paper draws its examples from a framework for the virtual memory subsystem of an operating system.
System Support for Online Reconfiguration
- In Proc. USENIX Annual Technical Conference
, 2003
"... Permission is granted for noncommercial reproduction of the work for educational or research purposes. ..."
Abstract
-
Cited by 49 (7 self)
- Add to MetaCart
Permission is granted for noncommercial reproduction of the work for educational or research purposes.
Components, Frameworks, Patterns
- COMMUNICATIONS OF THE ACM
, 1997
"... Frameworks are an object-oriented reuse technique that are widely used in industry but not discussed much by the software engineering research community. They are a way of reusing design that is part of the reason that some object-oriented developers are so productive. This paper compares and co ..."
Abstract
-
Cited by 38 (1 self)
- Add to MetaCart
Frameworks are an object-oriented reuse technique that are widely used in industry but not discussed much by the software engineering research community. They are a way of reusing design that is part of the reason that some object-oriented developers are so productive. This paper compares and contrasts frameworks with other reuse techniques, and describes how to use them, how to evaluate them, and how to develop them. It describe the tradeoffs involved in using frameworks, including the costs and pitfalls, and when frameworks are appropriate.
MultiPerspectives: Object Evolution and Schema Modification Management for Object-Oriented Databases
, 1995
"... Object-oriented databases (OODBs) are believed to more naturally reflect the behavior and organization of complex application domains. The schema consists of a collection of classes, organized into hierarchies which nicely organize abstractions over the domain. Objects are created as instances of cl ..."
Abstract
-
Cited by 16 (3 self)
- Add to MetaCart
Object-oriented databases (OODBs) are believed to more naturally reflect the behavior and organization of complex application domains. The schema consists of a collection of classes, organized into hierarchies which nicely organize abstractions over the domain. Objects are created as instances of classes, encapsulating data and interpretation of data together. An important characteristic is the support for evolutionary programming, and so that existing programs may be extended with new classes without affecting other parts of the system.
A Survey of Multiprocessor Operating System Kernels
, 1993
"... Multiprocessors have been accepted as vehicles for improved computing speeds, cost/performance, and enhanced reliability or availability. However, the added performance requirements of user programs and functional capabilities of parallel hardware introduce new challenges to operating system design ..."
Abstract
-
Cited by 13 (3 self)
- Add to MetaCart
Multiprocessors have been accepted as vehicles for improved computing speeds, cost/performance, and enhanced reliability or availability. However, the added performance requirements of user programs and functional capabilities of parallel hardware introduce new challenges to operating system design and implementation. This paper reviews research and commercial developments in multiprocessor operating system kernels from the late 1970's to the early 1990's. The paper first discusses some common operating system structuring techniques and examines the advantages and disadvantages of using each technique. It then identifies some of the major design goals and key issues in multiprocessor operating systems. Issues and solution approaches are illustrated by review of a variety of research or commercial multiprocessor operating system kernels. College of Computing Georgia Institute of Technology Atlanta, Georgia 30332--0280 Contents 1 Introduction 1 2 Structuring an Operating System 4 2....
Protected Shared Libraries --- A New Approach to Modularity and Sharing
- In Proceedings of the 1997 USENIX Technical Conference
, 1997
"... ..."
Reification and Reflection in C++: An Operating Systems Perspective
, 1992
"... Introduction In this paper we will examine the benefits of applying the concepts of reification and reflection[12] to C++[13] in order to support the construction of an object-oriented operating system. We describe ways in which C++ programs can perform reflective computation and to what extent the ..."
Abstract
-
Cited by 11 (0 self)
- Add to MetaCart
Introduction In this paper we will examine the benefits of applying the concepts of reification and reflection[12] to C++[13] in order to support the construction of an object-oriented operating system. We describe ways in which C++ programs can perform reflective computation and to what extent the language and the run-time environment support this computation. To evaluate the benefits of reflection within C++, we report on the effect of reflective facilities on the design of Choices[1, 10, 11], a framework we are constructing for object-oriented operating systems. Our paper describes practical reflective computation in a real system and represents an application in C++ of ideas discussed by Maes[8]. Reflective facilities can be built into the architecture of an object-oriented language as proposed by Maes. Alternatively, researchers have proposed using a multi-level system archite
An Object-Oriented Framework For File Systems
- Ph.D. thesis in preparation, University of Illinois at Urbana-Champaign
, 1992
"... ion : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 10 2.2.3 Interface and Code Sharing : : : : : : : : : : : : : : : : : : : : : : : : : : 10 2.2.4 Polymorphism : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 11 2.2.5 Design Sharing : : : : : : : : : : : : : : : : ..."
Abstract
-
Cited by 11 (0 self)
- Add to MetaCart
ion : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 10 2.2.3 Interface and Code Sharing : : : : : : : : : : : : : : : : : : : : : : : : : : 10 2.2.4 Polymorphism : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 11 2.2.5 Design Sharing : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 11 2.2.6 Summary : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 12 3 Related Work : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 13 3.1 Survey of File Systems : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 13 3.1.1 Record File Systems : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 13 3.1.2 Byte-Stream File Systems : : : : : : : : : : : : : : : : : : : : : : : : : : : 14 3.1.3 Object Storage Systems : : : : : : : : : : : : : : : : : : : : : : : : : : : : 15 3.1.4 Distributed File Systems : : : : : : : : : : : : : : : : : : : : : : : : : : : : 18 3.1.5 Summary : : : : :...
Making Meta-Object Protocols Practical for Operating Systems
- IWOOOS '95, Workshop Proceedings
, 1995
"... This position paper considers how Meta-Object Protocol (MOP) technology can be used to support operating system flexibility including the dynamic adaption and extension of the system. We are interested in applying MOPs to a domain (that of operating systems) where they have had little acceptance. We ..."
Abstract
-
Cited by 9 (1 self)
- Add to MetaCart
This position paper considers how Meta-Object Protocol (MOP) technology can be used to support operating system flexibility including the dynamic adaption and extension of the system. We are interested in applying MOPs to a domain (that of operating systems) where they have had little acceptance. We believe that this is largely due to the complexity of operating system software and the possible security loophole(s) that MOPs can introduce. We address these problems by the novel use of multiple, fine-grained MOPs and a category of MOPs called Extension Protocols to provide controlled, secure extension without the limitations of predefined "hooks" into the operating system. 1 Introduction Operating system designers are catering for an increasingly diverse range of application requirements by designing flexible systems. The noticeable increase in designs that include micro-kernel technology to support user-space replaceable system services is one effect of this change. However, the user...

