ACM Home Page
Please provide us with feedback. Feedback
Using mixins to build flexible widgets
Full text PdfPdf (867 KB)
Source Aspect-oriented software development archive
Proceedings of the 1st international conference on Aspect-oriented software development table of contents
Enschede, The Netherlands
COLUMN: Full papers table of contents
Pages: 76 - 85  
Year of Publication: 2002
ISBN:1-58113-469-X
Authors
Richard Cardone  University of Texas at Austin, Austin, TX
Adam Brown  University of Texas at Austin, Austin, TX
Sean McDirmid  University of Utah, Salt Lake City, UT
Calvin Lin  University of Texas at Austin, Austin, TX
Sponsors
CTIT : Centre for Telematics and Information Technology
IPA : Institute for Software and Arithmetic
KNAW : Koninklijke Nederlandse Akademie van Wetenschappen
PATO : Post Academisch Tecbnisch Onderwijs
University of Twente : University of Twente
NWO : Dutch Orgartisation for Scientific Research
IBMR : IBM Research
AITO : Association Internationale pour les Technologies Objets
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 7,   Downloads (12 Months): 40,   Citation Count: 4
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/508386.508395
What is a DOI?

ABSTRACT

When it comes to software that runs on devices as varied as cell phones, PDAs and desktops, one size does not fit all. This paper describes how mixin layers, a kind of nested generic type, can be used to implement a graphical user interface library that can be configured to run on platforms with widely dissimilar capabilities. We describe the language support needed to incrementally build software in layers, and we describe how crosscutting concerns can be encapsulated within a layer. We then show how layers can be reconfigured to meet changing requirements. We also show how a new design pattern, the Sibling pattern, can be used with mixin layers to coordinate changes to multiple classes in the same inheritance hierarchy. When used appropriately, the Sibling pattern increases our ability to separate design concerns and to reuse code.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
 
3
 
4
Batory, D., Lofaso, B. and Smaragdakis, Y. JTS: Tools for Implementing Domain-Specific Languages. ICSE, June 1998.
5
6
 
7
Bergmans, L. The Composition Filters Object Model. The TRESE Group, CS Dept., University of Twente, 1994.
8
9
 
10
Brown, A., Cardone, R., McDirmid, S. and Lin, C. The Specification of the Sibling Design Pattern. Technical Report CS-TR-02-11, CS Dept., University of Texas at Austin, 2002.
 
11
12
 
13
 
14
 
15
16
 
17
Czarnecki, K. and Eisenecker, U. Generative Programming. Addison-Wesley, 2000.
 
18
Eisenecker, U., Blinn, F., and Czarnecki, K. A Solution to the Constructor Problem of Mixin-Based Programming in C++. Generative and Component-Based Software. Engineering, Workshop on C++ Template Programming, Erfurt, Germany, October 2000. Also published in Dr. Dobbs Journal, No. 320, January 2001.
 
19
Gamma, E., Helm, R., Johnson R., and Vlissides, J. Design Patterns. Addison-Wesley, 1995.
 
20
21
 
22
Hyperspace home page at http://www.research.ibm.com/hyperspace.
 
23
Java 2 Micro Edition, http://java.sun.com/j2me.
 
24
Java Community Process, JSR-14: Add Generic Types to the Java Programming Language, http://www.jcp.org.
 
25
Java Layers home page at http://www.cs.utexas.edu/users/richcar/JavaLayers.html.
 
26
 
27
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J., and Irwin, J. Aspect-Oriented Programming. ECOOP 1997.
28
 
29
Palm Inc., http://www.palm.com.
 
30
 
31
 
32
Sun Microsystems, Inc. Connected, Limited Device Configuration, specification 1.0a, May 19, 2000.
 
33
Sun Microsystems, Inc., Java technology site, http://java.sun.com.
 
34
Sun Microsystems, Inc. Java 2 Platform Micro Edition (J2ME) Technology for Creating Mobile Devices, white paper, May 19, 2000.
 
35
36
37
 
38
Thorup, K. Genericity in Java with Virtual Types. ECOOP (1997).
39


Collaborative Colleagues:
Richard Cardone: colleagues
Adam Brown: colleagues
Sean McDirmid: colleagues
Calvin Lin: colleagues