„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)…”)
 
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]]

A lap 2012. december 17., 15:40-kori változata

OOterv vizsga 2012.06.05.

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)

-- Gollam - 2012.06.05.

-- SzaCsaba - 2012.06.05.