Basiswissen für Softwarearchitekten (eBook)
248 Seiten
dpunkt (Verlag)
978-3-98890-073-9 (ISBN)
Mahbouba Gharbi ist Geschäftsführerin und Chef Architektin bei ITech Progress GmbH und iSAQB-Vorstandsvorsitzende, ist bekennender Softwarearchitektur-Fan, Autorin zahlreicher Fachartikel und häufige Sprecherin auf internationalen Konferenzen. Prof. Dr. Arne Koschel ist Dozent an der Hochschule Hannover mit dem Schwerpunkt verteilte (Informations-)Systeme. Er hat langjährige industrielle Praxis in Entwicklung und Architektur verteilter Informationssysteme. Nebenberuflich berät und referiert er zu Themen wie SOA, Integration, Middleware, EDA und Cloud Computing. Er ist Active Board Member im iSAQB. Prof. Dr. Andreas Rausch leitet den Lehrstuhl für Software Systems Engineering an der Technischen Universität Clausthal. Er war und ist in der industriellen Praxis als Berater und leitender Softwarearchitekt bei einer Reihe von großen verteilten Softwaresystemen tätig. Dr. Gernot Starke, innoQ Fellow, arbeitet als Berater für methodische Softwarearchitektur, Technologiemanagement und Projektorganisation. Seit mehr als 15 Jahren gestaltet er die Architektur von Softwaresystemen unterschiedlicher Größe.
Mahbouba Gharbi ist Geschäftsführerin und Chef Architektin bei ITech Progress GmbH und iSAQB-Vorstandsvorsitzende, ist bekennender Softwarearchitektur-Fan, Autorin zahlreicher Fachartikel und häufige Sprecherin auf internationalen Konferenzen. Prof. Dr. Arne Koschel ist Dozent an der Hochschule Hannover mit dem Schwerpunkt verteilte (Informations-)Systeme. Er hat langjährige industrielle Praxis in Entwicklung und Architektur verteilter Informationssysteme. Nebenberuflich berät und referiert er zu Themen wie SOA, Integration, Middleware, EDA und Cloud Computing. Er ist Active Board Member im iSAQB. Prof. Dr. Andreas Rausch leitet den Lehrstuhl für Software Systems Engineering an der Technischen Universität Clausthal. Er war und ist in der industriellen Praxis als Berater und leitender Softwarearchitekt bei einer Reihe von großen verteilten Softwaresystemen tätig. Dr. Gernot Starke, innoQ Fellow, arbeitet als Berater für methodische Softwarearchitektur, Technologiemanagement und Projektorganisation. Seit mehr als 15 Jahren gestaltet er die Architektur von Softwaresystemen unterschiedlicher Größe.
1Einleitung
Software ist allgegenwärtig. Dies gilt sowohl für kommerzielle Unternehmenssoftware als auch für nahezu alle anderen Bereiche des beruflichen, öffentlichen und privaten Alltags: Fliegen, Telefonieren, Überweisen, Autofahren – all das wäre ohne Software kaum noch möglich. In jedem Haushalt und in vielen Alltagsgegenständen, von der Waschmaschine bis zum Auto, werden softwaregesteuerte Bestandteile verwendet [BJ++06]. Software steht in der Regel nicht autark für sich, sondern ist in Geräte mit Hardware und Elektronik oder in Geschäftsprozesse, mit denen Unternehmen ihre Wertschöpfung erzielen, eingebettet [TTL00].
Der Nutzen und wirtschaftliche Erfolg von Unternehmen und Produkten wird zunehmend von Software und deren Qualität bestimmt (siehe [BM++96], [SV99], [TTL00]). Als Folge stehen Softwareingenieure und damit die Disziplin Software Engineering vor der Herausforderung, immer komplexere Anforderungen immer schneller und kostengünstiger bei gleichzeitig hoher Softwarequalität umzusetzen.
Die kontinuierliche Steigerung der Größe und Komplexität von softwareintensiven Systemen hat inzwischen dazu geführt, dass sie zu den komplexesten von Menschen geschaffenen künstlichen Systemen überhaupt zählen. Bestes Beispiel ist das Internet: ein auf Software basierendes weltumspannendes System. Inzwischen ist das Internet sogar auf der internationalen Raumstation ISS verfügbar und hat damit die Grenzen der Erde überschritten.
Nur ein strukturiertes und systematisches Herangehen kann dabei gesichert zum Erfolg führen. Trotz Anwendung etablierter Softwareentwicklungsmethoden bleibt die Anzahl der fehlgeschlagenen Softwareprojekte seit Jahren erschreckend hoch. Um dem entgegenzuwirken, versucht man in den frühen Phasen des Software Engineering bereits möglichst viele Fehler zu vermeiden bzw. dort zu identifizieren und auszumerzen. Zu diesen Phasen zählen insbesondere das Requirements Engineering sowie die Softwarearchitektur. Getreu den Worten von Ernst Denert, einem der Väter der methodischen Softwareentwicklung, wollen wir uns hier mit Softwarearchitektur beschäftigen, der »Königsdisziplin des Software Engineering« (zitiert aus dem Geleitwort von Ernst Denert in [Sie04]).
1.1Softwarearchitektur als Disziplin im Software Engineering
Bereits in den 60er-Jahren wurden die Probleme mit Softwareprojekten unter dem Stichwort Softwarekrise bekannt. 1968 fand in Garmisch eine NATO-Konferenz hochrangiger Forscher und Praktiker statt, um unter dem Titel »Software Engineering« über die Zukunft der Softwareentwicklung nachzudenken. Heute gilt diese Konferenz als Geburtsstunde des Software Engineering [Dij72].
Abb. 1–1Veröffentlichungen zu Softwarearchitektur seit 1973 [Reu12]
Im Vergleich zu traditionellen Ingenieurdisziplinen wie beispielsweise dem Bauwesen, das auf mehrere Tausend Jahre Erfahrung zurückblicken kann, ist Software Engineering mit dem Geburtsjahr 1968 noch sehr jung. So erscheint es auch nicht verwunderlich, dass dessen Teildisziplin Softwarearchitektur noch deutlich jünger ist. Abbildung 1–1 demonstriert dies deutlich: Das Web of Knowledge, eine der großen und renommierten Publikationsdatenbanken, verzeichnet erst ab den 90er-Jahren eine wachsende Anzahl von Publikationen zum Thema Softwarearchitektur [Reu12].
Betrachten wir hingegen die klassische Architektur im Bauwesen, so können wir auf eine bereits Jahrtausende währende Tradition zurückblicken. Ein wichtiger Vordenker war hier Marcus Vitruvius Pollio, ein römischer Architekt aus dem ersten Jahrhundert vor Christus. Er ist Autor des Werkes »De architectura«, das heute unter dem Titel »Ten Books on Architecture« bekannt ist [Vit60]. Vitruvius vertrat die These, dass gute Architektur durch eine kunstvolle Kombination der folgenden Elemente zu erreichen sei:
- utilitas (Nützlichkeit):
Das Gebäude erfüllt seine Funktion.
- firmitas (Festigkeit):
Das Gebäude ist stabil und langlebig.
- venustas (Schönheit):
Das Gebäude ist ästhetisch gestaltet.
Abb. 1–2Architektur im alten Rom
Diese These lässt sich direkt auf die Disziplin Softwarearchitektur übertragen. Ziel der Softwarearchitektur und damit Aufgabe eines Softwarearchitekten ist es, ein System zu konstruieren, das in einem kunstvoll ausgewogenen Dreiklang die drei folgenden Eigenschaften vereint:
- utilitas (Nützlichkeit):
Die Software erfüllt die funktionalen und nicht funktionalen Anforderungen der Nutzer und Kunden.
- firmitas (Festigkeit):
Die Software ist stabil im Hinblick auf die geforderten Qualitätseigenschaften, z.B. die Anzahl der gleichzeitig zu bedienenden Nutzer, und langlebig, da zukünftige Weiterentwicklungen möglich sind, ohne das System komplett neu bauen zu müssen.
- venustas (Schönheit):
Die Software ist sowohl außen (gegenüber dem Nutzer) wohlstrukturiert, sodass sie intuitiv nutzbar ist, als auch innen (gegenüber demjenigen, der die Software pflegen und weiterentwickeln soll) wohlstrukturiert, sodass dieser die internen Strukturen der Software leicht verstehen und damit gut seinen Aufgaben nachkommen kann.
1.2iSAQB – International Software Architecture Qualification Board
Softwarearchitektur ist eine junge Disziplin, über deren Umfang und Ausgestaltung in der Informatik trotz vieler Publikationen immer noch unterschiedliche Meinungen kursieren. Aufgaben und Verantwortungsbereiche von Softwarearchitekten werden unterschiedlich definiert und in Softwareprojekten ständig neu verhandelt.
Für andere Disziplinen im Software Engineering hingegen, wie z.B. beim Projektmanagement, Requirements Engineering oder Testen, gibt es inzwischen einen deutlich ausgereifteren Wissenskanon. Dafür bieten unabhängige Organisationen Lehrpläne an, die klar beschreiben, welche Kenntnisse und Fähigkeiten eine entsprechende Ausbildung vermitteln soll (Testen: www.istqb.org, Requirements Engineering: www.ireb.de, Projektmanagement: www.pmi.org).
Vor diesem Hintergrund haben Anfang 2008 verschiedene Softwarearchitekturexperten aus Wirtschaft und Wissenschaft das »International Software Architecture Qualification Board« als eingetragenen Verein (iSAQB e.V., www.isaqb.org) gegründet. Dessen Ziel ist es, Standards für die Ausbildung und Zertifizierung von Softwarearchitekten zu definieren. Bewusst wird im iSAQB jegliche Hersteller- oder Produktorientierung vermieden. Zertifizierungen auf den unterschiedlichen Stufen Foundation Level, Advanced Level und Expert Level ermöglichen es Softwarearchitekten, sich den Stand ihrer Kenntnisse und Fähigkeiten durch ein anerkanntes Verfahren bescheinigen zu lassen (siehe Abb. 1–3).
Abb. 1–3iSAQB-Zertifizierungsstufen (www.isaqb.org)
Von diesem standardisierten Lehr- und Ausbildungsplan profitieren sowohl etablierte als auch angehende Softwarearchitekten und ebenso Unternehmen oder auch entsprechende Aus- und Weiterbildungseinrichtungen, da er die eingangs geschilderte begriffliche Unsicherheit beseitigt. Nur auf Basis von präzisen Lehr- und Ausbildungsplänen kann eine Prüfung und Zertifizierung angehender Softwarearchitekten stattfinden und so letztlich ein qualitätsgesicherter Ausbildungsstand von Softwarearchitekten mit einem entsprechend akzeptierten Wissenskanon etabliert werden.
Die Zertifizierung zum Certified Professional for Software Architecture (CPSA) wird von unabhängigen Zertifizierungsstellen durchgeführt. Basis für die Zertifizierung zum CPSA (Foundation Level) ist ein anspruchsvoller, vom iSAQB in Einklang mit dem Lehrplan entwickelter, nicht öffentlicher Fragenkatalog, aus dem eine Teilmenge als Prüfungsfragen ausgewählt wird. Für die Zertifizierung zum Advanced Level werden neben der Erfordernis des Besuches von lizenzierten Schulungen bzw. der Anerkennung eines anderen, nicht durch den iSAQB definierten Zertifikats praktische Aufgaben gestellt. Der Expert Level befindet sich derzeit noch in Entwicklung.
Auf Basis dieses Lehrplans bieten verschiedene lizenzierte Schulungsveranstalter mehrtägige Kurse an, die Wissen in diesen Themengebieten auffrischen und vielfach deutlich vertiefen. Die Teilnahme an einem Kurs wird zwar nachdrücklich empfohlen, ist jedoch nicht Bedingung für die Prüfungsanmeldung zur Zertifizierung.
1.3Certified Professional for Software...
Erscheint lt. Verlag | 4.9.2023 |
---|---|
Reihe/Serie | Basiswissen | Basiswissen |
Verlagsort | Heidelberg |
Sprache | deutsch |
Themenwelt | Mathematik / Informatik ► Informatik |
Schlagworte | Architekturentwicklung • Architekturentwurf • Architekturmuster • Dokumentation • iSAQB • IT-Ausbildung & Berufe • Praktische Informatik • Qualitätsanforderungen • Softwarearchitektur • Software-Architektur • Softwareentwicklung • Software-Entwicklung • Softwarequalität • Software-Qualität |
ISBN-10 | 3-98890-073-7 / 3988900737 |
ISBN-13 | 978-3-98890-073-9 / 9783988900739 |
Informationen gemäß Produktsicherheitsverordnung (GPSR) | |
Haben Sie eine Frage zum Produkt? |
Größe: 9,8 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belletristik und Sachbüchern. Der Fließtext wird dynamisch an die Display- und Schriftgröße angepasst. Auch für mobile Lesegeräte ist EPUB daher gut geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich