„Objektumorientált szoftvertervezés - Vizsga, 2012.06.05.” változatai közötti eltérés

Új oldal, tartalma: „{{GlobalTemplate|Infoszak|OotVizsga20120605}} ===OOterv vizsga 2012.06.05.=== __TOC__ ====1. Rajzolja fel a JPA entitások életét leíró állapotdiagramot! (6 pont)…”
 
Ferrero (vitalap | szerkesztései)
Nincs szerkesztési összefoglaló
1. sor: 1. sor:
{{GlobalTemplate|Infoszak|OotVizsga20120605}}
===OOterv vizsga 2012.06.05.===
===OOterv vizsga 2012.06.05.===
__TOC__
__TOC__
====1. Rajzolja fel a JPA entitások életét leíró állapotdiagramot! (6 pont)====
=== 1. JPA entitások diagramja ===
{{InLineImageLink|Infoszak|OotVizsga20120605|ScreenShot2012-06-06at23.38.00.png}}


====2. Legyen a következö objektumunk:====
=== 2. Egy objektumon JPA lekérdezést kellett írni, illetve DTD adatszerkezetet kellett írni ===
<pre>
@Entity
public class Person {
@Id
private String name;
@OneToMany
public List<Person> gyerekek = new ArrayList<Person>();
...;
}
</pre>


=====Elkészítettük a következö JPA lekérdezést:=====
=== 3. ObjectStore root-kezelés VS. RMI Registry ===
<pre>
Query q = em.createQuery("SELECT p.name, p.gyerekek FROM Person p");
</pre>


=====Hajtsa végre a lekérdezést! (1 pont)=====
=== 4. Visitor combinatort ===
<pre>
q.getResultList();
</pre>


=====Mi (milyen osztály) lesz a végrehajtás eredménye? (3 pont)=====
=== 5. SAX és DOM ===
List&lt;Object[]&gt;
=====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)===
=== 6. Elosztott keretrendszerek általános modelljének eleme jellemzői ===


{| border="1"
=== 7. Java osztályok és interfészeket kellett tervezési mintákhoz rendelni ===
| || 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.====
=== 8. Java kivételtípusoknak, azok jellemzői ===
{{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)====
=== 9. A CORBA Event Service Proxyja ===


====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)====
=== 10. Java kollekciók milyen függvényeket tartalmaznak (List, Set, Iterator, ListIterator) ===
<img src="%ATTACHURLPATH%/ooterv.jpg" alt="feladat_6"  width="1141" height="308"  /


{| border="1"
=== 11. Java genericitásos feladat (E, ? super E, ? extends E) ===
| Á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)====
-- [[HinelBalazs|Gollam]] - 2012.06.05.
=====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.
-- [[SzaCsaba]] - 2012.06.05.




[[Category:Infoszak]]
[[Category:Infoszak]]