Diagram klas - czy jest poprawnie wykonany?

0

Witam,
Mam za zadanie stworzyć diagram klas systemu wspomagającego wyszukiwanie placówek medycznych. W aplikacji mam 3 aktorów:

1. Usługodawca: dodaje oferty wykonania usług medycznych (wykonania badań laboratoryjnych w określonym terminie),zmienia dane dotyczące placówki medycznej którą reprezentuje,ma możliwość wysyłania wiadomości do pacjentów, ma możliwość sprawdzenia historii wcześniej dodanych ofert wystawionych w systemie, za pomocą kalendarza może dodawać,modyfikować czy usuwać terminy z kalendarza.
2. Pacjent: ma możliwość wyszukania i dodania opinii o danej placówce medycznej,może złożyć zamówienie na ofertę wystawioną przez usługodawcę, ma możliwość wysyłać wiadomości do usługodawców,może zmienić swoje dane osobowe.
**3. ** Administrator: może usunąć z systemu nie aktywne konta(pacjenta lub usługodawcy),ma możliwość dołączenia do rozmowy między pacjentem a usługodawcą.

Na podstawie tych wymagań funkcjonalnych stworzyłem ten diagram klas. Czy ktoś miałby chwile czasu i mógłby spojrzeć na ten diagram klas czy jest poprawnie wykonany? Największe wątpliwości mam do klasy "Users" i połączonych z nią klas. Z góry dziękuje za pomoc.

0

Kilka uwag:

  • dlaczego klasa user ma pole accountType? Czy mam rozumieć, że klasa np. Patient dziedziczy po user i wtedy w polu accountType będzie wpisany patient? - wtedy takie cos nie ma sensu
  • klasa Patient - ma dwie niepotrzebne metody - addOpinion... oraz searchMedical... - generalnie te metody powinny być po stronie jakiegoś serwisu/repozytorium/facady/innego obiektu. Jeżeli tak zostawisz to już będziesz miał zaspawane ze sobą obiekty Patient oraz MedicalFacility i nie ma to sensu
  • w jezyku angielskim nie ma takiego slowa jak offert
  • czasami podajesz argumenty metod, a czasem nie (nie znam notacji UML, więc mogę się mylić), ale w klasie Patient masz metodę setPersonalData, która nic nie przyjmuje i nic nie zwraca...co ona zatem robi? nazwa nie jest jednoznaczna
  • no i tak ogółem masz np klasę Offerts - klasa zawiera pola pojedynczej oferty (a nazwa wskazuje, ze będzie ich więcej) oraz ma metodę do wyświetlania ofert - o dziwo nic nie zwracająca. Czy to nie za dużo odpowiedzialności?

1 użytkowników online, w tym zalogowanych: 0, gości: 1