Softwaretechnik – Vorlesung
Systemmodellierung
 
Dr. Michael Martin
WS 2017
12. Dezember 2014
Vorlesungseinheiten
 
13.10.2017 Organisatorisches + Einführung
20.10.2017 Softwareprozesse
27.10 2017 Agile Softwareentwicklung
03.11.2017 Requirements Engineering
10.11.2017 Systemmodellierung
17.11.2017 Entwurf der Architektur (fällt evtl. aus)
24.11.2017 Roland Meuel: Agile Softwareentwicklung in der Praxis
01.12.2017 Entwurf, Implementierung und Testen von Software
08.12.2017 Softwareevolution
15.12.2017 Wiederverwendung von Software
12.01.2018 Komponentenbasiertes Software-Engineering und Serviceorientierte Architektur
19.01.2018 Konfiguration, Qualitätsmanagement, Paketierung, Deployment
26.01.2018 Zusammenfassung und Prüfungsvorbereitung
 
 
Softwaretechnik - Softwareprozesse
  • Vorstellung von Systemmodellen, die als Teil des RE und Entwurfsprozesses zum Einsatz kommen,
  • Einsatz grafischer Modelle zur Repräsentation von Softwaresystemen,
  • Warum sind unterschiedliche Modelltypen notwendig?
  • Kontextmodelle
  • Interaktionsmodelle
  • Strukturmodelle
  • Verhaltensmodelle
  • Konzepte auf denen die modellgetriebene Softwareentwicklung beruht, um beispielsweise ein System aus struktur- und verhaltensbasierten Modellen zu erzeugen.
Systemmodellierung

Lernziele und Übersicht

(cc) All material provided on the SE9 website by Ian Sommerville - http://www.softwareengineering-9.com/
 
  • Systemmodellierung ist der Prozess der Entwicklung abstrakter Modelle eines Systems
    • Jedes dieser Modelle präsentiert eine spezielle Sicht auf das (Ziel-)System.
    • Graphische Darstellung dieser Modelle basieren i.d.R. auf der Unified Modelling Language (UML).
    • Systemmodellierung hilft dem Analysten die Funktionalität des Systems zu verstehen und Entscheidungsprozesse zu unterstützen:
    • Unterstützt während der PlanungEntwicklung, Test und Pflege
    • Basis zur Kommunikation mit dem Kunden
     
    Systemmodellierung

    Begriffsklärung

    (cc) All material provided on the SE9 website by Ian Sommerville - http://www.softwareengineering-9.com/
    Wann kommen Systemmodelle zum Einsatz?
    • Requirements Engineering: Propagiertes System
    • Abstimmung/Diskussion mit Systembeteiligten Dokumentation
    • Analyse von Stärken und Schwächen
    • Identifikation kritischer Stellen
    • Requirements Engineering: Existierendes System
    • Finden von Schwachstellen / Diskussionsgrundlage
    • Erstellen neuer Anforderungen
    • In einem modellgetriebenem Softwareentwicklungsprozess können vollständige aber auch partielle Systemmodelle erzeugt und verwendet werden.
    Systemmodellierung

    Existierende und geplante Systeme

    (cc) All material provided on the SE9 website by Ian Sommerville - http://www.softwareengineering-9.com/
    • Externe Perspektiven bilden den Kontext resp. die Umgebung eines Systems und dessen Grenzen ab.
    • Interaktionsperspektiven werden verwendet, um Interaktionen zwischen Systemen und deren Umgebung sowie zwischen den Komponenten des Systems zu modellieren.
    • Eine Strukturperspektive wird verwendet, um die Systemstruktur / Systemorganisation sowie die erzeugten Daten eines Systems zu modellieren.
    • Verhaltensmodelle unterstützen bei der Abbildung von dynamischen SystemverhaltenWie reagiert das System beim Auftreten definierter Events?
    Systemmodellierung

    Begriffsklärung: System-Perspektiven

    (cc) All material provided on the SE9 website by Ian Sommerville - http://www.softwareengineering-9.com/
    • Hauptwerkzeuge der Systemmodellierung bielden 5 Diagrammtypen:
    • Aktivitätsdiagramm: beschreiben Aktivitäten, die bei einem Systemprozess durchlaufen werden.
    • Use-Case-Diagrammebeinhalten die Interaktionen zwischen dem System und dessen Umgebung.
    • Sequenzdiagramme: beschreiben Interaktionen zwischen Akteuren und dem System sowie zwischen Systemkomponenten.
    • Klassendiagramme: werden verwendet, um die Objektklassen des Systems sowie Assoziationen zwischen den Klassen zu beschreiben.
    • Statusautomaten / Statusdiagrammeenthalten Informationen wie ein System beim Auftreten von internen und externen Events reagiert.
    Systemmodellierung

    Begriffsklärung: UML-Diagrammtypen

    (cc) All material provided on the SE9 website by Ian Sommerville - http://www.softwareengineering-9.com/
    • Zur Erleichterung von Diskussionen über existierende oder propagierte Systeme:
    • Unvollständige bzwfehlerhafte Modelle sind OK, da diese hierbei nur die Diskussion unterstüzen.
    • Zur Dokumentation eines existierenden Systems:
    • Modelle sollten fehlerfreimüssen aber nicht zwingend vollständig sein.
    • Zur detailierten Systembeschreibung, die auch zur Erzeugung der Systemimplementierung herangezogen wird:
    • Modelle müssen beides seinVollständig und Fehlerfrei.
    Systemmodellierung

    Benutzung von graphischen Modellen

    (cc) All material provided on the SE9 website by Ian Sommerville - http://www.softwareengineering-9.com/
    • Kontextmodelle
    • Kontextdiagramm (mit prozessorientierter Sicht)
    • Interaktionsmodelle
    • Use-Case-Diagramm
    • Aktivitätsdiagramm (datenorientierte Modellierung)
    • Datenflussdiagramm
    • Sequenzdiagramm
    • Strukturmodelle
    • Klassendiagramm (Generalisierung vs. Konkretisierung, Aggregationen)
    • (Paketdiagramm)
    • Verhaltensmodelle
    • Statusautomat
    Systemmodellierung

    Vorstellung weiterer graphischer Modelle

    (cc) All material provided on the SE9 website by Ian Sommerville –
    http://www.softwareengineering-9.com/
    • Kontextmodelle werden verwendet, um den operationalen Kontext eines Systems zu illustrieren.
    • Diese zeigen, was innerhalb und was außerhalb eines Systems istSystemgrenzen.
    • Definition von Systemgrenzen beeinflusst Requirements intensiv
    • Soziale und organisatorische Belange können Entscheidungen über die Position von Systemgrenzen beeinflussen.
    • Politische Entscheidungen: Definition von Systemgrenzen kann zu Erhöhung / Verringerung des Workloads einer Organisation führenBeschreibt den Einfluss des Systems
    Systemmodellierung

    Kontextmodelle

    (cc) All material provided on the SE9 website by Ian Sommerville - http://www.softwareengineering-9.com/
    Systemmodellierung

    Kontext der softwaregestützten Insulinpumpe: MHC-PMS

    (cc) All material provided on the SE9 website by Ian Sommerville - http://www.softwareengineering-9.com/
    5.1 MHCPMS-Context.eps
    • Kontextmodelle zeigen “nur” die relevanten anderen Systeme in der direkten Umgebungaber nicht wie das Zielsystem innerhalb der Umgebung verwendet wird.
    • Prozessmodelle gleichen dies aus.
    • Prozessmodelle zeigenwie das Zielsystem in einem breiteren Betriebsprozess Verwendung findet.
    • Zur Beschreibung eines Prozessmodells kann beispielsweise ein UML-Aktivitätsdiagramm eingesetzt werden.
     
    Systemmodellierung

    Prozessperspektive

    (cc) All material provided on the SE9 website by Ian Sommerville - http://www.softwareengineering-9.com/
    Systemmodellierung

    Prozessmodell einer Zwangseinweisung

    (cc) All material provided on the SE9 website by Ian Sommerville - http://www.softwareengineering-9.com/
    5.2 DetentionProcess.eps
    • Kontextmodelle
    • Kontextdiagramm (mit prozessorientierter Sicht)
    • Interaktionsmodelle
    • Use-Case-Diagramm
    • Aktivitätsdiagramm (datenorientierte Modellierung)
    • Datenflussdiagramm
    • Sequenzdiagramm
    • Strukturmodelle
    • Klassendiagramm (Generalisierung vs. Konkretisierung, Aggregationen)
    • (Paketdiagramm)
    • Verhaltensmodelle
    • Statusautomat
    Systemmodellierung

    Vorstellung weiterer graphischer Modelle

    (cc) All material provided on the SE9 website by Ian Sommerville –
    http://www.softwareengineering-9.com/
    • Interaktionstypen:
    • Modellierung von Benutzerinteraktionen hilft Anforderungen an ein System zu erkennen
    • Modellierung von system-to-system Interaktionen ermöglicht die Identifikation von möglichen Kommunikationsproblemen.
    • Modellierung von Komponenteninteraktionen ermöglicht die Identifikation von Performanzproblemen und nicht gewünschten Abhängigkeiten.
    • UseCase-Diagramme und Sequenzdiagramme können verwendet werden, um Interaktionen zu modellieren.
    Systemmodellierung

    Interaktionsmodelle

    (cc) All material provided on the SE9 website by Ian Sommerville - http://www.softwareengineering-9.com/
    • Jeder UseCase repräsentiert eine diskrete Aufgabewelcher externe Interaktionen mit dem System einbezieht.
    • Akteure eines UseCases können Menschen aber auch andere Systeme sein.
    • Werden als UML-Diagramm zur Überblicksdarstellungaber auch in textueller/tabellarischer Form zur detaillierteren Darstellung respräsentiert.
    •  
    Systemmodellierung

    Use-Case-Modellierung

    (cc) All material provided on the SE9 website by Ian Sommerville - http://www.softwareengineering-9.com/
    MHC-PMS: Transfer data
     
    Actors
    Medical receptionist, patient records system (PRS)
    Description
    A receptionist may transfer data from the MHC-PMS to a general patient record database that is maintained by a health authority. The information transferred may either be updated personal information (address, phone number, etc.) or a summary of the patient’s diagnosis and treatment.
    Data
    Patient’s personal information, treatment summary
    Stimulus
    User command issued by medical receptionist
    Response
    Confirmation that PRS has been updated
    Comments
    The receptionist must have appropriate security permissions to access the patient information and the PRS.
    5.5 RecepUseCases.eps
    • Sequenzdiagramme sind Teil von UML und werden zur Modellierung von Interaktionen zwischen Akteuren und Systemobjekten eingesetzt.
    •  
    • Ein Sequenzdiagramm zeigt die Sequenz von Interaktionen, die während eines Use Cases oder einer Use Case Instanz auftreten.
    •  
    • Involvierte Objekte und Akteure werden dabei oberhalb des Diagramms gelistet (inkleiner vertikalen gepunkteten Linie).
    •  
    • Interaktionen zwischen den Objekten werden mit annotierten Pfeilen eingezeichnet.
    Systemmodellierung

    Sequenzdiagramme

    (cc) All material provided on the SE9 website by Ian Sommerville - http://www.softwareengineering-9.com/
    Systemmodellierung

    Sequenzdiagramm für „View patient Information“

    (cc) All material provided on the SE9 website by Ian Sommerville - http://www.softwareengineering-9.com/
    5.6 ViewInfoSeqDiag.eps
    Systemmodellierung

    Sequenzdiagramm für „Transfer Data“

    (cc) All material provided on the SE9 website by Ian Sommerville - http://www.softwareengineering-9.com/
    5.7 TransferData.eps
    • Kontextmodelle
    • Kontextdiagramm (mit prozessorientierter Sicht)
    • Interaktionsmodelle
    • Use-Case-Diagramm
    • Aktivitätsdiagramm (datenorientierte Modellierung)
    • Datenflussdiagramm
    • Sequenzdiagramm
    • Strukturmodelle
    • Klassendiagramm (Generalisierung vs. Konkretisierung, Aggregationen)
    • (Paketdiagramm)
    • Verhaltensmodelle
    • Statusautomat
    Systemmodellierung

    Vorstellung weiterer graphischer Modelle

    (cc) All material provided on the SE9 website by Ian Sommerville –
    http://www.softwareengineering-9.com/
    • Strukturmodelle für Software beschreiben die Organisation eines Systems unter Verwendung von Komponentenbeschreibungen und deren Relationenaus welchen das System besteht.
    • Statische Strukturmodelle zeigen die Struktur des Systemdesigns.
    • Dynamische Strukturmodelle zeigen die Organisation des Systems während der Ausführung (in UML nicht bis schwer abbildbar).
    Systemmodellierung

    Strukturmodelle

    (cc) All material provided on the SE9 website by Ian Sommerville - http://www.softwareengineering-9.com/
    5.9 MHCPMS-classes.eps
    5.12 GeneralisationDetail.eps
    • Strukturmodelle werden erzeugtwenn die Struktur diskutiert oder die Systemarchitektur designed wird.
    • Ein mögliches Strukturmodell ist das Klassendiagramm:
    • Bei Objektorientierten Systemmodellen
    • Klassen des Systems (Funktionen, Attribute, Datentypen)
    • Generalisierung/Konkretisierung
    • Relationen/AssoziationenAggregation/Komposition des Systems inklKardinalitäten
    Systemmodellierung

    Strukturmodelle

    (cc) All material provided on the SE9 website by Ian Sommerville - http://www.softwareengineering-9.com/
    5.9 MHCPMS-classes.eps
    5.12 GeneralisationDetail.eps
    • Kontextmodelle
    • Kontextdiagramm (mit prozessorientierter Sicht)
    • Interaktionsmodelle
    • Use-Case-Diagramm
    • Aktivitätsdiagramm (datenorientierte Modellierung)
    • Datenflussdiagramm
    • Sequenzdiagramm
    • Strukturmodelle
    • Klassendiagramm (Generalisierung vs. Konkretisierung, Aggregationen)
    • (Paketdiagramm)
    • Verhaltensmodelle
    • Statusautomat
    Systemmodellierung

    Vorstellung weiterer graphischer Modelle

    (cc) All material provided on the SE9 website by Ian Sommerville –
    http://www.softwareengineering-9.com/
    • Verhaltensmodelle werden verwendet, um dynamische Verhaltensweisen von Systemen während der Ausführung zu modellieren
    •  
    • Diese zeigen was passiert bzwwas passieren solltewenn ein System dem Stimulus antwortet
    •  
    • Diese Stimuli können sein:
    • Datenankommende Daten, die vom System zu verarbeiten sind,
    • EventsEreignisse, die Systemverarbeitungsprozesse anstoßenEvents können mit Daten assoziiert sein.
    - 
    Systemmodellierung

    Verhaltensmodelle

    (cc) All material provided on the SE9 website
    by Ian Sommerville - http://www.softwareengineering-9.com/
    • Datengetriebene Modellierung
    • Aktivitätsdiagramm
     

    Verhaltensmodelle

    Systemmodellierung
    5.14 PumpDFD.eps
    • Eventgetriebene Modellierung
    • Statusautomat
     

    Verhaltensmodelle

    Systemmodellierung
    5.16 MWOvenStateDiag.eps
    • Modellgetriebene Entwicklung (Model-driven engineering, MDEist ein Ansatz zur Softwareentwicklungbei dem Modelle statt Programme die wesentlichen Ausgaben des Entwicklungsprozesses sind.
    •  
    • Die Programme, die auf einer Hardware/Software-Plattform ausgeführt werdenwerden automatisch aus diesen Modellen erzeugt.
    •  
    • Anhänger von MDE argumentierendaß dies die Abstraktionsebene im Softwareengineering anhebt, so dass Entwickler sich nicht länger mit Details von Programmiersprachen oder den Spezifika von Ausführungs-plattformen beschäftigen müssen.
    Systemmodellierung

    Model-driven engineering

    (cc) All material provided on the SE9 website by Ian Sommerville - http://www.softwareengineering-9.com/
    • MDE ist in einer frühen Phase und noch nicht großartig evaluiertob es in der Praxis einen signifikanten Einfluss haben wird.
     
  • Pro: 
    • Automatische Quellcodeerzeugung
    • Geringerer Aufwand Systeme an neue Plattformen zu adaptieren.
     
     
  • Cons
    • Aus nicht allen abstrakten Modelle lässt sich Programmcode ableiten
    • Ersparnisse des geringeren Aufwandes bei der Erstellung von Programmcodekann durch die Kosten für die Entwicklung von Translatoren ausgeglichen oder gar überstiegen werden.
     
     
    Systemmodellierung

    Model-driven engineering

    • Modellgetriebene Architektur (Model-driven architecture, MDA) ist ein modelzentrierter Ansatz zu Softwareentwurf und Implementierung.
    •  
    • Setzt zur Beschreibung eines Systems eine Teilmenge der UML-Modelle ein.
    •  
    • Modelle werden auf verschiedenen Abstraktionsebenen erzeugt
    •  
    • Von einem plattformunabhängigen Modell der höchsten Ebene ist es im Prinzip möglichein lauffähiges Programm ohne manuellen Eingriff zu generieren.
    Systemmodellierung

    Model driven architecture

    (cc) All material provided on the SE9 website by Ian Sommerville - http://www.softwareengineering-9.com/
    • Rechenunabhängiges Modell (Computation independent model, CIM)
    • Modelliert die wichtigsten Abstraktionen des Anwendungsbereiches, die im System benutzt werden (Domänenmodell oder Geschäftsmodell)
     
  • Plattformunabhängiges Modell (platform independent model, PIM
    • Modelliert die Ausführung des Systems ohne Bezug auf seine Implementierung.
    • PIM wird in der Regel mit UML-Modellen beschrieben, die die statische Systemstruktur und Reaktionen auf interne und externe Events zeigen
     
  • Plattformspezifische Modelle (Platform specific models (PSM)
    • Diese sind Transformationen des PIM.
    • Für jede Anwendungsplattform gibt es ein separates PSM.
    • Im Prinzip können auch Ebenen innerhalb eines PSMs existieren, die die plattformspezifischen Details abbilden.
    Systemmodellierung

    Modelltypen

    (cc) All material provided on the SE9 website by Ian Sommerville - http://www.softwareengineering-9.com/
    Systemmodellierung

    MDA-Transformationen

    (cc) All material provided on the SE9 website by Ian Sommerville - http://www.softwareengineering-9.com/
    5.19 MDA-Transformations.eps
    Systemmodellierung

    Multiple platform-specific models

    (cc) All material provided on the SE9 website by Ian Sommerville - http://www.softwareengineering-9.com/
    5.20 Multiple PSMs.eps
    • Die grundlegende Idee hinter modellgetriebener Entwicklung ist die vollständig ausführbare Transformation vom Modell zu Programm-Code 
    •  
    • Hierzu sind Modelle mit wohldefinierter Semantik sowie Informationen notwendigwie die im Modell definierten Operationen implementiert sind.
    •  
    • Dies wird möglich durch eine Teilmenge von UML 2, oder auch Executable UML or xUML
    • Wichtigz.BDomänenmodelleKlassendiagramme und Zustandsdiagramme
     
  • Das dynamische Verhalten des Systems kann bspwdeklarativ mit der Object Constraint Language festgelegt oder mittels der action language von UML ausgedrückt werden
  •  
    Systemmodellierung

    Executable UML

    (cc) All material provided on the SE9 website by Ian Sommerville - http://www.softwareengineering-9.com/
    • Ein Modell ist eine abstrakte Sicht auf ein System, das einige Einzelheiten ignoriertEs können ergänzende Systemmodelle entwickelt werden, die KontextInteraktionenStruktur und Verhalten des Systems zeigen.
    •  
    • Kontextmodelle zeigenwie ein modelliertes System in einer Umgebung mit anderen Systemen und Prozessen positioniert istSie helfen dabei, die Grenzen des zu entwickelnden Systems zu definieren.
    •  
    • Anwendungsfall- (Use-Case-) und Sequenzdiagramme werden eingesetzt, um die Interaktionen zwischen dem Zielsystem und den Nutzern bzwanderen Systemen darzustellenAnwendungsfälle beschreiben Interaktionen zwischen System und externem AkteurSequenzdiagramme fügen diesen mehr Informationen hinzuindem sie Interaktionen zwischen Systemobjekten zeigen.
    •  
    • Strukturelle Modelle zeigen die Organisation und Architektur eines Systems. Klassendiagramme werden benutzt, um die statische Struktur von Klassen in einem System und deren Assoziationen zu definieren.
    Systemmodellierung

    Zusammenfassung

    (cc) All material provided on the SE9 website by Ian Sommerville - http://www.softwareengineering-9.com/
    • Verhaltensmodelle werden benutzt, um das dynamische Verhalten eines ausführbaren Systems zu beschreiben. Dies kann aus der Perspektive der Daten geschehen, die vom System verarbeitet werdenoder aus der Sicht der Ereignisse, die Reaktionen auslösen.
    •  
    • Aktivitätsdiagramme können zur Modellierung der Datenverarbeitung verwendet werdenwobei jede Aktivität einen Verarbeitungsschritt darstellt.
    •  
    • Zustandsdiagramme werden eingesetzt, um das Verhalten des Systems als Reaktion auf interne und externe Ereignisse zu modellieren.
    •  
    • Modellgetriebene Entwicklung ist ein Ansatz zur Softwareentwicklungbei dem ein System als eine Menge von Modellen präsentiert wirdwelche automatisch in ausführbaren Code umgewandelt werden können.
    Systemmodellierung

    Zusammenfassung 2

    (cc) All material provided on the SE9 website by Ian Sommerville - http://www.softwareengineering-9.com/

     

    Roland Meuel: Agile SE in der Praxis
    Nächster Termin: 24.11.2017, 9:15 Uhr – 10:45 Uhr
     
    Ausfall
    17.11.2017
    Übung Systemmodelle: Kurt Junghanns
    10.11.2017 : 13:15 – 14:45 HS1