This report summarizes the presentations, discussions, and thoughts expressed during the workshop sessions. Full proceedings are available as a technical report of the Department of Software Engineering and Computer S...
详细信息
ISBN:
(纸本)354066954X
This report summarizes the presentations, discussions, and thoughts expressed during the workshop sessions. Full proceedings are available as a technical report of the Department of Software Engineering and Computer Science at the University of Karlskrona/Ronneby, Sweden (http://***/).
Patterns within an analysis pattern language are related to each other in several ways: the application of a pattern can result in the application of another, a pattern can be applied only if another pattern was appli...
详细信息
Patterns within an analysis pattern language are related to each other in several ways: the application of a pattern can result in the application of another, a pattern can be applied only if another pattern was applied (or was not applied), etc. Also, several variants of a pattern may co-exist, and the application of a particular variant can lead to the inclusion or removal of associations between classes that form the pattern. In this paper, we show how we have used aspectorientedprogramming to implement relationships between classes of an analysis pattern or between classes shared by more than one pattern. This allows the incremental development of a framework to support the pattern language, and also eases the instantiation of patterns and pattern variants. Copyright 2009 ACM.
Understanding the collaborations that arise between the instances of classes in object-oriented programs is important for the analysis, optimization, or modification of the program. Relationships have been proposed as...
详细信息
ISBN:
(纸本)9783540735885
Understanding the collaborations that arise between the instances of classes in object-oriented programs is important for the analysis, optimization, or modification of the program. Relationships have been proposed as a programming language construct to enable an explicit representation of these collaborations. This paper introduces a relational model that allows the specification of systems composed of classes and relationships. These specifications rely in particular on member interposition (facilitates the specification of relationship-dependent members of classes) and on relationship invariants (facilitate the specification of the consistency constraints imposed on object collaborations). The notion of a mathematical relation is the basis for the model. Employing relations as an abstraction of relationships, the specification of a system can be formalized using discrete mathematics. The relational model allows thus not only the specification of object collaborations but also provides a foundation to reason about these collaborations in a rigorous fashion.
Adequate documentation of an object-oriented framework is the prerequisite to its success as a reusable component. The overall design of a framework and its intended method of reuse are not obvious from the source cod...
详细信息
ISBN:
(纸本)3540630899
Adequate documentation of an object-oriented framework is the prerequisite to its success as a reusable component. The overall design of a framework and its intended method of reuse are not obvious from the source code and thus have to be addressed in the documentation. Most importantly, the documentation of a framework has to be structured in such a way that it guarantees the adequate support of three major audiences: users selecting a framework, users learning to develop typical applications based on the selected framework, and users intending to modify its architecture. This paper presents a model for structuring the documentation of an object-oriented framework. The model integrates existing approaches such as patterns, hypertext, program-understanding tools, and formal approaches into a single structure that is geared towards supporting the three audiences. The model will be illustrated using HotDraw, a Smalltalk framework for drawing editors, as an example. We also give a preliminary evaluation of the model.
Even when implemented in a purely procedural programming language, properly designed programs possess elements of good design that are expressible through object-oriented constructs and concepts. For example, placing ...
详细信息
ISBN:
(纸本)9783642390388
Even when implemented in a purely procedural programming language, properly designed programs possess elements of good design that are expressible through object-oriented constructs and concepts. For example, placing structured types and the procedures operating on them together in the same module achieves a weak form of encapsulation that reduces inter-module coupling. This paper presents a novel technique, and a supporting tool AutoOO, that extracts such implicit design elements from C applications and uses them to build reengineered object-oriented programs. The technique is completely automatic: users only provide a source C program, and the tool produces an object-oriented application written in Eiffel with the same input/output behavior as the source. An extensive evaluation on 10 open-source programs (including the editor vim and the math library libgsl) demonstrates that our technique works on applications of significant size and builds reengineered programs exhibiting elements of good object-oriented design, such as low coupling and high cohesion of classes, and proper encapsulation. The reengineered programs also leverage advanced features such as inheritance, contracts, and exceptions to achieve a better usability and a clearer design. The tool AutoOO is freely available for download.
Gradual typing, proposed by Siek and Taha, is a framework to combine the benefits of static and dynamic typing. Under gradual typing, some parts of the program are type-checked at compile time, and the other parts are...
详细信息
The benefits of computational reflection are the abilities to reason and alter the dynamic behavior of computation from within the language framework. This is more beneficial in concurrent/ distributed computing, wher...
详细信息
Specifications of object-oriented programs conventionally employ Boolean expressions of the programming language for assertions. programming errors can be discovered by checking at runtime whether an assertion, such a...
详细信息
ISBN:
(纸本)9783642141065
Specifications of object-oriented programs conventionally employ Boolean expressions of the programming language for assertions. programming errors can be discovered by checking at runtime whether an assertion, such as a precondition or class invariant, holds. In this work, we show how separation logic can be used to verify that these executable specifications will always hold at runtime. Both the program and its executable assertions are verified with respect to separation logic specifications. A novel notion called relative purity embraces historically problematic side-effects in executable specifications, and verification boils down to proving connecting implications. Even model-based specifications can be verified. The framework is also well-suited to separation logic proof tools and now implemented in jStar. Numerous automatically verified examples illustrate the framework's use and utility.
暂无评论