F3 (Introduktion till OOAD) Flashcards
Vad är procedurell programmering?
- Sekventiell världsbild: saker sker i steg eller given ordning
- Arbetar med procedurer och funktioner
Vad är objektorienterad programmering?
Man programmerar med objekt som
- har egenskaper
- interagerar med varandra
- jobba med att modellera och analysera
Vad är en modell?
en bild eller en tolkning av ett system
Hur använder vi modeller?
- som verktyg vid kravinsamling (ett sätt att kommunicera med kund/uppdragsgivare)
- som verktyg för implementation (ha en gemensam bild av ett system)
- dela upp större system i mindre delar
Vad står UML för?
Unified Modeling Language
Vad beskriver UML?
Ett antal diagramtyper som kan användas för att beskriva mjukvarusystem
- Strukturer
- Beteende
- Interaktion
Nämn 5 olika sorters diagram
- Klassdiagram
- Sekvensdiagram
- Objektdiagram
- Use-Case diagram
- Aktivitetsdiagram
Vad är ett meddelande inom OOP?
Utbyte av information mellan objekt i ett oop-system, ett meddelande kan ha noll eller flera parametrar och användas OFTAST genom att en metod anropar en annan
Vad innebär inkapsling?
att man skyddar datan från utomstående inblandning
Hur kommer man åt inkapslad data?
genom fördefinierade vägar in
Vad innebär polymorfism?
att en subklass kan välja att skriva över funktioner
Vad är ett objekt?
En variabel som är sparad i minnet och identifierbar
Något vi kan tala och tänka kring
Vad är ett objektdiagram?
ett diagram som visar systemets objekt vid en given tidpunkt under exekvering
Vad kallas associationer mellan objekt i objektdiagram?
länk
Hur skrivs ett objekt i ett objektdiagram?
“Objekt:klassnamn” i en ruta
Vad är en klass?
en bit kod som definierar en samling attribut och metoder
Hur skrivs statiska metoder i ett klassdiagram?
Genom att metoden är understrucken

Vad är en statisk metod?
En metod som kan användas utan att klassen instansieras, alla objekt delar på samma metod
När måste man skriva ut konstruktorn i ett klassdiagram och hur görs det?
Om konstruktorn tar emot en eller flera parametrar. Metoder skrivs med Stor bokstav.

Hur anges synlighet (private/public/protected)?
+ (public)
- (private)
# (protected)
Dessa sätts framför attribut eller operation.

Hur anges konstanter/final värden i ett klassdiagram?
Med STORA BOKSTÄVER
bild motsvarande i kod:
public static final NYTTIG = true;

Hur skrivs arv i klassdiagram?
På bilden ärver klassen Banan klassen Frukt

Hur anger med att en metod är @overrided i klassdiagram?
Genom att även skriva metooden i subklassens (som ärver superklassen) ruta.
Hur anges ett interface i UML?
Med <> ovanför klassnamnet i diagrammet

Vad är ett gränssnitt?
ett interface, dvs ett kontrakt som säger VAD en klass ska göra, men inte HUR
Vad är ett beroende?
När två klasser känner till och använder varandra
Hur skrivs beroende i ett klassdiagram?
Streckad, öppen pil:
- >

Vad är en association?
När två klasser känner till varandra och åtminstone en av klasserna har en referens till den andre
Hur skrivs en association i UML?
Ett streck, en fiskare har ett fiskespö som han använder
Fiskare ____________ Fiskespö

Vad är komposition?
Sammansättning där delarna endast existerar i en helhet, delar kan inte existera själva.
Tar vi bort objektet försvinner även delarna.
Komposition är alltid asymmetrisk.
Hur skrivs komposition i UML?
Ifylld diamant från delarna till helheten.

Vad är aggregation?
Som komposition fast där delarna kan existera på egen hand, utan helheten
Hur skrivs aggregation?
som en diamant som inte är ifylld, från delarna till helheten

Hur används ofta aggregation och komposition?
För att hantera samlingar av objekt (collections)
Associationer kan vara att föredra om det handlar om färre objekt
Vad är multiplicitet?
multiplicitet anger hur många instanser av ett objekt som en klass känner till
Vilka sorters multiplicitet finns?
- 0, 1, n (dvs exakt antal)
- * (0 eller fler)
- (en eller fler)
- m…n (intervall)

Hur skrivs beroenden?
Streckad pil med öppet huvud
När är klass A beroende av klass B?
- en instans av A sänder ett meddelande till B
- en instans av A skapar en instans av B
- en instans av A har ett attribut vars värde är en instans av klass B
- en instans av A får ett meddelande där en parameter är en instans av klass B
Vad innebär hel linje i klassdiagram
att vi sparar referenser av ett objekt i ett annat
Vad innebär deriverade associationer?
När en association som inte är direkt, men kanske uppstår genom att dessa är associerade i via andra klasser

Hur skrivs abstrakta klasser i UML?
Klassnamnet i diagrammet är italic/snedställt

Vad är stereotyper och hur skrivs dessa i UML?
Boundary (View), Entity (Model) och Controller (Controller), skrivs <> ovanför klassnamnet
Vad är logisk programmering?
- Världen ordnas enligt regler
- Deklarerar logiska predikat och ställer sedan frågor
Vad består ett objekt av?
Attribut (Data)
Metoder (Funktioner)
Hur skriv en klass i ett klassdiagram?

Hur skrivs attribut i ett klassdiagram?

Hur skrivs metoder i ett klassdiagram?

Hur skrivs metoder som har parametrar och/eller returvärde?
metodnamn(parameter : datatyp) : returvärde
motsvarande i kod (för bild):
public boolean märk(Märke klisterlapp){
return true;
}

På vilka två sätt kan man använda klassers metod utifrån?
- Direkt från klasser (statiska metoder, konstanter)
- Från instaniserade objekt
Hur nås superklassen från subklassen?
Med nyckelordet super
Hur anges ett interface implementering i UML/klassdiagram?
Med en streckad arvspil

Vad är ett vanligt scenario där komposition används?
När ett objekt skapar andra objekt och håller dess referenser
Hur skrivs deriverade associationer i UML?

Hur skrivs inre klasser i UML?

Vad är alternativ notation till entity-klasser?

Vad är alternativ notation till boundary-klasser?

Vad är alternativ notation till Control-klasserna?
