Skip to main content

2019 | OriginalPaper | Buchkapitel

Software Evolution with a Typeful Version Control System

verfasst von : Luís Carvalho, João Costa Seco

Erschienen in: Software Engineering and Formal Methods

Verlag: Springer International Publishing

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

search-config
loading …

Abstract

Agile software development comprises small evolution steps that require discipline and planning to maintain the soundness between all the components of a system. Software product lines pose similar challenges when the soundness between different branches of a product is at stake. Such challenges are usually tackled by engineering methods that focus on the development process, and not on the subject of attention, the code. The risk of code inconsistency between versions has been mostly supported by analysis of the history of releases and by evaluating feature interferences.
In this paper, we propose a language-based approach to provide a certifying version control system that enables the explicit specification of the evolution steps of a software artifact throughout its life-cycle, and ensures the sane sharing of code between versions. Our model is suitable to be integrated into a smart development environment to help manage the whole code base of an application. This enables the static verification of program evolution steps, based on the correctness of state transformations between related versions, and for the stable coexistence of multiple versions at run-time. We instantiate our formal developments in a core language that extends Featherweight Java and implements the verification as a type system.

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!

Literatur
1.
Zurück zum Zitat Amsden, E., Newton, R., Siek, J.: Editing functional programs without breaking them. In: IFL 2014 (2014) Amsden, E., Newton, R., Siek, J.: Editing functional programs without breaking them. In: IFL 2014 (2014)
2.
Zurück zum Zitat Bennett, K.H., Rajlich, V.T.: Software maintenance and evolution: a roadmap. In: Proceedings of the Conference on the Future of Software Engineering (2000) Bennett, K.H., Rajlich, V.T.: Software maintenance and evolution: a roadmap. In: Proceedings of the Conference on the Future of Software Engineering (2000)
5.
Zurück zum Zitat Eick, S.G., Graves, T.L., Karr, A.F., Marron, J.S., Mockus, A.: Does code decay? assessing the evidence from change management data. IEEE Trans. Softw. Eng. 27(1), 1–2 (2001)CrossRef Eick, S.G., Graves, T.L., Karr, A.F., Marron, J.S., Mockus, A.: Does code decay? assessing the evidence from change management data. IEEE Trans. Softw. Eng. 27(1), 1–2 (2001)CrossRef
6.
Zurück zum Zitat Erwig, M., Ren, D.: A rule-based language for programming software updates. In: Proceedings of the 2002 ACM SIGPLAN Workshop on Rule-Based Programming - RULE 2002, Pittsburgh, Pennsylvania (2002) Erwig, M., Ren, D.: A rule-based language for programming software updates. In: Proceedings of the 2002 ACM SIGPLAN Workshop on Rule-Based Programming - RULE 2002, Pittsburgh, Pennsylvania (2002)
7.
Zurück zum Zitat Graves, T., Karr, A., Marron, J., Siy, H.: Predicting fault incidence using software change history. IEEE Trans. Softw. Eng. 26(7), 653–661 (2000)CrossRef Graves, T., Karr, A., Marron, J., Siy, H.: Predicting fault incidence using software change history. IEEE Trans. Softw. Eng. 26(7), 653–661 (2000)CrossRef
8.
Zurück zum Zitat Hosek, P., Cadar, C.: Safe software updates via multi-version execution. In: 2013 35th International Conference on Software Engineering (ICSE), May 2013 Hosek, P., Cadar, C.: Safe software updates via multi-version execution. In: 2013 35th International Conference on Software Engineering (ICSE), May 2013
9.
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
10.
Zurück zum Zitat Izurieta, C., Bieman, J.M.: How software designs decay: a pilot study of pattern evolution. In: First International Symposium on Empirical Software Engineering and Measurement (ESEM 2007) (2007) Izurieta, C., Bieman, J.M.: How software designs decay: a pilot study of pattern evolution. In: First International Symposium on Empirical Software Engineering and Measurement (ESEM 2007) (2007)
11.
Zurück zum Zitat Kim, J., Malaiya, Y.K., Ray, I.: Vulnerability discovery in multi-version software systems. In: 10th IEEE High Assurance Systems Engineering Symposium (HASE 2007) (2007) Kim, J., Malaiya, Y.K., Ray, I.: Vulnerability discovery in multi-version software systems. In: 10th IEEE High Assurance Systems Engineering Symposium (HASE 2007) (2007)
12.
Zurück zum Zitat Kim, M., Notkin, D.: Program element matching for multi-version program analyses. In: Proceedings of the 2006 International Workshop on Mining Software Repositories - MSR 2006 (2006) Kim, M., Notkin, D.: Program element matching for multi-version program analyses. In: Proceedings of the 2006 International Workshop on Mining Software Repositories - MSR 2006 (2006)
14.
Zurück zum Zitat Omar, C., Voysey, I., Chugh, R., Hammer, M.A.: Live functional programming with typed holes. Proc. ACM Program. Lang. 3, 14 (2019)CrossRef Omar, C., Voysey, I., Chugh, R., Hammer, M.A.: Live functional programming with typed holes. Proc. ACM Program. Lang. 3, 14 (2019)CrossRef
15.
Zurück zum Zitat Omar, C., Voysey, I., Hilton, M., Aldrich, J., Hammer, M.A.: Hazelnut: a bidirectionally typed structure editor calculus. ACM SIGPLAN Not. 52(1), 86–99 (2017)CrossRef Omar, C., Voysey, I., Hilton, M., Aldrich, J., Hammer, M.A.: Hazelnut: a bidirectionally typed structure editor calculus. ACM SIGPLAN Not. 52(1), 86–99 (2017)CrossRef
17.
Zurück zum Zitat Subramanian, S., Hicks, M., McKinley, K.S.: Dynamic software updates: a VM-centric approach. SIGPLAN Not. 44(6), 1–12 (2009)CrossRef Subramanian, S., Hicks, M., McKinley, K.S.: Dynamic software updates: a VM-centric approach. SIGPLAN Not. 44(6), 1–12 (2009)CrossRef
18.
Zurück zum Zitat Swanson, E.B.: The dimensions of maintenance. In: Proceedings of the 2nd International Conference on Software Engineering (1976) Swanson, E.B.: The dimensions of maintenance. In: Proceedings of the 2nd International Conference on Software Engineering (1976)
20.
Zurück zum Zitat Wash, R., Rader, E., Vaniea, K., Rizor, M.: Out of the loop: how automated software updates cause unintended security consequences. In: 10th Symposium On Usable Privacy and Security (\(\{\)SOUPS\(\}\) 2014) (2014) Wash, R., Rader, E., Vaniea, K., Rizor, M.: Out of the loop: how automated software updates cause unintended security consequences. In: 10th Symposium On Usable Privacy and Security (\(\{\)SOUPS\(\}\) 2014) (2014)
21.
22.
Zurück zum Zitat Zimmermann, T., Zeller, A., Weissgerber, P., Diehl, S.: Mining version histories to guide software changes. IEEE Trans. Softw. Eng. 31(6), 429–445 (2005)CrossRef Zimmermann, T., Zeller, A., Weissgerber, P., Diehl, S.: Mining version histories to guide software changes. IEEE Trans. Softw. Eng. 31(6), 429–445 (2005)CrossRef
Metadaten
Titel
Software Evolution with a Typeful Version Control System
verfasst von
Luís Carvalho
João Costa Seco
Copyright-Jahr
2019
DOI
https://doi.org/10.1007/978-3-030-30446-1_8

Premium Partner