pobierz plik referatu
Transkrypt
pobierz plik referatu
Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Rozdział 1 w Modelowanie systemu baz danych dużej instytucji finansowej wsparte językiem UML 2.0 w da .b w Streszczenie. Istotą tego rozdziału jest przedstawienie możliwości języka UML w analizie wymagań oraz modelowaniu struktury bazy danych. Podkreśleniu poddana zostaje integralność bazy danych w systemach biznesowych, jako stałego ich elementu oraz wpływ funkcjonalności tych systemów na strukturę bazy. Po krótkim teoretycznym wprowadzeniu w elementy języka UML, praca ukazuje praktyczne jego zastosowanie na podstawie fragmentu projektu systemu informatycznego, którego zadaniem jest integracja z systemem Generalnego Inspektora Informacji Finansowych (SI*GIIF). 1 Wprowadzenie pl s. Złożoność współczesnych systemów informatycznych oraz rosnący stopień zależności osób, organizacji, a nawet społeczeństw od oprogramowania sprawił, że ich twórcy stanęli przed wielkim wyzwaniem. Budowa tak skomplikowanych systemów informatycznych wiązała się również z potrzebą współpracy licznych grup ludzi. Sprostanie realizacji dużego projektu przy zapewnieniu wysokiej jakości, niezawodności i bezpieczeństwu, były przyczyną wielu niepowodzeń. Powodem tego była niewystarczająca komunikacja, słaba koordynacja działań poszczególnych grup specjalistów oraz brak określonego procesu wytwarzania oprogramowania. Z pomocą posłużył proces modelowania systemów wspomagany językiem UML. Zunifikowany język modelowania (ang. Unified Modeling Language), jest następcą obiektowych metod analizy i projektowania, które pojawiły się na przełomie lat osiemdziesiątych i dziewięćdziesiątych. Koncepcja języka UML powstała w firmie Rational Corporation, a twórcami są tzw. „trzej muszkieterowie”: Grady Booch, Jim Rumbaugh, Ivar Jacobson. UML jest notacją graficzną stosowaną do wyrażania modeli, zapewniając przy tym dobrą komunikację pewnych idei i pomysłów. Język naturalny jest nieprecyzyjny i problemy przy bardziej złożonych pojęciach, natomiast UML jest niezastąpiony przy tworzeniu dużego systemu, pomaga zobrazować główne jego składowe oraz ich współzależności [1]. Unified Modeling Language jest językiem znormalizowanym, może być stosowany do przedstawiania, specyfikowania, tworzenia i dokumentowania elementów systemu informatycznego. Wspomaga określenie decyzji na każdym etapie zaawansowania projektu. Sebastian Kwapisz: Uniwersytet Gdański, Katedra Informatyki Ekonomicznej, ul. Armii Krajowej 119/121, 81-824 Sopot, Polska email: [email protected] (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 S. Kwapisz w Głównymi celami języka UML są [2]: − modelowanie elementów systemów (nie tylko oprogramowania) z użyciem pojęć obiektowych, − stworzenie języka do modelowania użytecznego zarówno dla ludzi jak i dla maszyn, − pomost pomiędzy ludzkim rozumieniem struktury i działania programów, a kodem programów, − specyfikowanie, konstrukcja, wizualizacja i dokumentacja zagadnień związanych z wykorzystaniem oprogramowanie. UML skupia się na standaryzacji języka do modelowania, a nie na ujednoliceniu procesów tworzenia oprogramowania. Stworzenie wspólnej unifikacji semantyki oraz notacji, umożliwia różnym organizacjom opisanie zagadnień, składających się z wielu procesów, przy pomocy tego samego języka. w 2 Znaczenie UML w projektowaniu Baz Danych w da .b Modelowanie systemu informatycznego wymaga spojrzenia na dany temat z kilku punktów widzenia. Wiele osób związanych projektem ma inne spojrzenie na system (użytkownicy końcowi, programiści, analitycy czy też specjaliści od integracji systemu). Każdy patrzy na zadanie z innej perspektywy i na innym etapie jego życia. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu. Pozwala zebrać i uporządkować wszystkie punkty widzenia, dlatego jest jednym z najistotniejszych elementów systemu. Architektura oprogramowania jest ogólną budową systemu komputerowego, która określa składowe, powiązania miedzy nimi oraz wzajemne interakcje i przepływy informacji [3]. Oprócz struktury i dynamiki, dotyczy również jego funkcjonalności i możliwości ponownego użycia. Uwzględnia również aspekty ekonomiczne i technologiczne, które mają wpływ na postać systemu. Specyfikacja UML 2.0 dostarcza wielu możliwości sprawnego opisu modelu systemu z uwypukleniem wybranych jego elementów. Pozwala zbudować architekturę systemu, która daje kontekst dla projektu bazy danych. Wykorzystując odpowiednie stereotypy oraz rozszerzenia języka UML można zaprojektować tabele, związki oraz opracować logikę procedur składowych. Proces tworzenia bazy danych dla danego systemu informatycznego jest bardzo istotny z punktu spełniana jego prawidłowego funkcjonowania oraz wydajności. Najlepszym sposobem przedstawienia systemu jest zaprezentowanie jego funkcjonalności z kilku perspektyw. Perspektywa (ang. view) – w szerszym znaczeniu określa obraz pojęciowy danych, który jest przypisany do użytkownika lub grupy użytkowników i pomija elementy mniej istotne dla jego działalności. Jest abstrakcyjną strukturą, przedstawioną za pomocą wielu diagramów, która pokazuje właściwości systemu z różnych punktów widzenia [4]. Wszystkie perspektywy języka UML stanowią niezależną całość, przy czym są ze sobą ściśle powiązane. Każdy członek zespołu projektowego może skoncentrować się na wybranym fragmencie architektury systemu, a dzięki multiperspektywiczności UML ukazane są wzajemne jej oddziaływania. Ponieważ projektowanie bazy danych wymaga skoncentrowania się na elastyczności rozwiązania oraz możliwości jego ponownego wykorzystania, przejrzystość specyfikacji języka UML sprzyja tym zabiegom. Diagramy dobrze opracowanego projektu mogą zostać w pełni bądź częściowo zaadoptowane przez inne projekty. pl s. 14 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Modelowanie systemu baz danych dużej instytucji finansowej wsparte językiem UML 2.0 w Z punktu modelowania bazy danych, oczywiście w zależności od problemu i funkcjonalności bazy, największe zastosowanie mają diagramy struktury: diagram klas, diagram struktur połączonych, diagram obiektów, diagram pakietów oraz diagramów rozlokowania: diagram komponentów i diagram rozlokowania. Jednak w celu zrozumienia architektury systemu oraz jego funkcjonalności konieczne jest również skorzystanie z diagramów przypadków użycia oraz modeli biznesowych. Jeśli w bazie danych mamy do czynienia ze złożonymi procedurami składowymi można zastosować diagramy interakcji . Dzięki programom CASE(Computer Aided Systems Engineering), wspomagającym modelowanie, wykorzystanie możliwości UML stają się bardziej efektywne. Szczególną uwagę należy zwrócić na bazodanowy profil UML, który dostarcza szereg mechanizmów w postaci stereotypów bazodanowych (np.:<<Table>>, <<View>>) oraz rozszerzeń. Istnieje już na poziomie modelu zdefiniowanie takich elementów jak kluczy, indeksów czy nawet użytkowników. Programy CASE pozwalają na podstawie tak stworzonych diagramów wygenerować gotowy kod zarówno w wielu językach programowania (VB, C++, Java), jak i w postaci skryptu SQL uwzględniając typ bazy danych (np. SQL Server 2000, Oracle, InterBase itp.). w w 3 Potrzeby informatyzacji integracji z systemem SI*GIIF da .b pl s. Problem „prania brudnych pieniędzy” dotyka w coraz szerszym stopniu również polski system finansowy. W celu przeciwdziałania temu zjawisku uchwalona została ustawa narzucająca obowiązek gromadzenia i rejestracji wszelkich transakcji finansowych dokonywanych przez tzw. instytucje obowiązane. Przedstawiony poniżej projekt systemu REJESTRATOR wspiera i usprawnia proces przekazywania danych przez instytucje bankową do Głównego Inspektora Informacji Finansowej zgodnie z przepisami rozporządzenia Ministra Finansów w sprawie określenia wzoru rejestru transakcji[8]. Zadaniem systemu REJESTRATOR jest zbieranie informacji o transakcjach „ponadprogowych”, których kwota przekracza określoną przez ministerstwo wartość. Ma to na celu wychwycenie ewentualnych oznak „prania” pieniędzy. Zarówno zakres jak i format danych zgłaszanych do GIIF musi być zgodny z wymaganiami stawianymi przez tę instytucję. Rozporządzenia Ministra Finansów nakładają obowiązek oraz odpowiedzialność na instytucjach rejestracji takich transakcji na rynku między bankowym, kiedy bank działa na podstawie dyspozycji klienta. Wymaga to od instytucji zobowiązanej przedsięwzięcie odpowiednich kroków w celu realizacji wymagań ministerstwa. Proces wysyłania informacji wymaga od banku stworzenia odpowiedniej infrastruktury informatyczne umożliwiającej sprawne wykrywanie takich operacji oraz integrację z systemem znajdującym się w ministerstwie. Ogólny schemat systemu Rejestrator przedstawia rys. 1. W celu efektywnego gromadzenia danych do raportów XML system REJESTRATOR będzie pobierał potrzebne informacje automatycznie z baz danych oddziałów. Zadaniem Kontrolerów w jednostkach organizacyjnych banku jest weryfikacja poprawności zarejestrowanych transakcji oraz możliwość wprowadzenia ich ręcznie, jeśli występowałoby podejrzenie o przestępstwie. Główny Kontroler jest odpowiedzialny za tworzenia „paczki” transakcji z danego miesiąca, która jest zapisana w postaci w pliku XML oraz przesyłanie jej do ministerstwa. 15 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 S. Kwapisz SYSTEM ZEWNĘTRZNY SI*GIIF Raport XML w Baza Danych Systemu REJESTRATOR CENTRALA BANKU w w Główny Kontroler ODDZIAŁY BANKU Server Aplikacji Baza Danych Oddziału Baza Danych Oddziału da .b Kontrolerzy w Oddziałach Rys. 1. Schemat systemu REJESTRATOR System zrealizowany będzie w technologii klient – serwer, oznacz iż użytkownik poprzez przeglądarkę internetową będzie komunikował się z serwerem aplikacyjnym. Dzięki temu będzie możliwa praca rozproszonej grupy jednostek współpracujących w ramach jednego banku, z jednoczesnym zapisem danych na centralnym serwerze bazodanowym. Rejestrator zostanie wdrożony w wewnętrznej sieci banku, będzie wykorzystywał jej architekturę w celu komunikacji pomiędzy składowymi systemu. Komunikacja z systemami zewnętrznymi ograniczać się będzie do wysyłania i odbierania raportów. pl s. 3.1 Funkcjonalności systemu - Diagram Przypadków Użycia Wykorzystując Diagram Przypadków Użycia można prawidłowo określić wymagania projektowanego systemu oraz kto i jakim zakresie będzie je wykorzystywał. Przedstawione w ten sposób funkcjonalności pozwalają wstępnie określić, który przydatek użycia wymaga zastosowania bazy danych oraz jakimi elementami powinna się ona charakteryzować (tabele, związki itp.). 16 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Modelowanie systemu baz danych dużej instytucji finansowej wsparte językiem UML 2.0 ud Przypadki Użycia System REJESTRATOR Administrow anie w Administrator Generuj Raport «extend» Zarządzanie Użytkow nikami Weryfikuj Raport «include» «extend» Przegladaj Raporty Wyślij Raport w Użytkow nik Raportow anie «include» «extend» Głów ny Kontroler Dodaj Now ą Transakcj ę w Obsługa Transakcj i «extend» «include» «extend» Weryfikuj Transakcj ę «extend» da .b Lokalny Kontroler Konfiguruj import Transakcj i Popraw Transakcj ę «include» Rys. 2. Diagram Przypadków Użycia pl s. Diagram przypadków użycia przedstawiony na rysunku 2 zawiera trzech aktorów: Administrator, Główny Kontroler, Lokalny Kontroler są to uszczegółowienia abstrakcyjnego aktora Użytkownik. Wykonanie przypadku użycia Administrowanie jest przypisane do aktora Administrator. Umożliwia mu ustawienie aplikacji w celu poprawnego działania. Dodatkowo przypadek ten jest rozszerzany (<<extend>>) przypadkiem Zarządzanie użytkownikami, który pozwala na pełne zarządzanie użytkownikami oraz ich rolami. Związek ten ma charakter opcyjny. Użytkownik Główny Kontroler może korzystać z pełnych funkcjonalności systemu. Posiada uprawnienia do wykonywania przypadków użycia Raportowanie i Obsługa Transakcji. Natomiast zadania Lokalnego Kontrolera są mniej złożone i koncentrują się jedynie na przypadku użycia Obsługa Transakcji. Przypadek użycia Obsługa Transakcji pozwala na ewidencjonowanie transakcji, jest rozszerzony przez następujące przypadki: Dodaj Nowa Transakcje, Popraw Transakcję oraz Konfiguruj import Transakcji. Użytkownik inicjując Dodaj Nowa Transakcje bądź Popraw Transakcję jest zobligowany do zweryfikowania poprawności wprowadzanych danych. Wykonywany zostaje wówczas zawierany(<<include>>) przypadek użycia Weryfikuj Transakcję. Aktor Główny Kontroler wykorzystuje funkcjonalność generowania raportów, która polega na pobraniu właściwych danych ze zbioru zarejestrowanych transakcji. Przypadek użycia Raportowanie jest rozszerzany przez przypadki Wyślij Raport oraz Generuj Raport. Wykorzystanie przypadku Generuj Raport pociąga za sobą konieczność zweryfikowania 17 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 S. Kwapisz w poprawności raportu. Uzyskuje się to poprzez zainicjowanie zawieranego (<<include>>) przypadku użycia Weryfikuj Raport. Następnie po wygenerowaniu raportu i poprawnej walidacji jest on zapisywany w bazie danych. Wówczas Główny Kontroler może wykonać Wyślij Raport, który zawiera przypadek użycia Przeglądaj Raporty. Ma to na celu dokładne wskazanie raportu, który ma zostać wysłany do systemu ministerstwa SI*GIIF. Na diagramie (rys. 2) można wyróżnić trzy główne moduły systemu, które ze względu na swoją funkcję będę wymagały zastosowania odpowiedniej struktury bazy danych. − Moduł Administracyjny - umożliwia tworzenie użytkowników oraz przypisywanie im uprawnień. Użytkownicy są podzieleni na administratorów systemu, Głównych Kontrolerów Banku oraz Kontrolerów w oddziałach Banku. Lokalny Kontroler ma możliwość wprowadzania i modyfikowania danych oraz weryfikowania poprawności zaewidencjonowanych transakcji. Wprowadza również na bieżąco dane dotyczące tzw. „wypłat nagłych”. Główny Kontroler Banku ma możliwość wprowadzania poprawek, edycji oraz raportowania działalności wszystkich jednostek oraz tworzenia sprawozdań do GIIF. − Moduł Raportujący – umożliwia operacje na danych: edycję, przeglądanie, sortowanie, generowanie raportów. Możliwości edycji, tworzenia raportów są dostępne w zależności od nadanych użytkownikowi uprawnień. − Moduł Obsługi Transakcji – umożliwia importowanie, wprowadzanie i modyfikowanie transakcji. System sprawdza poprawność wprowadzonych transakcji w czasie działania. Proces automatycznego importu danych jest uruchamiany codziennie i jego efektem jest wykrycie podejrzanych finansowo transakcji w każdym z oddziałów. da .b w w 3.2 Projektowanie Procesów Systemu pl s. Proces ewidencji transakcji może być realizowany na dwa sposoby. Pierwszy polega na tym, iż uprawniony do tego użytkownik łączy się z interfejsem obsługi transakcji wprowadza dane ręcznie. Po czym następuje walidacja wprowadzonych danych, jeśli proces ten przebiegnie pomyślnie następuje zapis w bazie danych. Diagram sekwencji przedstawiony na rys. 3 prezentuje interakcje procesu rejestrowania nowej transakcji. Użytkownik do uruchomienia procesu wykorzystuje Obsługę Transakcji. Następnie kontrolę przejmuje interfejs ITransakcji, do którego użytkownik przekazuje dane transakcji i wykonuje komunikat dodajTrans. Instancja klasyfikatora ITransakcji wywołuje operację na tabelach Wlasciciel, Dysponent, Beneficjent w celu pobrania numeru id odpowiedniego podmiotu. Operacja ta wykonywana jest jako pętla programowa(loop) i pozwala na przeszukanie wszystkich zarejestrowanych podmiotów. Jeśli wprowadzone dane transakcji zostaną poprawnie zweryfikowane walidujTrans interfejs ITransakcji wykonuje procedurę składową addTrans na tabeli Transakcja. Jeśli proces zostanie zakończony pozytywnie zostaje wysłany komunikat komunikat(Zapisana), w przeciwnym wypadku zostaje przesłana informacja o błędzie komunikat(Error). Drugi sposób rejestracji oparty jest o automatyczny import transakcji. System pobiera informacje o codziennych transakcjach Banku z istniejących bazy transakcyjnej i umieszcza je w bazie danych systemu. Z uwagi na możliwość wystąpienia pewnych błędów podczas importu wszystkie transakcje są zapisywane. Jeżeli walidacja importu była niepomyślna, wówczas zostaje przypisana wartość parametrowi Walidacja = False, w przeciwnym razie wartość wynosi True. Dzięki takiemu rozwiązaniu użytkownicy mogą łatwo wybrać transakcje wymagające korekty. Wszystkie dane w razie potrzeby mogą być uzupełniane i poprawiane przez użytkowników. 18 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Modelowanie systemu baz danych dużej instytucji finansowej wsparte językiem UML 2.0 sd Proces Rej estracji transakcj i Użytkownik «interface» «table» «table» «table» «table» :ITransakcji :Transakcj a :Wlasciciel :Dysponent :Beneficj ent Obsługa Transakcji wprowadzDane Transakcja:= dodajTrans(Transakcja) idWlasciciel:= selectWlasciciel() w loop idDysponenta:= selectDysponent() idBeneficjenta:= selectBeneficjent() w Boolean:= walidujTrans(Transakcja) alt [walidujTrans = True] addTrans(Transakcja) Komunikat(Zapisana) w [walidujTrans = False] Komunikat(Error) Zamknij d .b (from Use Case Model) Rys. 3. Proces rejestracji transakcji l .p as Diagram sekwencji przedstawiony na rys. 4 pokazuje interakcje importu transakcji. Użytkownik do uruchomienia procesu wykorzystuje Obsługę Transakcji. Następnie kontrolę przejmuje interfejs ITransakcji, za pomocą którego użytkownik ustawia parametry importu: wartoscTrans, BazaDanych, Tabela, login i hasło. Informacje te są konieczne, aby poprawnie zainicjować połączenie z bazą danych, która zawiera dane do importu. W tym celu instancja ITransakcji wywołuje operację ustawImport klasyfikatora Import. Po zainicjowaniu przez użytkownika importowania pobierane są parametry importu, a następnie uruchamiane wyszukiwanie transakcji we wskazanej bazie danych. Operacja ta wykonywana jest jako pętla programowa(loop). Jeśli komunikat select = 0, system poinformuje użytkownika o barku transakcji. Jeśli jednak zostanie odnaleziona przynajmniej jedna transakcja, uruchamiana jest walidacja- walidujTrans, a następnie zapis danych w bazie. Na końcu użytkownik zostaje poinformowany o efektach importu. Wszystkie transakcje zapisane w systemie REJESTRATOR podlegają wysłaniu do GIIF. Wykonanie eksportu okresowego raportu skutkuje wygenerowaniem dokumentu XML. Dokument jest zapisany w pliku pod odpowiednią nazwą np. 14022006.xml. Wyeksportowane pozycje rejestru oznaczone są wspólnym identyfikatorem. Proces generowania raportu jest inicjowany przez użytkownika o uprawnieniach Głównego Kontrolera. Najpierw następuje pobranie transakcji zapisanych w bazie danych systemu w określonym przedziale czasu. Po udanym procesie walidacji raportu, tak sporządzony dokument XML może zostać zapisany. 19 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 S. Kwapisz sd Proces importow ania transakcj i «interface» :Użytkownik «table» :Import :ITransakcj i :Transakcj a Obsługa Transakcji Baza Danych konfigurujImport ustawImport Import:= ustawImport(wartoscTrans, BazaDanych, Tabela, Login, Haslo) uruchomImport w Transakcja:= ImportujTrans() String:= pobierzParamteryImportu() Transakcja:= select loop w alt Boolean:= walidujTrans() [select > 0] w alt [walidujTrans = True] loop addTrans(Transakcja) setWalidacja(True) Komunikat(ImportPoprawny) da .b [walidujTrans = False] loop addTrans(Transakcja) setWalidacja(False) Komunikat(ImportZbledami) [select = 0] zamknij komunikat(brakTrans) pl s. Rys. 4. Diagram sekwencji proces importu transakcji Diagram sekwencji przedstawiony na rys. 5 pokazuje interakcje w procesie generowania raportów. Użytkownik do zainicjowania tego procesu wykorzystuje Obsługę Raportów, która wywołuje komunikat generujRaport na interfejsie IRaport. Następnie korzystając z komunikatu pobierzTrans interfejsu ITransakcji, pobiera za pomocą procedury składowej selectTrans transakcje zarejestrowane w tabeli Transakcja w miesiącu, którego dotyczy raport. Jeśli walidujRaport=True za pomocą procedury składowej addRaport wykonywany jest zapis danych w tabeli Raport. Użytkownik wówczas otrzymuje komunikat Wygenerowano. Proces wysyłania raportu do systemu SI*GIIF może nastąpić bezpośrednio po jego utworzeniu lub później, wymaga jednak ingerencji Głównego Kontrolera Banku. 20 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Modelowanie systemu baz danych dużej instytucji finansowej wsparte językiem UML 2.0 sd Generow anie Raportu Główny Kontroler «interface» «interface» «table» «table» :IRaportu :ITransakcj i :Transakcj a :Raport Obsługa Raportów generujRaport Raport:= generujRaport() Transakcja:= pobierzTrans() w loop Transakcja:= selectTrans() Boolean:= walidujRaport() w alt addRaport(Raport) [walidujRaport = True] Komunikat(Wygenerowano) [walidujRaport = False] w Komunikat(Error) zamknij da .b (from Use Case Model) Rys. 5. Proces generowania raportów sd Wysyłanie Raportu Główny Kontroler «interface» «table» :IRaportu :Raport Obsługa raportów SI*GIIF wyślijRaport wyslijRaport() Raport:= selectRaport() pl s. wyslij alt String:= komunikat(Zarejestrowany) [poprawny] Komunikat(poprawny) [odrzucony] String:= komunikat(niepoprawny) Komunikat(odrzucony) zamknij (from Use Case Model) Rys. 6. Proces wysyłania raportów do SI*GIIF 21 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 S. Kwapisz w Proces wysyłania raportu przedstawiony na rys. 6 rozpoczyna się, kiedy Główny Kontroler wykorzystując stronę Obsługa Raportów wykona komunikat wyślijRaport na interfejsie IRaportu. Dane raportu pobierane są z tabeli Raport, za pomocą komunikatu selectRaport. Następnie interfejs IRaportu przekazuje komunikatem wyslij raport do obiektu granicznego, jakim jest system ministerstwa SI*GIIF. Klasyfikator interfejsu IRaportu oczekuje na komunikat zwrotny, po przetworzeniu raportu w ministerstwie. W zależności o weryfikacji przeprowadzonej w systemie ministerstwa na stronie Obsługa raportów pojawi się komunikat poprawny bądź odrzucony. Wysłanie Raportu w Przetw arzanie w SI*GIIF Odbieranie Podpis oczekuj e na spraw dzenie Podpis niepopraw ny .b w Weryfikuj e Podpis popraw ny Transakcj e w czytano Zarej estrow anie True False Niepopraw ny when raport = "przyjety" s. da Rys. 7. Diagram Maszyny Stanowej wysyłania raportów do SI*GIIF pl Diagram maszyny stanowej na rys. 7 przedstawia stany w jakich znajduje się raport, po wysłaniu do systemu ministerstwa. Przetwarzanie w SI*GIIF jest stanem złożonym, który zawiera podmaszyny stanowe. Przedstawione na powyższym diagramie stany oznaczają: − zarejestrowany – oznacza, iż plik został przyjęty do systemu GIIF. W przypadku przesyłania plików pocztą elektroniczną status ten pojawi się po rozszyfrowaniu pliku, co w zależności od oczekujących plików może potrwać do kilku godzin. Dzieje się tak dlatego, że identyfikacja przesłanego pliku i jego przypisanie do konkretnej instytucji może nastąpić dopiero po weryfikacji podpisu elektronicznego i rozszyfrowaniu pliku; − podpis oczekuje na sprawdzenie – oznacza, że system informatyczny GIIF oczekuje na weryfikację autentyczności podpisu elektronicznego. Czas potrzebny na sprawdzenie autentyczności to 1h. Czas ten wynika z ustawy o podpisie elektronicznym – w tym czasie kwalifikowane urzędy certyfikacji weryfikują autentyczność podpisu; − podpis poprawny - oznacza, że podpis został zweryfikowany jako autentyczny i plik oczekuje na rozszyfrowanie; − podpis niepoprawny - oznacza, że podpis został zweryfikowany jako niepoprawny i plik nie będzie rozszyfrowywany, a jego status zmieni się na "Do wyjaśnienia"; − transakcje wczytano – oznacza, że w rozszyfrowanym pliku system informatyczny GIIF znalazł poprawnie zapisane dane o transakcjach i zostały one wczytane do systemu informatycznego GIIF. Proces przesłania pliku zakończony został poprawnie; 22 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Modelowanie systemu baz danych dużej instytucji finansowej wsparte językiem UML 2.0 − niepoprawny – oznacza, że w rozszyfrowanym pliku system informatyczny GIIF znalazł dane zapisane i przesłane przez instytucję obowiązaną z naruszeniem ustalonych przedmiotowym rozporządzeniem Ministra Finansów formatów przesyłania danych. Instytucja obowiązana powinna zweryfikować poprawność przesłanych danych pod względem formalnej ich zgodności z formatem zawartym w rozporządzeniu i po zidentyfikowaniu błędu należy przesłać poprawione dane po raz kolejny. w 3.3 Model Struktury Bazy Danych w w Bazodanowy profil UML zawiera wszystkie elementy potrzebne do modelowania struktury bazy danych. Stosując odpowiednie stereotypy (<<Table>>, <<Proc>>, <<View>>) można w łatwy sposób zaprojektować bazę danych. Wykorzystując oprogramowanie CASE możliwa jest bardziej szczegółowa specyfikacja tworzonych diagramów oraz wygenerowanie na ich podstawie gotowych skryptów np. SQL. Istotnym elementem są również przestrzenie nazw (ang. Table space), które wykorzystywane są do agregowania oraz dekompozycji tabel. Tworzą klarowną hierarchiczną strukturę, wpływa to na lepsze zrozumienie bazy danych przez członków zespołu projektowego. Ma to duże znaczenie w sytuacji kiedy chcemy ponownie wykorzystać lub wprowadzić modyfikacje. Oddział da .b *PK «column» IdOddzialu: int * «column» Nazwa: nvarchar(100) «column» Miasto: nvarchar(100) + + + + «PK» PK_Oddział(int) «proc» addOddzial() «proc» delOddzial() «proc» updateOddzial() 1 «FK» +FK_Uzytkownik_Oddział 0..* Uzytkow nik Rola *PK «column» IdRoli: int «column» Nazwa: nvarchar(50) + + + + + «PK» PK_Rola(int) «proc» addRola() «proc» delRola() «proc» updateRola() «proc» selectRola() 1 «FK» 0..* + + + + + + + + «column» «column» «column» «column» «column» «column» «column» IdUzytkownika: int IdRoli: int IdOddzialu: int Imie: nvarchar(50) Nazwisko: nvarchar(50) login: nvarchar(50) haslo: nvarchar(50) pl s. *PK *FK *FK * * +FK_Uzytkownik_Rola * * «FK» FK_Uzytkownik_Oddział(int) «FK» FK_Uzytkownik_Rola(int) «PK» PK_Uzytkownik(int) «unique» UQ_Uzytkownik_login(nvarchar) «proc» updateUser() «proc» addUser() «proc» delUser() «proc» selectUser() Rys. 8. Diagram struktury bazy danych modułu administracji Struktura bazy danych systemu REJESTRATOR składa się z następujących przestrzeni nazw (<<Tablespace>>), które są tożsame z modułami systemu: − Administracji, w którego skład wchodzą tabele : Użytkownik, Rola oraz Oddział, − Obsługi Transakcji, którą tworzą tabele: Transakcja, Dysponent, Wlasciciel, Beneficjent, − Raportowania składającej się zarówno z tabeli Raport, jak i Transakcja. 23 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 S. Kwapisz w Diagram zaprezentowany na rys. 8 przedstawia schemat bazy danych modułu administracji. Centralnym punktem tego fragmentu bazy danych jest użytkownik sytemu, którego dane zapisane są w tabeli Użytkownik. Kluczem głównym tej tabeli, oznaczonym stereotypem PK(PrimaryKey), jest pole idUzytkownika, które może przyjmować wartości typu int. Tabela Uzytkownik posiada dwa klucze obce FK(ForeignKey) iRoli oraz idOddzialu, które są odpowiednikami kluczy głównych tabel: Rola i Oddział. Wskazania liczbowe asocjacji pomiędzy tabelami, określają budowę relacji np. użytkownik musi być przypisany do co najmniej jednej roli, ale może nie być przypisany do ściśle określonego oddziału (np. kiedy jest Głównym Kontrolerem Banku). Występowanie kluczy obcych w tabeli Użytkownik jest pewnym ograniczeniem, z uwagi na rodzaj wprowadzanych danych. Transakcj a w Raport «PK» PK_Raport(int) «proc» addRaport() «proc» delRaport() «proc» updateRaport() «proc» selectRaport() Dysponent + + + + + IdDysponenta: int zTypPo: nvarchar(2) zNz: nvarchar(140) zAdrKr: nvarchar(2) zObyw: nvarchar(2) zAdrKod: nvarchar(10) zAdrM: nvarchar(35) 1 zAdrUl: nvarchar(35) zNrPes: nvarchar(11) zNrReg: nvarchar(9) zNrReS: nvarchar(10) zNrSwt: nvarchar(15) zNip: int zRodzDokTo: nvarchar(2) zNrDokTo: nvarchar(25) «FK» + + + + + + + + + + «FK» FK_Transakcja_Raport(int) «FK» FK_Transakcja_Beneficjent(int) «FK» FK_Transakcja_Dysponent(int) «FK» FK_Transakcja_PodmiotWimieniu(int) «PK» PK_Transakcja(int) «proc» addTrans() «proc» dellTrans() «proc» updateTrans() «proc» selectTrans() «proc» setWalidacja() l .p as *PK «column» «column» «column» «column» «column» «column» «column» «column» «column» «column» «column» «column» «column» «column» «column» d .b + + + + + IdRaportu: int NipIO: int IKart: int pDat: datetime pCzas: smalldatetime w *PK «column» «column» «column» «column» «column» *PK «column» IdTransakcji: int FK «column» IdRaportu: int «column» nrEwT: int «column» nrRejDat: datetime «column» rejDat: datetime «column» jedIO: int «column» Status: int +FK_Transakcja_Raport «column» kRodzTr: nvarchar(4) «column» kPwz: nvarchar(1) «FK» 1..* 1 «column» kPdjrz: nvarchar(4) «column» spDysp: int «column» nrDokT: nvarchar(12) «column» tDat: datetime «column» tM: nvarchar(35) «column» tJ: nvarchar(3) «column» tKwZ: nvarchar(15) «column» nrRachZ: nvarchar(56) «column» nrRachN: nvarchar(56) «column» Uwagi: nvarchar(1500) +FK_Transakcja_Dysponent FK «column» IdBeneficjenta: int FK «column» IdWlasciciel: int 1 FK «column» IdDysponenta: int «column» Walidacja: bit 1 «PK» PK_Dysponent(int) «proc» addDyspon() «proc» delDyspon() «proc» updateDyspon() «proc» selectDysponent() +FK_Transakcja_PodmiotWimieniu 1 +FK_Transakcja_Beneficjent «FK» «FK» 1 1 Beneficj ent Wlasciciel *PK «column» «column» «column» «column» «column» «column» «column» + + + + + IdWlasciciel: int pTypPo: nvarchar(2) pNz: nvarchar(140) pAdrKr: nvarchar(2) pAdrKod: nvarchar(10) pAdrM: nvarchar(35) pAdrUl: nvarchar(35) «PK» PK_PodmiotWimieniu(int) «proc» addWlasciciel() «proc» delWlasciciel() «proc» updateWlasciciel() «proc» selectWlasciciel() *PK «column» «column» «column» «column» «column» «column» «column» + + + + + IdBeneficjenta: int bTypPo: nvarchar(2) bNz: nvarchar(140) bAdrKr: nvarchar(10) bAdrKod: nvarchar(10) bAdrM: nvarchar(35) bAdrUl: nvarchar(35) «PK» PK_Beneficjent(int) «proc» addBeneficjent() «proc» delBeneficjent() «proc» updateBeneficjent() «proc» selectBeneficjent() Rys. 9. Diagram struktury bazy danych modułu obsługi transakcji i raportowania 24 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Modelowanie systemu baz danych dużej instytucji finansowej wsparte językiem UML 2.0 w Dodatkowe ograniczenie zostało nałożone na kolumnę login, wymuszając wartości unikatowe. Oznaczone to zostało stereotypem <<unique>>. Wszystkie tabele posiadają określone stereotypem <<proc>> procedury składowe, które umożliwiają wykonywanie operacji na tabelach Ponieważ moduły obsługi transakcji oraz raportowania nachodzą na siebie, strukturę tego fragmentu bazy danych można rozpatrywać na jednym diagramie. Na rysunku 8 zawarte są tabele: Raport, Transakcja, Dysponent, Wlasciciel, Beneficjent. Centralnym punktem tego fragmentu bazy danych, z punktu widzenia funkcjonalności systemu, są dwie tabele Transakcja oraz Raport. Tabela Transakcja składa się z klucza głównego PK IdTransakcji oraz czterech kluczy obcych idRaportu, idBeneficjenta, idWlasciciela, idDysponenta, które reprezentują klucze główne swoich tabel. Pozostałe kolumny opisują dane transakcji. Ważnym elementem jest kolumna Walidacja, która przyjmuje wartości False lub True, w zależności od przebiegu weryfikacji poprawności przy imporcie transakcji. Liczebności asocjacji wskazują na relacje pomiędzy tabelami. Każdej transakcji musi być przypisany jeden Wlasciciel, Dysponent oraz Beneficjent. Natomiast Raport jest elementem agregującym transakcje z danego miesiąca, aby mógł być stworzony musi istnieć przynajmniej jedna transakcja. Zastosowana tutaj forma agregacji częściowej wskazuje, iż obiekty współdzielone, czyli Transkacje mogą samodzielnie funkcjonować, niezależnie od agregatu. w w dd Diagram Rozlokow ania da .b - Procesor: 2 x 2 GHz Xeon - Pamięć : 4x 1 GB - Macierz dyskowa 2 TB - Platforma: Microsoft Windows Server 2003 - Baza danych: Microsoft SQL Server firew all Stacj a użytkow nika 1 «TCP-IP» 1.. 1 «ethernet» Siec Banku «fast ethernet» 1 Serw er Bazy Danych 1 Przeglądarka internetow a 1 «fast ethernet» 1 1 - Procesor: 2x 2 GHz Xeon - Pamięć : 2x 1 GB - Dysk: SCSI 300 GB 10000RPM - Platforma: Microsoft Windows Server 2003 Serw er Aplikacj i Raportuj ącej dla GIIF «deploy» Baza Danych.mdf «asp page» Obsługa Raportów.aspx «manifest» Component Model::Obsługa Raportów «deploy» pl s. «deploy» «artifact» «deploy» «asp page» Logowanie.aspx «asp page» Obsługa Transakcji.aspx «manifest» Component Model:: Administracj a «manifest» Component Model::Obsługa Transakcj i Rys. 10. Diagram rozlokowania komponentów systemu Powyższy diagram rozlokowania jest opracowany na poziomie fizycznym, ponieważ zawiera szczegółowo specyfikacje atrybutów węzłów. System Rejestrator docelowo będzie wdrożony w wewnętrznej sieci banku. Zgodnie z tym założenie diagram na rys. 10 przed25 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 S. Kwapisz w stawia rozmieszczenie tego systemu w architekturze sieciowej banku. Szczegółowe parametry wskazano na trzech węzłach: Serwer Aplikacji dla GIIF, Serwer Bazy Danych oraz Stacja Użytkownika. Są to jedyne elementy, które w obecnej sytuacji mogą podlegać konfiguracji pod kątem tego systemu. Pozostałe elementy zaś, takie jak ustawienia sieci czy firewall, są parametrami, które system musi zaakceptować. Węzły serwer bazy dany oraz aplikacyjnego posiadają szczegółowe informacje o procesorze, pamięci RAM, kontrolerach dysków twardych oraz systemach operacyjnych. W przypadku bazy danych określono również jej typ Microsoft SQL Server. Natomiast stacja użytkownika powinna zawierać przeglądarkę internetową, która umożliwi mu korzystanie z systemu. Na serwerze aplikacyjnym zostały osadzone trzy artefakty: Obsłua_Raportów.aspx, Logowanie.aspx, Obsługa_Transakcji.apsx oraz trzy komponenty systemu. Dzięki umieszczeniu ich na serwerze aplikacji internetowych Microsoft IIS(Internet Information Services), który jest składnikiem systemu operacyjnego Windows Serwer 2003, będą mogły być wykorzystywane przez użytkownika za pomocą jego przeglądarki. Serwer bazodanowy natomiast, będzie zawierał całą strukturę bazy danych, która jest wymagana do prawidłowej pracy systemu. w w 4 Podsumowanie da .b Literatura 1. 2. 3. 4. 5. 6. 7. 8. pl s. Celem niniejszego rozdziału było przedstawienie przydatności języka UML w procesie modelowania baz danych. W dużych projektach informatycznych określenie wymagań stanowi problem, gdyż błędne lub nieprecyzyjne ich określenie może mieć negatywne wpływ na realizacje projektu. Wykorzystując możliwości UML możemy dokładnie określić funkcjonalność, usprawnić komunikację w zespołach projektowych oraz czuwać nad ujednoliceniem specyfikacji pomysłów. Dzięki rozbudowanym profilom UML oraz multiprespektywiczności, język ten jest przydatny w projektowaniu różnych dziedzin problemowych, również baz danych. Integralną częścią systemów informatycznych jest ich baza danych, która wywiera ogromny wpływ na działanie, wydajność oraz przyszłą modyfikację całego systemu. Skonstruowanie optymalnej bazy danych jest trudnym zadaniem, z uwagi na wciąż rosnące wymagania oraz odpowiedzialność stawiane twórcom oprogramowania. Wrycza S., Marcinkowski B., Wyrzykowski K., Język UML 2.0 w modelowaniu systemów informatycznych, HELION 2005 Ambler S.W.; The Elements of UML Style; Cambridge: University Press; 2003 Subieta K., Wprowadzenie do obiektowych metodyk projektowania i notacji UML, folia 67 Śmiałek M., Zrozumieć UML 2.0 Metody modelowania obiektowego, HELION 2005 Subieta K.: Słownik terminów z zakresu obiektowości. Akademicka Oficyna Wydawnicza PLJ, Warszawa 1999 Robert J.Muller, Bazy danych – język UML w modelowaniu danych, MIKOM 2000 K.Subieta, Analiza i projektowanie systemów informatycznych, PJWSTK 2003 Ustawa z dnia 5 marca 2004 r.o zmianie ustawy o przeciwdziałaniu wprowadzaniu do obrotu finansowego wartości majątkowych pochodzących z nielegalnych lub nieujawnionych źródeł oraz o przeciwdziałaniu finansowaniu terroryzmu oraz o zmianie niektórych ustaw 26 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006