BEGREPP Flashcards
(44 cards)
Analys och design
- Analys – rätt sak
* Design –rätt sätt
GRASP (1)
- 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.
GRASP (2)
- 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.
SOLID – Design Principles
…
GoF Designmönster
• 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
Abstraction
Nedbryning av problem som döljer/gömmer komplexa detaljer
Mental model som fokuserar på ett objekts viktiga beteende och viktiga egenskapar och som
Seperation of concerns
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
Egenskapar av komplexa system (grunnd till OOAD)
- hierachical,
- seperation of concerns,
- relative primitives
- common patterns
- stable intermediate forms
Nedbrytning av processen
- Text analys : identifiering av koncepter (Klasser & attribut)
- Problem nedbrytning/roller ex: Medborgare ansöka om bank konto
- Abstraktion : fokusera på systemets intressanta komponenter.
- Hierarki – hur relatera man olika abstraktion med varan
Sammanfattning enligt kurslitteratur: Decompose, Abstraction, Identify hierarchies.
Hur skilja sig OOD , OOA och OOP
- 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
Vad är de främsta skillnaderna mellan den Konceptuella domänmodellen och Designmodellen? T.ex. vad visas och vad visas inte i respektive modell.
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.
• Objekt
är en designkonstruktion som specificerar:
• Identitet : Typ och referens
• Tillstånd : Variabel
• Tjänster : Metoder
Objekt & Klass
Skillnad *Viktigt
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
ABSTRAKT KLASS
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
Grundläggande Principer för OO-design
- Abstraktion –minska komplexitet
- Inkapsling –återge kontroll till objekt. Skapar dataintegritet.
- Arv –återanvändning av kod
- Polymorfism (Moduler) -Återanvändning
Information hiding
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.
Skillnad mellan abstraktion & inkapsling
- Abstraktion använda oftast inkapsling
* Inkaspling behöva inte nödvändigtvis använda abstraktion
Hierarki
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
“Typ av” relation - Arv (Hierarki)
- 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
“Del av” relation - komposition
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”
“Del av” relation -aggregation
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.
relation - association
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
Modularity
Paketera abstraktioner till logiska moduler.
Kommunikation via gränssnitt.
Slutresultat:“cohesive”(enhetliga) och “loosely coupled” (svagt sammankopplade) moduler.
F3 UML
• 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]