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.
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
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

Rachunek i faktura dziedziczą wszystkie cechy Rozliczenia. Mogą posiadać też inne – specyficzne tylko dla siebie, np. faktura VAT posiada dodatkowo rozliczenie podatku.
Agregacja
Agenci wchodzą w skład Agencji.
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: