Skip to main content
Erschienen in: Software and Systems Modeling 4/2017

07.11.2015 | Regular Paper

Promoting traits into model-driven development

verfasst von: Vahdat Abdelzad, Timothy C. Lethbridge

Erschienen in: Software and Systems Modeling | Ausgabe 4/2017

Einloggen

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

Traits, as sets of behaviors, can provide a good mechanism for reusability. However, they are limited in important ways and are not present in widely used programming and modeling languages and hence are not readily available for use by mainstream developers. In this paper, we add UML associations and other modeling concepts to traits and apply them to Java and C++ through model-driven development. We also extend traits with required interfaces so dependencies at the semantics level become part of their usage, rather than simple syntactic capture. All this is accomplished in Umple, a textual modeling language based upon UML that allows adding programming constructs to the model. We applied the work to two case studies. The results show that we can promote traits to the modeling level along with the improvement in flexibility and reusability.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Literatur
1.
Zurück zum Zitat Allen, E., Chase, D., Hallett, J., et al.: The Fortress language specification. Sun Microsyst. 139, 140 (2005) Allen, E., Chase, D., Hallett, J., et al.: The Fortress language specification. Sun Microsyst. 139, 140 (2005)
2.
Zurück zum Zitat Arévalo, G.: Understanding behavioral dependencies in class hierarchies using concept analysis. LMO’03: Langages et Modèles à Objets (Object Oriented Languages and Models), pp. 47–59 (2003) Arévalo, G.: Understanding behavioral dependencies in class hierarchies using concept analysis. LMO’03: Langages et Modèles à Objets (Object Oriented Languages and Models), pp. 47–59 (2003)
4.
Zurück zum Zitat Badreddin, O., Forward, A., Lethbridge, T.C.: Model oriented programming: an empirical study of comprehension. In: Proceedings of the 2012 Conference of the Center for Advanced Studies on Collaborative Research. IBM Corp., pp. 73–86 (2012) Badreddin, O., Forward, A., Lethbridge, T.C.: Model oriented programming: an empirical study of comprehension. In: Proceedings of the 2012 Conference of the Center for Advanced Studies on Collaborative Research. IBM Corp., pp. 73–86 (2012)
5.
Zurück zum Zitat Badreddin, O., Lethbridge, T.C., Forward, A., Elasaar, M., Aljamaan, H.: Enhanced Code Generation from UML Composite State Machines. Modelsward (2014) Badreddin, O., Lethbridge, T.C., Forward, A., Elasaar, M., Aljamaan, H.: Enhanced Code Generation from UML Composite State Machines. Modelsward (2014)
6.
Zurück zum Zitat Badreddin, O., Forward, A., Lethbridge, T.C.: Exploring a model-oriented and executable syntax for UML attributes. Softw. Eng. Res. Manag. Appl. Stud. Comput. Intell. 496, 33–53 (2013) Badreddin, O., Forward, A., Lethbridge, T.C.: Exploring a model-oriented and executable syntax for UML attributes. Softw. Eng. Res. Manag. Appl. Stud. Comput. Intell. 496, 33–53 (2013)
7.
Zurück zum Zitat Badreddin, O., Forward, A., Lethbridge, T.C.: Improving code generation for associations: enforcing multiplicity constraints and ensuring referential integrity. Softw. Eng. Res. Manag. Appl. Stud. Comput. Intell. 496, 129–149 (2013) Badreddin, O., Forward, A., Lethbridge, T.C.: Improving code generation for associations: enforcing multiplicity constraints and ensuring referential integrity. Softw. Eng. Res. Manag. Appl. Stud. Comput. Intell. 496, 129–149 (2013)
8.
Zurück zum Zitat Benedicenti, L., Succi, G., Valerio, A., Vernazza, T.: Monitoring the efficiency of a reuse program. ACM SIGAPP Appl. Comput. Rev. 4(2), 8–14 (1996)CrossRef Benedicenti, L., Succi, G., Valerio, A., Vernazza, T.: Monitoring the efficiency of a reuse program. ACM SIGAPP Appl. Comput. Rev. 4(2), 8–14 (1996)CrossRef
9.
Zurück zum Zitat Bergel, A., Ducasse, S., Nierstrasz, O., Wuyts, R.: Stateful traits. Advances in smalltalk. In: Proceedings of 14th International Smalltalk Conference (ISC 2006). LNCS, pp. 66–90 (2007) Bergel, A., Ducasse, S., Nierstrasz, O., Wuyts, R.: Stateful traits. Advances in smalltalk. In: Proceedings of 14th International Smalltalk Conference (ISC 2006). LNCS, pp. 66–90 (2007)
10.
Zurück zum Zitat Bergel, A., Ducasse, S., Nierstrasz, O., Wuyts, R.: Stateful traits and their formalization. Comput. Lang. Syst. Struct. 34(2–3), 83–108 (2008) Bergel, A., Ducasse, S., Nierstrasz, O., Wuyts, R.: Stateful traits and their formalization. Comput. Lang. Syst. Struct. 34(2–3), 83–108 (2008)
11.
Zurück zum Zitat Bettini, L., Bono, V., Naddeo, M.: A trait based re-engineering technique for Java hierarchies. In: Proceedings of the 6th International Symposium on Principles and Practice of Programming in Java, pp. 149–158 (2008) Bettini, L., Bono, V., Naddeo, M.: A trait based re-engineering technique for Java hierarchies. In: Proceedings of the 6th International Symposium on Principles and Practice of Programming in Java, pp. 149–158 (2008)
12.
Zurück zum Zitat Bettini, L., Damiani, F., Schaefer, I.: Implementing software product lines using traits. In: Proceedings of the ACM Symposium on Applied Computing, pp. 2096–2102 (2010) Bettini, L., Damiani, F., Schaefer, I.: Implementing software product lines using traits. In: Proceedings of the ACM Symposium on Applied Computing, pp. 2096–2102 (2010)
13.
Zurück zum Zitat Bettini, L., Damiani, F.: Pure trait-based programming on the Java platform. In: Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform Virtual Machines, Languages, and Tools, ACM Press, pp. 67–78 (2013) Bettini, L., Damiani, F.: Pure trait-based programming on the Java platform. In: Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform Virtual Machines, Languages, and Tools, ACM Press, pp. 67–78 (2013)
14.
Zurück zum Zitat Biggerstaff, T., Richter, C.: Reusability framework, assessment, and directions. IEEE Softw. 4(2), 41–49 (1987)CrossRef Biggerstaff, T., Richter, C.: Reusability framework, assessment, and directions. IEEE Softw. 4(2), 41–49 (1987)CrossRef
15.
Zurück zum Zitat Black, A. P., Scharli, N.: Traits: tools and methodology. In: Proceedings of the 26th International Conference on Software Engineering (2004) Black, A. P., Scharli, N.: Traits: tools and methodology. In: Proceedings of the 26th International Conference on Software Engineering (2004)
16.
Zurück zum Zitat Bono, V., Damiani, F., Giachino, E.: Separating type, behavior, and state to achieve very fine-grained reuse. In: Electronic Proceedings of Formal Techniques for Java-like Programs (FTfJP) (2007) Bono, V., Damiani, F., Giachino, E.: Separating type, behavior, and state to achieve very fine-grained reuse. In: Electronic Proceedings of Formal Techniques for Java-like Programs (FTfJP) (2007)
17.
Zurück zum Zitat Bracha, G., Cook, W.: Mixin-based inheritance. ACM SIGPLAN Not. 25(10), 303–311 (1990)CrossRef Bracha, G., Cook, W.: Mixin-based inheritance. ACM SIGPLAN Not. 25(10), 303–311 (1990)CrossRef
18.
Zurück zum Zitat Chung, W., Harrison, W., Kruskal, V., et al.: Concern manipulation environment (CME). In: Proceedings of the 27th International Conference on Software Engineering, pp. 666–667 (2005) Chung, W., Harrison, W., Kruskal, V., et al.: Concern manipulation environment (CME). In: Proceedings of the 27th International Conference on Software Engineering, pp. 666–667 (2005)
20.
Zurück zum Zitat Denier, S.: Traits programming with AspectJ. RSTI-L’objet 11(3), 69–86 (2005) Denier, S.: Traits programming with AspectJ. RSTI-L’objet 11(3), 69–86 (2005)
21.
Zurück zum Zitat Ducasse, S., Nierstrasz, O., Schärli, N., Wuyts, R., Black, A.P.: Traits: a mechanism for fine-grained reuse. ACM Trans. Program. Lang. Syst. 28(2), 331–388 (2006)CrossRef Ducasse, S., Nierstrasz, O., Schärli, N., Wuyts, R., Black, A.P.: Traits: a mechanism for fine-grained reuse. ACM Trans. Program. Lang. Syst. 28(2), 331–388 (2006)CrossRef
22.
Zurück zum Zitat Duggan, D., Techaubol, C.-C.: Modular mixin-based inheritance for application frameworks. ACM SIGPLAN Not. 36(11), 223–240 (2001)CrossRef Duggan, D., Techaubol, C.-C.: Modular mixin-based inheritance for application frameworks. ACM SIGPLAN Not. 36(11), 223–240 (2001)CrossRef
23.
Zurück zum Zitat Frakes, W.B., Kang, K.: Software reuse research: status and future. IEEE Trans. Softw. Eng. 31(7), 529–536 (2005)CrossRef Frakes, W.B., Kang, K.: Software reuse research: status and future. IEEE Trans. Softw. Eng. 31(7), 529–536 (2005)CrossRef
24.
Zurück zum Zitat Frogley, T.: An introduction to C++ traits. Overload J. 43 (2001) Frogley, T.: An introduction to C++ traits. Overload J. 43 (2001)
25.
Zurück zum Zitat Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Longman Publishing Co., Inc., Redwood City (1995)MATH Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Longman Publishing Co., Inc., Redwood City (1995)MATH
26.
Zurück zum Zitat Garzon, M. Lethbridge, T.C.: Exploring how to develop transformations and tools for automated umplification. In: Proceedings of the19th Working Conference on Reverse Engineering. IEEE, pp. 491–494 (2012) Garzon, M. Lethbridge, T.C.: Exploring how to develop transformations and tools for automated umplification. In: Proceedings of the19th Working Conference on Reverse Engineering. IEEE, pp. 491–494 (2012)
27.
Zurück zum Zitat Igarashi, A., Pierce, B.C., Wadler, P.: Featherweight Java: a minimal core calculus for Java and GJ. ACM Trans. Program. Lang. Syst. 23(3), 396–450 (2001)CrossRef Igarashi, A., Pierce, B.C., Wadler, P.: Featherweight Java: a minimal core calculus for Java and GJ. ACM Trans. Program. Lang. Syst. 23(3), 396–450 (2001)CrossRef
28.
Zurück zum Zitat Ingalls, D., Kaehler, T., Maloney, J., Wallace, S., Kay, A.: Back to the future: the story of Squeak, a practical Smalltalk written in itself. ACM SIGPLAN Not. 32(10), 318–326 (1997)CrossRef Ingalls, D., Kaehler, T., Maloney, J., Wallace, S., Kay, A.: Back to the future: the story of Squeak, a practical Smalltalk written in itself. ACM SIGPLAN Not. 32(10), 318–326 (1997)CrossRef
30.
Zurück zum Zitat Kiczales, G., Lamping, J., Mendhekar, A., et al.: Aspect-oriented programming. In: The European Conference on Object-Oriented Programming (ECOOP), LNCS 1241. Springer, pp. 220–242 (1997) Kiczales, G., Lamping, J., Mendhekar, A., et al.: Aspect-oriented programming. In: The European Conference on Object-Oriented Programming (ECOOP), LNCS 1241. Springer, pp. 220–242 (1997)
31.
Zurück zum Zitat Krueger, C.W.: Software reuse. ACM Comput. Surv. (CSUR) 24(2), 131–183 (1992)CrossRef Krueger, C.W.: Software reuse. ACM Comput. Surv. (CSUR) 24(2), 131–183 (1992)CrossRef
32.
Zurück zum Zitat Lee, E.H.-S.: Object Storage and Inheritance for SELF, a Prototype-Based Object-Oriented Programming Language. Thesis, Stanford University (1988), 508 pp Lee, E.H.-S.: Object Storage and Inheritance for SELF, a Prototype-Based Object-Oriented Programming Language. Thesis, Stanford University (1988), 508 pp
33.
Zurück zum Zitat Lethbridge, T.: Teaching modeling using Umple: principles for the development of an effective tool. In: Proceedings of the 27th IEEE Conference on Software Engineering Education and Training (CSEE&T), pp. 23–28 (2014) Lethbridge, T.: Teaching modeling using Umple: principles for the development of an effective tool. In: Proceedings of the 27th IEEE Conference on Software Engineering Education and Training (CSEE&T), pp. 23–28 (2014)
34.
Zurück zum Zitat Lienhard, A., Ducasse, S., Arévalo, G.: Identifying traits with formal concept analysis. In: Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering—ASE’05. ACM Press, p. 66 (2005) Lienhard, A., Ducasse, S., Arévalo, G.: Identifying traits with formal concept analysis. In: Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering—ASE’05. ACM Press, p. 66 (2005)
35.
Zurück zum Zitat Liquori, L., Spiwack, A.: Featherweight-trait Java: a trait-based extension for FJ. p. 27 (2004) Liquori, L., Spiwack, A.: Featherweight-trait Java: a trait-based extension for FJ. p. 27 (2004)
36.
Zurück zum Zitat Liquori, L., Spiwack, A.: FeatherTrait: a modest extension of featherweight Java. ACM Trans. Program. Lang. Syst. 30(2), 1–32 (2008)CrossRefMATH Liquori, L., Spiwack, A.: FeatherTrait: a modest extension of featherweight Java. ACM Trans. Program. Lang. Syst. 30(2), 1–32 (2008)CrossRefMATH
37.
Zurück zum Zitat Meyers, S.: The most important design guideline? IEEE Softw. 21(4), 14–16 (2004)CrossRef Meyers, S.: The most important design guideline? IEEE Softw. 21(4), 14–16 (2004)CrossRef
38.
Zurück zum Zitat Meyers, S.: Effective C++: 55 specific ways to improve your programs and designs, 3rd edn. Addison-Wesley Professional, Redwood City (2005) Meyers, S.: Effective C++: 55 specific ways to improve your programs and designs, 3rd edn. Addison-Wesley Professional, Redwood City (2005)
39.
Zurück zum Zitat Morisio, M., Ezran, M., Tully, C.: Success and failure factors in software reuse. IEEE Trans. Softw. Eng. 28(4), 340–357 (2002)CrossRefMATH Morisio, M., Ezran, M., Tully, C.: Success and failure factors in software reuse. IEEE Trans. Softw. Eng. 28(4), 340–357 (2002)CrossRefMATH
40.
Zurück zum Zitat Murphy-Hill, E.R., Quitslund, P.J., Black, A.P.: Removing duplication from java.io. In: Companion to the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, ACM Press, pp. 282–291 (2005) Murphy-Hill, E.R., Quitslund, P.J., Black, A.P.: Removing duplication from java.io. In: Companion to the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, ACM Press, pp. 282–291 (2005)
41.
Zurück zum Zitat Nierstrasz, O., Reichhart, S., Sch, N.: Adding Traits to (Statically Typed) Languages. Technical report IAM-05-006, Institut für Informatik und Angewandte Mathematik University of Bern, Switzerland (2005) Nierstrasz, O., Reichhart, S., Sch, N.: Adding Traits to (Statically Typed) Languages. Technical report IAM-05-006, Institut für Informatik und Angewandte Mathematik University of Bern, Switzerland (2005)
43.
Zurück zum Zitat Petre, M.: No shit or Oh, shit!: responses to observations on the use of UML in professional practice. Softw. Syst. Model. 13(4), 1225–1235 (2014)CrossRef Petre, M.: No shit or Oh, shit!: responses to observations on the use of UML in professional practice. Softw. Syst. Model. 13(4), 1225–1235 (2014)CrossRef
44.
Zurück zum Zitat Quitslund, P.J., Black, A.P.: Java with traits — improving opportunities for reuse. In: Proceedings of the 3rd International Workshop on MechAnisms for SPEcialization, Generalization and inHerItance (ECOOP), pp. 45–49 (2004) Quitslund, P.J., Black, A.P.: Java with traits — improving opportunities for reuse. In: Proceedings of the 3rd International Workshop on MechAnisms for SPEcialization, Generalization and inHerItance (ECOOP), pp. 45–49 (2004)
45.
Zurück zum Zitat Quitslund, P.J., Murphy-Hill, E.R., Black, A.P.: Supporting Java traits in eclipse. In: Proceedings of the 2004 OOPSLA Workshop on Eclipse Technology Exchange. ACM Press, pp. 37–41 (2004) Quitslund, P.J., Murphy-Hill, E.R., Black, A.P.: Supporting Java traits in eclipse. In: Proceedings of the 2004 OOPSLA Workshop on Eclipse Technology Exchange. ACM Press, pp. 37–41 (2004)
46.
Zurück zum Zitat Quitslund, P.J.: Java Traits—Improving Opportunities for Reuse. Technical report CSE-04-005, OGI School of Science & Engineering Oregon Health & Science University (2004) Quitslund, P.J.: Java Traits—Improving Opportunities for Reuse. Technical report CSE-04-005, OGI School of Science & Engineering Oregon Health & Science University (2004)
47.
Zurück zum Zitat Reichhart, S.: Traits in CSharp. Software Composition Group. University of Bern, Switzerland (2005) Reichhart, S.: Traits in CSharp. Software Composition Group. University of Bern, Switzerland (2005)
48.
Zurück zum Zitat Reppy, J., Turon, A.: Metaprogramming with traits. In: Proceedings of the 21st European Conference on Object-Oriented Programming (ECOOP), pp. 373–398 (2007) Reppy, J., Turon, A.: Metaprogramming with traits. In: Proceedings of the 21st European Conference on Object-Oriented Programming (ECOOP), pp. 373–398 (2007)
49.
Zurück zum Zitat Sakkinen, M.: Disciplined inheritance. In: European Conference on Object-Oriented Programming (ECOOP), pp. 39–56 (1989) Sakkinen, M.: Disciplined inheritance. In: European Conference on Object-Oriented Programming (ECOOP), pp. 39–56 (1989)
51.
Zurück zum Zitat Schaerli, N., Ducasse, S., Nierstrasz, O.: Classes = Traits + States + Glue (Beyond mixins and multiple inheritance). In: Proceedings of the International Workshop on Inheritance, pp. 1–6 (2002) Schaerli, N., Ducasse, S., Nierstrasz, O.: Classes = Traits + States + Glue (Beyond mixins and multiple inheritance). In: Proceedings of the International Workshop on Inheritance, pp. 1–6 (2002)
52.
Zurück zum Zitat Schärli, N., Ducasse, S., Nierstrasz, O., Black, A.P.: Traits: composable units of behaviour. In: ECOOP 2003—European Conference on Object-Oriented Programming, volume 2743 of Lecture Notes in Computer Science, pp. 248–274. Springer, Berlin (2003) Schärli, N., Ducasse, S., Nierstrasz, O., Black, A.P.: Traits: composable units of behaviour. In: ECOOP 2003—European Conference on Object-Oriented Programming, volume 2743 of Lecture Notes in Computer Science, pp. 248–274. Springer, Berlin (2003)
53.
Zurück zum Zitat Snyder, A.: Encapsulation and inheritance in object-oriented programming languages. ACM SIGPLAN Not. 21(11), 38–45 (1986)CrossRef Snyder, A.: Encapsulation and inheritance in object-oriented programming languages. ACM SIGPLAN Not. 21(11), 38–45 (1986)CrossRef
58.
Zurück zum Zitat Ungar, D., Chambers, C., Chang, B.W., Hölzle, U.: Organizing programs without classes. Lisp Symb. Comput. 4(3), 223–242 (1991)CrossRef Ungar, D., Chambers, C., Chang, B.W., Hölzle, U.: Organizing programs without classes. Lisp Symb. Comput. 4(3), 223–242 (1991)CrossRef
60.
Zurück zum Zitat Van Cutsem, T., Miller, M.S.: Traits.js: robust object composition and high-integrity objects for ecmascript 5. In: Proceedings of the 1st ACM SIGPLAN International Workshop on Programming Language and Systems Technologies for Internet Clients. pp. 1–8. ACM Press (2011) Van Cutsem, T., Miller, M.S.: Traits.js: robust object composition and high-integrity objects for ecmascript 5. In: Proceedings of the 1st ACM SIGPLAN International Workshop on Programming Language and Systems Technologies for Internet Clients. pp. 1–8. ACM Press (2011)
Metadaten
Titel
Promoting traits into model-driven development
verfasst von
Vahdat Abdelzad
Timothy C. Lethbridge
Publikationsdatum
07.11.2015
Verlag
Springer Berlin Heidelberg
Erschienen in
Software and Systems Modeling / Ausgabe 4/2017
Print ISSN: 1619-1366
Elektronische ISSN: 1619-1374
DOI
https://doi.org/10.1007/s10270-015-0505-x

Weitere Artikel der Ausgabe 4/2017

Software and Systems Modeling 4/2017 Zur Ausgabe