„Objektumorientált szoftvertervezés - Vizsga, 2008.06.03.” változatai közötti eltérés
A VIK Wikiből
Új oldal, tartalma: „{{GlobalTemplate|Infoszak|OotVizsga20080603}} ===OO Vizsga 2008-06-03=== __TOC__ ====1. Hibernate: Mi(k)nek a metódusa createQuery()? (2p)==== * '''session''' -> e…” |
|||
(3 közbenső módosítás, amit 3 másik szerkesztő végzett, nincs mutatva) | |||
1. sor: | 1. sor: | ||
===OO Vizsga 2008-06-03=== | ===OO Vizsga 2008-06-03=== | ||
__TOC__ | __TOC__ | ||
==== | ====Hibernate: Mi(k)nek a metódusa createQuery()? (2p)==== | ||
* '''session''' -> ez a jó | * '''session''' -> ez a jó | ||
12. sor: | 10. sor: | ||
* tranzakció | * tranzakció | ||
==== | ====Adott az alábbi kód. Mit csinál, mi a következménye, hogy tehető korrekté? (6p)==== | ||
<pre> | <pre> | ||
26. sor: | 24. sor: | ||
Ezzel a root mögötti objektumot tudjuk törölni. | Ezzel a root mögötti objektumot tudjuk törölni. | ||
==== | ====WMC (Weighted Method Class) metrika definíciója. (2p)==== | ||
* Egy osztályhoz tartozó metódusok CC-je (metódus bonyolultsága) összesen | * Egy osztályhoz tartozó metódusok CC-je (metódus bonyolultsága) összesen | ||
* Egy osztály elkézítésének bonyolultsága ? | * Egy osztály elkézítésének bonyolultsága ? | ||
==== | |||
====Egy funkción belül mikor nevezzük a kohéziót procedurálisnak? Miről ismerhető fel könnyen? (2p)==== | |||
* instanceof (???) | * instanceof (???) | ||
==== | |||
====Aktív objektum mintában az ütemező (Scheduler) a Request_Method példány meghívásakor átad egy paramétert. Mi az és mi a feladata?==== | |||
Valószínűleg ez a Servanthoz lesz a referencia, ami majd futtatni fogja a metódus kódját. Másképp honnan tudja a method_request, hogy melyik servanthoz hívjon be? Ez tűnik logikusnak. [https://lists.sch.bme.hu/wws/arc/inftech2009/2009-05/msg00083.html forrás] | Valószínűleg ez a Servanthoz lesz a referencia, ami majd futtatni fogja a metódus kódját. Másképp honnan tudja a method_request, hogy melyik servanthoz hívjon be? Ez tűnik logikusnak. [https://lists.sch.bme.hu/wws/arc/inftech2009/2009-05/msg00083.html forrás] | ||
==== | |||
====Adott egy bináris fa, a fa csúcsaiban vagy Guard vagy Node objektumok, ezeknek közös az ősük, amely vizitálható. Adott a vizitor interfész, illetve két megvalósítása:==== | |||
* Visit_Print: ez kiírja a Node-ban tárolt értéket | * Visit_Print: ez kiírja a Node-ban tárolt értéket | ||
* Sequ3: a faelemet meglátogatja a konstruktorában megadott 3 vizitort (mint a diasorban a Sequence, csak ebben 3 van) | * Sequ3: a faelemet meglátogatja a konstruktorában megadott 3 vizitort (mint a diasorban a Sequence, csak ebben 3 van) | ||
43. sor: | 44. sor: | ||
# A vizitorok létrehozása és meghívása, hogy a fa elemei listázásra kerüljenek (2p) | # A vizitorok létrehozása és meghívása, hogy a fa elemei listázásra kerüljenek (2p) | ||
==== | ====RMI során átadható paraméterek osztályozása és a paraméterátadás módja (felsorolás + 1-1 rövid mondattal jellemzés, 3p)==== | ||
[[OotElosztottRendszerek]] | |||
* Pass-by-Reference | |||
** a metódus a paraméterre mutató referenciát kap | |||
** a metódus a referencián keresztül éri el a paramétert, amit a hívó tart | |||
** azok adhatóak át így, akik implementálják a Remote interfészt | |||
* Pass-by-Value (Copy) | |||
** a paraméter lemásolódik | |||
** a metódus a másolatot kapja meg, és azon dolgozik | |||
** mindenki más így adódik át | |||
====Volt egy XSD séma, ahol az elemen belül volt egy simpletype definiálva, át kellett írni olyanra, hogy kívül legyen (2p)==== | |||
Egy példa a feladathoz: | |||
; Beágyazott | |||
<xs:element name="car"> | |||
<xs:simpleType> | |||
<xs:restriction base="xs:string"> | |||
<xs:enumeration value="Zhiguli"/> | |||
<xs:enumeration value="Moskvitch"/> | |||
<xs:enumeration value="Zaporozhets"/> | |||
</xs:restriction> | |||
</xs:simpleType> | |||
</xs:element> | |||
==== | ; Külön típusdefiníció | ||
<xs:element name="car" type="carType"/> | |||
<xs:simpleType name="carType"> | |||
<xs:restriction base="xs:string"> | |||
<xs:enumeration value="Zhiguli"/> | |||
<xs:enumeration value="Moskvitch"/> | |||
<xs:enumeration value="Zaporozhets"/> | |||
</xs:restriction> | |||
</xs:simpleType> | |||
==== | ====XSD sorrendiséget és gyakoriságot befolyásoló tag-ek (felsorolás + 1-1 rövid mondattal jellemzés, 5p)==== | ||
Sorrendiséghez: | Sorrendiséghez: | ||
* all - tetszőleges sorrendben | * all - tetszőleges sorrendben | ||
57. sor: | 88. sor: | ||
* minOccurs maxOccurs attribútumok | * minOccurs maxOccurs attribútumok | ||
==== | ====Milyen hibákat kaphatunk egy XML dokumentum SAX-al való feldolgozása során? (3p)==== | ||
* fatal error - a dokumentum nem jól formált (szintaktikai hiba, nincs lezárva tag) | * fatal error - a dokumentum nem jól formált (szintaktikai hiba, nincs lezárva tag) | ||
* error - a dokumentum nem valid (szemantikai hiba, pl nem felel meg a sémának) | * error - a dokumentum nem valid (szemantikai hiba, pl nem felel meg a sémának) | ||
* warning - figyelmeztetés (pl. ha kétszer definiálunk egy típust) | * warning - figyelmeztetés (pl. ha kétszer definiálunk egy típust) | ||
==== | ====Mik a SAX (simple api for XML) jellemzői? (3p)==== | ||
* eseményvezérelt | * eseményvezérelt | ||
* soros elérésű | * soros elérésű | ||
70. sor: | 101. sor: | ||
* állapotfüggetlen feldolgozás | * állapotfüggetlen feldolgozás | ||
==== | ====Mik az AWT konténerek felelősségei? (3p)==== | ||
* komponensek megtalálása | * komponensek megtalálása | ||
* fókusz továbbadása | * fókusz továbbadása | ||
* komponensek elhelyezése | * komponensek elhelyezése | ||
==== | ====Milyen tervezési mintákat valósítanak meg (Swing)? (4p)==== | ||
* Konténerek és komponensek összekapcsolása | * Konténerek és komponensek összekapcsolása | ||
89. sor: | 120. sor: | ||
* JTree-nél Null Object pattern | * JTree-nél Null Object pattern | ||
==== | ====Miért nem ajánlott beágyazott/mobil környezetben a Listener-alapú eseménykezelés? (2p)==== | ||
* túlságosan is erőforrásigényes | * túlságosan is erőforrásigényes | ||
* nem engedheti meg egy beágyazott környezet a beragadott objektumokat | * nem engedheti meg egy beágyazott környezet a beragadott objektumokat |
A lap jelenlegi, 2013. június 18., 00:39-kori változata
OO Vizsga 2008-06-03
Hibernate: Mi(k)nek a metódusa createQuery()? (2p)
- session -> ez a jó
- perzisztens kollekció
- tábla
- tranzakció
Adott az alábbi kód. Mit csinál, mi a következménye, hogy tehető korrekté? (6p)
Object object = db.getRoot("username"); ObjectStore.destroy(object);
A getRoot és a destroy közé kell:
db.setRoot("username", null);
Ezzel a root mögötti objektumot tudjuk törölni.
WMC (Weighted Method Class) metrika definíciója. (2p)
- Egy osztályhoz tartozó metódusok CC-je (metódus bonyolultsága) összesen
- Egy osztály elkézítésének bonyolultsága ?
Egy funkción belül mikor nevezzük a kohéziót procedurálisnak? Miről ismerhető fel könnyen? (2p)
- instanceof (???)
Aktív objektum mintában az ütemező (Scheduler) a Request_Method példány meghívásakor átad egy paramétert. Mi az és mi a feladata?
Valószínűleg ez a Servanthoz lesz a referencia, ami majd futtatni fogja a metódus kódját. Másképp honnan tudja a method_request, hogy melyik servanthoz hívjon be? Ez tűnik logikusnak. forrás
Adott egy bináris fa, a fa csúcsaiban vagy Guard vagy Node objektumok, ezeknek közös az ősük, amely vizitálható. Adott a vizitor interfész, illetve két megvalósítása:
- Visit_Print: ez kiírja a Node-ban tárolt értéket
- Sequ3: a faelemet meglátogatja a konstruktorában megadott 3 vizitort (mint a diasorban a Sequence, csak ebben 3 van)
- Visit_InOrder: a Sequ3-ból származik, a fa inorder bejárását végzi el, közben minden Node element végrehajtja a konstruktorában megadott vizitort. Ez nincs készen, ez a c) feladat
- Visitor interfészbe a metódusok beírása az UML diagramon (1p)
- Az inorder bejáráshoz szükséges egyéb vizitorok megadása az UML-diagramon és konstruktoraikkal, metódusaikkal (4p)
- Visit_InOrder konstruktorának megírása a fenti többi vizitor használatával (4p)
- A vizitorok létrehozása és meghívása, hogy a fa elemei listázásra kerüljenek (2p)
RMI során átadható paraméterek osztályozása és a paraméterátadás módja (felsorolás + 1-1 rövid mondattal jellemzés, 3p)
- Pass-by-Reference
- a metódus a paraméterre mutató referenciát kap
- a metódus a referencián keresztül éri el a paramétert, amit a hívó tart
- azok adhatóak át így, akik implementálják a Remote interfészt
- Pass-by-Value (Copy)
- a paraméter lemásolódik
- a metódus a másolatot kapja meg, és azon dolgozik
- mindenki más így adódik át
Volt egy XSD séma, ahol az elemen belül volt egy simpletype definiálva, át kellett írni olyanra, hogy kívül legyen (2p)
Egy példa a feladathoz:
- Beágyazott
<xs:element name="car"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="Zhiguli"/> <xs:enumeration value="Moskvitch"/> <xs:enumeration value="Zaporozhets"/> </xs:restriction> </xs:simpleType> </xs:element>
- Külön típusdefiníció
<xs:element name="car" type="carType"/> <xs:simpleType name="carType"> <xs:restriction base="xs:string"> <xs:enumeration value="Zhiguli"/> <xs:enumeration value="Moskvitch"/> <xs:enumeration value="Zaporozhets"/> </xs:restriction> </xs:simpleType>
XSD sorrendiséget és gyakoriságot befolyásoló tag-ek (felsorolás + 1-1 rövid mondattal jellemzés, 5p)
Sorrendiséghez:
- all - tetszőleges sorrendben
- choice - a listából csak az egyik
- sequence - pontosan ugyanabban a sorrendben
Gyakoriság:
- minOccurs maxOccurs attribútumok
Milyen hibákat kaphatunk egy XML dokumentum SAX-al való feldolgozása során? (3p)
- fatal error - a dokumentum nem jól formált (szintaktikai hiba, nincs lezárva tag)
- error - a dokumentum nem valid (szemantikai hiba, pl nem felel meg a sémának)
- warning - figyelmeztetés (pl. ha kétszer definiálunk egy típust)
Mik a SAX (simple api for XML) jellemzői? (3p)
- eseményvezérelt
- soros elérésű
- alacsony memória-igény
- nagy sebesség
- nem lehet előre- és visszaugrani
- állapotfüggetlen feldolgozás
Mik az AWT konténerek felelősségei? (3p)
- komponensek megtalálása
- fókusz továbbadása
- komponensek elhelyezése
Milyen tervezési mintákat valósítanak meg (Swing)? (4p)
- Konténerek és komponensek összekapcsolása
- Eseménykezelés
- LayoutManager használata
- JScrollPane használata
Szerintem inkább ez kell ide:
- Konténerek + komponensek - Composite pattern
- Eseménykezelés - Observer pattern
- LayoutManager - Strategy pattern
- JScrollPane-nél Decorator pattern
- JTree-nél Null Object pattern
Miért nem ajánlott beágyazott/mobil környezetben a Listener-alapú eseménykezelés? (2p)
- túlságosan is erőforrásigényes
- nem engedheti meg egy beágyazott környezet a beragadott objektumokat
- sokszor dinamikusan jönnek létre és szűnnek meg az objektumok
-- aldaris - 2009.05.27.
-- buc - 2008.06.03.
-- Csádám - 2010.05.31.