ACM Home Page
Please provide us with feedback. Feedback
Applying traits to the smalltalk collection classes
Full text PdfPdf (336 KB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications table of contents
Anaheim, California, USA
SESSION: Smalltalkiana table of contents
Pages: 47 - 64  
Year of Publication: 2003
ISBN:1-58113-712-5
Also published in ...
Authors
Andrew P. Black  Oregon Health and Science University
Nathanael Schärli  University of Bern, Switzerland
Stéphane Ducasse  University of Bern, Switzerland
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 7,   Downloads (12 Months): 59,   Citation Count: 12
Additional Information:

abstract   references   cited by   index terms   review   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/949305.949311
What is a DOI?

ABSTRACT

Traits are a programming language technology that promote the reuse of methods between unrelated classes. This paper reports on a refactoring of the Smalltalk collections classes using traits. The original collection classes contained much duplication of code; traits let us remove all of it. We also found places where the protocols of the collections lacked uniformity; traits allowed us to correct these non-uniformities without code duplication.Traits also make it possible to reuse fragments of collection code outside of the existing hierarchy; for example, they make it easy to convert other collection-like things into true collections. Our refactoring reduced the number of methods in the collection classes by approximately 10 per cent. More importantly, understandability maintainability and reusability of the code were significantly improved.


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
 
5
Andrew P. Black and Mark~P. Jones. Perspectives on software. In OOPSLA 2000 Workshop on Advanced Separation of Concerns in Object-oriented Systems, 2000.
 
6
7
 
8
 
9
Eduardo Casais. Managing Evolution in Object Oriented Environments: An Algorithmic Approach. Ph.D. thesis, Centre Universitaire d'Informatique, University of Geneva, May 1991.
 
10
11
12
 
13
 
14
15
 
16
 
17
 
18
 
19
John V. Guttag, James J. Horning, and Jeannette M. Wing. The larch family of specification languages. IEEE Transactions on Software Engineering, 2(5):24--36, September 1985.
 
20
Andrew Hunt and David Thomas. The Pragmatic Programmer. Addison Wesley, 2000.
 
21
 
22
 
23
Yahya H. Mirza. A Compositional Component Collections Framework. Seventh International Workshop on Component-Oriented Programming (WCOP 2002) at ECOOP 2002, Malaga, Spain, June 2002.
24
 
25
26
 
27
 
28
Nathanael Schärli and Andrew Black. A browser for incremental programming. Technical Report CSE-03-008, OGI School of Science & Engineering, Beaverton, Oregon, USA, April 2003.
 
29
Nathanael Schärli, Oscar Nierstrasz, Stéphane Ducasse, Roel Wuyts, and Andrew Black. Traits: The formal model. Technical Report IAM-02-006, Institut für Informatik, Universität Bern, Switzerland, November 2002. Also available as Technical Report CSE-02-013, OGI School of Science & Engineering, Beaverton, Oregon, USA.
30
 
31
Sander Tichelaar, Stéphane Ducasse, Serge Demeyer, and Oscar Nierstrasz. A meta-model for language-independent refactoring. In Proceedings ISPSE 2000, pages 157--167. IEEE, 2000.
 
32
Lance Tokuda and Don Batory. Automating three modes of evolution for object-oriented software architecture. In Proceedings COOTS '99, May 1999.
33

CITED BY  12


REVIEW

"Chenglie Hu : Reviewer"

A refactoring process centered about the Smalltalk collection classes is considered in this paper. The process uses traits: fine-grained units to support code reuse.

First, the trait construct is introduced as a class that contains purely be  more...

Collaborative Colleagues:
Andrew P. Black: colleagues
Nathanael Schärli: colleagues
Stéphane Ducasse: colleagues