OOTerv Vizsga gyakorló 🚀

Melyik elv segítségével lehet feloldani a csomagok közötti körkörös függőséget?

  • LSP
  • SRP
  • REP
  • DIP

A Visitor tervezési minta sérti az OCP elvet. (Válassz ki egyet!)

  • Igaz
  • Hamis

A Visitor tervezési minta sérti a DIP elvet. (Válassz ki egyet!)

  • Igaz
  • Hamis

Az öröklődés célja az ősosztályban definiált mezők újrahasznosítása. (Válassz ki egyet!)

  • Igaz
  • Hamis

A laza csatolás előnyös a karbantarthatóság szempontjából. (Válassz ki egyet!)

  • Igaz
  • Hamis

Egy szoftver akkor van jól tervezve, ha a stabil csomagok függnek az instabil csomagoktól. (Válassz ki egyet!)

  • Igaz
  • Hamis

A többnyelvűséget támogató erőforrásfájlok sértik az SCP elvet. (Válassz ki egyet!)

  • Igaz
  • Hamis

Ki számít ismerősnek a Demeter-törvény szerint?

  • Aki velünk egy a csomagban van
  • Akit bejövő paraméterként kaptunk
  • Aki létrehozott minket
  • Akire van asszociációnk

Tekintsük az alábbi csomagokat:

Mely csomagok stabilak?

Image for exercise
  • A
  • B
  • C
  • D

Tekintsük az alábbi osztálydiagramot: (Válassz ki egyet!)

Teljesül-e a bar függvényre a Liskov-elv?

Image for exercise
  • Teljesül
  • Sérül

Tekintsük az alábbi osztálydiagramot (Válassz ki egyet!)

Ismertek továbbá az alábbi feltételek: -A.foo pre: -100 <= x <= 100 -B.foo pre: -101 <= x <= 101 -C.foo pre: -200 <= x <= 150 -D.foo pre: -100 <= x <= 100 Teljesül-e a foo függvényre a Liskov-elv?

Image for exercise
  • Teljesül
  • Sérül

Tekintsük az alábbi osztálydiagramot:

Mely OO tervezési heurisztikák teljesülnek az alábbiak közül?

Image for exercise
  • A gyakran változó dinamikus szemantikát és kényszereket külső viselkedésként implementáljuk!
  • Asszociáció helyett preferáljuk a tartalmazást!
  • Implementáljuk a sztenderd metódusokat!
  • Soha ne kódoljuk a tipust enum vagy int értékekbe, használjunk helyette polimorfizmust!
  • Egy osztály ne függjön a saját leszármazottaitól!

Tekintsük az alábbi osztálydiagramot:

Mely OO tervezési heurisztikák teljesülnek az alábbiak közül?

Image for exercise
  • Kerüljük a csak adattárolasra használt osztályokat!
  • Az öröklési hierarchia gyökerében interfészek vagy absztrakt osztályok legyenek!
  • Ne keverjük össze a leszármazottakat az objektumokkal! Vigyázzunk azokkal a leszármazottakkal, amelyekből csak egyetlen példányt hozunk létre!
  • A viselkedést modellezzük, ne a szerepeket!
  • Az öröklődés célja mindig a viselkedés újrahasznosítása!

A refaktorálás célja a kódban lévő hibák (bugok) javítása. (Válassz ki egyet!)

  • Igaz
  • Hamis

A refaktorálás során érdemes egyszerre több refaktorálási műveletet is elvégezni, hogy időt spóroljunk. (Válassz ki egyet!)

  • Igaz
  • Hamis

A Feature envy code smell melyik refaktorálási minták segítségével javítható?

  • Remove control flag
  • Change value to reference
  • Introduce explaining variable
  • Move method
  • Rename method

A Duplicated code code smell melyik refaktorálási minták segítségével javítható?

  • Substitute algorithm
  • Extract method
  • Inline method
  • Extract class
  • Duplicate observed data

Az alábbiak közül melyek jó függvénynevek a clean code elvek szerint?

  • Manager
  • F
  • PickColor
  • Copy
  • ColorPicker
  • Pick
  • CP

A kivételek típusait a hívó objektum szemszögéből kell definiálni. (Válassz ki egyet!)

  • Igaz
  • Hamis

A HTTP cookie-k milyen állapottárolást tesznek lehetővé? (Válassz ki egyet!)

  • Állapot a szerver adatbázisában
  • Állapot a szerver memóriájában
  • Állapot a kliens oldalon

Mire szolgál a trading service? (Válassz ki egyet!)

  • Tőzsdei szolgáltatások szabványos interfészleírója
  • Szolgáltatások logikai név alapján történő keresésére
  • Szolgáltatások használati díjának adminisztrálására
  • Szolgáltatások interfész alapján történő keresésére

Immutable objektumok használatával elkerülhető a védelmi másolatok készítése. (Válassz ki egyet!)

  • Igaz
  • Hamis

Az ImmutableArray<T> hatékonyabb, mint az ImmutableList<T>, ha a gyűjteményt ritkán módositjuk, de sokszor kell rajta végigiterálnunk (Válassz ki egyet!)

  • Igaz
  • Hamis

Melyik elv segítségével lehet feloldani a csomagok közötti körkörös függőséget?

  • SDP
  • ISP
  • LSP
  • REP

A Decorator tervezési minta sérti az OCP elvet. (Válassz ki egyet!)

  • Igaz
  • Hamis

Az Abstract Factory tervezési minta sérti az OCP elvet. (Válassz ki egyet!)

  • Igaz
  • Hamis

Egy osztály interfésze ugyanaz, mint az általa implementált interfészek halmaza. (Válassz ki egyet!)

  • Igaz
  • Hamis

Egy szoftver tervezése során mindig minden lehetséges követelményváltozásra fel kell készülni. (Válassz ki egyet!)

  • Igaz
  • Hamis

A DbC elv szerint a prekondíciókat nem szabad erősíteni. (Válassz ki egyet!)

  • Igaz
  • Hamis

A DIP elv egy lehetséges megfogalmazása az, hogy absztrakcióktól függjünk. (Válassz ki egyet!)

  • Igaz
  • Hamis

Ki számít ismerősnek a Demeter-törvény szerint?

  • Aki létrehozott minket
  • Akit mi hoztunk létre
  • Aki ismer minket
  • Aki velünk egy a csomagban van

Tekintsük az alábbi csomagokat:

Mely csomagok instabilak?

Image for exercise
  • A
  • B
  • C
  • D

Tekintsük az alábbi osztálydiagramot: (Válassz ki egyet!)

Teljesül-e a bar függvényre a Liskov-elv?

Image for exercise
  • Teljesül
  • Sérül

Tekintsük az alábbi osztálydiagramot: (Válassz ki egyet!)

Ismertek továbbá az alábbi feltételek: -A.foo pre: -100 <= x <= 100 -B.foo pre: -101 <= x <= 101 -C.foo pre: -200 <= x <= 150 -D.foo pre: -110 <= x <= 110 Teljesül-e a foo függvényre a Liskov-elv?

Image for exercise
  • Teljesül
  • Sérül

Tekintsük az alábbi osztálydiagramot:

Mely OO tervezési heurisztikák teljesülnek az alábbiak közül?

Image for exercise
  • Egy osztály ne függjön a saját leszármazottaitól!
  • Ne keverjük össze a statikus és a dinamikus kényszereket!
  • Implementáljuk a sztenderd metódusokat!
  • Kerüljük a csak adattárolásra használt osztályokat!
  • Kerüljük az isten osztályokat!

Tekintsük az alábbi osztálydiagramot:

Mely OO tervezési heurisztikák teljesülnek az alábbiak közül?

Image for exercise
  • Az opcionális elemeket tartalmazásként implementáljuk, ne öröklődéssel!
  • Ne keverjük össze a leszármazottakat az objektummal! Vigyázzunk azokkal a leszármazottakkal, amelyekből csak egyetlen példányt hoztunk létre!
  • Ne készítsünk függvényeket a típusok illetve a képességek megkülönböztetésére, használjunk helyette polimorfizmust!
  • A viselkedést modellezzük, ne a szerepeket!
  • Az öröklési hierarchia gyökerében interfészek vagy absztrakt osztályok legyenek!

Ha büdös kódot (code smell) találunk a szotverben, akkor a szoftverben hiba (bug) van. (Válassz ki egyet!)

  • Igaz
  • Hamis

A refaktorálás nem változtatja meg a szoftver struktúráját, csak a szoftver viselkedését. (Válassz ki egyet!)

  • Igaz
  • Hamis

A Long method code smell melyik refaktorálási minták segítségével javítható?

  • Rename method
  • Decompose conditional
  • Encapsulate field
  • Introduce assertion
  • Inline method

Az Inappropiate intimacy code smell melyik refaktorálási minták segítségével javítható?

  • Replace delegation with inheritance
  • Inline method
  • Hide method
  • Remove control flag
  • Move method

Az alábbiak közül melyek jó osztálynevek a clean code elvek szerint?

  • Move
  • MPoint
  • SyntaxVisitor
  • Student
  • SqlStatementFromHardCodedValues
  • Info
  • MP

Ne használjunk unchecked kivételeket! (Válassz ki egyet!)

  • Igaz
  • Hamis

Az alábbiak közül melyek szerepelnek az API tervezési és a clean code témakörben is?

  • Válasszunk megfelelő alapértelmezett értékeket
  • Használjunk beszédes neveket
  • Egy függvény legfeljebb 20 soros legyen
  • Kerüljük a hosszú paraméterlistákat
  • Kerüljük a mellékhatásokat
  • Kerüljük a rövidítéseket
  • Ha egy függvény előfeltételei sérülnek, azonnal dobjunk kivételt a függvényből
  • Egy függvény egyszerre csak egy absztrakciós szinten dolgozzon

Immutable objektumok használata során nincs szükség klónozásra és másoló konstruktorra (Válassz ki egyet!)

  • Igaz
  • Hamis

Egy ImmutableList<T> foreach ciklussal történő bejárása kevésbé hatékony, mint egy List<T> bejárása. (Válassz ki egyet!)

  • Igaz
  • Hamis

Az alábbiak közül melyek szerepelnek a Clean Code és az API tervezési elvek között is?

  • Functions should be small
  • Stepdown rule
  • Avoid abbreviations

Az alábbiak közül melyek jó nevek ciklusváltozónak a Clean Code elvek szerint?

  • accountIterator
  • bookIdentifier
  • i
  • a

Az alábbiak közül mely elemek részei a WSDL-nek?

  • api
  • envelope
  • binding
  • types
  • header

Az immutable objektumok szálbiztosak. (Válassz ki egyet!)

  • Igaz
  • Hamis

A Visitor tervezési minta sérti az ISP elvet. (Válassz ki egyet!)

  • Igaz
  • Hamis

Az alkalmazásunk lefagyott, és a Windows szerint a program nem válaszol. Melyik mintát használtuk rosszul?

  • Reactor
  • Proactor
  • AutoResetEvent
  • ManualResetEvent
  • Cancellation token
  • Asynchronous completion token

Egy szálbiztos FIFO-t kell implementálnunk, amely tetszőlegesen sok üzenetet tartalmazhat. Melyik mintával lehet megoldani a szálbiztosságot?

  • Cancellation token
  • GlobalContext
  • Guarded suspension
  • ThreadLocalContext

Atomi műveletek kombinációja is atomi művelet. (Válassz ki egyet!)

  • Igaz
  • Hamis

A C# nyelv async-await megoldása a Proactor mintát követi (Válassz ki egyet!)

  • Igaz
  • Hamis

A böngészőben a GMail felületen egy levelet olvasunk. Sem az egérrel, sem a billentyűzettel nem végzünk művelet, mégis a GMail értesít minket, hogy időközben új levelünk érkezett. Melyik minta valósítja ezt meg?

  • Scheduler
  • ManualResetEvent
  • Cancellation token
  • Proactor
  • AutoResetEvent
  • Reactor

A Reactor minta lényege, hogy aszinkron módon reagálunk a kívülről érkező eseményekre (Válassz ki egyet!)

  • Igaz
  • Hamis

Elosztott objektumorientáltság esetén a szöveges sorosítás ugyan lassabb, mint a bináris, de jobb kompatibilitást biztosít. (Válassz ki egyet!)

  • Igaz
  • Hamis

A string literálokat tartalmazó erőforrásfájlok a DRY elv betartását segítik (Válassz ki egyet!)

  • Igaz
  • Hamis

A REST által támogatott HTTP igék a következők: GET, CREATE, UPDATE, DELETE (Válassz ki egyet!)

  • Igaz
  • Hamis

Az LoD szerint a függvényparaméterként kapott objektumok 'idegennek' számítanak (Válassz ki egyet!)

  • Igaz
  • Hamis

Elosztott objektumorientáltság esetén a távoli hívás paraméterei shallow-copy módon adódnak át (Válassz ki egyet!)

  • Igaz
  • Hamis

A Guarded suspension minta Monitor object használatának segítségével implementálható (Válassz ki egyet!)

  • Igaz
  • Hamis

A böngésző letölti a szerverről a HTML oldalt, majd külön szálakon a háttérben elkezdi letölteni a képeket is. Időközben a felhasználó bezárja az oldalt. Melyik mintát kell ilyenkor a böngészőnek bevetnie, hogy ne töltse tovább feleslegesen a képeket?

  • AutoResetEvent
  • Asynchronous completion token
  • Cancellation token
  • Proactor
  • ManualResetEvent
  • Reactor

Teljesül-e a Liskov-elv, ha X bar() függvénye 0..10 közötti értékeket vár, míg Y bar() függvénye -10..10 közötti értékeket vár? (Vegyük úgy, hogy a feltételben nem szereplő elemek teljesítik a Liskov-elvet!) (Válassz ki egyet!)

Image for exercise
  • Teljesül
  • Sérül

A WS-Addressing szabvány a SOAP üzenetkre két speciális fejlécet is definiál: MessageId és RelatesTo. A MessageId egy egyedi azonosító, amely a klienstől érkező kérésben szerepel. A szervernek a válaszüzenet RelatesTo fejlécében vissza kell küldenie a MessageId értékét. Melyik mintának felel meg ez a megoldás?

  • Cancellation token
  • Active object
  • AutoResetEvent
  • ManualResetEvent
  • Scheduler
  • Future
  • Proactor
  • Reactor
  • Asynchronous completion token

Tekintsük az alábbi osztálydiagramot:

Mely osztályok sértik meg a következő OO tervezési heurisztikát? 'A viselkedést modellezzük, ne a szerepeket!'

Image for exercise
  • Frame
  • House
  • Lamp
  • Cop
  • StopTable
  • Player

Tekintsük az alábbi osztálydiagramot: (Válassz ki egyet!)

Igaz-e, hogy az alábbi feltételekkel teljesül a Liskov-elv? -Base.Calculate pre: 0 <= x <= 100 -Derived.Calculate pre: 20 <= x <= 50

Image for exercise
  • Igaz
  • Hamis

Tekintsük az alábbi osztálydiagramot:

Mely osztályok sértik meg a következő OO tervezési heurisztikát? 'A viselkedést modellezzük, ne a szerepeket!'

Image for exercise
  • Worker
  • Asteroid
  • Egyik felkínált opció sem sérti a heurisztikát
  • Settler
  • Map
  • Robot
  • Sun

Tekintsük az alábbi osztálydiagramot:

Mely osztályok sértik meg a következő OO tervezési heurisztikát? 'Asszociáció helyett preferáljuk a tartalmazást!'

Image for exercise
  • Field-Character
  • Field-Asteroid
  • Character-Asteroid
  • Egyik felkínált opció sem sérti meg a heurisztikát
  • Field-Sun

Tekintsük az alábbi osztálydiagramot:

Mely osztályok sértik meg a következő OO tervezési heurisztikát? 'Kerüljük a csak adattárolásra használt osztályokat!'

Image for exercise
  • Worker
  • Asteroid
  • Egyik felkínált opció sem sérti a heurisztikát
  • Settler
  • Map
  • Robot
  • Sun

Tekintsük az alábbi szekvencia diagramot: (Válassz ki egyet!)

Igaz vagy hamis a következő állítás? 'A szekvencia diagram alapján sérül a LoD elv.'

Image for exercise
  • Igaz
  • Hamis

Tekintsük az alábbi osztálydiagramot:

Az alábbiak közül mely OO tervezési heurisztikát sérti a diagram?

Image for exercise
  • Az öröklődés helyett preferáljuk csak a tartalmazást!
  • Kerüljük a csak adattárolásra használt osztályokat!
  • Egy osztály ne függjön a saját leszármazottjaitól!
  • Az attribútumok mindig legyenek privátok!
  • A tartalmazott objektumok ne beszélgessenek egymással közvetlenül!
  • Mindegyik felkínált heurisztika teljesül
  • Implementáljuk a sztenderd metódusokat!

Tekintsük az alábbi osztálydiagramot:

Válassza ki, hogy az alábbiak közül mely osztályokat kellett volna egy közös ősből származniuk!

Image for exercise
  • Hollow
  • Radioactive
  • AISolarStorm
  • AIRobot
  • Settler

Teljesül-e a Liskov-elv, ha U a V leszármazottja? (Válassz ki egyet!)

Image for exercise
  • Teljesül
  • Sérül

Tekintsük az alábbi osztálydiagramot:

Mely osztályok sértik meg a következő OO tervezési heurisztikát? 'Modellezésnél maradjunk a rendszer határain belül!'

Image for exercise
  • Iron
  • Ice
  • Worker
  • Asteroid
  • Carbon
  • Material
  • Robot
  • Settler
  • Radioactive
  • Game
  • SolarSystem
  • Egyik felkínált opció sem sérti a heurisztikát
  • None

Tekintsük az alábbi szekvencia diagramot: (Válassz ki egyet!)

Igaz vagy hamis a következő állítás? 'A szekvencia diagram alapján sérül a LoD elv.'

Image for exercise
  • Igaz
  • Hamis

Tekintsük az alábbi szekvencia diagramot: (Válassz ki egyet!)

Igaz vagy hamis a következő állítás? 'A szekvencia diagram alapján sérül a LSP elv.'

Image for exercise
  • Igaz
  • Hamis

Tekintsük az alábbi osztálydiagramot:

Mely osztályok sértik meg a következő OO tervezési heurisztikát? 'A viselkedést modellezzük, ne a szerepeket!'

Image for exercise
  • Iron
  • Ice
  • Worker
  • Asteroid
  • Carbon
  • Material
  • Robot
  • Settler
  • Radioactive
  • Game
  • SolarSystem
  • Egyik felkínált opció sem sérti a heurisztikát
  • None

Tekintsük az alábbi szekvencia diagramot: (Válassz ki egyet!)

Igaz vagy hamis a következő állítás? 'A szekvencia diagram alapján sérül a TDA elv.'

Image for exercise
  • Igaz
  • Hamis

Tekintsük az alábbi osztálydiagramot:

Mely osztályok sértik meg a következő OO tervezési heurisztikát? 'Ne keverjük össze a statikus és a dinamikus kényszereket!'

Image for exercise
  • Space
  • Egyik felkínált opció sem sérti a heurisztikát
  • GameController
  • Moveable
  • Empty
  • Gameplayer
  • Settler
  • Robot

Tekintsük az alábbi szekvencia diagramot: (Válassz ki egyet!)

Igaz vagy hamis a következő állítás? 'A szekvencia diagram alapján sérül a TDA elv.'

Image for exercise
  • Igaz
  • Hamis

Tekintsük az alábbi osztálydiagramot:

Mely osztályok sértik meg a következő OO tervezési heurisztikát? 'Kerüljük az Isten-osztályokat!'

Image for exercise
  • Settler
  • Gameplayer
  • Egyik felkínált opció sem sérti a heurisztikákat
  • Robot
  • Radioactive
  • Moveable
  • Empty
  • Asteroid
  • GameController
  • NormalAsteroid
  • Space

Tekintsük az alábbi osztálydiagramot:

Mely osztályok sértik meg a következő OO tervezési heurisztikát? 'Soha ne kódoljuk a típust (pl. enum vagy int értékekbe), használjunk helyette polimorfizmust!'

Image for exercise
  • Resources
  • Asteroid
  • Field
  • Settler
  • Sun
  • Character
  • Robot
  • Egyik felkínált opció sem sérti a heurisztikát

Made with ❤︎ by Adam Szabados (2023)