Objektorienterad modellering programmering OOMPA 2000

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

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

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

Teoridel (svaren direkt på lydelsen)

Föreläsning 11 Tisdag 6/6 2000

HOFFER Walkie-talkie set PMR446/SSP3381 Svenska

Objektorientering Användning

Innehållsförteckning

Handhavandeinstruktion

PlantWatch. Temperatur och datalogger. Kortfattad installationsanvisning

Instruktion Programmeringsapp och gränssnitt

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

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

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

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

Objektorienterad analys och design

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

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

Föreläsning 8 2EMHNWRULHQWHUDG5HDOWLGVSURJUDPPHULQJ UML O2P 2000

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

Galaxy Integrerad Fire RIO Med Kvitteringsenhet standard

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.

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.

ZAP DVR-X3 Art.nr

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

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.

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

Styrteknik: SFC Introduktion

Lathund för snabbspar

KAP 18 SQL SERVER AGENT

Gran Canaria - Arbetsbeskrivning knapplänkar (Mediator 8)

Ontech Control för Android Användarmanual Svenska

SA031 SmartDialer. Bruksanvisning

NYHETER I AUTOCAD LT 2006

Beröringsfri EM-läsare VDS

Larmanordning för motorcykel BRUKSANVISNING

EV3 Roboten. Sida 1 av 13

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

Galaxy Integrerad Fire RIO Med kvitteringsenhet

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

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

Gratulerar. Säkerhetsanvisningar

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

Användarguide Avaya One-X

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

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

Bruksanvisning. Larmsystem: Sector Alarm TC

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

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)

Optisk bänk En Virtuell Applet Laboration

Eventum II Larmdator

Företagsmodellering i UML

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

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

Utsrkift av stillbilder på en PictBridge-skrivare

Handhavandebeskrivning

Skapa enkäter i EvaSys

Handhavandebeskrivning

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

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

Support Manual HoistLocatel Electronic Locks

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

Windows Forms Winstrand Development

Innehåll Uppgifter ipad utbildning

Användarmanual 948 GSM-GPRS

METALL/STRÖM DETEKTOR

Galaxy Integrerad Fire RIO Med Kvitteringsenhet RS485

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

Objektorienterad analys och design

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

Classicdoor s66 motormontage

Bruksanvisning. Maxcom KXT-701

Installation av Android-mobiler

Transkript:

Objektorienterad modellering programmering och analys Föreläsning 6 Innehåll Unified Modelling Language - den dynamiska modellen Interaktionsdiagram sekvensdiagram samarbetsdiagram Tillståndsdiagram Små exempel Analysexempel: Ett billarm - 1 -

Dynamiska modellen Tid 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 - 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). Exempel: Knapp i ett grafiskt användargränssnitt. Save Save Save Save Save 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. - 3 -

Inre tillstånd, forts Knappen kan befinna sig i tre olika tillstånd, som kan namnges: Inactive Active Down Active Inactive Save Save Save Save Save Grafiskt kan tillstånden ritas som ovaler, och övergångarna (transitions) som pilar. Inactive Active 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. - 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 Inactive Active leave release press(n) Down 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. Men vad händer om markören flyttas ut innan knappen släpps upp? Inactive Active Down Down Active Save Save Save Save Save - 5 -

Inre tillstånd, forts Knappen reagerar inte på händelsen leave när den befinner sig i tillståndet Down. Sluttillståndet blir i detta fall Active. Komplettera med en övergång till: enter Inactive Active leave release press(n) leave Down Inactive Active Down Inactive Inactive Save Save Save Save Save - 6 -

Villkorliga övergångar Antag att knappen kan kopplas till en meny. Musens högerknapp visar menyn, vänsterknappen väljer ett standardalternativ: Inactive Active Menu Menu Inactive Edit Edit Edit Edit Edit Undo Cut Copy Paste Undo Cut Copy Paste release Menu press(n)[n=3] Inactive leave enter leave release Active villkor (guard) Down press(n)[n=1] - 7 -

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. release /invert, unhighlight Inactive Menu do/ show menu enter/highlight press(n)[n=3] /invert Active leave /invert, unhighlight leave/unhighlight release /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. - 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. De kallas då ingångshandlingar (entry actions) respektive utgångshandlingar (exit actions). OBS! De är (som alla handlingar) momentana. release Inactive entry/unhighlight leave Down entry/invert exit/invert Menu entry/invert exit/invert do/ show menu enter leave release press(n)[n=1] press(n)[n=3] Active entry/highlight - 9 -

Tillståndsdiagram: notation Start Start Övergång State name event(arguments)[condition] / action State name variable: Type = initialvalue entry / action do / activity exit / action event / action(arguments) Tillstånd Tillstånd Slut Slut - 10 -

Fler exempel Idle keypress Running shutdown finished after(2 seconds)/send c.isalive ovillkorliga övergångar noise Idle Searching Engaging targetat(p) [isthreat]/ t.addtarget(p) Tracking contact Engaging - 11 -

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 C C E kallas supertillstånd. Alla tillstånd inom E har övergången från E till D. Objekten befinner sig egentligen aldrig i själva supertillståndet, utan i ett av de subtillstånden A, B eller C. Ö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) Här dör objektet Sluttillstånd (final state) - 12 -

Underordnade diagram, forts Exempel: Nummermottagare i en telefonväxel: Idle off-hook on-hook Busy do/ collect digits Idle off-hook on-hook Busy DialTone key(n) Dialing /add n to key(n) number /set number to n [number complete] Conversation Connecting do/ connect - 13 -

Fler exempel shutdown Idle tocold(desiredtemp) tohot(desiredtemp) attemp Heating attemp Cooling Activating ready/turnon() tohot(desiredtemp) Active tocold(desiredtemp) Idle cardinserted Active maintain cancel Validating [continue] Maintenance Selecting Processing [not continue] Printing entry/readcard exit/ejectcard - 14 -

Varifrån kommer händelser? Händelser upptäcks eller genereras oftast i andra objekt. enter Inactive Active leave Button leave release press(n) Down invert, highlight, unhighlight Button save enter, leave, press(n), release Window Document 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 - 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. enter/highlight Button Inactive Active leave leave release Down press(n) /send invert to window, send save to document Editing save Saving do/ write file Document Ofta är send... to och destinationen underförstådda. - 16 -

Exempel: Flaskfyllning Fyller Ej fylld fyll(n) [innehåll + n >= kapacitet] Full avbrott kapsyl på fyll(n) [innehåll + n < kapacitet] Fel Försluten - 17 -

Exempel: telefon (igen) Uppringning Deltillståndet dialing - 18 -

Exempel: lösenord Man kan definiera egna händelser i tillstånden - 19 -

Exempel: Automatlåda Växel Neutral välj B välj N Back 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. - 20 -

Parallella undertillstånd Hela tillståndet övergår inte till "passed" förrän alla undertillstånd är klara. - 21 -

Parallellism Parallellism finns i sammansatta objekt (aggregat). Delarna växlar tillstånd självständigt. Edit + Undo 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 ReturningChange Idle Dispensing do/ dispense item - 22 -

Sekvensdiagram, forts Villkor kan skrivas i kanten - 23 -

Sekvensdiagram, forts Sekvensdiagram finns också på följande form. För fler detaljer se Bruegge kapitel 2 och 5 och/eller www.rational.com/uml. - 24 -

Sekvensdiagram, forts Man kan också ange om ett meddelande är synkront eller asynkront. object 1 object 2 object 3 synchronous call asynchronous call - 25 -

Samarbetsdiagram : Order Entry Window : Order Macallan line : Order Line Macallan stock : Stock Item : Delivery Item : Reorder Item Meddelanden, sekvensnumrering nästa sida. - 26 -

...samarbetsdiagram (forts) : Order Entry Window 1:prepare() : Order 5:needToReorder() 2*:prepare() Macallan line : Order Line 3:check() 4:[check()==true]remove() Macallan stock : Stock Item 4:[check()==true]new 6::new : Delivery Item : Reorder Item - 27 -

Samarbetsdiagram: exempel - 28 -

Dynamisk modell - metodik Identifiera användningsfall Gör ett eller flera scenarior. Identifiera händelser. Rita ett händelseflöde. Skapa ett händelseförlopp för varje scenario. Identifiera tillstånden i händelseförloppen. Skapa sekvensdiagram. - 29 -

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å - 30 -

telefonsamtal forts Sekvensdiagram U lyfter luren U öppna linjen Telfonlinje M rington på slå(6) rington av slå(2) slå(7) slå(7) uppringningston på telefon ring M svarar telefonerna anslutna M lägger på U lägger på ton av bryt anslutningen ringning sluta bryt anslutningen - 31 -

Konstruktion av dynamisk modell lysdiod detektor mottagare siren lås sändare 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. - 32 -

Billarm - objektmodell Transmitter Receiver Detector Siren Alarm LED Lock - 33 -

Billarm - scenario Mottagaren tar emot signal från sändaren. Dörrarna låses, lysdioden börjar blinka. Mottagaren tar emot signal från sändaren. Dörrarna låses upp, dioden släcks. 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. 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. - 34 -

Billarm - händelsflöde Receiver transmission Transmitter Detector transmission vibration Siren on, off Alarm flash, steady, out LED lock, unlock Lock - 35 -

Billarm - händelseförlopp receiver detector alarm lock siren LED transmission lock flash transmission unlock out transmission lock flash vibration on steady off transmission unlock out transmission lock flash vibration on steady transmission unlock off out - 36 -

Billarm - larmtillstånd receiver detector alarm lock siren LED transmission lock flash Active transmission unlock out Inactive transmission lock flash Active vibration on steady Sounding off Active transmission unlock out Inactive transmission lock flash Active vibration on steady Sounding transmission unlock off out Inactive - 37 -

Billarm - diodens tillstånd receiver detector alarm lock siren LED transmission lock flash Flashing transmission unlock out Out transmission lock flash vibration Flashing on steady off Steady transmission unlock out Out transmission lock flash vibration on steady transmission unlock off out - 38 -

Billarm - tillståndsdiagram Inactive entry/unlock, out exit/lock, flash Alarm trans- mission transmission transmission Sounding entry/on, steady exit/off do/ wait 3s Active vibration LED Out flash out Steady do/ light Flashing do/ flash steady out - 39 -