作者:
LangeIBM Research
Tokyo Research Laboratory Yamato Kanagawa Japan
In his research the author is looking into the cooperation of methodology, language, and database in the design of object-oriented systems which are to be realized in an object-oriented programming language using an o...
详细信息
In his research the author is looking into the cooperation of methodology, language, and database in the design of object-oriented systems which are to be realized in an object-oriented programming language using an object-oriented database system (OODBMS). The focus is on some of the differences between traditional object-oriented design and object-oriented database design. For this purpose a small formal model of a contemporary OODBMS is built. This model describes abstractions of the most important data structures of OODBMS and their associated functionality. Based on both a pragmatic and a theoretic understanding of the architecture of contemporary OODBMSs, the author aims at presenting some of the issues to be considered in object-oriented database design such as: object management, object retrieval, and concurrency.< >
In order to handle massively parallel systems and make them usable, an adaptive, application-oriented operating system is required. This asks for dynamically alterable system structures. A good foundation for building...
详细信息
In order to handle massively parallel systems and make them usable, an adaptive, application-oriented operating system is required. This asks for dynamically alterable system structures. A good foundation for building such structures is the family concept of parallel operating systems. Incremental loading supports the family character by extending on demand the system's active object structure and this way (possibly) switching from one family member to another. A new active object will be incrementally loaded if its invocation fails because it does not yet exist. This is noticed during object binding while using the naming services. To keep the application's code free from incremental loading aspects the naming service is made extensible. This way a family is built, namely a family of naming services. These extensions are externally definable naming strategies and exceptions.< >
In an evolving software system, components must be able to change independently while remaining compatible with their peers. One obstacle to independent evolution is the brittle parameter problem: the ability of two c...
详细信息
ISBN:
(纸本)9781581137125
In an evolving software system, components must be able to change independently while remaining compatible with their peers. One obstacle to independent evolution is the brittle parameter problem: the ability of two components to communicate can depend on a number of inessential details of the types, structure, and/or contents of the values communicated. If these details change, then the components can no longer communicate, even if the essential parts of the message remain *** present HydroJ, an extension of Java that addresses this problem. In HydroJ, components communicate using self-describing, semi-structured messages, and programmers use pattern matching to define the handling of messages. This design stems from two central ideas: first, that self-describing messages reduce dependence on inessential message format details; and second, that object-oriented pattern matching naturally focuses on the essential information in a message and is insensitive to inessential *** have developed these ideas in the context of Rain, a distributed, heterogeneous messaging system for ubiquitous computing. To evaluate the design, we have constructed a prototype HydroJ compiler, implemented some Rain services in HydroJ, studied the evolution of an existing Rain service over time, and formalized HydroJ's key features in a core language.
In this paper, we use Kansanen's didactic triangle to structure and analyse research on the teaching and learning of programming. Students, teachers and course content are the three entities that form the corners ...
详细信息
ISBN:
(纸本)9781920682842
In this paper, we use Kansanen's didactic triangle to structure and analyse research on the teaching and learning of programming. Students, teachers and course content are the three entities that form the corners of the didactic triangle. The edges of the triangle represent the relationships between these three entities. We argue that many computing educators and computing education researchers operate from within narrow views of the didactic triangle. For example, computing educators often teach programming based on how they relate to the computer, and not how the students relate to the computer. We conclude that, while research that focuses on the corners of the didactic triangle is sometimes appropriate, there needs to be more research that focuses on the edges of the triangle, and more research that studies the entire didactic triangle.
Component-based software development has been increasingly adopted as a standard engineering practice to build large systems with prefabricated components. Although this development method enjoys the great benefits of...
详细信息
ISBN:
(纸本)0769521312
Component-based software development has been increasingly adopted as a standard engineering practice to build large systems with prefabricated components. Although this development method enjoys the great benefits of reusing valuable software assets, reducing development costs, improving productivity, etc., it also poses serious challenges to the quality assurance problem of component-based systems, since prefabricated components can not be simply trusted and they could be a new source of system failures. Solving this problem is of vital importance to safety-critical and mission-critical systems. This paper introduces a decompositional verification approach for component-based systems through both formal analysis (model-checking) and traditional software testing.
Micro patterns are similar to design patterns, except that micro patterns are stand at a lower, closer to the implementation, level of abstraction. Micro patterns are also unique in that they are mechanically recogniz...
详细信息
ISBN:
(纸本)9781595930316
Micro patterns are similar to design patterns, except that micro patterns are stand at a lower, closer to the implementation, level of abstraction. Micro patterns are also unique in that they are mechanically recognizable, since each such pattern can be expressed as a formal condition on the structure of a *** paper presents a catalog of 27 micro-patterns defined on Java classes and interfaces. The catalog captures a wide spectrum of common programming practices, including a particular and (intentionally restricted) use of inheritance, immutability, data management and wrapping, restricted creation, and emulation of procedural-, modular-, and even functional- programming paradigms with objectoriented constructs. Together, the patterns present a set of prototypes after which a large portion of all Java classes and interfaces are modeled. We provide empirical indication that this portion is as high as 75%.A statistical analysis of occurrences of micro patterns in a large software corpus, spanning some 70,000 Java classes drawn from a rich set of application domains, shows, with high confidence level that the use of these patterns is not random. These results indicate consciousness and discernible design decisions, which are sustained in the software evolution. With high confidence level, we can also show that the use of these patterns is tied to the specification, or the purpose, that the software *** traceability, abundance and the statistical significance of micro pattern occurrence raise the hope of using the classification of software into these patterns for a more founded appreciation of its design and code quality.
As object-oriented paradigm becomes the mainstreamparadigm on software development, due to its attractivefeatures that can effectively divide a complex softwareproblem into several independent modules, one of theobjec...
详细信息
As object-oriented paradigm becomes the mainstreamparadigm on software development, due to its attractivefeatures that can effectively divide a complex softwareproblem into several independent modules, one of theobject-oriented languages - Java, becomes popular inrecent years because it is widely used in the rapidlygrowing Internet computing. However, similar to otherobject-oriented languages, Java has a big drawback of poorperformance. One of the main causes of the performance deficiencyis the extensive use of dynamic memory allocations anddeallocations during object or array creations anddestructions. Even a simple Othello applet game easilyrequires half a million of memory allocations for only onegame play. After analysis on the memory allocation behavior ofJava programs, it is concluded that about 99% of theallocations are of sizes less than 1024 bytes. The analysisalso shows that most of the allocated chunks in small sizewill survive only a very short period of time and after theyare garbage collected, they can be reused in the very nearfuture. This implies the memory allocation / deallocationpattern in Java is bounded to a certain kind of locality. The information presented in this paper is a referencefor designing an efficient hardware memory allocation /deallocation unit.
We present a novel approach to dynamic datarace detection for multithreaded object-oriented programs. Past techniques for on-the-fly datarace detection either sacrificed precision for performance, leading to many fals...
详细信息
ISBN:
(纸本)9781581134636
We present a novel approach to dynamic datarace detection for multithreaded object-oriented programs. Past techniques for on-the-fly datarace detection either sacrificed precision for performance, leading to many false positive datarace reports, or maintained precision but incurred significant overheads in the range of 3x to 30x. In contrast, our approach results in very few false positives and runtime overhead in the 13% to 42% range, making it both efficient and precise. This performance improvement is the result of a unique combination of complementary static and dynamic optimization techniques.
This paper addresses the problem of functionalverification starting from a high level description ofthe system under test, specified in SystemC. Theverification method considered is based upon thesimulation of executa...
详细信息
ISBN:
(纸本)0780379411
This paper addresses the problem of functionalverification starting from a high level description ofthe system under test, specified in SystemC. Theverification method considered is based upon thesimulation of executable SystemC description. Testcoverage analysis is the main technique for checkingand showing that the testing has been thorough. In thispaper we propose a novel approach to automate thecoverage analysis using Aspect-oriented *** here are described as checkers for detectingcoverage. The most important feature using theaspect-oriented technology here is that allowschecking functions across classes to be added orreplaced without modifying the original code. UML2.0is used to model the dynamic behavior view ofSystemC description as a coverage metric modelInherently it is possible to automate the whole testcoverage analysis using our methodology.
The contribution of this paper is the first Hardware Transactional Memory (HTM) where the object structure is recognized and harnessed. Our approach is similar to hardware support of paged virtual memory using a virtu...
详细信息
ISBN:
(纸本)9781595939739
The contribution of this paper is the first Hardware Transactional Memory (HTM) where the object structure is recognized and harnessed. Our approach is similar to hardware support of paged virtual memory using a virtually addressed cache and a TLB, and is based on a cache hierarchy that allows the addressing of objects by unique object identifiers. The object-aware HTM allows cache overflows of uncommitted data. It also enables a novel commit and conflict detection mechanism. In this preliminary evaluation, the Lee-TM application exhibits overflows that in most previous HTMs would have had to be handled by software, impacting on performance. The simulation provides an insight into the scalability characteristics of the proposed HTM, which uses object and field granularity, lazy versioning and lazy conflict detection. For example, with 32 cores the broadcast of write sets is at under 5% of the bus bandwidth, showing the potential of object-aware HTM systems.
暂无评论