Klasser - Webbkurs
Download
Report
Transcript Klasser - Webbkurs
Objektorientering
Klasser
VSA110
Suzana Ramadani
1
OOA
I analysen upprättas:
Klassdiagram
Objektdiagram
Tillståndsdiagram
Scenario
Användningsfall
Sekvensdiagram
Användardialoger (skärmbilder)
Suzana Ramadani
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”.
Suzana Ramadani
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
Suzana Ramadani
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).
Suzana Ramadani
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.
Suzana Ramadani
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…..
Suzana Ramadani
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.
Suzana Ramadani
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
Suzana Ramadani
9
Aktiviteter i modellering
Klassificera objekt (klasser)
Kandidatobjekten klassificeras
Suzana Ramadani
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?
Suzana Ramadani
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.
Suzana Ramadani
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)
Suzana Ramadani
13
Aktiviteter i modellering
Struktur
Generalisering (superklass – subklass)
Association
Aggregat (helhet – delar)
Resultat
Klassdiagram med klasser och strukturer
Suzana Ramadani
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
Fisk
Vingspann
Maxdjup
Flyg()
Simma()
Suzana Ramadani
15
Aktiviteter i modellering av problemområdet
Association
Person
1
äger
0..*
Bil
Suzana Ramadani
16
Aktiviteter i modellering av problemområdet
Aggregat/Komposition
Bil
1
1
1
1
1
4
Chassi
Motor
Hjul
Suzana Ramadani
17
Tre grundpelare
Inkapsling
Arv
Polymorfism
Suzana Ramadani
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
Suzana Ramadani
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
Suzana Ramadani
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)
Suzana Ramadani
21
Litteraturhänvisning
Wiktorin:
Objektorientering: kap 5
UML:
http://www.ibm.com/developerworks/rational/library/769.html
http://www.uml.org/
Suzana Ramadani
22