Encapsulation in object-oriented languages has traditionally been based on static type systems. As a consequence, dynamically-typed languages have only limited support for encapsulation. This is surprising, considerin...
详细信息
ISBN:
(纸本)1581138318
Encapsulation in object-oriented languages has traditionally been based on static type systems. As a consequence, dynamically-typed languages have only limited support for encapsulation. This is surprising, considering that encapsulation is one of the most fundamental and important concepts behind object-orientedprogramming and that it is essential for writing programs that are maintainable and reliable, and that remain robust as they evolve. In this paper we describe the problems that are caused by insufficient encapsulation mechanisms and then present object-oriented encapsulation, a simple and uniform approach that solves these problems by bringing state of the art encapsulation features to dynamically typed languages. We provide a detailed discussion of our design rationales and compare them and their consequences to the encapsulation approaches used for statically typed languages. We also describe an implementation of object-oriented encapsulation in Smalltalk. Benchmarks of this implementation show that extensive use of object-oriented encapsulation results in a slowdown of less than 15 percent.
The purpose of the JVM is to abstract the Java language from the hardware and software platforms it runs on. For this reason, the JVM uses services offered by the host operating system in order to implement identical ...
详细信息
ISBN:
(纸本)9781595938657
The purpose of the JVM is to abstract the Java language from the hardware and software platforms it runs on. For this reason, the JVM uses services offered by the host operating system in order to implement identical services for the Java language. The obvious duplication of effort in service provision and resource management between the JVM and the operating system has a measurable cost on the performance of Java programs. In my PhD research, I try to find ways of minimizing the cost of sharing resources between the OS and the JVM, by identifying and removing unnecessary software layers.
Design defects come from poor design choices and have the effect of degrading the quality of object-oriented designs. Therefore, they present opportunities for improvements. However, design defects have not been preci...
详细信息
ISBN:
(纸本)9781595938657
Design defects come from poor design choices and have the effect of degrading the quality of object-oriented designs. Therefore, they present opportunities for improvements. However, design defects have not been precisely specified and there are few appropriate tools that allow their detection as well as their correction. Our goal is to provide a systematic method to specify systematically design defects precisely and to generate automatically detection and correction algorithms from their specifications. The detection algorithms are based not only on metrics but also on semantical and structural properties whereas the correction algorithms are based on refactorings. We apply and validate these algorithms on open-source object-oriented programs to show that our method allows a systematic specification, a precise detection, and a suitable correction of design defects.
We present a formal specification technique for objectoriented program components based on their boundary message behaviour. Component specifications describe restrictions on the set of message traces for a component ...
详细信息
We present a formal specification technique for objectoriented program components based on their boundary message behaviour. Component specifications describe restrictions on the set of message traces for a component without referring to actual implementations. Finally, we provide a framework to link specifications with abstract states to their implementations.
It was generally agreed by the participants that object- orientedsystems can become legacy systems and that examples of such systems already exist. However, it seems that object-orientedsystems have some important c...
详细信息
ISBN:
(纸本)0897917219
It was generally agreed by the participants that object- orientedsystems can become legacy systems and that examples of such systems already exist. However, it seems that object-orientedsystems have some important characteristics that make them inherently less subject to becoming legacy systems than their non-object-oriented counterparts. Nevertheless, many substantial obstacles pertaining to the maintenance and evolution exist, and further research into these areas is clearly needed.
The software engineering community has taken a great interest in using domain-specific languages (DSLs) [1] to improve the productivity of software development. We demonstrate the design of a DSL as a variant of objec...
详细信息
ISBN:
(纸本)159593491X
The software engineering community has taken a great interest in using domain-specific languages (DSLs) [1] to improve the productivity of software development. We demonstrate the design of a DSL as a variant of object-oriented development by applying UML[2] via the Eclipse Modeling Framework (EMF) [3] [4], exposing significant software functionality to the nonprogrammer domain experts.
Networking and distributed applications have an increasing relevance in industrial automation as the horizontal and vertical integration of control systems progresses. In this context, object-orientedprogramming conc...
详细信息
Networking and distributed applications have an increasing relevance in industrial automation as the horizontal and vertical integration of control systems progresses. In this context, object-orientedprogramming concepts and languages like Java become more and more interesting for all levels of automation. Within this article the state of the art in real-time Java and its applicability in the automation domain are discussed and an example for an implementation of a run-time environment utilizing the real-time specification for Java (RTSJ) will be introduced.
Refactoring tools promise to increase the speed at which programmers write code, but programmers report that contemporary tools sometimes slow them down. Some of that slowdown can be attributed to the time it takes to...
详细信息
ISBN:
(纸本)9781595938657
Refactoring tools promise to increase the speed at which programmers write code, but programmers report that contemporary tools sometimes slow them down. Some of that slowdown can be attributed to the time it takes to activate refactoring tools, typically with a combination of code selection, hotkeys, linear menus, and wizard interfaces. In this paper, I present pie menus and refactoring cues, two new mechanisms for activating refactoring tools. These mechanisms were designed to accommodate how programmers want to refactor and to make good on the promise of refactoring tools to help programmers write codefaster.
暂无评论