Praca dyplomowa na studiach pierwszego stopnia promotor: mgr inż. J . Stankiewicz

34
Analiza, projekt i implementacja wybranych aspektów systemu wsparcia obsługi świadczeń ubezpieczeniowych Praca dyplomowa na studiach pierwszego stopnia promotor: mgr inż. J. Stankiewicz Warszawa, 22 maja 2013 r.

description

Analiza, projekt i implementacja wybranych aspektów systemu wsparcia obsługi świadczeń ubezpieczeniowych. Praca dyplomowa na studiach pierwszego stopnia promotor: mgr inż. J . Stankiewicz. Warszawa, 22 maja 2013 r. Agenda. Cel i zakres pracy Główne zadania realizowane przez system - PowerPoint PPT Presentation

Transcript of Praca dyplomowa na studiach pierwszego stopnia promotor: mgr inż. J . Stankiewicz

Page 1: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Analiza, projekt i implementacja wybranych aspektów systemu wsparcia obsługi świadczeń ubezpieczeniowych

Praca dyplomowa na studiach pierwszego stopnia promotor: mgr inż. J. Stankiewicz

Warszawa, 22 maja 2013 r.

Page 2: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Agenda•Cel i zakres pracy•Główne zadania realizowane przez system

•Użytkownicy systemu•Opis modelu systemu•Architektura systemu•Projekt systemu•Testowanie•Dalszy rozwój systemu•Wnioski

Page 3: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Cel i zakres pracy

•Wykonanie analizy i projektu, jak również napisanie kodu aplikacji realizującej:▫proces przyjęcia zgłoszenia

świadczenia ubezpieczeniowego, oraz ▫podprocesy związane z zarządzaniem

danymi słownikowymi oraz funkcjami raportowymi

Page 4: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Główne zadania realizowane przez system• Zadania realizowane przez Moduł Zgłoszenia:

▫ Wyszukanie zgłoszenia i jego podgląd▫ Zarejestrowanie zgłoszenia świadczenia:

Wstępne informacje o świadczeniu Informacje o zdarzeniu – miejsce i data wystąpienia zdarzenia Informacje o zgłaszającym Wyszukanie ubezpieczonego, polisy i ryzyka ubezpieczeniowego w systemie

produktowym Zarejestrowanie dyspozycji wypłaty Wskazanie jednostki likwidacji Wskazanie dokumentów wymaganych Zapewnienie podglądu szczegółów zgłoszenia Zapisanie zgłoszenia

▫ Wygenerowanie druku zgłoszenia świadczenia w formacie PDF▫ Wysłanie wiadomości SMS lub email z potwierdzeniem zgłoszenia świadczenia

• Zadania realizowane przez Moduł Administracyjny:▫ Zarządzanie słownikiem jednostek likwidacji▫ Zarządzanie słownikiem form zgłoszenia

• Zadania realizowane przez Moduł Raportowy:• Generowanie raportów operacyjnych

Page 5: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Użytkownicy systemu

• Rejestrator – użytkownik komunikujący się bezpośrednio z Klientem zgłaszającym świadczenie. Na podstawie przeprowadzonego wywiadu jest odpowiedzialny za wprowadzenie danych zgłoszenia ubezpieczeniowego

• Administrator – użytkownik odpowiedzialny za zarządzanie danymi słownikowymi

• Manager – użytkownik posiadający uprawnienie do generowania raportów operacyjnych na temat zgłoszeń świadczeń

Page 6: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Wymagania biznesowe – przykładowe wymaganie

Id WF-08Nazwa Wyszukanie ubezpieczonego, polisy i ryzykaRola RejestratorOpis Użytkownik powinien mieć możliwość podczas rejestracji

zgłoszenia wyszukania ubezpieczonego spełniającego wprowadzone kryteria wyszukiwania.

Po wskazaniu przez użytkownika ubezpieczonego, system powinien wyświetlić posiadane przez niego polisy.

Wskazanie polisy powinno spowodować wyszukanie i wyświetlenie ryzyk wykupionych przez ubezpieczonego na polisie.

Wskazanie przez użytkownika ryzyka powinno przypisać do zgłoszenia pokrycie ubezpieczeniowe i wyświetlenie szczegółowych informacji.

Page 7: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Model systemu – Przykładowy diagram przypadków użycia

uc Rejestrator

Rejestrator

(from Diagram Aktorów) Zarejestruj zgłoszenie

Wprowadź wstępne informacje o

zgłoszeniu

Wprowadź dane zdarzenia

Wprowadź dane zgłaszjącego

Określ pokrycie ubezpieczeniowe

Wprowadź dyspozycję wypłaty

Uzupełnij dane podsumowujące

Wyświetl wyszukiwarkę

zgłoszeń

Przeglądaj zgłoszenie

Wygeneruj druk zgłoszenia

(from Ogólny)

Zmień hasło

«extend»

«extend»

«extend»

«include»«include»

«include»

«include»

«include»

«include»

Page 8: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Model systemu – Przykładowy przypadek użycia

Nazwa Uzupełnij dane podsumowująceCel Wprowadzenie danych podsumowującychWarunek początkowy Rejestrator jest zalogowany do Systemu

Zdarzenie inicjujące Rejestrator na ekranie <ZGL_SCR_09> Dyspozycja wciska przycisk przejścia do kolejnej zakładki

Główny scenariusz powodzenia

1. System wyświetla ekran <ZGL_SCR_10> Zakończenie2. Rejestrator określa jednostkę likwidacji świadczenia3. Rejestrator określa sposób potwierdzenia zgłoszenia jako Email4. Rejestrator wciska przycisk zakończenia rejestracji zgłoszenia5. System wysyła wiadomość email zgodnie z wymaganiem FRQ_05 Wiadomość email6. System zapisuje dane wprowadzone na ekranie7. System nadaje zgłoszeniu stan „Zamknięte”8. System usuwa z sesji użytkownika numer zgłoszenia

i uruchamia przypadek użycia <ZGL_SUC_03> Wyświetl wyszukiwarkę zgłoszeńScenariusze alternatywne

3a. Rejestrator określa sposób potwierdzenia zgłoszenia jako SMS3a1. Rejestrator wciska przycisk zakończenia rejestracji zgłoszenia3a2. System wysyła email zgodnie z wymaganiem FRQ_06 Wiadomość SMS3a3. Powrót do kroku 6 głównego scenariusza powodzenia

Punkty rozszerzenia *a. Rejestrator wciska przycisk podglądu podsumowania zgłoszenia*a1. System wyświetla ekran <ZGL_SCR_11> Podsumowanie*b. Rejestrator wciska przycisk generowania druku zgłoszenia*b1. System uruchamia przypadek użycia <ZGL_SUC_14> Wygeneruj druk zgłoszenia

Page 9: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Model systemu – Przykładowy diagram sekwencji

sd Wstęp

Rejestrator

(from Diagram Aktorów)

Model logiczny::Zgloszenie

«Display»

Wstęp

(from GUI->SUC)

«dictionary»

Modellogiczny::FormaZgloszenia

«dictionary»

Modellogiczny::RodzajZdarzenia

«create»

getNotificationSourceList()

getClaimType()

processSubmit()

setNotificationForm()

setClaimType()

setDescription()

wygenerujNumerZgloszenia()

Page 10: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Model systemu – Diagram klas class Model logiczny

Uzytkownik

- login: String- haslo: String- imie: String- nazwisko: String

+ zmienHaslo() : void

Uprawnienie

- rola: String

Zgloszenie

- opis: String- dataZgloszenia: Date- numerZgloszenia: Long- jednostkaLikwidacji: JednostkaLikwidacji- formaZgloszenia: FormaZgloszenia- rodzajZdarzenia: RodzajZdarzenia- sposobPotwierdzenia: String- status: String

+ zarejestrujZgloszenie() : void+ przegladajZgloszenie() : void+ wyszukajZgloszenie() : void+ zmodyfikujZgloszenie() : void+ ustawStatusZgloszenia() : void+ wygenerujDrukZgloszenia() : void+ wyslijEmail() : void

Zglaszajacy

- imie: String- nazwisko: String- telefon: String- email: String

+ zapiszDaneZglaszajacego() : void+ zwalidujDaneZglaszajacego() : void

Zdarzenie

- dataZdarzenia: Date- krajZdarzenia: Kraj- miejscowoscZdarzenia: Miejscowosc- opisMiejscaZdarzenia: String

+ zapiszDaneZdarzenia() : void+ zwalidujDaneZdarzenia() : void

«dictionary»FormaZgloszenia

- nazwa: String- aktywnosc: boolean

+ dodajFormeZgloszenia() : void+ modyfikujFormeZgloszenia() : void

«dictionary»RodzajZdarzenia

- nazwa: String

«dictionary»Kraj

- nazwa: String

«dictionary»Miejscowosc

- nazwa: String

Ubezpieczony

- imie: String- nazwisko: String- plec: String- pesel: String

+ wyszukajUbezpieczonego() : void

Polisa

- numer: String- okresUbezpieczeniaOd: Date- okresUbezpieczeniaDo: Date- kodProduktu: String

+ wyszukajPolise() : void

Ryzyko

- nazwa: String- sumaUbezpieczenia: Float- procentSwiadczenia: Float

+ wyszukajRyzyko() : void

Dyspozycja

- sposobWyplaty: String- nrKontaAdres: String

+ zapiszDaneDyspozycji() : void+ zwalidujDaneDyzpozycji() : void

«dictionary»JednostkaLikwidacj i

- nazwa: String- aktywnosc: boolean

+ dodajJednostkeLikwidacji() : void+ modyfikujJednostkeLikwidacji() : void

Dokumenty

- nazwa: String0..* 0..*

1

0..*

1..* 1

1..*

1

0..*

1

1

0..*

1

1

1

0..*

1

0..*

0..* 1

1

1

1

1

0..*

1

1 1..*

Page 11: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Architektura systemu – założenia wstępne• Ogólna koncepcja: Aplikacja webowa• Język programowania: Java• Architektura 4-warstwowa:

▫Warstwa bazy danych: PostgreSQL 9.2▫Warstwa dostępu danych: Hibernate 4.1▫Warstwa logiki biznesowej: Spring 3.x▫Warstwa prezentacji: Java Server Pages

• Serwer aplikacji: JBoss 7.0• Bezpieczeństwo: Framework Spring Security 3.2.x• Raportowanie: JasperReports• Komunikacja z Klientem: Mail To SMS

Page 12: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Projekt systemu – Baza danych dm ERD

claimtype

«column»*PK id: integer name: varchar(50)

«PK»+ PK_claimtype(integer)

claim_unit

«column»*PK id: integer name: varchar(50) enabled: boolean

«PK»+ PK_claim_unit(integer)

claim

«column»*PK id: integer description: varchar(255) notificationdate: time with time zone accidentplacedescription: varchar(255) notificarfirstname: varchar(50) notificarlastname: varchar(100) notificartelephone: varchar(15)* claimnumber: varchar(255) FK idclaimtype: integer FK idnotificationsource: integer paymentmode: varchar(30) accountnumberaddress: varchar(30) FK idclaimunit: integer accidentdate: time with time zone FK idrisk: integer FK userlogin: varchar(20) systemdate: time with time zone FK idcountry: integer FK idcity: integer notificaremail: varchar(100) communication: varchar(20) status: varchar(1)

«PK»+ claim_pkey(integer)

«unique»+ claim_claimnumber_key(varchar)

«index»+ claim_claimnumber_key(varchar)

insured

«column»*PK id: integer firstname: varchar(50) lastname: varchar(100) sex: varchar(1) pesel: varchar(11)

«PK»+ insured_pkey(integer)

policy

«column»*PK id: integer number: varchar(10) durationfrom: time with time zone durationto: time with time zone productcode: varchar(5) FK idinsured: integer

«PK»+ policy_pkey(integer)

risk

«column»*PK id: integer name: varchar(255) insuranceamount: real compensationpercentage: real FK idpolicy: integer FK idslrisk: integer

«PK»+ risk_pkey(integer)

sldocuments

«column»*PK id: integer name: varchar(100)

«PK»+ sldocuments_pkey(integer)

slrisk

«column»*PK id: integer name: varchar(30)

«PK»+ slrisk_pkey(integer)

risk_documents

«column»*pfK risk_id: integer*pfK documents_id: integer

«PK»+ risk_documents_pkey(integer, integer)

users

«column»*PK username: varchar(50)* password: varchar(50)* enabled: boolean id: integer userFirstName: varchar(255) userLastName: varchar(255)

«PK»+ users_pkey(varchar)

notification_source

«column»*PK id: integer name: varchar(30) enabled: boolean

«PK»+ form_pkey(integer)

authorities

«column»*FK username: varchar(50)* authority: varchar(50)

«FK»+ authorities_username_fkey(varchar)

country

«column»*PK id: integer name: varchar(50)

«PK»+ country_pkey(integer)

city

«column»*PK id: integer name: varchar(50)

«PK»+ PK_city(integer)

(username = username)

Page 13: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Projekt systemu - GUI

Page 14: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Projekt systemu – GUI - opis pólNazwa Typ

Format/Mapowanie

Wartość domyślna

Aktywność/Widoczność

Opis

Ekran zawiera sekcję nagłówkową: <ZGL_SCR_00> Menu

Data zgłoszenia Pole tekstowe[Zgloszenie].[dataZgloszenia]

Brak

Aktywne/Widoczne

Nieaktywne jeśli status zgłoszenia = Zamknięte

Data zgłoszenia

Data zdarzenia Pole tekstowe[Zdarzenie].[dataZdarzenia]

Brak

Aktywne/Widoczne

Nieaktywne jeśli status zgłoszenia = Zamknięte

Data zdarzenia

Kraj zdarzenia Lista rozwijana[Zdarzenie].[krajZdarzenia].[nazwa]

Polska

Aktywne/Widoczne

Nieaktywne jeśli status zgłoszenia = Zamknięte

Kraj w którym zdarzenie miało miejsce

Miejscowość zdarzenia

Lista rozwijana[Zdarzenie].[miejscowoscZdarzenia].[nazwa]

--wybierz--

Aktywne/Widoczne

Nieaktywne jeśli status zgłoszenia = Zamknięte

Kraj w której zdarzenie miało miejsce

Opis miejsca zdarzenia

Pole tekstowe[Zdarzenie].[opisMiejscaZdarzenia]

--wybierz--

Aktywne/Widoczne

Nieaktywne jeśli status zgłoszenia = Zamknięte

Opis miejsca zdarzenia

Dalej Przycisk N/d N/d Aktywne/WidocznePrzycisk inicjujący przejście na kolejną zakładkę

Page 15: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Projekt systemu – GUI - walidacje

Nazwa Wywołanie Walidacja AkcjaBrak daty zgłoszenia Wciśnięcie przycisku

DalejBrak wypełnionej Daty zgłoszenia

Wyświetlenie komunikatu walidującego: „Wprowadź datę zgłoszenia”

Brak daty zdarzenia Wciśnięcie przycisku Dalej

Brak wypełnionej Daty zdarzenia

Wyświetlenie komunikatu walidującego: „Wprowadź datę zdarzenia”

Data zgłoszenia wcześniejsza niż data zdarzenia

Wciśnięcie przycisku Dalej

Data zgłoszenia wcześniejsza niż data zdarzenia

Wyświetlenie komunikatu walidującego: „Data zgłoszenia nie może być wcześniejsza niż data zdarzenia”

Kraj zdarzenia Wciśnięcie przycisku Dalej

Brak wskazanego kraju zdarzenia

Wyświetlenie komunikatu walidującego: „Wybierz kraj zdarzenia”

Miejscowość zdarzenia

Wciśnięcie przycisku Dalej

Brak wskazanej miejscowości zdarzenia

Wyświetlenie komunikatu walidującego: „Wybierz miejscowość zdarzenia”

Page 16: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Projekt systemu – GUI - Funkcjonalności wywołane

Nazwa Typ Wywołanie DziałanieData zgłoszenia - kalendarz

Pole tekstowe Ustawienie kursora w polu „Data zgłoszenia”

Wyświetlenie pola kalendarza z domyślnie ustawioną datą bieżącą

Data zdarzenia - kalendarz

Pole tekstowe Ustawienie kursora w polu „Data zdarzenia”

Wyświetlenie pola kalendarza z domyślnie ustawioną datą bieżącą

Dalej Przycisk Wciśnięcie Wywołanie przypadku użycia <ZGL_SUC_08> Wprowadź dane zgłaszającego

Page 17: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Ekrany – Strona tytułowa

Page 18: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Ekrany – Wyszukiwarka spraw

Page 19: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Ekrany – Wstęp

Page 20: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Ekrany – Zdarzenie

Page 21: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Ekrany – Zgłaszający

Page 22: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Ekrany – Ubezpieczony i polisa

Page 23: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Ekrany – Wyszukiwarka polis

Page 24: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Ekrany – Dyspozycja

Page 25: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Ekrany – Zakończenie

Adobe Acrobat Document

Page 26: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Ekrany – Podsumowanie zgłoszenia

Page 27: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Ekrany – Jednostki likwidacji

Page 28: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Ekrany – Raporty

Adobe Acrobat Document

Page 29: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Testowanie – Założenia wstępneWeryfikacja aplikacji została przeprowadzona przy wykorzystaniu:

•Testów systemowych - testy realizowane w oparciu o scenariusze testowe

•Testów automatycznych - po każdej istotnej modyfikacji aplikacji uruchamiany test automatyczny nagrany za pomocą Selenium IDE

Page 30: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Testowanie – przykładowy scenariusz testowy

Cel testu Przetestowanie możliwości wysyłki wiadomości emailWarunki wstępne Użytkownik jest zalogowany do Systemu w roli

Rejestrator.

Użytkownik znajduje się w kontekście zgłoszeniaRezultat oczekiwany System wysyła wiadomość email do wskazanego

odbiorcyCzynności użytkownika Oczekiwany rezultat1. Użytkownik na zakładce Zgłaszający określa Imię,

Nazwisko i adres email Zgłaszającego. Następnie wciska przycisk „Dalej”

2. Użytkownik przechodzi na zakładkę „Zakończenie”, wybiera Jednostkę likwidacji i jako sposób potwierdzenia wybiera wariant SMS. Następnie wciska przycisk „Zakończ”

3. Użytkownik wybiera jako sposób potwierdzenia wybiera wariant Email. Następnie wciska przycisk „Zakończ”

4. Użytkownik sprawdza skrzynkę pocztową adresu email wprowadzonego dla zgłaszającego

1. System wyświetla zakładkę Dyspozycja

2. System wyświetla komunikat walidujący: „Brak wprowadzonego numeru telefonu dla Zgłaszającego”

3. System wysyła wiadomość email na wskazany adres mailowy. System przechodzi na zakładkę „Wyszukiwarka spraw”

4. W skrzynce znajduje się wiadomość email o parametrach:

a. Adres nadawcy: [email protected]

b. Temat: Potwierdzenie przyjęcia zgłoszenia

c. Treść: Dziękujemy za zgłoszenie świadczenia. Zgłoszenie zarejestrowano pod numerem: <numer zgłoszenia>

Page 31: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Testowanie – przykładowy scenariusz automatyczny nagrany w Selenium IDE

Page 32: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Możliwości dalszego rozwoju systemu

• Architektura systemu jest otwarta i pozwala na jego rozbudowanie o Moduł Likwidacji. W nowym module użytkownik o roli Likwidator miałby możliwość, w kontekście wybranego zgłoszenia:▫zarejestrowania świadczenia – wartość świadczenia

wyliczana automatycznie na podstawie sumy ubezpieczenia i procentu świadczenia w zależności od ryzyka ubezpieczeniowego,

▫zarejestrowania kosztów likwidacji,▫zarejestrowania decyzji wypłaty lub odmowy wypłaty

świadczenia,▫wygenerowania wypłaty i przekazania jej do realizacji,▫zarządzania wartością rezerw ubezpieczeniowych na

świadczenie oraz koszty likwidacji.

Page 33: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Wnioski• W pracy zostały zrealizowane wszystkie elementy wymienione

w zadaniu dyplomowym, tym samym aplikacja posiada pełną funkcjonalność pozwalającą na rejestrację zgłoszenia świadczenia.

• Etapem mającym największy wpływ na powodzenie projektu jest faza analizy i modelowania. Dekompozycja funkcji i ich opis w formie przypadków użycia, jak również szczegółowy i przemyślany model logiczny w formie diagramu klas, pozwoliły sprawnie przeprowadzić proces projektowania i developmentu.

• Sprecyzowane wymagania dały możliwość skupienia się na pisania kodu i uniknięciu modyfikacji.

• Na uwagę zasługuje wykorzystanie nowoczesnych technologii i architektury, w praktyce stosowanej podczas realizacji dużych projektów informatycznych realizowanych w Javie –Spring MVC i Hibernate. Dodatkowo jakość aplikacji podnosi wykorzystanie nowoczesnych bibliotek jQuery, Spring Security i Jasper Reports.

Page 34: Praca dyplomowa na studiach pierwszego stopnia  promotor: mgr inż. J . Stankiewicz

Dziękuję za uwagę.Proszę o pytania.