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