Supporting unanticipated changes with traits and classboxes

作者: Stéphane Ducasse , Alexandre Bergel

DOI: 10.7892/BORIS.104388

关键词: ReuseSoftware engineeringExtension (predicate logic)StructuringClass (computer programming)TraitComputer science

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

参考文章(11)
Ian M. Holland, Specifying Reusable Components Using Contracts european conference on object oriented programming. pp. 287- 308 ,(1992) , 10.1007/BFB0053043
Michael VanHilst, David Notkin, Using C++ Templates to Implement Role-Based Designs ISOTAS '96 Proceedings of the Second JSSST International Symposium on Object Technologies for Advanced Software. ,vol. 1049, pp. 22- 37 ,(1996) , 10.1007/3-540-60954-7_41
Patrick Steyaert, Wim Codenie, Theo D’Hondt, Koen De Hondt, Carine Lucas, Marc Van Limberghen, Nested Mixin-Methods in Agora european conference on object oriented programming. pp. 197- 219 ,(1993) , 10.1007/3-540-47910-4_12
Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm, William G. Griswold, An Overview of AspectJ ECOOP 2001 — Object-Oriented Programming. pp. 327- 354 ,(2001) , 10.1007/3-540-45337-7_18
Robert Bruce Findler, Matthew Flatt, Modular object-oriented programming with units and mixins international conference on functional programming. ,vol. 34, pp. 94- 104 ,(1998) , 10.1145/289423.289432
Curtis Clifton, Gary T. Leavens, Craig Chambers, Todd Millstein, MultiJava: modular open classes and symmetric multiple dispatch for Java conference on object-oriented programming systems, languages, and applications. ,vol. 35, pp. 130- 145 ,(2000) , 10.1145/353171.353181
Stéphane Ducasse, Oscar Nierstrasz, Nathanael Schärli, Roel Wuyts, Andrew P. Black, Traits: A mechanism for fine-grained reuse ACM Transactions on Programming Languages and Systems. ,vol. 28, pp. 331- 388 ,(2006) , 10.1145/1119479.1119483
Alexandre Bergel, Stéphane Ducasse, Oscar Nierstrasz, Roel Wuyts, Classboxes: controlling visibility of class extensions Computer Languages, Systems & Structures. ,vol. 31, pp. 107- 126 ,(2005) , 10.1016/J.CL.2004.11.002
D. Batory, B.J. Geraci, Composition validation and subjectivity in GenVoca generators IEEE Transactions on Software Engineering. ,vol. 23, pp. 67- 82 ,(1997) , 10.1109/32.585497
Todd Millstein, Mark Reay, Craig Chambers, Relaxed MultiJava Proceedings of the 18th ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications - OOPSLA '03. ,vol. 38, pp. 224- 240 ,(2003) , 10.1145/949305.949325