there are numerous mechanisms for separation of concerns at the source code level. three mechanisms that are the focus of recent attention metadata annotations, pointcuts and advice - can be modeled together with good...
详细信息
ISBN:
(纸本)354027992X
there are numerous mechanisms for separation of concerns at the source code level. three mechanisms that are the focus of recent attention metadata annotations, pointcuts and advice - can be modeled together with good old-fashioned procedures as providing different kinds of bindings: procedure calls bind program points to operations, annotations bind attributes to program points;pointcuts bind sets of points to various descriptions of those sets;named pointcuts bind attributes to sets of points;and advice bind the implementation of an operation to sets of points. this model clarifies how the mechanisms work together to separate concerns, and yields guidelines to help developers use the mechanisms in practice.
Hard-wired control systems are increasingly replaced by program-controlled embedded systems. the programming languages currently employed for their implementation lack constructs and design patterns enforcing intellig...
详细信息
ISBN:
(纸本)9781479950812
Hard-wired control systems are increasingly replaced by program-controlled embedded systems. the programming languages currently employed for their implementation lack constructs and design patterns enforcing intelligible code fostering its verification by certification authorities. Recommendations for such constructs necessary to guarantee safety integrity are given in the international standard IEC 61508-3. One of the recommendations refers to object-orientedprogramming (OOP). therefore, we analyse both basic and advanced properties of OOP like encapsulation, polymorphism, inheritance, prototyping, delegation etc. with respect to functional safety. In a resulting programming language based on PEARL90 [1] we demonstrate coding with examples from hard real-time systems.
A discontinuity exists between object-oriented modeling and programming languages. this discontinuity arises from ambiguous concepts in modeling languages and a lack of corresponding concepts in programming languages....
详细信息
ISBN:
(纸本)1581138318
A discontinuity exists between object-oriented modeling and programming languages. this discontinuity arises from ambiguous concepts in modeling languages and a lack of corresponding concepts in programming languages. It is particularly acute for binary class relationships - association, aggregation, and composition. It hinders the traceability between software implementation and design, thus hampering software analysis. We propose consensual definitions of the binary class relationships with four minimal properties exclusivity, invocation site, lifetime, and multiplicity. We describe algorithms to detect automatically these properties in source code and apply these on several frameworks. thus, we bridge the gap between implementation and design for the binary class relationships, easing software analysis.
the desire for compile-time knowledge about the structure of heap contexts is currently increasing in many areas. However, approaches using whole program analysis are too weak in terms of both efficiency and accuracy....
详细信息
ISBN:
(纸本)354027992X
the desire for compile-time knowledge about the structure of heap contexts is currently increasing in many areas. However, approaches using whole program analysis are too weak in terms of both efficiency and accuracy. this paper presents a novel type system that enforces programmer-defined constraints on reachability via references or pointers, and restricts reference cycles to be within definable parts of the heap. Such constraints can be useful for program understanding and reasoning about effects and invariants, for information flow security, and for run-time optimizations and memory management.
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.
A range of technologies and leaching strategies may be used to improve the quality of leaching object-oriented (OO) concepts where there is a close relationship between OO analysis and design (OOAD) combined with OO p...
详细信息
ISBN:
(纸本)9780769531007
A range of technologies and leaching strategies may be used to improve the quality of leaching object-oriented (OO) concepts where there is a close relationship between OO analysis and design (OOAD) combined with OO programming (OOP). this study investigates the application of a number of these technologies and teaching strategies across university courses in OOAD and OOP, using an empirical approach based upon attitudinal and student performance data. the systems used include: development environments that provide two-way linkage between UML diagrams and OO program code;interactive whiteboards to allow educational demonstrations that more closely represent actual practice;and an online delivery tool for course content, messages and discussions. Close integration between the processes of OOAD and OOP courses is also investigated the approaches significantly improved student grades, perceived levels of understanding and productivity. the integration of course concepts and assignments, and the electronic discussion boards, are key benefit drivers.
this research abstract outlines the work I plan to do as part of my PhD. In particular, I propose to devise a practical way of integrating ownership control into existing programming languages in a way that will help ...
详细信息
ISBN:
(纸本)1581138334
this research abstract outlines the work I plan to do as part of my PhD. In particular, I propose to devise a practical way of integrating ownership control into existing programming languages in a way that will help with adoption of ownership in the general programming community.
the success of technology enhanced learning can be increased by tailoring the content and the learning resources for every student;thus, optimizing the learning process. this study proposes a method for evaluating con...
详细信息
ISBN:
(纸本)9781728134857
the success of technology enhanced learning can be increased by tailoring the content and the learning resources for every student;thus, optimizing the learning process. this study proposes a method for evaluating content difficulty and knowledge proficiency of users based on modified Elo-rating algorithm. the calculated ratings are used further in the teaching process as a recommendation of coding exercises that try to match the user's current knowledge. the proposed method was tested with a programming tutoring system in object-orientedprogramming course. the results showed positive findings regarding the effectiveness of the implemented Elo-rating algorithm in recommending coding exercises, as a proof-of-concept for developing adaptive and automatic assessment of programming assignments.
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.
暂无评论