In this paper, we describe a new Eclipse-based IDE for teaching java following the object-later approach. This IDE allows the programmer to write code in java-, a smaller version of the javalanguage that does not inc...
详细信息
ISBN:
(纸本)9783319301426;9783319301419
In this paper, we describe a new Eclipse-based IDE for teaching java following the object-later approach. This IDE allows the programmer to write code in java-, a smaller version of the javalanguage that does not include object-oriented features, and includes all the powerful features available when using an IDE like Eclipse (such as debugging, automatic building, and project wizards). With our implementation, it is also straightforward to create self-assessment exercises for students, which are integrated in Eclipse and JUnit.
In recent years, Datalog has been used in static analysis to detect bugs and security vulnerabilities. We present a java Static Analysis framework based on Datalog called JDQL, which allows us to find buggy code.
ISBN:
(纸本)9781450340182
In recent years, Datalog has been used in static analysis to detect bugs and security vulnerabilities. We present a java Static Analysis framework based on Datalog called JDQL, which allows us to find buggy code.
As any other software system, frameworks and libraries evolve over time, and so their APIs. Consequently, client systems should be updated to benefit from improved APIs. To facilitate this task and preserve backward c...
详细信息
ISBN:
(纸本)9781509018550
As any other software system, frameworks and libraries evolve over time, and so their APIs. Consequently, client systems should be updated to benefit from improved APIs. To facilitate this task and preserve backward compatibility, API elements should always be deprecated with clear replacement messages. However, in practice, there are evidences that API elements are usually deprecated without such messages. In this paper, we study a set of questions regarding the adoption of deprecation messages. Our goal is twofold: to measure the usage of deprecation messages and to investigate whether a tool is needed to recommend such messages. Thus, we verify (i) the frequency of deprecated elements with replacement messages, (ii) the impact of software evolution on such frequency, and (iii) the characteristics of systems which deprecate API elements in a correct way. Our large-scale analysis on 661 real-world java systems shows that (i) 64% of the API elements are deprecated with replacement messages per system, (ii) there is almost no major effort to improve deprecation messages over time, and (iii) systems that deprecated API elements in a correct way are statistically significantly different from the ones that do not in terms of size and developing community. As a result, we provide the basis for the design of a tool to support client developers on detecting missing deprecation messages.
Design pattern is a template for solving commonly occurring problems in similar situations. Design patterns can be easily implemented using java programming language. To increase the software modularity design pattern...
详细信息
ISBN:
(纸本)9781467395458
Design pattern is a template for solving commonly occurring problems in similar situations. Design patterns can be easily implemented using java programming language. To increase the software modularity design patterns can be used to model cross-cutting concerns in AspectJ programming. The effectiveness of using design patterns in both AspectJ and javaprogramming to encapsulate functional and nonfunctional design elements can provide insight onto the applicability of design patterns. Hence, a new methodology is proposed to compare the design pattern implementation of functional ad non-functional design elements as classes and aspects. An AODPE tool measured the design patterns implementation of functional and nonfunctional design elements. Based on the initial pointers of comparison it was found that AspectJ implementation shows better design properties such as size, inheritance and coupling while implementing cross-cutting functional and non-functional design elements as aspects.
Delta-oriented programming (DOP) is a flexible transformational approach to implement software product lines. In delta-oriented product lines, variants are generated by applying operations contained in delta modules t...
详细信息
Delta-oriented programming (DOP) is a flexible transformational approach to implement software product lines. In delta-oriented product lines, variants are generated by applying operations contained in delta modules to a (possibly empty) base program. These operations can add, remove or modify named elements in a program (e.g., classes, methods and fields in a java program). This paper presents algorithms for refactoring a delta-oriented product line into monotonic form, i.e., either to contain add and modify operations only (monotonic increasing) or to contain remove and modify operations only (monotonic decreasing). Because of their simpler structure, monotonic delta-oriented product lines are easier to analyze. The algorithms are formalized by means of a core calculus for DOP of product lines of java programs and their correctness and complexity are given.
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.
暂无评论