Design patterns are used as a means of documenting solutions to commonly occurring problems. In this work, we focus on object-oriented patterns that require object extension. Typically, the implementation of such patt...
详细信息
Examples form an integral part of learning to program. In this paper we argue that the role of examples should go beyond merely illustrating concepts or principles and should "sell" concepts to new programme...
详细信息
ISBN:
(纸本)1581138334
Examples form an integral part of learning to program. In this paper we argue that the role of examples should go beyond merely illustrating concepts or principles and should "sell" concepts to new programmers. We identify four common pitfalls to avoid when designing examples for teaching programming. We show how examples that are too abstract or too complex can be harmful in explaining new concepts to students. We also show how some examples used to illustrate new concepts can undermine previously taught concepts by not applying these concepts consistently. Finally, we show how some examples can do harm by undermining the very concept they are introducing. the aim of this paper is to encourage educators to think critically about examples before using them.
In this paper we describe the data access features of Cω, an experimental programming language based on C# currently under development at Microsoft Research. Cω targets distributed, data-intensive applications and a...
详细信息
A simple alternative to Mockobjects is presented. Given the interface of an object required by a class-under-test, a Pseudo-Class is created implementing all methods such that they immediately fail. A test-specific su...
详细信息
ISBN:
(纸本)1581138334
A simple alternative to Mockobjects is presented. Given the interface of an object required by a class-under-test, a Pseudo-Class is created implementing all methods such that they immediately fail. A test-specific sub-class of the Pseudo-Class is created locally in the test (ex. as an anonymous inner-class in Java), over-riding only the methods required by the interaction between the object and the class-under-test for the test-scenario. Typically, the method implementations are extremely simple (a few lines, at most), and the number of methods overridden is small. this mechanism was found adequate for more than 90% of our unit-tests (in a 1000-class system with over 2000 test methods, we finally ended up with about four real Mockobject classes and more than 40 Pseudo-Classes).
In this demonstration we will show the flow of the Mock object development process by pair-programming to develop a code example. During the session, we will introduce the declarative jMock API and show how we use it ...
详细信息
ISBN:
(纸本)1581138334
In this demonstration we will show the flow of the Mock object development process by pair-programming to develop a code example. During the session, we will introduce the declarative jMock API and show how we use it to describe relationships between objects when developing test-first. We will show how this approach helps developers concentrate on real requirements and how it encourages a design in which objects are focused with well-defined responsibilities. We will also show our practices for maintaining the readability of tests written using jUnit with jMock. this work is described in a Practitioner Report at this conference, "Mock Roles, Not objects".
Knowledge-based systems are large and complex software systems which are difficult to understand and design. A multiparadigm programming approach, based on an integration of the object-orientedprogramming paradigm an...
详细信息
Knowledge-based systems are large and complex software systems which are difficult to understand and design. A multiparadigm programming approach, based on an integration of the object-orientedprogramming paradigm and the logic programming paradigm, is reported in this paper for the development of these systems. Such an approach promotes boththe analysis and synthesis processes which are essential in understanding and designing large knowledge-based systems. Moreover, this approach emphasizes an equal and co-operating partnership between each programming paradigm for problem analysis and solving. A multiparadigm programming language, EXL, is developed for this purpose. EXL integrates the object-orientedprogramming paradigm and the logic programming paradigm by `stitching' them together withthe notion of logical object. In this way, EXL provides structural level modularization and relational level modularization in building knowledge-based systems.
Autonomous vehicles must navigate independently in an outdoor environment using features or objects. However, some objects may be more or less suitable for localization due to their attributes. therefore, this work in...
详细信息
Autonomous vehicles must navigate independently in an outdoor environment using features or objects. However, some objects may be more or less suitable for localization due to their attributes. therefore, this work investigates the suitability of landmarks for camera- and object-based outdoor localization methods. First, object attributes are methodically derived from the requirements of object-based localization. the physical representation on the camera image plane, probability of occurrence, and persistence were identified as influencing the object localization suitability. the influence of the object's camera image plane representation regarding object recognition algorithms is not considered or discussed, but advice on the minimum object pixel size is provided. the first milestone was the creation of an equation for object localization suitability calculation by normalizing and multiplying the identified attributes. Simultaneously, potential objects from the outdoor environment were identified, resulting in a structured object catalog. the results of the equation and catalog are a ranked according to the object localization suitability in a comparison table. Our comparison demonstrates that objects such as buildings or trees are more suitable than street lane markings for self-localization. However, most current datasets do not include the proposed instantiated objects. the paper addresses this issue, assists in the object selection for outdoor localization methods and provides input for the creation of future-oriented datasets and autonomous driving maps.
One of the limitations of UML is it lacks a systematic way for verifying consistency within and between models. this paper explores the intra-model consistency problem in the context of statechart diagrams. We propose...
详细信息
these notes have the status of letters written to ourselves: we wrote them down because, without doing so, we found ourselves making up new arguments over and over again. So began the abstract of our earlier paper Not...
详细信息
ISBN:
(纸本)1581138334
these notes have the status of letters written to ourselves: we wrote them down because, without doing so, we found ourselves making up new arguments over and over again. So began the abstract of our earlier paper Notes on Postmodern programming. We now revisit the issue of postmodern programming, and attempt to address some of the questions raised by our exposition. To illustrate the nature of postmodernism we do not do this directly, but instead present a series of snapshots, parodies, and imagined conversations that we hope will help. What do you think of the abstract so far? Self-reference and a irreverent approach are part of this topic, so it's important to chill out and let things flow. We claim that computer science and software design grew up amid the unquestioned landscape of modernism, and that too often we cling to the otherwise ungrounded values, even as modernism itself is ever more compromised.
A novel method for identifying dense communities of classes (clusters) within an object-oriented system has been developed. Such communities might possibly imply relevance of functionality and thus be used as Reusable...
详细信息
ISBN:
(纸本)1581138334
A novel method for identifying dense communities of classes (clusters) within an object-oriented system has been developed. Such communities might possibly imply relevance of functionality and thus be used as Reusable Components. the term "Reusable Components" is used to refer to a set of interrelated classes that represent a module that can be used in different software systems. To accomplish this identification we employ Algebraic Graph theory (Spectral Graph Partitioning Techniques). From a modified class diagram of the software system we create a graph in which classes stand for the nodes and the discrete messages exchanged between the classes stand for the edges. Our approach is based on an iterative method for partitioning the graph in order to identify possible reusable components within the system. the eigenvectors of the Laplacian matrix derived from the graph are used for the partitioning.
暂无评论