
"Wir hatten alle ganz große Hoffnungen, was dieses Institut, seine Entwicklung und seine Wirkung angeht. Diese Hoffnungen haben sich übererfüllt." Matthias Platzeck, Ministerpräsident des Landes Brandenburg
Bewerbungsschluss HPI-Schülerkolleg
HPI-Schülerkolleg geht 2012 in sein viertes Jahr. Bis zum 6. Juni können sich interessierte und...
Hochschulinformationstag am HPI
Am 8. Juni 2012 findet der Hochschulinformationstag der Universität Potsdam auf dem Campus...
HPI Alumni Homecoming Event 2012
Die zentrale Begegnungsveranstaltung für die Ehemaligen des HPI feiert 2012 gleich mehrere...
Future SOC Symposium am HPI
Vom 14. bis zum 15. Juni 2012 findet das siebte Future SOC Symposium statt.
Zertifikatsverleihung HPI-Schülerkolleg 2011/12
15 Seminareinheiten in je 3 bis 4 Modulen haben die rund 55 Schülerinnen und Schüler abgeschlossen,...
HPDTRP Community Building Workshop
Vom 27. bis 29. Juni 2012 findet der HPDTRP Community Building Workshop am Hasso-Plattner-Institut...
Architektur komponentenbasierter Systeme mit LOOM: Aspekte, Muster, Werkzeuge
Eine gute Modularisierung von Software ist die Grundvoraussetzung für eine verteilte Anwendungsentwicklung. Das wurde bereits von Parnas (1972) beschrieben. Bei einem Modul handelt es sich um eine abgeschlossene Funktionseinheit, die einen Dienst an das System liefert und bei Bedarf ausgetauscht werden kann.
Wünschenswert ist es, wenn die Belange einer Software - also Dinge, die für die Entwicklung, den Betrieb oder anderweitig von Interesse für die Software sind - jeweils separat in einzelnen Modulen implementiert werden können. Gängige Formalismen unterstützen das nur beschränkt: Oft müssen Belange über mehrere Module verstreut implementiert werden oder ein Modul ist mit der Implementation mehrer Belange durchsetzt. In der Forschung wurde bereits nachgewiesen, dass das zu einer höheren Zahl von Programmierfehlern führt und die Softwarequalität verschlechtert.
Mit der Aspektorientierten Programmierung (AOP) nach Kiczales (1997) wurde ein Weg gefunden, der dieses Problem löst: Belange, die mit objektorientierten Formalismen andere Module überschneiden, können mit sogenannten Aspekten separat implementiert werden. Das geht allerdings auf Kosten der Modularisierung - die eigentlich verbessert werden sollte, denn der Aspektprogrammierer greift bei dieser Technik tief in die Implementationsdetails anderer Module ein.
Die Arbeit präsentiert mit dem vom Autor entwickelten LOOM-Programmierparadigma einen neuen Ansatz, mit dem das Problem der Streuung und Durchsetzung unter gleichzeitiger Beibehaltung der Modulgrenzen gelöst werden konnte. Die Interaktion zwischen Aspekten und anderen Modulen erfolgt bei LOOM stets über definierte Schnittstellen, die allen Beteiligten bekannt sind.
Ein wesentliches Konzept in LOOM ist dabei die Annotationsrelation, die zwischen einem neuen Modultyp, den Aspekten, und anderen Modulen, wie Komponenten, Klassen und Methoden, hergestellt werden kann. Mit dem Konzept der Überdeckung lässt sich der Wirkungsbereich von Aspekten explizit festlegen. Konzepte wie die Joinpoint-Variablen und die Nachrichtenmanipulation ermöglichen es dem Aspektentwickler, gegen unbekannte Schnittstellen zu programmieren.
Die neuen LOOM-Konzepte lassen sich alle auf einem bestehenden Industriestandard, der Common Language Infrastructure abbilden. Das bedeutet, dass Standardausführungs-umgebungen und Compiler weiterhin verwendet werden können. Die Umsetzung der Konzepte erfolgt durch die vom Autor entwickelten Werkzeuge Rapier-Loom.Net und Gripper-Loom.Net entweder zur Laufzeit der Anwendung oder als nachgelagerter Kompilierungsschritt.
LOOM ist ein ganzheitliches Paradigma für die Entwicklung komponentenbasierender Softwaresysteme, das - angefangen beim Entwurf über die Programmierung, dem Erstellen und Testen, bis zum Betrieb - in jeder Phase des Softwareentwicklungsprozesses einen Beitrag zur Effizienz und Qualitätssteigerung liefert. Belegt wird das in dieser Arbeit mit vielen Anwendungsbeispielen, unter anderem mit einer Studie im industriellen Umfeld für eine Anwendung mit mehr als 20.000 Nutzern.
Mit LOOM lassen sich auch bestehende Programmiersprachen um andere Programmierkonzepte wie das "Kontextorientierte Programmieren" oder "Design by Contract" erweitern.
Die große Praxisrelevanz das LOOM-Paradigmas wird durch die große Zahl der Nutzer, auch aus dem Bereich der Wirtschaft belegt.

