Ostatnio kolega zapytał mnie przystępując do tworzenia systemu „a czym jest ta multiagencja?”. „Kurczę”, pomyślałam, „rzeczywiście przewijała się w rozmowach, ale jaką rolę ma grać w systemie?”. Jeśli zaczynasz projekt w nowym temacie, albo nie jesteś pewien co jest czym w świecie klienta, zrób model dziedziny! To wybawia z tarapatów kosztownego niezrozumienia a przy tym jest niesamowicie proste w przygotowaniu!

Model dziedziny przedstawia najważniejsze pojęcia (koncepty) znajdujące się w obszarze zainteresowania oraz zależności między nimi. Dzięki niemu możesz uporządkować wszystkie obiekty pojawiające się w rozmowach o działalności przyszłych użytkowników. Po uzupełnieniu relacji między nimi i potwierdzeniu dobrego zrozumienia przez klienta, masz pewność, że się nie pogubisz.

Model dziedziny

Ten przykład nie wybiega jeszcze znacznie poza nasze pojmowanie, ale wyobraźcie sobie systemy, które działają w dziedzinie dużo bardziej skomplikowanej i nie jesteśmy w stanie ogarnąć co jest czym! Warto wiedzieć jak pomóc sobie modelem dziedziny. Świetnie dopełni się on ze słownikiem, w którym znajdą się definicje nieoczywistych lub zwodniczych pojęć ;)

Model dziedziny można przygotować za pomocą diagramu klas UML. Poniżej opisałam elementy, których znajomość przyda Ci się przy własnym rysowaniu:)

Relacje

Relacje wiążą dwa obiekty (czasem jeden) ze sobą.

Powiązanie

Powiązanie
Prowizja jest wypłacana jednemu agentowi (temu, który sprzedał ubezpieczenie). Agentowi może być wypłacona dowolna liczba prowizji (lub żadna), w zależności od liczby sprzedanych ubezpieczeń. Agent może mieć dokładnie jednego przełożonego i dowolną liczbę podwładnych (może być 0).

Dziedziczenie

Dziedziczenie

Rachunek i faktura dziedziczą wszystkie cechy Rozliczenia. Mogą posiadać też inne – specyficzne tylko dla siebie, np. faktura VAT posiada dodatkowo rozliczenie podatku.

Agregacja

Agregacja

Agenci wchodzą w skład Agencji.

Kompozycja

Kompozycja

Ubezpieczenie może składać się z produktów (np. ochrona mieszkania, samochodu, itp.).

Różnica między agregacją a kompozycją polega na tym, że:

  • po usunięciu obiektu głównego z agregacji, obiekty składowe istnieją samodzielnie, np. po usunięciu agencji, wszyscy agenci nadal istnieją
  • po usunięciu obiektu głównego z kompozycji, obiekty składowe nie istnieją samodzielnie, np. ubezpieczane produkty nie mają racji bytu po usunięciu ubezpieczenia

Nazwa relacji

Nazwę relacji podaje się dla lepszego zrozumienia i wstawia na/przy linii relacji tak, by można było odczytywać je od obiektu górnego do dolnego lub od lewego do prawego. Nazwy zazwyczaj nie stosuje się przy dziedziczeniu (domyślnie – „dziedziczy po”), agregacji i kompozycji (domyślnie – „zawiera”, „wchodzi w skład”).

Liczność relacji

Liczność wskazuje dla obu stron relacji liczbę obiektów, które mogą w niej uczestniczyć:

* –  dowolna liczba obiektów
0 –  zero obiektów
0..1 –  zero lub jeden obiekt
0..* –  zero lub dowolna liczba obiektów
1 –  jeden obiekt
1..x –  od 1 do x obiektów (pod x wstawia się określoną liczbę, np. 5)
1..* –  od 1 do dowolnej liczby obiektów
x –  określona liczba obiektów, np. 5

I jak wyszedł Twój model dziedziny? A może masz inne sposoby na porządkowanie rzeczy po wejściu do nowego świata?

13 KOMENTARZE

    • Tak, agenci zostaną. Stracimy tylko o nich jedną z informacji – przynależność do agencji, w której pracują. No i wszystkie dane agencji.

      Kiedy usuwamy element, siłą rzeczy znikają wszelkie jego relacje (powiązania z innymi elementami), w tym przypadku – ta agregacja.

  1. Rozumiem, że wkradł się błąd w zdaniu „po usunięciu obiektu głównego z agregacji, obiekty składowe istnieją samodzielnie, np. po usunięciu wszystkich agentów, agencja nadal istnieje” powinno być „po usunięciu agencji, wszyscy agenci nadal istnieją”?

  2. „po usunięciu obiektu głównego z kompozycji, obiekty składowe nie istnieją samodzielnie, np. ubezpieczane produkty nie mają racji bytu po usunięciu ubezpieczenia”

    To stwierdzenie chyba nie jest do końca prawidłowe. Jeżeli przyjmiemy wcześniej zaproponowaną zasadę:
    „Ubezpieczenie może składać się z produktów (np. ochrona mieszkania, samochodu, itp.).” (rozumiem, że produkt to nazwa dla „zakresu ochrony”), to zdanie przytoczone na początku jest pozbawione sensu. Ubezpieczane produktu jak najbardziej mają racje bytu po usunięciu ubezpieczenia :)

  3. Bardzo dobry artykuł, dziękuję. Wyjaśnia w prostych pojęciach czym jest model dziedziny i bardzo mi pomógł w mojej nauce.

ZOSTAW ODPOWIEDŹ