Semantische Kapselung und Nebenläufigkeitstransparenz in der objektorientierten Programmierung
Final Report Abstract
Die objektorientierte Programmierung wird mittlerweile in fast allen Bereichen der Softwareentwicklung eingesetzt. Aktuelle objektorientierte Programmiersprachen besitzen jedoch ein fehleranfälliges und nicht-modulares Nebenläufigkeitsmodell basierend auf parallelen Ausführungssträngen, die auf einem globalen Objektspeicher arbeiten. In diesem Projekt wurde ein Programmiermodell für die nebenläufige objektorientierte Programmierung entwickelt, das verschiedene bekannte Lösungsansätze vereint und verallgemeinert. Zusammenfassend sind die folgenden Forschungsergebnisse hervorzuheben: 1. Entwicklung eines Programmiermodells für die sequentielle objektorientierte Programmierung, das es ermöglicht das Verhalten von Laufzeitkomponenten abstrakt zu beschreiben. Laufzeitkomponenten sind in diesem Modell hierarchisch strukturierte Objektbereiche mit klar definierten Schnittstellen. Dies ermöglicht eine klare Definition der Substituierbarkeit von Laufzeitkomponenten und liefert damit auch einen Beitrag zur Wiederverwendung von Softwarebausteinen. 2. Entwicklung eines Typsystems für objektorientierte Programmiersprachen, das bestimmte Kapselungseigenschaften statisch garantieren kann. Das entstandene Typsystem ist einfach in der Anwendung und dabei ausreichend flexibel, um gängige Programmiermuster erlauben zu können. 3. Entwicklung einer formalen Definition der Unveränderbarkeit von Objekten in objektorientierten Programmiersprachen und eines Algorithmusses zur statischen Verifikation der Unveränderbarkeit von Klassen. 4. Entwicklung eines neuen Programmiermodells für verteilte, nebenläufige objektorientierte Programme. Das entstandene Modell basiert auf dem zuvor genannten ProgrammiermodeU für sequentielle Programmierung. Das Modell verallgemeinert das bekannte Ausfühmngsmodell der aktiven Objekte auf Objektbereiche und integriert preemptives Scheduling mit kooperativem Scheduling in einem Modell. Das Modell ist einfach in der Anwendung und garantiert Atomarität innerhalb eines Objektbereiches. Zur praktischen Erprobung der theoretischen Modelle wurde ein Übersetzer entwickelt und implementiert. Mittels dieses Übersetzers wurden zahlreiche Beispielprogramme implementiert und getestet. Unter anderem wurde das Beispiel aus der CoCoME-Fallstudie in dem neuen Modell realisiert.
Publications
- Modular Specification of Encapuslated Object-Oriented Components. In: Boer, Frank S. (Hrsg.) ; Bonsangue, Marcello M. (Hrsg.); Graf, Susanne (Hrsg.); Roever, Willem-Paul de (Hrsg.): Formal Methods for Components and Objects, Fourth International Symposium, FMCO 2005 Bd. 4111, Springer, 2006 (LNCS), S. 313-341
Poetzsch-Heffter, Arnd ; Schäfer, Jan
- Simple Loose Ownership Domains / Department of Computer Science, University of Kaiserslautern, Germany. 2006 (348/06). - Forschungsbericht
Schäfer, Jan ; Poetzsch-Heffter, Arnd
- Simple Loose Ownership Domains. In: ECOOP Workshop on Formal Techniques for Java-like Programs, FTfJP2006, 2006
Schäfer, Jan ; Poetzsch-Heffter, Arnd
- Simple Loose Ownership Domains: Ein Typsystem zur Kapselung von Objekten. In: Softwaretechnik-Trends 26 (2006), Mai, Nr. 2
Schäfer, Jan ; Poetzsch-Heffter, Arnd
- A Parameterized Type System for Simple Loose Ownership Domains. In: Journal of Object Technology 5 (2007), Juni, Nr. 6, S. 71-100
Schäfer, Jan ; Poetzsch-Heffter, Arnd
(See online at https://dx.doi.org/10.5381/jot.2007.6.5.a3) - A Representation-Independent Behavioral Semantics for Object-Oriented Components. In: 9th IFIP International Conference on Formal Methods for Open Object-Based Distributed Systems (FMOODS), Springer, Juni 2007 (LNCS)
Poetzsch-Heffter, Arnd ; Schäfer, Jan
- Immutable Objects for a Java-like Language. In: Nicola, Rocco D. (Hrsg.): 16th European Symposium on Programming (ESOP'07) Bd. 4421, Springer, März 2007 (LNCS), S.347-362
Haack, Christian; Poll, Erik; Schäfer, Jan; Schubert, Aleksy
- Infering ownership types for encapsulated object-oriented program components. In: Reps, T. (Hrsg.) ; Sagiv, M . (Hrsg.) ; Bauer, J. (Hrsg.): Program Analysis and Compilation, Theory and Practice: Essays dedicated to Reinhard Wilhelm on the Occasion of His 60th Birthday Bd. 4444, Springer-Verlag, 2007 (LNCS), S. 120-144
Poetzsch-Heffter, Arnd ; Geilmann, Kathrin ; Schäfer, Jan
- Modular Shape Analysis for Dynamically Encapsulated Programs. In: Nicola, Rocco D. (Hrsg.): 16th European Symposium on Programming (ESOP'07) Bd. 4421, Springer, März 2007 (LNCS)
Rinetzky, Noam ; Poetzsch-Heffter, Arnd ; Ramalingam, Ganesan; Sagiv, Mooly ; Yahav, Eran
- CoBoxes: Unifying Active Objects and Structured Heaps. In: Barthe, G. (Hrsg.) ; Boer, F. de (Hrsg.): 10th IFIP International Conference on Formal Methods for Open Object-Based Distributed Systems (FMOODS 2008) Bd. 5051, Springer, 2008 (LNCS), S. 201-219
Schäfer, Jan ; Poetzsch-Heffter, Arnd
- Linking Programs to Architectures: An Object-Oriented Hierarchical Software Model based on Boxes. In: Rausch, Andreas (Hrsg.) ; Reussner, Ralf (Hrsg.) ; Mirandola, Raffaela (Hrsg.); Plasil, Frantisek (Hrsg.): The Common Component Modeling Example: Comparing Software Component Models. Bd. 5153. Springer-Verlag, 2008 (Lecture Notes in Computer Science), S. 238-266
Schäfer, Jan ; Reitz, Markus ; Gaillourdet, Jean-Marie ; Poetzsch-Heffter, Arnd
- Towards a Fully Abstract Semantics for Object-Oriented Program Components. Juli 2008
Poetzsch-Heffter, Arnd ; Gaillourdet, Jean-Marie ; Schäfer, Jan