plg Flashcards

tenta

1
Q

Low coupling (Grasp principles)

A

Reduce impact of change by minimized coupling.
More Reuse.

Relies on few classes.
• Keep classes weakly connected/knowledgeable of others.

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

High Cohesion (Grasp)

A

Used to Manage and keep complexity low.

Reduce by :

  • Keeping related responsibilities together in one class. (Used together? Keep together )
  • Assign responsibilities so that cohesion remains high.

• Keep classes highly focused, manageable, understandable.

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

Information Expert (Grasp)

A

The class with the most knowledge about something should be responsible for it.

AKA : Assign responsibility to the information expert.

• Assign responsibility where most information exists to fulfill it.

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

Creator (Grasp)

A

Who should create object?

Whoever is closest to.

Alternativ:
A innehåller objekt av B
● A aggregerar (äger, kontrollerar) objekt av B
● A bokför objekt av B (A är t.ex. någon typ av rapport
● A ofta använder B
● A har det data som krävs för att initiera en instans av B.

Ex User interface transaction initiation -> Creates classes involed with transaction.
Like mvvm.
(Also As new classes are needed : whoever needs them, creates them.)

• Creates C if aggregates- , records-, closely uses- or has initializing info. for C.

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

Controller (Grasp)

A

Who’s in Controller?

  • Assign the responsibility for receiving or handling a system event message to a class representing the overall system.
  • Assign a use case scenario within which the system events occurs.

Controller gör inte allt. Utan endast att kontrollera och pass vidare uppgifter.

A problem that was originally out of the extension of 2 Tier applications.

• Represents overall system/use case scenario (controls a system operation).

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

PoluMorphism (Grasp, Many forms)

A

Put the responsibility for a method where it makes sense.

  • Assign to its subtype
  • Assign responsibility to handle related but varying elements based on elements type.

Ex Circle and Triangel is under Shapes (Arv)

• Assign responsibility for variation of behaviors based on type.

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

Pure fabrication (Grasp)

A

You may need to fabricat a class just to put method. (since its better than having it somewhere not related to the method)

Ex creating a class to have the code for observer pattern.

• Class specially made up to achieve low coupling and high cohesion.

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

Protected variation (Grasp)

A

Protect against variations/chang by wrapping classes in an interface

https://www.youtube.com/watch?v=pIJbp5Q3jhQ

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

Solid

A

Examine if your object are either well design or in good shape.

All of these patterns try to keep each objects coherent and tidy and not dependent on others. Aka increase cohesion and lower coupling.

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

Single Responsibility (Solid)

A

Every class should have responsibility over a single part of the functionality provide by the software.

One major responsibility.
And not try piling up things.

Narrow!

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

Open Closed principle (Solid)

A

A class should be open for extension but closed for modifications.

The idea:
IF you have a fully functional class that you want to change then:
Change the behaviour by extending and not modifying.

Aka change modules without changing source code.

(Because if you extend then all of the existing software will continue run without need for maintenance .)

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

Liskov Substitution (Solid)

A

Subclasses should be able to substitute for their base classes.

Alltså:
“Objekt i ett program bör ersättas med förekomster (instanser) av deras undertyper (subtyper) utan att ändra programmets korrekthet.”

Child object/Subclass should not change that what is central to the class.

(Typ hur om en subklass förvinner )

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

Interface Segregation (Solid)

A

No client should be force to depend on method it does not use.

This splits interfaces (which are large) into smaller and more specific ones.

Many specific interfaces are better than one general purpose interface.

Ha Alumni interface och anställd interface istället för att ha interface “person”.

Detta gör att man släpper köra kodrader och klasser i onödan (genom att skapar specifika interfaces).

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

Dependency Inversion (Solid)

A

Depend on abstraction. Not concretions.

A. High-level modules should not depend on low-level modules. Both should depend on abstractions.

B. Abstractions should not depend upon details. Details should depend upon abstractions.

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

Structural element

A

We are interested in the interaction between the structural element of a system ( the classes and relationship between). their externally observable properties and the relationships berween them, but its purpose is to support the system.

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

Design patterns

A

skapande mönster (Creational patterns)

● Beskriver olika sätt att styra skapandet av objekt, dvs används för att instantiera objekt och dölja hur de egentligen skapas och kombineras.

Strukturmönster (Structural patterns)

● Beskriver hur klasser och objekt kan kombineras för att bilda större och komplicerade strukturer.

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.

17
Q

MVVM

A

Ett väl strukturerat och kanske det mest återanvändbara sättet att organisera sin kod med.

Seperationen mellan presentationslogik, affärslogik,

Model, View, ViewModel (MVVM) mönstret handlar om att guida dig I hur man organiserar och strukturerar sin kod för att skapa underhållbara, testbara och flexibla applikation

18
Q

Model

A

Enkelt uttryckt som klass strukturer för objekten. (tenta svar). Delar som håller datan.

Är syonym med domänmodeller och representerar strukter för dessa (tenta svar 2)

Jag skulle säga innehåller property och hämtar och kopplar vidare data från databasen genom business layer.

Här placeras alltså domänlogiken och data
åtkomsten.

19
Q

ViewModel

A

Model för view.
(Tillståndet för vyn och) är länken mellan modell och vyn. Innehåller presentations-logik. (tenta svar)

Abstration av vyn som exponerar publika egenskaper och kommender och utessende. (tenta svar 2)

 Klassbehållare 
som ansvarar för beteendet och data
innehållet för vyn. 
Är kort beskrivet länken
mellan View och Model. (enligt johannes) 

Jag skulle säga, det typ som code behind för view. Ansvarar för beteendet, presentation och data innehållet för View.
Det är även mellan länken.

20
Q

View

A

Gränssnittet del för en applikation, innehåller komponenterna och ansvarar för att presentera datan som ges av ViewModel

Är strukturen, layouten och utseendet som visas på skärm (tenta svar)

21
Q

XAML

A

XAML (Akronym : extensible application markup language) användes för att skapa GUI, generated/graphical user interface. Har element som button, context menu och datagrid.

Pålägg för att stötta separationen mellan front-end till back-end logik.

Stackpanel är ett element som kan används för att skapa kolumner och rad och använda cellerna för att placera gränssnitt- komponenter.

Orientition panel har underliggande orientation egenskaperna: Horizontal och vertikal.

WrapPanel : In WrapPanel, child elements are positioned in a sequential order from left to right or from top to bottom based on the orientation property.

GridPanel : Grid panel provides a flexible area which consists of rows and columns. In a Grid, child elements can be arranged in a tabular form.

Asterisk (*) : används för att arbeta med proportionella mått för row definition och column definition

Databinding är en egenskap som användes för att koppla ihop samman view och viewmodel i WPF. Erbjuder oneway, two way and half way binding.

Måste implementera INotifyPropertyChanged interface för att kommunicera med xaml.

22
Q

Binding

A

Är limmet mellan abstrationen av vyn, struktur, layout och utseendet.

Databinding är en egenskap som användes för att koppla ihop samman view och viewmodel i WPF. Erbjuder oneway, two way and half way binding.

23
Q

Winform

A

In WinForms all components have the ability to take actions by the user for example clicking the mouse or pressing a key. What is the proper name of this described concept? d) Events

Each Form in WinForms has a corresponding .cs file that is used, where logic is stored. What is this file usually called?
a) Code-behind

Events and delegates are used in the design of GUI with WinForms. Each event require a delegate because
a) Events are driven by pre-implemented methods and since the name of the event handler can be
changed, the only way for the control to call the right methods is by assigning delegates

24
Q

Repository pattern (design pattern)

A

Är klasser eller komponeter som inkapslar logiken som krävs för att nå datakällor.

Alltså innehåller koden för att kontakta databasen.

25
Q

Facade pattern (design pattern)

A

Facade means false front.

Objekt som tjänar som ett gränsnitt för att maskera mer komplexa underliggnade logik. (tenta svar)

Förenklar interface med gömda metoder. Som en class i bussness layer där komplexsa metoder ligger i, anrop utanför. .

En interface som gömmer implementationen av den underliggande koden.

26
Q

Observer pattern

A

En logg. Håller en lista över beronde objekt och medlar automtiskt när någoting ändras.
Vanligtivs genom att anropa en av deras metoder.

27
Q

ObservableCollection

A

Det är samma som INotifyPropertyChanged förutom att man använder de för en samling t.ex.
List där view får en notifikation om ett element i samlingen har blivit ändrad, skapad eller tagits bort. Kan bindas till en list i vår View. ( /Abbas)

28
Q

Entity framwork

A

Är objekt relational mapper verktyg.

Fördel: möjliggör användandet av mer maskinnära språk som C och C++.

Entity data model (EMD ) representerar databasen. Är en in-memory representation av hela meta datan av en databas; konceptuell model, lagringsmodell och dess mappar (tenta svar tydligen)

29
Q

Code first

A

Code First genererar
databasstrukturen utifrån klassstrukturer

Data-annotations definierar relationer..

I Code First definierar man först Plain Old CLR Objects (POCOs)

30
Q

Code first

A

Code First genererar
databasstrukturen utifrån klassstrukturer.
Här skapas databasen och schemat från domän klassar.

Data-annotations definierar relationer. Data annotation attribut används för att åsidosätt standardkonventioner (override?)

I Code First definierar man först Plain Old CLR Objects (POCOs)

Entity framwork code first konventioner är ett set reglar i entity framwork som styr hur modellen ska byggas och mappas till en databas schema.

31
Q

Model first

A

Designa databasen grafiskt, genom att skapa ett UML diagram.

Designa din databasschema i den visuella designen

32
Q

Database first

A

Database First genererar klasser utifrån databas. (ex Sql server).

Alltså kan använda existerande databas.

33
Q

DbContext

A

En instans av DbContext klassen representerar en session av den underliggande databasen.

SaveChanges(): är en metod på DbContext som användes för att uppdaterar entiteter till databasen (spara ändring).

ToList() : Returnerar en ny samling där entiterna är inte cachade i DbContext.

34
Q

Linq

A

För att ställa LINQ-fråga måste man utföra tre grundläggande åtgärder.

  1. Obtain the data source.
  2. Create the query.
  3. Execute the query.
35
Q

Linq

A

Akronym för Language-integrated query.

Linq stödjer båda query och metod syntax användning.

För att ställa LINQ-fråga måste man utföra tre grundläggande åtgärder.

  1. Obtain the data source.
  2. Create the query.
  3. Execute the query.

Man kan använda linq till : objekt, enheter/entity och xml.

36
Q

Linq syntax

A

Of type: filtrera samling med båda int och string.
Where: filtrera en samling efter ett villkor.
Element at : hämta element vid specifik index.

37
Q

Separation of concerns

A

In computer science, separation of concerns (SoC) is a design principle for separating a
computer program into distinct sections, such that each section addresses a separate concern
i.e. contains as little overlap in functionality as possible. The important factor is minimization
of interaction points to achieve high cohesion and low coupling.

38
Q

Logisk uppdelning

A

handlar om lagerindelning och objektdesign. Detta görs i programkoden.

39
Q

Fysisk uppdelning

A

handlar om vilka delar av systemet som körs på vilken enhet. Denna uppdelning görs med till exempel servrar.