Modern distributed applications are typically obtained by integrating new code with legacy (and possibly untrusted) third-party services. Some recent works have proposed to discipline the interaction among these servi...
详细信息
ISBN:
(数字)9783319395708
ISBN:
(纸本)9783319395708;9783319395692
Modern distributed applications are typically obtained by integrating new code with legacy (and possibly untrusted) third-party services. Some recent works have proposed to discipline the interaction among these services through behavioural contracts. The idea is a dynamic discovery and composition of services, where only those with compliant contracts can interact, and their execution is monitored to detect and sanction contract breaches. In this setting, a service is said honest if it always respects the contracts it advertises. Being honest is crucial, because it guarantees a service not to be sanctioned;further, compositions of honest services are deadlock-free. However, developing honest programs is not an easy task, because contracts must be respected even in the presence of failures (whether accidental or malicious) of the context. In this paper we present Diogenes, a suite of tools which supports programmers in writing honest java programs. Through an Eclipse plugin, programmers can write a specification of the service, verify its honesty, and translate it into a skeletal java program. Then, they can refine this skeleton into proper java code, and use the tool to verify that its honesty has not been compromised by the refinement.
Many factor that affected schedule arrangement made the problem became more complicated. Searching for timetabling solution using optimization process is a real example for a complex computation. One of the ways to so...
详细信息
ISBN:
(纸本)9781509017096
Many factor that affected schedule arrangement made the problem became more complicated. Searching for timetabling solution using optimization process is a real example for a complex computation. One of the ways to solve the problem of computation complexity is changing sequential computation paradigm into parallel computing ones. This research aimed to analyze and to apply parallel processing for building a course timetabling software for the Department of Electrical Engineering, State Islamic University of Sultan Syarif Kasim Riau. The research was begun with the description on course timetabling problem in the department. Some of solution prerequisite for hard and soft constraints has been determined. Afterward, the conflict course graph was reconstructed properly. The process was done simultaneously with the process of rooms to be assembled, graph that was formed has included its room candidate. Then, conflict course graph was colored to become non-conflict course graph. The coloring task was calculated by parallel computing using multithread classes in java programming language. The results were achieved in this research are the process of graph to be formed in an adjacency matrix, and coloring of the graph was done successfully both in sequential and multithread computations. Solving the process into two threads, the execution time become faster than sequential ones with the speed up is 3.14 times, and the efficiency of processor is 78.51%.
Modified Condition / Decision Coverage (MC/DC) is the second strongest coverage criterion in white-box testing. According to DO178C/RTCA criterion it is mandatory to achieve Level A certification for MC/DC. Concolic t...
详细信息
ISBN:
(纸本)9788360810903
Modified Condition / Decision Coverage (MC/DC) is the second strongest coverage criterion in white-box testing. According to DO178C/RTCA criterion it is mandatory to achieve Level A certification for MC/DC. Concolic testing is the combination of Concrete and Symbolic execution. It is a systematic technique that performs symbolic execution but uses randomly generated test inputs to initialize the search and to allow the tool to execute programs when symbolic execution fails. In this paper, we extend concolic testing by computing MC/DC using the automatically generated test cases. On the other hand Feedback Directed Random Test Generation builds inputs incrementally by randomly selecting a method call to apply and find arguments from among previously-constructed inputs. As soon as the input is built, it is executed and checked against a set of contracts and filters. In our proposed work, we combine feedback-directed test cases generation with concolic testing to form java-Hybrid Concolic Testing (java-HCT). java-HCT generates more number of test cases since it combines the features of both Feedback Directed Random Test and Concolic Testing. Hence, through java-HCT, we achieve high MC/DC. Combinations of approaches represent different tradeoffs of completeness and scalability. We develop java-HCT using RANDOM', jCUTE, and COPECA. Combination of RANDOOP and JCUTE creates more test cases. COPECA is used to measure MC/DC% using the generated test cases. Experimental study shows that java-HCT produces better MC/DC% than individual testing techniques(feedback-directed random testing and concolic testing). We have improved MC/DC by x1.62 and by x1.26 for feedback-directed random testing and concolic testing respectively.
This paper presents a framework for real-time reactive stream processing. The approach is to extend the proposed java 9 Reactive Streams model and integrate it with the Real-Time Specification for java. The approach l...
详细信息
ISBN:
(纸本)9781467390323
This paper presents a framework for real-time reactive stream processing. The approach is to extend the proposed java 9 Reactive Streams model and integrate it with the Real-Time Specification for java. The approach leverages a real-time version of the java 8 Stream processing framework. Our approach addresses the major issue when using Reactive Streams in real-time: there is no way to set the timeout. Our evaluation shows there is significant improvement in the predictability of stream processing with our framework over that of one implemented using regular java.
Refactoring means that a program is changed without changing its behaviour from an observer's point of view. Does the change of behaviour also imply that the security of the program is not affected by the changes?...
详细信息
ISBN:
(纸本)9783319298832;9783319298825
Refactoring means that a program is changed without changing its behaviour from an observer's point of view. Does the change of behaviour also imply that the security of the program is not affected by the changes? Using Myers and Liskov's distributed information flow control model DLM and its java implementation Jif, we explore this question practically on common patterns of Refactoring as known from Fowler. We first illustrate on an example the "Extract method" refactoring and how it can endanger confidentiality. We then show how to construct a secure version of this major refactoring pattern by employing Jif to control information flows. Finally, we can show that security leaks as encountered at the outset are not possible anymore.
Programmers commonly search the Web to find code examples that can help them solve a specific programming task. While some novice programmers may be willing to spend as much time as needed to understand a found code e...
详细信息
ISBN:
(纸本)9781509014286
Programmers commonly search the Web to find code examples that can help them solve a specific programming task. While some novice programmers may be willing to spend as much time as needed to understand a found code example, more experienced ones want to spend as little time as possible. They want to get a quick overview of the example's operation, so they can start working with it immediately. Getting this overview is often non-trivial and requires a tedious and manual inspection process. In this paper, we introduce a technique called Multi-staging to Understand, which streamlines this inspection process by distilling the essence of code examples. The essence of a code example conveys the most important aspects of the example's intended function. Our technique automatically decomposes the code in an example into code stages that can be explored non-sequentially;enabling fast exploratory learning. We discuss the key components of our technique and describe empirical results based on actual code examples on StackOverflow.
The choice of the first programminglanguage and the corresponding programming paradigm is an important part of the software development process. Knowing the advantages and constraints of individual programming paradi...
详细信息
ISBN:
(纸本)9789532330885
The choice of the first programminglanguage and the corresponding programming paradigm is an important part of the software development process. Knowing the advantages and constraints of individual programming paradigms is important as it can be crucial for successful software implementation. In this paper we conduct an empirical comparison of functional and object oriented programminglanguages using analog examples in C#, F#, Haskell, and java. Three algorithms were implemented: algorithm for solving N queens problem, algorithm for generating n-th left-truncatable prime and merge sort algorithm in C#, F#, Haskell and java programming languages. An overview of programminglanguages efficiency is given by measuring two basic parameters: number of lines of code and program execution speed. Also, system resource usage is monitored during execution. Limited experiments showed that the programminglanguagejava is faster than the other three languages whose performances were measured. java was surprisingly fast on these problems that are more suitable for functional programminglanguages. Haskell was less memory intensive (up to two times less than java) with similar execution times, while .NET languages were slower up to four times in comparison to java. Object-oriented languages C# and java had significantly more lines of code for all three algorithms when compared to functional programminglanguage Haskell and the hybrid one F#.
Refactorings often require semantic correctness conditions that amount to software model checking. However, IDEs such as Eclipse's java Development Tools implement far simpler checks on the structure of the code. ...
详细信息
ISBN:
(纸本)9783319471662;9783319471655
Refactorings often require semantic correctness conditions that amount to software model checking. However, IDEs such as Eclipse's java Development Tools implement far simpler checks on the structure of the code. This leads to the phenomenon that a seemingly innocuous refactoring can change the behaviour of the program. In this paper we demonstrate our technique of introducing runtime checks for two particular refactorings for the java programming language: Extract And Move Method, and Extract Local Variable. These checks can, in combination with unit tests, detect changed behaviour and allow identification of which specific refactoring step introduced the deviant behaviour.
This paper offers a personal reflection on a number of attempts over the past decade to apply a variety of approaches to construct a product line for solitaire card games implemented in java. A product line shares a c...
详细信息
ISBN:
(纸本)9783319471662;9783319471655
This paper offers a personal reflection on a number of attempts over the past decade to apply a variety of approaches to construct a product line for solitaire card games implemented in java. A product line shares a common set of features developed from a common set of software artifacts. A feature is a unit of functionality within a system that is visible to an end-user and can be used to differentiate members of the product line. The ultimate research goal is to assemble a product line by selecting a configuration of a set of pre-designed modular units and developing new units as necessary for individual members;in short, incorporating configuration into routine development. A secondary goal was to develop a suitable tool chain that could be integrated with existing IDEs to achieve widespread acceptance of the approach. We compare progress against by-hand development in java. During this period we investigated a number of approaches from the research literature, including components, aspects, and layers;these efforts led to a productive collaboration supported by type theory.
Structured prediction algorithms-used when applying machine learning to tasks like natural language parsing and image understanding-present some opportunities for fine-grained parallelism, but also have problem-specif...
详细信息
ISBN:
(纸本)9781509038671
Structured prediction algorithms-used when applying machine learning to tasks like natural language parsing and image understanding-present some opportunities for fine-grained parallelism, but also have problem-specific serial dependencies. Most implementations exploit only simple opportunities such as parallel BLAS, or embarrassing parallelism over input examples. In this work we explore an orthogonal direction: using the fact that these algorithms can be described as specialized forward-chaining theorem provers [1], [2], and implementing fine-grained parallelization of the forward-chaining mechanism. We study context-free parsing as a simple canonical example, but the approach is more general.
暂无评论