background image

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) {…}
    …
}

background image

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;

}


Document Outline