Bibtex

@InCollection{,
  Year    = "2019", 
  Title    = "Softwareentwurf", 
  Author    = "Turowski, Prof. Dr. Klaus", 
  Booktitle    = "Gronau, Norbert ; Becker, Jörg ; Kliewer, Natalia ; Leimeister, Jan Marco ; Overhage, Sven (Herausgeber): Enzyklopädie der Wirtschaftsinformatik – Online-Lexikon",
  Publisher    = "Berlin : GITO",
  Url    = "https://wi-lex.de/index.php/lexikon/entwicklung-und-management-von-informationssystemen/systementwicklung/hauptaktivitaeten-der-systementwicklung/softwareentwurf/", 
  Note    = "[Online; Stand 21. November 2024]",
}

Softwareentwurf

Klaus Turowski


Der Softwareentwurf gehört zu den Hauptaktivitäten der Systementwicklung. Nach erfolgter Problemanalyse und Anforderungsdefinition wird hierbei die Grundlage für die Software-Implementierung geschaffen. Die Phase umfasst insbesondere die Identifikation und Spezifikation von Architekturbausteinen des zu entwickelnden Softwaresystems.

Definition

Der Begriff Softwareentwurf bezeichnet eine Tätigkeit im Rahmen der Entwicklung eines Softwaresystems, die auf den Ergebnissen der Anforderungsdefinition (etwa dem Pflichtenheft oder dem Lastenheft) aufsetzt und sich als eigene Phase – oder aufgeteilt auf verschiedene, spezielle Entwurfsphasen (z. B. Architekturentwurf oder Komponentenentwurf) – in typischen Vorgehensmodellen der Systementwicklung wiederfindet.

In Anlehnung an [IEEE 1990, S. 25] versteht man unter dem Softwareentwurf den Prozess der Definition der Architektur, Komponenten, Schnittstellen und anderer Merkmale eines Software(teil)systems.

Der Begriff der Komponente ist in diesem Kontext in seiner allgemeinsten Form im Sinne eines Teilsystems zu verstehen. Eine spätere Realisierung als Fachkomponente oder als Softwarekomponente ist möglich, aber nicht automatisch impliziert.

Der Schwerpunkt der Aufgaben beim Softwareentwurf, die letztlich zu einem vollständigen Plan der zu erstellenden Software führen, liegt auf

  • der Festlegung primär struktureller Eigenschaften des zu entwickelnden Softwaresystems – also der Identifikation der Architekturbausteine (z. B. Module, Klassen oder Softwarekomponenten) und deren Beziehungen zueinander (strukturales und hierarchisches Systemkonzept) – sowie

  • der Beschreibung der Außensicht der identifizierten Teilsysteme – also der Spezifikation der Schnittstellen der Identifizierten Architekturbausteine (funktionales Systemkonzept).

Man spricht hierbei auch vom Programmieren im Großen.

Die Ergebnisdokumente der Anforderungsdefinition geben hierfür generelle Ziele, z. B.

  • gute Wartbarkeit,

  • leichte Wiederverwendbarkeit,

  • hohe Erweiterbarkeit oder

  • leichte Benutzbarkeit,

sowie konkrete fachliche Eigenschaften (als Ergebnisse des Fachentwurfs) vor. Diese werden im Rahmen des Softwareentwurfs auf Teilsysteme heruntergebrochen und liefern so die Vorgaben, z. B. in Form eines teilsystemspezifischen Softwarevertrags, vgl. [Ackermann et al. 2002], für die folgenden Entwicklungsphasen, die auch als Programmieren im Kleinen bezeichnet werden.

Identifikation von Teilsystemen und Entwurfsmuster

Ziel des Softwareentwurfs ist es, die Vorgaben der Anforderungsdefinition möglichst umfassend zu berücksichtigen, was letztlich auf die Lösung einer multikriteriellen Optimierungsaufgabe hinausläuft.

Bei der anforderungskompatiblen Identifikation von Teilsystemen im Komponentenorientierten Softwareentwurf kann auf spezialisierte Methoden zurückgegriffen werden. Beispielsweise verwendet die BCI-Methode Heuristiken zur Identifikation von Architekturbausteinen aus dem Fachentwurf [Albani et al. 2003]. Vergleichbare Ansätze existieren zum Objektorientierten Softwareentwurf, zum Framework-basierten Softwareentwurf, sowie zum Dialogentwurf.

Darüber hinaus kann auf sogenannte Entwurfsmuster zurückgegriffen werden [Gamma et al. 2004], die abstrakte Lösungen zu häufig auftretenden Entwurfsaufgaben darstellen. Beispiele für Entwurfsmuster sind etwa

  • Abstract Factory,

  • Adapter,

  • Bridge oder

  • Observer.


Literatur

Ackermann, Jörg ; Brinkop, Frank ; Conrad, Stefan ; Fettke, Peter ; Frick, Andreas ; Glistau, Elke ; Jaekel, Holger ; Kotlar, Otto ; Loos, Peter ; Mrech, Heike ; Ortner, Erich ; Raape, Ulrich ; Overhage, Sven ; Sahm, Stephan ; Schmietendorf, Andreas ; Teschke, Thorsten ; Turowski, Klaus: Vereinheitlichte Spezifikation von Fachkomponenten. In: Turowski, Klaus (Hrsg.): Memorandum des Arbeitskreises 5.10.3 Komponentenorientierte betriebliche Anwendungssysteme, Universität Augsburg, 2002. http://komponenten.cs.uni-magdeburg.de/docs/MEMO/Memorandum-final-2-44-mit-literatur-Web.pdf (Abruf 19.09.2016).

IEEE Standard Glossary of Software Engineering Terminology, Approved September 28, 1990 IEEE Standards Board, IEEE Std 610.121990.

Gamma, Erich ; Helm, Richard ; Johnson, Ralph ; Vlissides, John: Entwurfsmuster: Elemente wiederverwendbarer objektorientierter Software. München : Addison-Wesley, 2004.

Albani, Antonia ; Keiblinger, Andreas ; Turowski, Klaus ; Winnewisser, Christian: Domain Based Identification and Modelling of Business Component Applications. 7th East-European Conference on Advances in Databases and Informations Systems (ADBIS-03), Springer Lecture Notes in Computer Science (LNCS) 2798, Dresden 2003. Berlin: Springer Verlag, 2003. S. 30-45.

Hier weiterverbreiten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert