Supporting Unanticipated Changes with Traits and Classboxes

Bergel, Alexandre; Ducasse, Stephane (September 2005). Supporting Unanticipated Changes with Traits and Classboxes. Lecture Notes in Informatics(P-69), pp. 61-75. Bonner Köllen Verlag

[img] Text
Berg05dTraitsClassbox.pdf - Published Version
Restricted to registered users only
Available under License Publisher holds Copyright.

Download (258kB)

On the one hand, traits are a powerful way of structuring classes. Traits support the reuse of method collections over several classes. However, traits cannot be used when specifying unanticipated changes to an application. On the other hand, classboxes are a new module system that supports the local redefinition of classes: a collection of classes can be locally extended with variables and/or methods and the existing clients do not get impacted by changes. However, an extension applied to a class by a classbox cannot be reused for other classes. This paper describes how combining Traits and Classboxes supports the safe introduction of crosscutting collaborations: safe because the existing clients of the classes do not get impacted, crosscutting because collaborations between several classes can be put in place in a unanticipated manner. In the resulting system, a collaboration is represented by a classbox and a role by a trait.

Item Type:

Conference or Workshop Item (Paper)

Division/Institute:

08 Faculty of Science > Institute of Computer Science (INF)
08 Faculty of Science > Institute of Computer Science (INF) > Software Composition Group (SCG) [discontinued]

UniBE Contributor:

Ducasse, Stephane

Subjects:

000 Computer science, knowledge & systems
500 Science > 510 Mathematics

ISSN:

1617-5468

ISBN:

3-88579-398-9

Series:

Lecture Notes in Informatics

Publisher:

Bonner Köllen Verlag

Language:

English

Submitter:

Anja Ebeling

Date Deposited:

30 Oct 2017 08:49

Last Modified:

11 Apr 2024 16:11

BORIS DOI:

10.7892/boris.104388

URI:

https://boris.unibe.ch/id/eprint/104388

Actions (login required)

Edit item Edit item
Provide Feedback