Software Architektur

Die Software-Architektur

Die Softwarearchitektur hat sich in den letzten Jahren zu einem wesentlichen Bestandteil der Softwareentwicklung entwickelt. In der Softwarearchitektur sind der Entwurf und die Designregeln eines Softwaresystems zusammengefasst. Die Softwarearchitektur will erreichen, dass das Anwendungssystem die. - Architektur: Definition der globalen Struktur (Grobdesign), insbesondere zur Erreichung nicht-funktionaler Anforderungen.

mw-headline" id="Definition">Definition[ bearbeitet: Definition ">Bearbeiten | < Quelltext bearbeiten]

Die Software-Architektur ist einer der Architektur-Typen in der Computerwissenschaft und bezeichnet die Grundkomponenten und deren Zusammenwirken innerhalb eines Softwaresystems.] 1 Die architektonischen Elemente stellen eine Zersetzung des gesamten Systems dar, d.h. jedes Software-Element ist exakt einer architektonischen Komponente zugeordne. Dabei ist die Software-Architektur Teil des Software-Designs (siehe SWEBOK), innerhalb dessen sie als Grobstrukturierung der Bauteile erstellt wird.

Obwohl sich das Software-Design auch auf die lokalen Gegebenheiten innerhalb des Architekturrahmens der Software beziehen und daher sehr detailreich sein können, ist die Software-Architektur eine weltweite Besonderheit des gesamten Systems. Die Software-Architektur stellt im Kontext der Software-Entwicklung die erste Entscheidung über das Software-Design (Architektur-Design) dar. Er wird im Wesentlichen durch Software-Qualitätskriterien festgelegt, d.h. durch nicht-funktionale Merkmale wie Änderbarkeit, Wartungsfähigkeit, Sicherheit oder Leistung (siehe z.B. FURPS).

Einmal aufgesetzt, kann eine Software-Architektur nur mit großem Anpassungsaufwand verändert werden. Damit ist die Wahl des Designs einer der kritischen und wichtigen Aspekte im Entstehungsprozess einer Software. In seiner ökonomischen Sichtweise ist eine Software-Architektur in starkem Maße von umliegenden Gesichtspunkten abhängt. Eine Software-Architektur bedarf daher, um ein erfolgreiches Arbeiten zu ermöglichen, einer geeigneten Koordination mit den wesentlichen anderen Einflussfaktoren des Softwareprojektes.

Eine gut durchdachte Software-Architektur vermittelt Anwendern und Entwicklern des Software-Projekts leicht ein Grundverständnis desssystems. Wesentliche Einflussfaktoren für die Angemessenheit der Software-Architektur sind Projektierung, Gefahrenanalyse, Organisation, Entwicklungsablauf, Workflows, Hardware, Qualitätskontrolle und Requirements. Der Beginn der Darstellung und Verwendung einer eindeutigen Software-Architektur geht auf die 1960er Jahre zurück, als die ersten großen Software-Systeme entwickelt wurden.

Der Begriff "Softwarearchitektur" wird erstmals im Rahmen einer 1969 in Rom abgehaltenen, von der NATO geförderten Softwareentwicklungskonferenz erwähnt. Im IT-Bereich wurde in den 70er und 80er Jahren das Stichwort "Architektur" in Verbindung mit der Systemarchitektur (d.h. physikalischen Computersystemstrukturen) oder spezifisch mit Bezug auf Prozessfamilien oft gebraucht.

5. 1972 publizierte David Parnas einen wichtigen Beitrag über Klassifizierungskriterien für die Modulzerlegung von Software-Systemen. 6] Obwohl er den Ausdruck "Softwarearchitektur" nicht benutzte, nahm er einige der späteren Entwürfe und Vorstellungen für die Architektur der Software mit. 5} Das 1975 erschienene Werk The Mythical Man Month von Friedrich P. Brooks, in dem Schlüsselbegriffe für die Gestaltung und Gestaltung von Software-Systemen erörtert wurden.

Zu den aktuellen Praxis-Themen gehören Software-Architekturen für Cloud Computing, Multicore-Prozessoren und Mobilgeräte sowie Service-orientierte Sichten. Aktuellste Forschungsschwerpunkte im Umfeld der Software-Architektur sind z.B. das Knowledge Management für Software-Architekturen, Modell-basierte Analysemethoden sowie Software-Produktlinien. Eine Softwarearchitekturbeschreibung beinhaltet Angaben über die Aufbauorganisation ("Komponentenbildung") eines Softwaresystems, aber auch Angaben über die Verbindung zwischen den einzelnen Bauteilen und deren Zuordnung zu Hard- oder Softwareressourcen (Verteilung und Bereitstellung).

Eine Software-Architektur kann verschiedene Eigenschaften aufweisen: In einer Funktionalarchitektur (oder auch funktionalen Architektur) kann die Struktur des Gesamtsystems in Form von Funktionalitäten oder Merkmalen wiedergegeben werden. Es ist zu beachten, dass es für ein bestimmtes Unternehmen keine einheitliche Software-Architektur gibt. Beschreibungen der Software-Architektur können über den kompletten Life-Cycle eines Softwaresystems verwendet werden. Dies umfasst neben der Softwareentwicklung auch die Softwareentwicklung, die Softwareinstallation und den Softwarebetrieb.

Neben den fachlichen Aktivitäten profitiert auch das Projektmanagement wie z. B. Kostenschätzungen, Meilensteinplanungen, projektübergreifende Software-Wiederverwendungsplanung und die Gestaltung der verteilten Softwareentwicklung von einer fundierten architektonischen Beschreibung. Software-Architekten verwenden für den Design oft bewährte Lösungsansätze, die als so genannte Architecturmuster beschrieben werden. 33 ] Diese stellen Templates für die Grundorganisation und das Zusammenspiel von Software-Komponenten bereit. Beispielhafte architektonische Muster sind Client-Server (z.B. HTTP-Foundation) oder geschichtete Architektur (z.B. OSI-Modell).

Bestimmte architektonische Muster können mit Unterstützung von vorgefertigten Infrastrukturprogrammen realisiert werden. So lässt sich zum Beispiel das Peer-to-Peer-Architekturmuster mit einer Präsenzbibliothek wie JXTA implementieren. Eine wichtige Eigenschaft von Software-Architekturen ist ihre Konsistenz in Hinblick auf Veränderungen der von der Software zu bearbeitenden Probleme. Geringfügige Veränderungen des Problems sollten nur zu kleinen Veränderungen in der Software-Architektur aufkommen.

Zentrales Gütemerkmal für die Tätigkeit eines Software-Architekten aus ökonomischer Perspektive ist daher, ob er eine Software-Architektur definiert, die gar nicht oder nur geringfügig mit kleinen Veränderungen in der Aufgabendefinition verändert werden muss. Dies wird in der agile Software-Entwicklung als Design for Change bezeichnet - eine Software-Architektur, die offen ist für jede Änderung des Problems.

Dazu wird Emergent Design verwendet - eine stetig anwachsende Software-Architektur, die gerade dort Flexibilität bietet, wo sich die Bedürfnisse oft verändern. Beim Entwickeln und Aufbauen einer Software-Architektur in einem Betrieb sind unter anderem die folgenden Überlegungen zu berücksichtigen: Helmuth Balzert: Schulbuch der Softwaretechnik. Spektralakademie, Heidelberg 2001, ISBN 3-8274-0301-4. Volume 1: Software Development.

M. Gharbi, A. Koschel, A. Rausch, G. Starke: Grundlagewissen SW-Architektur. m. Ralf Reussner, Wilhelm Hasselbring: Anleitung der SOLUTION. 3. August 2012, ISBN 3-89864-791-9. Ausgabe. datpunkt edition, Heidelberg 2008, ISBN 978-3-89864-559-1 Johannes Siedersleben: Modernste Software-Architektur. datumsverlag, Heidelberg 2004, ISBN 3-89864-292-5. datum: Effective Software Architectures: A Practical Guide.

Carl- Hanser-Verlag, München 2010, ISBN 978-3-446-41215-6 St. Gerno Starke, Peter Hruschka: "Software-Architektur kompakt", zweite Ausgabe, Springer-Verlag, 2011, ISBN 3-8274-2834-3. Oliver Vogel, Ingo Arnold, Arif Chughtai, Markus Völter: Software-Architektur. Spektralakademie, Heidelberg 2005, ISBN 3-8274-1534-9 Len Bass, Paul Clements, Rick Kazman: Software-Architektur in der Praxis. Adrison-Wesley Professional, 2003, ISBN 978-0-321-15495-8. Hochsprung Helmut Balzert: Fachbuch für Software Engineering.

Vol. 2: Design, Implementation, Installation and Operation, Spektrum Akademie Verlags, 2011, ISBN 978-3-8274-1706-0, S. 580. aufsteigend ? Paul Clements, Felix Bachmann, Len Bass, David Garlan, James Ivers, Reed Little, Paulo Merson, Robert Nord, Judith Stafford: Dokumentation von Softwarearchitekturen: Addison-Wesley, Boston 2010, ISBN 0-321-55268-7. Springe zu: von Friedrich P. Brooks:

Das mythische Mannmonat: Aufsätze zum Thema Software Engineering. Addison-Wesley, Reading 1995, ISBN 978-0-201-83595-3. Hochsprung ? B. Randell, J.N. Buxton (Ed.): Software-Engineering-Techniken. Springen Sie hoch zu: abbcde P. Kreuzten, H. Obbink, J. Stafford: Die Vergangenheit, Gegenwart und Zukunft der Softwarearchitektur. IEEE-Software. Überspringen Sie nach: von D. L. Parnas:

Hochsprung ? Dewayne E. Perry, Alexander L. Wolf: Gründungen für das Studium der Softwarearchitektur. Die ACM SIGSOFT Software Engineering Notes. High-Springen ? R. Kazman, L. Bass, G. Abowd, M. Webb: SAAM: eine Methode zur Analyse der Eigenschaften von Softwarearchitekturen. Hochsprung ? P. B. Kruchten: Das Architekturmodell mit 4+1-Ansicht.

IEEE-Software. Hochsprung ? Christine Hofmeister, Robert Nord, Dilip Soni: Angewandte Software-Architektur. Die Addison-Wesley Professional, 2009, ISBN 978-0-321-64334-6. Hochsprung ? Frank Buschmann et al. : Musterorientierte Softwarearchitektur. Wiley, Chichester (New York) 1996, ISBN 978-0-471-95869-7. Hochsprung ? Paul Clements, Rick Kazman, Mark Klein: Bewertung von Softwarearchitekturen. Adison-Wesley Professional, 2002, ISBN 978-0-201-70482-2.

Hochsprung ? Len Bass, Paul Clements, Rick Kazman: Softwarearchitektur in der Praxis. Adison-Wesley Professional, 2003, ISBN 978-0-321-15495-8. High-Springen ? Mike Cohn : [=http://www.mountaingoatsoftware. com/blog/agile-designn-intentional-unbeabsichtigt- dennoch-emergent Agile Design : Bergziegen-Software-Blog. Hochsprung ? Richard N. Taylor, Nenad Medvidovi?, Eric M. Dashofy: Software-Architektur. Wiley, Hoboken 2010, ISBN 978-0-470-16774-8, S. 199-241. Hochsprung unter ? Brenner Quecksilber, Klaus Birken, Michael Gerdom:

Grundkenntnisse der Software-Architektur. 2004, ISBN 978-3-89864-270-5, S. 95 f. Hochsprung ? Grady Booch: 1994, ISBN 978-3-89319-673-9, S. 291 f. High-Springen Helmut Balzert: Schulbuch des Software Engineering. Spektralakademie, 2011, ISBN 978-3-8274-1706-0, S. 6. Hochsprung Helmut Balzert: Fachbuch für Software Engineering. Spectrum Academischer Verlags, 2011, ISBN 978-3-8274-1706-0, S. 29 ff. Springen Sie auf M. Saw, R. DeLine, D. V. Klein, T. L. Ross, D. M. Young, G. Zelesnik:

Abstraktionen für die Softwarearchitektur und die Werkzeuge zu ihrer Unterstützung. Transaktionen von IEEE im Bereich Software Engineering. Hochsprung unter ? Die Schwestern Wybe Dijkstra: Lehrlingshalle, 1976, ISBN 978-0-13-215871-8, S. 56. Springen Sie auf ? W. P. Stevens, G. J. Myers, L. L. Constantine: Hochsprung ? Edward Yourdon, Larry L. Constantine: 1979, ISBN 978-0-13-854471-3. Hochsprung unter ? Wincenzo Ambriola, Genoveffa Tortora:

Fortschritte in den Bereichen Software und Knowledge-Management. Weltwissenschaftlich, 1993, ISBN 978-981-02-1594-1, S. 27. Hochsprung unter ? Friedrich P. Brooks: Das mythische Mannmonat: Aufsätze zum Thema Softwareentwicklung. Addison-Wesley, Reading 1995, ISBN 978-0-201-83595-3, S. 44. Hochsprung ? Richard N. Taylor, Nenad Medvidovic, Eric M. Dashofy: Software-Architektur. Wiley, 2009, ISBN 978-0-470-16774-8, S. 99. Springen Sie auf Len Bass, Paul Clements, Rick Kazman: Software-Architektur in der Praxis.

Adison-Wesley Professional, 2003, ISBN 978-0-321-15495-8, S. 71. Hochsprung ? Len Bass, Paul Clements, Rick Kazman: Softwarearchitektur in der Praxis. Adison-Wesley Professional, 2003, ISBN 978-0-321-15495-8, S. 13. Hochsprung ? Len Bass, Paul Clements, Rick Kazman: Softwarearchitektur in der Praxis. Adison-Wesley Professional, 2003, ISBN 978-0-321-15495-8, S. 99. High Jump ? Muhammed Ali Barbar, Ian Gorton:

Überprüfung der Softwarearchitektur: Hochsprung ? Nick Rozanski, Eóin Woods: Softwaresystem-Architektur. Addison-Wesley, 2011, ISBN 978-0-321-71833-4, S. 191-208.

Auch interessant

Mehr zum Thema