Witam,
To mój pierwszy post w tym temacie i jednocześnie pierwsza tego typu rzecz jaką mam wykonać. Program liczący schemat Bernoulliego, zawiera klasy: Bernoulli która komponuje klasę DwumianNewtona i klasę Potęga. Klasa DwumianNewtona komponuje klasę Silnia. Wszystko tak, aby miało sens i liczyło schemat Bernouliego dla odpowiednich danych. Mam do tego zrobić diagram przypadków użycia i nie do końca wiem co taki diagram ma zawierać, trochę czytałem już na ten temat, ale nie mogę tego ogarnąć. Nie wiem czy powinienem w nim zawrzeć wszystkie te klasy czy tylko tą z którą użytkownik ma "kontakt". Proszę o wskazówkę.
Diagram Use-Case w ogóle nie zawiera klas! On zawiera tylko Aktorów (czyli wszystkich którzy korzystają z systemu) oraz Przypadki Użycia (czyli sytuacje kiedy system jest używany).
Aktorem moze być "Uczeń" a przypadkami użycia "Oblicz Schemat Bernoulliego", "Oblicz silnie", "Oblicz Dwumian".
Dzięki za odpowiedź. Czyli coś takiego jest dobre (patrz załącznik)? Nie do końca rozumiem kiedy używać extend, include, asocjacji, itp. miedzy przypadkami użycia i jak się to ma w zależności od powiązania między klasami.
Include idą w drugą stronę. Include oznacza "ten przypadek zawiera tamten" (strzałka w kierunki zawieranego). Extend oznacza "ten przypadek jest szczególnym przypadkiem tamtego przypadku" (strzałka w kierunku przypadku rozszerzanego)
Czyli u mnie jeśli klasy "agregują się zupełnie" powinienem użyć extend? Tutaj: http://kemiambaron.awardspace.com/UML.pdf wyczytałem coś takiego
Kompozycja
Jest szczególnym (skrajnym) przypadkiem zawierania.
Czy to nie ma żadnego związku między tym jaka zależność jest między klasami?
Nie, bo diagram klas to jest diagram struktury programu. A diagram Use-Case to diagram na poziomie wymagań funkcjonalnych wobec systemu. Use-Case jest na dużo wyższym poziomie abstrakcji. Use-Case może opisywać działanie systemu który wcale nie jest napisany w języku obiektowym. Ba, może opisywać nawet system który nie jest komputerowy...
Zwykle Use-Case robi się znacznie wcześniej niż pisze sam system - w trakcie pisania UseCase nie wiadomo jakie będą klasy (i czy w ogóle będą -> nie wiadomo jaki to będzie w ogóle język...)
Dzięki wielkie za pomoc:)