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

A VIK Wikiből
Ugrás a navigációhoz Ugrás a kereséshez
(Ú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)…”)
 
a (Hryghr átnevezte a(z) OOterv vizsga 2012.06.05. lapot a következő névre: Objektumorientált szoftvertervezés - Vizsga, 2012.06.05.)
 
(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]]

A lap jelenlegi, 2013. június 13., 21:07-kori változata

  1. JPA entitások diagramja
  2. Egy objektumon JPA lekérdezést kellett írni, illetve DTD adatszerkezetet kellett írni
  3. ObjectStore root-kezelés VS. RMI Registry
  4. Visitor combinatort
  5. SAX és DOM
  6. Elosztott keretrendszerek általános modelljének eleme jellemzői
  7. Java osztályok és interfészeket kellett tervezési mintákhoz rendelni
  8. Java kivételtípusoknak, azok jellemzői
  9. A CORBA Event Service Proxyja
  10. Java kollekciók milyen függvényeket tartalmaznak (List, Set, Iterator, ListIterator)
  11. Java genericitásos feladat (E, ? super E, ? extends E)