Results 1 - 10
of
39
Using role components to implement collaboration-based design
- In Proc. of OOPSLA’96, volume 28(10) of ACM SIGPLAN Notices
, 1996
"... In this paper we present a method of code imple-mentation that works in conjunction with collab-oration and responsibility based analysis model-ing techniques to achieve better code reuse and resilience to change. Our approach maintains a closer mapping from responsibilities in the analy-sis model t ..."
Abstract
-
Cited by 140 (3 self)
- Add to MetaCart
In this paper we present a method of code imple-mentation that works in conjunction with collab-oration and responsibility based analysis model-ing techniques to achieve better code reuse and resilience to change. Our approach maintains a closer mapping from responsibilities in the analy-sis model to entities in the implementation. In so doing, it leverages the features of flexible design and design reuse found in collaboration-based de-sign models to provide similar adaptability and reuse in the implementation. Our approach re-quires no special development tools and uses only standard features available in the C++ language. In an earlier paper we described the basic mech-anisms used by our approach and discussed its advantages in comparison to the framework ap-proach. In this paper we show how our approach combines code and design reuse, describing spe-cific techniques that can be used in the develop-ment of larger applications. 1
Using C++ Templates to Implement Role-Based Designs
- JSSST International Symposium on Object Technologies for Advanced Software
, 1996
"... Abstract. Within the object-oriented technology community, much recent work on design reuse has focused on role-based collaborations distributed across multiple objects. Many bene ts can be derived by mapping role-based designs directly into implementations, including greater ease in maintaining the ..."
Abstract
-
Cited by 63 (3 self)
- Add to MetaCart
Abstract. Within the object-oriented technology community, much recent work on design reuse has focused on role-based collaborations distributed across multiple objects. Many bene ts can be derived by mapping role-based designs directly into implementations, including greater ease in maintaining the connection between designs and implementations under change, and the opportunity for code reuse along with design reuse. Current e orts in role-based designs do not generally provide these bene ts. We provide a method for mapping role-based designs into implementation, preserving the design without unnecessary constraints on the design structures. Roles are represented as parameterized classes, where the parameters represent the types of the participants in the collaboration. Composition of roles is implicit in the binding of parameters to classes in the implementation. The bindings are created at compile time by class de nitions that are separate from the role implementations. In this paper we focus on the use of templates in the C++ language as the supporting mechanism. 1
OSKI: A library of automatically tuned sparse matrix kernels
- Institute of Physics Publishing
, 2005
"... kernels ..."
Implementing Product-Line Features by Composing Component Aspects
- First International Software Product-Line Conference
, 2000
"... : Emerging E-Commerce systems are highly dynamic and require even more flexibility and reduced time to market than that traditionally provided by product-line and component-based development (CBSE). In this paper we describe our work on agent-based product-line CBSE for flexible e-commerce syste ..."
Abstract
-
Cited by 43 (3 self)
- Add to MetaCart
: Emerging E-Commerce systems are highly dynamic and require even more flexibility and reduced time to market than that traditionally provided by product-line and component-based development (CBSE). In this paper we describe our work on agent-based product-line CBSE for flexible e-commerce systems. We are integrating several technologies for product-line analysis and component design, implementation and customization to create a basis for systematic product-line development. Largely independent work on reuse ("domain analysis") and object-oriented technology ("design and code") has matured to the degree that integration of the techniques promises a coherent approach. We outline a practical development process that structures a set of common and variable features supporting a product-line, to produce reusable elements ("aspects") that can be combined into customized components and frameworks to support the product-line. 2 Martin L. Griss 1. INTRODUCTION 1.1 Web-based E-Co...
Using Generic Programming for Designing a Data Structure for Polyhedral Surfaces
- Comput. Geom. Theory Appl
, 1999
"... Appeared in Computational Geometry -- Theory and Applications 13, 1999, 65-90. Software design solutions are presented for combinatorial data structures, such as polyhedral surfaces and planar maps, tailored for program libraries in computational geometry. Design issues considered are flexibility, ..."
Abstract
-
Cited by 40 (6 self)
- Add to MetaCart
Appeared in Computational Geometry -- Theory and Applications 13, 1999, 65-90. Software design solutions are presented for combinatorial data structures, such as polyhedral surfaces and planar maps, tailored for program libraries in computational geometry. Design issues considered are flexibility, time and space efficiency, and ease-of-use. We focus on topological aspects of polyhedral surfaces and evaluate edge-based representations with respect to our design goals. A design for polyhedral surfaces in a halfedge data structure is developed following the generic programming paradigm known from the Standard Template Library STL for C++. Connections are shown to planar maps and face-based structures. Key words: Library design; Generic programming; Combinatorial data structure; Polyhedral surface; Halfedge data structure 1 Introduction Combinatorial structures, such as planar maps, are fundamental in computational geometry. In order to be useful in practice, a solid library for compu...
Efficient detection of unusual words
- J. COMP. BIOL
, 2000
"... Words that are, by some measure, over- or underrepresented in the context of larger sequences have been variously implicated in biological functions and mechanisms. In most approaches to such anomaly detections, the words (up to a certain length) are enumerated more or less exhaustively and are indi ..."
Abstract
-
Cited by 34 (7 self)
- Add to MetaCart
Words that are, by some measure, over- or underrepresented in the context of larger sequences have been variously implicated in biological functions and mechanisms. In most approaches to such anomaly detections, the words (up to a certain length) are enumerated more or less exhaustively and are individually checked in terms of observed and expected frequencies, variances, and scores of discrepancy and significance thereof. Here we take the global approach of annotating the suffix tree of a sequence with some such values and scores, having in mind to use it as a collective detector of all unexpected behaviors, or perhaps just as a preliminary filter for words suspicious enough to undergo a more accurate scrutiny. We consider in depth the simple probabilistic model in which sequences are produced by a random source emitting symbols from a known alphabet independently and according to a given distribution. Our main result consists of showing that, within this model, full tree annotations can be carried out in a time-and-space optimal fashion for the mean, variance and some of the adopted measures of significance. This result is achieved by an ad hoc embedding in statistical expressions of the combinatorial structure of the periods of a string. Specifically,
Specifications as Search Keys for Software Libraries
- IN PROCEEDINGS OF THE EIGHTH INTERNATIONAL CONFERENCE ON LOGIC PROGRAMMING
, 1991
"... ..."
Introspective Sorting and Selection Algorithms
- Software Practice and Experience
, 1997
"... Quicksort is the preferred in-place sorting algorithm in many contexts, since its average computing time on uniformly distributed inputs is \Theta(N log N) and it is in fact faster than most other sorting algorithms on most inputs. Its drawback is that its worst-case time bound is \Theta(N ). Previo ..."
Abstract
-
Cited by 27 (1 self)
- Add to MetaCart
Quicksort is the preferred in-place sorting algorithm in many contexts, since its average computing time on uniformly distributed inputs is \Theta(N log N) and it is in fact faster than most other sorting algorithms on most inputs. Its drawback is that its worst-case time bound is \Theta(N ). Previous attempts to protect against the worst case by improving the way quicksort chooses pivot elements for partitioning have increased the average computing time too much---one might as well use heapsort, which has a \Theta(N log N) worst-case time bound but is on the average 2 to 5 times slower than quicksort. A similar dilemma exists with selection algorithms (for finding the i-th largest element) based on partitioning. This paper describes a simple solution to this dilemma: limit the depth of partitioning, and for subproblems that exceed the limit switch to another algorithm with a better worst-case bound. Using heapsort as the "stopper" yields a sorting algorithm that is just as fast as quicksort in the average case but also has an \Theta(N log N) worst case time bound. For selection, a hybrid of Hoare's find algorithm, which is linear on average but quadratic in the worst case, and the Blum-Floyd-Pratt-Rivest-Tarjan algorithm is as fast as Hoare's algorithm in practice, yet has a linear worst-case time bound. Also discussed are issues of implementing the new algorithms as generic algorithms and accurately measuring their performance in the framework of the C++ Standard Template Library.
Concepts: Linguistic support for generic programming in C
- SIGPLAN Notices
, 2006
"... Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, ..."
Abstract
-
Cited by 26 (5 self)
- Add to MetaCart
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.
Implementing Product-Line Features with Component Reuse
, 2000
"... . In this paper, we show how the maturation of several technologies for product-line analysis and component design, implementation and customization provides an interesting basis for systematic product-line development. Independent work in the largely separate reuse ("domain analysis") and OO (" ..."
Abstract
-
Cited by 25 (2 self)
- Add to MetaCart
. In this paper, we show how the maturation of several technologies for product-line analysis and component design, implementation and customization provides an interesting basis for systematic product-line development. Independent work in the largely separate reuse ("domain analysis") and OO ("code and design") communities has reached the point where integration and rationalization of the activities could yield a coherent approach. We outline a proposed path from the set of common and variable features supporting a product-line, to the reusable elements to be combined into customized featureoriented components and frameworks to implement the products. 1 Introduction Today, it is increasingly important to manage related products as members of a product-line. Rapid development, agility and differentiation are key to meeting increased customer demands. Systematic component reuse can play a significant role in reducing costs, decreasing schedule and ensuring commonality of featu...

