Zum Inhalt springen

Softwarearchitektur

aus Wikipedia, der freien Enzyklopädie

Eine Softwarearchitektur ist einer der Architekturtypen in der Informatik und beschreibt die grundlegenden Komponenten und deren Zusammenspiel innerhalb eines Softwaresystems. Als spezialisierte Tätigkeit hat sich der Softwarearchitekt herausentwickelt, der für das High Level Design und die Planung neuer Softwareprodukte verantwortlich ist.

Definition

Eine Definition von Helmut Balzert beschreibt den Begriff als {{

 #if: 
 | {{
     #ifeq: {{#if:de|de|de}} | de
     | Vorlage:Str trim
     | {{#invoke:Vorlage:lang|flat}}
     }}
 | {{#ifeq: {{#if:de|de|de}} | de
     | „Vorlage:Str trim“
     | {{#invoke:Text|quote
         |1={{#if: 
              | {{#invoke:Vorlage:lang|flat}}
              | {{#invoke:Vorlage:lang|flat}} }}
         |2=de
         |3=1}} }}

}}{{#if:

   |  (<templatestyles src="Person/styles.css" />{{#if:  | :  }}{{#if:  | , deutsch: „“ }})
   | {{#if: 
       |  ({{#if:  | , deutsch: „“ }})
       | {{#if:  |  (deutsch: „“) }}
 }}

}}{{#if: eine strukturierte oder hierarchische Anordnung der Systemkomponenten sowie Beschreibung ihrer Beziehungen

   | {{#if: eine strukturierte oder hierarchische Anordnung der Systemkomponenten sowie Beschreibung ihrer Beziehungen
       | {{#if: 
           | Vorlage:": Text= und 1= gleichzeitig, bzw. Pipe zu viel }} }}
   | Vorlage:": Text= fehlt }}{{#if:  | {{#if: {{#invoke:Text|unstrip|{{{ref}}}}}
             | Vorlage:": Ungültiger Wert: ref=
             | {{{ref}}} }}

}}.<ref>Helmut Balzert: Lehrbuch der Softwaretechnik. Bd. 2: Entwurf, Implementierung, Installation und Betrieb. Spektrum Akademischer Verlag, 2011, ISBN 978-3-8274-1706-0, S. 580.</ref> Die Architekturkomponenten bilden eine Zerlegung des Gesamtsystems, was bedeutet, dass jedes Softwareelement genau einer Architekturkomponente zugeordnet ist.

Paul Clements beschreibt Softwarearchitektur als {{

 #if: 
 | {{
     #ifeq: {{#if:de|de|de}} | de
     | Vorlage:Str trim
     | {{#invoke:Vorlage:lang|flat}}
     }}
 | {{#ifeq: {{#if:de|de|de}} | de
     | „Vorlage:Str trim“
     | {{#invoke:Text|quote
         |1={{#if: 
              | {{#invoke:Vorlage:lang|flat}}
              | {{#invoke:Vorlage:lang|flat}} }}
         |2=de
         |3=1}} }}

}}{{#if:

   |  (<templatestyles src="Person/styles.css" />{{#if:  | :  }}{{#if:  | , deutsch: „“ }})
   | {{#if: 
       |  ({{#if:  | , deutsch: „“ }})
       | {{#if:  |  (deutsch: „“) }}
 }}

}}{{#if: Strukturen eines Softwaresystems: Softwareteile, die Beziehungen zwischen diesen und die Eigenschaften der Softwareteile und ihrer Beziehungen

   | {{#if: Strukturen eines Softwaresystems: Softwareteile, die Beziehungen zwischen diesen und die Eigenschaften der Softwareteile und ihrer Beziehungen
       | {{#if: 
           | Vorlage:": Text= und 1= gleichzeitig, bzw. Pipe zu viel }} }}
   | Vorlage:": Text= fehlt }}{{#if:  | {{#if: {{#invoke:Text|unstrip|{{{ref}}}}}
             | Vorlage:": Ungültiger Wert: ref=
             | {{{ref}}} }}

}}.<ref>{{#invoke:Vorlage:Literatur|f}}</ref>

Insgesamt gibt es eine Reihe von verschiedenen Definitionen für diesen Begriff.<ref name="SEI">Software Engineering Institute an der Carnegie Mellon University: What is your definition of software architecture?, 2017, 01.22.17, abgerufen am 25. August 2021.</ref>

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.

Einordnung und Abgrenzung

Im Rahmen der Softwareentwicklung repräsentiert die Softwarearchitektur die früheste Softwaredesign-Entscheidung (Architekturentwurf). 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 ermöglicht eine gut konstruierte Softwarearchitektur 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.

Beispiel

Datei:Wikimedia Server Architecture (simplified).svg
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.

Geschichte

Anfänge (1960–1990)

Die Anfänge der Beschreibung und Nutzung einer expliziten Softwarearchitektur reichen zurück bis in die 1960er-Jahre, als die ersten größeren Softwaresysteme entstanden.<ref name="Mythical Man Month">{{#invoke:Vorlage:Literatur|f}}</ref> Die Komplexität der Systeme (z. B. OS/360) 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 1969 in Rom.<ref>{{#invoke:Vorlage:Literatur|f}}</ref> 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 1970er und 1980er Jahren wurde das Wort „Architektur“ im IT-Bereich häufig im Zusammenhang mit Systemarchitekturen (also physischen Computersystemstrukturen) verwendet oder bezog sich speziell auf Prozessorfamilien.<ref name="KruchtenObbink2006">{{#invoke:Vorlage:Literatur|f}}</ref> 1972 veröffentlichte David Parnas einen einflussreichen Artikel über Kriterien für die Moduldekomposition von Softwaresystemen.<ref name="Parnas1972">{{#invoke:Vorlage:Literatur|f}}</ref> Obwohl er dabei nicht den Begriff „Softwarearchitektur“ verwendete, nahm er doch einige der späteren Konzepte und Ideen für Softwarearchitektur vorweg.<ref name="KruchtenObbink2006" /> 1975 erschien das Buch The Mythical Man Month von Frederick P. Brooks, in dem Schlüsselkonzepte zum Entwurf und der Organisation von Softwaresystemen diskutiert wurden.<ref name="Mythical Man Month" /> Weitere Artikel von Parnas und Brooks in den 1980er Jahren vertieften diese Ideen und Konzepte.

Etablierung (1990–2000)

Softwarearchitektur wurde erst in den 1990er Jahren ein unabhängiges Teilgebiet der Softwaretechnik. 1992 veröffentlichten Dewayne Perry und Alexander Wolf einen grundlegenden Artikel mit dem Titel Foundations for the Study of Software Architecture.<ref name="PerryWolf1992">{{#invoke:Vorlage:Literatur|f}}</ref> Darin führten sie die Formel „Elemente + Form + Begründung = Softwarearchitektur“ ein. Viele Forscher interpretierten „Elemente“ als Softwarekomponenten und -konnektoren.<ref name="KruchtenObbink2006" /> Daraufhin entstanden an verschiedenen Universitäten eine Reihe von Architekturbeschreibungssprachen (C2, Rapide, Darwin, Wright, ACME, Unicon), die allerdings kaum industriell eingesetzt wurden.<ref name="KruchtenObbink2006" />

Ab 1995 gewann die 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).<ref name="KazmanBass1994">{{#invoke:Vorlage:Literatur|f}}</ref> Das Konzept der Architektursichten spiegelte sich in verschiedenen Ansätzen wie Rationals „4+1 views“<ref name="Kruchten1995">{{#invoke:Vorlage:Literatur|f}}</ref> oder Siemens „Four views“<ref>{{#invoke:Vorlage:Literatur|f}}</ref> wider. 1996 erschien das Buch Pattern-oriented Software Architecture, welches das Konzept der Entwurfsmuster auf Softwarearchitekturen übertrug.<ref>{{#invoke:Vorlage:Literatur|f}}</ref> Siemens, Nokia, Philips, Nortel, Lockheed Martin, IBM und andere größere Softwarefirmen nutzten Softwarearchitektur zur besseren Wiederverwendbarkeit von Software und entwarfen Softwareproduktlinien.<ref name="KruchtenObbink2006" /> 1999 fand in den USA die erste internationale Konferenz (WICSA 1) speziell zum Thema Softwarearchitektur statt.<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20120306150116

      | {{#ifeq: 20120306150116 | *
    | Vorlage:Webarchiv/Wartung/Stern{{#if: The Working IEEE/IFIP Conference on Software Architecture | {{#invoke:WLink|getEscapedTitle|The Working IEEE/IFIP Conference on Software Architecture}} | {{#invoke:Webarchiv|getdomain|http://www.softwarearchitectureportal.org/WICSA/conferences/}} }} (Archivversionen)
    | {{#iferror: {{#time: j. F Y|20120306150116}}
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/DatumDer Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
         | {{#if: The Working IEEE/IFIP Conference on Software Architecture | {{#invoke:WLink|getEscapedTitle|The Working IEEE/IFIP Conference on Software Architecture}} | {{#invoke:Webarchiv|getdomain|http://www.softwarearchitectureportal.org/WICSA/conferences/}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y|20120306150116}} im Internet Archive{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
      }}
  }}
      | {{#if:
          | {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
    | {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
       | 16= {{#if: The Working IEEE/IFIP Conference on Software Architecture | {{#invoke:WLink|getEscapedTitle|The Working IEEE/IFIP Conference on Software Architecture}} | {{#invoke:Webarchiv|getdomain|http://www.softwarearchitectureportal.org/WICSA/conferences/}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | 9 = {{#if: The Working IEEE/IFIP Conference on Software Architecture | {{#invoke:WLink|getEscapedTitle|The Working IEEE/IFIP Conference on Software Architecture}} | {{#invoke:Webarchiv|getdomain|http://www.softwarearchitectureportal.org/WICSA/conferences/}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!Vorlage:Webarchiv/Wartung/webcitation{{#if:  || }}
      }}
    | c|{{{webciteID}}}}} {{#if: The Working IEEE/IFIP Conference on Software Architecture | {{#invoke:WLink|getEscapedTitle|The Working IEEE/IFIP Conference on Software Architecture}} | {{#invoke:Webarchiv|getdomain|http://www.softwarearchitectureportal.org/WICSA/conferences/}} }} (Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
  }}
          | {{#if: 
              | Vorlage:Webarchiv/Today
              | {{#if:
                      | Vorlage:Webarchiv/Generisch
                      | {{#if: The Working IEEE/IFIP Conference on Software Architecture | {{#invoke:WLink|getEscapedTitle|The Working IEEE/IFIP Conference on Software Architecture}} | {{#invoke:Webarchiv|getdomain|http://www.softwarearchitectureportal.org/WICSA/conferences/}} }}  
                 }}}}}}}}{{#if:
    | Vorlage:Webarchiv/archiv-bot
  }}{{#invoke:TemplatePar|check
     |all      = url=
     |opt      = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
     |cat      = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
     |errNS    = 0
     |template = Vorlage:Webarchiv
     |format   = *
     |preview  = 1
  }}{{#ifexpr: {{#if:20120306150116|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
  }}{{#if: 
    | {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
        | web.archive.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}} 
        | webcitation.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}} 
        | archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
      }}{{#if: 
         | {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
             | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
          |  }} 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
      }}
    | {{#if: 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
      }}
  }}{{#if:{{#invoke:URLutil|isHostPathResource|http://www.softwarearchitectureportal.org/WICSA/conferences/}}
    || {{#if:  || }}
  }}{{#if: The Working IEEE/IFIP Conference on Software Architecture
    | {{#if: {{#invoke:WLink|isBracketedLink|The Working IEEE/IFIP Conference on Software Architecture}}
        | {{#if:  || }}
      }}
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Linktext_fehlt
  }}{{#switch: 
    |addlarchives|addlpages= {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/Parameter}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
  }}{{#ifeq: {{#invoke:Str|find|http://www.softwarearchitectureportal.org/WICSA/conferences/%7Carchiv}} |-1
    || {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://www.softwarearchitectureportal.org/WICSA/conferences/%7C4}}%7Chttp}} |-1
         || {{#switch: {{#invoke:Webarchiv|getdomain|http://www.softwarearchitectureportal.org/WICSA/conferences/ }}
              | abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org = 
              | #default = {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/URL}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
            }} 
       }}
  }}</ref>

Aktuell (2000–heute)

Im Jahr 2000 erschien die IEEE 1471:2000 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 {{#invoke:Vorlage:lang|flat}} bei Microsoft.<ref>news.cnet.com</ref> Das SEI arbeitete die szenariobasierte Architekturbewertungsmethode Architecture Trade-off Analysis Method (ATAM) aus, die im Folgenden in zahlreichen Industrieprojekten Anwendung fand.<ref>{{#invoke:Vorlage:Literatur|f}}</ref> Die Unified Modeling Language (UML) eignet sich ab Version 2.0 aus dem Jahr 2003 auch zur Dokumentation von Softwarearchitekturen. 2003 erschien das mittlerweile meistzitierte Buch zur Softwarearchitektur (Software Architecture in Practice) und hob die Bedeutung von Qualitätsattributen für den Entwurf und die Bewertung von Softwarearchitekturen hervor.<ref>{{#invoke:Vorlage:Literatur|f}}</ref>

In Deutschland werden mit dem International Software Architect Qualification Board (iSAQB),<ref>isaqb.org</ref> ein Zusammenschluss deutscher IT Firmen, seit 2003 Zertifikate für Softwarearchitekten vergeben. Bis 2013 wurden so mehr als 3000 Softwarearchitekten nach CPSA-F (Foundation Level) zertifiziert.<ref>isaqb.org</ref> 2004 gründete sich ein Arbeitskreis der Gesellschaft für Informatik zum Thema Softwarearchitektur und veröffentlichte 2006 das Handbuch der Software-Architektur.<ref>handbuch-softwarearchitektur.de</ref> 2006 entstand aus dem temporären Arbeitskreis eine permanente GI-Fachgruppe.<ref>fg-swa.gi.de</ref>

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“)<ref>C2 Wiki zu Big Design Up Front</ref> gesetzt. 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.<ref>{{#if:|{{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}| |}}}}{{#if:Mike Cohn|Mike Cohn: }}{{#if:|{{#if:Agile Design: Intentional Yet Emergent|[{{#invoke:Vorlage:Internetquelle|archivURL|1={{#invoke:URLutil|getNormalized|1={{{archiv-url}}}}}}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel=Agile Design: Intentional Yet Emergent}}]{{#if:| ({{{format}}})}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}|{{#if:http://www.mountaingoatsoftware.com/blog/agile-design-intentional-yet-emergent%7C{{#if:{{#invoke:TemplUtl%7Cfaculty%7C}}%7C{{#invoke:Vorlage:Internetquelle%7CTitelFormat%7Ctitel={{#invoke:WLink%7CgetEscapedTitle%7C1=Agile Design: Intentional Yet Emergent}}}}|[{{#invoke:URLutil|getNormalized|1=http://www.mountaingoatsoftware.com/blog/agile-design-intentional-yet-emergent}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{#invoke:WLink|getEscapedTitle|1=Agile Design: Intentional Yet Emergent}}}}]}}{{#if:| ({{{format}}}{{#if:Mountain Goat Software Blog2009-12-04{{#if: 2014-11-24 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}

          | )
          | {{#if:{{#ifeq:en|de||{{#if:en|1}}}}| ; 
              | )}}}}}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}}}{{#if:http://www.mountaingoatsoftware.com/blog/agile-design-intentional-yet-emergent%7C{{#if:{{#invoke:URLutil%7CisResourceURL%7C1=http://www.mountaingoatsoftware.com/blog/agile-design-intentional-yet-emergent}}%7C%7C}}}}{{#if:Agile Design: Intentional Yet Emergent|{{#if:{{#invoke:WLink|isValidLinktext|1=Agile Design: Intentional Yet Emergent|lines=0}}||}}}}{{#if: Mountain Goat Software Blog| In: {{#invoke:Vorlage:Internetquelle|TitelFormat|titel=Mountain Goat Software Blog}}}}{{#if: | {{{hrsg}}}{{#if: 2009-12-04|,|{{#if: 2014-11-24 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: 2009-12-04| {{#if:{{#invoke:DateTime|format|2009-12-04|noerror=1}}
            |{{#invoke:DateTime|format|2009-12-04|T._Monat JJJJ}}
            |{{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, datum=2009-12-04|class=Zitationswartung}} }}{{#if: |,|{{#if: 2014-11-24 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: | S. {{{seiten}}}{{#if: |,|{{#if: 2014-11-24 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: {{#invoke:TemplUtl|faculty|}}| {{#if:2009-12-04|{{#if:|archiviert|ehemals}}|{{#if:|Archiviert|Ehemals}}}} {{#if:|vom|im}} Vorlage:Referrer{{#if:{{#invoke:TemplUtl|faculty|}}| (nicht mehr online verfügbar)}}{{#if: | am {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}|{{{archiv-datum}}}{{#if:48287||(?)}}}}}}{{#if: 2014-11-24|;}}}}{{#if: 2014-11-24| {{#if:2009-12-04{{#invoke:TemplUtl|faculty|}}|abgerufen|Abgerufen}} {{#switch: {{#invoke:Str|len| {{#invoke:DateTime|format| 2014-11-24 |ISO|noerror=1}} }}
       |4=im Jahr
       |7=im
       |10=am
       |#default={{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, abruf=2014-11-24|class=Zitationswartung}} }} {{#invoke:DateTime|format|2014-11-24|T._Monat JJJJ}}
    | {{#invoke:TemplUtl|failure|1=Vorlage:Internetquelle | abruf=2026-MM-TT ist Pflichtparameter}} }}{{#if:{{#ifeq:en|de||{{#if:en|1}}}}|{{#if:Mountain Goat Software Blog2009-12-04{{#if: 2014-11-24 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}
       |  (
       | {{#if: | |  (}}
       }}{{#ifeq:{{#if:en|en|de}}|de||
          {{#invoke:Multilingual|format|en|slang=!|split=[%s,]+|shift=m|separator=, }}}}{{#if: |{{#ifeq:{{#if:en|en|de}}|de||, }}{{{kommentar}}}}})}}{{#if: 2009-12-04{{#if: 2014-11-24 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}} }}en|{{#if: |: {{
 #if: 
 | {{
     #ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
     | Vorlage:Str trim
     | {{#invoke:Vorlage:lang|flat}}
     }}
 | {{#ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
     | „Vorlage:Str trim“
     | {{#invoke:Text|quote
         |1={{#if: 
              | {{#invoke:Vorlage:lang|flat}}
              | {{#invoke:Vorlage:lang|flat}} }}
         |2={{#if: {{#invoke:TemplUtl|faculty|}}|de-CH|de}}
         |3=1}} }}

}}{{#if:

   |  (<templatestyles src="Person/styles.css" />{{#if:  | :  }}{{#if:  | , deutsch: „“ }})
   | {{#if: 
       |  ({{#if:  | , deutsch: „“ }})
       | {{#if:  |  (deutsch: „“) }}
 }}

}}{{#if: {{{zitat}}}

   | {{#if: 
       | {{#if: {{{zitat}}}
           | Vorlage:": Text= und 1= gleichzeitig, bzw. Pipe zu viel }} }}
   | Vorlage:": Text= fehlt }}{{#if:  | {{#if: {{#invoke:Text|unstrip|{{{ref}}}}}
             | Vorlage:": Ungültiger Wert: ref=
             | {{{ref}}} }}

}}|.{{#if:{{#invoke:TemplUtl|faculty|}}|{{#if:||{{#ifeq: | JaKeinHinweis |{{#switch:

   |0|=Vorlage:Toter Link/Core{{#if: http://www.mountaingoatsoftware.com/blog/agile-design-intentional-yet-emergent
       | {{#if:  | [1] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: 
           | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }}
         }}
       |   (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.)
     }}{{#switch: 
         |no|0|=
         |#default={{#if:  ||  }}
    }}{{#invoke:TemplatePar|check
         |opt      = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
    }}{{#if: http://www.mountaingoatsoftware.com/blog/agile-design-intentional-yet-emergent
      | {{#if:{{#invoke:URLutil|isWebURL|http://www.mountaingoatsoftware.com/blog/agile-design-intentional-yet-emergent}}
          || {{#if:  ||  }} 
        }}
      | {{#if: 
           | {{#if:  ||  }}
           | {{#if:  ||  }}
        }}
    }}{{#if: 
       | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
         }}
    }}{{#switch: deadurl
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=http://www.mountaingoatsoftware.com/blog/agile-design-intentional-yet-emergent Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. )  {{#if: 
            | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }}
         }}Vorlage:Toter Link/Core{{#switch: 
          |no|0|=
          |#default= {{#if:  ||  }}
        }}{{#invoke:TemplatePar|check
         |all      = inline= url=
         |opt      = datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
       }}{{#if: http://www.mountaingoatsoftware.com/blog/agile-design-intentional-yet-emergent
       | {{#if:{{#invoke:URLutil|isWebURL|http://www.mountaingoatsoftware.com/blog/agile-design-intentional-yet-emergent}}
          || {{#if:  ||  }} 
        }}
    }}{{#if: 
         | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
           }}
    }}{{#switch: deadurl
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}[http://www.mountaingoatsoftware.com/blog/agile-design-intentional-yet-emergent }}|{{#switch: 
   |0|=Vorlage:Toter Link/Core{{#if: http://www.mountaingoatsoftware.com/blog/agile-design-intentional-yet-emergent
       | {{#if:  | [2] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: 
           | {{#if:  | | Vorlage:Toter Link/archivebot }}
         }}
       |   (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.)
     }}{{#switch: 
         |no|0|=
         |#default={{#if:  ||  }}
    }}{{#invoke:TemplatePar|check
         |opt      = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
    }}{{#if: http://www.mountaingoatsoftware.com/blog/agile-design-intentional-yet-emergent
      | {{#if:{{#invoke:URLutil|isWebURL|http://www.mountaingoatsoftware.com/blog/agile-design-intentional-yet-emergent}}
          || {{#if:  ||  }} 
        }}
      | {{#if: 
           | {{#if:  ||  }}
           | {{#if:  ||  }}
        }}
    }}{{#if: 
       | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
         }}
    }}{{#switch: 
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=http://www.mountaingoatsoftware.com/blog/agile-design-intentional-yet-emergent Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. )  {{#if: 
            | {{#if:  | | Vorlage:Toter Link/archivebot }}
         }}Vorlage:Toter Link/Core{{#switch: 
          |no|0|=
          |#default= {{#if:  ||  }}
        }}{{#invoke:TemplatePar|check
         |all      = inline= url=
         |opt      = datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
       }}{{#if: http://www.mountaingoatsoftware.com/blog/agile-design-intentional-yet-emergent
       | {{#if:{{#invoke:URLutil|isWebURL|http://www.mountaingoatsoftware.com/blog/agile-design-intentional-yet-emergent}}
          || {{#if:  ||  }} 
        }}
    }}{{#if: 
         | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
           }}
    }}{{#switch: 
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}[http://www.mountaingoatsoftware.com/blog/agile-design-intentional-yet-emergent }} }}}}}}}}}}{{#if:|
        {{#invoke:Vorlage:Internetquelle|archivBot|stamp={{{archiv-bot}}}|text={{#if:|Vorlage:Webarchiv/archiv-bot}}

}}}}{{#invoke:TemplatePar|check |all= url= titel= |opt= autor= hrsg= format= sprache= titelerg= werk= seiten= datum= abruf= zugriff= abruf-verborgen= archiv-url= archiv-datum= archiv-bot= kommentar= zitat= AT= CH= offline= |cat= {{#ifeq: 0 | 0 | Wikipedia:Vorlagenfehler/Vorlage:Internetquelle}} |template= Vorlage:Internetquelle |format=0 |preview=1 }}</ref>

Beschreibung

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 Systems gibt. Es müssen je nach Fragestellung und Interessenspunkt unterschiedliche Sichten hinzugezogen werden. Ein Beispiel hierfür ist das 4+1 Sichtenmodell.

Softwarearchitekturbeschreibungen können über den gesamten Lebenszyklus eines Software-Systems genutzt werden. Dazu gehören neben der Entwicklung insbesondere auch Software-Evolution, Software-Installation und Software-Betrieb. Ebenso profitieren neben technischen Tätigkeiten auch Projektmanagement-Tätigkeiten, wie Kostenschätzung, Meilensteinplanung, Planung projektübergreifender Software-Wiederverwendung und die Organisation verteilter Software-Entwicklung von einer guten Architekturbeschreibung.

Verschiedene textuelle oder graphische Notationen werden zur Beschreibung von Softwarearchitekturen eingesetzt. Der Wert von rein grafischen Darstellungen von Softwarearchitekturen ist ebenso umstritten wie der Wert von rein textuellen Darstellungen. Bekannte Beispiele sind:<ref>{{#invoke:Vorlage:Literatur|f}}</ref>

Entwurf

Der Entwurf einer Softwarearchitektur ist der Erstellungsprozess einer Grobstruktur eines Softwaresystems. Dabei dienen funktionale und nichtfunktionale Anforderungen sowie technische und organisatorische Einflussfaktoren als Eingabe.<ref>{{#invoke:Vorlage:Literatur|f}}</ref> Der Entwurfsprozess läuft meist iterativ und inkrementell ab.<ref>{{#invoke:Vorlage:Literatur|f}}</ref> Das Ergebnis des Softwarearchitekturentwurfs ist eine Softwarearchitekturbeschreibung, die die Grundlage für den Feinentwurf bildet.<ref>{{#invoke:Vorlage:Literatur|f}}</ref>

Softwarearchitekten folgen einer Reihe fundamentaler Entwurfsprinzipien.<ref>{{#invoke:Vorlage:Literatur|f}}</ref> Mit dem Prinzip der gezielten Abstraktion von Informationen machen sie die Komplexität eines Systems beherrschbar.<ref name="ShawDeLine1995">{{#invoke:Vorlage:Literatur|f}}</ref> Das Prinzip der Trennung von Zuständigkeiten (engl. {{#invoke:Vorlage:lang|flat}}) sorgt dafür, dass jede Komponente einer Architektur nur für eine einzige Aufgabe zuständig ist.<ref>{{#invoke:Vorlage:Literatur|f}}</ref> Das Innenleben von Komponenten wird durch Schnittstellen verkapselt, was auf das Prinzip des Verbergens von Informationen (engl. {{#invoke:Vorlage:lang|flat}}) zurückgeht.<ref name="Parnas1972" /> Das System wird idealerweise in eine Menge in sich geschlossener, lose gekoppelter Komponenten mit hoher Kohäsion zerlegt (Prinzip der Modularität, siehe auch Packaging-Prinzipien), wodurch es leichter verständlich und anpassbar wird.<ref name="StevensMyers1974">{{#invoke:Vorlage:Literatur|f}}</ref><ref>{{#invoke:Vorlage:Literatur|f}}</ref> Eine Softwarearchitektur ist zudem häufig hierarchisch aufgebaut.<ref>{{#invoke:Vorlage:Literatur|f}}</ref> Das Prinzip der konzeptionellen Integrität zielt auf eine durchgängige Anwendung von Entwurfsentscheidungen ab.<ref>{{#invoke:Vorlage:Literatur|f}}</ref>

Softwarearchitekten bedienen sich beim Entwurf oft bei bewährten Lösungen, die als sogenannte Architekturmuster dokumentiert sind.<ref>{{#invoke:Vorlage:Literatur|f}}</ref> Diese bieten Vorlagen für die grundlegende Organisation und Interaktion von Softwarekomponenten. Beispiele für Architekturmuster sind Client-Server (z. B. Grundlage für HTTP) oder Schichtenarchitektur (z. B. beim OSI-Modell). Einige Architekturmuster können mit Hilfe vorgefertigter Infrastruktursoftware umgesetzt werden. Beispielsweise kann das Peer-to-Peer Architekturmuster mit einer Referenzbibliothek wie JXTA implementiert werden.

Qualitätsanforderungen (z. B. für Performanz, Wartbarkeit, Zuverlässigkeit und Sicherheit) sind ein wesentlicher Einflussfaktor für den Entwurf einer Softwarearchitektur, da sich funktionale Anforderungen auch mit unstrukturierter Software realisieren lassen.<ref>{{#invoke:Vorlage:Literatur|f}}</ref> Oftmals ist es die Aufgabe des Softwarearchitekten die technische Machbarkeit sowie die Kosten für nichtfunktionale Anforderungen beim Architekturentwurf zu klären.<ref>{{#invoke:Vorlage:Literatur|f}}</ref> Dazu können Benutzungsszenarien entworfen werden, ähnliche Systeme untersucht werden und experimentelle Prototypen erstellt werden. Zur Umsetzung von Qualitätsanforderungen wurden eine Reihe von Architekturtaktiken dokumentiert, die als Heuristik den Entwurfsprozess leiten können.<ref>{{#invoke:Vorlage:Literatur|f}}</ref>

Bewertung

{{#if: Softwarearchitekturbewertung|{{#ifexist:Softwarearchitekturbewertung|

|{{#if: |{{#ifexist:{{{2}}}|

→ Haupt{{#if:|seite|artikel}}: [[{{{2}}}{{#if: ||{{{titel2}}}}}]]{{#if: |{{#ifexist:{{{3}}}| und [[{{{3}}}{{#if: ||{{{titel3}}}}}]]|}}|}}

|{{#if: |{{#ifexist:{{{3}}}|

→ Haupt{{#if:|seite|artikel}}: [[{{{3}}}{{#if: ||{{{titel3}}}}}]]

|}}|}}|}}|}}|}}|Einbindungsfehler: Die Vorlage Hauptartikel benötigt immer mindestens ein Argument.}}

Die wichtigsten Ziele der Softwarearchitekturbewertung sind die Identifikation von potenziellen Risiken, die Beurteilung der Realisierung von Qualitätsanforderungen durch die Architektur und die Identifikation von Möglichkeiten zur Wiederverwendung von Softwarekomponenten und anderen Artefakten.<ref>{{#invoke:Vorlage:Literatur|f}}</ref>

Ein wichtiges Qualitätsmerkmal von Softwarearchitekturen ist ihre Stetigkeit in Bezug auf Änderungen an den durch die Software zu lösenden Problemen. Kleine Änderungen der Problemstellung sollen nur zu kleinen Änderungen in der Softwarearchitektur führen. Das zentrale Qualitätsmerkmal für die Arbeit eines Softwarearchitekten aus wirtschaftlicher Sicht ist deshalb, ob er eine Softwarearchitektur definieren kann, die bei kleinen Änderungen in der Problemstellung nicht oder nur wenig geändert werden muss. In der Agilen Softwareentwicklung spricht man in diesem Zusammenhang von Design for Change – eine Softwarearchitektur die offen gegenüber jedweden Änderungen der Problemstellung ist. Diese zu erreichen bedient man sich des emergenten Designs – eine sukzessive wachsende Softwarearchitektur die genau dort flexibel ist, wo sich die Anforderungen oft ändern.

Zur Bewertung von Softwarearchitekturen existieren verschiedene Methoden, die sich in Zielen, Einsatzkontexten, Kosten und Nutzen zum Teil erheblich unterscheiden:<ref>{{#invoke:Vorlage:Literatur|f}}</ref>

  • Informelle Präsentation
  • Ausfüllen von vorgefertigten Fragebögen und Checklisten
  • Architektursichtungen (engl. {{#invoke:Vorlage:lang|flat}})
  • Szenariobasierte Verfahren
  • Simulation formaler Architekturmodelle
  • Bau und Analyse von Prototypen
  • Erhebung und Überprüfung von Architekturmetriken und -kennzahlen
  • Architekturkonsistenzprüfung mittels statischer Codeanalyse

Abwägungen bei Entwicklung und Aufbau einer Softwarearchitektur

Bei der Entwicklung und dem Aufbau einer Softwarearchitektur in einem Unternehmen sind im Allgemeinen unter anderem folgende Abwägungen durchzuführen:

Form Funktion
Interne Anforderungen Externe Anforderungen
Strenge Kontrolle Flexible Änderungen
Geld- und Zeitkosten Zusätzliche Funktionen
Komplexität Verständlichkeit
Neue Technologien Bewährte Technologien
Top-Down-Planung Bottom-Up-Planung
Fortlaufende Verbesserung Stabilität
Knappe Integration Wenige Interfaces

Dokumentation von Architekturentscheidungen

Es gibt viele Vorlagen und Werkzeuge um Architekturentscheidungen festzuhalten. In der agilen Softwareentwicklung werden diese üblicherweise nach M. Nygard Architecture Decision Records (ADRs) genannt.<ref>M. Nygard, Documenting Architecture Decisions</ref><ref>https://adr.github.io/</ref> Ähnlich wie bei Anwendungsfällen gibt es auch dafür Notationen wie beispielsweise die Y Notation nach G. Fairbanks<ref>G. Fairbanks, Architecture Haiku, http://www.slideshare.net/matthewmccullough/architecture-haiku</ref>: „Im Kontext von <Anwendungsfall bzw. User Story>, betreffend <Betreff> haben wir uns wegen <Gründe> für <Option> und gegen <Weitere Optionen> entschieden, um <Qualitative Aspekte oder gewünschte Auswirkungen> zu erreichen, während wir <Nachteile oder ungewünschte Auswirkungen> akzeptierten.“

Zunehmend werden auch neue Modelle zur Dokumentation wie der Business Model Canvas (BMC) eingesetzt, mit dem Informationen auf das Wesentliche reduziert werden.<ref>{{#if:Vorlage:Cite book/URL|{{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}| |}}}}{{#if:{{#if:

               |  
               | {{#if: 
                 | {{#if: 
                     |  [[|Vorlage:Cite book/Name]]
                     | Vorlage:Cite book/Name
                   }}
                 }}{{#if: 
                     | {{#if:  
                         | , [[|Vorlage:Cite book/Name]]
                         | Vorlage:Cite book/Name
                        }}
                 }}{{#if: 
                     | {{#if:  
                         | , [[|Vorlage:Cite book/Name]]
                         | Vorlage:Cite book/Name
                       }}
                 }}{{#if: 
                     | {{#if:  
                         | , [[|Vorlage:Cite book/Name]]
                         | Vorlage:Cite book/Name
                       }}
                 }}{{#if: 
                     | {{#if:  
                         | , [[|Vorlage:Cite book/Name]]
                         | Vorlage:Cite book/Name
                       }}
                 }}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}
             }}Vorlage:Cite book/Name|{{#if: 
               |  
               | {{#if: 
                 | {{#if: 
                     |  [[|Vorlage:Cite book/Name]]
                     | Vorlage:Cite book/Name
                   }}
                 }}{{#if: 
                     | {{#if:  
                         | , [[|Vorlage:Cite book/Name]]
                         | Vorlage:Cite book/Name
                        }}
                 }}{{#if: 
                     | {{#if:  
                         | , [[|Vorlage:Cite book/Name]]
                         | Vorlage:Cite book/Name
                       }}
                 }}{{#if: 
                     | {{#if:  
                         | , [[|Vorlage:Cite book/Name]]
                         | Vorlage:Cite book/Name
                       }}
                 }}{{#if: 
                     | {{#if:  
                         | , [[|Vorlage:Cite book/Name]]
                         | Vorlage:Cite book/Name
                       }}
                 }}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}{{#if:|Vorlage:Cite book/Name}}
             }}Vorlage:Cite book/Name: }}{{#if:Vorlage:Cite book/URL|{{#if:{{#if: Dr. Gernot Starke, Benjamin Wolf: Der Architecture Communication Canvas | {{#invoke: WLink|getEscapedTitle|1=Dr. Gernot Starke, Benjamin Wolf: Der Architecture Communication Canvas}} | ? }}|[{{#invoke:Vorlage:Internetquelle|archivURL|1={{#invoke:URLutil|getNormalized|1=Vorlage:Cite book/URL}}}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{#if: Dr. Gernot Starke, Benjamin Wolf: Der Architecture Communication Canvas | {{#invoke: WLink|getEscapedTitle|1=Dr. Gernot Starke, Benjamin Wolf: Der Architecture Communication Canvas}} | ? }}}}]{{#if:| ()}}{{#if:{{#if:  | ( }}{{#if:  | Originaltitel: {{{script-title}}} }}{{#if:   | {{#if:  | ,  }}deutsch: {{{trans-title}}} }}{{#if:  | ) }}| {{#if:  | ( }}{{#if:  | Originaltitel: {{{script-title}}} }}{{#if:   | {{#if:  | ,  }}deutsch: {{{trans-title}}} }}{{#if:  | ) }}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{#if:  | ( }}{{#if:  | Originaltitel: {{{script-title}}} }}{{#if:   | {{#if:  | ,  }}deutsch: {{{trans-title}}} }}{{#if:  | ) }}}}}}}}|{{#if:https://www.informatik-aktuell.de/entwicklung/methoden/der-architecture-communication-canvas.html%7C{{#if:{{#invoke:TemplUtl%7Cfaculty%7CVorlage:Cite book/URL}}|{{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{#invoke:WLink|getEscapedTitle|1={{#if: Dr. Gernot Starke, Benjamin Wolf: Der Architecture Communication Canvas | {{#invoke: WLink|getEscapedTitle|1=Dr. Gernot Starke, Benjamin Wolf: Der Architecture Communication Canvas}} | ? }}}}}}|[{{#invoke:URLutil|getNormalized|1=https://www.informatik-aktuell.de/entwicklung/methoden/der-architecture-communication-canvas.html}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{#invoke:WLink|getEscapedTitle|1={{#if: Dr. Gernot Starke, Benjamin Wolf: Der Architecture Communication Canvas | {{#invoke: WLink|getEscapedTitle|1=Dr. Gernot Starke, Benjamin Wolf: Der Architecture Communication Canvas}} | ? }}}}}}]}}{{#if:| ({{#if:{{#if:  | ( }}{{#if:  | Originaltitel: {{{script-title}}} }}{{#if:   | {{#if:  | ,  }}deutsch: {{{trans-title}}} }}{{#if:  | ) }}Vorlage:Cite book/URLInformatik Aktuell{{#if:  | via {{{via}}} }}Vorlage:Cite book/DateVorlage:Cite book/URL{{#if: {{#if: 
                 | {{#iferror: {{#invoke:DateTime|format||ISO}}
                     | 0001-01-01
                   }}
                 | 0001-01-01
               }} | {{#if:{{#invoke:TemplUtl|faculty|{{#if: 
                         | {{#if: {{#invoke:DateTime|format| |ISO|noerror=1}} || 1 }}
                         | 1
                       }}}}||1}}}}
          | )
          | {{#if:{{#ifeq:de|de||{{#if:de|1}}}}{{#if:  | {{{at}}}{{#if:  | ,  }}}}{{#if:  | {{{id}}}{{#if:  | ,  }}}}{{#if:  | {{{doi}}}{{#if:  | ,  }}}}{{#if:  | PMID {{{pmid}}}{{#if:  | ,  }}}}{{#if:  | {{{arxiv}}}{{#if:  | ,  }}}}{{#if:  | Bibcode: {{{bibcode}}}{{#if:  | ,  }}}}{{#if:  | Volltext bei PMC: {{{pmc}}}{{#if:  | ,  }}}}| ; 
              | )}}}}}}{{#if:{{#if:  | ( }}{{#if:  | Originaltitel: {{{script-title}}} }}{{#if:   | {{#if:  | ,  }}deutsch: {{{trans-title}}} }}{{#if:  | ) }}| {{#if:  | ( }}{{#if:  | Originaltitel: {{{script-title}}} }}{{#if:   | {{#if:  | ,  }}deutsch: {{{trans-title}}} }}{{#if:  | ) }}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{#if:  | ( }}{{#if:  | Originaltitel: {{{script-title}}} }}{{#if:   | {{#if:  | ,  }}deutsch: {{{trans-title}}} }}{{#if:  | ) }}}}}}}}}}{{#if:https://www.informatik-aktuell.de/entwicklung/methoden/der-architecture-communication-canvas.html%7C{{#if:{{#invoke:URLutil%7CisResourceURL%7C1=https://www.informatik-aktuell.de/entwicklung/methoden/der-architecture-communication-canvas.html}}%7C%7C}}}}{{#if:{{#if: Dr. Gernot Starke, Benjamin Wolf: Der Architecture Communication Canvas | {{#invoke: WLink|getEscapedTitle|1=Dr. Gernot Starke, Benjamin Wolf: Der Architecture Communication Canvas}} | ? }}|{{#if:{{#invoke:WLink|isValidLinktext|1={{#if: Dr. Gernot Starke, Benjamin Wolf: Der Architecture Communication Canvas | {{#invoke: WLink|getEscapedTitle|1=Dr. Gernot Starke, Benjamin Wolf: Der Architecture Communication Canvas}} | ? }}|lines=0}}||}}}}{{#if: Informatik Aktuell| In: {{#invoke:Vorlage:Internetquelle|TitelFormat|titel=Informatik Aktuell}}}}{{#if: {{#if:  | via {{{via}}} }}| {{#if:  | via {{{via}}} }}{{#if: Vorlage:Cite book/DateVorlage:Cite book/URL|,|{{#if: {{#if: 
                 | {{#iferror: {{#invoke:DateTime|format||ISO}}
                     | 0001-01-01
                   }}
                 | 0001-01-01
               }} | {{#if:{{#invoke:TemplUtl|faculty|{{#if: 
                         | {{#if: {{#invoke:DateTime|format| |ISO|noerror=1}} || 1 }}
                         | 1
                       }}}}|;|,}}}}}}}}{{#if: Vorlage:Cite book/Date| {{#if:{{#invoke:DateTime|format|Vorlage:Cite book/Date|noerror=1}}
            |{{#invoke:DateTime|format|Vorlage:Cite book/Date|T._Monat JJJJ}}
            |{{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, datum=Vorlage:Cite book/Date|class=Zitationswartung}} }}{{#if: Vorlage:Cite book/URL|,|{{#if: {{#if: 
                 | {{#iferror: {{#invoke:DateTime|format||ISO}}
                     | 0001-01-01
                   }}
                 | 0001-01-01
               }} | {{#if:{{#invoke:TemplUtl|faculty|{{#if: 
                         | {{#if: {{#invoke:DateTime|format| |ISO|noerror=1}} || 1 }}
                         | 1
                       }}}}|;|,}}}}}}}}{{#if: | S. {{#if: Vorlage:Cite book/URL|,|{{#if: {{#if: 
                 | {{#iferror: {{#invoke:DateTime|format||ISO}}
                     | 0001-01-01
                   }}
                 | 0001-01-01
               }} | {{#if:{{#invoke:TemplUtl|faculty|{{#if: 
                         | {{#if: {{#invoke:DateTime|format| |ISO|noerror=1}} || 1 }}
                         | 1
                       }}}}|;|,}}}}}}}}{{#if: Vorlage:Cite book/URL{{#invoke:TemplUtl|faculty|Vorlage:Cite book/URL}}| {{#if:Vorlage:Cite book/Date{{#if:  | via {{{via}}} }}|{{#if:Vorlage:Cite book/URL|archiviert|ehemals}}|{{#if:Vorlage:Cite book/URL|Archiviert|Ehemals}}}} {{#if:Vorlage:Cite book/URL|vom|im}} Vorlage:Referrer{{#if:{{#invoke:TemplUtl|faculty|Vorlage:Cite book/URL}}| (nicht mehr online verfügbar)}}{{#if: Vorlage:Cite book/URL| am {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}|Vorlage:Cite book/URL{{#if:48287||(?)}}}}}}{{#if: {{#if: 
                 | {{#iferror: {{#invoke:DateTime|format||ISO}}
                     | 0001-01-01
                   }}
                 | 0001-01-01
               }}|;}}}}{{#if: {{#if: 
                 | {{#iferror: {{#invoke:DateTime|format||ISO}}
                     | 0001-01-01
                   }}
                 | 0001-01-01
               }}| {{#if:Vorlage:Cite book/Date{{#if:  | via {{{via}}} }}Vorlage:Cite book/URL{{#invoke:TemplUtl|faculty|Vorlage:Cite book/URL}}|abgerufen|Abgerufen}} {{#switch: {{#invoke:Str|len| {{#invoke:DateTime|format| {{#if: 
                 | {{#iferror: {{#invoke:DateTime|format||ISO}}
                     | 0001-01-01
                   }}
                 | 0001-01-01
               }} |ISO|noerror=1}} }}
       |4=im Jahr
       |7=im
       |10=am
       |#default={{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, abruf={{#if: 
                 | {{#iferror: {{#invoke:DateTime|format||ISO}}
                     | 0001-01-01
                   }}
                 | 0001-01-01
               }}|class=Zitationswartung}} }} {{#invoke:DateTime|format|{{#if: 
                 | {{#iferror: {{#invoke:DateTime|format||ISO}}
                     | 0001-01-01
                   }}
                 | 0001-01-01
               }}|T._Monat JJJJ}}
    | {{#invoke:TemplUtl|failure|1=Vorlage:Internetquelle | abruf=2026-MM-TT ist Pflichtparameter}} }}{{#if:{{#ifeq:de|de||{{#if:de|1}}}}{{#if:  | {{{at}}}{{#if:  | ,  }}}}{{#if:  | {{{id}}}{{#if:  | ,  }}}}{{#if:  | {{{doi}}}{{#if:  | ,  }}}}{{#if:  | PMID {{{pmid}}}{{#if:  | ,  }}}}{{#if:  | {{{arxiv}}}{{#if:  | ,  }}}}{{#if:  | Bibcode: {{{bibcode}}}{{#if:  | ,  }}}}{{#if:  | Volltext bei PMC: {{{pmc}}}{{#if:  | ,  }}}}|{{#if:{{#if:  | ( }}{{#if:  | Originaltitel: {{{script-title}}} }}{{#if:   | {{#if:  | ,  }}deutsch: {{{trans-title}}} }}{{#if:  | ) }}Vorlage:Cite book/URLInformatik Aktuell{{#if:  | via {{{via}}} }}Vorlage:Cite book/DateVorlage:Cite book/URL{{#if: {{#if: 
                 | {{#iferror: {{#invoke:DateTime|format||ISO}}
                     | 0001-01-01
                   }}
                 | 0001-01-01
               }} | {{#if:{{#invoke:TemplUtl|faculty|{{#if: 
                         | {{#if: {{#invoke:DateTime|format| |ISO|noerror=1}} || 1 }}
                         | 1
                       }}}}||1}}}}
       |  (
       | {{#if: | |  (}}
       }}{{#ifeq:{{#if:de|de|de}}|de||
          {{#invoke:Multilingual|format|de|slang=!|split=[%s,]+|shift=m|separator=, }}}}{{#if: {{#if:  | {{{at}}}{{#if:  | ,  }}}}{{#if:  | {{{id}}}{{#if:  | ,  }}}}{{#if:  | {{{doi}}}{{#if:  | ,  }}}}{{#if:  | PMID {{{pmid}}}{{#if:  | ,  }}}}{{#if:  | {{{arxiv}}}{{#if:  | ,  }}}}{{#if:  | Bibcode: {{{bibcode}}}{{#if:  | ,  }}}}{{#if:  | Volltext bei PMC: {{{pmc}}}{{#if:  | ,  }}}}|{{#ifeq:{{#if:de|de|de}}|de||, }}{{#if:  | {{{at}}}{{#if:  | ,  }}}}{{#if:  | {{{id}}}{{#if:  | ,  }}}}{{#if:  | {{{doi}}}{{#if:  | ,  }}}}{{#if:  | PMID {{{pmid}}}{{#if:  | ,  }}}}{{#if:  | {{{arxiv}}}{{#if:  | ,  }}}}{{#if:  | Bibcode: {{{bibcode}}}{{#if:  | ,  }}}}{{#if:  | Volltext bei PMC: {{{pmc}}}{{#if:  | ,  }}}}}})}}{{#if: Vorlage:Cite book/DateVorlage:Cite book/URL{{#if: {{#if: 
                 | {{#iferror: {{#invoke:DateTime|format||ISO}}
                     | 0001-01-01
                   }}
                 | 0001-01-01
               }} | {{#if:{{#invoke:TemplUtl|faculty|{{#if: 
                         | {{#if: {{#invoke:DateTime|format| |ISO|noerror=1}} || 1 }}
                         | 1
                       }}}}||1}} }}de{{#if:  | {{{at}}}{{#if:  | ,  }}}}{{#if:  | {{{id}}}{{#if:  | ,  }}}}{{#if:  | {{{doi}}}{{#if:  | ,  }}}}{{#if:  | PMID {{{pmid}}}{{#if:  | ,  }}}}{{#if:  | {{{arxiv}}}{{#if:  | ,  }}}}{{#if:  | Bibcode: {{{bibcode}}}{{#if:  | ,  }}}}{{#if:  | Volltext bei PMC: {{{pmc}}}{{#if:  | ,  }}}}|{{#if: |: {{
 #if: 
 | {{
     #ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
     | Vorlage:Str trim
     | {{#invoke:Vorlage:lang|flat}}
     }}
 | {{#ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
     | „Vorlage:Str trim“
     | {{#invoke:Text|quote
         |1={{#if: 
              | {{#invoke:Vorlage:lang|flat}}
              | {{#invoke:Vorlage:lang|flat}} }}
         |2={{#if: {{#invoke:TemplUtl|faculty|}}|de-CH|de}}
         |3=1}} }}

}}{{#if:

   |  (<templatestyles src="Person/styles.css" />{{#if:  | :  }}{{#if:  | , deutsch: „“ }})
   | {{#if: 
       |  ({{#if:  | , deutsch: „“ }})
       | {{#if:  |  (deutsch: „“) }}
 }}

}}{{#if:

   | {{#if: 
       | {{#if: 
           | Vorlage:": Text= und 1= gleichzeitig, bzw. Pipe zu viel }} }}
   | Vorlage:": Text= fehlt }}{{#if:  | {{#if: {{#invoke:Text|unstrip|{{{ref}}}}}
             | Vorlage:": Ungültiger Wert: ref=
             | {{{ref}}} }}

}}|.{{#if:{{#invoke:TemplUtl|faculty|Vorlage:Cite book/URL}}|{{#if:Vorlage:Cite book/URL||{{#ifeq: Vorlage:Cite book/URL | JaKeinHinweis |{{#switch:

   |0|=Vorlage:Toter Link/Core{{#if: https://www.informatik-aktuell.de/entwicklung/methoden/der-architecture-communication-canvas.html
       | {{#if:  | [3] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: 
           | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }}
         }}
       |   (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.)
     }}{{#switch: 
         |no|0|=
         |#default={{#if:  ||  }}
    }}{{#invoke:TemplatePar|check
         |opt      = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
    }}{{#if: https://www.informatik-aktuell.de/entwicklung/methoden/der-architecture-communication-canvas.html
      | {{#if:{{#invoke:URLutil|isWebURL|https://www.informatik-aktuell.de/entwicklung/methoden/der-architecture-communication-canvas.html}}
          || {{#if:  ||  }} 
        }}
      | {{#if: 
           | {{#if:  ||  }}
           | {{#if:  ||  }}
        }}
    }}{{#if: 
       | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
         }}
    }}{{#switch: deadurl
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=https://www.informatik-aktuell.de/entwicklung/methoden/der-architecture-communication-canvas.html Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. )  {{#if: 
            | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }}
         }}Vorlage:Toter Link/Core{{#switch: 
          |no|0|=
          |#default= {{#if:  ||  }}
        }}{{#invoke:TemplatePar|check
         |all      = inline= url=
         |opt      = datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
       }}{{#if: https://www.informatik-aktuell.de/entwicklung/methoden/der-architecture-communication-canvas.html
       | {{#if:{{#invoke:URLutil|isWebURL|https://www.informatik-aktuell.de/entwicklung/methoden/der-architecture-communication-canvas.html}}
          || {{#if:  ||  }} 
        }}
    }}{{#if: 
         | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
           }}
    }}{{#switch: deadurl
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}[https://www.informatik-aktuell.de/entwicklung/methoden/der-architecture-communication-canvas.html }}|{{#switch: 
   |0|=Vorlage:Toter Link/Core{{#if: https://www.informatik-aktuell.de/entwicklung/methoden/der-architecture-communication-canvas.html
       | {{#if:  | [4] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: 
           | {{#if:  | | Vorlage:Toter Link/archivebot }}
         }}
       |   (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.)
     }}{{#switch: 
         |no|0|=
         |#default={{#if:  ||  }}
    }}{{#invoke:TemplatePar|check
         |opt      = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
    }}{{#if: https://www.informatik-aktuell.de/entwicklung/methoden/der-architecture-communication-canvas.html
      | {{#if:{{#invoke:URLutil|isWebURL|https://www.informatik-aktuell.de/entwicklung/methoden/der-architecture-communication-canvas.html}}
          || {{#if:  ||  }} 
        }}
      | {{#if: 
           | {{#if:  ||  }}
           | {{#if:  ||  }}
        }}
    }}{{#if: 
       | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
         }}
    }}{{#switch: 
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=https://www.informatik-aktuell.de/entwicklung/methoden/der-architecture-communication-canvas.html Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. )  {{#if: 
            | {{#if:  | | Vorlage:Toter Link/archivebot }}
         }}Vorlage:Toter Link/Core{{#switch: 
          |no|0|=
          |#default= {{#if:  ||  }}
        }}{{#invoke:TemplatePar|check
         |all      = inline= url=
         |opt      = datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
       }}{{#if: https://www.informatik-aktuell.de/entwicklung/methoden/der-architecture-communication-canvas.html
       | {{#if:{{#invoke:URLutil|isWebURL|https://www.informatik-aktuell.de/entwicklung/methoden/der-architecture-communication-canvas.html}}
          || {{#if:  ||  }} 
        }}
    }}{{#if: 
         | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
           }}
    }}{{#switch: 
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}[https://www.informatik-aktuell.de/entwicklung/methoden/der-architecture-communication-canvas.html }} }}}}}}}}}}{{#if:|
        {{#invoke:Vorlage:Internetquelle|archivBot|stamp=|text={{#if:Vorlage:Cite book/URL|Vorlage:Webarchiv/archiv-bot}}

}}}}{{#invoke:TemplatePar|check |all= url= titel= |opt= autor= hrsg= format= sprache= titelerg= werk= seiten= datum= abruf= zugriff= abruf-verborgen= archiv-url= archiv-datum= archiv-bot= kommentar= zitat= AT= CH= offline= |cat= {{#ifeq: 0 | 0 | Wikipedia:Vorlagenfehler/Vorlage:Internetquelle}} |template= Vorlage:Internetquelle |format=0 |preview=1 }}{{#invoke:TemplatePar|check

   |all     = url= title=
   |opt     =  script-title= trans-title= archive-url= archiveurl= archive-date= archivedate= authors= vauthors= author= author1= authorlink= authorlink1= author-link= author-link1= author2= author-link2= author3= author-link3= author4= author-link4= author5= author-link5= author6= author7= author8= author9= last= first= last1= first1= last2= first2= last3= first3= last4= first4= last5= first5= last6= first6= last7= first7= last8= first8= last9= first9= others= language= lang= format= website= work= publisher= via= pages= page= at= date= year= id= bibcode= doi= pmid= pmc= arxiv= archivedate= archive-date= archivebot= accessdate= access-date= quote= comment= url-status=  ref= url-access= orig-year= editor= editor-link= editor-last= editor-first= editor1-link= editor1-last= editor1-first= editor2= editor2-last= editor2-first= editor2-link= department= series= agency= location= place= publication-place= publication-date= type= asin= doi-broken-date= isbn= issn= jfm= jstor= lccn= mr= oclc= ol= osti= rfc= ssrn= zbl= postscript= df= mode= display-authors= display-editors= book-title= contribution-url=  offline= coauthors= month= authorlink2= authorlink3= authorlink4= authorlink5= last10= first10= last11= first11= last12= first12= last13= first13= last14= first14= last15= first15= last16= first16= last17= first17= last18= first18= last19= first19= last20= first20= last21= first21=
   |cat      = Wikipedia:Vorlagenfehler/Vorlage:Cite web
   |errNS    = 0
   |template = Vorlage:Cite web
   |format   = 
   |preview  = 1
  }}Vorlage:Cite book/URL{{#if: Vorlage:Cite book/Webarchiv
    | Vorlage:Cite book/Meldung
  }}{{#if:  | Vorlage:Cite book/Meldung }}Vorlage:Cite book/Meldung2{{#if: Vorlage:Cite book/ParamBool
    | Vorlage:Cite book/Meldung
  }}{{#if: Vorlage:Cite book/ParamBool
    | Vorlage:Cite book/Meldung
  }}{{#if: Vorlage:Cite book/ParamBool
    | Vorlage:Cite book/Meldung
  }}{{#if: Vorlage:Cite book/ParamBool
    | Vorlage:Cite book/Meldung
  }}{{#if: Vorlage:Cite book/ParamBool
     | Vorlage:Cite book/Meldung
  }}{{#ifexpr: {{#ifeq:^^|^^|0|1}}{{#ifeq:^^|^^||+1}}{{#ifeq:^^|^^||+1}}{{#ifeq:^^|^^||+1}} > 1
    | Vorlage:Cite book/Meldung
  }}{{#ifexpr: {{#ifeq:^^|^^|0|1}}{{#ifeq:^^|^^||+1}}{{#ifeq:^^|^^||+1}}{{#ifeq:^^|^^||+1}} > 1
    | Vorlage:Cite book/Meldung
  }}{{#ifexpr: {{#ifeq:Informatik Aktuell|^^|0|1}}{{#ifeq:^^|^^||+1}} > 1
    | Vorlage:Cite book/Meldung
  }}{{#ifexpr: {{#ifeq:^^|^^|0|1}}{{#ifeq:^^|^^||+1}} > 1
    | Vorlage:Cite book/Meldung
  }}{{#ifexpr: {{#ifeq:^^|^^|0|1}}{{#ifeq:^^|^^||+1}} > 1
    | Vorlage:Cite book/Meldung
  }}{{#ifexpr: {{#ifeq:^^|^^|0|1}}{{#ifeq:^^|^^||+1}} > 1
    | Vorlage:Cite book/Meldung
  }}{{#ifexpr: {{#ifeq:^^|^^|0|1}}{{#ifeq:^^|^^||+1}} > 1
    | Vorlage:Cite book/Meldung
  }}{{#ifexpr: {{#ifeq:de|^^|0|1}}{{#ifeq:^^|^^||+1}} > 1
    | Vorlage:Cite book/Meldung
  }}{{#ifexpr: {{#ifeq:^^|^^|0|1}}{{#ifeq:^^|^^||+1}} > 1
    | Vorlage:Cite book/Meldung
  }}</ref>

Konferenzen

Wichtige Konferenzen zu Software-Architektur sind:

Siehe auch

Literatur

Deutsch
  • M. Gharbi, A. Koschel, A. Rausch, G. Starke: Basiswissen für Softwarearchitekten. dpunkt Verlag, Heidelberg 2020, ISBN 978-3-86490-781-4.
  • Ralf Reussner, Wilhelm Hasselbring: Handbuch der Software-Architektur. 2. Auflage. dpunkt Verlag, Heidelberg 2008, ISBN 978-3-89864-559-1.
  • Johannes Siedersleben: Moderne Software-Architektur. dpunkt Verlag, Heidelberg 2004, ISBN 3-89864-292-5.
  • Gernot Starke: Effektive Software-Architekturen: Ein praktischer Leitfaden. 5. Auflage. Carl-Hanser-Verlag, München 2010, ISBN 978-3-446-41215-6.
  • Gernot Starke, Peter Hruschka: Software-Architektur kompakt. 2. Auflage. Springer-Verlag, Heidelberg 2011, ISBN 978-3-8274-2834-9.
  • Oliver Vogel, Ingo Arnold, Arif Chughtai, Markus Völter: Software-Architektur. Grundlagen – Konzepte – Praxis. Spektrum Akademischer Verlag, Heidelberg 2005, ISBN 3-8274-1534-9.
  • {{#invoke:Vorlage:Literatur|f}}
  • {{#invoke:Vorlage:Literatur|f}}
Englisch
  • {{#invoke:Vorlage:Literatur|f}}
  • M. Gharbi, A. Koschel, A. Rausch: Software Architecture Fundamentals: A Study Guide for the Certified Professional for Software Architecture® – Foundation Level – iSAQB compliant, dpunkt Verlag, Heidelberg 2021 ISBN 978-3-86490-625-1
  • Richard N. Taylor, Nenad Medvidović, Eric M. Dashofy: Software architecture. foundations, theory, and practice Wiley, 2009, ISBN 978-0-470-16774-8.
  • Mark Richards, Neal Ford: Fundamentals of Software Architecture: An Engineering Approach. O’Reilly, 2021, ISBN 978-1-4920-4345-4.
  • {{#invoke:Vorlage:Literatur|f}}
  • {{#invoke:Vorlage:Literatur|f}}

Weblinks

[{{canonicalurl:Commons:Category:{{#if:Software architecture|Software architecture|Softwarearchitektur}}|uselang=de}} Commons: {{#if:Softwarearchitektur|Softwarearchitektur|{{#if:Software architecture|Software architecture|{{#invoke:WLink|getArticleBase}}}}}}]{{#switch:1

|X|x= |0|-= |S|s= – Sammlung von Bildern |1|= – Sammlung von Bildern{{#if:

    | {{#switch: {{#invoke:TemplUtl|faculty|1}}/{{#invoke:TemplUtl|faculty|1}}
        |1/=  und Videos
        |1/1=, Videos und Audiodateien
        |/1=  und Audiodateien}}
    | , Videos und Audiodateien
  }}

|#default= – }}{{#if: Software architecture

   | {{#ifeq: {{#invoke:Str|left|software architecture|9}} 
       | category: 
| FEHLER: Ohne Category: angeben!}}}}

Vorlage:Wikidata-Registrierung

Einzelnachweise

<references />

{{#ifeq: s | p | | {{#if: 4121677-5 | |

}} }}{{#ifeq:||{{#if: | [[Kategorie:Wikipedia:GND fehlt {{#invoke:Str|left|{{{GNDCheck}}}|7}}]] }}{{#if: | {{#if: | | }} }} }}{{#if: | {{#ifeq: 0 | 2 | | }} }}{{#if: | {{#ifeq: 0 | 2 | | }} }}{{#ifeq: s | p | {{#if: 4121677-5 | | {{#if: {{#statements:P227}} | | }} }} }}{{#ifeq: s | p | {{#if: 4121677-5 | {{#if: {{#invoke:Wikidata|pageId}} | {{#if: {{#statements:P227}} | | }} }} }} }}{{#ifeq: s | p | {{#if: | | {{#if: {{#statements:P244}} | | }} }} }}{{#ifeq: s | p | {{#if: | {{#if: {{#invoke:Wikidata|pageId}} | {{#if: {{#statements:P244}} | | }} }} }} }}{{#ifeq: s | p | {{#if: | | {{#if: {{#statements:P214}} | | }} }} }}{{#ifeq: s | p | {{#if: | {{#if: {{#invoke:Wikidata|pageId}} | {{#if: {{#statements:P214}} | | }} }} }} }}Vorlage:Wikidata-Registrierung