|
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
|
Ole Agesen , Stephen N. Freund , John C. Mitchell, Adding type parameterization to the Java language, Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.49-65, October 05-09, 1997, Atlanta, Georgia, United States
|
| |
2
|
|
| |
3
|
|
| |
4
|
Batory, D., Lofaso, B. and Smaragdakis, Y. JTS: Tools for Implementing Domain-Specific Languages. ICSE, June 1998.
|
 |
5
|
|
 |
6
|
Don Batory , Vivek Singhal , Marty Sirkin , Jeff Thomas, Scalable software libraries, Proceedings of the 1st ACM SIGSOFT symposium on Foundations of software engineering, p.191-199, December 08-10, 1993, Los Angeles, California, United States
|
| |
7
|
Bergmans, L. The Composition Filters Object Model. The TRESE Group, CS Dept., University of Twente, 1994.
|
 |
8
|
|
 |
9
|
Gilad Bracha , Martin Odersky , David Stoutamire , Philip Wadler, Making the future safe for the past: adding genericity to the Java programming language, Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.183-200, October 18-22, 1998, Vancouver, British Columbia, Canada
|
| |
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
|
Curtis Clifton , Gary T. Leavens , Craig Chambers , Todd Millstein, MultiJava: modular open classes and symmetric multiple dispatch for Java, Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.130-145, October 2000, Minneapolis, Minnesota, United States
|
| |
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
|
William Harrison , Harold Ossher, Subject-oriented programming: a critique of pure objects, Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications, p.411-428, September 26-October 01, 1993, Washington, D.C., United States
|
| |
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
|
Gregor Kiczales , Erik Hilsdale , Jim Hugunin , Mik Kersten , Jeffrey Palm , William G. Griswold, An Overview of AspectJ, Proceedings of the 15th European Conference on Object-Oriented Programming, p.327-353, June 18-22, 2001
|
| |
27
|
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J., and Irwin, J. Aspect-Oriented Programming. ECOOP 1997.
|
 |
28
|
Sean McDirmid , Matthew Flatt , Wilson C. Hsieh, Jiazzi: new-age components for old-fasioned Java, Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, p.211-222, October 14-18, 2001, Tampa Bay, FL, USA
|
| |
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
|
Peri Tarr , Harold Ossher , William Harrison , Stanley M. Sutton, Jr., N degrees of separation: multi-dimensional separation of concerns, Proceedings of the 21st international conference on Software engineering, p.107-119, May 16-22, 1999, Los Angeles, California, United States
[doi> 10.1145/302405.302457]
|
| |
38
|
Thorup, K. Genericity in Java with Virtual Types. ECOOP (1997).
|
 |
39
|
Frank Tip , Chris Laffra , Peter F. Sweeney , David Streeter, Practical experience with an application extractor for Java, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.292-305, November 01-05, 1999, Denver, Colorado, United States
|
CITED BY 4
|
|
|
|
|
|
|
|
|
|
|
Li-Te Cheng , John Patterson , Steven L. Rohall , Susanne Hupfer , Steven Ross, Weaving a social fabric into existing software, Proceedings of the 4th international conference on Aspect-oriented software development, p.147-158, March 14-18, 2005, Chicago, Illinois
|
|