1. Sformułowanie zadania projektowego

Celem projektu jest stworzenie aplikacji webowej pozwalającej na dokumentowanie pracy w laboratorium (biologia, chemia). System powinien pozwalać na definiowanie protokołów dla eksperymentów, projektów, prowadzenie dziennika eksperymentów, gromadzenie wyników, wniosków, oraz powiązań logicznych między nimi. System ma pozwalać na projektowanie ścieżki badań oraz wspierać podejmowanie decyzji w zależności od wyników pojedynczych eksperymentów. Każdy eksperyment może zostać wzbogacony załącznikami różnych typów (zdjęcia, pliki tekstowe, pliki binarne, arkusze kalkulacyjne) oraz pozycjami bibliograficznymi. Dodatkową funkcjonalnością jest przypisywanie badanych próbek do płytek laboratoryjnych (postaci macierzy x*y, adresowane jak w arkuszu kalkulacyjnym).

2. Analiza stanu wyjściowego

Wirtualne zeszyty laboratoryjne są dość powszechnie stosowane w pracy naukowców, powstał nawet termin ELN (Electronic Lab notebook). Są one tworzone głównie po to, aby ułatwić wyszukiwanie danych i zaoszczędzić dzięki temu czas (za http://www.contur.com/tour/: „przy użyciu zeszytów tradycyjnych 20-40% czasu pracy laboranci spędzają na wyszukiwaniu danych”). W Internecie znaleźć można wiele dostępnych programów ELN, między innymi bezpłatne: Labarchives lub Sparlix czy komercyjne: Labtrack albo iLabber. Programy te działają w zasadzie w podobny sposób- po zalogowaniu się możemy utworzyć projekt, a w nim dodawać eksperymenty.

3. Analiza wymagań użytkownika

Aplikacji używać będą 3 rodzaje użytkowników- administrator, laboranci i klienci. Administrator jest osobą odpowiedzialną za stronę techniczną dziennika. Ma najbardziej rozległe uprawnienia, może być to np. szef instytutu czy jednostki badawczej. Tylko on może dodawać nowych użytkowników i określać, do jakiej grupy należą (klient, laborant, czy kolejny administrator). Eksperymenty i późniejsze opracowywanie ich przebiegu (dodawanie próbek, opisów obserwacji, załączników itd.) dodawane są przez laborantów. Tylko osoba, który dodaje eksperyment, ma możliwość edycji stałych elementów eksperymentu, jak np. opis i nazwa, może też dodawać klientów, którzy mogą obserwować efekty pracy. Inni laboranci również mogą modyfikować eksperyment (np. przez dodanie zasobów). Klient (np. osoba zlecająca badanie) nie ma możliwości edytowania żadnego eksperymentu, lecz może przeglądać zasoby dotyczące eksperymentu, do którego ma przyznany dostęp. Badanie jest to zbiór przeprowadzonych kolejno eksperymentów dotyczących jednego zagadnienia. Do każdego eksperymentu przyporządkowane są:

+  opcjonalne próbki/załączniki/ dane różnego rodzaju ,		
+ opcjonalne wyniki.

W systemie istnieje też schemat dla danego badania – drzewiasta struktura zawierająca następne eksperymenty, sugerowane na podstawie wyniku danego eksperymentu. Osobne struktury (tabele) to płytki laboratoryjne, które będą zawierać próbki (każda płytka będzie mieć x*y miejsc, po wypełnieniu wszystkich może zostać przetwarzana). W toku badania każda próbka może być przyporządkowana do kilku płytek – lecz tylko do jednej na raz.

4. Określenie scenariuszy użycia

1. Tworzenie użytkowników (administrator)

2. Tworzenie użytkowników typu laborant lub klient, nadanie im loginów oraz haseł

  • Logowanie się (wszyscy)- wpisanie loginu i hasla

3. Zmiana danych (wszyscy) – zmiana imienia, nazwiska i hasła, po wpisaniu poprzedniego hasła

4. Dodanie badania (laborant)

  • Kliknięcie przycisku „dodaj badanie” tworzy folder w którym będą znajdować się eksperymenty danego typu,
  • Pojawią się pola do wypełnienia: nazwa, laboranci (jest możliwość dodania laborantów zaangażowanych w projekt), klienci.

5. Dodanie eksperymentu (laborant)

  • Po wybraniu danego badania tworzenie w jego ramach eksperymentu (nadanie nazwy, opisu),

6. Dodanie nowego schematu badania/ szablonu eksperymentu (administrator)

7. Edycja eksperymentu

  • Dodanie, próbek, adnotacji, załączników. (laboranci),
  • Edycja wcześniej uzupełnionych danych,
  • Edycja osób mogących przeglądać eksperyment.

8. Usuwanie eksperymentu (laborant, który go utworzył).

9. Wylogowanie

5. Identyfikacja funkcji

Klient:

  • logowanie,
  • edycja swoich danych,
  • przeglądanie eksperymentów (do których ma przyznany dostęp), ich opisów i wyników,
  • wylogowanie.

Administrator

  • logowanie,
  • edycja swoich danych,
  • dodawanie nowych użytkowników (administratorów, laborantów i klientów),
  • wszystkie funkcje dostępne dla laboranta,
  • wylogowanie.

Laborant:

  • logowanie,
  • edycja swoich danych,
  • dodawanie nowych badań,
  • dodawanie nowych eksperymentów,
  • edycja danych swoich eksperymentów (tytuł, opis),
  • dodanie klientów jako obserwatorów badań i eksperymentów i usuwanie ich,
  • przeglądanie eksperymentów,
  • dodawanie próbek, adnotacji, załączników, płytek laboratoryjnych do eksperymentów,
  • wylogowanie.

6. Encje i ich atrybuty:

Admin:

  • admin_ID
  • login
  • name
  • surname
  • password

Client:

  • client_ID
  • login
  • name
  • surname
  • password

LabGeek:

  • labgeek_ID
  • login
  • name
  • surname
  • password

ResTemplate [Szablon badania, zawierający sugerowane eksperymenty ] :

  • restemplate_id
  • description

ResInstance [Instancja badania, określająca faktyczny przebieg ciągu eksperymentów]:

  • resinstance_id
  • Restemplate_id (foreign key)

ExpScheme [Schemat eksperymentu, używany przy sugerowaniu następnych eksperymentów]:

  • expscheme_id
  • name
  • description
  • next_expscheme (foreign key) (następny sugerowany eksperyment)
  • restemplate_id

ResGroup [Grupa wyników, związana z szablonem eksperymentu, zawierająca możliwe do uzyskania wyniki danego eksperymentu (typu: sukces, porażka, niejasny wynik), będące podstawą do zasugerowania następnego etapu]:

  • resgroup_id
  • expscheme_id (foreign key)

Result_ [Konkretny wynik, zawierający opis i odpowiednik numeryczny] :

  • result_id
  • resNumber
  • description
  • resgroup_id (foreign key)
  • next_expscheme_id (foreign key)

Experiment [Eksperyment właściwy]:

  • experiment_ID
  • name
  • description
  • result
  • labgeek_ID(foreign key)
  • expscheme_id(foreign key)
  • ResInstance_ID(foreign key)
  • next_experiment_ID (foreign key)

Sample:

  • sample_ID
  • experiment_id(foreign key)
  • description
  • isOnBoard

PlaceOnBoard[Określenie zawartości konkretnego miejsca na płytce laboratoryjnej - zawiera współrzędne i próbkę, znajdującą się w tych współrzędnych]:

  • place_ID
  • placeX
  • placeY
  • sample_ID(foreign key)
  • board_id(foreign key)

Lab_board[Płytka laboratoryjna o konketnych wymiarach, na której umieszczane mogą być próbki]:

  • board_ID
  • sizeX
  • sizeY
  • experiment_ID (foreign key)
  • state_ID (foreign key)

Board_state [Encja do stworzenia typu wyliczeniowego, reprezentującego stan płytki (może być np. „w trakcie kompletowania próbek”, „podczas przetwarzania”, „przetwarzanie zakończone”, itp.)]

  • state_ID
  • board_state

Adnotation:

  • adnotation_ID
  • content
  • experiment_ID(foreign key)

Attachment:

  • attachment_ID
  • name
  • description
  • experiment_ID(foreign key)

7. Analiza hierarchii funkcji projektowanej aplikacji:

8. Projektowanie powiązań (relacji) pomiędzy encjami.

pl/dydaktyka/sbd/2012/projekty/lab/projekt_konceptualny.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0