Dynamiska modellen. Objektorienterad modellering programmering OOMPA Föreläsning 6. Innehåll. Tid. Sekvensiering, synkronisering

Relevanta dokument
Objektorienterad modellering programmering OOMPA 2000

Föreläsning 11 Tisdag 6/6 2000

Teoridel (svaren direkt på lydelsen)

UML: Exempel. Ett modelleringsspråk. UML: Ansvar. UML: tre huvudanvändningar. Exempel: En klass position storlek. UML Unified Modelling Language

GX IEC Developer Sekvensstyrning och SFC-editor

Föreläsning 8 2EMHNWRULHQWHUDG5HDOWLGVSURJUDPPHULQJ UML O2P 2000

Objektorientering Användning

HOFFER Walkie-talkie set PMR446/SSP3381 Svenska

Innehållsförteckning

I-Loft VDS. Programmerings & Användarmanual. CityKit Ref (Utanpåliggande) & 5620 (infälld)

TDP005. Föreläsning 3 - UML. Filip Strömbäck

Handhavandeinstruktion

Instruktion Programmeringsapp och gränssnitt

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

+5V. start. Styrsystem. stopp. Tillståndsmaskiner

UML. Tomas Czarnecki Institutionen för Informationsbehandling Åbo Akademi,FIN Åbo, Finland url:

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

Galaxy Integrerad Fire RIO Med Kvitteringsenhet standard

Installationanvisning, apparatlåda för rökfunktion med spjällmotionering TBLZ GOLD/COMPACT

Objektorienterad analys och design

+5V. start. Styrsystem. stopp. Tillståndsmaskiner

ZAP DVR-X3 Art.nr

Bruksanvisning NX-148 Rev.6.0 NX-148. Bruksanvisning Daglig användare. Utgåva ver Microsec AB förbehåller sig rätten till ändringar

Handhavandebeskrivning för ROC Communication Panel

Installationsmanual. Installera systemet: För att installera systemet korrekt så krävs följande: Steg 1.1- Förbered systemet.

PlantWatch. Temperatur och datalogger. Kortfattad installationsanvisning

Produkten Ni köpt håller högsta kvalitet och använder sig av trådlösa signaler för att skicka bild i färg samt stereoljud.

ATU. Användarmanual. Larmöverföringsenhet Firmware Version

Snabbguide Konftel 300 SVENSK

Skapa mapp. * Gör så här: Det finns många sätt att skapa mappar, men det enklaste sättet brukar vara följande.

Innehåll 1. Om ScandLarm Air Ladda ner App Starta kontrollpanel Konfigurera App till kontrollpanelen

NYHETER I AUTOCAD LT 2006

Manual. Anvisningar för användning. Snom 320 växel

Handhavandebeskrivning

one-x TM Deskphone Edition 9630 IP telefon 9630 Användarguide Användarguide Lunds universitet Avaya one-x Deskphone Edition

Snabbguide Konftel 250

Objektorientering. Grunderna i OO

Macromedia. Flash 8 Grundkurs.

Extentamen i 2D1359 Objektorinterad modellering programmering och analys Tisdag den 13 oktober 1998 kl

Styrteknik: SFC Introduktion

Bruksanvisning. Larmsystem: Sector Alarm TC

Lathund för snabbspar

KAP 18 SQL SERVER AGENT

UML 1(5) Introduktion till Unified Modeling Language. 1 Bakgrund och historik

Gran Canaria - Arbetsbeskrivning knapplänkar (Mediator 8)

SA031 SmartDialer. Bruksanvisning

Bruksanvisning. 3.5mm. 2 W RMS Mono eller 2x1W Stereohögtalare out

Larmanordning för motorcykel BRUKSANVISNING

EV3 Roboten. Sida 1 av 13

Företagsmodellering i UML

Användarmanual För Lansen Larm- och Miljösystem. Utgåva DA

Galaxy Integrerad Fire RIO Med kvitteringsenhet

Classicdoor s66 motormontage. Figur 1. Översiktsbild på motorupphängning

Installationanvisning, apparatlåda för rökfunktion med spjällmotionering TBLZ GOLD/COMPACT

Installation av Android-mobiler

Användarguide Avaya One-X

Objekt-orienterad programmering. Klassbegreppet och C++ UML. UMLs fördelar

Användar-manual. Styrenhet SM-SS-F

Galaxy Integrerad Fire RIO Med Kvitteringsenhet RS485

Visa stora ikoner utan text i Command Manager = Större arbetsyta

Objektorienterad Systemutveckling 1 (7,5 hp)

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Instruktioner för att ansluta till Polars elsystem via webbläsare. App-Android

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Användarguide Avaya One-X 9630 & SBM24 Utbyggnadsmodul

Objektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016

TEKNISK NOTIS TN AT006

1. Förpackningsmaskin / Packaging machine

Programmering av Thangram portregister System XIP (VA/08)

Eventum II Larmdator

Total överblick för alla behov R-CONTROL ELEKTRONISKA LÅS FÖR HEM OCH FÖRETAG

Kapitel Datakommunikation Anslutning av två enheter Anslutning av enheten till en persondator Anslutning av enheten till en CASIO etikettskrivare

DIGITALT VECKOKOPPLINGSUR + PROGRAMMERINGSKNAPP

ATS-centralapparat. Användarmanual

K44 Duo. Installation & User Manual EN SV DE FR DA FI NO

Ontech Control för Android Användarmanual Svenska

Utsrkift av stillbilder på en PictBridge-skrivare

Handhavandebeskrivning

Skapa enkäter i EvaSys

INDIVID RÖRLIG GIGASET SL1

NYHETER I AUTOCAD 2006

Handhavandebeskrivning

Användarmanual FlexiSwitch/FlexiSwitchRF

BRUKSANVISNING CARGARD BILLARM TYP 750S/A 750 S/A. Intygat av SBSC (nr. C98-477) att uppfylla kraven i BRK 25:4 CSD

LÖSNINGSFÖRSLAG. Tentamen. Objektorienterad modellering och design. EDA665, 4 poäng

Trådar. Aktiva objekt

Andromeda. Användning och Installation

ID3000. Handhavandemanual för anläggningsskötare

Boiler with heatpump / Värmepumpsberedare

Idag: Centrerad utskrift. Granskning. DD1311 Programmeringsteknik med PBL. Granskning Felhantering GUI. Föreläsning 15.

MÄLARDALENS HÖGSKOLA. CD5560 Formella språk, automater och beräkningsteori. Användarmanual. för simulatorn JFLAP

Gratulerar. Säkerhetsanvisningar

Windows Forms Winstrand Development

Innehåll Uppgifter ipad utbildning

Användarmanual 948 GSM-GPRS

METALL/STRÖM DETEKTOR

Objektorienterad analys och design

Objektorienterad programmering med Java Swing: Händelser, lyssnare och applets

Kortfattad utbildningsmanual för LARMSYSTEM RX-6. "IKEA" manualen med steg för steg punkter

Classicdoor s66 motormontage

Transkript:

Dynamiska modellen Tid Objektorienterad modellering programmering och analys OOMPA 1999 Föreläsning 6 Innehåll Unified Modelling Language - den dynamiska modellen Interaktionsdiagram sekvensdiagram samarbetsdiagram Tillståndsdiagram Sekvensiering, synkronisering Består av tillståndsdiagram (state diagrams) som beskriver objektens inre tillstånd, och sekvensdiagram (sequence diagrams) samarbetsdiagram (collaboration diagrams) aktivitetsdiagram (activity diagrams) För att ta fram dessa diagram utgår man från specifika exempel. Dessa beskrivs först verbalt i scenarior Små exempel Analysexempel: Ett billarm Björn Eiderbäck 1999-1 - Björn Eiderbäck 1999-2 -

Inre tillstånd Varje objekt befinner sig i varje ögonblick i ett visst tillstånd (state). Objektets tillstånd bestämmer hur objektet reagerar på indata och yttre händelser (events). Inre tillstånd, forts Knappen kan befinna sig i tre olika tillstånd, som kan namnges: Down Save Save Save Save Save Exempel: Knapp i ett grafiskt användargränssnitt. Save Save Save Save Save Grafiskt kan tillstånden ritas som ovaler, och övergångarna (transitions) som pilar. När markören flyttas in över knappen markeras ramen. När musens vänsterknapp trycks ned inverteras färgerna och operationen utförs. När knappen släpps upp återställs färgerna. När markören flyttas bort återgår ramen till normal tjocklek. Down Klasstillhörigheten avgör vilka tillstånd som objektet kan befinna sig i. Varje objekt befinner sig i exakt ett av tillstånden. Olika instanser av samma klass kan befinna sig i olika tillstånd vid samma tidpunkt. Björn Eiderbäck 1999-3 - Björn Eiderbäck 1999-4 -

Inre tillstånd, forts De händelser som gör att objektets tillstånd ändras kan också namnges, och placeras ut i diagrammet: enter press(n) Inre tillstånd, forts Knappen reagerar inte på händelsen när den befinner sig i tillståndet Down. Sluttillståndet blir i detta fall. Komplettera med en övergång till: enter Down press(n) Händelserna kan vara associerade med data (argument). T ex är n knappens nummer (1, 2 eller 3). Tillståndsdiagrammet ska visa alla tillåtna tillstånd och övergångar. Down Men vad händer om markören flyttas ut innan knappen släpps upp? Down Down Down Save Save Save Save Save Save Save Save Save Save Björn Eiderbäck 1999-5 - Björn Eiderbäck 1999-6 -

Villkorliga övergångar Antag att knappen kan kopplas till en meny. Musens högerknapp visar menyn, vänsterknappen väljer ett standardalternativ: Menu Menu Edit Edit Edit Edit Edit Undo Cut Copy Paste Undo Cut Copy Paste Objektets beteende Objektet kan reagera på en händelse med en handling (action). Handlingar är knutna till tillståndsövergångar. Händelser momentana handlingar momentana Handlingar kan alltså inte ha någon utsträckning i tiden. /invert, unhighlight Menu do/ show menu enter/highlight press(n)[n=3] /invert Down Menu press(n)[n=3] enter villkor (guard) press(n)[n=1] /invert, unhighlight /unhighlight /invert press(n)[n=1] Down /invert Aktiviteter (activities) är knutna till tillstånd. De pågår så länge objektet befinner sig i tillståndet. Tar tid. Skrivs efter do/ i tillståndet. Björn Eiderbäck 1999-7 - Björn Eiderbäck 1999-8 -

Ingångs/utgångshandlingar För att slippa repetera samma handling vid flera övergångar kan de knytas till tillståndets ingång eller utgång. Tillståndsdiagram: notation Start Start State name Övergång event(arguments)[condition] / action State name De kallas då ingångshandlingar (entry actions) respektive utgångshandlingar (exit actions). variable: Type = initialvalue entry / action do / activity exit / action event / action(arguments) Tillstånd Slut Slut OBS! De är (som alla handlingar) momentana. entry/unhighlight Down entry/invert exit/invert Menu entry/invert exit/invert do/ show menu enter press(n)[n=1] press(n)[n=3] entry/highlight Björn Eiderbäck 1999-9 - Björn Eiderbäck 1999-10 -

Idle Fler exempel keypress shutdown Running finished Underordnade diagram För att slippa repetera likadana övergångar från många till ett tillstånd: A E A B D B D after(2 seconds)/send c.isalive ovillkorliga övergångar C C noise Idle Searching Engaging E kallas supertillstånd. Alla tillstånd inom E har övergången från E till D. targetat(p) [isthreat]/ t.addtarget(p) Objekten befinner sig egentligen aldrig i själva supertillståndet, utan i ett av de subtillstånden A, B eller C. Tracking contact Engaging Övergången från D till E går egentligen till A, eftersom A är markerad som starttillstånd i E. Starttillstånd (initial state) Sluttillstånd (final state) Här dör objektet Björn Eiderbäck 1999-11 - Björn Eiderbäck 1999-12 -

Underordnade diagram, forts Exempel: Nummermottagare i en telefonväxel: Fler exempel shutdown Idle off-hook Busy do/ collect digits tohot(desiredtemp) Idle tocold(desiredtemp) attemp Heating on-hook Cooling attemp Activating ready/turnon() tohot(desiredtemp) Idle tocold(desiredtemp) Busy DialTone off-hook on-hook key(n) Dialing /add n to key(n) number /set number to n [number complete] maintain Idle Maintenance cardinserted cancel Validating Selecting [not continue] [continue] Processing Printing Conversation Connecting do/ connect entry/readcard exit/ejectcard Björn Eiderbäck 1999-13 - Björn Eiderbäck 1999-14 -

Varifrån kommer händelser? Händelser upptäcks eller genereras oftast i andra objekt. enter Button Button save Document invert, highlight, unhighlight enter,, press(n), Down press(n) Window Det nedre diagrammet kallas händelseföde (event flow, men är inte en dek av UML. Det kan ändå vara bra att på liknande sätt identifiera komponenternas "kommunikationsvägar" på liknande sätt Björn Eiderbäck 1999-15 - Vad är handlingar och aktiviteter? Handlingar kan vara: Operationer i klassdiagrammet som inte tar någon tid. Meddelanden om nya händelser (send). Aktiveteter är: Operationer i klassdiagrammet som tar tid. Editing Down enter/highlight save press(n) /send invert to window, send save to document Ofta är send... to och destinationen underförstådda. Button Document Saving do/ write file Björn Eiderbäck 1999-16 -

Exempel: Flaskfyllning Exempel: telefon (igen) Uppringning Ej fylld Fyller fyll(n) [innehåll + n >= kapacitet] Full avbrott kapsyl på fyll(n) [innehåll + n < kapacitet] Fel Försluten Deltillståndet dialing Björn Eiderbäck 1999-17 - Björn Eiderbäck 1999-18 -

Man kan definiera egna händelser i tillstånden Exempel: lösenord Exempel: Automatlåda Växel välj B Neutral Back välj N välj N välj F Framåt stopp Ett växla upp växla ner Två växla upp växla ner Tre Omgivande tillstånd ärvs av deltillstånd så om N väljs i något tillstånd i Framåt övergår Växeln i neutralt läge Händelse från kanten av ett tillstånd ärvs av alla deltillstånd så oberoende av framåtväxel ger stopp en övergång till Ett. Björn Eiderbäck 1999-19 - Björn Eiderbäck 1999-20 -

Parallella undertillstånd Hela tillståndet övergår inte till "passed" förrän alla undertillstånd är klara. Parallellism Parallellism finns i sammansatta objekt (aggregat). Delarna växlar tillstånd självständigt. Undo Edit + Cut = Copy Paste Edit Undo Cut Copy Paste MenuButton Menu Button Parallellism kan också finnas inom samma objekt, t ex en godisautomat: /return coin coin inserted Idle ReturningChange Dispensing do/ dispense item Björn Eiderbäck 1999-21 - Björn Eiderbäck 1999-22 -

Sekvensdiagram, forts Sekvensdiagram, forts Sekvensdiagram finns också på följande form. Villkor kan skrivas i kanten För fler detaljer se Fowler kapitel 6. Björn Eiderbäck 1999-23 - Björn Eiderbäck 1999-24 -

Sekvensdiagram, forts Man kan också ange om ett meddelande är synkront eller asynkront. Samarbetsdiagram : Order Entry Window object 1 object 2 object 3 : Order synchronous call asynchronous call Macallan line : Order Line Macallan stock : Stock Item : Delivery Item : Reorder Item Meddelanden, sekvensnumrering nästa sida. Björn Eiderbäck 1999-25 - Björn Eiderbäck 1999-26 -

...samarbetsdiagram (forts) Samarbetsdiagram: exempel : Order Entry Window 1:prepare() : Order 2*:prepare() Macallan line : Order Line 3:check() 4:[check()==true]remove() 5:needToReorder() Macallan stock : Stock Item 4:[check()==true]new 6::new : Delivery Item : Reorder Item Björn Eiderbäck 1999-27 - Björn Eiderbäck 1999-28 -

Sekvensdiagram Dynamisk modell - metodik Tid A B stimulus stimulus C stimulus D Identifiera användningsfall Gör ett eller flera scenarior. Identifiera händelser. stimulus Rita ett händelseflöde. stimulus stimulus Skapa ett händelseförlopp för varje scenario. Identifiera tillstånden i händelseförloppen. Skapa sekvensdiagram. A, B, C och D objekt som kommunicerar via stimuli/meddelanden Tiden ökar neråt Björn Eiderbäck 1999-29 - Björn Eiderbäck 1999-30 -

Exempel: telefonsamtal Scenario uppringande part (U) lyfter luren rington börjar u slår 6 rington slutar u slår 2 u slår 7 u slår 7 uppringda telefonen (M) ringer uppringningston hörs hos U M svarar M slutar ringa uppringningston upphör hos U telefonerna är anslutna M lägger på telefonerna är inte anslutna U lägger på telefonsamtal forts Sekvensdiagram U lyfter luren M svarar telefonerna anslutna M lägger på U öppna linjen rington på slå(6) rington av slå(2) slå(7) slå(7) uppringningston på ton av bryt anslutningen Telfonlinje telefon ring ringning sluta bryt anslutningen M U lägger på Björn Eiderbäck 1999-31 - Björn Eiderbäck 1999-32 -

Konstruktion av dynamisk modell siren lysdiod detektor mottagare Billarm - objektmodell Receiver Transmitter Detector Larmet aktiveras av en signal från sändaren. Bilen låses och lysdioden börjar blinka. Nästa signal deaktiverar larmet. Bilen låses upp och lysdioden släcks. När larmet är aktiverat kommer en signal från detektorn att sätta igång sirenen. Lysdioden övergår till fast sken. Sirenen ska tystna efter 3 sekunder. Larmet ska dock fortfarande vara aktiverat, och lysdioden ska fortsätta lysa med fast sken. Man ska kunna deaktivera larmet även när sirenen tjuter. lås sändare Siren LED Lock Alarm Björn Eiderbäck 1999-33 - Björn Eiderbäck 1999-34 -

Billarm - scenario Billarm - händelsflöde Mottagaren tar emot signal från sändaren. Dörrarna låses, lysdioden börjar blinka. Receiver transmission Transmitter Mottagaren tar emot signal från sändaren. Dörrarna låses upp, dioden släcks. transmission Mottagaren tar emot signal från sändaren. Dörrarna låses, lysdioden börjar blinka. Detektorn känner av vibrationer. Sirenen börjar tjuta. Dioden går över till fast sken. Sirenen slutar tjuta. Mottagaren tar emot signal från sändaren. Dörrarna låses upp, dioden släcks. Detector vibration Siren on, off flash, steady, out Alarm Mottagaren tar emot signal från sändaren. Dörrarna låses, lysdioden börjar blinka. Detektorn känner av vibrationer. Sirenen börjar tjuta. Dioden går över till fast sken. Mottagaren tar emot signal från sändaren. Sirenen slutar tjuta, dörrarna låses upp, dioden släcks. LED Lock lock, unlock Björn Eiderbäck 1999-35 - Björn Eiderbäck 1999-36 -

Billarm - händelseförlopp receiver detector alarm lock siren LED transmission lock flash Billarm - larmtillstånd receiver detector alarm lock siren LED transmission lock flash transmission unlock out transmission unlock out transmission lock flash transmission lock flash vibration on steady vibration on steady off Sounding off transmission unlock out transmission unlock out transmission lock flash vibration on steady transmission unlock off out transmission lock flash vibration on steady Sounding transmission unlock off out Björn Eiderbäck 1999-37 - Björn Eiderbäck 1999-38 -

Billarm - diodens tillstånd receiver detector alarm lock siren LED transmission lock flash Flashing transmission unlock out Out Billarm - tillståndsdiagram entry/unlock, out exit/lock, flash transmission transmission trans- mission Alarm Sounding entry/on, steady exit/off do/ wait 3s transmission lock flash Flashing vibration on steady vibration off Steady Out LED transmission unlock out out Out transmission lock flash flash Steady do/ light out vibration on steady steady transmission unlock off out Flashing do/ flash Björn Eiderbäck 1999-39 - Björn Eiderbäck 1999-40 -