Projekt i Implementacja Systemu Ewidencji Oprogramowania z wykorzystaniem silnika reguł biznesowych Katarzyna Kun 1
Spis treści Wykaz użytych skrótów i oznaczeń...3 1. Wstęp...4 1.1 Opis dziedziny problemowej i uzasadnienie podjęcia tematu...4 1.2 Cel i zakres pracy...5 2. Silniki reguł biznesowych...6 2.1 Definicje wprowadzające...6 2.2 Silnik reguł biznesowych...6 2.2 Zastosowanie...7 2.3 Standardy...7 2.4 Narzędzia...8 3 Wymagania wobec projektowanego systemu...9 3.1 Wprowadzenie...9 3.2 Ogólny opis produktu...9 3.3 Wymagania funkcjonalne...10 3.4. Wymagania pozafunkcjonalne...13 4. Modelowanie...14 4.1 Diagram DFD...14 4.2 Diagram DFD0...14 4.3 Inne...14 5 Projekt Systemu...14 5.1 Założenia ogólne...14 5.2 Projekt Bazy danych...14 5.3 Projekt interfejsu...14 5.4 Projekt aplikacji klasycznej...14 5.5 Projekt aplikacji wykorzystującej silnik reguł biznesowych...14 6. Implementacja...14 6.1 Wykorzystane narzędzia...14 6.2 Implementacja bazy danych...14 6.3 Implementacja aplikacji klasycznej...14 6.4 Implementacja aplikacji wykorzystującej silnik reguł biznesowych...14 7. Testowanie...14 Wykaz literatury...14 Załączniki...14 Załączniki na CD...14 2
Wykaz użytych skrótów i oznaczeń Aplikacja klasyczna - aplikacja bez zastosowania silnika reguł biznesowych SEO System Ewidencji Oprogramowania MWWF - Microsoft Windows Workflow Foundation WFMC - WorkFlow Management Coalition 3
1. Wstęp Efektywne zarządzanie przedsiębiorstwem wymaga wsparcia ze strony systemów informatycznych. Poprzez wdrażanie nowoczesnych koncepcji, metod i narzędzi dąży się do podwyższenia skuteczności działań, obniżenia kosztów oraz skrócenia czasu realizacji poszczególnych procesów biznesowych czyli codziennych czynności wykonywanych w przedsiębiorstwie. Niezbędnym narzędziem/składnikiem potrzebnym na każdym kroku procesu biznesowego jest niewątpliwie oprogramowanie wspomagające działalność firmy. Właściwe nim zarządzenie gwarantuje legalność posiadanego oprogramowania, jego maksymalne wykorzystanie oraz pomaga zachować bezpieczeństwo informatyczne firmy. 1.1 Opis dziedziny problemowej i uzasadnienie podjęcia tematu W wielu firmach brak jest systemu do ewidencji oprogramowania lub system istniejący nie spełnia właściwie swojej roli. Właściciele, kierownicy a nawet informatycy nie są świadomi konsekwencji i strat jakie mogą ponieść w wyniku nieprawidłowego zarządzania zasobami oprogramowania. Podstawowy problem to kontrola wykorzystania posiadanych i zainstalowanych programów, która bez systemu wspomagającego jest często bardzo czasochłonna i żmudna, przeważnie nie dająca jasnego obrazu na całość sytuacji. Nie znając bilansu zainstalowanych i zakupionych licencji nie ma pewności o legalności posiadanego oprogramowania, przez co pojawia się zagrożenie konsekwencjami prawnymi. Niewłaściwe wykorzystanie zasobów/oprogramowania to również obniżenie efektywności pracy oraz niepotrzebne koszty na które narażana jest firma. Próbując sporządzić ręcznie ewidencję oprogramowania w średniej firmie w której pracowałam stwierdziłam, że jest to zadanie bardzo trudne, wręcz niewykonalne. Licencje znajdowały się w rożnych miejscach, brak było ich spisu, brak było informacji gdzie, jakie programy są zainstalowane. Sporządzając wstępny raport, pokazujący wiele nieprawidłowości zrodził się pomysł napisania systemu wspomagającego to zadanie, który teraz realizuję. Tworzony System SEO umożliwiałby ewidencję zasobów informatycznych firmy dotyczących oprogramowania oraz ułatwiałby kontrolę nad posiadanymi licencjami / oprogramowaniem. Pozwalałby szybko w dowolnym miejscu sprawdzić m.in. ile programów używa firma, gdzie są zainstalowane i na jakiej są licencji. 4
1.2 Cel i zakres pracy Celem mojej pracy jest projekt i implementacja systemu do ewidencji oprogramowania z wykorzystaniem silnika reguł biznesowych. System ma wspomóc zarządzanie oprogramowaniem, kontrolę nad posiadanym i zainstalowanym oprogramowaniem, ma umożliwiać generowanie raportów i statystyk pokazujących stan zasobów firmy. Użyty silnik reguł biznesowych ma ułatwić operacje związane z zasadami i regułami obowiązującymi w systemie. Zakres pracy obejmuje: Omówienie istoty, standardów oraz wybranych narzędzi wykorzystujących silniki reguł biznesowych. Określenie wymagań funkcjonalnych i niefunkcjonalnych dla budowanego systemu Analizę systemu Projekt systemu klasycznego i wykorzystującego silnik reguł biznesowych. Implementacje zaprojektowanego systemu oraz przeprowadzenie testów działania aplikacji. 5
2. Silniki reguł biznesowych Budując nowoczesny system informatyczny należy zwrócić uwagę na dynamicznie zmieniające się reguły i zasady w firmie takie jak np. prawo, nowe promocje i dostosować do nich. Poniższy rozdział zawiera wprowadzenie do zagadnienia silników reguł biznesowych wspomagających zarządzanie regułami. 2.1 Definicje wprowadzające - Proces biznesowy codzienne czynności wykonywane w przedsiębiorstwie - Przepływ zadań (workflow) to zbiór podstawowych działań, procedur, osób i organizacji, danych wejściowych i wyjściowych dla systemu informatycznego, zasad i reguł oraz narzędzi potrzebnych na każdym kroku procesu biznesowego. Workflow według WFMC to automatyzacja procesów biznesowych, w całości lub w części, podczas której dokumenty, informacje lub zadania są przekazywane od jednego uczestnika do następnego, według odpowiednich procedur zarządczych - Reguły biznesowe - reguły rządzące przedsiębiorstwem - operacje, definicje oraz ograniczenia nałożone na przedsiębiorstwo. - Oprogramowanie obsługujące przepływ zadań to oprogramowanie przetwarzające informacje, podejmujące decyzje w oparciu o dane wejściowe i biorące pod uwagę reguły i zasady rządzące systemem w którym oprogramowanie to było wykonane. 2.2 Silnik reguł biznesowych Silnik reguł biznesowych to oprogramowanie wspierające operacje związane z regułami biznesowymi, pozwalające na wydzielenie granic pomiędzy regułami a resztą kodu. Reguły powinny być niezależnymi bytami udostępnianymi naszej aplikacji. Korzyści z wydzielenia reguł biznesowych:. łatwo nimi zarządzać ponieważ nie są rozlokowane po całym projekcie w niezliczonej liczbie modułów i procedur. zastosować automatyczne testy przed uruchomieniem produkcji, ponieważ reguły nie są w żaden sposób związane z interfejsem dynamicznie zmieniać reguły bez ponownej kompilacji źródeł czy też ponownego uruchomienia oprogramowania, ponieważ nie stanowią integralnej kodu. 6
2.2 Zastosowanie Większość systemów informatycznych zawiera algorytmy, które są przez programistów kodowane na sztywno. Uniemożliwia to łatwe i szybkie wprowadzanie zmian podczas dostosowania systemu do nowych wymogów. Jest czasochłonne i często drogie. Zastosowanie silnika pozwala na: - wydzielenie reguł biznesowych - skoncentrowanie w jednym miejscu (centralizacja) - zarządzanie nimi i umożliwienie definiowania/modyfikowania 2.3 Standardy Standardy dotyczące zarządzania przepływem zadań (workflow) zostały opracowane przez Workflow Management Coalition (WfMC) i wdrożone w autorski produkt Unity Workflow Manager. Główne cechy Unity Workflow Manager: graficzne definiowanie procesów - możliwość definiowania etapów, ich czasu wykonywania i powiązań między nimi. automatyzacja realizowania spraw zgodnie z zapisanymi regułami uruchomiona sprawa jest automatycznie kierowana do kolejnych uczestników procesu. rozdzielenie i łączenie pracy, równoległe wykonywanie zadań, skrzynki spraw i zadań dla właścicieli i uczestników procesu integracja aplikacji możliwość uruchamiania zewnętrznych aplikacji odwzorowanie struktury organizacyjnej Wykorzystanie standardów opracowanych przez WfMC gwarantuje elastyczność i otwartość rozwiązania. Zasada działania Unity Workflow Manager 7
2.4 Narzędzia 2.4.1 Microsoft oferuje 2 narzędzia przeznaczone do realizacji procesów biznesowych. - Microsoft BizTalk Server jest platformą do łączenia systemów różnych przedsiębiorstw (B2B - Business to Business). Umożliwia ona m.in. korzystanie z edytora graficznego do przedstawiania procesów biznesowych. Niektóre z tych procesów mogą łączyć się z zewnętrznymi pośrednikami, takimi jak partnerzy handlowi, poprzez zewnętrzne protokoły komunikacyjne. Jest produktem dla większych aplikacji, nie może być używany poza domeną BizTalk. - Microsoft Workflow Foundation składa się z trzech głównych elementów Pierwszy z nich to graficzne narzędzie do projektowania diagramu, drugi to runtime MWWF (środowisko uruchomieniowe) trzeci to rozbudowana warstwa usług. Jest silnikiem pozwalającym na zakodowanie procesu biznesowego za pośrednictwem narysowanego diagramu stanów a potem traktowanie takiego elementu, jako części rozwiązania. MWWF jest cześć.net Frameworks 3.x jest rozprowadzanym za darmo składnikiem.net. (rys.) 2.4.2 Drools Jedną z dostępnych na rynku otwartego oprogramowania implementacją silnika reguł jest Drools. Jest to biblioteka rozpowszechniana na licencji Apache. 8
3 Wymagania wobec projektowanego systemu 3.1 Wprowadzenie Niniejszy rozdział prezentuje wymagania dotyczące oprogramowania, czyli opisuje funkcjonalność budowanego oprogramowania i warunki, jakie ono musi spełniać. 3.1.1 Zakres produktu W wielu firmach / przedsiębiorstwach brak jest systemu ewidencjonującego oprogramowanie. Konsekwencją czego mogą być problemy z legalnością oprogramowania, złe wykorzystanie zasobów oraz luki w systemie bezpieczeństwa. Tworzony System SEO ma na celu umożliwić ewidencję zasobów informatycznych firmy dotyczących oprogramowania oraz ułatwić kontrolę nad posiadanymi licencjami i oprogramowaniem. 3.2 Ogólny opis produktu 3.2.1 Kontekst funkcjonowania System będzie współpracować z systemem skanującym, oraz programem księgowym. System SEO będzie wykorzystywany głównie przez pracowników działu IT, oraz przez innych uprawnionych pracowników firmy., np. Kierowników. (Zarząd) Dostęp do systemu będzie z każdego komputera poprzez przeglądarkę internetową. System będzie wykonany w technologii ASP.NET. Dane będą przechowywane w bazie SQL. 3.2.2 Charakterystyka użytkowników W systemie SEO pracować będą dwie grupy użytkowników. Każdej z nich będą przyznane odpowiednie uprawnienia. -Administratorzy /informatycy systemu -Uprawnieni pracownicy firmy, Np. Zarząd, kierownicy. 9
3.2.3 Główne funkcje produktu -Administratorzy: Zarządzanie użytkownikami Zarządzanie słownikami (oprogramowaniem, rodzajem oprogramowania, licencjami, producentami, firmami dostawcami oprogramowania, komputerami) administratorzy i informatycy Zarządzanie zasobami Zarządzanie fakturami Tworzenie raportów / zestawień / statystyk -Zarząd: Wyszukiwanie informacji, tworzenie raportów, drukowanie (rys.diagram przypadków użycia) 3.2.4 Ograniczenia System musi spełniać wymagania stawiane przez - ustawę o ochronie danych osobowych oraz - ustawę o prawie autorskim i prawach pokrewnych 3.2.5 Założenia i zależności System powinien - Być prosty we wdrożeniu. - Być skalowalny - Umożliwiać pracę kilku użytkowników - Mieć czytelny i intuicyjny interfejs Ma być skalowalny... elastyczny 3.3 Wymagania funkcjonalne 3.3.1Funkcje zdefiniowane dla administratora systemu Uwierzytelnianie /Logowanie do systemu Administracja użytkownikami - dodawanie 10
Zarządzanie oprogramowaniem - dodawanie Zarządzanie rodzajem oprogramowania - dodawanie Zarządzanie licencjami dodawanie Zarządzanie producentami - dodawanie Zarządzanie komputerami - dodawanie Zarządzanie zasobami - posiadanym oprogramowaniem - dodawanie zasobu Zarządzanie przydziałem - dodawanie przydziału - wybranie zasobu - wybranie komputera przydziału 11
Zarządzanie fakturami - wprowadzenie nowej faktury - wybranie dostawcy - wprowadzenie pozycji - wybranie zasobu Tworzenie raportów / zestawień / statystyk - tworzenie nowego zestawienia - wybranie zasobu - wybranie komputera - wybranie użytkownika - wykonanie wydruku - wydrukowanie istniejącego zestawienia 3.3.2 Funkcje zdefiniowane dla pozostałych użytkowników Np. kierowników Uwierzytelnianie /Logowanie do systemu Wyszukiwanie/ przeglądanie użytkowników Wyszukiwanie/ przeglądanie oprogramowania Wyszukiwanie/ przeglądanie rodzajów oprogramowania Wyszukiwanie/ przeglądanie licencji Wyszukiwanie/ przeglądanie producentów Wyszukiwanie/ przeglądanie dostawców oprogramowania Wyszukiwanie/ przeglądanie komputerów Wyszukiwanie/ przeglądanie zasobów- posiadanego oprogramowania Wyszukiwanie/ przeglądanie faktur Tworzenie raportów / zestawień / statystyk / przeglądanie - wydrukowanie istniejącego zestawienia 12
3.4. Wymagania pozafunkcjonalne 3.4.1 Interfejsy zewnętrzne Interfejs systemu strona internetowa wykonana w technologii ASP.NET System będzie obsługiwany przez przeglądarkę internetową. Projekt graficzny interfejsu będzie jednakowy dla wszystkich użytkowników, zależnie do uprawnień zalogowanego użytkownika będą dostępne odpowiednie funkcje. 3.4.2 Użyteczność i dostępność - System powinien być dostępny całą dobę przez 7 dni w tygodniu. - Interfejs systemu powinien być prawidłowo wyświetlany w przeglądarkach internetowych: Internet Explorer, Firefox, Opera. - System powinien jednakowo/ poprawnie działać w przeglądarkach internetowych: Internet Explorer, Firefox, Opera. - System powinien spełniać wszelkie standardy internetowe / sieciowe - System nie powinien być obciążony zbędną grafiką. - System dla małych i średnich firm? 3.4.3 Niezawodność - Odporność na błędy Wystąpienie błędu nie zakończy nieoczekiwanie działania aplikacji, zostanie wyświetlony komunikat o błędzie. - Zdolność do odtworzenia Po awarii systemu będzie możliwość przywrócenia stabilnego i wydajnego działania. Codzienne automatyczne tworzenie kopi. 3.4.4 Wydajność Czas reakcji systemu nie dłuższy niż 30s. 3.4.5 Bezpieczeństwo Mechanizm autoryzacji użytkownik i hasło. Codzienne kopie bezpieczeństwa. Zasilanie awaryjne (UPS) serwera 13
4. Modelowanie 4.1 Diagram DFD 4.2 Diagram DFD0 4.3 Inne 5 Projekt Systemu 5.1 Założenia ogólne 5.2 Projekt Bazy danych 5.3 Projekt interfejsu 5.4 Projekt aplikacji klasycznej 5.5 Projekt aplikacji wykorzystującej silnik reguł biznesowych 6. Implementacja 6.1 Wykorzystane narzędzia 6.2 Implementacja bazy danych 6.3 Implementacja aplikacji klasycznej 6.4 Implementacja aplikacji wykorzystującej silnik reguł biznesowych 7. Testowanie Wykaz literatury 1. Microsoft Windows Workflow Foundation. Krok po kroku Kenn Scribner 2. Inżynieria oprogramowania Ian Sommerville Wydawnictwa Naukowo Techniczne Warszawa 2003 3. Systemy Baz Danych (Paul Beynon-Davies Wydawnictwa naukowo - techniczne warszawa 1998, 2003) 4. ASP.NET dla każdego (Payne Chris Helion 2002) 5. Wprowadzenie do baz danych (Petersen John Helion 2003) 6 Współczesne technologie informatyczne : inżynieria oprogramowania, systemy baz danych (Miłosz Marek Mikom 2005) 7. http://wazniak.mimuw.edu.pl - elektroniczne materiały dydaktyczne dla studiów informatycznych 8. http://w3.bsa.org/poland/ 9. Software Developerr's Jurnal 05/2007 Załączniki Załączniki na CD 14