Faculté informatique et communications IC, Section d'informatique, Institut des systèmes informatiques et multimédias ISIM (Laboratoire de génie logiciel LGL)

A concern-oriented approach to software architecture

Kandé, Mohamed Mancona ; Strohmeier, Alfred (Dir.)

Thèse sciences Ecole polytechnique fédérale de Lausanne EPFL : 2003 ; no 2796.

Ajouter à la liste personnelle
    Summary
    A major cause of many complications in the field of software architectures is the lack of appropriate abstractions for separating, combining and encapsulating concerns of various kinds in architectural descriptions. Architectures of most complex software-intensive systems involve concerns that inherently crosscut the natural boundaries of the elements composing the architecture descriptions. Crosscutting concerns intersect the common modularity of systems as prescribed by their architecture descriptions, by traversing both the components and connectors, i.e., the relationships among the components. Crosscutting concerns are critical aspects of many architectural problems. However, architectural descriptions written in special-purpose languages (ADLs) like Wright, Darwin, Rapide and Acme should support descriptions of multiple structures, which include diagrams, models and views, that intentionally address different kinds of concerns. ADLs should show how various concerns affect each other in architectural designs; they should also allow one to identify, analyze and elaborate architectural concerns that cut across several software components, such as transactions, security, load balancing, synchronization, reuse, customization, scalability, etc.; they should, but they do not. This dissertation presents a new approach to software architecture that is suitable for supporting concern-oriented development and documentation of architectures for software-intensive systems. This approach allows for creating and documenting a multidimensional software structure that is referred to as concern-oriented software architecture; it provides new mechanisms for encapsulating individual concerns into independent architectural constructs. The ultimate goal of this new approach is to provide support for achieving design by concerns all through the development and description of software architectures. Moving towards this goal, we present a particular concern-oriented architectural framework called Perspectival Concern-Spaces (PCS). The PCS Framework offers a flexible and extensible means a) for supporting advanced separation of concerns in architectural design, and in the construction and evolution of software-intensive systems; and b) for filling the gap between architectural descriptions and modern software development artifacts. To show the feasibility of the proposed approach, we provide new modeling techniques that are used to describe and apply an aspect-oriented architectural pattern, called the On-demand Remodularization pattern. We give several examples of how the PCS Framework can be used to integrate concern-oriented architectural documentations with mainstream software development artifacts.
    Zusammenfassung
    Wenn softwareintensive Systeme komplizierter werden, gewinnt die Softwarearchitektur an Bedeutung als vitales Element für den Bau solcher Systeme. Eines der Ziele im Gebiet der Softwarearchitektur ist die Verbesserung der Art, wie komplexe Softwareinfrastrukturen so organisiert werden können, dass die Kosten der Softwareproduktion sinken. Ein anderes der vielfältigen Ziele ist die Förderung von Software-Bauelementen, die wiederverwendbar, stabil und entwicklungsfähig sind. Eine der Hauptursachen der vielen Schwierigkeiten bei der Verfolgung dieser Ziele ist das Fehlen von geeigneten Abstraktionen, um verschiedenartige Anliegen (concerns) in Architekturbeschreibungen zu trennen und zu kombinieren. Querlaufende Anliegen sind in manchen Architekturproblemen von kritischer Bedeutung. Allerdings sollten Architekturen, die in Spezialsprachen (ADLs) wie z.B. Wright, Darwin, Rapide und Acme geschrieben sind, die Darstellung von multiplen Strukturen mit Diagrammen, Modellen und Ansichten (views) unterstützen, die beabsichtigen, verschiedenartige Anliegen zu erfassen. ADL's sollten zeigen, wie in Architekturbeschreibungen unterschiedliche Anliegen sich gegenseitig beeinflussen; sie sollten auch ermöglichen, Architekturanliegen zu identifizieren, zu analysieren und Architekturanliegen auszuarbeiten, die quer durch mehrere Softwarekomponenten gehen, wie z.B. Sicherheit, load balancing, Synchronisierung, Wiederverwendung, Anpassung an Kundenbedürfnisse, Skalierbarkeit etc; sie sollten das tun, aber sie tun es nicht. Diese Dissertation zeigt eine Anliegen-orientierte Vorgehensweise in der Softwarearchitektur, die geeignet ist sowohl die Entwicklung wie auch die Beschreibung von Architekturen für softwareintensive Systeme zu unterstützen. Diese Vorgehensweise, Anliegen-orientierte Softwarearchitektur (Concern-oriented Software Architecture) genannt, ermöglicht es, multidimensionale Softwarestrukturen zu schaffen und beschreiben. Sie bietet neue Mechanismen, um spezifische Anliegen in eigenständige Architekturkonstrukte einzubauen. Das oberste Ziel dieser Vorgehensweise ist, Unterstützung für das anliegen-orientierte Design (design by concerns) während der ganzen Entwicklung und Beschreibung von Softwarearchitekturen zu gewährleisten. Ich lege ein spezielles anliegen-orientiertes Framework vor, das Perspectival Concern-Spaces (PCS) genannt wird. Das PCS offeriert eine flexible und erweiterungsfähige Möglichkeit, um a) die höhere Trennung von Anliegen im Achitekturdesign sowie den Bau und die Entwicklung von softwareintensiven Systemen zu unterstützen; und b) die Lücke zwischen Architekturbeschreibungen und modernen Softwareentwicklungs-Artefakten zu schliessen. Das PCS-Framework ermöglicht es, Softwarearchitektur als eine multidimensionale Struktur zu behandeln, die einen "Vorrat an Konzepten" anbietet, aus denen ein oder mehrere Softwaresysteme gebaut werden können. Eine solche multidimensionale Softwarestruktur wird Architektur-Anliegenbereich, (architecture concern-space) genannt. Dank ivihrer Fähigkeit, die Schaffung von Architektur für multiple Softwaresysteme zu unterstützen, ist ein Architektur-Anliegenbereich (architecture concern-space) für Softwarearchitekten das, was ein Anwendungsframework (application framework) für die Entwickler von Softwareanwendungen ist. Um die Realisierbarkeit des vorgeschlagenen Vorgehens zu zeigen, gebe ich Beispiele, die zeigen, wie das PCS-Framework zur Integration von Architekturbeschreibungen in mainstream Softwareentwicklungsartefakte benutzt werden kann und wie die Unterscheidung (Trennung) verschiedener Anliegen im Design und bei der Konstruktion und Entwicklung von softwareintensiven Systemen gefördert werden kann.