Systemanalyse - Folien zur Vorlesung für AI3 im Sommersemester 2010 - Hans-Jürgen Steffens (by courtesy of Prof. Dr. Thomas Allweyer) Fachbereich Informatik und Mikrosystemtechnik Fachhochschule Kaiserslautern, Standort Zweibrücken
Vorlesung Organisatorisches Warum Systemanalyse? Begriffe: System, Informationssystem, Modell Was ist Systemanalyse? Einordnung in den Software-Entwicklungsprozess Beteiligte und Ergebnisse der Systemanalyse Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 2 von 36
Zur Person Prof. Dr. Hans-Jürgen Steffens Lehrgebiet: Software-Engineering und Systemanalyse Büro: Gebäude H, Raum 234 Telefon: (06332) 914 314 E-Mail: steffens@informatik.fh-kl.de Homepage: www.informatik.fh-kl.de\~steffens Sprechstunde: Mittwochs Vormittag Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 3 von 36
Organisatorisches Systemanalyse: Vorlesung AI3, SS 2010 Schriftliche Klausur Termin wird noch bekannt gegeben Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 4 von 36
Organisatorisches zu den Übungen: Ablauf: Teilnahme an den Übungen ist Pflicht! Die Übungsblätter finden Sie unter www.informatik.fh-kl.de\~steffens Die Übungsaufgaben müssen vor jeder Übung bearbeitet sein und die Ergebnisse präsentiert werden können. Zwei erfolgreiche Präsentationen pro Teilnehmer sind obligatorisch Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 5 von 36
Hinweise Stellen Sie Fragen! Frühzeitig, nicht bis vor der Klausur warten! Was Sie nicht verstanden haben, haben andere oft auch nicht verstanden. Ich erkläre es gerne noch einmal. Versuchen Sie, am Ball zu bleiben Sie bekommen sonst Probleme im Seminar und vor der Klausur Ich stehe Ihnen gerne zur Verfügung Während der Vorlesung und im Anschluss In der Sprechstunde (es können auch gesonderte Termine vereinbart werden) Anregungen, Kritik, Probleme...... bitte frühzeitig äußern! Ich werde versuchen, Ihre Wünsche bzgl. Inhalt und Ablauf soweit möglich zu berücksichtigen. Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 6 von 36
Literatur Balzert, Heide: Lehrbuch der Objektmodellierung. Analyse und Entwurf mit der UML 2. 2.Auflage. Spektrum Akademischer Verlag, Heidelberg, Berlin 2004. Balzert, Helmut: Lehrbuch der Software-Technik. Software-Entwicklung. 2. Auflage. Spektrum Akademischer Verlag, Heidelberg, Berlin 2000. (verwendet UML 1.4) Hitz, M., Kappel, G.; Kapsammer, E.; Retschitzegger, W.: UML@Work. Objektorientierte Modellierung mit UML 2. 3. aktualisierte und überarbeitete Auflage. dpunkt, Heidelberg 2005. Rupp, Chris, Hahn, Jürgen; Queins, Stefan; Jeckle, Mario; Zengler, Barbara: UML 2 glasklar. 2. Auflage. Hanser, München 2005. Jedes UML-Buch, mit dem Sie gut zurecht kommen Beachten Sie: Viele Bücher verwenden noch die UML-Version 1.4. Vom Prinzip her hat sich nicht viel geändert, z.t. gibt es aber Änderungen in den Darstellungen. Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 7 von 36
Gliederung der Vorlesung 1. Einführung Systemanalyse Systemanalyse Was? Warum? Wozu? 2. Objektorientierte Systemanalyse mit UML Vorgehensweise? Methoden und Werkzeuge? Beispiel- Anwendung: Praktische Umsetzung 3. Überblick über den Gesamtablauf: Aktivitätsdiagramme 4. Die Benutzersicht: Use Case Diagramme 5. Objektorientierung: Grundlagen, Begriffe, Konzepte 6. Struktur des Systems: Klassen und Klassendiagramme 7. Zusammenspiel der Objekte: Interaktionsdiagramme 8. Lebenszyklen und Zustandsänderungen von Objekten: Zustandsdiagramme Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 8 von 36
Einführung Warum Systemanalyse? Begriffe: System, Informationssystem, Modell Was ist Systemanalyse? Einordnung in den Software-Entwicklungsprozess Beteiligte und Ergebnisse der Systemanalyse Ansätze der Systemanalyse: Strukturierte Analyse (SA) Objektorientierte Systemanalyse (OOA) Analyse, Entwurf, Implementierung OOA und OOD (Objektorientiertes Design) Pflichtenheft Überblick über die Unified Modeling Language (UML) Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 9 von 36
Typische Probleme bei der Software- Entwicklung Unklare Anforderungen Sich ändernde Anforderungen Komplexität Benutzerbedürfnisse nicht ausreichend berücksichtigt ==> Akzeptanzprobleme Mangelnde Kommunikation zwischen Anwendern und Entwicklern Mangelnde Kommunikation innerhalb des Entwicklungsteams Qualitätsprobleme Probleme beim Einhalten von Kosten- und Terminzielen Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 10 von 36
Gründe für Probleme bei der Software- Entwicklung Mängel bei Projektplanung und Management Ziele sind nicht klar Anforderungen sind nicht klar definiert Anwender und Entwickler sprechen verschiedene Sprachen Vermischung von Anforderungen und Lösung Vernachlässigung der Anforderungsanalyse zu Gunsten einer schnellen Umsetzung Whiscy-Syndrom: Why isn t Sam coding yet? Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 11 von 36
Notwendigkeit einer sorgfältigen Analyse Herausfinden, was Auftraggeber und Anwender wirklich wollen Sicherstellen, dass Sachverhalte des Anwendungsbereichs korrekt in die Software umgesetzt werden Probleme werden entdeckt, bevor das System realisiert ist Schaffung eines einheitlichen Verständnisses zwischen Anwendern und Entwicklern sowie innerhalb des Entwicklungsteams Beherrschung von Komplexität Anforderungen und Lösung sind klar voneinander getrennt Anforderungen sind klar definiert und dokumentiert Grundlage für Design, Implementierung und Test der Software Ermöglicht Priorisierung der Anforderungen und Entscheidung über ihre Realisierung Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 12 von 36
Ziel der Systemanalyse Wünsche und Anforderungen eines Auftraggebers an ein neues Softwaresystem ermitteln und beschreiben Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 13 von 36
System Systemgrenze (Rand) System Schnittstellen Elemente: -atomar -Subsystem In-/Output: -materiell -Immateriell (Information) Umwelt Im Folgenden: Konzentration auf Informationssysteme Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 14 von 36
Informationssystem Informationssystem: Ein System, dessen Zweck die Beschaffung, Verarbeitung, Speicherung, Übertragung und Bereitstellung von Informationen ist. Umfasst Menschen, organisatorische Regelungen und technische Einrichtungen. Computergestütztes Informationssystem (Anwendungssystem): Informationssystem, dessen Informationsverarbeitung teilweise durch Computersysteme automatisiert ist. Computersystem: Besteht aus Anwendungssoftware, Systemsoftware und Hardware. Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 15 von 36
Informationssystem Fokus der Systemanalyse Systemsoftware Hardware Anwendungssoftware Basis- System Informationssystem Computersystem Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 16 von 36
Modell Original-System Modell (-System) Zweck Abbildung Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 17 von 36
Modell Vereinfachte Abbildung eines komplexen Systems Je nach Zweck unterschiedliche Modelle Das Modell muss die für den Untersuchungszweck relevanten Merkmale des Originals beinhalten Nutzen von Modellen: Untersuchungen, die am Original nicht möglich wären Reduktion von Komplexität Nicht relevante Sachverhalte werden weg gelassen Kostenersparnis Modelle, von denen (noch) kein Original existiert Erkennen von Risiken Untersuchung von Alternativen Grundlage für die Erstellung eines Originals (Bauplan, Blaupause) Im Folgenden: Modelle von Informationssystemen Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 18 von 36
Analyse versus Entwurf Alle Aspekte der Implementierung werden in der Analysephase ausgeklammert Genaue Untersuchung der Anforderungen und Erstellung einer fachlichen Lösung Es wird eine perfekte Technik unterstellt Keine Performance- oder Speicherbeschränkungen, keine Verteilungsproblematik,... Technische Anforderungen werden in dieser Phase lediglich dokumentiert Klare Trennung zwischen den Anforderungen und ihrer Umsetzung Analyse: Nur die Anforderungen betrachtet (Was will der Benutzer/Auftraggeber tatsächlich?) Entwurf: Definition, wie die Anforderungen umgesetzt werden sollen (technische Lösung) Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 19 von 36
Wer ist an der Analyse beteiligt? Team aus: Systemanalytikern Kennen die Analyse-Methoden Fachexperten Kennen das Fachgebiet und dessen Regeln Zukünftige Benutzer Kennen die Anforderungen aus Anwendersicht Können z. B. Prototypen ausprobieren Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 20 von 36
Ergebnisse der Systemanalyse Pflichtenheft Textuelle Beschreibung dessen, was das System zu leisten hat Grundlage für Modellbildung Analysemodell (Fachkonzept) Fachliche Beschreibung des zu realisierenden Systems I.d.R. Grafiken (Diagramme) und Text Prototyp der Benutzungsoberfläche Falls erforderlich / sinnvoll Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 21 von 36
Eigenschaften des Analysemodells Konsistent Das Modell muss allen Anforderungen der Ausgangssituation genügen Das Modell muss in sich widerspruchsfrei sein Vollständig Alle fachlichen Funktionen, Objekte, usw. müssen erfasst sein Eindeutig Es muss sich um klare Vorgaben für die Entwurfsphase handeln, die nicht verschieden ausgelegt werden können. Realisierbar Es muss sich prinzipiell mit heute vorhandener Technologie umsetzen lassen Wie diese Umsetzung geschieht, wird jedoch in dieser Phase noch nicht berücksichtigt Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 22 von 36
Ansätze der Systemanalyse Strukturierte Analyse (SA) Wichtige Konzepte: Funktionsorientierte Zerlegung des Systems Kontextdiagramme (Datenaustausch mit der Umgebung) Datenflussdiagramme (DFD) Data Dictionary Objektorientierte Analyse (OOA) Wichtige Konzepte: Objektorientierte Zerlegung des Systems Use Case Diagramme (Anwendungsfälle) Klassendiagramme (Statische Struktur) Interaktionsdiagramme: Sequence und Collaboration Diagramme (Dynamisches Verhalten) Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 23 von 36
Strukturierte Analyse: Kontextdiagramm Schnittstelle Datenflüsse nach außen Kunde Fluganfrage Flugauskunft Flugticket-Bestellung Flugticket Flugtickets verkaufen Finanzbuchhaltung Buchungssatz Beispiel entnommen aus: Raasch, Jörg: Systementwicklung mit Strukturierten Methoden. 3. Auflage. München Wien 1993. Genau ein Prozess, repräsentiert Gesamtsystem Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 24 von 36
Strukturierte Analyse: Datenflussdiagramm (DFD) Detaillierung des Prozesses Flugtickets verkaufen Flugticket- Bestellung Fluganfrage Flugauskunft erteilen Flugticket ausstellen 2 Flugticket Buchungssatz Flugauskunft 1 Flug Datenspeicher Beispiel entnommen aus: Raasch, Jörg: Systementwicklung mit Strukturierten Methoden. 3. Auflage. München Wien 1993. Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 25 von 36
Strukturierte Analyse: Data Dictionary Buchungssatz = Name + Flugnr + Betrag Flugticket-Bestellung = Name + Flugnr + Startzeit Fluganfrage = Termin + Route Flugauskunft = [ Flug nicht im Angebot kein Platz frei Preis + Startzeit + Zielzeit + Flugnr ] Flugticket = Name + Flugnr + Startzeit + Route + Preis Flug = Flugnr + Flugdatum + Route + Startzeit + Zielzeit + Preis + Anzahl_freie_Sitze Route = Startort + Zielort Startzeit = Datum_Zeit Zielzeit = Datum_Zeit Datum_Zeit = Tag + Monat + Jahr + Stunde + Minute usw. Beispiel entnommen aus: Raasch, Jörg: Systementwicklung mit Strukturierten Methoden. 3. Auflage. München Wien 1993. Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 26 von 36
Strukturierte Analyse: Data Dictionary Verwendete Symbole und ihre Bedeutung: = ist äquivalent + Sequenz (und) [....] Auswahl (entweder, oder) { } Wiederholung (beliebig oft) n{ }m Wiederholung (mindestens n mal, höchstens m mal) 1{ } Beliebig oft, aber mindestens einmal 2{ }5 zwei bis fünf Mal Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 27 von 36
Objektorientierte Analyse (OOA) Durchgängigkeit der Beschreibung über alle Phasen der Softwareentwicklung hinweg Nutzung der gleichen Konzepte für Analyse, Design und Implementierung (bei Nutzung von objektorientierten Programmiersprachen) Erleichtert die Nachvollziehbarkeit und Änderbarkeit Verständlichkeit Objekte als Konzept aus der realen Welt intuitiv verständlich Reduzierte Komplexität durch Bildung von gekapselten Objekten Wartbarkeit und Erweiterbarkeit Änderungen an einer Stelle haben wenige Auswirkungen auf andere Teile des Systems Wiederverwendbarkeit Relativ abgeschlossene Objektdefinitionen und implementierungen lassen sich leicht wiederverwenden Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 28 von 36
Analyse Entwurf Objektorientierte Analyse (OOA) Objektorientiertes Design (OOD) Fachliche Beschreibung der Systemanforderungen Was soll das System machen, nicht: wie soll es umgesetzt werden Implementierungsaspekte ausgeklammert Es wird von perfekter Technik ausgegangen Erweiterung des OOA-Modells zu einem OOD-Modell Berücksichtigung von Effizienz- und Standardisierungsaspekten Erweiterung um systemnahe Klassen Schnittstellen Benutzungsoberfläche Datenhaltung Verteilung OOD-Modell soll direkt implementierbar sein Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 29 von 36
Analyse und Entwurf Analyse Pflichtenheft OOA-Modell Entwurf Oberflächenprototyp OOD- Modell Fachkonzept Datenhaltung Verteilung Benutzungsoberfläche Klassenbibliotheken Datenbank Implementierung Code (z. B. Java, C++) Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 30 von 36
Pflichtenheft Detaillierte verbale Beschreibung der Anforderungen Enthält auch nicht-formalisierbare Anforderungen Können nicht in Modellen dargestellt werden Z. B. Antwortzeiten, Sicherheitsaspekte,... Beschreibt das Was, nicht das Wie Adressaten Auftraggeber Projektteam Ausgewählte Benutzer Pflichtenheft ist Grundlage für juristischen Vertrag Leistungsbeschreibung Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 31 von 36
Pflichtenheft: Muster für Grob-Gliederung 1. Zielbestimmung: Muss-, Wunsch- und Abgrenzungskriterien 2. Produkteinsatz: Anwendungsbereiche, Zielgruppen, Betriebsbedingungen 3. Produktübersicht 4. Produktfunktionen mit Verweis auf OOA-Modell 5. Produktdaten mit Verweis auf OOA-Modell 6. Produktleistungen (z. B. bzgl. Zeit, Genauigkeit) 7. Qualitätsanforderungen 8. Benutzungsoberfläche (z. B. Style Guides, Zugriffsrechte) 9. Nichtfunktionale Anforderungen (z. B. bzgl. Sicherheit, einzuhaltende Gesetze) 10. Produktumgebung: Software, Hardware, Schnittstellen, Organisatorischer Rahmen 11. Anforderungen an die Entwicklungsumgebung 12. Gliederung in Teilprodukte 13. Ergänzungen Nach: Balzert, Helmut: Lehrbuch der Software-Technik. Software-Entwicklung. 2. Auflage. Heidelberg Berlin 2000. Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 32 von 36
Ermittlung der Anforderungen Interview mit Auftraggeber Interviews mit Fachleuten / zukünftigen Benutzern Ist-Analyse: Wie werden die Aufgaben heute durchgeführt (ohne System / mit einem Alt-System)? Dokumentenanalyse Analyse von benutzten Formularen und Belegen (Auftrag, Rechnung,...) Nutzung von Beispielen Analyse vergleichbarer Lösungen und Systeme Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 33 von 36
Methode Methode Konzepte Notation Vorgehen Beispiel: Konzepte der Objektorientierung - Objekt - Attribut - Klasse - Vererbung - Assoziation... Beispiel: Unified Modeling Language (UML) - Diagramme - Text Beispiel: Rational Unified Process (RUP) - Schritte - Regeln - Beispiele Nach: Balzert, Heide: Lehrbuch der Objektmodellierung. Heidelberg Berlin 1999 Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 34 von 36
UML: Unified Modeling Language Grafische Modellierungssprache (Notation) für objektorientierte Analyse und Design von Softwaresystemen Modelltypen zur Darstellung verschiedener Aspekte: Anforderungsdefinition Statische Struktur Dynamisches Verhalten UML integriert verschiedene frühere objektorientierter Ansätze (Booch, Rumbaugh, Jacobson, Harel,...) Standardisiert durch die Object Management Group (OMG), aktuelle Version UML 2.0 (Viele Bücher und Tools nutzen noch UML 1.4. Grundlegende Prinzipien sind gleich, einige Darstellungen sehen etwas anders aus) Weite Verbreitung in der Praxis Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 35 von 36
UML Diagrammtypen Use Case Diagram (Anwendungsfälle) Anforderungsdefinition Dynamisches Verhalten Statische Struktur Implementierungsaspekte Activity Diagram (Abläufe) Class Diagram (Klassendiagramm, Struktur des Systems) Implementation Diagrams: Component Diagram, Deployment Diagram (Aufteilung in Komponenten und physische Verteilung) Interaction Diagrams: Sequence Diagram, Collaboration Diagram (Interaktionen zw. Objekten) Statechart Diagram (Zustandsänderungen von Objekten) Pfeile: Typische Reihenfolge, in der die Diagramme entwickelt werden Prof. Dr. Hans-Jürgen Steffens Systemanalyse SS 2010 36 von 36