Projektowanie aplikacji biznesowych w oparciu o wzorzec projektowy MVC. System wspomagający pracę nauczycieli akademickich



Podobne dokumenty
E-1IZ3-06-s6. Inżynieria Programowania. Informatyka. I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

PRZEWODNIK PO PRZEDMIOCIE

Wzorce projektowe i refaktoryzacja

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Dokument Detaliczny Projektu

E-ID1S-08-s5. Informatyka. I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

PRZEWODNIK PO PRZEDMIOCIE

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie

Dokument Detaliczny Projektu

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

PRZEWODNIK PO PRZEDMIOCIE

Web frameworks do budowy aplikacji zgodnych z J2EE

REFERAT PRACY DYPLOMOWEJ

PRZEWODNIK PO PRZEDMIOCIE

Analiza i projektowanie obiektowe w UML Kod przedmiotu

PRZEWODNIK PO PRZEDMIOCIE

Kierunkowy Wybieralny Polski Semestr V

Projektowanie obiektowe Wzorce projektowe. Wprowadzenie do wzorców projektowych

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Inżynieria oprogramowania - opis przedmiotu

Technologie obiektowe Object-oriented technologies. Informatyka II stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)

TECHNOLOGIA JSP W TWORZENIU APLIKACJI ROZPROSZONYCH NA PRZYKŁADZIE SYSTEMU ZARZĄDZANIA NIERUCHOMOŚCIAMI W GMINIE

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

PRZEWODNIK PO PRZEDMIOCIE

Wykład 1 Inżynieria Oprogramowania

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Inzynieria Oprogramowania 2... nazwa przedmiotu SYLABUS A. Informacje ogólne. Wydział Ekonomiczno-Informatyczny w Wilnie

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2011/2012. Architektura zorientowana na usługi

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Inżynieria oprogramowania, C12

KARTA PRZEDMIOTU. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI Ogólne umiejętności posługiwania się komputerem

Rok akademicki: 2014/2015 Kod: MIO s Punkty ECTS: 4. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Język Java i technologie Web - opis przedmiotu

Web frameworks do budowy aplikacji zgodnych z J2EE. Jacek Panachida

Kierunkowy Wybieralny Polski Semestr V

Forum Client - Spring in Swing

ul. Pogodna Olsztyn codeit@codeit.pl

PRZEWODNIK PO PRZEDMIOCIE

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4

PRZEWODNIK PO PRZEDMIOCIE

RAPORT KOŃCOWY PROJEKTU

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką

Architektura systemu e-schola

Technologie informacyjne Information technologies

Założenia dla systemu informatycznego do obsługi zasobu geodezyjnego i kartograficznego w m.st. Warszawie. Warszawa, 06 listopada 2013 r.

Programowanie obiektowe

REFERAT O PRACY DYPLOMOWEJ

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi

SOA Web Services in Java

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2011/2012. Programowanie usług sieciowych

REFERAT O PRACY DYPLOMOWEJ

Wprowadzenie do metodologii modelowania systemów informacyjnych. Strategia (1) Strategia (2) Etapy Ŝycia systemu informacyjnego

Firma Informatyczna ASDER. Prezentacja. Serwer danych lokalnych. Przemysław Kroczak ASDER

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)

Podstawy pracy w systemie Doradca.

KONCEPCJA WYKORZYSTANIA TECHNOLOGII APPLET- JAVA W TWORZENIU

Rok akademicki: 2014/2015 Kod: EAR IS-s Punkty ECTS: 4. Kierunek: Automatyka i Robotyka Specjalność: Informatyka w sterowaniu i zarządzaniu

REFERAT PRACY DYPLOMOWEJ

Instrukcja użytkownika

Wykład I. Wprowadzenie do baz danych

Egzamin / zaliczenie na ocenę*

ATSOFTWARE DMS. Elektroniczna archiwizacja

Wzorce architektoniczne

PRZEWODNIK PO PRZEDMIOCIE

System generacji raportów

E-1EZ s1. Technologie informacyjne. Elektrotechnika I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 1 Wprowadzenie do narzędzia CASE. Materiały dla nauczyciela

Programowanie sieciowe Network programming PRZEWODNIK PO PRZEDMIOCIE

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

INFORMATYKA W ZARZĄDZANIU

Referat pracy dyplomowej

Praca magisterska Jakub Reczycki. Opiekun : dr inż. Jacek Rumiński. Katedra Inżynierii Biomedycznej Wydział ETI Politechnika Gdańska

1 Wprowadzenie do J2EE

Wypożyczalnia VIDEO. Technologie obiektowe

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

edycja 1 opracowany zgodnie z Zarządzeniami Wewnętrznymi PWr. nr 14/2012 i 15/2012 i 34/2012

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2015/2016

PRZEWODNIK PO PRZEDMIOCIE

Z-ID-306 Technologie internetowe Internet Technologies. Podstawowy Obowiązkowy Polski Semestr III

Projekt systemu informatycznego

Wprowadzenie do programowania aplikacji mobilnych

IO - SAD. M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak. 5 czerwca 2006

APLIKACJE KLIENT-SERWER Client-Server Applications Forma studiów: Stacjonarne Poziom kwalifikacji: I stopnia. Liczba godzin/tydzień: 2W, 2L

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

Usługi analityczne budowa kostki analitycznej Część pierwsza.

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton

Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne

Dokumentacja projektu QUAIKE Architektura oprogramowania

X-CONTROL -FUNKCJONALNOŚCI

E-I2S-2005-s1. Technologie obiektowe. Informatyka II stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)

Inżynieria finansowa Financial engineering

Archiwum Prac Dyplomowych

INŻYNIERIA OPROGRAMOWANIA

Aplikacja (oprogramowanie) będzie umożliwiać przygotowanie, przeprowadzenie badania oraz analizę wyników według określonej metody.

Moduł Użytkownika w ING BankOnLine. Opis funkcjonalności systemu ING BankOnLine Moduł Użytkowników

System zarządzający grami programistycznymi Meridius

Transkrypt:

Projektowanie aplikacji biznesowych w oparciu o wzorzec projektowy MVC. System wspomagający pracę nauczycieli akademickich Miłosz Kubański 1, Agnieszka Kowalska 2 1 Wydział Inżynierii Mechanicznej i Informatyki Kierunek Informatyka, Rok V 2 Wydział Inżynierii Mechanicznej i Informatyki Kierunek Informatyka, Rok V {miloszes,a_g_n_e_s}@tlen.pl Streszczenie W poniższej pracy zaproponowano metodykę tworzenia średnich oraz dużych systemów biznesowych z wykorzystaniem wzorca projektowego MVC. Przykładem zastosowania tej metodyki jest system wspomagający pracę nauczycieli akademickich, który powstał zgodnie z przedstawianym wzorcem. 1 Wstęp Komputery coraz częściej towarzyszą nam podczas codziennych czynności wykonywanych w naszym życiu. Pomagają nam podczas robienia zakupów przez internet, pozwalają kupić lub zarezerwować bilety, zamówić książki w bibliotece oraz w wielu innych przypadkach, gdzie nie jesteśmy nawet świadomi istnienia wsparcia systemów komputerowych. Systemy informatyczne doskonale sprawdzają się w sytuacjach, gdzie są zdefiniowane procedury postępowania w obrębie dziedziny którą obsługują. Wiele firm (a w szczególności instytucje finansowe takie jak banki) coraz częściej wykorzytuje systemy komputerowe do zapewnienia prawidłowości przebiegu procesów biznesowych. Instytucje te od lat posługują się ustalonymi i sprawdzonymi procedurami postępowania dla wszystkich zdarzeń, które mogą pojawić się podczas ich funkcjonowania. Dlatego też tak chętnie wybierają komputery w celu zapewnienia prawidłowej organizacji ich działania. Zapotrzebowanie na systemy wspomagające procesy biznesowe staje się coraz większe, ich złożoność rośnie, a nad procesem ich powstawania pracują coraz większe zespoły ludzi. Dlatego bardzo ważne jest odpowiednie wybranie procesu tworzenia oprogramowania jak i stworzenie przejrzystej architektury systemu pozwalającej na swobodne "poruszanie" się po niej wszystkim osobom biorącym udział w tworzeniu takiego systemu. W pracy zaproponowana zostanie metodyka tworzenia struktury aplikacji biznesowych na przykładzie systemu wspomagającego pracę nauczycieli akademickich. 1

2 Wymagania funkcjonalne i niefunkcjonalne systemu Głównym zadaniem systemu jest przechowywanie oraz zarządzanie informacjami na temat przebiegu studiów osób uczących się na wydziale Inżynierii Mechanicznej i Informatyki Politechniki Częstochowskiej. System przechowuje dane dotyczące ocen i obecności studentów na poszczególnych zajęciach, informacje dotyczące prowadzonych zajęć oraz list studentów. System umożliwia uprawnionym osobom wgląd w dane studentów, ich frekwencje na zajęciach oraz uzyskiwane oceny. Aplikacja oferuje pracownikom możliwość tworzenia list studentów uczestniczących na dane zajęcia, dostęp do list grup dziekańskich, sprawdzania obecności, wystawiania ocen, tworzenia własnych uwag oraz generowania raportów. Jednym z podstawowych wymagań tego systemu jest uniemożliwienie zapisania jednego studenta na takie same zajęcia do różnych grup. Aplikacja oferuje możliwość przeglądania historii przebiegu studiów danego studenta oraz udostępniania informacje z poprzednich lat. Program umożliwi użytkownikom generowanie szczegółowych raportów: Raport obecności umożliwi przedstawienie frekwencji studentów na zajęciach. Statystyka ta umożliwi odnalezienie osób, które opuszczają zajęcia. Raport ocen umożliwi przedstawienie średniej ocen studentów: * Średnia dla całego roku przedstawia średnią ocen studentów z uwzględnieniem wszystkich przedmiotów dla całego roku. Umożliwi np. odnalezienie najlepszych studentów na danym roku. * Średnia dla danego przedmiotu przedstawia średnią ocen studentów z danego przedmiotu oraz oceny poszczególnych studentów. * Średnia dla danego prowadzącego przedstawia poszczególne oceny oraz ich średnią wystawioną przez danego prowadzącego w ramach jednego przedmiotu. Raport prowadzących umożliwi przedstawienie danych statystycznych dotyczących poszczególnych prowadzących i ilości prowadzonych przez nich zajęć w danym semestrze. Po zalogowaniu do systemu automatycznie tworzony jest profil dla danego użytkownika, prawa dostępu do poszczególnych grup oraz zestaw możliwych operacji. Prawa oraz operacje zostały podzielone na trzy kategorie "prowadzący", "zarządca" oraz "administrator". 2

Prowadzacy: * możliwość stworzenia oraz edycji listy studentów uczęstszających na zajęcia, mając jednocześnie wgląd w listę studentów w danej grupie dziekańskiej, * wyszukiwanie studenta w celu dostępu do jego danych w kontekście prowadzonego przedmiotu, * dodawanie oraz edycja ocen studenta, * sprawdzenie obecności na zajęciach, * dodawanie, przeglądanie oraz edycja notatek, * generowanie raportów ocen i obecności. Zarzadca: * mozliwość przeglądania wszystkich danych zawartych w systemie, * generowanie raportów (wszystkie raporty). Administrator: * tworzenie oraz edycja grup dziekańskich, * dodawanie i edycja zajęć z zaznaczeniem godzin, miejsca zajęć oraz przypisaniem osoby prowadzącej, * dodawanie i edycja przedmiotów, w ramach których będą prowadzone zajęcia, * tworzenie grupy dziekańskiej na danym semestrze, * generowanie raportów (wszystkie raporty). Kolejnym istotnym wymaganiem dla tego systemu jest wieloplatformowość. Aplikacja musi być niezależna od systemu operacyjnego. Równie ważnym aspektem jest bezpieczeństwo. Program musi być zabezpieczony przed nieupoważnionymi osobami. Poszczególni użytkownicy rozpoznani przez system, po zalogowaniu będą mieli dostęp tylko do danych im przysługującym. 3 Ogólna architektura systemu 3.1 Modułowa budowa systemu Tworzenie złożonych systemów biznesowych wymaga ogromnych nakładów pracy. Aby przyspieszyć proces tworzenia takich projektów, przydziela się do ich wykonania duże zespoły ludzi. W takim zespole można wyróżnić pewne grupy ludzi zajmujących się poszczególnymi częściami systemu np. grupę analityków, projektantów systemu, programistów, projektantów stron, grafików etc. Każdy z ludzi biorących udział w projekcie posiada pewne predyspozycje, które umożliwiają przydzielenie ich do zadań, w których najlepiej mogą się sprawdzić. W celu zoptymalizowania pracy wielu osób nad tworzonym systemem, należy tak zaprojektować system, aby każdy z przydzielonych twórców miał własną część systemu do 3

wykonania oraz by jego predyspozycje jak najlepiej pasowały do pracy, którą ma wykonać. Podczas projektowania takiego systemu należy również zadbać o to by prace wykonywane przez poszczególnych członków zespołu mogły być wykonywane w tym samym czasie i aby w jak najmniejszej części ich czas wykonania zależał od pozostałych osób. Projekt takiego systemu musi być przejrzysty, tak aby każda z osób pracujących nad jego stworzeniem (nawet jeżeli zajmuje się tylko małym fragmentem systemu) mogła ogólnie zrozumieć jego architekturę i móc swobodnie "poruszać się" po nim. Biorąc pod uwagę wymagania jakie pojawiają się względem takiego projektu, najbardziej naturalnym rozwiązaniem wydaje się być podzielenie systemu na warstwy zgodnie z modelem MVC (ang. Model View Controller)[1] [2]. Rys. 1: Trójwarstwowy wzorzec projektowy MVC (ang. Model View Controller) Wzorzec MVC (Rys. 1) zakłada podzielenie systemu na trzy warstwy: Model aplikacji (ang. Model) odpowiedzialna za przechowywanie danych oraz operacje na tych danych. Odzwierciedla logikę biznesowa. 4

Warstwa prezentacji (ang. View) odpowiedzialna za prezentacje wyników użytkownikowi. Kontroler (ang. Controller) odpowiedzialna za tlumaczenie akcji użytkownika na operacje na Modelu oraz wybor odpowiedniego widoku (ang. View) na odpowiedź. Zajmuje się obsługą poszczególnych procesów biznesowych. Podział systemu na warstwy, które z kolei mogą zostać podzielone na moduły umożliwia łatwe przydzielenie grup deweloperskich do warstw systemu np. grafików oraz projektantów GUI można przydzielić do prac nad modułami warstwy widoku, programistów do warstwy kontrolera, a projektantów z częścią programistów do warstwy modelu aplikacji. Każdy z członków poszczególnych zespołów jest zaznajomiony z ogólną funkcjonalnością jaką udostępniają warstwy, bez konieczności poznania szczegółów ich implementacji. Kolejną zaletą wykorzystania wzorca projektowego MVC jest możliwość zmiany funkcjonowania systemu modyfikując jedynie funkcjonalność pojedynczego modułu. 3.2 Struktura przedstawianego systemu System wspomagający pracę nauczycieli akademickich został zaprojektowany zgodnie z wzorcem MVC (Rys. 2). System udostępnia użytkownikowi dwie aplikacje klienckie. Pierwsza z nich została stworzona w J2SE z wykorzystaniem bibliotek SWING. Drugą aplikacją kliencką tego systemu jest aplikacja "web owa" korzystająca z technologi JSP (Struts wraz z JSF). Dzięki zastosowaniu wspomnianego wzorca projektowego stworzenie dodatkowego klienta udostępniającego identyczną funkcjonalność wymagało jedynie modyfikacji wartstwy prezentacji oraz niewielkiej ingerencji w warstwę kontrolera (moduły odpowiedzialne za wybór odpowiedniego widoku do prezentacji wyników). 3.2.1 Model aplikacji Warstwa ta składa się z bazy danych ORACLE oraz szeregu funkcji pośredniczacych we wszystkich operacjach na danych (procedury składowane). Serwer bazy danych ORAC- LE przechowuje dane używane przez aplikacje klienckie oraz funkcje pośredniczące w operacjach na danych. Funkcje umieszczone na serwerze baz danych (SBD) są odpowiedzialne za integralność oraz bezpieczeństwo danych. Funkcje zaimplementowane w aplikacji (Rys. 3) zostały zgrupowane w poszczególne komponenty "encyjne", które są odpowiedzialne za wywoływanie odpowiednich metod zawartych w SBD oraz buforowanie informacji zwróconych przez ten serwer. Umieszczenie funkcji na SBD minimalizuje generowanie ruchu sieciowego oraz optymalizuje czas wykonania danej akcji zleconej przez użytkownika. Zmiana struktury bazy danych lub SBD wymaga modyfikacji wyłącznie tej warstwy. Moduły należące do pozostałych warstw nie są wrażliwe na takie zmiany. 3.2.2 Warstwa prezentacji Warstwa prezentacji odpowiedzialna jest za komunikację z użytkownikiem. Warstwę tą stanowi aplikacja kliencka zaimplementowana z wykorzystaniem technologii JAVA 2SE. 5

Rys. 2: Ogólna architektura prezentowanego systemu Rys. 3: Warstwa modelu aplikacji prezentowanego systemu 6

Rys. 4: Warstwa modelu aplikacji klienta wykorzystującego biblioteki SWING W momencie wybrania opcji przez użytkownika, warstwa ta komunikuje sie bezpośrednio z kontrolerem, który decyduje jaką akcję (proces biznesowy) należy podjąć. 3.2.3 Kontroler Warstwa kontrolera (Rys. 5) odpowiedzialna jest za prawidłowy przebieg poszczególnych procesów biznesowych. Kontroler składa się z dwóch komponentów: ckontroler zawiera klasy udostępniające funkcje poszczególnych procesów biznesowych cuzytkownik zawiera klasy zarządzające profilami zalogowanych użytkowników Funckje zawarte w warstwie kontrolera operują na obiektach zawartych w warstwie modelu aplikacji. Rys. 5: Warstwa kontrolera prezentowanego systemu 4 Podsumowanie Dużą zaletą opisywanej metodyki tworzenia systemów komputerowych jest duża przejrzystość struktury systemu, możliwość szybkiego poprawienia błędów w systemie oraz 7

łatwa pielęgnacja napisanego kodu. Systemy zaprojektowane z wykorzystaniem wzorca MVC charakteryzują się dużą elastycznością oraz przenośnością. Zmiana architektury systemu, struktury logiki biznesowej, czy też sposobu prezentacji danych użytkownikowi wymaga niewielkiego nakładu pracy w porównaniu do innych rozwiązań. Kolejną zaletą stosowania podanego wzorca jest prostota testowania logiki oraz procesów biznesowych z pominięciem warstwy związanej z interfejsem użytkownika. Innym pozytywnym aspektem stosowania tej technologii jest możliwość korzystania z gotowych komponentów, które skracają czas implementacji systemu i podnoszą jego niezawodność. Do wad stosowania modelu MCV można zaliczyć zwiększenie liczby komponentów, które muszą zostać zaimplementowane w systemie, co w niewielkim stopniu zwiększa stopień złożoności projektu. Inną niedoskonałością związaną z podanym modelem jest ścisłe sprzężenie komponentów na poziomie interfejsów funkcyjnych. Wszelkie zmiany tych interfejsów niosą ze sobą konieczność zmian w kodzie warstw korzystających ze zmienionych modółów. Jednakże niedoskonałości modelu MVC są wręcz niezauważalne w porównaniu z zaletami jakie daje nam stosowanie tej technologii. Literatura [1] Martin Fowler, Patterns of Enterprise Application Architecture, Addison-Wesley Professional, 2005. [2] Gamma Erich, Helm Richard, Johnson Ralph, Vlissides John, Wzorce projektowe. Elementy oprogramowania obiektowego wielokrotnego użytku, WNT, 2005. 8