podwykonawca.use
download
model podwykonawca
/*
$Id: podwykonawca.use,v 1.1 2006/04/26 22:33:04 darek Exp $
Aktualnie procesy widzi tylko realizcujacy i dziala w zastepstwie
podwykonawcy
*/
class Zapotrzebowanie
end
class Zamowienie
end
class Pracownik
end
class Proces
attributes
dataRozpoczeciaPracy: String
dataRealizacji: String
operations
rozpocznijProces(pracownik: Pracownik)
-- zabezpieczenie: moze rozpoczyna tylko realizujacy badz
-- podwykonawca
post: dataRozpoczeciaPracy <> oclUndefined(String)
and pracownikRealizujacy <> pracownik
and pracownikPodwykonawca <> pracownik
implies dataRozpoczeciaPracy
= oclUndefined(String)
post: dataRozpoczeciaPracy <> oclUndefined(String)
and (pracownikRealizujacy = pracownik
or pracownikPodwykonawca = pracownik)
implies dataRozpoczeciaPracy
<> oclUndefined(String)
realizujProces(pracownik: Pracownik)
-- zabezpieczenie: moze rozpoczyna tylko realizujacy badz
-- podwykonawca
post: dataRealizacji <> oclUndefined(String)
and pracownikRealizujacy <> pracownik
and pracownikPodwykonawca <> pracownik
implies dataRealizacji
= oclUndefined(String)
post: dataRealizacji <> oclUndefined(String)
and (pracownikRealizujacy = pracownik
or pracownikPodwykonawca = pracownik)
implies dataRealizacji
<> oclUndefined(String)
end
class Environment
attributes
loggedUserName: String
end
association PracownikRealizujacy
between
Proces[*] role procesyJakoRealizujacy
Pracownik[1] role pracownikRealizujacy
end
association PracownikPodwykonawca
between
Proces[*] role procesyJakoPodwykonawca
Pracownik[1] role pracownikPodwykonawca
end
association ProcesyDlaZapotrzebowania
between
Proces[*] role procesy
Zapotrzebowanie[1] role zapotrzebowanie
end
association Zapotrzebowania
between
Zamowienie[1] role zamowienie
Zapotrzebowanie[*] role zapotrzebowania
end
association WidoczneProcesy
between
Proces[*] role widoczneProcesy
frmProcesyDlaPracownika[*] role frmProcesyDlaPracownika
end
-- widocznosc procesow dla realizujacego i podwykonawcy
-- aktualnie jest tylko realizujacy
class ProcesyDlaPracownika
attributes
pracownik: Pracownik
operations
procesyCzekajace(): Sequence(Proces)
procesyObslugiwane(): Sequence(Proces)
procesyZrealizowane(): Sequence(Proces)
end
class frmProcesyDlaPracownika
attributes
env: Environment
operations
pokaz()
end
(...)
Nie ma bowiem łatwych odpowiedzi.
Nie istnieje nic takiego jak najlepsze
rozwiązanie - zarówno jeśli chodzi o
narzędzia,
jak i języki czy systemy operacyjne. Są
jedynie systemy, które mogą być bardziej
odpowiednie w konkretnych okolicznościach.
I tu właśnie do gry wchodzi pragmatyzm.
Nie należy przywiązywać się do żadnej
określonej metody, ale mieć na tyle rozległą
wiedzę i doświadczenie, by w danej sytuacji
wybrać dobre rozwiązanie.
(...)
Andrew Hunt, David Thomas
"Pragmatyczny Programista"