An execution of a message-passing program is nondeterministic if message races exist. In this paper, a formal definition of a message race for asynchronous communication is presented. The trace of an execution of a me...
详细信息
An execution of a message-passing program is nondeterministic if message races exist. In this paper, a formal definition of a message race for asynchronous communication is presented. The trace of an execution of a message-passing program is a sequence of send and receive events. For a receive event r in a trace T, its race set is the set of messages in T that have a race with the message received at r and can be received at r during some possible executions of the same program with the same input. A race analysis algorithm analyzes a trace to determine the race set for each receive event in the trace. Three race analysis algorithms are given for three different types of sequences of send and receive events. It is shown that these race analysis algorithms can be used to solve a number of problems in testing and debugging message-passing programs.
Function Point Analysis (FPA) is a well-known method to measure the functionality of a system, from the user's point of view. Both Albrecht's original model and a local variant we studied assume that effort is...
详细信息
Function Point Analysis (FPA) is a well-known method to measure the functionality of a system, from the user's point of view. Both Albrecht's original model and a local variant we studied assume that effort is primarily related to the size of a change. Analysis of data gathered on a major system over a period of 18 months does not confirm this relation. Rather, our data suggests that the size of the component to be changed has a much larger impact on effort than the size of the change itself. Furthermore, the various corrective factors of the function point model do not help to improve effort estimates in the environment we studied. Finally, we found that expert estimates outperform the function point estimates, while analogy-based estimates slightly outperform the expert estimates.
Remote Procedure Call (RPC) is a commonly used mechanism for client/server applications. RPC implements a tightly synchronized client/server interaction that is analogous to the well understood procedure call in regul...
详细信息
Remote Procedure Call (RPC) is a commonly used mechanism for client/server applications. RPC implements a tightly synchronized client/server interaction that is analogous to the well understood procedure call in regular non-distributed applications. The underlying principle common to all RPC-based tools and standards is that both client and server share a common IDL (Interface Definition Language) file. Automatic tools process the IDL file and generate source files that when compiled with the application, ensure client/server run-time compliancy. We introduce an RPC methodology for C++ client/server applications that follows a different pattern;sharing of C++ base classes, in place of an IDL file. This releases the developer from the dependence on, and need to learn complex RPC tools and standards. We believe that C++ programmers will find this approach sufficient for most of their distributed-applications development needs.
When migrating a System Image to a new processor, how does one compare the performance before and after? This paper discusses the required statistics and applies the theory to some specific cases.
When migrating a System Image to a new processor, how does one compare the performance before and after? This paper discusses the required statistics and applies the theory to some specific cases.
The use case concept is a tool for capturing the requirements of a system. A single use case describes a subset of a system's functionality in terms of the interactions between the system and a set of users or act...
详细信息
The use case concept is a tool for capturing the requirements of a system. A single use case describes a subset of a system's functionality in terms of the interactions between the system and a set of users or actors. A use case is initiated by a particular user, and serves the purpose of delivering some meaningful unit of work, service, or value to the initiator. When capturing requirements, a use case views the system as a black box. The specification of a use case and its related concepts using the Z formalism are presented.
We present a type system for the programming language Erlang. The type system supports subtyping and declaration-free recursive types, using subtyping constraints. Our system is similar to one explored by Aiken and Wi...
详细信息
We present a type system for the programming language Erlang. The type system supports subtyping and declaration-free recursive types, using subtyping constraints. Our system is similar to one explored by Aiken and Wimmers, though it sacrifices expressive power in favour of simplicity. We cover our techniques for type inference, type simplification, and checking when an inferred type conforms to a user-supplied type signature, and report on early experience with our prototype.
Complex computersystems often involve complex coordination among distributed components that are susceptible to failure and reconfiguration during normal execution. New advanced techniques are required for maintainin...
详细信息
ISBN:
(纸本)0818677430
Complex computersystems often involve complex coordination among distributed components that are susceptible to failure and reconfiguration during normal execution. New advanced techniques are required for maintaining reliability of complex computersystems;traditional techniques used in conventional systems are based on assumptions that are invalid in complex computersystems. These advanced techniques permit complex interaction and exploit semantics of complex applications to improve efficiency of concurrency and recovery from failure. During failure recovery, global consistency is maintained by automatically analyzing dependency among operation execution that is defined in terms of properties of the behavior model. By analyzing application behavior, this technique provides the benefit of efficient recovery to a consistent intermediate state and reduces loss of computation or external work.
Parallelization environments still have limited usability for the large number of scientists and industrial users wishing to use High Performance Computing. This is due to software development being geared towards the...
详细信息
Parallelization environments still have limited usability for the large number of scientists and industrial users wishing to use High Performance Computing. This is due to software development being geared towards the expert user with knowledge of parallelization and the small percentage of real code that can be analyzed because of limitations with symbolic data dependence analysis. There is need for software that will convert sequential programs to parallel code without concerning the user with parallel programming issues in the main. During parallelization the sequential program graph is restructured by the application of a number of transformations that remove and reduce loop carried dependences. Selecting the optimum sequence of transformations is a problem that has not been solved satisfactorily by traditional programming techniques. This paper outlines an investigation into the usefulness of neural networks in offering transformation selection guidance. The key issues of code characterization, knowledge acquisition and two neural network based parallelization tools are addressed.
The software reliability of a system based on N-version programming is dominated by how well infrequent but difficult inputs conditions are handled. In traditional single version programming, these inputs are responsi...
详细信息
The software reliability of a system based on N-version programming is dominated by how well infrequent but difficult inputs conditions are handled. In traditional single version programming, these inputs are responsible for only a small percentage of software failures. As versions are added using N-version programming techniques, failures due to common and simple input conditions are quickly reduced. But failures due to infrequent but difficult conditions are only slightly reduced. For a system with a large number of versions the vast majority of failures are due to infrequent but difficult input conditions. This complicates the prediction of software reliability and effects how N-Version programming system should be implemented.
BDCom-C++, a program understanding system for C++ language, is described in this paper. This system analyzes C++ programs statically by means of incremental parsing, abstracts program information according to a concep...
详细信息
BDCom-C++, a program understanding system for C++ language, is described in this paper. This system analyzes C++ programs statically by means of incremental parsing, abstracts program information according to a conceptual model formed with EER (Enhanced Entity Relationship) model and stores the information in database. Moreover, according to different requirements, it facilitates the understanding of C++ programs, creates OOD (Object-Oriented Design) documents reversely, or assists extracting reusable components.
暂无评论