Softwarearchitektur – Wikipedia. Eine Softwarearchitektur ist einer der Architekturtypen in der Informatik und beschreibt die grundlegenden Komponenten und deren Zusammenspiel innerhalb eines Softwaresystems. Eine Definition von Helmut Balzert beschreibt den Begriff als „eine strukturierte oder hierarchische Anordnung der Systemkomponenten sowie Beschreibung ihrer Beziehungen“.[1] Die Architekturkomponenten bilden eine Zerlegung des Gesamtsystems, was bedeutet, dass jedes Softwareelement genau einer Architekturkomponente zugeordnet ist. While much attention has been focused on high-level software architectural patterns, what is, in effect, the de-facto standard software architecture is seldom discussed. Eine Softwarearchitektur ist einer der Architekturtypen in der Informatik und beschreibt die grundlegenden Komponenten und deren Zusammenspiel innerhalb eines. Paul Clements beschreibt Softwarearchitektur als „Strukturen eines Softwaresystems: Softwareteile, die Beziehungen zwischen diesen und die Eigenschaften der Softwareteile und ihrer Beziehungen“.[2]Die Softwarearchitektur ist Teil des Softwareentwurfs (siehe SWEBOK), innerhalb dessen sie als Grobgliederung der Komponenten entsteht. Während der Softwareentwurf sich auch auf lokale Aspekte innerhalb des architektonischen Rahmens der Software bezieht und deshalb sehr detailliert sein kann, ist die Softwarearchitektur eine globale Eigenschaft des Gesamtsystems. Im Rahmen der Softwareentwicklung repräsentiert die Softwarearchitektur die früheste Softwaredesign- Entscheidung (Architekturentwurf). In software engineering, a software design pattern is a general reusable solution to a commonly occurring problem within a given context in software design. Brian's research interests include object-oriented programming, design, reuse, languages, frameworks, software architecture, patterns, reflection, metalevel. Sie wird wesentlich durch Softwarequalitätskriterien, also nicht- funktionale Eigenschaften wie Modifizierbarkeit, Wartbarkeit, Sicherheit oder Performance bestimmt (siehe beispielsweise FURPS). Eine einmal eingerichtete Softwarearchitektur ist später nur mit hohem Aufwand abänderbar. Die Entscheidung über ihr Design ist somit einer der kritischsten und wichtigsten Punkte im Entwicklungsprozess einer Software. Eine Softwarearchitektur ist in ihrer wirtschaftswissenschaftlichen Perspektive sehr stark von umgebenden Aspekten abhängig. Deswegen benötigt eine Softwarearchitektur, um erfolgreich funktionieren zu können, eine geeignete Abstimmung mit den wichtigsten übrigen Faktoren des Softwareprojekts. Für Benutzer und Entwickler des Softwareprojekts gibt eine gut konstruierte Softwarearchitektur leicht ein grundlegendes Verständnis des Systems. Wichtige Faktoren, die auf die Eignung der Softwarearchitektur Einfluss nehmen, sind Projektplanung, Risikoanalyse, Organisation, Entwicklungsprozess, Arbeitsabläufe, Hardware, Qualitätssicherung und Anforderungen. Diagramm der Wikimedia- Server- Architektur.
Eine Architekturbeschreibung umfasst etwa im Falle einer Web- Anwendung den Aufbau des Systems aus Datenbanken, Web- /Application- Servern, E- Mail- und Cachesystemen − siehe etwa Wikipedia selbst.Die Anfänge der Beschreibung und Nutzung einer expliziten Softwarearchitektur reichen zurück bis in die 1.Jahre, als die ersten größeren Softwaresysteme entstanden.[3] Die Komplexität der Systeme (z. B.OS/3. 60) machte es notwendig, die Implementierungsaufgaben auf verschiedene Teams aufzuteilen und Schnittstellen zu definieren.Die erste Erwähnung des Begriffs „Softwarearchitektur“ findet sich im Tagungsband einer von der NATO finanzierten Konferenz über Softwaretechnik im Jahre 1.Rom.[4] Besucher dieser Konferenz waren zahlreiche Informatikpioniere, wie z. B. Tony Hoare, Edsger W. Dijkstra, Alan Perlis, Per Brinch Hansen, Friedrich L. Bauer, und Niklaus Wirth. In den 1. 97. 0er und 1. Jahren wurde das Wort „Architektur“ im IT- Bereich häufig im Zusammenhang mit Systemarchitekturen (also physischen Computersystemstrukturen) verwendet oder bezog sich speziell auf Prozessorfamilien.[5] 1. David Parnas einen einflussreichen Artikel über Kriterien für die Moduldekomposition von Softwaresystemen.[6] Obwohl er dabei nicht den Begriff „Softwarearchitektur“ verwendete, nahm er doch einige der späteren Konzepte und Ideen für Softwarearchitektur vorweg.[5] 1. Buch The Mythical Man Month von Frederick P. Brooks, in dem Schlüsselkonzepte zum Entwurf und der Organisation von Softwaresystemen diskutiert wurden.[3] Weitere Artikel von Parnas und Brooks in den 1. Jahren vertieften diese Ideen und Konzepte. Softwarearchitektur wurde erst in den 1. Jahren ein unabhängiges Teilgebiet der Softwaretechnik. Dewayne Perry und Alexander Wolf einen grundlegenden Artikel mit dem Titel Foundations for the Study of Software Architecture.[7] Darin führten sie die Formel „Elemente + Form + Begründung = Softwarearchitektur“ ein. Viele Forscher interpretierten „Elemente“ als Softwarekomponenten und - konnektoren.[5] Daraufhin entstanden an verschiedenen Universitäten eine Reihe von Architekturbeschreibungssprachen (C2, Rapide, Darwin, Wright, ACME, Unicon), die allerdings kaum industriell eingesetzt wurden.[5]Ab 1. Softwarearchitektur sowohl im industriellen als auch im akademischen Umfeld zunehmend an Bedeutung. Das Software Engineering Institute (SEI) in Pittsburgh veröffentlichte die Software Architecture Analysis Method (SAAM).[8] Das Konzept der Architektursichten spiegelte sich in verschiedenen Ansätzen wie Rationals „4+1 views“[9] oder Siemens „Four views“[1. Buch Pattern- oriented Software Architecture, welches das Konzept der Entwurfsmuster auf Softwarearchitekturen übertrug.[1. Siemens, Nokia, Philips, Nortel, Lockheed Martin, IBM und andere größere Softwarefirmen nutzten Softwarearchitektur zur besseren Wiederverwendbarkeit von Software und entwarfen Softwareproduktlinien.[5] 1. USA die erste internationale Konferenz (WICSA 1) speziell zum Thema Softwarearchitektur statt.[1. Im Jahr 2. 00. 0 erschien die IEEE 1. Norm Recommended Practice for Architectural Description of Software- Intensive Systems zur Architekturbeschreibung von Softwaresystemen. Im gleichen Jahr übernahm mit Bill Gates eine der prominentesten Personen aus dem IT- Bereich den Titel Chief Software Architect bei Microsoft.[1. Das SEI arbeitete die szenariobasierte Architekturbewertungsmethode. Architecture Trade- off Analysis Method (ATAM) aus, die im Folgenden in zahlreichen Industrieprojekten Anwendung fand.[1. Die Unified Modeling Language (UML) eignet sich ab Version 2. Jahr 2. 00. 3 auch zur Dokumentation von Softwarearchitekturen. Buch zur Softwarearchitektur (Software Architecture in Practice) und hob die Bedeutung von Qualitätsattributen für den Entwurf und die Bewertung von Softwarearchitekturen hervor.[1. In Deutschland werden mit dem International Software Architect Qualification Board (i. SAQB),[1. 6] ein Zusammenschluss deutscher IT Firmen, seit 2. Zertifikate für Softwarearchitekten vergeben. Bis 2. 01. 3 wurden so mehr als 3. Softwarearchitekten nach CPSA- F (Foundation Level) zertifiziert.[1. Arbeitskreis der Gesellschaft für Informatik zum Thema Softwarearchitektur und veröffentlichte 2. Handbuch der Software- Architektur.[1. Arbeitskreis eine permanente GI- Fachgruppe.[1. Aktuelle Praxisthemen sind z. B. Softwarearchitekturen für Cloud Computing, Mehrkernprozessoren und mobile Endgeräte, sowie Serviceorientierte Architekturen. Aktuelle Forschungsthemen im Bereich Softwarearchitektur sind z. B. Wissensmanagement für Softwarearchitekturen, modellbasierte Analyseverfahren sowie Softwareproduktlinien. In agilen Softwareentwicklungsprojekten wird zunehmend auf evolutionäre Softwarearchitektur und emergentes Design im Gegensatz zu vorher festgelegter Architektur (engl: "Big Design Up Front")[2. Dabei soll durch Techniken wie Behavior Driven Development, Testgetriebene Entwicklung und vor allem Refactoring sichergestellt werden, dass das technische Design und die Architektur im Laufe eines Softwareentwicklungsprojektes ständig an die Anforderungen angepasst werden.[2. Die Beschreibung einer Softwarearchitektur enthält Informationen über die Struktur („Komponentisierung“) eines Software- Systems, aber auch Informationen über die Kommunikation zwischen Komponenten, sowie deren Abbildung auf Hardware- oder Software- Ressourcen (Verteilung und Deployment). Dabei kann eine Softwarearchitektur unterschiedliche Ausprägungen haben: So kann in einer Funktionsarchitektur (oder auch fachliche Architektur) die Gliederung des Systems in Funktionen oder Features dargestellt werden. In der Komponentenarchitektur wird der Grobentwurf des Systems in einzelne Komponenten festgehalten. Dieser Grobentwurf lässt sich im Feinentwurf feingranularer darstellen. Hierbei handelt es sich beispielsweise um Klassenhierarchien, Modularchitekturen oder programmiersprachenspezifischen Quelltext. Die Übergänge zwischen Feinentwürfen sind teilweise fließend. Festzuhalten ist, dass es nicht die eine Softwarearchitektur eines System gibt. Es müssen je nach Fragestellung und Interessenspunkt unterschiedliche Sichten hinzugezogen werden.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
November 2017
Categories |