Proszę oceniać stosując załączone kryteria.
Kryteria sprawdzamy sekwencyjnie zaczynając od 1, przyznając punkty za każde spełnione
kryterium. Gdy w zadaniu wystąpi błąd, przerywamy sprawdzanie. Np. w takim rozwiązaniu
zadania 1:
w klasie obiektu transferowego jest niedopuszczalna metoda. Nie jest spełnione kryterium nr 4,
pozostałych kryteriów już nie sprawdzamy. Liczba punktów za to zadanie to 3.
W takim rozwiązaniu zadania 3:
występuje nieprawidłowy symbol. Nie jest spełnione kryterium nr 1, pozostałych kryteriów już nie
sprawdzamy. Liczba punktów za to zadanie to 0.
Oceniając, proszę zaznaczać błędy, tak jak pokazano w przykładach.
Na pierwszej stronie proszę wpisać liczbę punktów za test i łączną sumę punktów za zadania.
ZamowienieDTO
#ID: int
#data_zł: date
#wartość: float
--------------
+getID()
+setID(id)
+wyświetl()
PozycjaZamowieniaDTO
#ID: int
#ilość: int
#cena: float
#zamowienie:ZamowienieDTO
#wyrob: WyrobDTO
--------------
+get...()
+set...(...)
1 posiada → 1..*
zamówienie pozycjaZamówienia
WyrobDTO
#ID: int
#nazwa: string
--------------
+get...()
+set...(...)
0..*
1 występuje na →
pozycjaZamówienia
wyrób
4
3 punkty
fasada
:KadryFasada
serwis
:KadrySerwis
usunPracownika(pracownik)
delete(pracownik)
pracownikDAO
:PracownikDAO
1
0 punktów
Grupa A
Zadanie 1
Klasa WyrobDTO jest opcjonalna. Bez niej rozwiązanie jest prawidłowe.
Kryterium
punkty
1
Czy są 2 (lub 3) klasy?
1
2
Czy asocjacje są takie jak wyżej (nie patrzymy na nazwy, role, liczebności, typ)?
1
3
Czy pola są takie jak na rysunku? Może nie być typu pola (int, string), w klasie PozycjaZamowieniaDTO
może nie być pól zamowienie i wyrob.
1
4
Czy metody są takie jak na rysunku? Metody mogą być specyfikowane skrótowo, jak np. w klasie
PozycjaZamowieniaDTO. Metody inne niż get i set są niedopuszczalne
1
5
Czy asocjacje mają nazwy, takie, że da się przeczytać po polsku? (Zamówienie posiada pozycje
zamówienia)
1
6
Czy prawidłowo określono liczebność asocjacji?
1
7
Czy przy nazwie asocjacji jest strzałka pokazująca kierunek czytania?
1
8
Czy nazwa klasy jest rzeczownikiem w liczbie pojedynczej? (może nie być końcówki DTO)
1
9
Czy określono role asocjacji, tak że da się przeczytać zależność po polsku. Rola musi być rzeczownikiem.
Takie role jak na rysunku też mogą być.
1
10
Czy końcówka nazwy klasy to DTO lub TO?
1
Maks. Liczba punktów 10
Typ asocjacji jest nieistotny (romb może być zamalowany, lub może go nie być).
ZamowienieDTO
#ID: int
#data_zł: date
#wartość: float
--------------
+getID()
+setID(id)
+getWartosc()
+setWartosc(w)
....
PozycjaZamowieniaDTO
#ID: int
#ilość: int
#cena: float
#zamowienie:ZamowienieDTO
#wyrob: WyrobDTO
--------------
+get...()
+set...(...)
1 posiada → 1..*
zamówienie pozycjaZamówienia
WyrobDTO
#ID: int
#nazwa: string
--------------
+get...()
+set...(...)
0..*
1 występuje na →
pozycjaZamówienia
wyrób
Zadanie 2
Tutaj są niestety 2 prawidłowe rozwiązania, chociaż rysunek nr 2 jest mocno naciągany.
Kryterium
punkty
1
Czy symbole są prawidłowe (ludzik, elipsy, strzałki, linie przerywane). Brak systemu (ramka woków PU) jest
dopuszczalny.
1
2
Czy zgadza się liczba przypadków użycia?
1
3
Czy zależności są dokładnie takie ja na rysunku?
Sprawdzamy kierunki strzałek, nazwy zależności, połączenia PU zależnościami. Zależność od aktora do PU
może mieć strzałkę w kierunku PU.
3
4
Czy nazwy PU są czasownikami? (dopuszczamy rzeczowniki odsłowne, tj. zarządzanie, prezentacja)
1
5
Czy ludzik z lewej strony to kadry?
1
6
Czy nazwy PU są jednoznaczne? (PU 'usuń' jest wieloznaczny, bo nie wiadomo co usunąć)
1
7
Czy określono system? (ramka wokół PU)
1
8
Czy jest ludzik 'system' lub 'baza danych' lub podobnie brzmiący z prawej strony?
1
Maks. Liczba punktów 10
Zarządzanie kadrami
Prezentuj
Listę pracowników
Edycja
pracownika
Usuń
pracownika
Dodaj
pracownika
Kadry
System
<<extend>>
<<extend>>
<<extend>>
Zarządzanie kadrami
Zarządzaj
pracownikami
Edycja
pracownika
Usuń
pracownika
Dodaj
pracownika
Kadry
System
<<extend>>
<<extend>>
<<extend>>
Prezentuj
Listę pracowników
<<include>>
<<include>>
<<include>>
Zadanie 3
Kryterium
punkty
1
Czy symbole są prawidłowe (obiekty, linie życia, strzałki, linie ciągłe i przerywane)
Wywołanie konstruktora może być narysowane linią ciągłą, ale wtedy musi być nad nią lub pod nią
napisane <<create>>.
3
2
Czy sekwencja komunikatów jest prawidłowa? (fasada – serwis – DAO)
2
3
Czy prawidłowo opisano aktorów? (obiekt:Klasa, nazwy obiektów i klas muszą być takie jak wyżej)
2
4
Czy nazwy komunikatów są takie, jak na rysunku?
3
Maks. Liczba punktów 10
fasada
:KadryFasada
serwis
:KadrySerwis
usunPracownika(pracownik)
delete(pracownik)
pracownikDAO
:PracownikDAO
Grupa B
Zadanie 1
Kryterium
punkty
1
Czy są 2 klasy?
1
2
Czy asocjacje są takie jak wyżej (nie patrzymy na nazwy, role, liczebności, typ)?
1
3
Czy pola są takie jak na rysunku? Może nie być typu pola (int, string), w klasie
PrzydzialPodwladnegoDTO może nie być pól szef i podwładny
1
4
Czy metody są takie jak na rysunku? Metody mogą być specyfikowane skrótowo, jak np. w klasie
PrzydzialPodwladnegoDTO. Metody inne niż get i set są niedopuszczalne
1
5
Czy asocjacje mają nazwy, takie, że da się przeczytać po polsku? (Pracownik posiada Przydział
podwładnego, Przydział podwładnego dotyczy pracownika)
1
6
Czy prawidłowo określono liczebność asocjacji?
1
7
Czy przy nazwie asocjacji jest strzałka pokazująca kierunek czytania?
1
8
Czy nazwa klasy jest rzeczownikiem w liczbie pojedynczej? (może nie być końcówki DTO)
1
9
Czy określono role asocjacji, tak że da się przeczytać zależnośc po polsku. Rola musi być
rzeczownikiem. Takie role jak na rysunku też mogą być.
1
10 Czy końcówka nazwy klasy to DTO lub TO?
1
Maks. Liczba punktów 10
Typ asocjacji jest nieistotny (romb może być zamalowany, lub może go nie być).
PracownikDTO
#ID: int
#imie: string
#nazwisko: string
#adres: string
#data_ur: date
--------------
+getID()
+setID(id)
+getImie()
+setImie(imie)
....
PrzydzialPodwladnegoDTO
#ID: int
#od: date
#do: date
#szef: PracownikDTO
#podwladny: PracownikDTO
--------------
+get...()
+set...(...)
1 posiada → 0..*
szef przydziałSzefa
1 ← dotyczy 0..*
podwładny przydziałPodwładnego
Zadanie 2
Kryterium
punkty
1
Czy są 3 klasy?
1
2
Czy asocjacje są takie jak wyżej (nie patrzymy na nazwy, role, liczebności, typ)?
1
3
Czy pola są takie jak na rysunku? Może nie być typu pola (int, string). W klasie DaneOsoboweDTO
może być pole pracownik.
1
4
Czy metody są takie jak na rysunku? Metody mogą być specyfikowane skrótowo, jak np. w klasie
PrzydzialPodwladnegoDTO. Metody inne niż get i set są niedopuszczalne
1
5
Czy asocjacje mają nazwy, takie, że da się przeczytać po polsku? (Pracownik posiada Przydział
podwładnego, Przydział podwładnego dotyczy pracownika)
1
6
Czy prawidłowo określono liczebności asocjacji?
1
7
Czy przy nazwie asocjacji jest strzałka pokazująca kierunek czytania?
1
8
Czy nazwa klasy jest rzeczownikiem w liczbie pojedynczej? (może nie być końcówki DTO)
1
9
Czy określono role asocjacji, tak że da się przeczytać zależnośc po polsku. Rola musi być
rzeczownikiem. Takie role jak na rysunku też mogą być.
1
10
Czy końcówka nazwy klasy to DTO lub TO?
1
Maks. Liczba punktów 10
Typ asocjacji jest nieistotny (romb może być zamalowany, lub może go nie być).
PracownikDTO
#ID: int
#data_ur: date
--------------
+getID()
+setID(id)
+getImie()
+setImie(imie)
....
PrzydzialPodwladnegoDTO
#ID: int
#od: date
#do: date
#szef: PracownikDTO
#podwladny: PracownikDTO
--------------
+get...()
+set...(...)
1 posiada → 0..*
szef przydziałSzefa
1 ← dotyczy 0..*
podwładny przydziałPodwładnego
DaneOsoboweDTO
#ID: int
#imie: string
#nazwisko: string
#adres: string
#od: date
#do: date
--------------
+get...()
+set...(...)
1
1..*
posiada →
daneOsobowe
właściciel
Zadanie 3
Kryterium
punkty
1
Czy symbole są prawidłowe (obiekty, linie życia, strzałki, linie ciągłe i przerywane).
Wywołanie konstruktora może być narysowane linią ciągłą, ale wtedy musi być nad nią lub pod nią
napisane <<create>>.
3
2
Czy sekwencja komunikatów jest prawidłowa? (użytkownik – form – seans - fasada)
2
3
Czy prawidłowo opisano aktorów? (obiekt:Klasa, nazwy klas muszą być takie jak wyżej, wyjątkiem jest
Fasada: może być dowolna nazwa z końcówką Fasada lub Facade)
2
4
Czy nazwy komunikatów są takie, jak na rysunku?
3
Maks. Liczba punktów 10
użytkownik
seansForm
:SeansForm
onClickOK()
fasada
:Fasada
dodajSeans(seans)
seans
:SeansDTO
seans(data,sala,filmID)
Grupa C
Zadanie 1
Kryterium
punkty
1
Czy są 3 klasy?
1
2
Czy asocjacje są takie jak wyżej (nie patrzymy na nazwy, role, liczebności, typ)?
1
3
Czy pola są takie jak na rysunku? Może nie być typu pola (int, string), w klasie KlasyfikacjaDTO mogą
być dodatkowe pola o nazwach 'wyrob' i 'typ'
1
4
Czy metody są takie jak na rysunku? Metody mogą być specyfikowane skrótowo, jak np. w klasie
TypDTO. Metody inne niż get i set są niedopuszczalne
1
5
Czy asocjacje mają nazwy, takie, że da się przeczytać po polsku? (Wyrób posiada klasyfikację, typ
posiada klasyfikację)
1
6
Czy prawidłowo określono liczebność asocjacji?
1
7
Czy przy nazwie asocjacji jest strzałka pokazująca kierunek czytania?
1
8
Czy nazwa klasy jest rzeczownikiem w liczbie pojedynczej? (może nie być końcówki DTO)
1
9
Czy określono role asocjacji, tak że da się przeczytać zależnośc po polsku. Rola musi być
rzeczownikiem. Takie role jak na rysunku też mogą być.
1
10
Czy końcówka nazwy klasy to DTO lub TO?
1
Maks. Liczba punktów 10
Typ asocjacji jest nieistotny (romb może być zamalowany, lub może go nie być).
WyrobDTO
#ID: int
#nazwa: string
--------------
+getID()
+setID(id)
+getNazwa()
+setNazwa(n)
KlasyfikacjaDTO
#ID: int
#data_od: date
#data_do: date
--------------
+get...()
+set...(...)
TypDTO
#ID: int
#typ: string
--------------
+get...()
+set...(...)
1..* ←posiada 1
1 posiada → 1..*
wyrób klasyfikacja
klasyfikacja typ
Zadanie 2
Tutaj są niestety 2 prawidłowe rozwiązania, chociaż rysunek nr 2 jest mocno naciągany.
Kryterium
punkty
1
Czy symbole są prawidłowe (ludzik, elipsy, strzałki, linie przerywane). Brak systemu (ramka woków PU) jest
dopuszczalny.
1
2
Czy zgadza się liczba przypadków użycia
1
3
Czy zależności są dokładnie takie ja na rysunku?
Sprawdzamy kierunki strzałek, nazwy zależności, połączenia PU zależnościami. Zależność od aktora do
PU może mieć strzałkę w kierunku PU.
3
4
Czy nazwy PU są czasownikami? (dopuszczamy rzeczowniki odsłowne, tj. zarządzanie, prezentacja)
1
5
Czy ludzik z lewej strony to pracownik?
1
6
Czy nazwy PU są jednoznaczne? (PU 'usuń' jest wieloznaczny, bo nie wiadomo co usunąć)
1
7
Czy określono system? (ramka wokół PU)
1
8
Czy jest ludzik 'system' lub 'baza danych' lub podobnie brzmiący z prawej strony?
1
Maks. Liczba punktów 10
Zarządzanie wyrobami
Prezentuj
Listę wyrobów
Edycja
wyrobu
Usuń
wyrób
Dodaj
wyrób
Pracownicy
System
<<extend>>
<<extend>>
<<extend>>
Zarządzanie wyrobami
Zarządzaj
wyrobami
Edycja
wyrobu
Usuń
wyrób
Dodaj
wyrób
Pracownicy
System
<<extend>>
<<extend>>
<<extend>>
Prezentuj
Listę wyrobów
<<include>>
<<include>>
<<include>>
Zadanie 3
Kryterium
punkty
1
Czy symbole są prawidłowe (obiekty, linie życia, strzałki, linie ciągłe i przerywane).
Wywołanie konstruktora może być narysowane linią ciągłą, ale wtedy musi być nad nią lub pod nią
napisane <<create>>.
2
2
Czy sekwencja komunikatów jest prawidłowa? (onClick – fasada – serwis – dao; OnClick - gui)
2
3
Czy z klasy DAO zwracany jest komunikat?
Nazwa komunikatu zwrotnego musi być taka sama, jak nazwa obiektu tworzonego przez DAO. Na
rysunku jest to listaWyrobow.
2
4
Czy prawidłowo opisano aktorów?
Schemat nazwy: obiekt:Klasa. Nazwy klas i obiektów mogą być trochę inne, np. WyrobyFacade,
WyrobyService, ale klasy muszą mieć końcówki Facade, Service, DAO. Nazwa klasy komunikatu
zwrotnego może być List<WyrobDTO>, ListaWyrobowDTO, ListaWyrobow.
2
5
Czy nazwy komunikatów jednoznacznie sugerują pobieranie listy wyrobów?
np. komunikat 'pobierz()' lub 'getLista()' lub 'pobierzDane()' jest dyskwalifikujący
1
6
Czy do obiektu gui wysłany jest komunikat o nazwie show(x)? x – obiekt zwrócony z fasady
1
Maks. Liczba punktów
10
onClickWyroby
:MenuCommand
facade
:Facade
getWyroby()
service
:Service
getWyroby()
dao
:WyrobyDAO
getWyroby()
listaWyrobow
:WyrobDTO
listaWyrobow
listaWyrobow
listaWyrobow
gui
:GUI
show(listaWyrobow)
onClickWyroby
:MenuCommand
facade
:Facade
getWyroby()
service
:Service
getWyroby()
dao
:WyrobyDAO
getWyroby()
listaWyrobow
:WyrobDTO
listaWyrobow
listaWyrobow
listaWyrobow
gui
:GUI
show(listaWyrobow)
Grupa D
Zadanie 1
Kryterium
punkty
1
Czy są 3 klasy?
1
2
Czy asocjacje są takie jak wyżej (nie patrzymy na nazwy, role, liczebności, typ)?
1
3
Czy pola są takie jak na rysunku? Może nie być typu pola (int, string), w klasie
WłaścicielNieruchomościDTO może nie być pól osoba i nieruchomość.
1
4
Czy metody są takie jak na rysunku? Metody mogą być specyfikowane skrótowo, jak np. w klasie
NieruchomoscDTO. Metody inne niż get i set są niedopuszczalne
1
5
Czy asocjacje mają nazwy, takie, że da się przeczytać po polsku? (nieruchomość posiada właściciela
nieruchomości)
1
6
Czy prawidłowo określono liczebność asocjacji?
1
7
Czy przy nazwie asocjacji jest strzałka pokazująca kierunek czytania?
1
8
Czy nazwa klasy jest rzeczownikiem w liczbie pojedynczej? (może nie być końcówki DTO)
1
9
Czy określono role asocjacji, tak że da się przeczytać zależność po polsku. Rola musi być
rzeczownikiem. Takie role jak na rysunku też mogą być.
1
10 Czy końcówka nazwy klasy to DTO lub TO?
1
Maks. Liczba punktów 10
Typ asocjacji jest nieistotny (romb może być zamalowany, lub może go nie być).
OsobaDTO
#ID: int
#osoba: string
--------------
+getID()
+setID(id)
+getOsoba()
+setOsoba(os)
....
WłaścicielNieruchomościDTO
#ID: int
#data_od: date
#data_do: date
#osoba: OsobaDTO
#nieruchomość: NieruchomoscDTO
--------------
+get...()
+set...(...)
1 jest → 0..*
właściciel własność
NieruchomoscDTO
#ID: int
#nieruchomosc: string
--------------
+get...()
+set...(...)
1..*
1 posiada →
wlaściciel
własność
Zadanie 2
Tutaj są niestety 2 prawidłowe rozwiązania, chociaż rysunek nr 2 jest mocno naciągany.
Kryterium
punkty
1
Czy symbole są prawidłowe (ludzik, elipsy, strzałki, linie przerywane). Brak systemu (ramka woków PU) jest
dopuszczalny.
1
2
Czy zgadza się liczba przypadków użycia
1
3
Czy zależności są dokładnie takie ja na rysunku?
Sprawdzamy kierunki strzałek, nazwy zależności, połączenia PU zależnościami. Zależność od aktora do
PU może mieć strzałkę w kierunku PU.
3
4
Czy nazwy PU są czasownikami? (dopuszczamy rzeczowniki odsłowne, tj. zarządzanie, prezentacja)
1
5
Czy ludzik z lewej strony to pracownik lub pracownicy?
1
6
Czy nazwy PU są jednoznaczne? (PU 'usuń' jest wieloznaczny, bo nie wiadomo co usunąć)
1
7
Czy określono system? (ramka wokół PU)
1
8
Czy jest ludzik 'system' lub 'baza danych' lub podobnie brzmiący z prawej strony?
1
Maks. Liczba punktów 10
Zarządzanie nieruchomościami
Prezentuj
Listę nieruchomości
Edycja
nieruchomości
Usuń
nieruchomość
Dodaj
nieruchomość
Pracownik
System
<<extend>>
<<extend>>
<<extend>>
Prezentuj
historię własności
<<extend>>
Zarządzanie nieruchomościami
Zarządzaj
nieruchomościami
Edycja
nieruchomości
Usuń
nieruchomość
Dodaj
nieruchomość
Pracownik
System
<<extend>>
<<extend>>
<<extend>>
Prezentuj
historię własności
<<extend>>
Prezentuj
Listę nieruchomości
<<include>>
<<include>>
<<include>>
<<include>>
Zadanie 3
Kryterium
punkty
1
Czy symbole są prawidłowe (obiekty, linie życia, strzałki, linie ciągłe i przerywane).
Wywołanie konstruktora może być narysowane linią ciągłą, ale wtedy musi być nad nią lub pod nią
napisane <<create>>.
2
2
Czy sekwencja komunikatów jest prawidłowa? (onClick – fasada – serwis – dao; OnClick - gui)
2
3
Czy z klasy DAO zwracany jest komunikat?
Nazwa komunikatu zwrotnego musi być taka sama, jak nazwa obiektu tworzonego przez DAO. Na
rysunku jest to listaNieruchomosci.
2
4
Czy prawidłowo opisano aktorów?
Schemat nazwy: obiekt:Klasa. Nazwy klas i obiektów mogą być trochę inne, np. NieruchomosciFacade,
NieruchomosciService, ale klasy muszą mieć końcówki Facade, Service, DAO. Nazwa klasy
komunikatu zwrotnego może być List<NieruchomoscDTO>, ListaNieruchomosciDTO,
ListaNieruchomosci.
2
5
Czy nazwy komunikatów jednoznacznie sugerują pobieranie listy nieruchomości?
np. komunikat 'pobierz()' lub 'getLista()' lub 'pobierzDane()' jest dyskwalifikujący
1
6
Czy do obiektu gui wysłany jest komunikat o nazwie show(x)? x – obiekt zwrócony z fasady
1
Maks. Liczba punktów 10
onClickNieruchomości
:MenuCommand
facade
:Facade
getNieruchomosci()
service
:Service
dao
:NieruchomosciDAO
listaNieruchomosci
:NieruchomoscDTO
listaNieruchomosci
listaNieruchomosci
listaNieruchomosci
gui
:GUI
show(listaNieruchomosci)
getNieruchomosci()
getNieruchomosci()