Inżynieria Oprogramowania
Egzamin 2FD
Zadania wiążą się ze sobą!
Zadanie 1.
id
nazwa
id
data_od
data_do
wyrobID
typID
id
typ
1
trampki
1
1.01.2009
1.01.2010
1
1
1
buty
2
T-shirt
2
1.01.2010
NULL
1
3
2
odzież
3
1.01.2010
NULL
2
2
3
obuwie
Tabele pokazane wyżej zawierają dane wyrobów, typów i klasyfikację wyrobów.
W tabeli klasyfikacji dwie ostatnie kolumny są referencjami do odpowiednich tabel.
Narysuj diagram bazy danych dla pokazanych tabel.
Zadanie 2. * - musisz zrobić to zadanie poprawnie
Na podstawie diagramu z zadania 1 narysuj diagram związków encji.
Zadanie 3.
Uwzględniając rozwiązanie zadania 2, narysuj diagram klas dla obiektów transfero-
wych odpowiadających tabelom. Opisz asocjacje używając nazw, ról i liczebności.
W klasach wypisz wszystkie pola i metody.
Zadanie 4.
W ramach rozbudowy systemu z zadania 1,
wprowadzono obsługę zamówień. Kod obie-
ktu transferowego
ZamowienieDTO
pokazany
jest w ramce. Narysuj diagram klas dla
obiektów występujących w kodzie.
Wskazówka: Nie wypisuj metod klas. Właściwości zaznacz tylko dla klasy ZamowienieDTO. Klasy Date
nie rysuj na diagramie, traktuj ją jako typ atomowy. Opisz asocjacje (nazwy, role, liczebności).
Zadanie 5.
Uwzględniając rozwiązanie zadania 4, narysuj diagram ERD dla całego systemu.
W encjach nie wypisuj atrybutów, skup się na związkach.
Wskazówka: Na jednej pozycji zamówienia występuje jeden wyrób. Każdy wyrób może należeć do wielu
pozycji zamówień.
Zadanie 6. * - musisz zrobić to zadanie poprawnie
Narysuj diagram sekwencji dla funkcjonalności Dodaj Nowy Typ. Zastosuj wzorce
projektowe DTO, DAO, Session Façade, Application Service.
Wskazówka: aktorem jest obiekt bean klasy TypFormBackingBean. Nie wnikaj w działanie klasy DAO.
Zauważ, że nie stosujemy wzorca Business Delegate.
Inżynieria Oprogramowania
Egzamin 2FD
Zadania wiążą się ze sobą!
Zadanie 1.
id osoba
id data_od
data_do
osobaID nieruchomoscID
id nieruchomość
1 Adam K.
1
1.01.2009
1.01.2010 1
1
1
kamienica
2 Grzegorz D.
2
1.01.2010
NULL
2
1
2
piwnica
3
1.01.2010
NULL
1
3
3
garaż
Tabele pokazane wyżej zawierają dane osób, nieruchomości i właścicieli nierucho-
mości. W tabeli właścicieli dwie ostatnie kolumny są referencjami do odpowiednich
tabel. Narysuj diagram bazy danych dla pokazanych tabel.
Zadanie 2. * - musisz zrobić to zadanie poprawnie
Na podstawie diagramu z zadania 1 narysuj diagram związków encji.
Zadanie 3.
Uwzględniając rozwiązanie zadania 2, narysuj diagram klas dla obiektów transfero-
wych odpowiadających tabelom. Opisz asocjacje używając nazw, ról i liczebności.
W klasach wypisz wszystkie pola i metody.
Zadanie 4.
System z zadania 1 rozbudowano o ewidencję prac remon-
towych dla nieruchomości. Kod obiektu transferowego
RemontDTO
pokazany jest w ramce. Narysuj diagram klas
dla obiektów występujących w kodzie.
Wskazówka: Nie wypisuj metod klas. Właściwości zaznacz tylko dla klasy
RemontDTO. Klasy Date nie rysuj na diagramie, traktuj ją
jako typ atomowy. Opisz asocjacje (nazwy, role, liczebności).
Nieruchomość może być remontowana wielokrotnie.
Zadanie 5.
Uwzględniając rozwiązanie zadania 4, narysuj diagram ERD dla całego systemu.
W encjach nie wypisuj atrybutów, skup się na związkach.
Wskazówka: Remont dotyczy 1 lub wielu nieruchomości. Nieruchomość może być remontowana
wielokrotnie.
Zadanie 6. * - musisz zrobić to zadanie poprawnie
Narysuj diagram sekwencji dla funkcjonalności Aktualizuj Nieruchomość. Zastosuj
wzorce projektowe DTO, DAO, Session Façade, Application Service.
Wskazówka: aktorem jest obiekt bean klasy NieruchomoscFormBackingBean. Nie wnikaj w działanie
klasy DAO. Zauważ, że nie stosujemy wzorca Business Delegate.
A
23.06.2010
B
23.06.2010
public class ZamowienieDTO {
int zamowienieID;
Date dataZlozenia;
Klient klient;
List<PozZamDTO> pozycjeZam;
//metody
int getID() {…}
void setID(int ID) {…}
…
}
public class RemontDTO {
int remontID;
Date dataRemontu;
Firma wykonawca;
List<NieruchomoscDTO>
nieruchomosci;
//metody
int getID() {…}
void setID(int ID) {…}
…
}
Zadanie 7.
Narysuj diagram przypadków
użycia dla funkcjonalności Pokaż
Listę Nieruchomości (PLN) z ry-
sunku obok, zakładając, że:
•
funkcja PLN należy do
grupy funkcji Zarządzanie
Nieruchomościami,
•
dodawanie przebiega w dwóch krokach: wprowadzenie nieruchomości,
wprowadzenie właściciela (przypisanie osoby do nieruchomości)
•
edycja polega wyłącznie na korekcie danych nieruchomości.
Wskazówka: diagram powinien zawierać zależności extend i include.
Zadanie 8.
Kod w ramce pokazuje obsługę pobierania
danych dla formatki z zadania 7. Narysuj
diagram sekwencji modelujący ten kod, przy
założeniach:
•
aktorem jest obiekt klasy
NieruchomosciList
,
•
metoda
getNieruchomosci()
należy do
obiektu
bean
klasy
NieruchomosciListBackingBean
,
•
delegat już jest utworzony, jest to
obiekt klasy
Delegate
,
•
nie wnikaj w działanie delegata,
zamodeluj tylko, że tworzy w odpowiednim momencie listę nieruchomości
i listę właścicieli,
•
pętlę while modeluje blok loop.
Zadanie 7.
Narysuj diagram przypadków użycia dla fun-
kcjonalności Pokaż Listę Wyrobów (PLW) z ry-
sunku obok, zakładając, że:
•
funkcja PLW należy do grupy funkcji
Zarządzanie wyrobami,
•
dodawanie przebiega w dwóch
krokach: wprowadzenie wyrobu,
wprowadzenie klasyfikacji (przypisanie
typów do wyrobu)
•
edycja przebiega w dwóch krokach: korekta wyrobu, korekta klasyfikacji.
Wskazówka: diagram powinien zawierać zależności extend i include.
Zadanie 8.
Kod w ramce pokazuje obsługę pobierania danych
dla formatki z zadania 7. Narysuj diagram
sekwencji modelujący ten kod, przy założeniach:
•
aktorem jest obiekt klasy
WyrobyList
,
•
metoda
getWyroby()
należy do obiektu
bean
klasy
WyrobyListBackingBean
,
•
delegat już jest utworzony, jest to obiekt
klasy
Delegate
,
•
nie wnikaj w działanie delegata, zamodeluj
tylko, że tworzy w odpowiednim momencie
listę wyrobów i listę typów
•
pętlę while modeluje blok loop.
X
ID nazwa typy
1001 trampki obuwie
odzież sportowa
wyrób z Chin
1002 kozaki obuwie
Lista wyrobów
Edycja
Usuń
Dodaj
X
ID adres opis właściciel
1001 W. Pola 2, Rzeszów kamienica Grzegorz D.
1002 Wąska 13, Rzeszów dom Anna Z.
1003 Słaba 1, Rzeszów bunkier Adam K.
Lista nieruchomości
Edycja
Usuń
Dodaj
Historia własności
public List getWyroby() {
List<WyrobDTO> wyroby;
wyroby = delegate.getWyroby();
while(wyroby.hasNext()) {
WyrobDTO wyrob;
List typy;
wyrob = wyroby.next();
typy = delegate.getTypy(wyrob);
wyrob.setTypy(typy);
}
return wyroby;
}
public List getNieruchomosci() {
List<NieruchomoscDTO> nieruchomosci;
nieruchomosci =
delegate.getNieruchomosci();
while(nieruchomosci.hasNext()) {
NieruchomoscDTO n;
List wlasciciele;
n = nieruchomosci.next();
wlasciciele = delegate.getWlasciciele(n);
n.setWlasciciele(wlasciciele);
}
return nieruchomosci;
}