Zintegrowane środowisko automatyzujące procesy wytwarzania oprogramowania w zespołach
Jacek Hojczak
Wyższa Szkoła Informatyki Stosowanej i Zarządzania
Presentation powered by Reveal.js
Witam, nazwywam się Jacek Hojczak i zaprezentuje państwu moją prace dyplomową zatytułowaną "System synchronizacji i udostępniania planu imprezy sportowej".
Agenda
Wstęp
Motywacja
Kryteria doboru narzędzi
Analiza narzędzi
Integracja narzędzi
Testy kompatybilności
Podsumowanie
Wyświetlony slajd przedstawia agnde wedułg której poprowadze prezentacje.
Najpierw opowiem parę słów wstępu, następnie umotywuje swoją prace. Wymienie zastosowane technologie, przedstawie kryteria jakimi się kierowałem odbierając narzędzia,
Omuwie kategorie narzędzi, zarprezentuje projekt integracji narzędzi w system systemu,testy oraz na koniec podsumuje pracę.
Wstęp
-
Procesy wytwarzania oprogramowania
-
Automatyzacja
-
Cele pracy
Chronoligiczny spis wydarzeń które składają się na plan imprezy.
Pojedyńcze wydarzenie składa się z: opisu,miejsca oraz daty rozpoczęcia i zakończenia.
Udostępnienie uczestnikom planu imprezy jest wymogiem prawnym w Polsce.
Najczęsciej do udostępniania planu stosowane są strony internetowe.
Główny celem pracy było stworzenie systemu udostępniania planu nie wykorzystującego stron internetowych.
Celame dodatkowymi stanowiły:
Stworzenie specyfikacji systemu
Stworzenie projektu architektury
Implementacja projektu z urzyciem wybranych technologi
Wykonanie testów
Motywacja
- Alternatywa dla małych i średnich firm
- Z minimalizowanie czasu poświęconego na pracę "wokół produktu"
- Open Source
Motywacją do stworzenia takiego systemu stanowiła niedogodność - gdy uczestnik chcący być na bieżąco z planem imprezy musiał zapoznawana się z treścią strony.
W przypadku zaistnienia zmian w planie, uczestnik nie był automatycznie o tym poinformowany.
System będący wynikiem tej pracy automatycznie infromuje uczestników o zmianach w planie.
Obeceni insteją podobne systemy ale żeden z nich nie jest bezpłatny dla tego stworzony system jest udostępniony na licencji GPL.
Kryteria doboru narzędzi
- Open Source
- Linux
- Self-hosted
- Możliwość integracji z ekosystemem firmy tzn. LDAP(AD),email
- Wsparcie
W projekcie wykorzystałem następujące technologie:
JEE - java
Jboss- server aplikacyjny
postgres- baza danych
web service rest - komunikacja
android - aplikacja kliencka
Analiza narzędzi
Wedułg funkcji narzędzi
- Repozytorium kodu źródłowego
- Przegląd kodu/zarządzanie kodem
- Ciągła integracja (CI)
- Repozytorium binariów
Do stworzenia specyfikacji systemu zastosowałem przpadki urzycia w postaci diagramów UML
Repozytorium kodu źródłowego
Operacje udostępniane użytkownikowi aplikacji klienckiej to : wyświetlanie planu imprezy i synchronizacji/aktualizacja planu imprezy automatyczna i na żadanie.
Przegląd kodu/zarządzanie kodem
Operacje wykonywane przez aplikacje kliencką automatycznie to wyświetlanie notyfikacji infromującej o potrzebie synchronizacji i zakonczonej synchronizacji.
Ciągła integracja i ciągłe dostarczanie (CI/CD)
Dodawanie i usuwanie wydarzeni, dodawania i usuwanie lokalizacji.
Repozytorium binariów
Dodawanie i usuwanie wydarzeni, dodawania i usuwanie lokalizacji.
Integracja narzędzi
Teraz omówie projektu architektury systemu.
Docker
System został zaprojektowany w architekturze klient-serwer. Jako protokuł komunikacji między klientem a serwerem wykorzystywany jest web-service typu REST.
Po stronie klienta znajdują się moduły: komunikacji, synchronizacji oraz lokalna baza danych.
Po stronie serwera znajdują się moduły: komunikacji, synchronizacji, serwer aplikacyjny jboss baza danych postgres, interfejs pgAmin
konfiguracja środowiska za pomocą narzędzi
- bash
- docker-compose
- saltstack?
Moduł komunikacji odpowiedzialny jest za wspóprace z serwisem GCM (Google Cloud Messeging) oraz przesyłanie planu imprezy z serwera do aplikacji klienckich.
Share.jar umożliwia:
- zapisywanie poleceń sql w formacie json
- odczytywanie poleceń sql zapisanych w formacie json
- wykonanie poleceń sql przez interfejs jdbc
Testy kompatybilności
Różne dystrybucje linuxa
- Fedora
- CentOS
- Ubuntu
- Debian
Testy miały na celu sprawdzenie poprawności działania systemu oraz sprawdzenie wydajności sposobu komunikowania się międy aplikacjami klienckimi a serwerem.
Testy komunikacji polegały na symulowaniu wielu aplikacji które wysyłaly żadanie synchronizacji do serwera.
Testy synchronizacji polegały na dokonywaniu kolejnych zmian w planie imprezy i sprawdzaniu czy na aplikacji klienckiej pojawia się .
Podsumowanie
- osiągnięcie założonych celów
- możliwości rozwoju
W przedstawionej pracy osiągnięto założony główny cel jakim było stworzenie systemu synchronizacji i udostępniania planu imprezy sportowej, a także zrealizowano następujące cele szczegółowe:
przesyłanie aktualnego planu imprezy na aplikację kliencką
informowanie użytkownika, gdy plan imprezy uległ zmianie
umożliwienie użytkownikowi aktualizację planu imprezy poprzez internet
stworzenie projektu architektury modułu komunikacyjnego
stworzenie projektu architektury modułu synchronizacji danych
implementowanie projektu z wykorzystaniem narzędzi:
Java EE
JBoss AS
PostgreSQL
Java Android}
Eclipse,
wykonanie testów wydajności modułu komunikacji,
wykonanie testów wydajności modułu synchronizacji danych.