WS 04/05 wiss. Übung: Systemanalyse und Softwaredesign Volker Herrmann Email: herrmanv@uni-koeln.de Persönlich: Raum 001 im Philosophikum Tel.: 470-2690 Sprechstunde nach Vereinbarung
Systemanalyse und Softwaredesign ORGANISATORISCHES
Systemanalyse und Softwaredesign Literatur Balzert, Heide: Lehrbuch der Objektmodellierung, Spektrum Stevens, Perdita und Rob Pooley: UML, Softwareentwicklung mit Objekten und Komponenten, Addison Wesley
Systemanalyse und Softwaredesign 1.TEIL Konzepte der Objektorientierung Einführung in die UML-Notation 2.TEIL Methodik: Techniken - der objektorientierten Analyse - des objektorientierten Entwurfs Vertiefung UML Systemanalyse und Softwaredesign
Systemanalyse und Softwaredesign 13.10.04/20.10.04/27.10.04 Statische Konzepte: Klasse – Objekt - Attribut – Operation Assoziation – Vererbung – Paket UML: Klassendiagramm
Systemanalyse und Softwaredesign 03.11.04/10.11.04 Dynamische Konzepte: Geschäftsprozeß – Botschaft – Szenario – Zustandsautomat UML: Use Case – Interaktionsdiagramme - Zustandsdiagramme
Systemanalyse und Softwaredesign 17.11.04/24.11.04/01.12.04/08.12.04 Objektorientierte Analyse von Systemen: Analyseprozeß – Anforderungen Statische Modellierung Dynamische Modellierung
Systemanalyse und Softwaredesign 15.12.04/22.12.04 Objektorientierter Entwurf (Softwaredesign) I: Elaboration/Spezifizierung des OOA-Modells
Systemanalyse und Softwaredesign 12.01.04/19.01.04/26.01.04 Softwaredesign II: Entwurfsmuster Software-Ergonomie: Gestaltung von Benutzungsoberflächen
Systemanalyse und Softwaredesign 02.02.04 Implementierungsdiagramme der UML: Komponentendiagramm Verteilungsdiagramm
Systemanalyse und Softwaredesign Genauer: Objektorientierte Systemanalyse und Softwaredesign
Systemanalyse und Softwaredesign Strukturierte vs. Objektorientierte Entwicklung: Modellierung von Prozessen und Informationsstrukturen mittels Datenfluß- und Entity-Relationship-Diagrammen - Nachteile (?): geringere Flexibilität der Produkte Leserlichkeit der Modelle Wartbarkeit vs. Modellierung mit Hilfe von einheitlichen, durchgängig verwendeten Konzepten und Tools - zusätzlicher Vorteil (?): Wiederverwendbarkeit von einzelnen Komponenten Systemanalyse und Softwaredesign
Systemanalyse und Softwaredesign Noch genauer: Objektorientierte Systemanalyse und Softwaredesign mit UML
UML = Unified Modeling Language 1997: Standardisierung durch OMG Formale grafische Modellierungssprache Spezifikation, Konstruktion, Visualisierung und Dokumentation eines Softwaresystems UML schreibt nicht - Methode - Modellierungswerkzeug - Modellierungsrichtlinien - Programmiersprache vor .
Systemanalyse und Softwaredesign Lebenszyklus von Softwareprodukten ANALYSE ENTWURF IMPLEMENTIERUNG TEST INBETRIEBNAHME WARTUNG/ERWEITERUNG Systemanalyse und Softwaredesign
Systemanalyse und Softwaredesign Ziel Qualitativ hochwertige Software entwickeln Welche Kriterien bestimmen die Qualität von Software?
Systemanalyse und Softwaredesign Eisbergeffekt
Systemanalyse und Softwaredesign Qualitätsmerkmale aus Sicht des Benutzers aus Sicht des Entwicklers
Systemanalyse und Softwaredesign Benutzersicht Qualitätsmerkmal: Effizienz Hardware-Effizienz: =Ausmaß der Inanspruchnahme von Hardware durch eine Software bei gegebenem Funktionsumfang Software-Effizienz: =Performance der Software
Systemanalyse und Softwaredesign Qualitätsmerkmal: Zuverlässigkeit =ein Softwaresystem ist zuverlässig, wenn es die geforderten Leistungen erbringt ohne in unerwünschte Zustände zu geraten
Systemanalyse und Softwaredesign Qualitätsmerkmal: Benutzbarkeit = ein Softwaresystem ist dann benutzbar, wenn die Eigenschaften Robustheit, Ergonomie, Fehlertoleranz und Erlernbarkeit realisiert sind
Systemanalyse und Softwaredesign Qualitätsmerkmal: Sicherheit = ein System ist sicher, wenn unter vorgegebenen Bedingungen in einem vorgegebenen Zeitraum unzulässige Ereignisse nicht möglich sind
Systemanalyse und Softwaredesign Entwicklersicht Qualitätsmerkmal: Erweiterbarkeit = in das System können neue Objekte oder Funktionalität eingefügt werden, ohne seine wesentlichen Eigenschaften verändern zu müssen
Systemanalyse und Softwaredesign Qualitätsmerkmal: Wartbarkeit = die Eigenschaft eines Systems, Fehlerursachen mit geringem Aufwand erkennen und beheben zu lassen
Systemanalyse und Softwaredesign Qualitätsmerkmal: Portabilität = unter Übertragbarkeit versteht man die Eignung eines Softwaresystems bzgl. des Einsatzes in geänderter technischer Umgebung
Systemanalyse und Softwaredesign Qualitätsmerkmal: Wiederverwendbarkeit = wenn ein hoher Prozentsatz des Systems für andere Probleme verwendet werden kann
Systemanalyse und Softwaredesign Ziel Modelle entwickeln Was ist ein OO-Modell?
Systemanalyse und Softwaredesign Modell eines Softwaresystems
Systemanalyse und Softwaredesign Modellierungssprache (Notation) - grafisch oder textuell - Werkzeug zur Modellierung - Mittel zur Dokumentation
Systemanalyse und Softwaredesign Anforderungen an eine Modellierungssprache - Ausdrucksstärke - Einfachheit - Eindeutigkeit - Automatisierbarkeit - Verbreitung - Erweiterbarkeit
Systemanalyse und Softwaredesign Objektorientierte Methode Eine Methode beschreibt eine systematische Vorgehensweise zur Erreichung eines bestimmten Ziels. Softwaretechnik: Oberbegriff für Konzepte, Notation und Vorgehensweise
Systemanalyse und Softwaredesign Die 3 Phasen der objektorientierte Softwareentwicklung: 1. Analyse – OOA – Systemanalyse 2. Design (Entwurf) – OOD - Softwaredesign 3. Implementierung – OO Programmierung
Systemanalyse und Softwaredesign Analysephase Ziele der Analyse: Wünsche eines Auftraggebers ermitteln, verstehen und beschreiben Ableitung der Anforderungen an das zu entwickelnde Softwaresystem Erstellen eines abstraken Modells
Systemanalyse und Softwaredesign Analysephase Produkte der Analyse: Pflichtenheft Analysemodell Prototyp der Benutzungsoberfläche
Systemanalyse und Softwaredesign Analysephase Pflichtenheft: Beschreibung dessen, was das System leisten soll Ausgangsbasis für systematische Modellbildung aber geringere Detailgenauigkeit
Systemanalyse und Softwaredesign Analysephase Analysemodell besteht aus statischen und dynamischen Modell statisches Modell beschreibt Klassen und Attribute ihre Vererbungsstruktur und Assoziationen dynamisches Modell zeigt die Funktionsabläufe über Geschäftsprozesse, Szenarios und Zustandsautomaten
Systemanalyse und Softwaredesign Zusammenspiel der Konzepte
Systemanalyse und Softwaredesign Analysephase Prototyp der Benutzungsoberfläche alle Attribute des Modells auf der Oberfläche abbilden keine Anwendungsfunktionen realisieren (Beispiel: Datenspeicherung) nur Fenster, Dialoge und Menüs, die dem Auftraggeber eine erste Vorstellung von dem zukünftigen System geben sollen
Systemanalyse und Softwaredesign Design / Entwurf – OOD OOA von idealen auf realen Raum übertragen auf einer bestimmten Plattform (Betriebsystem) Abbild des Programms auf höherer Abstraktionsebene Effizienz und Standardisierung
Systemanalyse und Softwaredesign Drei-Schichten-Architektur
Systemanalyse und Softwaredesign Abgrenzung Analyse und Entwurf
Systemanalyse und Softwaredesign Design / Entwurf – OOD Produkte des Entwurfs: Abbild des Programms auf höherer Abstraktionsebene Zusammenspiel der einzelnen Komponenten