Problem z modelem

0

Witam,
Na początek proszę o łagodne potraktowanie nowicjusza...

Próbuje zamodelować sobie taką małą funkcjonalność. Wygląda ona mniej wiecej tak:

  1. mam zbiór ludzi - pracowników firmy. Wsród tych pracowników szukam sobie wg zadanych kryteriów takich, których kieruję na badanie okresowe lub kontrolne lub inne - przy czym danego człowieka mogę wysłać jednocześnie na kilka badań.
  2. następnie dla każdego znalezionego ludka wysyłam mu skierowanie na odpowiednie badanie, sprawdzam różne tam rzeczy by ostatecznie jeśli ludek dostarczył wynik badania zakończyć przetwarzanie człowieka.
    To tak w wielkim skrócie.

Po pierwsze wydzielilem sobie następujące obiekty:

  • lista badań
  • ludek / pracownik
  • badanie
  • skierowanie

Mój problem polega na tym, że nie wiem jak prawidłowo opisać i zidentyfikować relacje miedzy tymi obiektami.
Wiem, że to jest dosyć prosty przypadek ale mimo wszystko nie umiem sobie z nim poradzić.
Proszę zaglądnijcie na załączone diagramy i napiszcie mi jak to narysować, żeby miało ręce i nogi? Czy to co narysowałem jest zupełnie do niczego?

pozdr.

0

Ad. 1.
Wiele skierowań tyczy się jednego badania? To nie jest przecież diagram bazodanowy tylko diagram klas. Jak chciałbyś takie powiązanie utworzyć i w jakim celu?
Ad. 2.
Wygląda trochę lepiej. Masz pomysł na implementację tego w ten sposób?

0

Witam,

Dziękuję za odpowiedź. Jeśli chodzi o pierwsze to po prostu chciałem zaznaczyć, że dla jednego badania moze byc wyslanych wiele skierowan (bo osoba moze nie zdążyć wykonac badania w podanym terminie) ale faktycznie z punktu widzenia programu interesuje mnie aktualnie wyslane lub też nie skierowanie. Historia jest potrzebna ale w osobnej funkcjonalnosci (czyli jak rozumiem osobna klasa / klasy) nie dla tej ktora opisalem.

Jesli chodzi o drugi to :

  1. Jak opisac licznosc klas ?
    w rzeczywistosci wiem, ze jedno badanie moze byc przypisane tylko jednej osobie ale dana osoba moze miec jednoczesnie kilka badan do wykonania oraz do jednego badania moge miec wiele skierowan.
    W tym programie potrzebuje przeanalizowac statusy badan - czyli nie potrzebuje informacji o tym kto ile badan ma do wykonania i ile skierowan, bo iteruje po badaniach i interesuje mnie ostatnio wyslane skierowanie. Ale z kolei w drugim programie potrzebuje powiedzmy wylistowac wszystkie badania dla człowieka (z całą historią) i np. zobaczyc ze pan Lolek dostał 3 skierowania zanim raczył dostarczyć wynik badania. Czyli w dwóch programach mam zupełnie inne liczności i w ogóle jakby inne relacje.

  2. Czy klasa asocjacyjna jest tutaj na miejscu?
    W zasadzie wydawało mi się, że skierowanie nie może istnieć bez obiektu badania i powinienem podpiąć skierowanie jako element kompozycji badania a nie jako "opis" powiązania między badaniem a pracownikiem.
    Jak mam zrozumieć kiedy klasy asocjacyjne należy stosować a kiedy nie?

Mój pomysł na implementację jest taki: (programuję w innym języku niż java na co dzień, więc wybaczcie błędy):

 
public class ListaBadan{
	private ArrayList<Badanie> lista_badan;
	public void dodajBadanie(Badanie badanie);
	public void usunBadanie(???); //usuwanie albo po indeksie albo referencją do elementu
        public void analizujWszystkieBad(){}
        public void szukajBadaniaDoZrobienia(){}
}

public class Badanie{
	private Pracownik czyje;
	public Skierowanie getCurrentSkierowanie(){}

	public boolean dostarczonoWynik(){}
	public Date getTerminDostarczenia(){}
}

public class Skierowanie{
	private Pracownik badany;

	private Date data_wyslania;
	public void wyslij(){}
	public String pobierzDruk() {}
	public boolean skierowanieOdebrano() {}
}

public class Pracownik{
	private String imie_nazwisko;
	public String getNazwisko();
	public Kalendarz getKalendarz()
}

Bardzo będę wdzięczny za kolejne wskazówki.
Nie bardzo mam się kogo zapytać w moim otoczeniu.

Pozdr.

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