Wirtschaftsinformatik (Bachelor-Studiengang): Software-Engineering (3. Semester)

Sie sind hier: StartseiteWirtschaftsinformatikGrundlagen des Software-Engineering

DW / CM, Kurs vom 01.04.2003 - 30.09.2003

Grundlagen des Software-Engineering: Einführung / Überblick (Begriffe, Modelle / DB-Schema, Charakteristika von Software, Conceptual Divergence, Convergent Engineering, Rollen bei der Software-Entwicklung), Phasen der Software-Entwicklung (Analyse, Definition, Entwurf, Implementierung, Abnahme /Einführung, Wartung, Prinzipien), Vorgehensmodelle (Wasserfall-Modell, Prototypen-Modell, Evolutionäres Modell, Inkrementelles Modell, Objektorientiertes Modell, Wiederverwendungsorientiertes Modell, Objektorientierung), UML (Klassen-Diagramme, Aggregation, Komposition, Beispiel Bibliothek, Beispiel Textverarbeitung).

  1. Einführung / Überblick
  2. Phasen der Software-Entwicklung
  3. Vorgehensmodelle
  4. UML

Einführung / Überblick

Begriffe

Software Engineering:

Zielorientierte Bereitstellung und systematische Verwendung von für die arbeitsteilige Entwicklung von Software-Systemen.

Software:

Programme, Daten und Dokumentationen zur Unterstützung von Prozessen / Lösung von Aufgaben.

Software-System:

Besteht aus Komponenten, die untereinander in verschiedenen Beziehungen stehen.

Software-Produkt:

Software aus Anwendersicht.

System-Software:

Hardware-abhängige Basis-Software (Betriebssystem, Compiler, Datenbanken, Kommunikationsprogramme).

Anwendungs-Software:

Unterstützt ein Anwenderproblem / einen Business Process.

Anwender:

Nutzt Ergebnisse von Anwendungs-Software oder liefert Daten.

Benutzer:

Setzt Software ein und bedient sie.

Prinzipien:

Allgemeingültige, abstrakte Handlungsgrundsätze.

Methoden:

Planmäßig angewandte, begründete Vorgehensweisen zur Erreichung festgelegter Ziele. Aufteilung in konkrete Arbeitsschritte.

Verfahren:

Ausführbare Vorschriften zum gezielten Einsatz von Methoden. Beziehen sich auf einen konkreten Anwendungsbereich.

Notation:

Darstellung von Informationen durch Symbole zur Beschreibung von Konzepten.

Modelle / DB-Schema

Allgemeine Anforderungen:

Beispiel

Bildbeschreibung "": Bestellung (Daten), Kunde (Name, Adresse), Artikel (Nummer, Name, Preis). Beziehung Kunde zu Bestellung und Bestellung zu Artikel 1:n.

Charakteristika von Software

Conceptual Divergence

Beobachtung, dass sich in der Praxis die Business-Systeme nicht 1:1 abbilden lassen.

  1. Business-System notiert
  2. Implementierung

Hinweis: Aber: Beziehungen zum ursprünglich Prozess sind schwer zu erkennen!

Convergent Engineering

Rollen bei der Software-Entwicklung

Entwicklung:

Erstellt Produkt im Rahmen eines Entwicklungsprozesses. Dieser ist in Phasen unterteilt.

Management:

Koordination aller Aktivitäten, Kontakt mit dem Kunden.

Qualitätssicherung:

Prüft, testet.

Wartung und Pflege:

Bugtracking (Fehlerverwaltung/-beseitigung), Anpassung an neue Anforderungen.

Zum Menü Wirtschaftsinformatik | Zum Seitenanfang

Phasen der Software-Entwicklung

  1. Analyse
    Problemanalyse, Planung
  2. Definition
    Anforderungsdefinition, Prämissen für die Realisierung
  3. Entwurf
    Architektur, Komponenten, Schnittstellen
  4. Implementierung
    Codierung / Generierung
  5. Abnahme / Einführung
    Übergabe, Abnahmetest, Installation, Schulung, Inbetriebnahme
  6. Wartung
    Fehlerbeseitigung, Änderungen, Optimierung

Analyse

Ziele:

Aktivitäten:

Ergebnisse:

Definition

Ziele:

Aktivitäten:

Ergebnisse:

Entwurf

Ziele:

Aktivitäten:

Ergebnisse:

Implementierung

Ziele:

Aktivitäten:

Ergebnisse:

Abnahme /Einführung

Ziele:

Aktivitäten:

Ergebnisse:

Wartung

Ziele:

Aktivitäten:

Prinzipien

Prinzip der Abstraktion:

Prinzip der Strukturierung:

Prinzip der Hierarchisierung:

Prinzip der Modularisierung:

Vorteile:

Prinzip der Standardisierung:

Vorteile:

Zum Menü Wirtschaftsinformatik | Zum Seitenanfang

Vorgehensmodelle

Vorgehensmodelle (auch Prozessmodelle genannt) beschreiben den organisatorischen Rahmen für eine (System-)Entwicklung.

Metapher Vorgehensmodell: Was ist wann zu tun? Was ist wann zu tun?

Vorgehensmodelle sollen zu einer disziplinierten, sichtbaren und kontrollierbaren Entwicklung führen.

Vorgehensmodelle legen u.a. fest:

Wasserfall-Modell

Einheitliche Notation gemäß Balzert:

Vorteile:

Nachteile:

Prototypen-Modell

Prototypen bei unklaren Anforderungen oder bei alternativen Lösungen. Prototypen zur Klärung der Anforderungen, zum experimentieren, um praktische Erfahrungen zu sammeln, als Diskussionsbasis.

Prototyping unterstützt auf systematische Weise die frühzeitige Erstellung ablauffähiger Modelle (Prototypen) des zukünftigen Systems.

Arten von Prototypen sind u.a.:

Zusammenhang zwischen Prototyp und Produkt:

Zusammenhang Prototyp und Produkt

Bildbeschreibung "Zusammenhang Prototyp und Produkt": Die Gesamtgrafik zeigt eine Ergänzung der traditionellen Modelle um Prototypen. Jeder Prototyp selbst muss definiert, entworfen und implementiert werden (hier nicht dargestellt). Der Teil der Aktivitäten und Produkte zeigt, dass Prototypen immer nur Ausschnitte oder Teilaspekte behandeln. PT = Prototyp.

Vorteile:

Nachteile:

Evolutionäres Modell

Versionsentwicklung:

Evolutionäres Modell

Bildbeschreibung "Evolutionäres Modell": Drei Bereiche = Grobe Beschreibung, Aktivitäten (Spezifikation, Entwurf, Implementierung) und Ergebnis (Anfangsversion, Zwischenversionen, Endversion).

Inkrementelles Modell

Variation des evolutionären Modells:

Inkrementelles Modell

Bildbeschreibung "Inkrementelles Modell": Grobe Definition der Anforderungen, Zuordnung der Anforderungen zu Teilsystemen, Entwurf der Systemarchitektur, Entwicklung eines Teilsystems, Validierung des Teilsystems, Integration des Teilsystems, Validierung des Systems (wenn System unvollständig, dann zurück zu "Entwicklung des Teilsystems"), Fertiges System.

Evolutionäres/Inkrementelles Modell:

Vorteile:

Nachteile:

Objektorientiertes Modell

Charakteristisches Merkmal der Objektorientierung ist die Wiederverwendung. Wiederverwendung, bezogen auf:

Hinweis: Bottom-Up-Aspekt.

Objektorientiertes Modell

Bildbeschreibung "Objektorientiertes Modell": Betrifft Anwendung, Anwendungsumgebung und Systemanbindung auf Definitions-, Entwurfs- und Implementierungsebene in den Ausprägungen eigen und gekauft.

Vorteile:

Nachteile:

Wiederverwendungsorientiertes Modell

Wiederverwendungsorientiertes Modell

Bildbeschreibung "Wiederverwendungsorientiertes Modell": Anforderungsdefinition, Systementwurf, Implementierung/Montage, Integration/Test, Einsatz. Während der ersten drei Phasen erfolgt Zugriff auf die Komponentenbibliothek. Je nach Analyse beispielsweise weiter in einer der beiden ersten Phasen.

Objektorientierung

Objekte

Beispiele für Klassen und Objekte:

Modellierung eines Autos:

Objektorientierung

Bildbeschreibung "Objektorientierung": Beispiel Objekt Auto. Ist aus anderen Objekten zusammengestzt, beispielsweise die Reifen. Eigenschaften = Marke, Farbe, Leistung, Baujahr. Methoden = Anlassen, Beschleunigen, Bremsen (Botschaften).

Zum Menü Wirtschaftsinformatik | Zum Seitenanfang

UML

Klassen-Diagramme

Elemente:

Zweck:

Zielsetzung:

Beispiel: Formalisieren eines realen Problems.

Input: Problem, meist schriftlich formatiert, Gespräch mit Betroffenen

Bibliothek:

Output: Formales Modell,UML-Diagramm

Aggregation

Beispiel: Ein Tisch besteht aus einer Tischplatte und mehreren Tischbeinen.

Aggregation

Bildbeschreibung "Aggregation": Drückt eine "besteht aus" Beziehung aus (ein Tisch besteht aus einer Tischplatte und mehreren Tischbeinen). Der Tisch handelt stellvertretend für seine Einzelteile (Bsp.: Setzen der Tischhöhe). Die Einzelteile können auch ungebunden existieren (ein Tischbein ist auch ohne Tisch ein Tischbein).

Komposition

Speziallfall der Aggregation.

Komposition

Bildbeschreibung "Komposition": Die Einzelteile können ungebunden nicht existieren (ein Kapitel muss in einem Dokument eingebunden sein). Ein Einzelteil kann nur einem Ganzen zugeordnet sein (ein Inhaltsverzeichnis kann nur einem Dokument zugeordnet sein).

Beispiel Bibliothek

Klassen identifizieren:

Objekte sind meist Nomen

Assoziationen identifizieren:

Assoziationen sind meist Verben

Attribute identifizieren:

Attribute sind meist in Adjektiven verborgen

oder Ausdrücken wie

zurück zum Beispiel Bibliothek:

Eine Bibliothek besitzt Bücher und Zeitschriften, welche an Studierende ausgeliehen werden. Der Ausleihvorgang wird auf einer Ausleihquittung festgehalten . Dort wird das Ausleihdatum notiert. Weiter enthält die Quittung den Ausleihgegenstand und der Name des Bezügers.

Beispiel Bibliothek

Bildbeschreibung "Beispiel Bibliothek": Klassen = Bibliothek, Bücher, Zeitschriften, Studierende, Ausleihquittung; Assoziationen = besitzt, ausgeliehen, festgehalten, enthält; Attribute = Ausleihdatum.

Beispiel Textverarbeitung

Das Textverarbeitungssystem erlaubt es Peter Müller und anderen Benutzern Dokumente anzulegen und zu editieren. Ein Dokument kann Text und Grafik enthalten. Text besteht aus Abschnitten, jeder Abschnitt aus Zeichen. Ein Dokument enthält außerdem verschiedene administrative Informationen wie seinen Titel, seinen Autor, den Dateinamen in dem es abgelegt wird, sowie das Datum der letzten Änderung.

Beispiel Textverarbeitung

Bildbeschreibung "Beispiel Textverarbeitung": Klassen = Textverarbeitungssystem, Benutzer, Dokumente, Text, Grafik, Abschnitte, Zeichen; Methoden = anlegen, editieren; Assoziationen = enthalten, besteht, enthält; Attribute = Titel, Autor, Dateiname, Datum.