Softwaretechnik SS 2006



Ähnliche Dokumente
Softwaretechnik SS 2006

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

4. BEZIEHUNGEN ZWISCHEN TABELLEN

Umzug der abfallwirtschaftlichen Nummern /Kündigung

Hilfestellung: P.A.P.A. die kaufmännische Softwarelösung. Teilrechnung mit einzelnen Rechnungen. Inhalt

Lehrer: Einschreibemethoden

1 Mathematische Grundlagen

SMS-Dienst SMS-Dienst procar informatik AG Stand: FS 04/2011 Eschenweg Weiterstadt 1

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Human-Computer-Interaction und Psychologie Aufgaben- und Kontextanalyse

Transaktionsempfehlungen im ebase Online nutzen

Widerrufsbelehrung der Free-Linked GmbH. Stand: Juni 2014

Statuten in leichter Sprache

Use Cases. Die Sicht des Nutzers. Fortgeschrittenenpraktikum SS 2004

Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich

Arbeiten mit UMLed und Delphi

Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen

Um die Patientenverwaltung von Sesam zu nutzen, muss man die Patienten natürlich zuerst in die Kartei eintragen.

Parkraumverwaltung. Im Hauptmenü anklicken: Fuhrparkmanagement. Copyright by rw data 2012 Bedienungsanleitung Parkraumverwaltung Seite 1 von 13

Übungen zur Softwaretechnik

Einführung in. Logische Schaltungen

Stand: Adressnummern ändern Modulbeschreibung

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Angaben zu einem Kontakt...1 So können Sie einen Kontakt erfassen...4 Was Sie mit einem Kontakt tun können...7

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

Erstellen von x-y-diagrammen in OpenOffice.calc

inviu routes Installation und Erstellung einer ENAiKOON id

Animationen erstellen

Anleitung über den Umgang mit Schildern

Erstellen und Bearbeiten von Inhalten (Assets)

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

GS-Buchhalter/GS-Office 2015 Saldovorträge in folgenden Wirtschaftsjahren erfassen

7DVWH.HOOQHU. Kassensystem SANYO (X&D6RIWKapitel 42

SEQUENZDIAGRAMM. Christoph Süsens

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Schnellanleitung: Verbuchung von Studien- und Prüfungsleistungen

Lokales Netzwerk Wie kann ich lokal installierte Drucker im Netzwerk für andere Nutzer freigeben? Frage:

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003

Anmelden und Vorträge einreichen auf der JBFOne-Website Inhalt

Objektorientierte Konzepte und Notation in UML. Objekt Klasse Attribut Operation

Enigmail Konfiguration

Veröffentlichen von Apps, Arbeitsblättern und Storys. Qlik Sense Copyright QlikTech International AB. Alle Rechte vorbehalten.

Anforderungsanalyse: Tutor

INNER WHEEL DEUTSCHLAND

104 WebUntis -Dokumentation

Hilfedatei der Oden$-Börse Stand Juni 2014

Die besten Excel-Tastenkombinationen im Überblick

User Manual Data 24. Login und Layout

Datenaufbereitung in SPSS. Daten zusammenfügen

1.5 Umsatzsteuervoranmeldung

FAQ Freunde-werben auf osnatel.de

Feiertage in Marvin hinterlegen

Formica 2.0: Montageauftrag erfassen: Auftragsgruppe

4. AuD Tafelübung T-C3

Wenn man nach Beendigung der WINDOWS-SICHERUNG folgendes angezeigt bekommt

Ihr Ideen- & Projektmanagement-Tool

Kurzanleitung für Verkäufer

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Anwendungshinweise zur Anwendung der Soziometrie

Anleitung SEPA-Lastschriften mit VR-NetWorld Software 5

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

Software-Engineering 2. Übungen zur Wiederholung. IT works. Metris GmbH

Angebot. UVV-Prüfungen und Wartungen von mobilen Abfallpressen

Checkliste. zur Gesprächsvorbereitung Mitarbeitergespräch. Aktivität / Frage Handlungsbedarf erledigt

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Datenexport aus JS - Software

Vorbedingung: Office 365 wurde früher oder gleich erfolgreich für den Kunden bestellt.

Grundlagen verteilter Systeme

Einrichtung eines -konto mit Thunderbird

Massenversand Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

REFLEX Zeiterfassung

Änderungen im Vertrags-Manager

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

mobifleet Beschreibung 1. Terminverwaltung in der Zentrale

Aufklappelemente anlegen

Primzahlen und RSA-Verschlüsselung

Terminland Schritt für Schritt

Workflows verwalten. Tipps & Tricks

Wir machen neue Politik für Baden-Württemberg

Formeln. Signatur. aussagenlogische Formeln: Aussagenlogische Signatur

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Angebot. UVV-Prüfungen und Wartungen von mobilen Abfallpressen

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Schritt 1. Anmelden. Klicken Sie auf die Schaltfläche Anmelden

Geld Verdienen im Internet leicht gemacht

Benutzerhandbuch - Elterliche Kontrolle

WinVetpro im Betriebsmodus Laptop

1. TEIL (3 5 Fragen) Freizeit, Unterhaltung 2,5 Min.

Professionelle Seminare im Bereich MS-Office

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Die richtigen Partner finden, Ressourcen finden und zusammenführen

myfactory.go! - Verkauf

Was ist das Budget für Arbeit?

Daten sammeln, darstellen, auswerten

AMS Leitbild. April Willkommen in der mobile family...

Raiffeisen-Volksbank Wemding eg

Transkript:

Softwaretechnik SS 2006 Basisveranstaltung im Studiengebiet SSG (Softwaretechnik und Systemgestaltung) Siehst Du ein Gesicht, oder einen Eskimo von hinten? Softwaretechnik SS 2006 1 Stefan Jähnichen Steffen Helke Marco Mosconi Softwaretechnik SS 2006 2 Was machen wir heute? Systemklassenmodell Operationsmodell Struktur von Operationsschemata Umsetzung von Timeline-Diagrammen in Operationsschemata Umsetzung komplexer Szenarien Exkurs: Prädikatnotation in Z Analyse: Systemklassenmodell Anforderungsdefinition Festlegen der Systemgrenzen: Analyse Basis: Klassenmodell Schnittstellenmodell Akteure: außerhalb Ziele von Systemoperationen: innerhalb Use-Case- Klassenmodell Lifecycle- Systemklassenmodell Operationsmodell Timeline- Diagramme Data Dictionary Softwaretechnik SS 2006 Softwaretechnik SS 2006

Systemklassenmodell Use-Case-: - Leitet sich aus Klassenmodell ab: Einige Klassen sind offensichtlich Daten im System Für andere kann sich die Klasseninterpretation von reales Objekt zu Datensatz ändern. Klassen an der Systemgrenze werden evtl. in interne und externe zerlegt. Unterscheidung zwischen Klassen im System und außerhalb des Systems leitet sich aus den anderen Schnittstellenmodellen ab (Use Cases, Szenarien). Systemoperationen haben nur innerhalb des Systems Effekte Systemereignisse haben keine Effekte im System. Rechnungserstellung sannahme sbearbeitung extension point: Material fehlt «extend» Anbieter Materialbeschaffung Softwaretechnik SS 2006 5 Softwaretechnik SS 2006 6 Systemgrenze Führt_material_für Führt_material_für Material Wird_bestellt_bei Anbieter Material Wird_bestellt_bei Anbieter Bestellt Nimmt_auf Erstellt Basiert_auf Rechnung Kommuniziert_mit Kunde Braucht Ist_halter_von Neuinterpretation Bearbeitet Ist_zu geordnet Repariert Besitzt Kunde Erfasst Hat_kundendaten Kommuniziert_mit Bestellt Nimmt_auf Erstellt Basiert_auf Rechnung Braucht Kundendaten Ist_halter_von Verdopplung real daten Bearbeitet Ist_zu geordnet Führt_material_für Besitzt Softwaretechnik Sekretärin SS 2006 Chefmechaniker 7 Softwaretechnik SekretärinSS 2006 Chefmechaniker 8

Anbieter Hat_anbieterdaten Anbieter Hat_anbieterdaten Material Wird_bestellt_bei Anbieterdaten Material Wird_bestellt_bei Anbieterdaten Bestellt Braucht Bestellt Braucht Kunde Erfasst Nimmt_auf Erstellt Basiert_auf Rechnung Führt_material_für Kunde Erfasst Nimmt_auf Erstellt Basiert_auf Rechnung Führt_material_für Hat_kundendaten Kundendaten Ist_zu geordnet Hat_kundendaten Kundendaten Ist_zu geordnet Kommuniziert_mit Ist_halter_von Besitzt Kommuniziert_mit Ist_halter_von Besitzt Softwaretechnik SekretärinSS 2006 Chefmechaniker 9 Softwaretechnik SekretärinSS 2006 Chefmechaniker 10 Anbieterdaten adresse : ADRESSE Kundendaten kdat : KDATEN kundenid : KUNDENID schäden : TEXT anid : ANID zusatzschäden : TEXT status : STATUS std : NAT Material matid : MATID preis : NAT aid : AID ist_beendet : BOOL ist_probefahrt _erfolgreich : BOOL hat_zusatzschäden : BOOL mid : MODID mdat : MDAT Typen: ADRESSE - Internetadresse ANID - Identifier der STATUS - bereit_zur_bearbeitung in_bearbeitung beendet AID - Identifier des s KENNZEICHEN - -Kennzeichen KDATEN - Kundendaten MATID - Identifier des Materials stdsatz : NAT Rechnung betrag : NAT kennzeichen : KENNZEICHEN kfzid : ID stdsatz : NAT MID - Identifier des s MDAT - daten NAT - natürliche Zahl BOOL - boolscher Wert ID - Identifier des KUNDENID - Identifier des Kunden TEXT - Text Softwaretechnik SS 2006 11 Analyse: Operationsmodell Anforderungsdefinition Analyse Spezifikation Schnittstellenmodell von Systemoperationen Use-Case- Klassenmodell Lifecycle- Systemklassenmodell Operationsmodell Timeline- Diagramme Softwaretechnik SS 2006 12 Data Dictionary

Operationsmodell Ein Operationsschema als Spezifikation für jede Systemoperation: informelle Beschreibung der Operation Ein- / Ausgabe, Kommunikation mit der Umwelt Zugriff auf (systeminterne) Objekte Annahmen über den Zustand des Systems vor Ausführung der Operation Zustandsänderung (Effekt), die durch die Operation bewirkt wird alle Operationsschemata zusammen bilden das Operationsmodell UML: Teile eines Schemas als tagged values Operationsschema Ein Operationsschema besteht aus 8 Teilen: Operation = Name der Operation Description = informelle Beschreibung Input = Eingabeparameter Reads = (nur) gelesene Objekte / Attribute Changes = (möglicherweise) geänderte Objekte / Attribute Sends = erzeugte Ausgabeereignisse Pre = Annahmen an den Vorzustand Post = Beziehung zwischen Vor- und Nachzustand Softwaretechnik SS 2006 1 Softwaretechnik SS 2006 1 Aufstellen eines Operationsschemas (1) Ausgangspunkt 1: Timeline-Diagramme zum System hinführende Pfeile sind Aufrufe von Systemoperationen jeder Aufruf einer Systemoperation in einem Timeline-Diagramm beschreibt einen Fall für die Spezifikation dieser Operation nachfolgende Ausgabeereignisse und ihre Zielakteure werden im sends-teil gesammelt Softwaretechnik SS 2006 15 Op.-schema: nächste_anweisung_holen : nächste_anweisung_holen anweisung_gedruckt nächste_anweisung_holen keine_anweisung_vorhanden Operation = nächste_anweisung_holen Sends = : {anweisung_gedruckt, keine_anweisung_vorhanden} :System Softwaretechnik SS 2006 16

Aufstellen eines Operationsschemas (2) Ausgangspunkt 2: Systemklassenmodell Zugriff der Operation auf systeminterne Objekte wird in Reads- und Changes-Teilen spezifiziert die Objektlisten in Reads- und Changes-Teilen sind disjunkt Objekte aus dem Reads-Teil dürfen nur gelesen werden Objekte aus dem Changes-Teil dürfen sowohl gelesen als auch verändert werden der Input-Teil benennt die Eingabeparameter einer Systemoperation Softwaretechnik SS 2006 17 : :System anweisung_generieren(aid,schäden) anweisung_erstellt Op. = anweisung_generieren Desc. = Nach der Erstellung eines s wird eine Reparaturanweisung generiert. Dieses kann auch nach Rücksprache mit dem Kunden erfolgen, falls ein zusätzliche Schäden festgestellt hat. Softwaretechnik SS 2006 18 schäden:text anid:anid zusatzschäden: TEXT status:status std:nat Nimmt_auf Eingabeparameter schäden:text anid:anid zusatzschäden: TEXT status:status std:nat Nimmt_auf aid:aid ist_beendet:bool ist_probefahrt _erfolgreich: BOOL hat_zusatzschäden :BOOL Input = aid : AID, schäden : TEXT Reads = auftr : with auftr.aid = aid : Auswahlbedingung werkstatt : Nimmt_auf Softwaretechnik SS 2006 19 aid:aid ist_beendet:bool ist_probefahrt _erfolgreich: BOOL hat_zusatzschäden : BOOL Changes = anw : type Deklaration eines zu erstellenden Objekts Softwaretechnik SS 2006 20

Verschiedene Notationen und ihre Bedeutung : : unbenanntes Objekt auftr: with auftr.id = aid : benanntes Objekt mit besonderer Eigenschaft Nimmt_auf : Assoziation hier die Menge aller z. Z. existierenden Links : Der Name einer Klasse allein bedeutet die Menge aller z. Z. existierenden Objekt der Klasse type : ist tatsächlich die Klasse (zur Deklaration neuer Objekte) Aufstellen eines Operationsschemas () Vorbedingung (Pre-Teil) eine Aussage über die Eingabeparameter und die Zustände der Objekte aus Reads- und Changes-Teil vor Ausführung der Operation keine Aussage über dem Operationsaufruf vorhergegangene Aktivitäten! Nachbedingung (Post-Teil) eine Beziehung zwischen Eingabeparametern und Zuständen der Objekte vor Ausführung der Operation und den Zuständen der Objekte nach Ausführung der Operation kein Programm : nur der Effekt wird spezifiziert, aber nicht, wie er erreicht wird! Softwaretechnik SS 2006 21 Softwaretechnik SS 2006 22 Op. Reads = anweisung_generieren. = auftr : with auftr.aid = aid : implizite Vorbedingung: werkstatt : auftr : auftr.aid Nimmt_auf = aid Changes = anw : type Assoziation als Relation Wert nachher Post = = {(anw, auftr)}... Softwaretechnik SS 2006 2 Pre = true keine Annahmen Changes = anw : type lokale Definition Post = let anw_ids == {a : a.anid} anid:anid (anw new anw.anid = anid anid > max (anw_ids) anw.schäden = schäden Abkürzung für: = {anw} anw.status = bereit_zur_bearbeitung is_sent {anweisung_erstellt} Ereignisausgabe Softwaretechnik SS 2006 2

schäden:text anid:anid zusatzschäden: TEXT status:status std:nat aid:aid ist_beendet:bool ist_probefahrt _erfolgreich:bool hat_zusatzschäden :BOOL Nimmt_auf Post = let anw_ids == {a : a.anid}. anw.status = bereit_zur_bearbeitung is_sent {anweisung_erstellt} Softwaretechnik SS 2006 25 Das Operationsmodell bestimmt die im Systemklassenmodell notwendigen Attribute Input = aid : AID, schäden : TEXT Reads = auftr : with auftr.aid = aid, :, werkstatt :, Nimmt_auf Changes = anw : type,,, Sends = :{anweisung_erstellt} Pre =- Post = let anw_ids == {a : a.anid} anw new ( ( anid:anid anid anw_ids anw.anid = anid) anw.schäden = schäden anw.zusatzschäden = " " anw.status = bereit_zur_bearbeitung anw.std = 0 ) = {(anw, auftr)} = {(werkstatt,anw)} is_sent {anweisung_erstellt} Softwaretechnik SS 2006 26 Konventionen Systemoperationen Kleinschrift, Verb Boolsche Attribute Kleinschrift, Frage mit ist oder hat, z.b. ist_beendet Mengen Kleinschrift, Substantive im Plural z.b. registrierte_kunden Schlüsselworte type, new, no_effect Softwaretechnik SS 2006 27 Softwaretechnik SS 2006 28

Exkurs: Prädikatnotation in Z (1) Negation P nicht P Konjunktion P Q P und Q Disjunktion P Q P oder Q Implikation P Q falls P dann Q Äquivalenz P Q P genau dann, wenn Q Exkurs: Prädikatnotation in Z (2) Grundmenge Einschränkung All-Aussage x : M P(x) Q(x) Aussage n : N n > 2 n prim n ungerade Existenz-Aussage x : M P(x) Q(x) n : N n prim n gerade Softwaretechnik SS 2006 29 Softwaretechnik SS 2006 0 Umsetzung komplexer Szenarien (1) : :System auftrag_angelegt fehlende_oder_veraltete_daten kundendaten_eingeben(kundenid,kdaten,kfzid,kennz,modellid) kundendaten_aufgenommen auftrag_angelegt Statischer Kontext für Szenario eingeben Kunde Erfasst Kommuniziert_mit Hat_kundendaten Nimmt_auf Kundendaten Ist_halter_von Ist_zu geordnet Besitzt Softwaretechnik SS 2006 1 Softwaretechnik SS 2006 2

Op. Desc. Op.-schema: auftrag_eingeben (1) Input Reads = auftrag_eingeben = Eingabe eines s durch den. Dabei werden anhand eindeutiger IDs das und der Kunde identifziert und bei Bedarf nach den fehlenden Daten gefragt. Bei einem vorhandenen wird auch geprüft ob es mit dem Kunden verknüpft ist. = kundenid : KUNDENID, kfzid : ID = büro :, Kundendaten,, Ist_halter_von Changes = auftr : type,, Ist_zugeordnet, Nimmt_auf, Sends = :{auftrag_angelegt, fehlende_oder_veraltete_daten} Pre = - Softwaretechnik SS 2006 Op.-schema: auftrag_eingeben (2) Post = let vorhandene_kfz == {k : k.kfzid = kfzid}; vorhandene_kunden == {ku : Kundendaten ku.kundenid = kundenid}; auftr_ids == {a : a.aid} (( ku : vorhandene_kunden k : vorhandene_kfz (ku, k) Ist_halter_von aid : AID (auftr new auftr.aid = aid Fallunterscheidung neues Objekt aid > max(auftr_ids) auftr.ist_beendet auftr.ist_probefahrt_erfolgreich auftr.hat_zusatzschäden = auftr.hat_zusatzschäden Nimmt_auf = Nimmt_auf {(büro, auftr )} = {(ku, auftr )} Ist_zugeordnet = Ist zugeordnet {(auftr, k)} is_sent {auftrag_angelegt}) neuer Link (vorhandene_kunden = vorhandene_kfz = ( ku : vorhandene_kunden k : vorhandene_kfz (ku, k) Ist_halter_von) is_sent {fehlende_oder_veraltete_daten} no_effect)) Softwaretechnik SS 2006 Umsetzung komplexer Szenarien (2) : auftrag_angelegt :System fehlende_oder_veraltete_daten kundendaten_eingeben(kundenid,kdaten,kfzid,kennz,modellid) kundendaten_aufgenommen auftrag_angelegt Softwaretechnik SS 2006 5 Softwaretechnik SS 2006 6

Op.-schema: kundendaten_eingeben (1) Op. Desc. Input = kundendaten_eingeben = Bei einem neuen Kunden werden seine Daten sowie die Daten seines s eingegeben. Die fehlenden Daten werden ergänzt und falls das bereits mit einem anderen Besitzer eingetragen ist, wird die Zugehörigkeit aktualisiert. = kundenid : KUNDENID, kdaten : KDATEN, kfzid : ID, kennz : KENNZEICHEN, modellid : MODID = mod : with mod.mid = modellid, büro : Reads Changes = kfz : type,, Kdat_neu : Kundendaten type, Kundendaten, Besitzt, Ist_halter_von, Erfasst Sends = :{kundendaten_aufgenommen} Pre = - Softwaretechnik SS 2006 7 Op.-schema: kundendaten_eingeben (2) Post = let vorhandene_kunden == {k : Kundendaten k.kundenid = kundenid}; vorhandene_kfz == {kfz : kfz.kfzid = kfzid} ((vorhandene_kfz = kfz new kfz.kennzeichen = kennz kfz.kfzid = kfzid Besitzt = Besitzt {(kfz, mod)}) (vorhandene_kfz kfz : vorhandene_kfz kfzbesitzer_alt : Kundendaten ((kfzbesitzer_alt, kfz) Ist_halter_von) Ist_halter_von = Ist_halter_von \ (kfzbesitzer_alt, kfz ) Besitzt = Besitzt) (vorhandene_kunden = kdat_neu new kdat_neu.kundenid = kundenid kdat_neu.kdat = kdaten Erfasst = Erfasst {(büro, kdat_neu)} Ist_halter_von = Ist_halter_von {(kdat_neu, kfz )} kfz ) (vorhandene_kunden kdat_alt : vorhandene_kunden Ist_halter_von = Ist_halter_von {(kdat_alt, kfz )} Erfasst = Erfasst )) is_sent {kundendaten_aufgenommen} Softwaretechnik SS 2006 8 Konsistenzbedingungen für die Analysemodelle Alle verwendeten Begriffe im Data Dictionary erklärt? Timeline-Diagramme im Lifecycle möglich? Für jede Systemoperation aus Timeline-Diagrammen ein Operationsschema beschrieben? Alle Ausgabeereignisse, die in Timeline-Diagrammen auf Systemoperation folgen, in Sends-Teil und Nachbedingung? Mit denselben Akteuren als Ziele? Alle Fälle aus Szenarien für eine Systemoperation in deren Nachbedingung charakterisiert? Changes-Teil enthält nur Objekte im System? Nachbedingung spezifiziert Änderungen nur für Objekte aus Changes-Teil? Softwaretechnik SS 2006 9 Softwaretechnik SS 2006 0

Heuristiken / Erfahrungswerte Ausfaktorisieren im Klassenmodell: Verhältnis (Objekt / Klasse) Attribut Robuste Operationen keine Vorbedingungen im Operationsmodell Wo werden ierungselemente impliziert: Klasse: Klassenmodell, SKM Attribute: Klassenmodell, SKM, Operationsmodell (z.b. status) Assoziation: Klassenmodell, SKM, Operationsmodell, Objektinteraktionsmodell (Nachrichtenflüsse) Softwaretechnik SS 2006 1