Objektumorientált szoftvertervezés - Vizsga, 2012.06.05.

A VIK Wikiből
A lap korábbi változatát látod, amilyen Unknown user (vitalap) 2012. október 21., 21:44-kor történt szerkesztése után volt. (Ú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)…”)
(eltér) ← Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)

Ez az oldal a korábbi SCH wikiről lett áthozva.

Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor, kérlek, javíts rajta egy rövid szerkesztéssel!

Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót.


OOterv vizsga 2012.06.05.

1. Rajzolja fel a JPA entitások életét leíró állapotdiagramot! (6 pont)

Ezen a helyen volt linkelve a ScreenShot2012-06-06at23.38.00.png nevű kép a régi wiki ezen oldaláról. (Kérlek hozd át ezt a képet ide, különben idővel el fog tűnni a régi wikivel együtt)


2. Legyen a következö objektumunk:

@Entity
public class Person {
	 @Id
	 private String name;
	 @OneToMany
	 public List<Person> gyerekek = new ArrayList<Person>();
	 
	 ...;
}
Elkészítettük a következö JPA lekérdezést:
Query q = em.createQuery("SELECT p.name, p.gyerekek FROM Person p");
Hajtsa végre a lekérdezést! (1 pont)
q.getResultList();
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)
<!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>

=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)

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.

Ezen a helyen volt linkelve a 2012-06-0510.19.07-1.jpg nevű kép a régi wiki ezen oldaláról. (Kérlek hozd át ezt a képet ide, különben idővel el fog tűnni a régi wikivel együtt)
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)
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);
	}
}

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" /

Á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)

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)

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;
	  }
}
E ? super E ? extends E ?
X_1 X
X_2 X
X_3 X


=Eredmények értékelése

Pontszám Osztályzat
21- 2
28- 3
35- 4
42- 5


-- Gollam - 2012.06.05. -- SzaCsaba - 2012.06.05.