Prof. Dr. Holger Schlingloff

Slides:



Advertisements
Ähnliche Präsentationen
Eingebettete Systeme Qualität und Produktivität
Advertisements

Modellbasierte Software-Entwicklung eingebetteter Systeme
Eingebettete Systeme Qualität und Produktivität
Prof. Dr. Holger Schlingloff
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
Prof. Dr. Holger Schlingloff
Eingebettete Systeme Qualität und Produktivität
On the Criteria to Be Used in Decomposing Systems into Modules
Eingebettete Systeme Qualität und Produktivität
Objektorientierte Konzepte und Notation in UML
Manfred Thaller, Universität zu Köln Köln 28. Januar 2008
Manfred Thaller, Universität zu Köln Köln 7. Januar 2010
Untersuchung und szenariobasierte Entwicklung von Websites zur Orientierung in Universitätsstudiengängen unter Berücksichtigung von Prinzipien des Web.
Anwendungsfalldiagramm
Anwendungsfalldiagramm
Anwendungsfalldiagramm
Ziel: externe Systemverhalten aus Anwendersicht
Objektorientierte Analyse (OOA) Inhaltsübersicht
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
Prof. Dr. Holger Schlingloff
Eingebettete Systeme Qualität und Produktivität
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Prof. Dr. Holger Schlingloff
Abhängigkeitsbeziehung
Lösungen
Grundkurs Theoretische Informatik, Folie 2.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 2 Gottfried Vossen Kurt-Ulrich Witt.
Rational Unified Process (RUP) - Definitionen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Experimentaufbau und -design
Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl
OO Analyse und Entwurf für Anwender XIII. Objektorientierte Benutzeroberfäche Dr. Michael Löwe.
OO Analyse und Entwurf für Anwender
UML Begleitdokumentation des Projekts
Vorlesung Gestaltung von soziotechnischen Informationssystemen - RequirementsEngineering und Contextual Design- Thomas Herrmann, Lehrstuhl Informations-
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
3. Vorlesung: UML Use Case Diagramme
5 Methoden und Werkzeuge zur Prozessmodellierung
© Gabriele Sowada © Gabriele Sowada 2 Manuell Beispiel 1 demonstriert die Vorgehensweise bei der manuellen Programm- Eingabe am.
LVA , SS021 Spezifikation E. Denert (1991): Software-Engineering. Springer Verlag Schnittstellen zur Umwelt: - Schnittstellen zu Benutzern.
Delphi II - OOP IFB Fortbildung
Unified Modeling Language Repetition / Einführung zu UML
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Objektorientierte Konzepte/UML Geoinformation I Vorlesung 2 WS 2000/2001.
UML WS 09/10: Datenbanken vs MarkUp Dozent: Prof. Dr. Manfred Thaller
LVA , SS021 Im Mittelpunkt aller Bemühungen steht der Kunde und die Steigerung des Kundennutzens. Deswegen: Wer alles reinlässt kann nicht.
Analyse von Ablaufdiagrammen
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Ganzheitliches Projekt-, Ressourcen- und Qualitätsmanagement 1 Reports und AddOns Auf den folgenden Seiten wird Ihnen die Funktionsweise der Reports und.
UML-Kurzüberblick Peter Brusten.
UML Modellierung des Verhaltens von Klassen und Objekten
PRO:CONTROL Ziel des Moduls Arbeitspakete
Vom Geschäftsprozess zum Quellcode
Agenda Rückblick 2. Aufbau der Software Benutzeroberfläche 4. Ausblick
Das IT - Informationssystem
Analyseprodukte numerischer Modelle
Modellbasierte Software-Entwicklung eingebetteter Systeme
Modellbasierte Software-Entwicklung eingebetteter Systeme
Klassen und Klassenstruktur
Unified Modeling Language UML
Das IT - Informationssystem
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
Name des Vortragenden ‌ Klasse ‌‌‌ Ort / tt.mm.jjjj Anwendungsfalldiagramm.
Tutorium Software-Engineering SS14 Florian Manghofer.
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Entwurf Dr. Wolfgang Wörndl
 Präsentation transkript:

Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer Institut für Rechnerarchitektur und Softwaretechnik 4.11.2005

vorläufige Vorlesungsplanung Fr. 21.10. Einleitungsbeispiel Mi. 26.10. Definitionen Fr. 28.10. Realzeit Mi. 2.11. Anforderungsanalyse 1 Fr. 4.11. Anforderungsanalyse 2 Mi. 9.11. Anwendungsfallbeschreibungen Fr. 11.11. Modellierung 1 (Automaten) Mi. 16.11. Modellierung 2 (UML, Simulink) Fr. 18.11. Architekturen für eingebettete Systeme Mi. 23.11. Steuerung und Ablaufplanung, SPS Fr. 25.11. ----- ENTFÄLLT Mi. 30.11. Echtzeitbetriebssysteme und Middleware Fr. 2.12. ----- ENTFÄLLT Mi. 7.12. Fehlertoleranz und Ausfallsicherheit Fr. 9.12. Hardware/Software Co-Design Mi. 14.12. Automotive Software Engineering 1 Fr. 16.12. Automotive Software Engineering 2 Mi. 21.12. Produktlinienentwicklung 4.11.2005

Übersicht 0. Einleitungsbeispiel (Mars Polar Lander) 1. Eingebettete Systeme 1.1. Definitionen (eingebettetes System, Realzeit, Prozess, Steuerung, …) 1.2. Anforderungsanalyse allgemeine Vorgehensweise Beispiel Türsteuergerät systematische Ansätze; Def. Modus, Kondition, Historie Anwendungsfallbeschreibungen 4.11.2005

Anwendungsfallbeschreibungen Anwendungsfalldiagramme („Use Cases“) UML Notation zur Beschreibung von Systemverhalten spezifiziert (Namen von) Akteure und Aktionen im System sowie deren Aufrufbeziehung Ablauf der Aktionen wird schablonenartig anhand konkreter Szenarien beschrieben (textuell oder mit Sequenz- oder Aktivitätsdiagrammen) Funktionale Zerlegung des zu entwickelnden Systems in Aktionen („Anwendungsfälle) und in Akteure Anwendungsfälle repräsentieren die Anforderungen der Kunden Akteure interagieren mit dem System im Kontext der Anwendungsfälle © Material für diese Vorlesungsstunde: Lit.: Hitz, Kappel, Kapsammer, Retschitzegger:UML@Work http://www.big.tuwien.ac.at/teaching/offer/ws05/mtm_vo/umlKap4_1-37_Anwendungsfalldiagramm.pdf 4.11.2005

Beispiel aus TSG 4.11.2005

Akteure Akteure interagieren mit dem System indem sie das System benutzen, d.h. die Ausführung von Anwendungsfällen initiieren (aktiv) indem sie vom System benutzt werden, d.h. Funktionalität zur Realisierung von Anwendungsfällen zur Verfügung stellen (passiv) Akteur wird durch Assoziationen mit Anwendungsfällen verbunden – »kommuniziert« dadurch mit dem System die Assoziation ist binär und kann Multiplizitäten aufweisen Akteure repräsentieren Rollen konkrete Benutzer können gleichzeitig mehrere Rollen annehmen menschliche und automatische Akteure (z.B. Mail-System, andere Steuergeräte) Ein Akteur ist ein Classifier, verfügt über Klasseneigenschaften 4.11.2005

Aktionen Anwendungsfälle (use cases) beschreiben das Verhalten, das von dem zu entwickelnden System erwartet wird Identifizierung z.B. durch Sammeln von Kundenwünschen und Analyse der textuellen Problemstellung Classifier, kann wiederum einem Classifier zugeordnet werden Ablauf der Anwendungsfälle kann textuell als Notiz beschrieben werden 4.11.2005

Beziehungen zwischen Anwendungsfällen (1) «include» Das Verhalten des benutzten Anwendungsfalls (inkludierter Anwendungsfall) wird in den benutzenden Anwendungsfall (Basis-Anwendungsfall) eingebunden Vergleichbar Unterprogramm-Aufruf 4.11.2005

4.11.2005

Beziehungen zwischen Anwendungsfällen (2) «extend» B ist eine Verallgemeinerung von A, und A ist ein Spezialfall von B Das Verhalten von B kann in A inkludiert werden, und B kann von A aktiviert werden (muss aber nicht) 4.11.2005

4.11.2005

mehrfache Erweiterungen bzw. Spezialisierungen möglich Angabe des »Wo« durch Erweiterungsstellen in A Angabe des »Wann« durch Bedingung in A bzw. als Teil der «extend»-Beziehung 4.11.2005

Beziehungen zwischen Anwendungsfällen (3) Generalisierung von Aktionen Vergleichbar mit Generalisierungsbeziehung (Vererbungsrelation) zwischen Klassen B erbt Verhalten von A und kann dieses überschreiben oder ergänzen B erbt alle Beziehungen von A Auch für Akteure möglich 4.11.2005

abstrakte Anwendungsfälle, Pakete 4.11.2005

Identifikation von Akteuren und Aktionen Akteure: Subjekte in den Anforderungen Wer benutzt die wesentlichen Anwendungsfälle? Wer braucht Systemunterstützung für die tägliche Arbeit? Wer ist für die Systemadministration zuständig? Wer oder was interessiert sich für die Ergebnisse des Systems? Mit welchen externen Geräten / (Software-) Systemen muss das System kommunizieren können? Anwendungsfälle: Verben in den Anforderungen Welche Tätigkeiten sollen die Akteure durchführen? Welche Funktionalität soll das System bereit stellen? Welche Schnittstellen benutzen andere Systeme/Geräte? Beziehungen: Bedingungen und Verweise Welche Aktivitäten sind voneinander abhängig? Welche gemeinsamen Teile gibt es? Welche Spezialfälle treten auf? Was ist enthalten? 4.11.2005

Anwendungsfallbeschreibung Als Tabelle / strukturierter Text notiert: Name des Anwendungsfalls Ziel: Kurzbeschreibung der Funktionalität Vorbedingungen: Voraussetzung für erfolgreiche Ausführung Nachbedingungen: Systemzustand nach erfolgreicher Ausführung Fehlersituationen für diesen Problembereich, sowie Systemzustand im Fehlerfall (nach Ablauf) Akteure, die mit dem Anwendungsfall kommunizieren Trigger: Auslösende Ereignisse für den Anwendungsfall Standardablauf: einzelne Schritte / andere Anwendungsfälle Alternativabläufe: Abweichungen vom Standardablauf [nach A. Cockburn: Goals and Use Cases. Journal of Object-Oriented Programming, Sept. 1997] 4.11.2005

Beispiel (1) Name des Anwendungsfalls Kurzbeschreibung „Termin erfassen“ Kurzbeschreibung Ein Termin kann für einen oder mehrere Teilnehmer von dazu berechtigten Benutzern (müssen nicht notwendigerweise auch Teilnehmer sein) erfasst werden. Alle Teilnehmer müssen über diesen neuen Termin verständigt werden. Neue Termine müssen sofort in allen geöffneten, die jeweiligen Teilnehmer betreffenden Kalendern nachgezogen werden. 4.11.2005

Beispiel (2) Vorbedingung: Nachbedingung: Fehlersituationen: Benutzer ist dem System bekannt. Nachbedingung: Neuer Termin ist erfasst. Alle Teilnehmer sind verständigt und gegebenenfalls informiert, dass es aus Berechtigungsgründen nicht möglich war, ihren Terminkalender zu verändern. Alle Sichten sind aktualisiert. Fehlersituationen: Benutzer hat für keinen der Teilnehmer die Berechtigung, den Termin zu erfassen, d.h. im Kalender des Teilnehmers einzutragen. 4.11.2005

Beispiel (3) Systemzustand im Fehlerfall: Akteure: Trigger: Termin konnte nicht erfasst werden. Terminkalender der Teilnehmer und alle Sichten darauf sind im Status quo ante. Akteure: Benutzer (primärer Akteur) E-Mail-System (sekundärer Akteur) Fax-System (sekundärer Akteur) Trigger: keine 4.11.2005

Beispiel (4) Standardablauf: (1) Benutzer identifiziert sich. (2) Daten des neuen Termins (Zeit, Ort, vorauss. Dauer, Teilnehmer, etc.) werden eingegeben. (3) Benutzer ist berechtigt, für alle Teilnehmer den Termin zu erfassen. (4) Termin führt bei keinem Teilnehmer zu Kollisionen und wird erzeugt. (5) Alle Teilnehmer (ausgenommen der Benutzer, wenn dieser auch Teilnehmer ist) werden gemäß ihrer bevorzugten Kommunikationsart verständigt. («include» Teilnehmer verständigen) (6) Alle geöffneten Kalender von Teilnehmern werden aktualisiert («include» Kalender aktualisieren) 4.11.2005

Beispiel (5) Alternativablauf: (3’) Benutzer ist für mindestens einen Teilnehmer nicht berechtigt, den Termin in seinem Kalender zu erfassen. (4’) Analog zu (4) (5’) Analog zu (5), wobei jene Teilnehmer, deren Kalender nicht änderbar waren, zusätzlich davon informiert werden, dass es aus Berechtigungsgründen nicht möglich war, ihren Terminkalender zu verändern. (6’) Alle geöffneten Kalender von jenen Teilnehmern werden aktualisiert, für die eine Berechtigung zur Änderung des Kalenders vorliegt. 4.11.2005

4.11.2005

Pause! 4.11.2005

Pause! 4.11.2005

Weiterverarbeitung von Use Cases C. Denger, D. Kerkow, A. v.Knethen, M. Mora, B. Paech: Von Use Cases zu Statecharts in 7 Schritten. IESE-Report Nr. 086.02/D (Dez. 2002) (LESEN!) M. Friske, H. Schlingloff: Von Use Cases zu Test Cases: Eine systematische Vorgehensweise; In: MBEES - Model Based Engineering of Embedded Systems Dagstuhl (Jan. 2005) 4.11.2005

StateCharts UML-Verhaltenszustandsautomaten (Zustandsdiagramme) 4.11.2005

Von UseCases zu StateCharts in 7 Schritten 0. Vorbereitung: Identifikation der relevanten Elemente (Variablen etc.) aus dem Lastenheft Tabelle monitorierter und kontrollierter Größen mit Wertebereichen und Anfangswerten Liste der Akteure und UCs Gruppierung der UC in Klassen sowie Identifikation von UC-Beziehungen Abstraktion von Variablen und UCs 4.11.2005

Schritt 1: Festlegung Package-Struktur für jeden Funktionsblock des Systemlastenhefts ein Package die Package-Struktur des Systems verdeutlicht die vom System realisierten Funktionsblöcke im Beispiel Sitzsteuerung, Fenstersteuerung, Außenspiegeleinstellung, Türschloss, Innenraumbeleuchtung 4.11.2005

Schritt 2: Erstellung des Klassendiagramms eine Umgebungsklasse ein Klassendiagramm pro Funktionsblock 1.) eine Inputklasse vom Typ „Aktor_Name_Input“ für jeden Aktor 2.) je eine Klasse für jede monitorierte Größe der UCs eines Funktionsblocks, die nicht einem Aktor der Umgebung zugeordnet sind 3.) ebenso für alle kontrollierten Größen der UCs eines Funktionsblocks 4.) eine Klasse für jeden in 3.1.1 identifizierten UCs des Funktionsblocks 5.) eine Timer-Klasse Im Beispiel: theUC_Stelle_Eigene_Ein:UC_Stelle_Eigene_Ein the_UC_Stelle_Andere_Ein:UC_Stelle_Andere_Ein theUC_Total:UC_Stelle_Total_Ein theM_Font_Input:M_Font_Insassen_Input theM_Fensterposition_Ist:M_Fenster_Position_Ist theC_Fenster_Position:C_Fenster_Position_Soll … 4.11.2005

Assoziationen zwischen den verschiedenen Klassen Eine Klasse einer monitorierten Größe hat immer eine bidirektionale Assoziation zu den UC Klassen, die diese Größe als Eingang benötigen. Eine UC Klasse hat immer eine gerichtete Assoziation zu den Klassen der von diesem UC kontrollierten Größen Eine UC Klasse hat eine bidirektionale Assoziation zu einer anderen UC Klasse, wenn sich die beiden UCs, die durch die Klassen repräsentiert werden, gegenseitig unterbrechen. Eine UC Klasse hat eine gerichtete Assoziation zu den Klassen der von diesem UC unterbrochenen UCs. Eine UC Klasse hat eine bidirektionale Assoziation zu einer anderen UC Klasse, wenn zwischen den entsprechenden UCs eine „Includes“-Beziehung besteht. Eine UC Klasse hat eine Vererbungsbeziehung zu einer anderen UC Klasse, wenn zwischen den entsprechenden UCs eine „Extends“- Beziehung besteht. 4.11.2005

4.11.2005

Schritt 3: Modellierung interner Größen mögliche Werte der internen Größen als Attribute der Klassen, die diese Größen repräsentieren z.B. diskrete Variable „a_Speicher_Position“, für kontinuierliche Größe „Gespeicherte Sitzposition“ Vgl. Modell der vier Variablen 4.11.2005

Schritt 4: SC der monitorierten Größen ein SC für jede Klasse monitorierter Größen aus dem Klassendiagramm jeder mögliche Wert der monitorierten Größe als State Transitionen als Zustandsübergänge zwischen den States ausgelöst durch Umgebungsaktivitäten 4.11.2005

Schritt 5: SC der kontrollierten Größen analog zur Modellierung der monitorierten Größen Unterschied: Ableitung der Events aus Aktivitäten, deren Subjekt das modellierte System selbst ist (Aktor nicht aus der Umgebung des modellierten Systems, sondern das System oder ein Teilsystem) 4.11.2005

Schritt 6: Use Case Statecharts Erstellung der SCs für die UC-Klassen ein SC für jede Klasse aus dem Klassendiagramm, die einen UC repräsentiert Modellierung der Ausnahmefälle der UC Ausnahmefälle, die zu anderen Use Cases führen Ausnahmefälle, die die Durchführung eines UC (-Schrittes) verhindern Ausnahmefälle, die zum Abbruch der Systemreaktion führen 4.11.2005

Schritt 7: Verfeinern der Systemreaktion Parallelität zur visuellen Erkennung von Reaktionen 4.11.2005

Ergebnis 4.11.2005