object-oriented (OO) programs, which use subtyping and dynamic dispatch, make specification and verification difficult because the code executed by a method call may dynamically be dispatched to an overriding method i...
详细信息
This paper brings a complete comparison among three power flow methods used worldwide for radial distribution systems. These methods are referred to as Power Summation, Current Summation and Ladder. For analysis, the ...
详细信息
In this study, we propose a transparent model for reliable execution of object-oriented software. We design a generic object-orientedprogramming tool for redundant software execution to provide the desired level of r...
详细信息
In this study, we propose a transparent model for reliable execution of object-oriented software. We design a generic object-orientedprogramming tool for redundant software execution to provide the desired level of reliability against transient hardware faults. To achieve this, we utilize the Proxy design pattern which is one of the well-known GoF design patterns that are formed to make software systems flexible and easy to maintain. Proxy design pattern provides a controlled access and a transparent mechanism for adding new functionalities to an existing object when accessing it. Combining the instruments of dynamic proxy and annotations in Java programming language, we present, RedundantCaller, a generic, transparent, and configurable tool for redundant execution and majority voting. Our tool takes any object and creates a dynamic proxy for it which executes the methods of the object multiple times in separate threads, and performs majority voting on the background, requiring minimum amount of change in the original user code. Thanks to annotations, users can configure the redundant execution scheme methodwise. Our experiments demonstrate that our tool provides a significant level of reliability to any object-oriented software with a reasonable amount of performance degradation through multithreaded execution.
Observing and modifying object-oriented programs often means interacting with objects. At runtime, it can be a complex task to identify those objects due to the live state of the program. Some objects may exist for on...
详细信息
Reference immutability type systems such as Javari and ReIm ensure that a given reference cannot be used to mutate the referenced object. These systems are conservative in the sense that a mutable reference may be mut...
详细信息
Software Design Patterns are a concept for solving common problems in object-orientedprogramming. This concept offers standard solutions for architectural and conceptual problems in computer programming and modeling ...
详细信息
Reflective practice is needed for a balanced integration of new learning and teaching approaches in higher education. However, it often remains unacknowledged or is even seen as too expensive. The paper presents a cas...
详细信息
Model refactoring enhances the platform-independent design models of software aiming at smoother impact of requirement changes, thereby improving the design quality and assisting in their evolution and maintenance. Th...
详细信息
The implicit dynamic solution of multibody and finite element simulations with kinematic constraints requires the assembly of KKT-like matrices, which are constant in structure, but unsymmetric in the most general cas...
详细信息
So far, valuable research studies have been conducted on mapping notations of object-oriented specification, such as object-Z, in different object-orientedprogramming languages, such as C++. However, the results of s...
详细信息
So far, valuable research studies have been conducted on mapping notations of object-oriented specification, such as object-Z, in different object-orientedprogramming languages, such as C++. However, the results of selecting JVM-based programming languages for mapping have not covered most of basic object-Z structures. In this paper, the Groovy language, as a dynamic JVM-based language, is selected to overcome some of the existing limitations. As the main contribution, the rules required for mapping object-Z specifications to execute Groovy code are introduced. The proposed rules cover notions such as multiple inheritance, inverse specification of functions, functions defined on generic definitions, and free-type constructors. Previous methods have not covered these notions for the formal development of program from object-oriented specifications, regardless of the selected formal specification language and target programming language. In addition, in this paper, the parallel composition construct is mapped to a parallel, executable code to improve the faithfulness of the final code to the initial specification. A mapping rule for the class union construct is introduced, which has not yet been provided for any JVM-based language. Unlike previous works, instead of presenting the mapping rules in terms of natural languages, they are presented in terms of some formal mapping rules. (C) 2018 Sharif University of Technology. All rights reserved.
暂无评论