Results 11 - 20
of
364
Design and Implementation of ET++, a Seamless Object-Oriented Application Framework
, 1989
"... : ET++ is a homogeneous object-oriented class library integrating user interface building blocks, basic data structures, and support for object input/output with high level application framework components. The main goals in designing ET++ have been the desire to substantially ease the building of h ..."
Abstract
-
Cited by 96 (2 self)
- Add to MetaCart
: ET++ is a homogeneous object-oriented class library integrating user interface building blocks, basic data structures, and support for object input/output with high level application framework components. The main goals in designing ET++ have been the desire to substantially ease the building of highly interactive applications with consistent user interfaces following the well known desktop metaphor, and to combine all ET++ classes into a seamless system structure. Experience has proven that writing a complex application based on ET++ can result in a reduction in source code size of 80% and more compared to the same software written on top of a conventional graphic toolbox. ET++ is implemented in C++ and runs under UNIX^TM and either SunWindows^TM, NeWS^TM, or the X11 window system. This paper discusses the design and implementation of ET++. It also reports key experience from working with C++ and ET++. A description of code browsing and object inspection tools for ET++ is included a...
Systematic Hypermedia Application Design with OOHDM
, 1996
"... In this paper we analyze the process of hypermedia applications design and implementation, focusing in particular on two critical aspects of these applications: the navigational and interface structure. We discuss the way in which we build the navigation and abstract interface models using the Objec ..."
Abstract
-
Cited by 92 (6 self)
- Add to MetaCart
In this paper we analyze the process of hypermedia applications design and implementation, focusing in particular on two critical aspects of these applications: the navigational and interface structure. We discuss the way in which we build the navigation and abstract interface models using the Object-Oriented Hypermedia Design Method (OOHDM); we show which concerns must be taken into account for each task by giving examples from a real project we are developing, the Portinari Project. We show which implementation concerns must be considered when defining interface behavior, discussing both a Toolbook and a HTML implementation of the example application. Keywords: Hypermedia Design, Methodology, Modeling, Object Orientation, Navigation, Interfaces 1. Introduction In the past three years there has been growing interest in hypermedia design approaches [Izakowitz 95, Garzotto 93, Lange 94]. There are many different problems the hypermedia designer has to deal with, since the combination...
Using AspectC to improve the modularity of path-specific customization in operating system code
, 2001
"... Layered architecture in operating system code is often compromised by execution path-specific customizations such as prefetching, page replacement and scheduling strategies. Pathspecific customizations are difficult to modularize in a layered architecture because they involve dynamic context passing ..."
Abstract
-
Cited by 86 (5 self)
- Add to MetaCart
Layered architecture in operating system code is often compromised by execution path-specific customizations such as prefetching, page replacement and scheduling strategies. Pathspecific customizations are difficult to modularize in a layered architecture because they involve dynamic context passing and layer violations. Effectively they are vertically integrated slices through the layers. An initial experiment using an aspect-oriented programming language to refactor prefetching in the FreeBSD operating system kernel shows significant benefits, including easy (un)pluggability of prefetching modes, independent development of prefetching modes, and overall improved comprehensibility. Keywords aspect-oriented programming, software modularity, operating system design 1.
A Study on Exception Detection and Handling Using Aspect-Oriented Programming
- IN PROCEEDINGS OF THE 22ND INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING
, 2000
"... Aspect-Oriented Programming (AOP) is intended to ease situations that involve many kinds of code tangling. This paper reports on a study to investigate AOP's ability to ease tangling related to exception detection and handling. We took an existing framework written in Java, the JWAM framework, and ..."
Abstract
-
Cited by 83 (2 self)
- Add to MetaCart
Aspect-Oriented Programming (AOP) is intended to ease situations that involve many kinds of code tangling. This paper reports on a study to investigate AOP's ability to ease tangling related to exception detection and handling. We took an existing framework written in Java, the JWAM framework, and partially reengineered its exception detection and handling aspects using AspectJ, an aspect-oriented programming extension to Java. We found that
Program Restructuring as an Aid to Software Maintenance
, 1991
"... Maintenance tends to degrade the structure of software, ultimately making maintenance more costly. At times, then, it is worthwhile to manipulate the structure of a system to make changes easier. However, it is shown that manual restructuring is an error-prone and expensive activity. By separating ..."
Abstract
-
Cited by 79 (9 self)
- Add to MetaCart
Maintenance tends to degrade the structure of software, ultimately making maintenance more costly. At times, then, it is worthwhile to manipulate the structure of a system to make changes easier. However, it is shown that manual restructuring is an error-prone and expensive activity. By separating structural manipulations from other maintenance activities, the semantics of a system can be held constant by a tool, assuring that no errors are introduced by restructuring. To allow the maintenance team to focus on the aspects of restructuring and maintenance requiring human judgment, a transformation-based tool can be provided---based on a model that exploits preserving data flow-dependence and control flow-dependence---to automate the repetitive, errorprone, and computationally demanding aspects of re...
Adaptive Object-Oriented Programming using Graph-Based Customization
- Communications of the ACM
, 1994
"... Object-oriented programs are easier to extend than programs which are not written in an object-oriented style, but object-oriented programs are still very rigid and hard to adapt and maintain. In this article, we introduce adaptive object-oriented programming as an extension to conventional object-o ..."
Abstract
-
Cited by 75 (20 self)
- Add to MetaCart
Object-oriented programs are easier to extend than programs which are not written in an object-oriented style, but object-oriented programs are still very rigid and hard to adapt and maintain. In this article, we introduce adaptive object-oriented programming as an extension to conventional object-oriented programming. Adaptive object-oriented programming facilitates expressing the elements - classes and methods - that are essential to an application by avoiding to make a commitment on the particular class structure of the application. Adaptive programs are specified using propagation patterns which specify sets of related constraints on class structures. An adaptive program denotes an entire family of programs, as many programs as there are class structures which satisfy its constraints. A class structure which satisfies the constraints of an adaptive program is said to customize the program. Adaptive programming, realized by the use of propagation patterns, offers a new paradigm, ext...
A Framework for Network Protocol Software
"... Writing software to control networks is important and difficult. It must be efficient, reliable, and flexible. Conduits+ is a framework for network software that has been used to implement the signalling system of a multi-protocol ATM access switch. An earlier version was used to implement TCP/IP. I ..."
Abstract
-
Cited by 74 (2 self)
- Add to MetaCart
Writing software to control networks is important and difficult. It must be efficient, reliable, and flexible. Conduits+ is a framework for network software that has been used to implement the signalling system of a multi-protocol ATM access switch. An earlier version was used to implement TCP/IP. It reduces the complexity of network software, makes it easier to extend or modify network protocols, and is sufficiently efficient. Conduits+ shows the power of a componentized object-oriented framework and of common object-oriented design patterns.
Evolving objectoriented designs with refactorings
- Automated Software Engg
, 2001
"... Abstract 1 Refactorings are behavior-preserving program transformations that automate design level changes in object-oriented applications. Our previous research established that many schema transformations, design patterns, and hotspot meta-patterns are automatable. This research evaluates whether ..."
Abstract
-
Cited by 70 (3 self)
- Add to MetaCart
Abstract 1 Refactorings are behavior-preserving program transformations that automate design level changes in object-oriented applications. Our previous research established that many schema transformations, design patterns, and hotspot meta-patterns are automatable. This research evaluates whether refactoring technology can be transferred to the mainstream by restructuring non-trivial C++ applications. The applications that we examine were evolved manually by software engineers. We show that an equivalent evolution could be reproduced significantly faster and cheaper by applying a handful of general-purpose refactorings. In one application, over 14K lines of code were transformed automatically that otherwise would have been coded by hand. Our experiments identify benefits, limitations, and topics of further research related to the transfer of refactoring technology to a production environment. 1.
Composite design patterns
- In Proceedings of the 1997 ACM SIGPLAN conference on Object-oriented programming systems, languages and applications
, 1997
"... Software design patterns are the core abstractions from successful recurring problem solutions in software design. Composite design patterns are the core abstractions from successful recurring frameworks. A composite design pattern is a pattern that is best described as the composition of further pa ..."
Abstract
-
Cited by 65 (2 self)
- Add to MetaCart
Software design patterns are the core abstractions from successful recurring problem solutions in software design. Composite design patterns are the core abstractions from successful recurring frameworks. A composite design pattern is a pattern that is best described as the composition of further patterns the integration of which shows a synergy that makes the composition more than just the sum of its parts. This paper presents examples of composite patterns, discusses a role-based analysis and composition technique, and demonstrates that composite patterns extend the pattern idea from single problem solutions to object-oriented frameworks. 1
Interfaces and Specifications for the Smalltalk-80 Collection Classes
, 1992
"... The hierarchy of interfaces implicit in the Smalltalk-80 collection class library is computed and analyzed. The interface hierarchy is independent of the inheritance hierarchy because methods are frequently deleted by subclasses, and because unrelated classes sometimes implement the same messages. S ..."
Abstract
-
Cited by 64 (0 self)
- Add to MetaCart
The hierarchy of interfaces implicit in the Smalltalk-80 collection class library is computed and analyzed. The interface hierarchy is independent of the inheritance hierarchy because methods are frequently deleted by subclasses, and because unrelated classes sometimes implement the same messages. Specifications of the interfaces are developed, revealing subtle relationships among messages and their methods. The specifications help identify several kinds of problems in the library: inherited methods that violate the subclass invariant; methods that have the same name but unrelated behaviors; methods that have the same (or related) behavior but different names. This exercise demonstrates the utility of interfaces and specifications, and suggests improvements to the collection class library structure.

