Effect systems are important for reasoning about the side effects of a program. Although effect systems have been around for decades, they have not been widely adopted in practice because of the large number of annota...
详细信息
ISBN:
(纸本)9780769538914
Effect systems are important for reasoning about the side effects of a program. Although effect systems have been around for decades, they have not been widely adopted in practice because of the large number of annotations that they require. A tool that infers effects automatically can make effect systems practical. We present an effect inference algorithm and an Eclipse plug-in, DPJIZER, which alleviate the burden of writing effect annotations for a language called Deterministic Parallel Java (DPJ). the key novel feature of the algorithm is the ability to infer effects on nested heap regions. Besides DPJ, we also illustrate how the algorithm can be used for a different effect system based on object ownership. Our experience shows that DPJIZER is both useful and effective: (i) inferring effect annotations automatically saves significant programming burden;and (ii) inferred effects are more precise than those written manually, and are fine-grained enough to enable the compiler to prove determinism of the program.
Formal specifications are used to identify programming errors, verify the correctness of programs, and as documentation. Unfortunately, producing them is error-prone and time-consuming, so they are rarely used in prac...
详细信息
ISBN:
(纸本)9780769538914
Formal specifications are used to identify programming errors, verify the correctness of programs, and as documentation. Unfortunately, producing them is error-prone and time-consuming, so they are rarely used in practice. Inferring specifications from a running application is a promising solution. However, to be practical, such an approach requires special techniques to treat large amounts of runtime data. We present a scalable dynamic analysis that infers specifications of correct method call sequences on multiple related objects. It preprocesses method traces to identify small sets of related objects and method calls which can be analyzed separately. We implemented our approach and applied the analysis to eleven real-world applications and more than 240 million runtime events. the experiments show the scalability of our approach. Moreover, the generated specifications describe correct and typical behavior, and match existing API usage documentation.
this paper provides an experience report on the use of aspect-oriented technology as a means to modularize the implementation of business rules in an object-oriented, large scale case study. the goal of this refactori...
ISBN:
(纸本)9781424426133
this paper provides an experience report on the use of aspect-oriented technology as a means to modularize the implementation of business rules in an object-oriented, large scale case study. the goal of this refactoring of the system was to provide a proof-of-concept implementation of how such an aspect-oriented solution can improve the modularity and the extensibility of the business rule implementation. this paper focusses on the approach taken in refactoring the system and the difficulties of integrating the aspect solution into the build process.
作者:
Lassen, Ole TorpRoskilde Univ Ctr
Dept Commun Business & Informat Technol Res Grp PLIS Programming Log & Intelligent Syst DK-4000 Roskilde Denmark
In this work, we consider probabilistic models that can infer biological information solely from biological sequences such as DNA. Traditionally, computational models for biological sequence analysis have been impleme...
详细信息
Aspect orientedprogramming (AOP) has been proposed as a new programming paradigm. the originality in AOP is the aspect, a single modularization unit for all those functionalities that were originally spread across se...
详细信息
ISBN:
(纸本)9781424421572
Aspect orientedprogramming (AOP) has been proposed as a new programming paradigm. the originality in AOP is the aspect, a single modularization unit for all those functionalities that were originally spread across several modules and tangled with each other (called crosscutting concerns). Using an aspect, a crosscutting concern can be factored out into a single, separate unit. this paper summarizes a PhD thesis that presents an approach to automatize the migration of existing objectoriented systems towards AOR Different techniques are proposed to cope withthe migration and assessed on a large software basis.
Software architecture modeling and representation became a main phase of the development process of complex systems. In fact, software architecture representation provides many advantages during all phases of software...
详细信息
ISBN:
(纸本)9781424421572
Software architecture modeling and representation became a main phase of the development process of complex systems. In fact, software architecture representation provides many advantages during all phases of software life cycle. Nevertheless, for man), systems, like legacy or eroded ones, there is no available representation of their architectures. In order to benefit from this representation, we propose, in this paper, an approach called ROMANTIC which focuses on extracting the architecture of an object-oriented system. the main idea of this approach is to propose a quasi-automatic process of architecture recovery based on the quality characteristics of an architecture by formulating it as a search-based problem. this last acts on the space composed of all possible architectures abstracting the object-oriented system.
this paper presents the logic programming concept of thread-based competitive or-parallelism,, which combines the original idea of competitive or-parallelism with committed-choice nondeterminism and speculative thread...
详细信息
ISBN:
(纸本)9783540899815
this paper presents the logic programming concept of thread-based competitive or-parallelism,, which combines the original idea of competitive or-parallelism with committed-choice nondeterminism and speculative threading. In thread-based competitive or-parallelism, an explicit. disjunction of subgoals is interpreted as a set of concurrent, alternatives, each running in its own thread. the subgoals compete for providing an answer and the first successful subgoal leads to the nation of the remaining ones. We discuss the implementation of competitive or-parallelism in the context, of Logtalk, all object-oriented logic programming language, and present results.
Refactoring, in spite of widely acknowledged as one of the best practices of object-oriented design and programming, still lacks quantitative grounds and efficient tools for tasks such as detecting smells, choosing th...
详细信息
We study the impact of design patterns on quality attributes in the context of software maintenance and evolution. We show that, contrary to popular beliefs, design patterns in practice impact negatively several quali...
详细信息
ISBN:
(纸本)9781424421572
We study the impact of design patterns on quality attributes in the context of software maintenance and evolution. We show that, contrary to popular beliefs, design patterns in practice impact negatively several quality attributes, thus providing concrete evidence against common lore. We then study design patterns and object-oriented best practices by formulating a second hypothesis on the impact of these principles on quality. We show that results for some design patterns cannot be explained and conclude on the need for further studies. thus, we bring further evidence that design patterns should be used with caution during development because they may actually impede maintenance and evolution.
In this demonstration, we present an Eclipse plug-in that automatically identifies Type-Checking bad smells in Java source code, and resolves them by applying the "Replace Conditional with Polymorphism" or &...
详细信息
ISBN:
(纸本)9781424421572
In this demonstration, we present an Eclipse plug-in that automatically identifies Type-Checking bad smells in Java source code, and resolves them by applying the "Replace Conditional with Polymorphism" or "Replace Type Code with State/Strategy" refactorings. To the best of our knowledge there is a lack of tools that identify Type-Checking bad smells. Moreover, none of the state-of-the-art IDEs support the refactorings that resolve such kind of bad smells.
暂无评论