11.11.2014 Views

pobierz plik referatu - Politechnika Śląska

pobierz plik referatu - Politechnika Śląska

pobierz plik referatu - Politechnika Śląska

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008<br />

www.bdas.pl<br />

Rozdział 9<br />

Wymagania funkcjonalne interfejsu użytkownika dla<br />

frameworków tworzenia a<strong>plik</strong>acji bazodanowych<br />

Streszczenie. W rozdziale opisano podstawowe wymagania funkcjonalne<br />

odnoszące się do warstwy prezentacji a<strong>plik</strong>acji bazodanowych. Zestaw<br />

wymagań funkcjonalnych stworzono w oparciu o doświadczenia związane<br />

z użytkowaniem interfejsu graficznego a<strong>plik</strong>acji ERP: IFS Applications,<br />

Microsoft Dynamics NAV oraz generatorów a<strong>plik</strong>acji: MSE Magic<br />

eDeveloper, Centura, Oracle Forms Developer. Jako alternatywne<br />

rozwiązanie wspomagające tworzenie a<strong>plik</strong>acji Java wskazano autorską<br />

bibliotekę EALib. Przedstawiona biblioteka rozszerza możliwości biblioteki<br />

Borland dbSwing dostarczając szkielet programistyczny umożliwiający<br />

szybsze tworzenie a<strong>plik</strong>acji bazodanych.<br />

1 Wstęp<br />

Uniwersalne środowiska tworzenia a<strong>plik</strong>acji – takie jak Microsoft Visual Studio, Borland<br />

C++ Builder, czy też rozwiązania oparte o Eclipse (Borland JBuilder, IBM WebSphere<br />

Development Studio) – umożliwiają tworzenie różnego typu a<strong>plik</strong>acji: programów<br />

narzędziowych, poprzez edytory tekstu i grafiki, a<strong>plik</strong>acje multimedialne, gry, a<strong>plik</strong>acje<br />

sieciowe, a<strong>plik</strong>acje biznesowe i inne. Wykorzystanie tego typu narzędzi do tworzenia<br />

a<strong>plik</strong>acji bazodanowych – często od zera – korzystając z dostępnych w środowisku<br />

deweloperskim obiektów i kreatorów, jest bardzo pracochłonne. Uproszczenie procesu<br />

tworzenia tego typu a<strong>plik</strong>acji można uzyskać przez zastosowanie bibliotek lub całych<br />

frameworków (szkieletów) programistycznych dedykowanych dla a<strong>plik</strong>acji bazodanowych<br />

(Borland dbSwing, JGoodies, Oracle ADF, JBoss Seam). Jeszcze większą efektywność<br />

tworzenia a<strong>plik</strong>acji oferują specjalizowane generatory a<strong>plik</strong>acji bazodanowych (MSE<br />

Magic eDeveloper, Centura, PowerBuilder, Oracle Developer Suite/Oracle Forms<br />

Developer, środowisko Microsoft Dynamics NAV C/SIDE i inne). Rozwiązania te<br />

umożliwiają bardzo szybką implementację podstawowych funkcjonalności<br />

charakterystycznych dla systemów bazodanowych (obsługa podstawowych operacji na<br />

danych, wyszukiwanie, system bezpieczeństwa). Podstawowe obiekty, które można<br />

tworzyć w systemach tego typu obejmują: tabele, formularze (tabelaryczne oraz kartoteki,<br />

w tym obsługa formularzy złożonych, np. relacji 1:N), raporty, moduły programowe<br />

dziedzinowej logiki przetwarzania (zwanej dalej logiką biznesową), programy<br />

Jacek Frączek<br />

<strong>Politechnika</strong> Śląska, Instytut Informatyki, ul. Akademicka 16, 44-100 Gliwice, Polska<br />

email: jacek.fraczek@polsl.pl<br />

(c) Copyright by <strong>Politechnika</strong> Śląska, Instytut Informatyki, Gliwice 2008


Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008<br />

J. Frączek<br />

www.bdas.pl<br />

importu/eksportu danych, menu. Podstawową wadą generatorów a<strong>plik</strong>acji bazodanowych<br />

jest fakt, że są to rozwiązania płatne.<br />

Przedstawiona w niniejszym rozdziale biblioteka EALib wspomaga szybkie i efektywne<br />

tworzenie a<strong>plik</strong>acji bazodanowych. Opisywane rozwiązanie oparto na bibliotece Borland<br />

dbSwing, której komponenty pozwalają powiązać kontrolki wizualne z obiektami warstwy<br />

dostępu do danych [8]. Bazując na klasach biblioteki dbSwing utworzono nowe klasy<br />

o wzbogaconej funkcjonalności. Opisywane rozwiązanie jest wynikiem prac własnych oraz<br />

kilkuletniego wysiłku osób współtworzących poszczególne elementy rozwiązania<br />

w ramach realizowanych tematów prac dyplomowych magisterskich [1,2,3,4,5].<br />

Przed przedstawieniem zrealizowanego projektu opisano wymagania jakie powinien<br />

spełniać framework tworzenia a<strong>plik</strong>acji bazodanowych. W części tej zebrano osobiste<br />

doświadczenia związane z użytkowaniem interfejsu graficznego rozbudowanych a<strong>plik</strong>acji<br />

ERP: IFS Applications, Microsoft Dynamics NAV oraz opisano rozwiązania oferowane<br />

przez generatory a<strong>plik</strong>acji: MSE Magic eDeveloper, Centura, Oracle Forms Developer.<br />

2 Wymagania dotyczące warstwy prezentacji a<strong>plik</strong>acji bazodanowych<br />

Framework programistyczny dla tworzenia desktopowych a<strong>plik</strong>acji bazodanowych<br />

realizowanych przy użyciu uniwersalnych języków programowania (Java, C/C++/C#,<br />

Pascal) powinien oferować gotowe rozwiązania dla następujących obszarów a<strong>plik</strong>acyjnych:<br />

− klasa okna głównego a<strong>plik</strong>acji,<br />

− klasa formatki podstawowej,<br />

− klasy (lub szablony) umożliwiające szybką realizację najczęściej występujących<br />

formatek:<br />

− kartoteka (np. kartoteka pojedynczego pracownika),<br />

− lista (np. lista wykaz kont księgowych),<br />

− kartoteka z listą:<br />

− obsługa danych pozostających w relacji 1:N (np., dane wydziału wraz<br />

z listą jego pracowników),<br />

− obsługa danych pozostających w relacji M:N (np., grupy użytkowników<br />

i przypisani do nich użytkownicy),<br />

− klasa słownika,<br />

− jednolite mechanizmy obsługi odczytu i edycji danych,<br />

− zintegrowane mechanizmy filtrowania i wyszukiwania danych,<br />

− możliwość automatycznej aktualizacji a<strong>plik</strong>acji,<br />

− zintegrowany system bezpieczeństwa.<br />

Zastosowanie konkretnego szkieletu programistycznego może wymagać spełnienia<br />

dodatkowych wymagań, a w szczególności:<br />

− odpowiedniego wypełnienia treścią <strong>plik</strong>ów konfiguracyjnych frameworka,<br />

− istnienia struktur metadanych w bazie danych (np. do przechowywania informacji<br />

o konfiguracji formatek a<strong>plik</strong>acji),<br />

− określonej budowy obiektów warstwy przechowywania danych (np. przy stosowaniu<br />

mechanizmów tzw. optymistycznego blokowania).<br />

Podane w dalszych rozdziałach cechy i funkcjonalności szczegółowe fameworku są<br />

pewną propozycją. W szczególności projektanci szkieletu programistycznego mogą przyjąć<br />

inne założenia i wdrożyć rozwiązania odmienne od zaproponowanych. Przedstawione<br />

propozycje dotyczą frameworku służącego do realizacji a<strong>plik</strong>acji desktopowych,<br />

110<br />

(c) Copyright by <strong>Politechnika</strong> Śląska, Instytut Informatyki, Gliwice 2008


Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008<br />

Wymagania funkcjonalne interfejsu użytkownika dla frameworków tworzenia a<strong>plik</strong>acji bazodanowych<br />

aczkolwiek może on stanowić podstawę dla realizacji projektów a<strong>plik</strong>acji WWW.<br />

Rozwiązania związane z systemem użytkowników, konfiguracją a<strong>plik</strong>acji, szablonami<br />

podstawowych typów formatek są wspólne dla dowolnego typu a<strong>plik</strong>acji.<br />

2.1 Klasa głównego okna a<strong>plik</strong>acji<br />

www.bdas.pl<br />

Okno główne a<strong>plik</strong>acji bazodanowej zawiera z reguły następujące elementy (rys.1):<br />

− belkę tytułową, której może towarzyszyć krótki pasek narzędziowy (podobnie jak<br />

w Microsoft Office 2007),<br />

− pasek lub wstążki menu (menu + główny pasek narzędziowy) – obsługa<br />

podstawowych funkcji a<strong>plik</strong>acji:<br />

− a<strong>plik</strong>acja: zaloguj do systemu, wyloguj z systemu, zmień hasło, konfiguracja<br />

a<strong>plik</strong>acji, zakończ,<br />

− nawigacja między rekordami: pierwszy, następny, poprzedni, ostatni rekord,<br />

− obsługa danych: odczyt danych (odświeżenie), wycofanie dokonanych zmian,<br />

zapis danych, dodaj nowy rekord, kopiuj rekord 1 , usuń rekord,<br />

− panel wyszukiwania,<br />

− inne: wywołanie domyślnej formatki szczegółów, wywołanie domyślnego<br />

raportu, przeniesienie danych do archiwum, itp.,<br />

− okno nawigatora – umożliwiające wybór operacji (formatek) z rozwijalnego menu<br />

(IFS Applications, Microsoft Dynamics NAV – okno nawigatora ma postać paska<br />

nawigatora Outlook),<br />

− obszar roboczy – w którym otwierane są formatki a<strong>plik</strong>acji; wśród możliwości<br />

realizacji obsługi formatek w obszarze roboczym można wyróżnić zastosowanie:<br />

− okien wewnętrznych (MDI),<br />

− zakładek z formatkami,<br />

− pasek statusu – wyświetlający dodatkowe informacje, takie jak: status połączenia z<br />

bazą danych, tryb pracy formatki (do odczytu, do modyfikacji), status danych<br />

(zmodyfikowane), ilość dostępnej pamięci, itp.<br />

Framework powinien w odpowiedni sposób reagować na zdarzenia:<br />

− otwarcia a<strong>plik</strong>acji:<br />

− odczyt konfiguracji a<strong>plik</strong>acji (np. położenie i rozmiar okna głównego),<br />

− próby zamknięcia a<strong>plik</strong>acji:<br />

− zapewnienie uzyskania potwierdzenia zapisania (lub anulowania zapisu)<br />

wszystkich niezatwierdzonych danych,<br />

− zapis konfiguracji systemu (np. rozmiaru i położenia okna a<strong>plik</strong>acji, otwartych<br />

formatek), itp.<br />

Konfiguracja a<strong>plik</strong>acji może obejmować:<br />

− wybór języka pracy a<strong>plik</strong>acji,<br />

− w przypadku a<strong>plik</strong>acji umożliwiających pracę z wieloma podmiotami gospodarczymi<br />

– wybór firmy (organizacji, wspólnoty mieszkaniowej), na danych której chcemy<br />

pracować,<br />

1 Kopiowanie rekordów reprezentujących dane strukturalne może wymagać wykonania bardziej<br />

złożonej procedury (np. kopiowanie nagłówka faktury, powinno skopiować również jej wiersze) –<br />

tego typu sytuacje powinny być realizowane przez odpowiednie rozszerzenia podstawowej<br />

funkcjonalności frameworku.<br />

111<br />

(c) Copyright by <strong>Politechnika</strong> Śląska, Instytut Informatyki, Gliwice 2008


Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008<br />

J. Frączek<br />

www.bdas.pl<br />

− ustalenie wyglądu a<strong>plik</strong>acji (skórka, ustalenie koloru obramowania, wnętrza,<br />

czcionki dla etykiet i zawartości pól wymaganych),<br />

− informacja o konfiguracji pozycji menu wstążek, zapis informacji o ostatnio<br />

używanych opcjach,<br />

− zapis informacji o rozmiarze i położeniu okna a<strong>plik</strong>acji przy ponownym<br />

uruchomianiu a<strong>plik</strong>acji,<br />

− zapis informacji o stanie a<strong>plik</strong>acji – informacje o rozmiarze i położeniu otwartych<br />

formatek a<strong>plik</strong>acji, które należy wyświetlić przy ponownym uruchamianiu a<strong>plik</strong>acji.<br />

Rys. 1. Ekran a<strong>plik</strong>acji zrealizowanej przy zastosowaniu biblioteki EALib<br />

2.2 Klasa formatki podstawowej<br />

Formatka podstawowa zapewnia obsługę standardowych funkcji związanych z obsługą<br />

formatki oraz podstawowych operacji bazodanowych. Operacje bazodanowe dotyczą<br />

znajdujących się na formatce kontrolek wizualnych (pól edycyjnych, tabel) powiązanych<br />

z obiektami bazy danych. W przypadku jawnego zatwierdzania danych przez użytkownika<br />

formatka podstawowa powinna umożliwiać obsługę następujących funkcji/przycisków<br />

(rys.1):<br />

− [Anuluj] – zamknięcie z wycofaniem niezapisanych zmian,<br />

− [Zastosuj] - zapis zmian bez zamknięcia okna,<br />

− [OK] - zapis zmian i zamknięcie okna,<br />

− [X] na belce tytułowej - zamknięcie okna, a jeżeli była zmiana, to zapytanie<br />

o zachowanie zmian (opcja dostępna również przez naciśnięcie przycisku ).<br />

112<br />

(c) Copyright by <strong>Politechnika</strong> Śląska, Instytut Informatyki, Gliwice 2008


Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008<br />

Wymagania funkcjonalne interfejsu użytkownika dla frameworków tworzenia a<strong>plik</strong>acji bazodanowych<br />

www.bdas.pl<br />

Framework powinien zapewniać dodatkowo:<br />

− obsługę procesu wstawiania danych:<br />

− automatyczne wyświetlenie wartości domyślnych,<br />

− automatyczne sprawdzenie warunku podania wartości dla pól wymaganych –<br />

w przypadku, gdy nie podano pola, pojawia się dialog: Pole [nazwa pola, np.<br />

z etykiety] jest wymagane. Proszę podać wartość pola.<br />

− automatyczne sprawdzenie warunku podania danych w odpowiednim formacie<br />

– w przypadku, gdy podano wartość niezgodną z wymaganym formatem pola,<br />

pojawia się dialog: Pole [nazwa pola, np. z etykiety] wymaga podania danych<br />

w formacie [format]. Proszę podać dane w prawidłowym formacie.,<br />

− automatyczna weryfikacja więzów integralności,<br />

− obsługę procesu modyfikacji danych – podobnie jak w przypadku wstawiania danych<br />

– automatyczna obsługa weryfikacji pól wymaganych, formatów danych oraz<br />

więzów integralności,<br />

− obsługę procesu usuwania danych – automatyczna obsługa weryfikacji więzów<br />

integralności,<br />

− zapis konfiguracji formatki:<br />

− rozmiar i położenie formatki,<br />

− widoczność, rozmieszczenie pól (pozycja w tabeli), możliwość edycji, wartości<br />

domyślne pól formularzy oraz kolumn tabel,<br />

− możliwość przypisania do danej formatki:<br />

− domyślnej formatki szczegółów,<br />

− domyślnego raportu.<br />

2.3 Klasy (lub szablony) realizacji standardowych formatek a<strong>plik</strong>acji<br />

Framework powinien umożliwiać szybką implementację najczęściej pojawiających się<br />

w a<strong>plik</strong>acjach typów formatek:<br />

− kartoteka – wyświetlenie danych pojedynczego rekordu wraz z opisami<br />

pochodzącymi ze skojarzonych słowników,<br />

− lista – wyświetlenie tabeli z listą rekordów,<br />

− kartoteka z listą – wyświetlenie szczegółowych danych pojedynczego rekordu oraz<br />

lity rekordów z nim skojarzonych (rys.1):<br />

− obsługa danych pozostających w relacji 1:N,<br />

− obsługa danych pozostających w relacji M:N.<br />

− klasa słownika – wyświetlenie listy wartości słownika:<br />

− przekazanie wartości wybranej do pola wywołującego słownik,<br />

− zapewnienie możliwości wyboru kilku wartości,<br />

− przyciski [OK] – zatwierdzenie wyboru, [Anuluj] – rezygnacja z wyboru<br />

wartości (podobnie jak i zamknięcie formatki słownika przez przycisk [X])<br />

Kwestią do rozważania jest umożliwienie edycji pozycji słownika, przy wyborze wartości.<br />

W systemach takich jak IFS Applications, Microsoft Dynamics NAV jest to dopuszczalne.<br />

2.4 Mechanizmy obsługi odczytu i edycji danych<br />

W obecnych na rynku systemach komercyjnych spotyka się różne rozwiązania w zakresie<br />

sposobu obsługi odczytu, edycji i zatwierdzania wykonanych przez użytkownika zmian:<br />

113<br />

(c) Copyright by <strong>Politechnika</strong> Śląska, Instytut Informatyki, Gliwice 2008


Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008<br />

J. Frączek<br />

www.bdas.pl<br />

− sposób otwarcia formatki 2 :<br />

− formatka pusta (domyślne w a<strong>plik</strong>acjach IFS Applications, Oracle Forms),<br />

− formatka wypełniona danymi (a<strong>plik</strong>acje Magic, Microsoft Dynamics Nav),<br />

− tryb otwarcia formatki:<br />

− w trybie tylko do odczytu, w celu edycji danych należy przełączyć się do trybu<br />

edycji, (Magic),<br />

− w trybie do edycji (IFS Applications, Microsoft Dynamics Nav),<br />

− sposób zatwierdzenia danych i zapisu zmian do bazy danych:<br />

− natychmiast po ich modyfikacji przez użytkownika (Magic, Microsoft<br />

Dynamics Nav),<br />

− po jawnym wskazaniu opcji zapisu przez użytkownika (IFS Applications,<br />

Oracle Forms),<br />

− sygnalizacja możliwości usunięcia danych (kontrola więzów integralności):<br />

− wyświetlenie odpowiedniego komunikatu w przypadku, gdy usunięcie danych<br />

nie jest możliwe,<br />

− sposób pracy ze słownikami:<br />

− umożliwienie/zabronienie edycji oraz usuwania danych ze słownika przy<br />

wywołaniu słownika,<br />

− umożliwienie wprowadzenia nowych danych do słownika przy wywołaniu<br />

słownika.<br />

Przy rozpatrywaniu zachowania się a<strong>plik</strong>acji należy rozważyć sposób reakcji a<strong>plik</strong>acji na<br />

zdarzenie równoczesnej modyfikacji danych przez więcej niż jednego użytkownika.<br />

Framework powinien wspierać obsługę wielodostępu, np. poprzez automatyczną<br />

sygnalizację zdarzenia tego typu (wyświetlenie odpowiedniego komunikatu) oraz<br />

akceptację zmian wprowadzonych tylko przez jednego z użytkowników. W celu realizacji<br />

powyższego założenia framework może wymagać np. określonej budowy obiektów w bazie<br />

danych (np. w przypadku zastosowania metody nazywanej optymistycznym blokowaniem<br />

(ang. optimistic locking) – dodanie do tabel kolumny znacznika czasowego).<br />

2.5 Filtrowanie i wyszukiwanie danych<br />

Dla każdej z zaprojektowanych formatek, framework powinien automatycznie dodawać<br />

możliwość definicji (tworzenia, modyfikacji, usunięcia) przez użytkownika dodatkowych<br />

warunków filtrowania danych. Z formatką można skojarzyć następujące rodzaje filtrów:<br />

− filtr „systemowy” – przechowujący warunki podane przez twórcę a<strong>plik</strong>acji (powinien<br />

on być nieedytowalny),<br />

− filtry użytkownika – nowe filtry zdefiniowane przez użytkownika na własne<br />

potrzeby, utworzone filtry tego rodzaju można udostępnić innym użytkownikom.<br />

Jeden z filtrów jest określony jako filtr domyślny i jest używany przy otwieraniu formatki.<br />

Użytkownik a<strong>plik</strong>acji powinien mieć możliwość szybkiego wyboru i zastosowania<br />

dostępnych filtrów, dlatego też proponuje się umieszczenie listy filtrów na pasku<br />

narzędziowym (rys.2).<br />

Dialog definicji warunków filtrowania powinien umożliwiać zdefiniowanie<br />

szczegółowych kryteriów jakie powinny spełniać wyświetlane dane – zarówno pod<br />

2 W niektórych systemach istnieje możliwość indywidualnego skonfigurowania każdej z formatek,<br />

przez określenie czy ma się otwierać z danymi.<br />

114<br />

(c) Copyright by <strong>Politechnika</strong> Śląska, Instytut Informatyki, Gliwice 2008


Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008<br />

Wymagania funkcjonalne interfejsu użytkownika dla frameworków tworzenia a<strong>plik</strong>acji bazodanowych<br />

względem zakresu danych jak i porządku ich sortowania. Jako typowe rozwiązania w tym<br />

obszarze można wskazać:<br />

− uniwersalny dialog definicji warunków filtrowania wyświetlający nazwy wszystkich<br />

pól występujących na formatce z możliwością przypisania każdemu z tych pól<br />

kryterium filtrowania 3 (rozwiązanie stosowane w a<strong>plik</strong>acjach IFS Applications,<br />

Microsoft Dynamics NAV) (rys.3),<br />

− dialog (lub para dialogów OD i DO) imitujący bieżącą formatkę a<strong>plik</strong>acji, w którego<br />

polach wpisuje się warunki filtrowania (rozwiązanie stosowane w a<strong>plik</strong>acjach<br />

Magic).<br />

Dla użytkowników zaawansowanych można udostępnić możliwość definicji filtru przez<br />

bezpośrednią specyfikację fraz SQL WHERE oraz ORDER BY.<br />

www.bdas.pl<br />

Rys. 2. Panel filtrów paska narzędziowego a<strong>plik</strong>acji zrealizowanej z użyciem biblioteki<br />

EALib.<br />

Rys. 3. Uniwersalny dialog definicji warunków filtrowania danych (w wersji angielskiej)<br />

3 Należy wziąć pod uwagę, że nie zawsze wyświetlane na formatce dane bezpośrednio pochodzą<br />

z tabel z bazy danych, np. wyświetlane w pojedynczym polu imię i nazwisko pracownika mogą tak<br />

naprawdę pochodzić z 2 kolumn w bazie danych.<br />

115<br />

(c) Copyright by <strong>Politechnika</strong> Śląska, Instytut Informatyki, Gliwice 2008


Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008<br />

J. Frączek<br />

www.bdas.pl<br />

W przypadku formatek (zwłaszcza zawierających tabele – jak dla formatek typu lista)<br />

powinna być dostępna opcja filtrowania danych poprzez prostą specyfikację warunku<br />

filtrowania (rys.2). Po wpisaniu warunku oraz wyborze przycisku filtrowana powinno<br />

nastąpić zawężenie liczby wyświetlanych rekordów do zbioru spełniającego zadane<br />

kryterium. Zadane warunki filtrowania dotyczą aktualnie wybranego pola formularza lub<br />

też aktualnie wybranej kolumny. Ponowne zastosowanie opcji filtrowania powinno dalej<br />

zawęzić zakres wyświetlanych danych. Użycie opcji wyczyszczenia filtru powinno<br />

przywrócić pierwotny widok danych (jak po wyborze filtru z listy).<br />

2.6 Pole tekstowe z listą wartości<br />

Pole tekstowe z przyciskiem wywołującym listę wartości (słownik) powinno mieć<br />

funkcjonalność podobną do kontrolki typu combobox, z tym, że rozwijaną listę opcji<br />

zastępuje standardowa formatka słownika. Dla pól typu data należy również zapewnić<br />

możliwość podłączenia kalendarza. Ciekawą opcją jest możliwość wpisania części wartości<br />

do pola i automatyczne sugerowanie (uzupełnianie) dalszej części wartości przez system<br />

(na podstawie wartości przechowywanych w słowniku).<br />

2.7 Tabela<br />

Cechy kontrolki typu tabela:<br />

− podświetlenie co drugiego wiersza tabeli wybranym kolorem,<br />

− podświetlenie komórek tabeli spełniających określone warunki (np. kwota


Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008<br />

Wymagania funkcjonalne interfejsu użytkownika dla frameworków tworzenia a<strong>plik</strong>acji bazodanowych<br />

www.bdas.pl<br />

formatki, lub wyborze opcji odświeżenia danych) lub zatwierdzone dane (po wyborze opcji<br />

zapisu). Chwilą, w której następuje odświeżenie zawartości formatki może być:<br />

− zdarzenie aktywacji okna formatki (wybór/przejście na daną formatkę),<br />

− czas zdefiniowany parametrem a<strong>plik</strong>acji (okres odświeżania, np. 60s).<br />

Odświeżanie danych na formatkach może być również sterowane zdarzeniami, które<br />

zachodzą w systemie.<br />

2.11 Skróty klawiaturowe<br />

Należy dążyć do zgodności przyjętych skrótów z popularnymi a<strong>plik</strong>acjami, takimi jak<br />

Microsoft Office. Szkielet programistyczny powinien obsługiwać przynajmniej klawisze:<br />

− – zamknięcie formatki,<br />

− – wybór domyślnej akcji,<br />

Możliwe jest obsługa innych skrótów, takich jak – zapis zmian.<br />

Definicja przycisków w konfiguracji frameworku powinna skutkować respektowaniem<br />

przyjętych ustawień we wszystkich formatkach a<strong>plik</strong>acji.<br />

2.12 Automatyczna aktualizacja a<strong>plik</strong>acji<br />

Framework powinien udostępniać narzędzia pozwalające na określenie witryny WWW,<br />

z której można pobrać nowsze wersje a<strong>plik</strong>acji. Proces pobierania oraz instalacji poprawek<br />

powinien być konfigurowalny (np. możliwość włączenia oraz automatycznego pobierania<br />

poprawek – analogicznie jak w przypadku Windows Update). Zaleca się przynajmniej<br />

implementację funkcji informowania użytkownika o pojawieniu się nowej wersji a<strong>plik</strong>acji.<br />

2.13 Zintegrowany system bezpieczeństwa<br />

Podstawowe cechy systemu bezpieczeństwa można ująć w następujących wymaganiach:<br />

− identyfikacja oraz autoryzacja użytkowników:<br />

− zarządzanie hasłami,<br />

− możliwość integracji z usługami katalogowymi (LDAP, Active Directory),<br />

− obsługa grup użytkowników:<br />

− hierarchie grup (grupa może zawierać wiele innych grup oraz użytkowników,<br />

odwołania cykliczne nie są dozwolone),<br />

− możliwość integracji z usługami katalogowymi (LDAP, Active Directory),<br />

− definiowanie i kontrola uprawnień:<br />

− rodzaj uprawnień:<br />

− uprawnienia pozytywne,<br />

− uprawnienia negatywne,<br />

− uprawnienia do obiektów typu:<br />

− funkcje systemu,<br />

− pozycje menu (można powiązać z funkcjami systemu),<br />

− pola na formatce (też: kolumny wyświetlanych tabel),<br />

− uprawnienia do danych:<br />

− operacje: odczyt, wstawianie, aktualizacja, usuwanie,<br />

− zakres dostępnych danych (np. do określonego wydziału).<br />

117<br />

(c) Copyright by <strong>Politechnika</strong> Śląska, Instytut Informatyki, Gliwice 2008


Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008<br />

J. Frączek<br />

2.14 Formatki danych zlokalizowanych<br />

Wśród powszechnie występujących formatek słowników można wskazać słowniki:<br />

ustawień międzynarodowych, walut, krajów i jednostek. Cechy słowników:<br />

− słowniki wyświetlają dane zgodnie z ustawieniami regionalnymi języka<br />

użytkownika.<br />

− można ograniczyć liczbę pozycji wyświetlaną przez słowniki przy pracy z a<strong>plik</strong>acją<br />

do listy rzeczywiście używanych wartości (oznaczenie pozycji słownika flagą<br />

"używane w a<strong>plik</strong>acji" – rozwiązanie stosowane w IFS Applications).<br />

www.bdas.pl<br />

3 Biblioteka EALib<br />

W środowisku JBuilder (do wersji 2006) obecna jest biblioteka dbSwing dostarczająca –<br />

oparte na klasach Swing [6,7] – rozbudowane kontrolki automatycznie synchronizujące<br />

swój stan ze stanem obiektów bazy danych (dostępnej przez protokół JDBC)[8].<br />

W przypadku umieszczanych na formatkach kontrolek wizualnych – takich jak pola<br />

edycyjne (JdbTextField), tabele (JdbTable), rozwijalne listy (JdbComboBox), etykiety<br />

(JdbLabel) – programista specyfikuje tylko kolumnę(y) źródła danych (QueryDataSet),<br />

które z kolei skojarzone jest z zapytaniem SQL odczytującym zawartość obiektu (tabeli,<br />

perspektywy) z bazy danych. Programista nie musi specyfikować poleceń SQL<br />

wstawiających (insert), modyfikujących (update), czy też usuwających (delete) rekordy<br />

z bazy danych – operacje te są realizowane automatycznie poprzez obiekty biblioteki<br />

dbSwing.<br />

Biblioteka EALib rozszerza możliwości klas dbSwing. W szczególności biblioteka<br />

zawiera następujące klasy:<br />

− klasa formatki podstawowej (JInternalFrameEA),<br />

− klasa formatki bazodanowej (JInternalFrameEAjb),<br />

− klasy słowników (JDialogLOV, JDialogTreeLOV),<br />

− klasa paska narzędziowego (JToolBarEAjb) z obsługą nawigacji po danych oraz<br />

obsługą filtrów,<br />

− klasa tabeli (JdbTableEA) o dużych możliwościach konfiguracji sposobu<br />

wyświetlania obiektu przez programistę oraz użytkownika, wraz z klasami edytorów<br />

i klasami sterującymi wyświetlaniem różnych typów danych, warunkowym<br />

wyświetlaniem koloru wybranych komórek tabeli i wyświetlaniem podsumowań,<br />

− klasa drzewa (JdbTreeEA) z zaimplementowaną obsługą źródeł danych,<br />

− klasa pola edycyjnego (JdbTextFieldEA) z obsługą zmian kolorów pola (np.<br />

w przypadku pola wymaganego, lub w przypadku pojawienia się błędu),<br />

− klasy pól edycyjnych z podpiętym słownikiem (JdbTextFieldWithLOV,<br />

JdbTextFieldWithLOVDate),<br />

− klasy obsługi konfiguracji okna a<strong>plik</strong>acji i formatek (StartupFrameConfig) oraz<br />

tabel (TableColumnConfig),<br />

− klasa dialogu (JDialogEA),<br />

− klasy weryfikujące wprowadzane wartości: InputVerifierForNumber,<br />

InputVerifierForBigDecimal, InputVerifierForDouble, InputVerifierForLong,<br />

InputVerifierForDate, InputVerifierForTime, InputVerifierForTimeFromLong<br />

(dla czasu przechowywanego w postaci sekund),<br />

118<br />

(c) Copyright by <strong>Politechnika</strong> Śląska, Instytut Informatyki, Gliwice 2008


Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008<br />

Wymagania funkcjonalne interfejsu użytkownika dla frameworków tworzenia a<strong>plik</strong>acji bazodanowych<br />

www.bdas.pl<br />

− klasa źródła danych (QueryDataSetEA) z możliwością obsługi relacji 1:N, przy<br />

automatycznym generowaniu unikalnych identyfikatorów przez bazę danych,<br />

mechanizmem zapisu i odświeżania zbiorów klas powiązanych relacjami,<br />

− obsługa formatek danych zlokalizowanych: krajów, jednostek miar, walut,<br />

− klasy eksportu danych do <strong>plik</strong>ów CSV oraz Excel (XLS).<br />

3.1 Przykład zastosowania biblioteki EALib<br />

Do realizacji formatki z rys.4 posiadającej pełną funkcjonalność związaną z edycją oraz<br />

wyszukiwaniem danych, należy napisać następujący kod:<br />

package pl.com.entapp.bpr;<br />

import com.ealib.gui.*;<br />

// oraz dodatkowe, wymagane deklaracje importu pakietów<br />

public class OperationStandardsList<br />

extends JInternalFrameEAjb {<br />

//deklaracja tabeli oraz obiektu obsługującego przewijanie danych<br />

TableScrollPane tableScrollPane1 = new TableScrollPane();<br />

JdbTableEA tableOperationsStandards = new JdbTableEA();<br />

//domyślny konstruktor<br />

public OperationStandardsList() {<br />

//specyfikacja wewnętrznego identyfikatora formatki, tytułu<br />

//oraz źródła danych<br />

super(FormId.OPERATION_STANDARDS_LIST.getId(),<br />

msgs.getString("OperationStandards.listFormLabel"),<br />

DMBPR.getDataModule().get_qds_operation_standards());<br />

try {<br />

//konstrukcja elementów formatki<br />

jbInit();<br />

}<br />

catch (Exception exception) {<br />

exception.printStackTrace();<br />

}<br />

}<br />

//ustalenie konfiguracji kolumn tabeli<br />

tableBPROperationsStandards.setCustomColumnsDef(<br />

CommonCustomColumnDef.bprOperationStandards);<br />

//konstrukcja elementów formatki<br />

private void jbInit() throws Exception {<br />

//specyfikacja źródła danych tabeli formatki<br />

//funkcja getMainQDS wskazuje, że źródło podano w konstruktorze<br />

tableBPROperationsStandards.setDataSet(this.getMainQDS());<br />

}<br />

}<br />

//ustalenie rozmiaru formatki i wyświetlenie tabeli<br />

this.setPreferredSize(new Dimension(700, 500));<br />

tableScrollPane1.getViewport().add(tableBPROperationsStandards);<br />

this.getContentPane().add(tableScrollPane1,<br />

java.awt.BorderLayout.CENTER);<br />

119<br />

(c) Copyright by <strong>Politechnika</strong> Śląska, Instytut Informatyki, Gliwice 2008


Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008<br />

J. Frączek<br />

www.bdas.pl<br />

Rys. 4. Formatka z listą rekordów zrealizowana z wykorzystaniem biblioteki EALib<br />

4 Zakończenie<br />

Zastosowanie biblioteki EALib w znaczny sposób przyśpiesza tworzenie desktopowych<br />

a<strong>plik</strong>acji bazodanowych Java. Biblioteka EALib spełnia większość, spośród wymienionych<br />

w rozdziale wymagań, które powinien spełniać framework wspomagający tworzenie<br />

a<strong>plik</strong>acji. Wyjątkiem są tu: brak pełnej, zaproponowanej funkcjonalności zintegrowanego<br />

systemu bezpieczeństwa, brak obsługi informowania użytkowników o zmianach<br />

równocześnie, interakcyjnie edytowanych danych, brak mechanizmów automatycznej<br />

aktualizacji a<strong>plik</strong>acji.<br />

Firma Borland oraz spadkobierca rozwiązania JBuilder – firma CodeGear w najnowszej<br />

wersji środowiska JBuilder 2007 – w całości opartego na edytorze Eclipse – nie zawarła<br />

bibliotek dbSwing. De facto biblioteka ta od dłuższego czasu nie jest rozwijana. Błędne<br />

działanie niektórych komponentów dbSwing i niedoskonałości oryginalnej biblioteki<br />

zostały zastąpione i wzbogacone funkcjami biblioteki EALib. Lata doświadczeń<br />

związanych z użytkowaniem biblioteki EALib (w tym i wdrożenie komercyjnego systemu<br />

zarządzania procesami technologicznymi i produkcją ManagerPro) wskazują, że jest ona<br />

dobrym rozwiązaniem dla systemów o małej i średniej skali, pracującymi na danych<br />

o niezbyt dużym rozmiarze. Biblioteka umożliwia realizację a<strong>plik</strong>acji pracujących<br />

w architekturze klient-serwer.<br />

W przygotowywanej nowej wersji JDK7.0 planowane jest zawarcie specjalistycznego<br />

API dedykowanego do realizacji a<strong>plik</strong>acji Swing [11]. Szczególną uwagę należy zwrócić<br />

na projekty specyfikacji: JSR-295 Beans Binding [9] oraz JSR-296 Swing Application<br />

Framework [10]. Pierwszy z nich umożliwia powiązanie własności wizualnych kontrolek<br />

Swing (bardziej ogólnie – obiektów spełniających specyfikację JavaBeans) z własnościami<br />

innych obiektów a<strong>plik</strong>acji. W szczególności, łącząc API JSR-295 z mechanizmami<br />

mapowania obiektowo-relacyjnego (np. EJB3.0), możliwa jest bezpośrednia synchronizacja<br />

stanu kontrolek interfejsu graficznego z obiektami reprezentującymi encje bazy danych. Jak<br />

120<br />

(c) Copyright by <strong>Politechnika</strong> Śląska, Instytut Informatyki, Gliwice 2008


Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008<br />

Wymagania funkcjonalne interfejsu użytkownika dla frameworków tworzenia a<strong>plik</strong>acji bazodanowych<br />

www.bdas.pl<br />

zapewniają autorzy API JSR-295, będzie je można wykorzystać już z JDK5.0. Z kolei JSR-<br />

296 Swing Application Framework definiuje uniwersalny szablon tworzenia a<strong>plik</strong>acji<br />

opartych na komponentach Swing. Wykorzystanie możliwości obu pakietów przyspieszy<br />

tworzenie złożonych a<strong>plik</strong>acji Swing o dowolnej, wielowarstwowej architekturze. W chwili<br />

obecnej możliwe jest zastosowanie referencyjnych bibliotek obu specyfikacji. Ze względu<br />

jednak na fakt, że specyfikacje te nie wciąż podlegają zmianom, ich zastosowanie do<br />

tworzenia a<strong>plik</strong>acji jest utrudnione.<br />

Literatura<br />

1. Majewski D.: Moduł elektronicznej karty pracy dla systemu zarządzania procesami<br />

produkcyjnymi. Praca magisterska dyplomowa. Instytut Informatyki Politechniki Śląskiej,<br />

Gliwice, 2007.<br />

2. Andrzejewski T.: Moduł zarządzania raportami dla systemu zarządzania przedsiębiorstwem.<br />

Praca magisterska dyplomowa. Instytut Informatyki Politechniki Śląskiej, Gliwice, 2007.<br />

3. Kaczmarski J.: Moduł obsługi magazynu i obsługi zamówień dla systemu zarządzania<br />

przedsiębiorstwem. Praca magisterska dyplomowa. Instytut Informatyki Politechniki Śląskiej,<br />

Gliwice, 2006.<br />

4. Wilczek B.: System Organizacji i Monitorowania Procesów Produkcyjnych. Praca magisterska<br />

dyplomowa. Instytut Informatyki Politechniki Śląskiej, Gliwice, 2006.<br />

5. Matuszek M.: Java based Application for Company’s Own Cost Analysis for ERP Systems:<br />

Rekord.ERP and Symfonia. Praca magisterska dyplomowa. Instytut Informatyki Politechniki<br />

Śląskiej, Gliwice, 2006.<br />

6. Marinilli M.: Professional Java User Interfaces. John Wiley & Sons Ltd, 2006.<br />

7. Robinson M., Vorobiev P.: Swing. Second Edition. Manning Publications Co., 2003.<br />

8. JBuilder 2005. Developing Database Applications. Borland Software Corporation, 2004.<br />

9. JSR-295 Beans Binding, http://jcp.org/en/jsr/detail?id=295, dostęp: 08.02.2008.<br />

10. JSR-296 Swing Application Framework, http://jcp.org/en/jsr/detail?id=296, dostęp: 08.02.2008.<br />

11. Coward D., Reinhold M.: Mastering Mustang, Developing Dolphin. Prezentacja TS-3439.<br />

JavaOne Conference, 2006, http://developers.sun.com/learning/javaoneonline/2006/coreplatform<br />

/TS-3439.pdf, dostęp: 08.03.2008.<br />

121<br />

(c) Copyright by <strong>Politechnika</strong> Śląska, Instytut Informatyki, Gliwice 2008


Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008<br />

www.bdas.pl<br />

(c) Copyright by <strong>Politechnika</strong> Śląska, Instytut Informatyki, Gliwice 2008

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!