Advice is a mechanism used by advanced object-oriented and aspect-orientedprogramming languages to augment the behavior of methods in a program. Advice can help to make programs more modular by separating crosscuttin...
详细信息
ISBN:
(纸本)354027992X
Advice is a mechanism used by advanced object-oriented and aspect-orientedprogramming languages to augment the behavior of methods in a program. Advice can help to make programs more modular by separating crosscutting concerns more effectively, but it also challenges existing ideas about modularity and separate development. We study this challenge using a new, simple formal model for advice as it appears in languages like AspectJ. We then add a module system designed to leave program functionality as open to extension through advice as possible, while still enabling separate reasoning about the code within a module. Our system, Open Modules, can either be used directly to facilitate separate, component-based development, or can be viewed as a model of the features that certain AOP IDEs provide. We define a formal system for reasoning about the observational equivalence of programs under advice, which can be used to show that clients are unaffected by semantics-preserving changes to a module's implementation. Our model yields insights into the nature of modularity in the presence of advice, provides a mechanism for enforceable contracts between component providers and clients in this setting, and suggests improvements to current AOP IDEs.
Inheritance is a useful mechanism for factoring and reusing code. However, it has limitations for building extensible systems. We describe nested inheritance, a mechanism that addresses some of the limitations of ordi...
详细信息
ISBN:
(纸本)1581138318
Inheritance is a useful mechanism for factoring and reusing code. However, it has limitations for building extensible systems. We describe nested inheritance, a mechanism that addresses some of the limitations of ordinary inheritance and other code reuse mechanisms. Using our experience with an extensible compiler framework, we show how nested inheritance can be used to construct highly extensible software frameworks. the essential aspects of nested inheritance are formalized in a simple object-oriented language with an operational semantics and type system. the type system of this language is sound, so no run-time type checking is required to implement it and no run-time type errors can occur. We describe our implementation of nested inheritance as an unobtrusive extension of the Java language, called Jx. Our prototype implementation translates Jx code to ordinary Java code, without duplicating inherited code.
In an object-oriented language, a derived class may declare a method withthe same signature as a method in the base class. the meaning of the re-declaration depends on the language. Most commonly, the new declaration...
详细信息
ISBN:
(纸本)1581138318
In an object-oriented language, a derived class may declare a method withthe same signature as a method in the base class. the meaning of the re-declaration depends on the language. Most commonly, the new declaration overrides the base declaration, perhaps completely replacing it, or perhaps using super to invoke the old implementation. Another possibility is that the base class always controls the method implementation, and the new declaration merely augments the method in the case that the base method calls inner. Each possibility has advantages and disadvantages. In this paper, we explain why programmers need both kinds of method redeclaration, and we present a language that integrates them. We also present a formal semantics for the new language, and we describe an implementation for MzScheme.
Interactive graphical applications implicitly contain a large number of constraints - relationships between objects, such as widgets and the underlying model they control. Encapsulation, a fundamental principle of obj...
详细信息
ISBN:
(纸本)1581138334
Interactive graphical applications implicitly contain a large number of constraints - relationships between objects, such as widgets and the underlying model they control. Encapsulation, a fundamental principle of object-orientedprogramming, is only guaranteed in a very limited sense by most object-oriented languages. Constrained-Java provides a constraint system built upon stronger encapsulation guarantees which allows constraints to depend on entire aggregated objects.
Revisiting material previously presented and successfully assessed can lead to much frustration among teaching staff and students. Despite this, it is often a requirement due to the time lag between the point at which...
详细信息
ISBN:
(纸本)9780769532301
Revisiting material previously presented and successfully assessed can lead to much frustration among teaching staff and students. Despite this, it is often a requirement due to the time lag between the point at which a student begins a module and the time when they successfully passed a prerequisite module. Also, students who successfully pass a module fit into a number of categories, from those who were successful in all components of the assessment to those who displayed the minimum level of competence required for satisfaction of the learning outcomes. We introduce a novel instructional model which we predict will be instrumental in assisting our undergraduate Software Engineers who have displayed medium levels of competence in passing practical modules. the R-CUBE recognizes the importance of three dimensions to revisiting material - review, reinforce and reward Our initial implementation of instruction using the model employs novel teaching and learning methods closely tied to our experience with service learning projects. We expect to fully evaluate the effectiveness of the model when the first students pass through a project that employs it at the end of this academic year.
object-orientedprogramming languages provide a rich set of features that provide significant software engineering benefits. the increased productivity provided by these features comes at a justifiable cost in a more ...
详细信息
ISBN:
(纸本)1581138318
object-orientedprogramming languages provide a rich set of features that provide significant software engineering benefits. the increased productivity provided by these features comes at a justifiable cost in a more sophisticated runtime system whose responsibility is to implement these features efficiently. However, the virtualization introduced by this sophistication provides a significant challenge to understanding complete system performance, not found in traditionally compiled languages, such as C or C++. thus, understanding system performance of such a system requires profiling that spans all levels of the execution stack, such as the hardware, operating system, virtual machine, and application. In this work, we suggest an approach, called vertical profiling, that enables this level of understanding. We illustrate the efficacy of this approach by providing deep understandings of performance problems of Java applications run on a VM with vertical profiling support. By incorporating vertical profiling into a programming environment, the programmer will be able to understand how their program interacts withthe underlying abstraction levels, such as application server, VM, operating system, and hardware.
this paper summarizes a tutorial surveying objectoriented lysis and design techniques. A full version of this material, including references, can be found via the author's home page.
this paper summarizes a tutorial surveying objectoriented lysis and design techniques. A full version of this material, including references, can be found via the author's home page.
We present a theoretically derived and empirically tested competence model related to the concepts of "object state" and "references" that both form an important part of object-orientedprogramming...
详细信息
ISBN:
(纸本)9781450377157
We present a theoretically derived and empirically tested competence model related to the concepts of "object state" and "references" that both form an important part of object-orientedprogramming. Our model characterizes different levels of programming capability with a focus on possible learning stages of beginning learners. It is based on the notion of understanding objects and their interaction with each other during the runtime of a program. Based on a hierarchical description of our theory, we derive a two-dimensional structure that separates the hierarchy into two facets "structure" (how are objects structured/stored) and "behaviour" (how do objects interact and access each other). Based on this, we have developed a set of items and collected data in a CS1 course (N = 195) to validate the item-set. We analyzed the data using a Rasch model to check item difficulty and the presence of different difficulty levels, and factor analysis to check the dimensions of the model. Furthermore, we argue for the validity of the items withthe help of additional data collected from the students. the results indicate that our theoretical assumptions are correct and that the items will be usable with some minor modifications.
this research paper presents Imikode, a virtual reality (VR)-based learning game to support the teaching and learning of object-orientedprogramming (OOP) concepts in computing education. the system was implemented us...
详细信息
ISBN:
(纸本)9781450377157
this research paper presents Imikode, a virtual reality (VR)-based learning game to support the teaching and learning of object-orientedprogramming (OOP) concepts in computing education. the system was implemented using Google Cardboard SDK and works with any Cardboard compatible headset. the teacher can use Imikode to introduce OOP class in an immersive and engaging way. this early prototype provides basic features to help introduce OOP concepts. We aim at extending it using Artificial Intelligence (AI), by adding a conversational agent able to parse erroneous statements and provide adequate instructions on how to fix them.
Knowledge Management Systems (KMS) is seen as an essential strategic tool for organizations to manage corporate knowledge captured in the database as well as leverage the same for performance enhancement. Knowledge is...
详细信息
ISBN:
(纸本)9781617386077
Knowledge Management Systems (KMS) is seen as an essential strategic tool for organizations to manage corporate knowledge captured in the database as well as leverage the same for performance enhancement. Knowledge is represented in a Knowledge Base (KB) which consists of symbolic knowledge structures. Ontology is one of such structures that represent concepts and their relationships within a domain. the proposed KMS with ontology based KB is developed using object-orientedprogramming platform. Because ontologies are closely related to modern object-oriented software design, it is natural to adapt existing object-oriented software development methodologies for the task of ontology development and this approach has been adopted in this paper. the proposed KMS is a help desk to provide responses to client queries that helps the organization to enhance its performance on repeated queries as the system acquires knowledge on a query repetition through maintenance of ontology based KB.
暂无评论