Inżynieria Oprogramowania
Egzamin 2FD
Zadania wiążą się ze sobą!
Wstęp
Mamy następujące dane na temat systemu informatycznego:
Wyroby
Klasyfikacje
Typy
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
Encje
Funkcje
Wyrób Klasyfikacja Typ
Zarządzaj wyrobami
Dodaj nowy wyrób
C
C
R
Edytuj wyrób
U
UC
R
Usuń wyrób
D
D
Pokaż listę wyrobów R
R
R
Zadanie 1.
Napisz kod klas obiektów
transferowych używanych
przez funkcję Dodaj nowy
wyrób. Na diagramie DFD przepływ Formularz wyrobu nie jest obiektem
transferowym. Formularz wyrobu pokazany jest na drugiej stronie. Dane przesyłane
z formularza to obiekt klasy Wyrob i typyTO
_ _
. Oprócz klas list utwórz też kod dla
pojedynczych obiektów.
Zadanie 2.
funkcję Dodaj nowy wyrób zaimplementowano stosując wzorce projektowe MVC,
Session Facade, DAO, DTO, Application Service. Narysuj diagram klas pokazujący
zależności dynamiczne między klasami tworzącymi logikę aplikacji (backing bean,
DAO, serwis i fasada). Uwzględnij wszystkie potrzebne klasy DAO i wszystkie
metody klas.
Zadanie 3.
Napisz kod klas fasady i serwisowej, zawierający metody potrzebne do implementacji
diagramu DFD. Funkcja Pokaż formularz wyrobu nie jest funkcją fasady ani serwisu
(funkcjonalność tę realizuje warstwa prezentacji).
Inżynieria Oprogramowania
Egzamin 2FD
Zadania wiążą się ze sobą!
Wstęp
Mamy następujące dane na temat systemu informatycznego:
Osoby
Właściciele
Budynki
id osoba
id data_od
data_do
osobaID budynekID
id opis
adres
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 dom
….
3
1.01.2010
NULL
1
3
3 bunkier
….
Encje
Funkcje
Osoba Właś-
ciciel
Budynek
Zarządzaj budynkami
Dodaj nowy budynek R
C
C
Edytuj budynek
R
UC
U
Usuń budynek
D
D
Pokaż listę budynków R
R
R
Zadanie 1.
Napisz kod klas obiektów
transferowych używanych
przez funkcję Pokaż listę
budynków. Na diagramie DFD przepływ Lista budynków nie jest obiektem
transferowym. Formatka raportu pokazana jest na drugiej stronie. Raport wyświetla
dane przesłane w obiekcie klasy ListaBudynków i WłaścicieliTO
_ _
. Oprócz klas list
utwórz też kod dla pojedynczych obiektów.
Zadanie 2.
Funkcję Pokaż listę budynków zaimplementowano stosując wzorce projektowe MVC,
Session Facade, DAO, DTO, Application Service. Narysuj diagram klas pokazujący
zależności dynamiczne między klasami tworzącymi logikę aplikacji (backing bean,
DAO, serwis i fasada). Uwzględnij wszystkie potrzebne klasy DAO i wszystkie
metody klas.
Zadanie 3.
Napisz kod klas fasady i serwisowej, zawierający metody potrzebne do implementacji
diagramu DFD. Funkcja Pokaż budynki nie jest funkcją fasady ani serwisu
(funkcjonalność tę realizuje warstwa prezentacji). Nie wnikaj w szczegóły algorytmu
tworzenia listy budynków i właścicieli, zaznacz tylko wywołania odpowiednich
metod obiektów dostępu do danych.
A
29.06.2010
B
29.06.2010
Pobierz listę typów
Pracownik
Dodaj nowy wyrób
Pokaż formularz
wyrobu
Typy
Wyroby
Klasyfikacje
Lis
taT
yp
ow
TO
ListaTypowTO
Formularz wyrobu
Utwórz wyrób
KlasyfikacjaDTO
Wy
rob
DT
O
Wyrob_i_typyTO
Pobierz budynki
Pracownik
Pokaż listę budynków
Pokaż budynki
Budynki
Osoby
Właściciele
Lis
taB
ud
yn
kó
wT
O
ListaBudynków_i_WłaścicieliTO
Lista budynków
Lista
Wła
ścic
ieliT
O
ListaOsóbTO
Wygląd okna raportu o budynkach
Przykłady kodu w języku Java
public class KlasaDTO implements Serializable {
int ID; String tekst;
// między KlasaDTO a Klasa2DTO jest asocjacja o liczebności 0..*
//albo 1..*
List<Klasa2DTO> listaObiektów;
// między KlasaDTO a Klasa3DTO jest asocjacja o liczebności 1
Klasa3DTO pojedynczyObiekt;
//tutaj metody
public void nazwaMetody(int parametr) { this.id = parametr;}
public String nazwaMetody2() { return this.id;}
}
//przykład listy obiektów TO
public class ListaObiektówTO extends ArrayList<KlasaDTO>
implements Serializable {}
public class LogikaAplikacji {
KlasaUslugowa usluga; KlasaUslugowa2 usluga2;
public LogikaAplikacji() { //konstruktor klasy
usluga = new KlasaUslugowa(); usluga2 = new KlasaUslugowa2();
}
public KlasaDTO pobierzKlasa() {
ListObiektowTO lista;
lista = usluga.pobierzKlasa();
for(KlasaDTO k: lista) {
ListaObiektow2TO lista2 = usluga2.pobierzKlasa2(k);
k.ustawListę(lista2);
}
}
public void usunKlasa(KlasaDTO x) {
usluga.usunKlasa(x);
}
}
Wygląd okna formularza wyrobu
Formularz nie pokazuje ID obiektów, lecz obiekty TO mają identyfikatory.
Użytkownik wprowadza dane wyrobu i przydziela mu listę typów.
Przykłady kodu w języku Java
public class KlasaDTO implements Serializable {
int ID; String tekst;
// między KlasaDTO a Klasa2DTO jest asocjacja o liczebności 0..*
//albo 1..*
List<Klasa2DTO> listaObiektów;
// między KlasaDTO a Klasa3DTO jest asocjacja o liczebności 1
Klasa3DTO pojedynczyObiekt;
//tutaj metody
public void nazwaMetody(int parametr) { this.id = parametr;}
public String nazwaMetody2() { return this.id;}
}
//przykład listy obiektów TO
public class ListaObiektówTO extends ArrayList<KlasaDTO>
implements Serializable {}
public class LogikaAplikacji {
KlasaUslugowa usluga; KlasaUslugowa2 usluga2;
public LogikaAplikacji() { //konstruktor klasy
usluga = new KlasaUslugowa(); usluga2 = new KlasaUslugowa2();
}
public KlasaDTO pobierzKlasa() {
ListObiektowTO lista;
lista = usluga.pobierzKlasa();
for(KlasaDTO k: lista) {
ListaObiektow2TO lista2 = usluga2.pobierzKlasa2(k);
k.ustawListę(lista2);
}
}
public void usunKlasa(KlasaDTO x) {
usluga.usunKlasa(x);
}
}
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 budynków
Edycja
Usuń
Dodaj
Historia własności
X
Wybierz typy wyrobu:
buty
odzież
obuwie
Nowy wyrób
Anuluj
Dodaj
Nazwa: