„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)…”
 
Hryghr (vitalap | szerkesztései)
 
(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&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)===
 
{| 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]]