Wie konstruiert man Software? Kapitel 2: Der Software-Entwicklungsprozess SoPra 2008 Kap. 2: Der Software-Entwicklungsprozess (1/10)
Der Software-Entwicklungs-Prozess Historisches 1960JJ adhoc Techniken führen in die sogenannte Softwarekrise. 1970JJ von Ingenieursdisziplinen abgeleitete Entwicklungsprozesse Wasserfallansatz Strukturierte Analyse und Programmierung Prototyping 1990JJ Objektorientiere Software-Entwicklung Unified Method (Booch, Rumbaugh) FUSION (HP) RATIONAL UNIFIED PROCESS (RUP) heute dominiert UML/UP die objektorientierte SW-Konstruktion SoPra 2008 Kap. 2: Der Software-Entwicklungsprozess (2/10)
Der klassische Software-Life-Cycle Iteriertes Wasserfallmodell nach Boehm [1977]: Analyse und Definition der Anforderungen Design von System und Software Implementierung und Modultest Integration und Systemtest Einsatz und Wartung SoPra 2008 Kap. 2: Der Software-Entwicklungsprozess (3/10)
Vorteile einer Methodik in der Analysephase Verbesserte Kommunikation zwischen den Entwicklern Modelle erlauben präzise, aber abstrakte Kommunikation Analysemodell kann (und soll) mit dem Kunden besprochen werden, um das Problemverständnis zu prüfen Klarere Konzepte besseres Verständnis des Problem-Bereichs Modelle robuster gegen Änderungen in den Anforderungen Wiederverwendbarkeit der Analyseergebnisse für andere Anforderungen im selben Problem-Bereich SoPra 2008 Kap. 2: Der Software-Entwicklungsprozess (4/10)
Vorteile einer Methodik in der Designphase Weniger Redesign Problem kann auf verschiedenen Abstraktionsebenen betrachtet werden Alternativen können studiert werden, bevor man sich auf ein spezielles Design festlegt Bessere Arbeitsteilung große Projekte erfordern Teamarbeit Teamarbeit erfordert die Zerlegung des Problems in unabhängige Teile Analyse- und Designphase helfen beim Finden einer geeigneten Zerlegung SoPra 2008 Kap. 2: Der Software-Entwicklungsprozess (5/10)
Vorteile einer Methodik für den Projektverlauf und Dokumentation bessere Planbarkeit Verwendung einer anerkannten Methode schafft Vertrauen in die Durchführbarkeit Abschätzung des Aufwands wird einfacher leichtere Einbindung neuer Entwickler Einarbeitung neuer Mitarbeiter anhand der Entwicklungsdokumentation leichter ggf. Übergabe an ein neues Entwicklerteam möglich Einfachere Wartung Software wird oft nicht von den Entwicklern selbst gewartet Analyse- und Designdokumente helfen beim Verständnis des (fremden) Codes, bilden eine Entwicklungsdokumentation SoPra 2008 Kap. 2: Der Software-Entwicklungsprozess (6/10)
Vorteile... eines objektorientierten Ansatzes in der Analyse die Objekte der realen Welt finden sich 1:1 in den Modellen wieder durch die Betonung von Objekten statt Prozessen tritt das Was in den Vordergrund bessere Verständlichkeit durch Strukturierungsmöglichkeiten (z. B. Generalisierung und Aggregation) im Design Abstraktion (ADT, Datenkapselung) in der Implementierung kein Bruch: Übernahme der Ergebnisse aus Analyse & Design bessere Wiederverwendbarkeit von Code SoPra 2008 Kap. 2: Der Software-Entwicklungsprozess (7/10)
Kurzüberblick FUSION Was ist FUSION? Entwicklungsmethode der 2. Generation für objektorientierte Software erlaubt systematischen Entwurf der Objektstruktur integriert und erweitert bestehende Ansätze (vor UP) FUSION kann man an seine Bedürfnisse anpassen FUSION ist kompatibel mit UML Wissen über FUSION übertragbar auf andere Methoden In dieser Veranstaltung: FUSION light SoPra 2008 Kap. 2: Der Software-Entwicklungsprozess (8/10)
Kurzüberblick FUSION Die drei Phasen von FUSION Analyse Objekte und Konzepte im System finden Beziehungen zwischen diesen beschreiben Operationen definieren, die im System möglich sein sollen Design Entwurf der Benutzeroberfläche Anbindung an die Systemoperationen Realisierung der einzelnen Systemoperationen Interaktion der beteiligten Objekte wie können diese auf einander zugreifen? Implementierung Umsetzung des Designs in eine OO-Programmiersprache SoPra 2008 Kap. 2: Der Software-Entwicklungsprozess (9/10)
Kurzüberblick FUSION Was wann erstellt wird Anforderungsdokument Analyse Design Objektmodell Operationsmodell Interaktions modell Lebenszyklen Objektinteraktions graphen Klassen Beschreibungen Data Dictionary (Glossar) Implementierung Programm SoPra 2008 Kap. 2: Der Software-Entwicklungsprozess (10/10)