====== Przesyłanie sprawozdań ====== Do przesyłania sprawozdań oraz projektów końcowych należy skorzystać z funkcji [[http://home.agh.edu.pl/~pszwed/amo/upload/index.html|Upload]]. Aby przesyłać pliki lub je przeglądać niezbędne jest hasło. Każda grupa otrzyma hasło podczas zajęć. //W przypadku zgubienia/zapomnienia hasła - proszę o kontakt - prześlę hasło mailem// ====== Terminy sprawozdań ====== ^Zadania^Termin^Zakres^ |1-2 Diagram struktury klas i przypadki użycia |29.10.2018|Klasy dziedziny (atrybuty i relacje). Diagram przypadków użycia i **3 definicje** scenariuszy | |3. Diagram stanów|29.10.2018| Diagram stanów parsera i **jednego** elementu projektu| |4. Diagram czynności| 9.11.2018|Diagram czynności dla jednego z przypadków użycia (systemowy, z opisanym scenariuszem) oraz biznesowy. Scenariusz systemowy musi być możliwy do zidentyfikowania (nazwa!) | |5. Diagram klas + sekwencji|9.11.2018 |Jeden lub dwa diagramy klas i 2 diagramy sekwencji odpowiadające realizacji przypadków użycia| |6. Projektowanie|18.11.2018|Krótki opis, diagram klas, diagram sekwencji, zrzuty ekranu| :!: ** Uwaga: proszę w sprawozdaniach podawać temat projektu i listę autorów ** :!: ===== Zadania 1-2 ===== ==== Klasy ==== -Dla klas należy zdefiniować atrybuty. *Nie dodajemy atrybutu typu ''id'' (odpowiadającego za tożsamość obiektu). *Nie dodajemy atrybutów typu ''zwierzęta:Lista'' bo: *''zwierzęta'' powinny być nazwą roli przypisaną relacji *''Lista'' sugeruje implementację w jakimś języku programowania... *Uwzględniamy tylko te relacje, które są przechowywane w systemie. Czy jeżeli //Bibliotekarz// przegląda konto //Klienta// to zapisywana jest relacja //Bibliotekarz//--//Klient//? -Należy dodać **Słownik**, w którym zdefiniowane są klasy, np.: //Egzemplarz - reprezentuje publikację przechowywaną w księgozbiorze, ma nadany unikalny numer.// ==== Przypadki użycia ==== *Jeżeli w modelu dziedziny występuje klasa //ABC//, to bardzo często będzie niezbędny przypadek (lub kilka) użycia, który pozwala na utworzenie, edycję, usunięcie obiektu tej klasy. *Należy odrożnić //Aktora// od danych opisujących aktora w systemie. Np. aktorem systemu biblioteki może być //Czytelnik//, równocześnie w systemie są przetwarzane jego dane. Nie nazywajmy ich tak samo! Może to być więc *//Czytelnik// (aktor) i //KontoCzytelnika// (klasa) *//AktorCzytelnik// i //Czytelnik// *Jeśli przypadek użycia A włącza B: ''A <> B'', to w scenariuszu ''A'' musi się znaleźć wywołanie ''B'' *W przypadku rozszerzenia (''<>'') zazwyczaj scenariusz ma postać: Jeżeli <> zastąp punkty X do Y scenariusza przez punkty poniższe 1. Aktor wybiera... 2. System wyświetla... 3. itd... *Pamiętajmy: przypadek użycia powinien prowadzić do osiągnięcia zdefiniowanego celu. Często takim celem jest dodanie/uaktualnienie/znalezienie/usunięcie/przesłanie/odbiór rekordu danych. W przypadku przesłania/odbioru może to być rodzaj konwersacji. *Zazwyczaj identyfikując przypadek użycia należy odpowiedzieć na pytanie: //Co będzie w scenariuszu? (i z ilu kroków będzie się on składał).