Aplikacja do aranżacji wnętrz wykorzystująca rozszerzoną rzeczywistość



Podobne dokumenty
Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki. Paweł Parys. Nr albumu: Aukcjomat

WellCommerce Poradnik: Sprzedaż

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

APLIKACJA SHAREPOINT

Instrukcja obsługi Zaplecza epk w zakresie zarządzania tłumaczeniami opisów procedur, publikacji oraz poradników przedsiębiorcy

Wyjaśnienia z dnia r. do treści Zapytania Ofertowego nr ZO/3/FO/POPC/2017 w odpowiedzi na pytania dotyczące Zapytania ofertowego.

REFERAT PRACY DYPLOMOWEJ

MAMP: Można to pobrać i zainstalować z XAMPP: Można go pobrać i zainstalować z

Instrukcja dla osoby potwierdzającej profil zaufany

REFERAT O PRACY DYPLOMOWEJ

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką

REFERAT PRACY DYPLOMOWEJ

Platforma e-learningowa

OPIS PRZEDMIOTU ZAMÓWIENIA

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

ELEKTRONICZNA KSIĄŻKA ZDARZEŃ

Oprogramowanie ILUO Biznes pozwala na jednoczesne zarządzanie wieloma sklepami Internetowymi zbudowanymi na oprogramowaniu różnych producentów.

REFERAT O PRACY DYPLOMOWEJ

REFERAT O PRACY DYPLOMOWEJ

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

1. Cel i zakres dokumentu Słownik pojęć użytych w instrukcji... 3

CMS, CRM, sklepy internetowe, aplikacje Web

Dokumentacja projektu QUAIKE Architektura oprogramowania

Użytkownik zewnętrzny (UZ) może wykonywać następujące czynności:

BSX PRINTER INSTRUKCJA UŻYTKOWNIKA. Autor: Karol Wierzchołowski 30 marca 2015

Bydgoskie Centrum Archiwizacji Cyfrowej sp. z o.o.

DESIGNER APPLICATION. powered by

Wydział Informatyki, Elektroniki i Telekomunikacji. Katedra Informatyki

Konspekt pracy inżynierskiej

Opis Architektury Systemu Galileo

epuap Archiwizacja w Osobistym Składzie Dokumentów

Aquarius Podręcznik uz ytkownika

Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa

Dokumentacja Użytkownika Systemu

Symulator doboru koloru i przetłoczenia bramy garażowej oraz wzoru drzwi wejściowych. do elewacji budynku klienta

OPIS i SPECYFIKACJA TECHNICZNA

W dalszej części dokumentu przedstawiamy skrócony opis kluczowych funkcji systemu. Niniejszy dokument nie zawiera opisu technicznego systemu.

INSTRUKCJA UŻYTKOWNIKA Repozytorium Dokumentów Elektronicznych KS-EDE ISO 9001:2008 Dokument: Wydanie:

Tworzenie i obsługa wirtualnego laboratorium komputerowego

INSTRUKCJA ADMINISTRATORA KLIENTA

ShopGold Integrator by CTI. Instrukcja

Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania.

Instrukcja obsługi platformy B2B ARA Pneumatik

PWI Instrukcja użytkownika

Dokumentacja Użytkownika Systemu

Zintegrowany system usług certyfikacyjnych. Dokumentacja użytkownika. Obsługa wniosków certyfikacyjnych i certyfikatów. Wersja dokumentacji 1.

Załącznik techniczny przedmiotu zamówienia komponentu

Użytkownik zewnętrzny (UZ) może wykonywać następujące czynności:

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Tworzenie prezentacji w MS PowerPoint

Instrukcja obsługi SafeIT - modułu zdalnego sterowania do sterowników kotłów CO firmy Foster v1.0

Podręcznik użytkownika Obieg dokumentów

Dokumentacja aplikacji Szachy online

Voicer. SPIKON Aplikacja Voicer V100

Instrukcja Integracja z istore. Wersja z 07/02/2015. Copyright Zakupteraz.pl

Kurier DPD by CTI. Instrukcja

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

Nowa Netia administrator firmy Nagrywanie połączeń-zarządzanie

Tom 6 Opis oprogramowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli obmiaru do celów fakturowania

Instrukcja obsługi Zaplecza epk dla Pracowników Instytucji w zakresie zarządzania danymi szczegółowymi dotyczącymi sposobu realizacji procedury

PODSYSTEM RADIODOSTĘPU MOBILNEGO ZINTEGROWANEGO WĘZŁA ŁĄCZNOŚCI TURKUS

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

InPost dla PrestaShop. kompatybliny z wersjami: 1.5, 1.6. Instrukcja obsługi

INSTRUKCJA INSTALACJI SYSTEMU

Data wydania: Projekt współfinansowany przez Unię Europejską ze środków Europejskiego Funduszu Społecznego

MPH Mini. Instrukcja użytkownika ver 102 ( )

Instrukcja użytkownika. Aplikacja Smart Paczka DPD

GEO-SYSTEM Sp. z o.o. ul. Kubickiego 9 lok. 5, Warszawa, tel./fax , geo-system@geo-system.com.

GoBiz System platforma współpracy marektingowej

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Internetowy serwis Era mail Aplikacja sieci Web

POMOC / INSTRUKCJA OBSŁUGI

Aplikacja serwerowa Platformy Prezentacyjnej Opis produktu

Instrukcja wgrywania Certyfikatu Klienta do przeglądarki Mozilla Firefox. System Bankowości Internetowej KIRI BS 2012

Specyfikacja funkcjonalna

BSX PRINTER INSTRUKCJA UŻYTKOWNIKA. Autor: Karol Wierzchołowski 10 sierpnia 2017

Centrum Informatyki "ZETO" S.A. w Białymstoku. Wysyłanie danych o licencjach i zezwoleniach do CEIDG w systemie ProcEnt Licencje

Nr: 12. Tytuł: UDOSTĘPNIANIE DANYCH O SPRAWACH KLIENTOM KANCELARII NA ZEWNĘTRZNYCH SERWERACH WWW. Data modyfikacji:

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

Strona wizytówka od 400 zł

Mercedes-Benz WebParts

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

e-awizo SYSTEM POTWIERDZANIA DORĘCZEŃ POCZTY ELEKTRONICZNEJ

Instrukcja pobrania i instalacji. certyfikatu Microsoft Code Signing. wersja 1.4

Spis treści 1. Oprogramowanie wizualizacyjne IFTER EQU Dodanie integracji CKD Wprowadzanie konfiguracji do programu EQU... 6 a.

ZGŁOSZENIE NOWEGO PRACOWNIKA

REFERAT O PRACY DYPLOMOWEJ

Tom 6 Opis oprogramowania

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie

Skrócona instrukcja korzystania z Platformy Zdalnej Edukacji w Gliwickiej Wyższej Szkole Przedsiębiorczości

Mobilny CRM BY CTI 1

Kielce, dnia roku. HB Technology Hubert Szczukiewicz. ul. Kujawska 26 / Kielce

Szczegółowy opis przedmiotu zamówienia

ArtPlayer oprogramowanie do odtwarzania plików video sterowane Artnet/DMX V1.0.1

Opis modułu pl.id w programie Komornik SQL-VAT

Aktualizacja do systemu Windows 8.1 przewodnik krok po kroku

Instrukcja obsługi integracji

1. Od czego zacząć? - Instalacja środowiska pracy

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Transkrypt:

Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki Maciej Kozieł Nr albumu: mk291587 Aplikacja do aranżacji wnętrz wykorzystująca rozszerzoną rzeczywistość Praca licencjacka na kierunku INFORMATYKA Praca wykonana pod kierunkiem dra Janusza Jabłonowskiego Instytut Informatyki Czerwiec 2013

Oświadczenie kierującego pracą Potwierdzam, że niniejsza praca została przygotowana pod moim kierunkiem i kwalifikuje się do przedstawienia jej w postępowaniu o nadanie tytułu zawodowego. Data Podpis kierującego pracą Oświadczenie autora (autorów) pracy Świadom odpowiedzialności prawnej oświadczam, że niniejsza praca dyplomowa została napisana przeze mnie samodzielnie i nie zawiera treści uzyskanych w sposób niezgodny z obowiązującymi przepisami. Oświadczam również, że przedstawiona praca nie była wcześniej przedmiotem procedur związanych z uzyskaniem tytułu zawodowego w wyższej uczelni. Oświadczam ponadto, że niniejsza wersja pracy jest identyczna z załączoną wersją elektroniczną. Data Podpis autora (autorów) pracy

Streszczenie W pracy przedstawiono szczegółowy opis realizacji aplikacji na urządzenia mobilne, która dzięki rozszerzonej rzeczywistości ułatwia użytkownikom aranżację wnętrz. System wspierany jest przez katalog produktów, z którym klienci są w stanie integrować własne sklepy internetowe z dekoracjami. Słowa kluczowe rozszerzona rzeczywistość, aplikacja na urządzenie mobilne, system sklepów, aranżacja wnętrz 11.3 Informatyka Dziedzina pracy (kody wg programu Socrates-Erasmus) Information systems Information systems applications Enterprise information systems Enterprise applications Klasyfikacja tematyczna Tytuł pracy w języku angielskim Interior design application based on Augmented Reality

Spis treści Wprowadzenie....................................... 11 1. Wizja projektu..................................... 13 1.1. Wprowadzenie................................... 13 1.1.1. Cel...................................... 13 1.1.2. Zakres.................................... 13 1.1.3. Definicje................................... 13 1.1.4. Omówienie reszty rozdziału........................ 14 1.2. Umiejscowienie produktu............................. 14 1.2.1. Korzyści................................... 14 1.2.2. Postawienie problemu........................... 15 1.2.3. Kontekst produktu............................. 15 1.3. Osoby mające wpływ na wymagania i projekt.................. 15 1.3.1. Demografia rynku............................. 16 1.3.2. Środowisko użytkownika.......................... 16 1.3.3. Charakterystyka osób mających wpływ na wymagania......... 17 1.3.4. Charakterystyka użytkowników...................... 17 1.3.5. Alternatywy i konkurencja........................ 18 1.4. Omówienie produktu................................ 18 1.4.1. Umiejscowienie produktu......................... 18 1.4.2. Podsumowanie możliwości......................... 18 1.4.3. Założenia i zależności........................... 19 1.4.4. Koszta.................................... 19 1.4.5. Licencjonowanie i instalacja........................ 20 1.5. Własności produktu................................ 20 1.5.1. Funkcjonalność Aplikacji Klienckiej.................... 20 1.5.2. Obsługa i własności Katalogu Produktów................ 21 1.5.3. Integracja ze sklepem internetowym - cechy Modułu Integracyjnego. 21 1.6. Ograniczenia.................................... 21 1.7. Założenia jakościowe................................ 22 1.8. Priorytety...................................... 22 1.9. Inne wymagania.................................. 23 1.9.1. Standardy.................................. 23 1.9.2. Wymagania systemowe.......................... 23 1.9.3. Wymagania środowiska.......................... 23 3

2. Architektura...................................... 25 2.1. Wprowadzenie................................... 25 2.1.1. Cel...................................... 25 2.1.2. Zakres.................................... 25 2.1.3. Omówienie reszty rozdziału........................ 25 2.2. Prezentacja architektury systemu......................... 26 2.2.1. Przypadki użycia.............................. 26 2.2.2. Dekompozycja logiczna.......................... 26 2.2.3. Dekompozycja na procesy......................... 26 2.2.4. Instalacja systemu............................. 26 2.2.5. Implementacja systemu.......................... 26 2.3. Założenia i zależności................................ 26 2.3.1. Technologia................................. 26 2.3.2. Oprogramowanie.............................. 27 2.3.3. Narzędzia.................................. 27 2.3.4. Transfer danych.............................. 27 2.3.5. Zespół.................................... 27 2.3.6. Harmonogram............................... 27 2.3.7. Dokumentacja techniczna......................... 27 2.4. Przegląd przypadków użycia............................ 28 2.4.1. Wyeksportowanie wybranych produktów do Katalogu......... 28 2.4.2. Importowanie produktów do katalogu.................. 29 2.4.3. Wyszukiwanie obiektów.......................... 29 2.4.4. Wyświetlenie obiektu w Widoku AR................... 30 2.5. Dekompozycja logiczna systemu.......................... 30 2.5.1. Omówienie................................. 30 2.5.2. Najważniejsze komponenty........................ 31 2.6. Dekompozycja na procesy............................. 33 2.6.1. Moduł Integracyjny Katalog Produktów............... 33 2.6.2. Aplikacja Kliencka Katalog Produktów................ 34 2.7. Instalacja systemu................................. 35 2.7.1. Instalacja aplikacji mobilnej........................ 35 2.7.2. Publikacja Aplikacji Klienckiej do sklepu Google Play......... 35 2.7.3. Instalacja Katalogu Produktów...................... 36 2.7.4. Instalacja Modułu Integracyjnego..................... 37 2.8. Implementacja systemu.............................. 37 2.8.1. Omówienie................................. 37 2.8.2. Warstwy................................... 38 2.9. Przechowywane dane................................ 38 2.9.1. Dane przechowywane po stronie Modułu Integracyjnego........ 38 2.9.2. Dane przechowywane po stronie Katalogu Produktów......... 38 2.10. Wydajność systemu................................ 38 2.10.1. Moduł Integracyjny............................ 38 2.10.2. Katalog Produktów............................ 38 2.10.3. Aplikacja Kliencka............................. 39 2.11. Jakość........................................ 39 2.11.1. Wydajność i Skalowalność......................... 39 2.11.2. Niezawodność................................ 39 2.11.3. Bezpieczeństwo............................... 39 4

3. Biznesowe przypadki użycia............................. 41 3.1. Wprowadzenie................................... 41 3.1.1. Schemat przypadku użycia........................ 41 3.2. Wzbogacenie (modyfikacja) produktu o informacje wymagane w trybie AR. 42 3.2.1. Krótki opis................................. 42 3.2.2. Cele..................................... 42 3.2.3. Wydajność................................. 42 3.2.4. Warunki wstępne.............................. 43 3.2.5. Czynności.................................. 43 3.2.6. Kategoria.................................. 43 3.2.7. Ryzyko................................... 43 3.2.8. Możliwe usprawnienia........................... 44 3.2.9. Właściciel.................................. 44 3.2.10. Możliwe rozwinięcia............................ 44 3.3. Wyeksportowanie wybranych produktów do Katalogu............. 44 3.3.1. Krótki opis................................. 44 3.3.2. Cele..................................... 44 3.3.3. Wydajność................................. 44 3.3.4. Warunki wstępne.............................. 45 3.3.5. Czynności.................................. 45 3.3.6. Kategoria.................................. 46 3.3.7. Ryzyko................................... 46 3.3.8. Możliwe usprawnienia........................... 46 3.3.9. Właściciel.................................. 46 3.3.10. Możliwe rozwinięcia............................ 46 3.4. Wybór produktów, które mają być dostępne w Katalogu............ 46 3.4.1. Krótki opis................................. 46 3.4.2. Cele..................................... 47 3.4.3. Wydajność................................. 47 3.4.4. Warunki wstępne.............................. 47 3.4.5. Czynności.................................. 47 3.4.6. Kategoria.................................. 47 3.4.7. Ryzyko................................... 48 3.4.8. Możliwe usprawnienia........................... 48 3.4.9. Właściciel.................................. 48 3.4.10. Możliwe rozwinięcia............................ 48 3.5. Dodanie sklepu do katalogu............................ 48 3.5.1. Krótki opis................................. 48 3.5.2. Cele..................................... 48 3.5.3. Wydajność................................. 48 3.5.4. Warunki wstępne.............................. 48 3.5.5. Czynności.................................. 49 3.5.6. Kategoria.................................. 49 3.5.7. Ryzyko................................... 49 3.5.8. Możliwe usprawnienia........................... 49 3.5.9. Właściciel.................................. 49 3.5.10. Możliwe rozwinięcia............................ 49 3.6. Modyfikacja i usuwanie produktu......................... 50 3.6.1. Krótki opis................................. 50 5

3.6.2. Cele..................................... 50 3.6.3. Wydajność................................. 50 3.6.4. Warunki wstępne.............................. 50 3.6.5. Czynności.................................. 50 3.6.6. Kategoria.................................. 50 3.6.7. Ryzyko................................... 50 3.6.8. Możliwe usprawnienia........................... 50 3.6.9. Właściciel.................................. 51 3.6.10. Możliwe rozwinięcia............................ 51 3.7. Logowanie do katalogu............................... 51 3.7.1. Krótki opis................................. 51 3.7.2. Cele..................................... 51 3.7.3. Wydajność................................. 51 3.7.4. Warunki wstępne.............................. 51 3.7.5. Czynności.................................. 51 3.7.6. Kategoria.................................. 51 3.7.7. Ryzyko................................... 51 3.7.8. Możliwe usprawnienia........................... 52 3.7.9. Właściciel.................................. 52 3.7.10. Możliwe rozwinięcia............................ 52 3.8. Dodawanie nowego konta użytkownika Katalogu................ 52 3.8.1. Krótki opis................................. 52 3.8.2. Cele..................................... 52 3.8.3. Wydajność................................. 52 3.8.4. Warunki wstępne.............................. 52 3.8.5. Czynności.................................. 52 3.8.6. Kategoria.................................. 53 3.8.7. Ryzyko................................... 53 3.8.8. Możliwe usprawnienia........................... 53 3.8.9. Właściciel.................................. 53 3.8.10. Możliwe rozwinięcia............................ 53 3.9. Instrukcja Jak korzystać z aplikacji...................... 53 3.9.1. Krótki opis................................. 53 3.9.2. Cele..................................... 53 3.9.3. Wydajność................................. 53 3.9.4. Warunki wstępne.............................. 54 3.9.5. Czynności.................................. 54 3.9.6. Kategoria.................................. 54 3.9.7. Ryzyko................................... 54 3.9.8. Możliwe usprawnienia........................... 54 3.9.9. Właściciel.................................. 54 3.9.10. Możliwe rozwinięcia............................ 54 3.10. Wyszukiwanie obiektów.............................. 55 3.10.1. Krótki opis................................. 55 3.10.2. Cele..................................... 55 3.10.3. Wydajność................................. 55 3.10.4. Warunki wstępne.............................. 55 3.10.5. Czynności.................................. 55 3.10.6. Kategoria.................................. 56 6

3.10.7. Ryzyko................................... 56 3.10.8. Możliwe usprawnienia........................... 56 3.10.9. Właściciel.................................. 56 3.10.10.Możliwe rozwinięcia............................ 56 3.11. Filtrowanie obiektów................................ 56 3.11.1. Krótki opis................................. 56 3.11.2. Cele..................................... 57 3.11.3. Wydajność................................. 57 3.11.4. Warunki wstępne.............................. 57 3.11.5. Czynności.................................. 57 3.11.6. Kategoria.................................. 57 3.11.7. Ryzyko................................... 58 3.11.8. Możliwe usprawnienia........................... 58 3.11.9. Właściciel.................................. 58 3.11.10.Możliwe rozwinięcia............................ 58 3.12. Wyświetlanie listy kategorii............................ 58 3.12.1. Krótki opis................................. 58 3.12.2. Cele..................................... 58 3.12.3. Wydajność................................. 58 3.12.4. Warunki wstępne.............................. 59 3.12.5. Czynności.................................. 59 3.12.6. Kategoria.................................. 59 3.12.7. Ryzyko................................... 59 3.12.8. Możliwe usprawnienia........................... 59 3.12.9. Właściciel.................................. 59 3.12.10.Możliwe rozwinięcia............................ 59 3.13. Wyświetlenie listy obiektów należących do danej kategorii........... 60 3.13.1. Krótki opis................................. 60 3.13.2. Cele..................................... 60 3.13.3. Wydajność................................. 60 3.13.4. Warunki wstępne.............................. 60 3.13.5. Czynności.................................. 60 3.13.6. Kategoria.................................. 60 3.13.7. Ryzyko................................... 60 3.13.8. Możliwe usprawnienia........................... 61 3.13.9. Właściciel.................................. 61 3.13.10.Możliwe rozwinięcia............................ 61 3.14. Wyświetlenie szczegółów obiektu......................... 61 3.14.1. Krótki opis................................. 61 3.14.2. Cele..................................... 61 3.14.3. Wydajność................................. 61 3.14.4. Warunki wstępne.............................. 61 3.14.5. Czynności.................................. 62 3.14.6. Kategoria.................................. 62 3.14.7. Ryzyko................................... 62 3.14.8. Możliwe usprawnienia........................... 62 3.14.9. Właściciel.................................. 62 3.14.10.Możliwe rozwinięcia............................ 62 3.15. Wyświetlenie galerii danego obiektu....................... 63 7

3.15.1. Krótki opis................................. 63 3.15.2. Cele..................................... 63 3.15.3. Wydajność................................. 63 3.15.4. Warunki wstępne.............................. 63 3.15.5. Czynności.................................. 63 3.15.6. Kategoria.................................. 63 3.15.7. Ryzyko................................... 64 3.15.8. Możliwe usprawnienia........................... 64 3.15.9. Właściciel.................................. 64 3.15.10.Możliwe rozwinięcia............................ 64 3.16. Przypisanie do znacznika.............................. 64 3.16.1. Krótki opis................................. 64 3.16.2. Cele..................................... 64 3.16.3. Wydajność................................. 64 3.16.4. Warunki wstępne.............................. 64 3.16.5. Czynności.................................. 65 3.16.6. Kategoria.................................. 65 3.16.7. Ryzyko................................... 65 3.16.8. Możliwe usprawnienia........................... 65 3.16.9. Właściciel.................................. 65 3.16.10.Możliwe rozwinięcia............................ 65 3.17. Wyświetlenie obiektu w widoku AR....................... 65 3.17.1. Krótki opis................................. 65 3.17.2. Cele..................................... 66 3.17.3. Wydajność................................. 66 3.17.4. Warunki wstępne.............................. 66 3.17.5. Czynności.................................. 66 3.17.6. Kategoria.................................. 66 3.17.7. Ryzyko................................... 66 3.17.8. Możliwe usprawnienia........................... 66 3.17.9. Właściciel.................................. 67 3.17.10.Możliwe rozwinięcia............................ 67 3.18. Robienie zdjęć trybu AR.............................. 67 3.18.1. Krótki opis................................. 67 3.18.2. Cele..................................... 67 3.18.3. Wydajność................................. 67 3.18.4. Warunki wstępne.............................. 67 3.18.5. Czynności.................................. 68 3.18.6. Kategoria.................................. 68 3.18.7. Ryzyko................................... 68 3.18.8. Możliwe usprawnienia........................... 68 3.18.9. Właściciel.................................. 68 3.18.10.Możliwe rozwinięcia............................ 68 3.19. Kupno produktu.................................. 68 3.19.1. Krótki opis................................. 68 3.19.2. Cele..................................... 68 3.19.3. Wydajność................................. 69 3.19.4. Warunki wstępne.............................. 69 3.19.5. Czynności.................................. 69 8

3.19.6. Kategoria.................................. 69 3.19.7. Ryzyko................................... 69 3.19.8. Możliwe usprawnienia........................... 69 3.19.9. Właściciel.................................. 69 3.19.10.Możliwe rozwinięcia............................ 69 4. Organizacja i przebieg prac............................. 71 4.1. Organizacja prac.................................. 71 4.2. Podział prac..................................... 71 4.2.1. Filip Daca.................................. 71 4.2.2. Maciej Kozieł................................ 73 4.2.3. Paweł Nowosad............................... 73 4.2.4. Łukasz Siczek................................ 74 5. Opis zawartości pakietu............................... 77 6. Podsumowanie..................................... 79 Bibliografia......................................... 81 9

Wprowadzenie Rozszerzona rzeczywistość jest pojęciem stosunkowo nowym i w ostatnim czasie cieszy się bardzo dużym zainteresowaniem. Z drugiej strony na rynku aplikacji mobilnych w dalszym ciągu niewiele jest użytecznych zastosowań tej technologii. Realizując nasz projekt chcieliśmy stworzyć produkt, który w ciekawy sposób wykorzysta rozszerzoną rzeczywistość urozmaicając standardowy schemat robienia zakupów internetowych. W niniejszym tekście bardzo szczegółowo opisano realizowany przez nas system, zarówno ze względu na jego architekturę i budowę ze strony technicznej, jak i wizję produktu znajdującego potencjalne miejsce na rynku. Można znaleźć tu wszystkie informacje na temat samego projektu, wszystkich części systemu oraz organizacji pracy. Praca składa się z sześciu rozdziałów. W rozdziale 1 ukazano najistotniejsze cechy projektu. Szczegółowy opis budowy i realizacji systemu zawarto w rozdziale 2. Rozdział 3 przedstawia opis najistotniejszych przypadków użycia systemu. W rozdziale 4 opisano szczegółowo przebieg i podział prac członków zespołu. Opis zawartości płyty z dostarczonym kodem aplikacji podano w rozdziale 5. W ostatnim rozdziale 6 umieszczono podsumowanie i istotne przemyślenia końcowe. 11

Rozdział 1 Wizja projektu 1.1. Wprowadzenie 1.1.1. Cel Celem tego rozdziału jest zebranie, przeanalizowanie i zdefiniowanie głównych cech systemu. W głównej mierze rozdział opisuje zrealizowany system pod kątem dostępnych funkcjonalności, spełnianych wymagań i zagadnień kluczowych dla interesantów. Ponadto pozwala na weryfikację początkowych założeń w istniejącym systemie. Rozdział pomaga stwierdzić, czy system w dostatecznym stopniu odpowiada na potrzeby klientów i zamawiających, oraz czy został zrealizowany zgodnie z założeniami. 1.1.2. Zakres Rozdział swoim zakresem obejmuje zagadnienia związane z całością systemu zrealizowanego w ramach przedmiotu Zespołowy Projekt Programistyczny, w którego skład wchodzą: aplikacja kliencka działająca na urządzeniu mobilnym, internetowy katalog produktów wraz z jego interfejsem oraz wtyczka integracyjna dla jednego z popularnych zrębów sklepu internetowego. 1.1.3. Definicje Podstawowe pojęcia używane w dokumencie pracy licencjackiej: System - w dokumencie mówimy o systemie jako o przedmiocie realizowanego projektu. Jest to w tym wypadku aplikacja kliencka na urządzenie mobilne zintegrowana z katalogiem produktów oraz dodatkowym modułem - wtyczką integracyjną dla sklepu internetowego. Sam sklep internetowy nie wchodzi w skład takowego Systemu, jedynie integruje się z nim za pomocą dodatkowego modułu. Aplikacja Kliencka - część Systemu odpowiadająca za interakcję z użytkownikiem Urządzenia Mobilnego. Jej głównym zadaniem jest prezentowanie produktów z Katalogu w trybie Rozszerzonej Rzeczywistości. Katalog (Produktów) - część Systemu odpowiadająca za przechowywanie informacji o obiektach, które mogą zostać użyte w Aplikacji Klienckiej. Jego głównym zadaniem jest katalogowanie, przechowywanie i wyszukiwanie przedmiotów, oraz udostępnianie ich dla Aplikacji 13

Klienckiej. Wtyczka / Moduł Integracyjny - część Systemu odpowiadająca za integrację dowolnego sklepu internetowego opartego o jeden z popularnych zrębów z Systemem. Jej głównym zadaniem jest umożliwienie eksportu wybranych produktów do Katalogu Produktów. AR / Rozszerzona Rzeczywistość - technologia umożliwiająca rozszerzanie otaczającej rzeczywistości o wirtualne obiekty, które do niej nie należą. W Systemie zrealizowana jest przez wyświetlanie obiektów z Katalogu Produktów bezpośrednio na obrazie z kamery Urządzenia Mobilnego. Dzięki temu Użytkownik uzyskuje złudzenie obecności nieistniejących obiektów w rzeczywistości, która go otacza. Użytkownik / Użytkownik Końcowy / Klient - użytkownik Aplikacji Klienckiej. Sklep - Sklep w niniejszym dokumencie reprezentuje sklep internetowy zintegrowany z Systemem za pomocą Modułu Integracyjnego. To pojęcie może również odnosić się do użytkownika go reprezentującego - właściciela lub administratora. Produkt / Obiekt - element, który System jest w stanie przedstawić w trybie Rozszerzonej Rzeczywistości. Mówiąc o Obiekcie poruszamy się w dziedzinie prezentacji AR. Obiekt jest wirtualnym reprezentantem Produktu w Rozszerzonej Rzeczywistości. Produkt jest rozumiany jako element Katalogu Produktów - przedmiot ze sklepu internetowego. Urządzenie Mobilne - telefon komórkowy, bądź tablet o specyfikacji określonej w dalszej części dokumentu. Znacznik - specjalny, ustalony element graficzny, który po wydrukowaniu jest rozpoznawany przez Aplikację Kliencką jako punkt odniesienia dla wyświetlanego Obiektu. 1.1.4. Omówienie reszty rozdziału W pozostałych sekcjach rozdziału omówione zostaną: założenia realizowane przez System, środowisko interesariuszy i użytkowników Systemu, jego główne funkcje i cechy, ustalenia dotyczące wszelkich wymagań. 1.2. Umiejscowienie produktu 1.2.1. Korzyści Aplikacja zastępuje tradycyjny sposób handlowania obrazami, plakatami i podobnymi elementami wystroju wnętrz, które wieszane są pionowo na ścianach. Dotychczas jedynym sposobem na zaaranżowanie wnętrza był zakup wybranych produktów oraz rozmieszczenie ich w pomieszczeniu. Jeśli okazywało się, że któryś element nie komponuje się z otoczeniem, trzeba było zwrócić go i powtórzyć cały proces w stosunku do innego przedmiotu. Nasz produkt ułatwia proces aranżacji wnętrza. Teraz bez konieczności wychodzenia z pomieszczenia oraz zakupu produktu można sprawdzić, jak pożądany obiekt prezentuje się w 14

domu. Jeśli zachodzi taka potrzeba, można wybrać kilka podobnych produktów oraz ustawić obok siebie w celu wybrania najbardziej odpowiadającego przedmiotu. 1.2.2. Postawienie problemu Problem Wypływa na Skutki problemu Skuteczne rozwiązanie spowoduje Bardzo ograniczona możliwość wyboru produktów, które najlepiej komponują się w domowych warunkach Klienci, właściciele sklepów Klient jest zmuszony kupować produkty (np. meble i obrazy) bez gwarancji, że pożądany przedmiot dobrze wkomponuje się w mieszkanie. W przypadku niewłaściwego wyboru klient musi zwrócić przedmiot. wzrost zainteresowania sklepami internetowymi oferującymi produkty do aranżacji wnętrz, bardziej przemyślana decyzja o kupnie przyczyni się do obniżenia liczby zwróconych towarów, większa liczba zadowolonych klientów, wzrost obrotów. 1.2.3. Kontekst produktu Dla Którzy Aplikacja do aranżacji wnętrz Które W przeciwieństwie do Nasz produkt Klientów i właścicieli sklepów Kupują lub sprzedają towary Jest narzędziem Umożliwia zakup uprzednio sprawdzonego produktu Tradycyjnej formy kupowania umeblowania Pozwala na wybór kilku produktów i umiejscowienie ich w dowolnym miejscu na ścianie w celu porównania z otoczeniem oraz podjęcia właściwej decyzji bez konieczności fizycznego posiadania tych obiektów. 1.3. Osoby mające wpływ na wymagania i projekt Kluczowym interesariuszem jest firma Agitive będąca pomysłodawcą oraz zleceniodawcą projektu. Podczas pracy nad realizacją systemu utrzymywaliśmy stały kontakt oraz konsultowaliśmy ważne decyzje rozwojowe. Bezpośrednich klientów możemy podzielić na dwie grupy. Pierwszą z nich są sklepy internetowe (nazywane dalej Sklepami ), które mogą prezentować swoje produkty za po- 15

średnictwem naszej aplikacji. Drugą grupą klientów są użytkownicy końcowi (nazywani dalej Klientami ). Używając naszej aplikacji, Klienci mogą przeglądać ofertę sklepów, prezentując wybrane produkty na ekranie obsługiwanego urządzenia (tabletu, lub smartphonu) w trybie Rozszerzonej Rzeczywistości. 1.3.1. Demografia rynku Rynek Sklepów Potencjalnym klientem jest praktycznie dowolny sklep internetowy, który sprzedaje produkty do aranżacji wnętrz. Jest to pierwszy tego typu projekt w Polsce, więc trudno jest określi specyfikę rynku. Jedynym wymaganiem technicznym, jest posiadanie przez Sklep systemu sprzedaży, wspieranego przez naszą aplikację. Rynek Klientów Potencjalnym klientem końcowym jest dla nas dowolny użytkownik tabletu bądź smartphona. Aktualnie obserwujemy stały wysoki wzrost liczby tych urządzeń. Do końca 2012 roku spodziewany udział smartphonów w rynku telefonów komórkowych wynosi 49 %. 1.3.2. Środowisko użytkownika Sklep Środowisko użytkownika, jako administratora sklepu, nie różni się od jego domyślnego środowiska pracy, z którego korzysta podczas wykonywania prac administracyjnych w swoim sklepie. Jednak aby administrator sklepu mógł rozpocząć pracę z naszym systemem, potrzebuje integracji swojego środowiska z Katalogiem produktów, którą zapewni instalacja modułu integracyjnego. Wymagany jest do tego, albo doświadczony administrator platformy sklepowej, albo odpowiednio przeszkolona osoba, oddelegowana z firmy zewnętrznej. Cała interakcja ze środowiskiem systemu odbywa się przez interfejs webowy. Aby dodawać produkty do katalogu, oraz nim zarządzać, wystarczy jeden, zaznajomiony z systemem użytkownik. Czas dodania produktów do katalogu jest znikomy i składa się na niego tylko zaznaczenie produktów do eksportu i potwierdzenie operacji. Każdy produkt można indywidualnie edytować, poprzez interfejs webowy. Klient Aplikacja kliencka jest dostępna do ściągnięcia za darmo w sklepie Google Play. Do uruchomienia użytkownik potrzebuje urządzenia z systemem operacyjnym Android w wersji 2.2 lub wyższej. Aplikacja do działania wymaga połączenia z Internetem. Aby skorzystać z modułu AR, użytkownik potrzebuje papierowego znacznika, który może pobrać bezpośrednio z aplikacji. 16

1.3.3. Charakterystyka osób mających wpływ na wymagania Agitive Przedstawiciele Opis Typ Kryteria sukcesu Zaangażowanie Maciej Szerling, Michał Stachowski Firma IT specjalizująca się w tworzeniu aplikacji mobilnych i webowych. Przedstawiciele zamawiającego mają duże doświadczenie w branży IT i mogą współuczestniczyć w realizowanych projektach. Odpowiedzialność: Zleca konkretne zadania. System został wykonany zgodnie ze specyfikacją. Sugeruje dobór technologii, odpowiada na pytania zespołu, dostarcza urządzenia oraz część dokumentacji. 1.3.4. Charakterystyka użytkowników Sklep Opis Typ Odpowiedzialność Kryteria sukcesu Rezultat Ma sklep internetowy i jest zainteresowany nowymi drogami dystrybucji swoich produktów. Nie jest obeznany z technologiami zastosowanymi przy produkcji i integracji modułu integracyjnego. Jego interakcja z modułem ogranicza się do interfejsu webowego. Kontroluje dodawanie produktów do katalogu i ich ewentualną modyfikację. Produkty ze sklepu są poprawnie dodawane do katalogu. Produkty znajdujące się w katalogu są prezentowane potencjalnym klientom poprzez naszą aplikację mobilną. Produkty dodane go katalogu zwiększają atrakcyjność aplikacji mobilnej dla użytkowników końcowych; większy wybór przedmiotów, które można obejrzeć / kupić. Klient Opis Typ Ma urządzenie z systemem Android oraz naszą aplikację i jest zainteresowany znalezieniem i ewentualnym zakupem przedmiotu z katalogu produktów. Nie musi mieć żadnej specjalistycznej wiedzy. 17

Kryteria sukcesu Znalazł produkt którym był zainteresowany, oraz zobaczył poprzez moduł AR, jak będzie się prezentował w docelowym otoczeniu. Dokonał zakupu wybranego towaru. 1.3.5. Alternatywy i konkurencja Z przeprowadzonej analizy wynika, że technologia AR nie jest wykorzystywana na szeroką skalę przez firmy działające w handlu detalicznym. Rozszerzona Rzeczywistość została użyta jako rozbudowanie papierowego katalogu produktów IKEA. Aplikacja jest dostępna bezpłatnie w Google Play. Innym ciekawym zastosowaniem jest wirtualne przymierzanie butów. Jednakże aplikacja, która ma realizować tą funkcjonalność jest jeszcze niedostępna, została tylko zaprezentowana na Dworcu Centralnym w Hamburgu w kwietniu 2012 roku. 1.4. Omówienie produktu 1.4.1. Umiejscowienie produktu Nasz projekt składa się z 3 współpracujących ze sobą produktów, z których 2 są całkowicie niezależne od zewnętrznych systemów, a mianowicie aplikacja kliencka dla Androida oraz serwis internetowy z katalogiem produktów. Natomiast moduł integracji z naszą usługą dla sklepów internetowych jest komponentem systemu sklepowego Magento. Jest on pośrednikiem w komunikacji pomiędzy naszym katalogiem produktów, a sklepem naszego klienta. Taki pośrednik pełni rolę tłumacza, który wie w jaki sposób wykonać polecenia określone w naszym API za pomocą API systemu sklepowego, którego jest komponentem. Dzięki takiemu rozwiązaniu nasz serwer może swobodnie komunikować się ze sklepem niezależnie od używanego przez klienta systemu. Nasz komponent do realizacji swoich funkcjonalności wymaga w ramach sklepu dostępu do modułów odpowiedzialnych za katalog produktów oraz udostępnianie szczegółów na temat wybranego produktu. Dostęp do szczegółów wybranych produktów będzie wymagał wcześniejszej zgody właściciela. 1.4.2. Podsumowanie możliwości System wizualizacji produktów z użyciem AR Korzyści klienta Szeroka oferta produktów. Łatwy zakup produktów. Możliwość zweryfikowania rzeczywistego wyglądu produktu w pomieszczeniu. Cechy Łatwa integracja sklepów z naszym serwisem. Aplikacja umożliwia szybkie przejście do strony produktu w serwisie klienta. Umieszczanie z możliwością edycji wybranych produktów na żywo na obrazie z kamery. 18

Korzyści klienta Łatwe wyszukiwanie i przeglądanie produktów. Cechy Klasyfikowanie produktów do różnych kategorii oraz możliwość definiowania i stosowania filtrów. System katalogu produktów Korzyści klienta Łatwa integracja z systemem katalogu. Łatwe zarządzanie produktami w katalogu. Powiększeniu grupy odbiorców. Cechy Możliwość dodania do serwisu sklepowego komponentu umożliwiającego zarządzanie produktami w naszym katalogu. Zarządzanie produktami w katalogu możliwe jest za pomocą dwóch alternatywnych metod. Pierwszą z nich jest moduł do systemu klienta, który umożliwia edycję z poziomu serwisu sklepu. Drugą jest strona internetowa naszego katalogu. Nowa grupa potencjalnych klientów dzięki zastosowaniu technologii AR, która przyciąga nowych klientów oraz zwiększa szansę zakupu produktu. 1.4.3. Założenia i zależności Projekt do działania będzie wymagał następujących kompomentów: Android w wersji 2.2 lub nowszej, Vuforia,.Net w wersji 4.5 lub nowszej, Microsoft Azure, Magento w wersji 1.7 lub nowszej. W przypadku jeśli któryś z systemów okaże się niedostępny w trakcie realizacji projektu, wizja będzie wymagała modyfikacji. 1.4.4. Koszta Aplikacja kliencka do przeglądania produktów będzie dystrybuowana za darmo poprzez Google Play, który pozwala bez dodatkowych opłat rozprowadzać darmowe aplikacje. 19

Podobnie jest w przypadku katalogu, którego sama dystrybucja nie będzie generowała żadnych kosztów, ponieważ zarządzanie produktami będzie odbywało się za pomocą serwisu internetowego znajdującego się na naszych serwerach oraz dostępnego za darmo do pobrania modułu do sklepu klienta. Głównym źródłem kosztów naszego systemu będzie utrzymywanie serwerów, które będą znajdowały się w chmurze Windows Azure. Takie rozwiązanie będzie obarczone koniecznością opłacania comiesięcznego abonamentu, którego kwota będzie zależała od rozmiaru przestrzeni dyskowej, rozmiaru bazy danych, liczby maszyn wirtualnych, czasu zużycia procesora oraz wyjściowego transferu internetowego zużywanych nasz serwer. Z kolei te parametry są bezpośrednio powiązane z liczbą klientów oraz ich zapotrzebowaniem na rozmiar dostępnego miejsca na produkty i ruchu internetowego jaki generują ich klienci. Stąd nasza usługa będzie sprzedawana w formie comiesięcznego abonamentu, którego kwota będzie uzależniona od zapotrzebowania klienta na powyżej wymienione parametry oraz od marży, która będzie stanowiła główny przychód dla tego projektu. 1.4.5. Licencjonowanie i instalacja Instalacja aplikacji klienckiej dla Androida odbywa się automatycznie poprzez sklep Google Play i nie wymaga żadnej dodatkowej konfiguracji. Aktualizacja programu będzie odbywała się podobnie jak instalacja za pośrednictwem dostępnego sklepu. W przypadku sklepów instalacja dla serwisu internetowego polega na założeniu konta i wygenerowania hasła z dostępem do strony zarządzania katalogiem oraz opcjonalnie zintegrowania naszego modułu z serwisem sklepowym klienta. Aktualizacje serwisu do zarządzania katalogiem odbywają się bezpośrednio na serwerze, co nie wymaga żadnych dodatkowych czynności od klienta. Instalacja serwisu z katalogiem będzie wymagała konta w chmurze Windows Azure oraz wyeksportowania tam wcześniej przygotowanej paczki zawierającej certyfikaty i klucze wygenerowane dla serwera. Instalacja modułu do serwisu sklepowego odbywa się zgodnie ze standardem rozszerzeń Magento. 1.5. Własności produktu 1.5.1. Funkcjonalność Aplikacji Klienckiej Główną funkcjonalnością udostępnianą przez Aplikację Kliencką jest prezentacja obiektów na obrazie z kamery (tryb AR), bazując na rozpoznanym Znaczniku. Ponadto aplikacja umożliwia manipulowanie wyświetlonymi obiektami - przesuwanie w pionie / poziomie oraz zmniejszanie i obracanie. Obiekty, które Aplikacja Kliencka może wyświetlać w trybie AR, mogą zostać pobrane z Katalogu Produktów, bądź z galerii Urządzenia Mobilnego. W tym celu Katalog Produktów udostępnia odpowiedni interfejs programistyczny umożliwiający Aplikacji Klienckiej przeglądanie i wyszukiwanie obiektów z Katalogu. 20

Aplikacja Kliencka ma możliwość prezentacji podstawowych informacji o produktach, przy czym szczególnie wyeksponowany jest zestaw produktów specjalnych (na przykład objętych promocją) - wyróżnionych przez Katalog, na jednym z ekranów. Każdy obiekt może zostać zakupiony w powiązanym z nim sklepie internetowym - Aplikacja Kliencka pozwala na wyświetlenie strony wybranego przedmiotu w zewnętrznej przeglądarce Urządzenia Mobilnego oraz dokonanie zakupu. 1.5.2. Obsługa i własności Katalogu Produktów Katalog Produktów pełni rolę bazy danych obiektów, które mogą zostać użyte w Aplikacji Klienckiej w trybie AR. Katalog za pośrednictwem interfejsu programistycznego pozwala Aplikacji Klienckiej na wyszukiwanie obiektów przy użyciu określonych filtrów i kategorii, przeglądanie dostępnych obiektów oraz pobranie wybranych obiektów w celu wyświetlenia ich w trybie AR. Ponadto udostępnia Aplikacji Klienckiej zbiór kilku produktów określonych jako wyszczególnione (na przykład w ramach promocji). Katalog Produktów za pośrednictwem interfejsu webowego pozwala upoważnionemu użytkownikowi na wykonywanie czynności administracyjnych takich jak dodawanie lub edycja przechowywanych produktów. Dodatkowo administrator katalogu może definiować własne kategorie, filtry wyszukiwania oraz grupy produktów wyszczególnionych. Dzięki interfejsowi dostarczanemu przez Moduł Integracyjny, Katalog może importować dane o przedmiotach z dowolnego sklepu, który taki moduł posiada. Może również aktualizować informacje o zaimportowanych produktach. 1.5.3. Integracja ze sklepem internetowym - cechy Modułu Integracyjnego Moduł Integracyjny umożliwia integrację sklepu internetowego opartego na jednym z najpopularniejszych zrębów z Systemem. W szczególności Moduł Integracyjny zrealizowany jest tak, aby upoważniony administrator sklepu mógł w łatwy sposób dołączyć go do swojego sklepu i dodać wybrane przedmioty do Katalogu Produktów za pośrednictwem interfejsu dostarczanego przez sklep. Moduł Integracyjny w nieznaczny sposób zmienia interfejs sklepu, tak aby umożliwić administratorowi wykonanie stosownych czynności. Administrator sklepu wybierając produkty, które chciałby umieścić w Katalogu, powinien dostarczyć dodatkowe informacje takie jak tekstura, która wystąpi w widoku AR. 1.6. Ograniczenia Aplikacja działa tylko na urządzeniach z systemem Android w wersji 2.2 lub wyższej posiadających aparat o matrycy co najmniej 5 Mpix. 21

Aplikacja umożliwia wyświetlanie jednocześnie maksymalnie pięciu obiektów. Aplikacja nie obsługuje procesu kupowania produktów, tylko udostępnia odsyłacz do sklepu z wybranym przedmiotem. Aplikacja obsługuje wyłącznie zarejestrowane znaczniki. 1.7. Założenia jakościowe Docelowa dostępność katalogu produktów: 99% w skali roku. Docelowy maksymalny średni (z danego dnia) czas odpowiedzi API katalogu produktów: 40 ms (czas przez który serwer będzie przetwarzał zadanie; nie obejmuje czasów transmisji danych). Aplikacja mobilna jest w stanie rozpoznać znacznik, wydrukowany na kartce rozmiaru A4, w zakresie odległości 40 cm do 3 m. Interfejs aplikacji mobilnej jest intuicyjny w takim stopniu, że korzystający z niego przeciętny użytkownik nie potrzebuje instrukcji obsługi. 1.8. Priorytety Najważniejszym priorytetem dla aplikacji na Androida jest jak najefektywniejsze przetwarzanie obrazu z kamery i wyświetlanie jak najpłynniej na nim obserwowanych obiektów, ponieważ ma to wpływ na komfort użytkowania aplikacji i liczba klientów z niej aktywnie korzystających, co jest najważniejszym czynnikiem sukcesu tego projektu. Drugim równorzędnym priorytetem jest szybkie pobieranie i przetwarzanie informacji z katalogu, co pozwoli skrócić czas oczekiwania użytkownika na załadowanie produktów, co będzie znów skutkowało lepszym komfortem użytkowania aplikacji. Mniej ważnym, ale nadal istotnym celem, jest możliwość jak najbardziej elastycznego dopasowywania filtrów oraz kategorii umożliwiających zawężenie listy produktów do tylko tych poszukiwanych przez użytkownika. Najważniejszym priorytetem dla katalogu jest jak najbardziej elastyczne zarządzanie produktami, tak aby sklep mógł jak najszerzej zaprezentować swoją ofertę, a zarazem musiał poświęcić jak najmniej czasu na jej przygotowanie, co jest bardzo ważnym argumentem za skorzystaniem z naszych usług dla właściciela sklepu. Drugim bardzo ważnym priorytetem jest zapewnienie jak największego bezpieczeństwa poufnych danych przechowywanych przez klienta w naszym serwisie. Najważniejszym priorytetem dla modułu sklepowego jest zapewnienie bezproblemowej integracji sklepu z katalogiem produktów. Moduł Integracyjny powinien umożliwiać prosty eksport wybranych produktów do katalogu, aktualizację informacji o przedmiotach i skuteczne zarządzanie obiektami przeznaczonymi do podglądu w trybie rozszerzonej rzeczywistości. Ponadto dużym priorytetem jest przeźroczystość wtyczki integracyjnej. Powinna ona w możliwie najmniejszym stopniu ingerować w domyślny interfejs użytkownika i nie wychodzić poza standardy narzucone przez zrąb. 22

1.9. Inne wymagania 1.9.1. Standardy Aplikacja kliencka jest zgodna ze standardem projektowania interfejsu obowiązującym na platformie Android. Katalog Produktów został zrealizowany zgodnie ze wzorcem model - view - controller (MVC), w technologii ASP.NET. Moduł Integracyjny został napisany zgodnie ze standardem tworzenia wtyczek do zrębu Magento. Komunikacja z Katalogiem Produktów opiera się na wymianie obiektów typu JSON przez protokół HTTP. 1.9.2. Wymagania systemowe Katalog Produktów jest utrzymywany na środowisku Microsoft Azure. Wymagana jest płatna subskrybcja w programie. Moduł Integracyjny, jako wtyczka do istniejącego systemu, dzieli wymagania systemowe z aplikacją Magento - uruchomiona jest w tym samym środowisku co sklep. 1.9.3. Wymagania środowiska Korzystanie z trybu Rozszerzonej Rzeczywistości wymaga odpowiedniego oświetlenia oraz kolorowych znaczników w formacie A4 umieszczonych na ścianie, w odległości nie większej niż 3 metry od urządzenia mobilnego z Aplikacją Kliencką. Moduł Integracyjny dzieli wymagania środowiska razem z systemem działającym ze zrębem Magento. Program przygotowany dla systemu operacyjnego M$ Windows uruchamia się energicznym dwumlaskiem na jego ikonce w folderze \\FIDO\FOO\BLABA. Następnie kolistym ruchem ręki należy naprowadzić kursor na menu Blabaliza i uaktywnić pozycję Otwórz plik. Po wybraniu pliku i zatwierdzeniu wyboru przyciskiem OK rozpocznie się proces blabalizy. Wyniki zostaną zapisane w pliku o nazwie 99-1a.tx.43 w bieżącym folderze. 23

Rozdział 2 Architektura 2.1. Wprowadzenie 2.1.1. Cel W tym rozdziale przestawiono kompleksowy przegląd architektury, ukazując ją z różnych perspektyw w celu unaocznienia wielu odmiennych aspektów branych pod uwagę przy konstruowaniu systemu. Celem tego przeglądu jest wskazanie i wyjaśnienie najważniejszych decyzji dotyczących architektury, które zostały podjęte w fazie projektowania. 2.1.2. Zakres Rozdział ten opisuje podstawowe założenia, idee i pomysły, którymi kierowano się podczas realizacji systemu i wszystkich jego elementów: Aplikacji Klienckiej, Katalogu Produktów oraz Modułu Zewnętrznego. 2.1.3. Omówienie reszty rozdziału Podrozdział 2 - Ukazuje, względem jakich perspektyw przedstawiana jest architektura systemu. Podrozdział 3 - Opisuje kluczowe względem architektury wymagania i zależności dotyczące oprogramowania, technologii, narzędzi i sposobu wytwarzania oprogramowania. Podrozdział 4 - Ilustruje najbardziej kluczowe przypadki użycia systemu ze szczególnym zwróceniem uwagi na role poszczególnych elementów architektury systemu. Podrozdział 5 - Dokonuje logicznej dekompozycji systemu. Podrozdział 6 - Przedstawia rolę i komunikację procesów działających w obrębie systemu. Podrozdział 7 - Przedstawia sposób wdrożenia systemu i instalacji poszczególnych elementów. Podrozdział 8 - Ukazuje sposób, w jaki zaimplementowano omawiany system. Podrozdział 9 - Wyjaśnia logiczne zagadnienia związane z przechowywaniem danych w systemie. 25

Podrozdział 10 - Przedstawia architekturę z perspektywy czynników mających znaczny wpływ na wydajność systemu. Podrozdział 11 - Ilustruje, w jaki sposób poszczególne rozwiązania zastosowane przy realizacji systemu, wpływają na kryteria jakości. 2.2. Prezentacja architektury systemu Architektura systemu ukazuje jego budowę i infrastrukturę na wysokim poziomie abstrakcji, aby pojąć działanie poszczególnych elementów oraz decyzje podjęte podczas projektowania i implementacji. Analiza architektury pozwala zrozumieć zagrożenia i trudności, z jakimi spotkano się podczas realizacji systemu, oraz poznać rozwiązania, dzięki którym rozwiązano poszczególne problemy. Model systemu jest przedstawiony poprzez analizę następujących zagadnień: 2.2.1. Przypadki użycia Przedstawia najbardziej kluczowe dla systemu przypadki jego użycia. Opisywane przypadki zostały wybrane tak, aby podczas ich analizy możliwe było ukazanie najistotniejszych aspektów architektury - podziału na moduły i komunikacji pomiędzy nimi. 2.2.2. Dekompozycja logiczna Przedstawia logiczny podział systemu na konkretne moduły, a w obrębie modułów na oddzielne elementy realizujące daną funkcjonalność. Szczegółowo opisuje rolę i zakres danego elementu logicznego. 2.2.3. Dekompozycja na procesy Przedstawia architekturę systemu ze względu na procesy w nim działające. Ukazuje ich rolę, wzajemną komunikację i okoliczności, w jakich działają. 2.2.4. Instalacja systemu Opisuje sprzęt, infrastrukturę i środowisko potrzebne do wdrożenia całości systemu. Każdy z głównych modułów systemu wymaga innego środowiska i innych czynności do wykonania pełnego wdrożenia. 2.2.5. Implementacja systemu Przedstawia podział systemu na warstwy ukazując ich role i zależności między nimi. Zawiera również opis najważniejszych klas i metod. 2.3. Założenia i zależności 2.3.1. Technologia System składa się z trzech odrębnych części. Ten podział ma swoje odzwierciedlenie w doborze narzędzi programistycznych. 26

Aplikacja mobilna została przygotowana z myślą o systemie Android, w związku z tym powstała w Javie. Dodatkowo do zaprogramowania modułu Rozszerzonej Rzeczywistości została wykorzystana zewnętrzna biblioteka, Vuforia, która jest napisana w C++. Cześć związana z katalogiem produktów powstała przy wykorzystaniu technologii.net. Wykorzystany został język Visual Basic, Azure Cloud oraz wzorzec MVC. Ostatnia warstwa systemu jest wtyczką dedykowaną do Magento, stąd z konieczności została przygotowana w PHP. 2.3.2. Oprogramowanie Moduł integracyjny powstał jako wtyczka do zrębu Magento. Z tego powodu konieczne było skorzystanie z serwera HTTP Apache 2 oraz bazy danych MySQL, których używa system macierzysty. 2.3.3. Narzędzia Przy pracy nad systemem wykorzystywane były narzędzie wspomagające programowanie: Eclipse (aplikacja mobilna i wtyczka do Magento) oraz Microsoft Visual Studio 2010 (część katalogowa). Powyższe narzędzia są bezpłatnie dostępne dla studentów, co miało kluczowe znaczenie przy ich wyborze. 2.3.4. Transfer danych Ważną cześć systemu stanowi transfer danych pomiędzy warstwami systemu. Przy oprogramowaniu mechanizmów komunikacji został położony duży nacisk na kwestie bezpieczeństwa oraz minimalizację ilości przesyłanych danych. 2.3.5. Zespół Projekt został zrealizowany wyłącznie przez czteroosobowy zespół w ramach rocznego proseminarium licencjackiego Zespołowy projekt programistyczny na Wydziale Matematyki, Informatki i Mechaniki Uniwersytetu Warszawskiego. 2.3.6. Harmonogram Przed rozpoczęciem prac nad wykonaniem systemu, wspólnie z zamawiającym został przygotowany harmonogram. Realizacja projektu następowała zgodnie z przyjętymi terminami. Szczegółowy harmonogram jest zawarty w załączniku. 2.3.7. Dokumentacja techniczna Niezbędnym składnikiem projektu jest udokumentowanie techniczne pracy umożliwiające rozwijanie systemu. Dokumentacja została przygotowana przy użyciu narzędzia Doxygen oraz phpdocumentor. 27

2.4. Przegląd przypadków użycia 2.4.1. Wyeksportowanie wybranych produktów do Katalogu Krótki opis Administrator Sklepu (Aktor) może zażądać umieszczenia wybranych produktów ze Sklepu w Katalogu Produktów, skąd będą one mogły zostać pobrane przez Aplikację Kliencką i zaprezentowane w trybie AR. Dokonuje tego przez wybranie odpowiednich przedmiotów z listy i potwierdzenie wyboru przyciskiem. Jest to kluczowy przypadek użycia, w którym największą rolę odgrywa Moduł Integracyjny. Cele Umieszczenie wybranego produktu ze Sklepu w Katalogu Produktów, bądź aktualizacja danych o wybranym przedmiocie, jeśli już znajdują się one w Katalogu. Warunki wstępne Sklep internetowy oparty na zrębie Magento z Modułem Integracyjnym, Nowoczesna przeglądarka internetowa z dostępem do Internetu, Prawa dostępu do panelu administracyjnego Sklepu, Sklep internetowy zarejestrowany w Katalogu Produktów, Co najmniej jeden produkt przystosowany do prezentacji w trybie AR.. Czynności wraz z prezentacją architektury 1. Aktor wchodzi na stronę internetową swojego Sklepu. (*) 2. Aktor loguje się do panelu administratora. (*) 3. Aktor przechodzi do widoku Modułu Integracyjnego wybierając odpowiednią pozycję z menu. (*) Kontroler Widoków Modułu Integracyjnego odpowiada za przekazanie odpowiedniej treści do przeglądarki Użytkownika. 4. Aktor znajduje na liście przedmiotów ten, który chce wyeksportować do Katalogu. Za realizację tego etapu odpowiada Interfejs Webowy Modułu Integracyjnego, który przekazuje Użytkownikowi listę przedmiotów pobranych z bazy przy pomocy Kontrolera Bazy Danych. 5. Na końcu za pomocą przycisku Export eksportuje wybrany produkt do Katalogu. Ten etap przypadku użycia jest realizowany przez Moduł Komunikacji z Katalogiem. 6. Po pomyślnym dodaniu obiektów do Katalogu, System wyświetla Aktorowi informację o powodzeniu operacji. Za wyświetlenie komunikatu odpowiada ponownie Interfejs Webowy, a samą treść komunikatu dostarcza Moduł Komunikacji z Katalogiem. (*) - czynności, których przebieg zależy od używanego zrębu 28

2.4.2. Importowanie produktów do katalogu Krótki opis Cele Administrator Sklepu chce automatycznie dodać przygotowane produkty do Katalogu. Zaimportowanie produktów poprzez Moduł Integracyjny w celu dodania ich do bazy danych Katalogu. Warunki wstępne Po stronie modułu integracyjnego sklepu, produkty muszą wcześniej zostać poprawnie przygotowane. Czynności podstawowe 1. Administrator sklepu loguje się do katalogu produktów (interfejs www Katalogu). 2. Wchodzi do zakładki zarządzania produktami, gdzie klika na przycisk Importuj produkty. 3. Produkty są automatycznie importowane, po czym wyświetla się informacja o pomyślnie zakończonym zadaniu. W tym punkcie aplikacja korzysta z API do komunikacji z Modułem Integracyjnym i zapisuje dane używając kontrolera bazy danych. 2.4.3. Wyszukiwanie obiektów Krótki opis Użytkownik Aplikacji Klienckiej (Aktor) korzystając z wyszukiwarki chce wyszukać wszystkie produkty znajdujące się w Katalogu Produktów, które są powiązane z frazą przez niego wpisaną. Zapytanie o wyszukanie produktów zostanie wysłane z Aplikacji Klienckiej do Katalogu Produktów, a następnie w odpowiedzi zostaną pobrane wyniki wyszukiwania i zaprezentowane użytkownikowi w Aplikacji Klienckiej. Następnie użytkownik będzie mógł wybrać interesujące go produkty i wyświetlić ja w widoku AR. Cele Aktor korzystając z Aplikacji Klienckiej chce znaleźć wszystkie dostępne produkty w Katalogu Produktów powiązane z jakąś konkretną frazą. Warunki wstępne Aplikacja Kliencka posiada dostęp do Internetu. Czynności wraz z prezentacją architektury 1. Aktor naciska przycisk Q, co powoduje pojawienie się w Aplikacji Klienckiej pola tekstowego na frazę wyszukiwania. 2. Aktor wpisuje w pole, które się pojawiło, frazę według, której chce wyszukać obiekty. 29