Objektorientering Klasser VSA110 1
OOA I analysen upprättas: Klassdiagram Objektdiagram Tillståndsdiagram Scenario Användningsfall Sekvensdiagram Användardialoger (skärmbilder) 2
Analys - en översikt Vi fokuserar på en nyckelfråga: Vilken information bör systemet hantera? Målsättningen är att: Ta fram en modell som kan användas för att designa och implementera ett system som kan behandla, överföra och presentera information på ett användbart sätt. 3
Analys Aktivitet Innehåll Begrepp Klasser Vilka objekt och händelser ingår i systemet? Klass, objekt, händelse Struktur Hur hänger klasser och objekt samman? Generalisering, aggregat, associationer Beteende Vilka dynamiska egenskaper har objekten? Händelseförlopp, beteendemönster och attribut 4
Sammanfattning - analys De tre aktiviteterna syftar till att få fram en sammanhängande modell över problemområdet. Klassaktiviteten fokuserar på delarna (objekt och klasser). Strukturaktiviteten fokuserar på helheten (relationer, strukturer). Beteendeaktiviteten fokuserar på delarna (dynamiska egenskaper för varje del). 5
Analys Klasser Begrepp: Objekt en entitet med identitet, tillstånd och beteende Klass en beskrivning av samling objekt som delar struktur, beteendemönster och attribut Händelse en momentan tilldragelse i vilken ett eller flera objekt är inblandade Principer: Klassificera objekt Karakterisera objekt genom deras händelser Välj kritiskt Resultat: Klasser och tillhörande händelser. 6
Aktiviteter i modellering Hitta objekt Analysera olika textdokument, beskrivning av användningsområdet, andra datasystem, teknisk litteratur.. Objekt motsvarar substantiv i skriven text Objekt behöver inte ha en direkt fysisk motsvarighet Brainstorming Hitta händelser Verb och verbfraser Ex. Konto öppnat, belopp insatt, lån beviljat, kund informerad, beställning avslutad, vara skickad, vara köpt, anställning avslutad, antagen till kurs.. 7
Objekt Ett objekt entitet med identitet, tillstånd och beteende. Entitet : fysisk påtagliga saker (en person) och mindre påtagliga (en organisation) Identitet : egenskap som särskiljer objektet från alla andra objekt. Tillstånd: statiska och dynamiska egenskaper (statiska persnr, dynamiska förbindelse mellan kundobjekt och kontoobjekt) Beteende: är den följd av händelser som objektet aktivt utför och passivt upplever under sin livstid. Händelse en momentan tilldragelse i vilken ett eller flera objekt är inblandade. 8
Objekt Objekt Har egenskaper (attribut) Kan utföra uppgifter (metoder) OO-tankegång i följande sats: Huset har blivit fint sedan Bo målade det Objekt: Huset, Bo Händelse: målandet av huset (målning utförd) Ändrat tillstånd: Huset har blivit fint 9
Aktiviteter i modellering Klassificera objekt (klasser) Kandidatobjekten klassificeras 10
Beteende Grundläggande syftet med ett system är att registrera, lagra och producera information om händelser i problemområdet. Skapa beteendemönster av händelseförlopp Studera gemensamma händelser. Härled klassattribut från beteendemönster! Vilken är klassens allmänna egenskaper? Vilka grundfakta måste fångas rörande objekt från denna klass? Vilka resultat från ett händelseförlopp måste fångas? Vilken tidpunkt inträffade händelse? 11
Utvärderingskriterier för klasser Kunna identifiera objekt från en klass Varje klass bör representera en lämplig mängd unik information. Varje klass ska ha en lämplig mängd händelser För få händelser = irrelevant klass? Ej klass utan attribut? För många händelser = alltför komplicerad. Dela upp i flera enklare klasser. Svag koppling mellan klasserna Hög sammanhang (kohesion) och välavgränsat ansvar. 12
Utvärderingskriterier för händelser Är händelsen momentan? Är händelsen atomär? Kan vi konstatera när händelse inträffade? (ex. artikel bedömd) 13
Aktiviteter i modellering Struktur Generalisering (superklass subklass) Association Aggregat (helhet delar) Resultat Klassdiagram med klasser och strukturer 14
Aktiviteter i modellering av problemområdet Generalisering: En generell klass (superklass) beskriver egenskaper gemensamma för en grupp av specialiserade klasser (subklasser) «abstract» Djur Namn Vikt Ät() Sov() Fågel Vingspann Fisk Maxdjup Flyg() Simma() 15
Aktiviteter i modellering av problemområdet Association Person äger 1 0..* Bil 16
Aktiviteter i modellering av problemområdet Aggregat/Komposition 1 Bil 1 1 1 1 4 Chassi Motor Hjul 17
Tre grundpelare Inkapsling Arv Polymorfism 18
Övning 1 System för en enkel mobiltelefon Skriv upp klasskandidater i mobiltelefonsystemet. Skriv upp händelser Telefonen kan ta emot samtal och ringa andra tel.nr Den ger ägaren en personlig telefonkatalog för att lagra namn och tel.nr Telefonen sköter en fullständig logg över alla inkommande och utgående samtal samt obesvarade samtal Rita klassdiagram för mobiltelefon 19
Övning 2 Beskriv en elspis med klassdiagram Spisen har fyra elplattor Varje platta är kopplad till ett reglage med lägena 1 till 6 Plattorna har en temperatur vardera En lysdiod indikerar att någon av plattorna är påslagna Spisen har en inbyggd ugn 20
Övning 3 Beskriv ett filträd med ett klassdiagram En enhet kan innehålla mappar eller enstaka filer Mapparna kan i sin tur innehålla mappar eller filer En mapp kan delas ut till ett nätverk En fil har en storlek (kb) 21
Litteraturhänvisning Wiktorin: Objektorientering: kap 5 UML: http://www.ibm.com/developerworks/rational/library/769.html http://www.uml.org/ 22