BEGREPP Flashcards

(44 cards)

1
Q

Analys och design

A
  • Analys – rätt sak

* Design –rätt sätt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

GRASP (1)

A
  • Controller - Represents overall system/use case scenario (controls a system operation).
  • Creator - Creates C if aggregates- , records-, closely uses- or has initializing info. for C.
  • Information Expert - Assign responsibility where most information exists to fulfill it.
  • High Cohesion (evaluative) - Keep classes highly focused, manageable, understandable.
  • Low Coupling (evaluative) - Keep classes weakly connected/knowledgeable of others.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

GRASP (2)

A
  • Polymorphism - Assign responsibility for variation of behaviors based on type.
  • Protected Variations - Protect against variations by wrapping classes in an interface.
  • Pure Fabrication - Class specially made up to achieve low coupling and high cohesion.
  • Indirection - Assign mediation responsibility between objects to intermediate object.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

SOLID – Design Principles

A

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

GoF Designmönster

A

• I sin bok presenterade GoF 23 designmönster, indeladei 3 kategorier

• Skapelsemönster (Creational Patterns)
Beskriver olika sätt att styra skapandet av objekt

• Strukturella mönster (Structural Patterns)
Beskriver hur klasser och objekt kan kombineras för att bilda större strukturer

• Beteendemönster (Behavioral Patterns)
Beskriver olika sätt för klasser och objekt att kommunicera med varandra

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Abstraction

A

Nedbryning av problem som döljer/gömmer komplexa detaljer

Mental model som fokuserar på ett objekts viktiga beteende och viktiga egenskapar och som

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Seperation of concerns

A

Tydlig skillnad mellan intra-komponent och inter- komponent. Seperation av affärslogik och gränssnitt.

Exempel : Lager indelning, Modeller för beräkning av saldo (business logik), modeller för presentation av information till kund (Gränssnitt)

•Att dela in din applikation i distinkta funktioner med så lite överlappning i funktionalitet som möjligt.
- Den viktiga faktorn är minimering av interaktionspunkter för att uppnå high cohesion och low coupling

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Egenskapar av komplexa system (grunnd till OOAD)

A
  • hierachical,
  • seperation of concerns,
  • relative primitives
  • common patterns
  • stable intermediate forms
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Nedbrytning av processen

A
  1. Text analys : identifiering av koncepter (Klasser & attribut)
  2. Problem nedbrytning/roller ex: Medborgare ansöka om bank konto
  3. Abstraktion : fokusera på systemets intressanta komponenter.
  4. Hierarki – hur relatera man olika abstraktion med varan

Sammanfattning enligt kurslitteratur: Decompose, Abstraction, Identify hierarchies.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Hur skilja sig OOD , OOA och OOP

A
  • OOA: Analys nedbrytare problem som resulterar i en domänmodell (logiska, fysiska och dynamiska representation av komponenter) .
  • OOD: Analys som abstraherar KLASSER och OBJEKT och resulterar i en eller flera designmodell.
  • OOP :Är själva kodprogram som bestå av klasser och objekt
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Vad är de främsta skillnaderna mellan den Konceptuella domänmodellen och Designmodellen? T.ex. vad visas och vad visas inte i respektive modell.

A

Konceptuella domänmodellen – visualisera viktiga koncept i domänen och tillhörande
relationer mellan dessa koncept. Fokus i domänmodellen är övergripande systembeskrivning.
Inga riktningar mellan klassrelationer som representera dessa koncept.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

• Objekt

A

är en designkonstruktion som specificerar:
• Identitet : Typ och referens
• Tillstånd : Variabel
• Tjänster : Metoder

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Objekt & Klass

Skillnad *Viktigt

A

En klass är en beskrivning av
• Objekttyp
• Egenskaper
• Beteende

Att skapa ett objekt kallas INSTANTIERING. Ett objekt är en INSTANS av en klass

Skillnad :
•En klass beskrivs i programkoden medan objekten skapas och existerar under exekveringen av programmet.

Konkret klass : Vanlig klass som kan instansieras

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

ABSTRAKT KLASS

A

Klass utan instans ( går inte att skapa objekt av klassen).

  • Har ofta (minst) en abstrakt metodoch Tvingar alla subklasser att implementera de abstrakta metoderna.
  • Skrivs i UML med kursiv
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Grundläggande Principer för OO-design

A
  • Abstraktion –minska komplexitet
  • Inkapsling –återge kontroll till objekt. Skapar dataintegritet.
  • Arv –återanvändning av kod
  • Polymorfism (Moduler) -Återanvändning
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Information hiding

A

Vid inkapsling har objekt har ansvar för attribut. objekt ska hantera vem får komma åt informationen?

• Objekt A kan ta reda på attribut i objekt B endast genom att anropa motsvarande metod som kan ge meddela information från Objekt B.

Enbart objekt som har rättighet till den, kan uppnås genom Interface och Synlighet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Skillnad mellan abstraktion & inkapsling

A
  • Abstraktion använda oftast inkapsling

* Inkaspling behöva inte nödvändigtvis använda abstraktion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Hierarki

A

Hierarki, resultant: beskrivning av övergripande relation mellan olika abstraktioner/modeller

• En abstraktion kan vara en typ av en annan abstraktion
Volvo och BMW är en/typ av Fordon
Systemvetare är en typ av program
• En abstraktion kan vara en del av en annan abstraktion

19
Q

“Typ av” relation - Arv (Hierarki)

A
  • Superklass = generalisering =Base class
  • Subklass = specialisering = Derived class

Enkel arv: En Två eller flera subklasser ärver från en super klass.

Multi arv: En //sub// klass kan ärva från flera //super// klasser

20
Q

“Del av” relation - komposition

A

Två klasser som kan INTE existera utan varandra.
-objekten kan ha olika livslängder
En klass är en ”del av”, via en referens

kort: oberoendet relation, objekt A & B –olika livslängd, B är en del av A
• “The death relationship”

21
Q

“Del av” relation -aggregation

A

Två klasser som kan existera oberoende av varandra.
-objekten måste ha samma livslängd
En klass är en ”del av”, ”på riktigt”

Kort :beroendet relation, objekt A & B -samma livslängd, B innehåller A. Mindre stark förhållande än komposition.

22
Q

relation - association

A

varken ”typ av” eller ”del av” relation - association
Två klasser som känner till varandras existens
Bankontor och Banklån

Kort relation, objekt A & B är medvetten om varan

23
Q

Modularity

A

Paketera abstraktioner till logiska moduler.
Kommunikation via gränssnitt.

Slutresultat:“cohesive”(enhetliga) och “loosely coupled” (svagt sammankopplade) moduler.

24
Q

F3 UML

A

• Unified Modeling Language (UML) är ett modelleringsspråk för att beskriva olika aspekter av objektorienterade system. Definierar ett systems struktur och beteende.

• visualisera
• specificera
• konstruera
• Dokumentera
[There are four kinds of things in the UML: 1. Structural things 2. Behavioral things 3. Grouping things
4. Annotational things]
25
Modellering
Modellering är ett sätt för att: • Minska komplexitet av ett problem • Öka förståelse av ett system
26
En objektorienterad process
Är iterativ •Analys, design, konstruktion och test upprepade gånger •Högre och högre detaljeringsgrad för varje iteration Är inkrementell •Någonting synligt levereras efter varje iteration •Den delfunktion/komponent utvecklas (iterativt) •Systemet byggs på vartefter med fler delfunktioner/komponenter
27
Unified Process (UP)
• UP är en iterativ utvecklingsprocess för projekt som tillämpar objektorienterad utveckling. • Utvecklingen är organiserad I en uppsättning korta mini-projekt s.k. iterationer. • Slutprodukten av varje iteration är ett testat, integrerat och körbart system. • I ett UP-projekt är arbetet och iterationer organiserat I faser: Inception Elaboration Construction Transition Detta är inte den traditionella vattenfallsmodellen!
28
Konstruktor
En konstruktor används för att skapa och initiera nya instanser av en klass. En konstruktor har alltid samma namn som klassen, men en klass kan ha flera konstruktorer som då måste ha olika argumentlistor. ``` public class Invoice : IInvoice { public Invoice(Reservation r, double distanceDriven) { ... } osv osv ```
29
Konceptuell domänmodell arbetsprocess
Konceptuella klasser, attribut, associationer som hämtas ur problemdomän. 1. Läs noggrann problembeskrivning och utföra textanalys på problemdomän. 2. Med utgångspunkt i problembeskrivning, välja ut och motivera fem möjliga abstraktioner. 3. Föreslå nödvändiga konceptuella klasser samt dess attribut för problembeskrivning 4. Ge förslag på en fullständigt konceptuell domänmodell
30
- Klassdiagram (Elaboration)
- Namn, attribut, relationer, operationer, beroende, arv * Klass är den grundläggande entiteten i ett objektorienterat språk. • Innehåller fält (attribut) och metoder (operationer). * Klasser är mallar för instanser.
31
Designmönster
Designmönster är mikroarkitekturer
32
Low Coupling (GRASP)
Svag koppling mellan objekt / klass, detta gör vi genom att tilldela ansvar. Få kopplingar ger lågt beroende.
33
High cohesion (GRASP)
Keep classes highly focused, manageable, understandable. : Ett klass fokuserat, varje klass ska ha väl samlade ansvar, och inte ta hand om flera saker.
34
Controller (GRASP)
Tilldela ansvar till den klass som representerar hela systemet. Represents overall system/use case scenario (controls a system operation).
35
Creator (GRASP)
A kan skapa C om det uppfyller kriterier som aggregerar, registrerar, använder nära eller har initialisering information för C.
36
Information Expert (GRASP)
Tilldela ansvar där mest information finns.
37
Indirection (GRASP)
Assign mediation responsibility between objects to intermediate object. Ansvar till ett mellanliggande objekt så att de andra objekten mellan inte har direkt koppling.
38
Protected variation (GRASP)
Skydda mot variationer genom att lasta in klasser i ett gränssnitt.
39
Polymorphism (GRASP)
Tilldela ansvar för Varierande typ av beteende. En operation kan ha många former. Här används oftas Abstrakta klasser eller interface. * Poly = Many * Morph = Shapes * Samma meddelande kan skickas till olika klienter ex beräknaproto() under båda paket och brev klass. * Olika kunder kör meddelandet på sitt eget sätt * Flera beteenden för samma meddelande kallas polymorfism
40
Pure Fabrikation (GRASP)
Skapa ett nytt objekt för att uppnå hög sammanhållning, och låg koppling... kan återanvändas.
41
Design Patterns GoF : Skapande mönster (Creational patterns)
Skapande mönster (Creational patterns) Beskriver olika sätt att styra skapandet av objekt, dvs används för attvinstantiera objekt och dölja hur de egentligen skapas och kombineras.
42
Design Patterns GoF : Strukturmönster (Structural patterns)
Strukturmönster (Structural patterns) | Beskriver hur klasser och objekt kan kombineras för att bilda större och komplicerade strukturer.
43
Design Patterns GoF : Beteendemönster (Behavioral patterns)
Beteendemönster (Behavioral patterns) Beskriver olika sätt för objekt att kommunicera, dvs fokuserar på att lösa problem som relaterar till beteenden hos system.
44
Domänmodell v.s. Designmodell
Den konceptuella domänmodellen är ett analysdiagram. Visar inte operationer Designmodellen visar operationer och synlighet (pilhuvud på associationen).