|
|
(4 közbenső módosítás, amit egy másik szerkesztő végzett, nincs mutatva) |
1. sor: |
1. sor: |
| {{GlobalTemplate|Infoszak|OotVizsga20120605}}
| | # JPA entitások diagramja |
| | | # Egy objektumon JPA lekérdezést kellett írni, illetve DTD adatszerkezetet kellett írni |
| ===OOterv vizsga 2012.06.05.===
| | # ObjectStore root-kezelés VS. RMI Registry |
| __TOC__
| | # Visitor combinatort |
| ====1. Rajzolja fel a JPA entitások életét leíró állapotdiagramot! (6 pont)====
| | # SAX és DOM |
| {{InLineImageLink|Infoszak|OotVizsga20120605|ScreenShot2012-06-06at23.38.00.png}}
| | # Elosztott keretrendszerek általános modelljének eleme jellemzői |
| | | # Java osztályok és interfészeket kellett tervezési mintákhoz rendelni |
| ====2. Legyen a következö objektumunk:====
| | # Java kivételtípusoknak, azok jellemzői |
| <pre>
| | # A CORBA Event Service Proxyja |
| @Entity
| | # Java kollekciók milyen függvényeket tartalmaznak (List, Set, Iterator, ListIterator) |
| public class Person {
| | # Java genericitásos feladat (E, ? super E, ? extends E) |
| @Id
| |
| private String name;
| |
| @OneToMany
| |
| public List<Person> gyerekek = new ArrayList<Person>();
| |
|
| |
| ...;
| |
| }
| |
| </pre>
| |
| | |
| =====Elkészítettük a következö JPA lekérdezést:=====
| |
| <pre>
| |
| Query q = em.createQuery("SELECT p.name, p.gyerekek FROM Person p");
| |
| </pre>
| |
| | |
| =====Hajtsa végre a lekérdezést! (1 pont)=====
| |
| <pre>
| |
| q.getResultList();
| |
| </pre>
| |
| | |
| =====Mi (milyen osztály) lesz a végrehajtás eredménye? (3 pont)=====
| |
| List<Object[]>
| |
| =====Definiálja az eredményül kapott adatszerkezetet DTD-vel! Adjon egy XML példát, amelyben Jóskának két fia van, Béla és Péter! (extra 5 pont - spéci kód nem használható fel)=====
| |
| <pre>
| |
| <!DOCTYPE result [
| |
| <!ELEMENT result ((Person, gyerekek*)*)>
| |
| <!ELEMENT Person (gyerekek?)>
| |
| <!ELEMENT gyerekek (Person*)>
| |
| <!ATTRIBUTE Person name>
| |
| ]>
| |
| <Person name = "Jóska">
| |
| <gyerekek>
| |
| <Person name = "Béla">
| |
| <Person name = "Péter">
| |
| </gyerekek>
| |
| </Person>
| |
| </pre>
| |
| | |
| ====3. Mi a hasonlóság és a különbség az Objectstore root-kezelés és az RMI Registry között? (5 pont)===
| |
| | |
| {| border="1"
| |
| | || Objectstore || RMI Registry
| |
| |-
| |
| | mi azonosítja a szolgáltatást? || ||
| |
| |-
| |
| | mi a célja? || ||
| |
| |-
| |
| | mire kereshetünk? || ||
| |
| |}
| |
| | |
| ====4. Készítsen egy '''_Rnd_''' visitor combinatort, amely két visitor közül látogatásként véletlenül választva az egyik visitorral látogatja meg az Elem-et.====
| |
| {{InLineImageLink|Infoszak|OotVizsga20120605|2012-06-0510.19.07-1.jpg}}
| |
| =====Véletlen szám generáláshoz használja a standard Math class random metódusát, amely az API szerint: static double random() Returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0. Írja meg az Rnd osztály kódját (attribútumokat, metódusokat ...) Java nyelven! (5 pont)=====
| |
| <pre>
| |
| public class Rnd implements Visitor {
| |
| private Visitor V1;
| |
| private Visitor V2;
| |
| public Rnd(Visitor _v1, Visitor _v2){
| |
| V1 = _v1;
| |
| V2 = _v2;
| |
| }
| |
| public void Visit_Elem(Elem e){
| |
| if(Math.random()>0.5)
| |
| e.accept(V1);
| |
| else
| |
| e.accept(V2);
| |
| }
| |
| }
| |
| </pre>
| |
| | |
| ====5. Mire használható a SAX és a DOM? Mi a különbség a kettö között? (7 pont)====
| |
| | |
| ====6. Az alábbi ábrán megjelenik az elosztott keretrendszerek általános modelljének elemei. Jelölje az egyes elemekre érvényes igaz állításokat! (5 pont)====
| |
| <img src="%ATTACHURLPATH%/ooterv.jpg" alt="feladat_6" width="1141" height="308" /
| |
| | |
| {| border="1"
| |
| | Állítás || 1 || 2 || 3 || 4 || 5 || 6 || 7
| |
| |-
| |
| | Fejlesztö definiálja, specifikálja || || || || || || ||
| |
| |-
| |
| | Fejlesztö implementálja || || || || || || ||
| |
| |-
| |
| | Webservice-ek esetén WSDL adja meg || || || || || || ||
| |
| |-
| |
| | Csak a CORBA Trading Service része || || || || || || ||
| |
| |-
| |
| | CORBA esetén az OIOP/IIOP specifikálja || || || || || || ||
| |
| |-
| |
| | Keretrendszer fordítási idöben generálja || || || || || || ||
| |
| |-
| |
| | Callback minta esetén a kliens oldalon szerepel || || || || || || ||
| |
| |-
| |
| | CORBA esetén IDL-ben specifikáljuk || || || || || || ||
| |
| |-
| |
| | Keretrendszerben gyárilag implementálva van || || || || || || ||
| |
| |-
| |
| | Webservice-ek esetén SOAP || || || || || || ||
| |
| |}
| |
| | |
| ====7. Milyen tervezési mintát valósítanak meg az alábbi Java osztályok és interfészek? (3 pont)====
| |
| =====java.concurrent.CopyOnWriteArrayList=====
| |
| =====java.util.Comparator : Comparator minta=====
| |
| =====javax.swing.JScrollPane : Decorator minta=====
| |
| =====java.rmi.server.RemoteStub : Proxy minta=====
| |
| =====javax.swing.GroupLayout.Paralellgroup : Strategy minta=====
| |
| | |
| ====8. Mi a felelössége az alábbi kivételtípusoknak (mit jeleznek, mit kell velük tenni)? (4 pont)====
| |
| =====Throwable:=====
| |
| =====Exception:=====
| |
| =====Error:=====
| |
| =====RuntimeException:=====
| |
| | |
| ====9. A CORBA Event Service Proxyjának mi a felelössége? (5 pont)====
| |
| | |
| ====10. Jelölje X-szel az egyes interfészek esetén, hogy mely metódusokat tartalmazzák? (5 pont)===
| |
| | |
| {| border="1"
| |
| | Metódus || List<X> || Set<X> || Iterator<T> || ListIterator<T>
| |
| |-
| |
| | void add(T t) || || || ||
| |
| |-
| |
| | void add(int i, T t) || || || ||
| |
| |-
| |
| | void set(T t) || || || ||
| |
| |-
| |
| | T get(int i) || || || ||
| |
| |-
| |
| | boolean compare(T t) || || || ||
| |
| |-
| |
| | Iterator<T> iterator() || || || ||
| |
| |-
| |
| | boolean hasNext() || || || ||
| |
| |-
| |
| | T remove(int i) || || || ||
| |
| |-
| |
| | void remove() || || || ||
| |
| |-
| |
| | T previous() || || || ||
| |
| |}
| |
| | |
| | |
| ====11. Az alábbi táblázatban jelölje X-szel, hogy melyik kifejezést kell az egyes X_? típusok helyére írni, ha a legáltalánosabb megoldást szeretnénk elérni. (3 pont)====
| |
| <pre>
| |
| public class MySet<E> {
| |
| Collection<E> v;
| |
| ...;
| |
| public void push(E e) {...}
| |
| public E pop() {...}
| |
| boolean isEmpty() {...}
| |
| void pushAll(MySet<X_1> a) {
| |
| while (!a.isEmpty()) {
| |
| push(a.pop()); }
| |
| }
| |
| public E popTo(MySet<X_2> f1, MySet<X_3> f2) {
| |
| E last = null;
| |
| while (!f1.isEmpty()) {
| |
| last = f1.pop();
| |
| f2.push(last);
| |
| }
| |
| return last;
| |
| }
| |
| }
| |
| </pre>
| |
| | |
| {| border="1"
| |
| | || E || ? super E || ? extends E || ?
| |
| |-
| |
| | X_1 || || ||X||
| |
| |-
| |
| | X_2 || || ||X||
| |
| |-
| |
| | X_3 || ||X|| ||
| |
| |}
| |
| | |
| | |
| ====Eredmények értékelése===
| |
| | |
| {| border="1"
| |
| | Pontszám || Osztályzat
| |
| |-
| |
| | 21- || 2
| |
| |-
| |
| | 28- || 3
| |
| |-
| |
| | 35- || 4
| |
| |-
| |
| | 42- || 5
| |
| |}
| |
| | |
| | |
| -- [[HinelBalazs|Gollam]] - 2012.06.05.
| |
| -- [[SzaCsaba]] - 2012.06.05.
| |
| | |
|
| |
|
| [[Category:Infoszak]] | | [[Category:Infoszak]] |