
- 224 pages
- English
- PDF
- Available on iOS & Android
About this book
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.
Frequently asked questions
- Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
- Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app.
Information
Table of contents
- Inhaltsverzeichnis
- 1 Einleitung
- 2 Neue Konzepte zu rModularisierung von Software
- 3 Zwei LOOM-Aspektweber
- 4 Entwurfsmuster
- 5 Programmierkonzepte
- 6 Projekte mit LOOM.NET
- 7 Verwandte Arbeiten
- 8 Zusammenfassung und Ausblick
- Literaturverzeichnis