Skip to main content
Top

2018 | OriginalPaper | Chapter

Managing Software Complexity with Power-Generics

Activate our intelligent search to find suitable subject content or patents.

search-config
loading …

Abstract

Complexity of software quickly approaches the limits of what today’s programming paradigm can handle. Similarities (i.e., similar requirements, design solutions, as well as program structures) are inherent in software domain. In the paper, we discuss unexploited potentials of software similarities to ease management of complex software systems. We describe the concept of power-generics to exploit this potential. A key idea is meta-program level flexible parameterization, without restrictions of C++ templates or Java generics. To illustrate the concept, we discuss ART (Adaptive Reuse Technique) that extends conventional programming paradigms with an unconventional generative technique, in a synergistic and easy to adopt way. With ART, we illustrate general concepts discussed in the first part of the paper.

Dont have a licence yet? Then find out more about our products and how to get one now:

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 "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!

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!

Footnotes
1
System complexity if often measured in terms of the number of conceptual elements and relationships among them that must be understood in order to understand the system. It is this kind of cognitive complexity that we mean in the paper.
 
2
All quotes in this section refer to [4].
 
Literature
1.
go back to reference Basit. H.A., Rajapakse, D.C., Jarzabek, S.: Beyond templates: a study of clones in the STL and some general implications. In: International Conference Software Engineering, ICSE’05, St. Louis, USA, May 2005, pp. 451–459 Basit. H.A., Rajapakse, D.C., Jarzabek, S.: Beyond templates: a study of clones in the STL and some general implications. In: International Conference Software Engineering, ICSE’05, St. Louis, USA, May 2005, pp. 451–459
2.
go back to reference Basit, H.A., Jarzabek, S.: Detecting higher-level similarity patterns in programs. In: ESEC-FSE’05, European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering, ACM Press, September 2005, Lisbon, pp. 156–165 Basit, H.A., Jarzabek, S.: Detecting higher-level similarity patterns in programs. In: ESEC-FSE’05, European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering, ACM Press, September 2005, Lisbon, pp. 156–165
3.
go back to reference Bassett, P.: Framing Software Reuse—Lessons From Real World. Yourdon Press, Prentice Hall (1997) Bassett, P.: Framing Software Reuse—Lessons From Real World. Yourdon Press, Prentice Hall (1997)
4.
go back to reference Brooks, F.P.: No silver bullet, essence and accidents of software engineering. Comput. Mag. 20(4), 10–19 (1987) Brooks, F.P.: No silver bullet, essence and accidents of software engineering. Comput. Mag. 20(4), 10–19 (1987)
5.
go back to reference Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison Wesley (2002) Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison Wesley (2002)
6.
go back to reference Deelstra, S., Sinnema, M., Bosch, J.: Experiences in software product families: problems and issues during product derivation. In: Proceedings of Software Product Lines Conference, SPLC3, Boston, Augest 2004, pp. 165–182 Deelstra, S., Sinnema, M., Bosch, J.: Experiences in software product families: problems and issues during product derivation. In: Proceedings of Software Product Lines Conference, SPLC3, Boston, Augest 2004, pp. 165–182
7.
go back to reference Jarzabek, S., Kumar, K.: On Interplay between Separation of Concerns and Genericity Principles: beyond code weaving. Comsis J. Comput. Sci. Inf. Syst. 13(3), 731–758 (2016); also in Kosiuczenko, P., Smialek, M. (eds.): Proceedings of 17th KKIO Software Engineering Conference, Miedzyzdroje, September 2015, Chapter 8, pp. 119–136, (Best Paper award) Jarzabek, S., Kumar, K.: On Interplay between Separation of Concerns and Genericity Principles: beyond code weaving. Comsis J. Comput. Sci. Inf. Syst. 13(3), 731–758 (2016); also in Kosiuczenko, P., Smialek, M. (eds.): Proceedings of 17th KKIO Software Engineering Conference, Miedzyzdroje, September 2015, Chapter 8, pp. 119–136, (Best Paper award)
8.
go back to reference Kumar, K., Jarzabek, S., Dan, D.: Managing big clones to ease evolution: linux kernel example. In: Federated Conference on Computer Science and Information Systems, FedCSIS, 36th IEEE Software Engineering Workshop, September 2016, pp. 1767–1776 Kumar, K., Jarzabek, S., Dan, D.: Managing big clones to ease evolution: linux kernel example. In: Federated Conference on Computer Science and Information Systems, FedCSIS, 36th IEEE Software Engineering Workshop, September 2016, pp. 1767–1776
9.
go back to reference Jarzabek, S., Li, S.: Eliminating redundancies with a “composition with adaptation” meta-programming technique. In: Proceedings of ESEC-FSE’03, European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering, September 2003, Helsinki, pp. 237–246 Jarzabek, S., Li, S.: Eliminating redundancies with a “composition with adaptation” meta-programming technique. In: Proceedings of ESEC-FSE’03, European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering, September 2003, Helsinki, pp. 237–246
10.
go back to reference Jarzabek, S.: Effective Software Maintenance and Evolution: Reused-based Approach. CRC Press Taylor and Francis, (2007) Jarzabek, S.: Effective Software Maintenance and Evolution: Reused-based Approach. CRC Press Taylor and Francis, (2007)
12.
go back to reference Kamiya, Toshihiro, Kusumoto, Shinji, Inoue, Katsuro: CCFinder: a multilinguistic tokenbased code clone detection system for large scale source code. IEEE Trans. Soft. Eng. 28(7), 654–670 (2002) Kamiya, Toshihiro, Kusumoto, Shinji, Inoue, Katsuro: CCFinder: a multilinguistic tokenbased code clone detection system for large scale source code. IEEE Trans. Soft. Eng. 28(7), 654–670 (2002)
13.
go back to reference Kasper, C., Godfrey, M.: Cloning considered harmful’ considered harmful. In: Proceedings of 13th Working Conference on Reverse Engineering, October 2006, Benevento, pp. 19–28 Kasper, C., Godfrey, M.: Cloning considered harmful’ considered harmful. In: Proceedings of 13th Working Conference on Reverse Engineering, October 2006, Benevento, pp. 19–28
14.
go back to reference Kiczales, G.J., Lamping, A., Mendhekar, A.C., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: European Conference on Object-Oriented Programming, Finland, Springer, LNCS 1241, pp. 220–242 (1997) Kiczales, G.J., Lamping, A., Mendhekar, A.C., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: European Conference on Object-Oriented Programming, Finland, Springer, LNCS 1241, pp. 220–242 (1997)
15.
go back to reference Kumar, K., Jarzabek, S., Dan, D.: Managing big clones to ease evolution: linux kernel example. In: Federated Conference on Computer Science and Information Systems, FedCSIS, 36th IEEE Software Engineering Workshop, September 2016, pp. 1767–1776 Kumar, K., Jarzabek, S., Dan, D.: Managing big clones to ease evolution: linux kernel example. In: Federated Conference on Computer Science and Information Systems, FedCSIS, 36th IEEE Software Engineering Workshop, September 2016, pp. 1767–1776
17.
go back to reference Pettersson, U., Jarzabek, S.: Industrial experience with building a web portal product line using a lightweight, reactive approach. In: ESEC-FSE’05, European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering. ACM Press, September 2005, Lisbon, pp. 326–335 Pettersson, U., Jarzabek, S.: Industrial experience with building a web portal product line using a lightweight, reactive approach. In: ESEC-FSE’05, European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering. ACM Press, September 2005, Lisbon, pp. 326–335
18.
go back to reference Rajapakse, D.C., Jarzabek, S.: Using server pages to unify clones in web applications: a trade-off analysis. In: International Conference on Software Engineering, ICSE’07, Minneapolis, USA, May 2007 Rajapakse, D.C., Jarzabek, S.: Using server pages to unify clones in web applications: a trade-off analysis. In: International Conference on Software Engineering, ICSE’07, Minneapolis, USA, May 2007
19.
go back to reference Schmidt, D.: Model-Driven Engineering, pp. 25–31. Computer, IEEE (2006) Schmidt, D.: Model-Driven Engineering, pp. 25–31. Computer, IEEE (2006)
20.
go back to reference Tarr, P., Ossher, H., Harrison, W., Sutton, S.: N degrees of separation: multi-dimensional separation of concerns. In: Proceedings of International Conference on Software Engineering, ICSE’99, Los Angeles, pp. 107–119 (1999) Tarr, P., Ossher, H., Harrison, W., Sutton, S.: N degrees of separation: multi-dimensional separation of concerns. In: Proceedings of International Conference on Software Engineering, ICSE’99, Los Angeles, pp. 107–119 (1999)
21.
go back to reference Yang, J., Jarzabek, S.: Applying a generative technique for enhanced reuse on J2EE platform. In: 4th International Conference on Generative Programming and Component Engineering, GPCE’05, 29 September–1 October 2005, pp. 237–255 Yang, J., Jarzabek, S.: Applying a generative technique for enhanced reuse on J2EE platform. In: 4th International Conference on Generative Programming and Component Engineering, GPCE’05, 29 September–1 October 2005, pp. 237–255
Metadata
Title
Managing Software Complexity with Power-Generics
Author
Stan Jarzabek
Copyright Year
2018
DOI
https://doi.org/10.1007/978-3-319-65208-5_3

Premium Partner