Diagram przypadków użycia

  • Służy pokazaniu funkcji udostępnianych przez system oraz możliwych scenariuszy interakcji systemu z zewnętrznymi jednostkami. Celem jest pokazanie co jest możliwe, a nie w jaki sposób to zrobić. Skupia się na tym jak system postrzegany będzie przez użytkowników
  • Aktor to dowolna, zewnętrzna dla systemu jednostka, która wchodzi z nim w interakcję np. użytkownik. Przedstawia się w postaci "małego ludzika" (ang. stick figure)
  • Przypadki użycia (ang. use cases) to udostępniane funkcje systemu. Przedstawia się je w postaci elips z wpisanymi wewnątrz etykietami
  • Aktorzy i przypadki użycia występują we wzajemnych relacjach ze sobą:
    • Rozszerzenie (ang. extension) to relacja między przypadkami użycia. Pokazuje, że jedna z funkcji jest uzupełnioną/zmienioną wersją innej. Przedstawia się w postaci strzałki o przerywanej linii z etykietą <<extends>>
  • Powiązanie (ang. association) to relacja między aktorem a przypadkiem użycia. Pokazuje scenariusz wykorzystania danej funkcji systemu. W ogólności z pewnej funkcji mogą korzystać różni aktorzy w różny sposób. Przedstawia się to jako ciągłą linię z opcjonalną etykietą/komentarzem

Diagram sekwencji

  • Służy do pokazania działania określonych funkcji w czasie. Przedstawia się na nim fragmenty (moduły) systemu oraz wymianę komunikatów jaka między nimi zachodzi.
  • Moduły przedstawia się jako prostokątne "pudełka" z etykietami
  • Od każdego modułu odchodzi jego linia czasu:
    • Przerywana linia oznacza stan bezczynności (np. oczekiwania na odpowiedź)
    • Prostokątne rozszerzenie tej linii pokazuje aktywność
  • Od/do linii czasu wychodzą strzałki z komunikatami synchronicznymi lub asynchronicznymi
  • Przykład:

Diagram klas

  • Służy do opisu komponentów obecnych w systemie, ich wzajemnych relacji i liczności
  • Klasa to pewien typ obiektów występujących w module. Ma nazwę, zbiór danych oraz udostępnia zestaw metod, które potrafi wykonać
  • W relacjach między klasami najczęściej podajemy liczność i rozróżniamy m.in. takie typy:
    • Powiązanie (ang. association), najczęściej nazwana relacja informująca o wzajemnej zależności (np. wykorzystaniu danych/metod jednej klasy przez drugą)
  • Agregacja (ang. aggregation), wskazuje, że jedna klasa zawiera w sobie tablicę obiektów innej klasy
  • Uogólnienie (ang. generalization), informuje, że jedna klasa jest podklasą innej (tzn. zawiera wszystkie jej dane/metody + swoje własne)
  • Liczność podajemy przy obu końcach połączenia:
    • 0..1, relacja opcjonalna
    • 1, dokładnie 1 (w ogólności: n, dokładnie n)
    • 0..*, zero lub więcej
    • 1..*, jeden lub więcej