Skip to main content

2018 | OriginalPaper | Buchkapitel

Managing Software Complexity with Power-Generics

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

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.

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

Fußnoten
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].
 
Literatur
1.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat 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
16.
17.
Zurück zum Zitat 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.
Zurück zum Zitat 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.
Zurück zum Zitat Schmidt, D.: Model-Driven Engineering, pp. 25–31. Computer, IEEE (2006) Schmidt, D.: Model-Driven Engineering, pp. 25–31. Computer, IEEE (2006)
20.
Zurück zum Zitat 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.
Zurück zum Zitat 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
Metadaten
Titel
Managing Software Complexity with Power-Generics
verfasst von
Stan Jarzabek
Copyright-Jahr
2018
DOI
https://doi.org/10.1007/978-3-319-65208-5_3