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

Transkrypt

Aplikacja do aranżacji wnętrz wykorzystująca rozszerzoną
Uniwersytet Warszawski
Wydział Matematyki, Informatyki i Mechaniki
Filip Daca
Nr albumu: fd305199
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
Dziedzina pracy (kody wg programu Socrates-Erasmus)
11.3 Informatyka
Klasyfikacja tematyczna
Information systems
Information systems applications
Enterprise information systems
Enterprise applications
Tytuł pracy w języku angielskim
Interior design application based on Augmented Reality
Spis treści
Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
1. Wizja projektu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1. Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.1. Cel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.2. Zakres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.3. Definicje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.4. Omówienie reszty rozdziału . . . . . . . . . . . . . . . . . . . . . . .
1.2. Umiejscowienie produktu . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1. Korzyści . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.2. Postawienie problemu . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.3. Kontekst produktu . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3. Osoby mające wpływ na wymagania i projekt . . . . . . . . . . . . . . . . .
1.3.1. Demografia rynku . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.2. Środowisko użytkownika . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.3. Charakterystyka osób mających wpływ na wymagania . . . . . . . .
1.3.4. Charakterystyka użytkowników . . . . . . . . . . . . . . . . . . . . .
1.3.5. Alternatywy i konkurencja . . . . . . . . . . . . . . . . . . . . . . .
1.4. Omówienie produktu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.1. Umiejscowienie produktu . . . . . . . . . . . . . . . . . . . . . . . .
1.4.2. Podsumowanie możliwości . . . . . . . . . . . . . . . . . . . . . . . .
1.4.3. Założenia i zależności . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.4. Koszta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.5. Licencjonowanie i instalacja . . . . . . . . . . . . . . . . . . . . . . .
1.5. Własności produktu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.1. Funkcjonalność Aplikacji Klienckiej . . . . . . . . . . . . . . . . . . .
1.5.2. Obsługa i własności Katalogu Produktów . . . . . . . . . . . . . . .
1.5.3. Integracja ze sklepem internetowym - cechy Modułu Integracyjnego
1.6. Ograniczenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.7. Założenia jakościowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.8. Priorytety . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.9. Inne wymagania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.9.1. Standardy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.9.2. Wymagania systemowe . . . . . . . . . . . . . . . . . . . . . . . . .
1.9.3. Wymagania środowiska . . . . . . . . . . . . . . . . . . . . . . . . .
13
13
13
13
13
14
14
14
15
15
15
16
16
17
17
18
18
18
18
19
19
20
20
20
21
21
21
22
22
23
23
23
23
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2. Architektura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1. Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1. Cel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.2. Zakres . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.3. Omówienie reszty rozdziału . . . . . . . . . . . . . . . .
2.2. Prezentacja architektury systemu . . . . . . . . . . . . . . . . .
2.2.1. Przypadki użycia . . . . . . . . . . . . . . . . . . . . . .
2.2.2. Dekompozycja logiczna . . . . . . . . . . . . . . . . . .
2.2.3. Dekompozycja na procesy . . . . . . . . . . . . . . . . .
2.2.4. Instalacja systemu . . . . . . . . . . . . . . . . . . . . .
2.2.5. Implementacja systemu . . . . . . . . . . . . . . . . . .
2.3. Założenia i zależności . . . . . . . . . . . . . . . . . . . . . . . .
2.3.1. Technologia . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.2. Oprogramowanie . . . . . . . . . . . . . . . . . . . . . .
2.3.3. Narzędzia . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.4. Transfer danych . . . . . . . . . . . . . . . . . . . . . .
2.3.5. Zespół . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.6. Harmonogram . . . . . . . . . . . . . . . . . . . . . . .
2.3.7. Dokumentacja techniczna . . . . . . . . . . . . . . . . .
2.4. Przegląd przypadków użycia . . . . . . . . . . . . . . . . . . . .
2.4.1. Wyeksportowanie wybranych produktów do Katalogu .
2.4.2. Importowanie produktów do katalogu . . . . . . . . . .
2.4.3. Wyszukiwanie obiektów . . . . . . . . . . . . . . . . . .
2.4.4. Wyświetlenie obiektu w Widoku AR . . . . . . . . . . .
2.5. Dekompozycja logiczna systemu . . . . . . . . . . . . . . . . . .
2.5.1. Omówienie . . . . . . . . . . . . . . . . . . . . . . . . .
2.5.2. Najważniejsze komponenty . . . . . . . . . . . . . . . .
2.6. Dekompozycja na procesy . . . . . . . . . . . . . . . . . . . . .
2.6.1. Moduł Integracyjny ↔ Katalog Produktów . . . . . . .
2.6.2. Aplikacja Kliencka → Katalog Produktów . . . . . . . .
2.7. Instalacja systemu . . . . . . . . . . . . . . . . . . . . . . . . .
2.7.1. Instalacja aplikacji mobilnej . . . . . . . . . . . . . . . .
2.7.2. Publikacja Aplikacji Klienckiej do sklepu Google Play .
2.7.3. Instalacja Katalogu Produktów . . . . . . . . . . . . . .
2.7.4. Instalacja Modułu Integracyjnego . . . . . . . . . . . . .
2.8. Implementacja systemu . . . . . . . . . . . . . . . . . . . . . .
2.8.1. Omówienie . . . . . . . . . . . . . . . . . . . . . . . . .
2.8.2. Warstwy . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.9. Przechowywane dane . . . . . . . . . . . . . . . . . . . . . . . .
2.9.1. Dane przechowywane po stronie Modułu Integracyjnego
2.9.2. Dane przechowywane po stronie Katalogu Produktów .
2.10. Wydajność systemu . . . . . . . . . . . . . . . . . . . . . . . .
2.10.1. Moduł Integracyjny . . . . . . . . . . . . . . . . . . . .
2.10.2. Katalog Produktów . . . . . . . . . . . . . . . . . . . .
2.10.3. Aplikacja Kliencka . . . . . . . . . . . . . . . . . . . . .
2.11. Jakość . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.11.1. Wydajność i Skalowalność . . . . . . . . . . . . . . . . .
2.11.2. Niezawodność . . . . . . . . . . . . . . . . . . . . . . . .
2.11.3. Bezpieczeństwo . . . . . . . . . . . . . . . . . . . . . . .
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
25
25
25
25
25
26
26
26
26
26
26
26
26
27
27
27
27
27
27
28
28
29
29
30
30
30
31
33
33
34
35
35
35
36
37
37
37
38
38
38
38
38
38
38
39
39
39
39
39
3. Biznesowe przypadki użycia . . . . . . . . . . . . . . . . . . . .
3.1. Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.1. Schemat przypadku użycia . . . . . . . . . . . . . . .
3.2. Wzbogacenie (modyfikacja) produktu o informacje wymagane
3.2.1. Krótki opis . . . . . . . . . . . . . . . . . . . . . . . .
3.2.2. Cele . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.3. Wydajność . . . . . . . . . . . . . . . . . . . . . . . .
3.2.4. Warunki wstępne . . . . . . . . . . . . . . . . . . . . .
3.2.5. Czynności . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.6. Kategoria . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.7. Ryzyko . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.8. Możliwe usprawnienia . . . . . . . . . . . . . . . . . .
3.2.9. Właściciel . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.10. Możliwe rozwinięcia . . . . . . . . . . . . . . . . . . .
3.3. Wyeksportowanie wybranych produktów do Katalogu . . . .
3.3.1. Krótki opis . . . . . . . . . . . . . . . . . . . . . . . .
3.3.2. Cele . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.3. Wydajność . . . . . . . . . . . . . . . . . . . . . . . .
3.3.4. Warunki wstępne . . . . . . . . . . . . . . . . . . . . .
3.3.5. Czynności . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.6. Kategoria . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.7. Ryzyko . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.8. Możliwe usprawnienia . . . . . . . . . . . . . . . . . .
3.3.9. Właściciel . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.10. Możliwe rozwinięcia . . . . . . . . . . . . . . . . . . .
3.4. Wybór produktów, które mają być dostępne w Katalogu . . .
3.4.1. Krótki opis . . . . . . . . . . . . . . . . . . . . . . . .
3.4.2. Cele . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.3. Wydajność . . . . . . . . . . . . . . . . . . . . . . . .
3.4.4. Warunki wstępne . . . . . . . . . . . . . . . . . . . . .
3.4.5. Czynności . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.6. Kategoria . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.7. Ryzyko . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.8. Możliwe usprawnienia . . . . . . . . . . . . . . . . . .
3.4.9. Właściciel . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.10. Możliwe rozwinięcia . . . . . . . . . . . . . . . . . . .
3.5. Dodanie sklepu do katalogu . . . . . . . . . . . . . . . . . . .
3.5.1. Krótki opis . . . . . . . . . . . . . . . . . . . . . . . .
3.5.2. Cele . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5.3. Wydajność . . . . . . . . . . . . . . . . . . . . . . . .
3.5.4. Warunki wstępne . . . . . . . . . . . . . . . . . . . . .
3.5.5. Czynności . . . . . . . . . . . . . . . . . . . . . . . . .
3.5.6. Kategoria . . . . . . . . . . . . . . . . . . . . . . . . .
3.5.7. Ryzyko . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5.8. Możliwe usprawnienia . . . . . . . . . . . . . . . . . .
3.5.9. Właściciel . . . . . . . . . . . . . . . . . . . . . . . . .
3.5.10. Możliwe rozwinięcia . . . . . . . . . . . . . . . . . . .
3.6. Modyfikacja i usuwanie produktu . . . . . . . . . . . . . . . .
3.6.1. Krótki opis . . . . . . . . . . . . . . . . . . . . . . . .
5
. . . . .
. . . . .
. . . . .
w trybie
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . .
. . .
. . .
AR
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
41
41
41
42
42
42
42
43
43
43
43
44
44
44
44
44
44
44
45
45
46
46
46
46
46
46
46
47
47
47
47
47
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
50
50
3.6.2. Cele . . . . . . . . . . . . . . . . . . . . .
3.6.3. Wydajność . . . . . . . . . . . . . . . . .
3.6.4. Warunki wstępne . . . . . . . . . . . . . .
3.6.5. Czynności . . . . . . . . . . . . . . . . . .
3.6.6. Kategoria . . . . . . . . . . . . . . . . . .
3.6.7. Ryzyko . . . . . . . . . . . . . . . . . . .
3.6.8. Możliwe usprawnienia . . . . . . . . . . .
3.6.9. Właściciel . . . . . . . . . . . . . . . . . .
3.6.10. Możliwe rozwinięcia . . . . . . . . . . . .
3.7. Logowanie do katalogu . . . . . . . . . . . . . . .
3.7.1. Krótki opis . . . . . . . . . . . . . . . . .
3.7.2. Cele . . . . . . . . . . . . . . . . . . . . .
3.7.3. Wydajność . . . . . . . . . . . . . . . . .
3.7.4. Warunki wstępne . . . . . . . . . . . . . .
3.7.5. Czynności . . . . . . . . . . . . . . . . . .
3.7.6. Kategoria . . . . . . . . . . . . . . . . . .
3.7.7. Ryzyko . . . . . . . . . . . . . . . . . . .
3.7.8. Możliwe usprawnienia . . . . . . . . . . .
3.7.9. Właściciel . . . . . . . . . . . . . . . . . .
3.7.10. Możliwe rozwinięcia . . . . . . . . . . . .
3.8. Dodawanie nowego konta użytkownika Katalogu
3.8.1. Krótki opis . . . . . . . . . . . . . . . . .
3.8.2. Cele . . . . . . . . . . . . . . . . . . . . .
3.8.3. Wydajność . . . . . . . . . . . . . . . . .
3.8.4. Warunki wstępne . . . . . . . . . . . . . .
3.8.5. Czynności . . . . . . . . . . . . . . . . . .
3.8.6. Kategoria . . . . . . . . . . . . . . . . . .
3.8.7. Ryzyko . . . . . . . . . . . . . . . . . . .
3.8.8. Możliwe usprawnienia . . . . . . . . . . .
3.8.9. Właściciel . . . . . . . . . . . . . . . . . .
3.8.10. Możliwe rozwinięcia . . . . . . . . . . . .
3.9. Instrukcja „Jak korzystać z aplikacji” . . . . . .
3.9.1. Krótki opis . . . . . . . . . . . . . . . . .
3.9.2. Cele . . . . . . . . . . . . . . . . . . . . .
3.9.3. Wydajność . . . . . . . . . . . . . . . . .
3.9.4. Warunki wstępne . . . . . . . . . . . . . .
3.9.5. Czynności . . . . . . . . . . . . . . . . . .
3.9.6. Kategoria . . . . . . . . . . . . . . . . . .
3.9.7. Ryzyko . . . . . . . . . . . . . . . . . . .
3.9.8. Możliwe usprawnienia . . . . . . . . . . .
3.9.9. Właściciel . . . . . . . . . . . . . . . . . .
3.9.10. Możliwe rozwinięcia . . . . . . . . . . . .
3.10. Wyszukiwanie obiektów . . . . . . . . . . . . . .
3.10.1. Krótki opis . . . . . . . . . . . . . . . . .
3.10.2. Cele . . . . . . . . . . . . . . . . . . . . .
3.10.3. Wydajność . . . . . . . . . . . . . . . . .
3.10.4. Warunki wstępne . . . . . . . . . . . . . .
3.10.5. Czynności . . . . . . . . . . . . . . . . . .
3.10.6. Kategoria . . . . . . . . . . . . . . . . . .
6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
55
55
55
55
55
55
56
3.10.7. Ryzyko . . . . . . . . . . . . . . .
3.10.8. Możliwe usprawnienia . . . . . . .
3.10.9. Właściciel . . . . . . . . . . . . . .
3.10.10.Możliwe rozwinięcia . . . . . . . .
3.11. Filtrowanie obiektów . . . . . . . . . . . .
3.11.1. Krótki opis . . . . . . . . . . . . .
3.11.2. Cele . . . . . . . . . . . . . . . . .
3.11.3. Wydajność . . . . . . . . . . . . .
3.11.4. Warunki wstępne . . . . . . . . . .
3.11.5. Czynności . . . . . . . . . . . . . .
3.11.6. Kategoria . . . . . . . . . . . . . .
3.11.7. Ryzyko . . . . . . . . . . . . . . .
3.11.8. Możliwe usprawnienia . . . . . . .
3.11.9. Właściciel . . . . . . . . . . . . . .
3.11.10.Możliwe rozwinięcia . . . . . . . .
3.12. Wyświetlanie listy kategorii . . . . . . . .
3.12.1. Krótki opis . . . . . . . . . . . . .
3.12.2. Cele . . . . . . . . . . . . . . . . .
3.12.3. Wydajność . . . . . . . . . . . . .
3.12.4. Warunki wstępne . . . . . . . . . .
3.12.5. Czynności . . . . . . . . . . . . . .
3.12.6. Kategoria . . . . . . . . . . . . . .
3.12.7. Ryzyko . . . . . . . . . . . . . . .
3.12.8. Możliwe usprawnienia . . . . . . .
3.12.9. Właściciel . . . . . . . . . . . . . .
3.12.10.Możliwe rozwinięcia . . . . . . . .
3.13. Wyświetlenie listy obiektów należących do
3.13.1. Krótki opis . . . . . . . . . . . . .
3.13.2. Cele . . . . . . . . . . . . . . . . .
3.13.3. Wydajność . . . . . . . . . . . . .
3.13.4. Warunki wstępne . . . . . . . . . .
3.13.5. Czynności . . . . . . . . . . . . . .
3.13.6. Kategoria . . . . . . . . . . . . . .
3.13.7. Ryzyko . . . . . . . . . . . . . . .
3.13.8. Możliwe usprawnienia . . . . . . .
3.13.9. Właściciel . . . . . . . . . . . . . .
3.13.10.Możliwe rozwinięcia . . . . . . . .
3.14. Wyświetlenie szczegółów obiektu . . . . .
3.14.1. Krótki opis . . . . . . . . . . . . .
3.14.2. Cele . . . . . . . . . . . . . . . . .
3.14.3. Wydajność . . . . . . . . . . . . .
3.14.4. Warunki wstępne . . . . . . . . . .
3.14.5. Czynności . . . . . . . . . . . . . .
3.14.6. Kategoria . . . . . . . . . . . . . .
3.14.7. Ryzyko . . . . . . . . . . . . . . .
3.14.8. Możliwe usprawnienia . . . . . . .
3.14.9. Właściciel . . . . . . . . . . . . . .
3.14.10.Możliwe rozwinięcia . . . . . . . .
3.15. Wyświetlenie galerii danego obiektu . . .
7
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
danej kategorii
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
56
56
56
56
56
56
57
57
57
57
57
58
58
58
58
58
58
58
58
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
61
62
62
62
62
62
62
63
3.15.1. Krótki opis . . . . . . .
3.15.2. Cele . . . . . . . . . . .
3.15.3. Wydajność . . . . . . .
3.15.4. Warunki wstępne . . . .
3.15.5. Czynności . . . . . . . .
3.15.6. Kategoria . . . . . . . .
3.15.7. Ryzyko . . . . . . . . .
3.15.8. Możliwe usprawnienia .
3.15.9. Właściciel . . . . . . . .
3.15.10.Możliwe rozwinięcia . .
3.16. Przypisanie do znacznika . . . .
3.16.1. Krótki opis . . . . . . .
3.16.2. Cele . . . . . . . . . . .
3.16.3. Wydajność . . . . . . .
3.16.4. Warunki wstępne . . . .
3.16.5. Czynności . . . . . . . .
3.16.6. Kategoria . . . . . . . .
3.16.7. Ryzyko . . . . . . . . .
3.16.8. Możliwe usprawnienia .
3.16.9. Właściciel . . . . . . . .
3.16.10.Możliwe rozwinięcia . .
3.17. Wyświetlenie obiektu w widoku
3.17.1. Krótki opis . . . . . . .
3.17.2. Cele . . . . . . . . . . .
3.17.3. Wydajność . . . . . . .
3.17.4. Warunki wstępne . . . .
3.17.5. Czynności . . . . . . . .
3.17.6. Kategoria . . . . . . . .
3.17.7. Ryzyko . . . . . . . . .
3.17.8. Możliwe usprawnienia .
3.17.9. Właściciel . . . . . . . .
3.17.10.Możliwe rozwinięcia . .
3.18. Robienie zdjęć trybu AR . . . .
3.18.1. Krótki opis . . . . . . .
3.18.2. Cele . . . . . . . . . . .
3.18.3. Wydajność . . . . . . .
3.18.4. Warunki wstępne . . . .
3.18.5. Czynności . . . . . . . .
3.18.6. Kategoria . . . . . . . .
3.18.7. Ryzyko . . . . . . . . .
3.18.8. Możliwe usprawnienia .
3.18.9. Właściciel . . . . . . . .
3.18.10.Możliwe rozwinięcia . .
3.19. Kupno produktu . . . . . . . .
3.19.1. Krótki opis . . . . . . .
3.19.2. Cele . . . . . . . . . . .
3.19.3. Wydajność . . . . . . .
3.19.4. Warunki wstępne . . . .
3.19.5. Czynności . . . . . . . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
AR
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
8
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
63
63
63
63
63
63
64
64
64
64
64
64
64
64
64
65
65
65
65
65
65
65
65
66
66
66
66
66
66
66
67
67
67
67
67
67
67
68
68
68
68
68
68
68
68
68
69
69
69
3.19.6. Kategoria . . . . . . .
3.19.7. Ryzyko . . . . . . . .
3.19.8. Możliwe usprawnienia
3.19.9. Właściciel . . . . . . .
3.19.10.Możliwe rozwinięcia .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
69
69
69
69
69
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
71
71
71
71
73
73
74
5. Opis zawartości pakietu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
6. Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
4. Organizacja i przebieg prac
4.1. Organizacja prac . . . . .
4.2. Podział prac . . . . . . . .
4.2.1. Filip Daca . . . . .
4.2.2. Maciej Kozieł . . .
4.2.3. Paweł Nowosad . .
4.2.4. Łukasz Siczek . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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 po15
ś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.
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.
Łatwy zakup produktów.
Możliwość zweryfikowania rzeczywistego wyglądu produktu w pomieszczeniu.
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.
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.
Łatwe zarządzanie produktami w katalogu.
Powiększeniu grupy odbiorców.
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
Administrator Sklepu chce automatycznie dodać przygotowane produkty do Katalogu.
Cele
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
3. Aktor rozpoczyna wyszukiwanie poprzez naciśnięcie przycisku z obrazkiem w kształcie
lupy, co powoduje wysłanie zapytania z Aplikacji Klienckiej do Katalogu Produktów o
wyszukanie produktów i pobranie widoków.
4. Po odebraniu wyników zostanie wyświetlony w Aplikacji Klienckiej nowy widok zawierający wszystkie wyszukane produkty.
2.4.4. Wyświetlenie obiektu w Widoku AR
Krótki opis
Wyświetlanie obiektów wykorzystujące Rozszerzoną Rzeczywistość zostało zrealizowane
przy użyciu Kontrolera AR, który został zaprojektowany specjalnie do realizacji tego zadania.
1. Użytkownik skierował kamerę telefonu na znacznik.
2. Odpowiedni komponent biblioteki Vuforia rozpoznaje zdefiniowany znacznik.
3. Obraz z kamery zostaje skonwertowany do formatu OpenGLa.
4. Obiekt 2D uprzednio przypisany do znacznika zostaje nałożony na obraz w formacie
OpenGL
5. Tak zmodyfikowany obraz jest wyświetlany na ekranie telefonu.
2.5. Dekompozycja logiczna systemu
2.5.1. Omówienie
Ogólny podział
Projekt można podzielić na trzy odrębne systemy: Moduł Integracyjny, Katalog Produktów oraz Aplikację Kliencką. Każdy z nich jest niezależny od pozostałych, a komunikacja
odbywa się poprzez odpowiednie API: Moduł ¡-¿ Katalog, oraz Katalog ¡- Aplikacja.
Dekompozycja Modułu Integracyjnego
• Interfejs Webowy, zawierający panel administratora,
• Moduł Komunikacji, do wymiany danych z Katalogiem Produktów,
• Kontroler Widoków,
• Kontroler Bazy Danych.
Dekompozycja Katalogu Produktów
Katalog produktów składa się z 4 bazowych komponentów:
• interfejs www, zawierający panel administratora,
• API do komunikacji z Katalogiem Produktów,
• API do komunikacji z Aplikacją Kliencką,
• system zarządzający danymi w Katalogu.
30
Dekompozycja Aplikacji Klienckiej
Aplikacja Kliencka składa się z 2 bazowych komponentów:
• Kontroler AR - obsługa wyświetlania obiektów w trybie Rozszerzonej Rzeczywistości,
• interfejs użytkownika wyświetlający informacje pobrane z Katalogu Produktów.
2.5.2. Najważniejsze komponenty
Katalog Produktów
Zadaniem klas zawartych w Interfejsie www jest udostępnianie strony internetowej, która
umożliwia zarządzanie produktami, dodanymi przez sklep, z poziomu Katalogu. Powyższe
klasy pełnią rolę pośrednika pomiędzy system zarządzającym produktami, a zalogowanym
użytkownikiem. Ich najważniejszym zadaniem jest udostępnienie możliwości zarządzania produktami sklepu z poziomu strony internetowej Katalogu. Główne funkcjonalności udostępnianie przez interfejs www to:
• dodawanie produktów,
• modyfikowanie produktów,
• usuwanie produktów.
Dodatkowo panel administratora będzie umożliwiał zarządzanie kategoriami, promowanymi
produktami i dostępnymi filtrami.
Zadaniem klas zawartych w API do komunikacji z Katalogiem Produktów jest obsługa
wszystkich zapytań i żądań wysyłanych przez Moduł Integracyjny. Powyższe klasy pełnią
rolę pośrednika pomiędzy systemem zarządzającym produktami, a Modułem Integracyjnym.
Ich najważniejszym zadaniem jest weryfikacja i zabezpieczenie wszystkich żądań przed nieautoryzowanym wykorzystaniem lub włamaniem. Główne funkcjonalności udostępnianie przez
API to:
• dodawanie produktów,
• modyfikowanie produktów,
• usuwanie produktów.
Szczegółowa specyfikacja powyższych funkcjonalności znajduje się w Załączniku ¡NUMER¿,
opisującym API.
Zadaniem klas zawartych w API do komunikacji z Aplikacją Kliencką jest udostępnianie informacji na temat kategorii i produktów aktualnie dostępnych w Katalogu Produktów
poprzez obsługę zapytań wysyłanych przez Aplikację Kliencką. Powyższe klasy pełnią rolę
pośrednika pomiędzy systemem zarządzającym danymi, a Aplikacją Kliencką. Ich najważniejszym zadaniem jest odbieranie zapytań, przekazanie ich do systemu z danymi, pobranie
odpowiedzi, przygotowanie i wysłanie otrzymanych danych. Główne funkcjonalności udostępnianie przez API to:
• wypisywanie kategorii,
• wypisywanie sklepów,
• wypisywanie produktów promowanych,
31
• pobieranie ogólnych opisów produktów,
• pobieranie detali produktów.
Szczegółowa specyfikacja powyższych funkcjonalności znajduje się w Załączniku ¡NUMER¿,
opisującym API.
Zadaniem klas zawartych w systemie zarządzającym danymi jest zarządzanie wszystkimi
danymi znajdującymi się w bazie danych. Powyższe klasy pełnią rolę nakładki na bazę danych,
tworzącą pewną abstrakcję, która umożliwia oddzielenie logiki obsługującej modele i bazę
danych niezależnie od reszty Systemu. Ich najważniejszym zadaniem jest realizacja na bazie
danych podstawowych operacji takich jak dodawanie, pobieranie, modyfikowanie i usuwanie
danych. Powyższe operacje są udostępniane dla następujących danych:
• produkty,
• kategorie,
• użytkownicy,
• role użytkowników.
Aplikacja Kliencka
Zadaniem klas zawartych w obsłudze wyświetlania obiektów AR jest zarządzanie podpiętymi produktami do widoku oraz nakładanie ich na wyświetlany obraz z kamery. Wszystkie
potrzebne informacje na temat dodanych produktów komponent pobiera z interfejsu wyświetlającego dane pobrane z Katalogu. Główne funkcjonalności udostępnianie przez widok AR
to:
• powiązanie i odwiązanie produktu od znacznika,
• wykrywanie pozycji znaczników na obrazie i nakładanie na obraz przypiętych produktów na odpowiednich współrzędnych,
• umożliwienie przesuwanie zdjęcia produktu względem pozycji znacznika za pomocą
przesunięć palca,
• nagrywanie obrazu z kamery wraz z widocznymi produktami w trybie wideo, a następnie
po zakończeniu nagrywania umożliwienie zapisu na telefon, lub wysłania na e-mail,
• umożliwienie przejścia do strony produktu w serwisie internetowym sklepu oraz możliwość wysłania adresu tej strony na e-mail podany przez użytkownika,
• wysłanie na e-mail użytkownika znaczników niezbędnych do wyświetlenia powiązanych
produktów.
Zadaniem klas zawartych w interfejsie użytkownika jest pobieranie z Katalogu i wyświetlanie informacji o produktach i kategoriach. Powyższy komponent jest odpowiedzialny za
przekazanie wszystkich niezbędnych informacji o powiązanych produktach ze znacznikami do
modułu zajmującego się widokiem AR. Klasy zawarte w tym komponencie pobierają za pomocą odpowiednich zapytań z API wszystkie dane potrzebne do wyświetlenia odpowiedniego
widoku, a następnie przetwarzają je tak, aby mogły zostać wyświetlone na telefonie. Dodatkowo odpowiadają za odpowiednie powiązanie przejść między widokami oraz dołączeniem do
nich odpowiednich danych. Główne funkcjonalności udostępnianie przez interfejs użytkownika
to:
32
• pobranie i wyświetlenie listy promowanych produktów,
• pobranie i wyświetlenie listy wszystkich kategorii,
• pobranie i wyświetlenie listy produktów z wybranej kategorii,
• pobranie i udostępnienie wszystkich filtrów zdefiniowanych dla danej kategorii,
• pobranie i wyświetlenie szczegółowych informacji i zdjęć wybranego produktu,
• umożliwienie wyszukiwania produktów po frazie,
• pobranie i wyświetlenie wyników wyszukiwania produktów dla danej frazy,
• umożliwienie przejścia do widoku AR,
• udostępnienie instrukcji obsługi.
Moduł Integracyjny
Głównym zadaniem Interfejsu Webowego jest umożliwienie komunikacji z użytkownikiem.
Wyświetla on komunikaty, prezentuje dane i pozwala administratorowi na wykonywanie poszczególnych akcji.
Moduł Komunikacyjny odpowiedzialny jest za komunikację Modułu Integracyjnego z Katalogiem Produktów. Jego kluczowa rola to przesyłanie i odbieranie odpowiednich komunikatów
do Katalogu. Komunikatem mogą być na przykład dane przedmiotów do wyeksportowania
lub potwierdzenie pomyślnej integracji.
Kontroler Widoków jest elementem częściowo związanym ze środowiskiem Magento i odpowiada za sterowanie Modułem Integracyjnym. Kontroler Widoków decyduje, w jaki sposób
odpowiedzieć na zapytanie skierowane do modułu. W zależności od zapytania może wykonać
różne akcje - posłużyć się Interfejsem Webowym do wyświetlenia danych, lub zlecić Modułowi
Komunikacyjnemu odpowiedź na dane żądanie.
Kontroler Bazy Danych to element, który umożliwia Modułowi Integracyjnemu komunikację
z bazą danych środowiska Magento. Odpowiada za modyfikację danych o Produktach oraz
filtrowanie zapytań do bazy.
2.6. Dekompozycja na procesy
W naszym systemie wyróżniamy 2 rozłączne grupy procesów, które komunikują się ze
sobą wewnątrz danej grupy:
• Moduł Integracyjny ↔ Katalog Produktów,
• Aplikacja Kliencka → Katalog Produktów.
Przyjrzyjmy się jak wygląda komunikacja między procesami w poszczególnych grupach.
2.6.1. Moduł Integracyjny ↔ Katalog Produktów
Moduł Integracyjny komunikuje się z Katalogiem produktów w celu synchronizacji ze
sklepem.
33
Dodawanie nowego sklepu do Katalogu
Proces w Katalogu Produktów odpowiedzialny za dodawanie sklepu do bazy komunikuje
się poprzez API z procesem Modułu, aby pobrać podstawowe informacje.
Pobieranie informacji o produktach
Proces w Katalogu Produktów odpowiedzialny za dodawanie produktów do bazy komunikuje się poprzez API z procesem Modułu, aby pobrać opisy produktów.
Aktualizowanie informacji o produkcie
Proces w Katalogu Produktów odpowiedzialny za aktualizowanie informacji o produkcie
komunikuje się poprzez API z procesem Modułu, aby pobrać aktualne dane.
2.6.2. Aplikacja Kliencka → Katalog Produktów
Aplikacja Kliencka komunikuje się z Katalogiem Produktów w celu pobrania niezbędnych informacji o kategoriach i produktach w celu wyświetlenia ich użytkownikowi aktualnie
korzystającemu z aplikacji.
Pobieranie informacji o produktach promowanych
Proces w Aplikacji Klienckiej odpowiedzialny za wyświetlenie produktów promowanych
komunikuje się poprzez API z procesem Katalogu, aby pobrać podstawowe informację o
wszystkich aktualnie promowanych produktach.
Pobieranie informacji o kategoriach
Proces Aplikacji Klienckiej odpowiedzialny za wyświetlenie kategorii komunikuje się poprzez API z procesem Katalogu, aby pobrać listę wszystkich dostępnych kategorii.
Pobieranie informacji o produktach z wybranej kategorii
Proces Aplikacji Klienckiej odpowiedzialny za wyświetlenie produktów w ramach wybranej kategorii komunikuje się poprzez API z procesem Katalogu, aby pobrać podstawowe
informacje o produktach oraz dostępnych filtry z wybranej kategorii.
Pobieranie szczegółowych informacji o produkcie
Proces Aplikacji Klienckiej odpowiedzialny za wyświetlenie widoku ze szczegółami produktu komunikuje się poprzez API z procesem Katalogu, aby pobrać szczegółowe informacje
oraz zdjęcia wybranego produktu.
Realizacja wyszukiwania produktów
Proces Aplikacji Klienckiej odpowiedzialny za wyświetlenie wyników wyszukiwania komunikuje się za pomocą API z procesem Katalogu, aby wysłać frazę wyszukiwania oraz pobrać
listę produktów, która jest wynikiem wyszukiwania dla wysłanej frazy.
34
Przypięcie produktu do znacznika AR
Proces Aplikacji Klienckiej odpowiedzialny za interfejs użytkownika komunikuje się z procesem Aplikacji Klienckiej odpowiedzialnym za wyświetlanie AR, aby przekazać wszystkie
niezbędne informacje o przypinanym produkcie.
2.7. Instalacja systemu
2.7.1. Instalacja aplikacji mobilnej
Wersja użytkownika
Instalacja gotowej aplikacji polega na pobraniu programu z oficjalnego sklepu Google Play.
W tym celu należy mieć telefon z systemem Android w wersji co najmniej 2.2 z dostępem do
Internetu.
Wersja deweloperska
Niezbędne oprogramowanie:
• Android SDK,
• GCC w wersji 4 oraz make,
• Android NDK,
• Vuforia SDK.
Wymienione powyżej oprogramowanie jest łatwo dostępne w Internecie na stronach producentów. Dodatkowo można tam znaleźć obszerną instrukcje instalacji narzędzi. Istotnym
ograniczeniem przy rozwijaniu aplikacji jest fakt, że biblioteka do Rozszerzonej Rzeczywistości nie działa na emulatorze, dlatego niezbędne jest posiadanie telefonu z odpowiednią wersją
Androida.
2.7.2. Publikacja Aplikacji Klienckiej do sklepu Google Play
W celu opublikowania aplikacji w sklepie należy wykonać następujące kroki:
1. Stworzenie specjalnego konta do publikacji aplikacji w sklepie Google Play. Założenie
konta wymaga wykonania następujących akcji:
• podanie nazwy developera,
• podanie adresu e-mail,
• zaakceptowanie umowy dotyczącej dystrybucji aplikacji developerów, której warunki muszą spełniać wszystkie publikowane systemy,
• uiszczenie opłaty rejestracyjnej w wysokości 25 $ .
2. Przetestowanie i upewnienie się, że system spełnia wszystkie podstawowe normy jakości
aplikacji.
3. Zweryfikowanie czy aplikacja działa poprawnie na wszystkich wybranych urządzeniach
i ekranach oraz czy został wybrany dla niej odpowiedni ” API level ”.
35
4. Przygotowanie materiałów promocyjnych.
5. Podpisanie aplikacji otrzymanym kluczem służącym do publikacji.
6. Skompilowanie aplikacji jako wersję produkcyjną do pliku o rozszerzeniu *.apk.
7. Wysłanie aplikacji jako darmowej do sklepu Google Play.
8. Skonfigurowanie opcji związanych z dostępnością aplikacji w poszczególnych krajach,
określenie zgodnych wersji systemu Android, wyspecyfikowanie dostępnych języków oraz
wybranie odpowiedniej kategorii wiekowej.
9. Wypełnienie formularza wymagającego podania m. in. typu oraz kategorii aplikacji.
10. Opublikowanie aplikacji w sklepie za pomocą użycia przycisku ” Publish ”.
2.7.3. Instalacja Katalogu Produktów
Instalacja Katalogu Produktów składa się z następujących kroków:
1. Założenie konta w usłudze Microsoft Azure. Potrzebne będą takie dane jak:
• imię i nazwisko (lub nazwa firmy),
• adres e-mail,
• dane karty kredytowej.
Sama rejestracja jest darmowa; opłaty naliczane są tylko za bieżące wykorzystanie poszczególnych zasobów.
2. Założenie bazy danych. Można to zrealizować np. w następujący sposób:
• zalogowanie się do portalu zarządzającego platformą Azure,
• kliknięcie na zakładkę ”SQL databases”,
• wybranie zakładki ”New”,
• wybranie opcji ”Quick Create”, gdzie podajemy nazwę bazy oraz subskrypcję, pod
którą ma być podpięta,
• potwierdzenie przyciskiem ”Create SQL database”.
3. Wysłanie aplikacji na serwer Azure. Aplikację można opublikować za pomocą Visual
Studio. Należy wtedy:
• otworzyć projekt,
• skonfigurować go dla założonej wcześniej bazy danych (plik ”web.config”),
• utworzyć projekt ”Web Site” poprzez portal Azure (analogicznie jak dla bazy
danych),
• po wejściu w projekt na portalu Azure, pobrać profil, klikając na ”Download publish profile”,
• zaimportować profil z poziomu Visual Studio (używając ”Visual Studio Publish
Web Application wizard”),
• ostatnim krokiem jest kliknięcie w przycisk ”Publish” w Visual Studio. Jeśli poprzednie kroki zostały wykonane prawidłowo, aplikacja powinna już znajdować się
na serwerze Microsoft Azure.
36
2.7.4. Instalacja Modułu Integracyjnego
Moduł Integracyjny wdrażany jest do systemu jako opcjonalny dodatek do istniejącego już
sklepu internetowego, który pozwoli na zaimportowanie produktów dostępnych w istniejącej
już bazie danych. Z tego względu do jego instalacji wymagany jest działający zrąb Magento
1.7, a wdrożenie ma charakter instalacji dodatkowej wtyczki (pluginu) do Magneto. Wtyczka ta modyfikuje bazę danych sklepu tak, aby mogła przechowywać dodatkowe informacje
potrzebne w systemie i umożliwia kontakt z Katalogiem. Instalacja przebiega półautomatycznie. Pliki źródłowe wtyczki instalowane są przez przygotowany skrypt instalacyjny, a inicjalne
zmiany w bazie danych musi wykonać sam administrator według instrukcji. Ponadto do pełnego wdrożenia Modułu Integracyjnego wymagane jest przeprowadzenie procedury wiążącej
Moduł Integracyjny z Katalogiem Produktów - procedura ta odbywa się półautomatycznie i
jest realizowana przez część Modułu odpowiedzialną za komunikację z Katalogiem.
2.8. Implementacja systemu
2.8.1. Omówienie
Poszczególne warstwy systemu są tworzone przez odpowiednie podsystemy, czyli:
• Moduł Integracyjny,
• Katalog Produktów,
• Aplikacja Kliencka.
Każdy z wymienionych podsystemów tworzy oddzielną i niezależną warstwę. System został
podzielony na takie warstwy, ponieważ przebieg pracy każdego z wymienionych podsystemów
stanowi integralną i wewnętrzną całość oraz większość określonych dla niego funkcjonalności
realizuje samodzielnie. Komunikacja między poszczególnymi podsystemami jest zaprojektowana w ten sposób, aby wymiana informacji była jak najmniejsza oraz całkowicie niezależna
od zastosowanych rozwiązań i technologii w każdym z podsystemów.
Zakres danej warstwy jest jasno określony poprzez granice należącego do niej podsystemu.
Do zaimplementowania poszczególnych podsystemów zostały użyte następujące języki i
technologie:
1. Moduł Integracyjny:
• język PHP,
• system sklepowy Magento.
2. Katalog Produktów:
• język Visual Basic,
• zrąb .NET,
• chmura Microsoft Windows Azure.
3. Aplikacja Kliencka:
•
•
•
•
•
język Java,
język C++,
system Android,
biblioteka ActionBarSherlock,
biblioteka Vuforia.
37
2.8.2. Warstwy
Szczegółowy opis poszczególnych warstw, czyli tak naprawdę podsystemów znajduje się
w rozdziale o dekompozycji logicznej systemu.
2.9. Przechowywane dane
2.9.1. Dane przechowywane po stronie Modułu Integracyjnego
Moduł Integracyjny, jako wtyczka do systemu Magento, również posiada swój niewielki zestaw danych, który przechowuje. Przy czym jego realizacja nie wychodzi poza ramy
projektowe systemu Magento.
Moduł Integracyjny rozszerza jedynie model danych dostarczany przez Magento, o dodatkowe informacje dotyczące produktów (tekstura używana w Trybie AR, dostępność w
katalogu, wymiary itp.). Ponadto sam Moduł przechowuje również w bazie Magento dane
dotyczące Katalogu Produktów. Informacje te są potrzebne przy komunikacji z Katalogiem
oraz w celu zapewnienia mechanizmów bezpieczeństwa.
2.9.2. Dane przechowywane po stronie Katalogu Produktów
Dane przechowywane przez Katalog Produktów możemy podzielić w następujący sposób:
• informacje o użytkownikach: login, hash z hasła oraz ich uprawnienia,
• informacje o sklepach: nazwa, opis, adres, spis produktów,
• informacje o produktach, importowane z Modułu Integracyjnego lub wprowadzane ręcznie: nazwa, opis, zdjęcia, tekstury itp.
Wszystkie dane przechowywane są w relacyjnej bazie danych, utrzymywanej na serwerach
Microsoft Azure.
2.10. Wydajność systemu
Ponieważ projekt składa się z trzech odrębnych systemów, omówimy zagadnienie wydajności oddzielnie dla każdego z nich.
2.10.1. Moduł Integracyjny
Wydajność w pełni zależy od użytego przez użytkownika zrębu. W przypadku zaimplementowanego przez nas Modułu Integracyjnego do zrębu Magento wydajność spełniła
wszystkie określone kryteria.
2.10.2. Katalog Produktów
Katalog Produktów jest aplikacją zainstalowaną na serwerach Microsoft Azure, które zapewniają automatyczną skalowalność. Aplikacja powinna być w stanie obsłużyć jednocześnie
zapytania nawet od 10 000 użytkowników.
38
2.10.3. Aplikacja Kliencka
Po stronie Aplikacji Klienckiej zostały zidentyfikowane dwa moduły, dla których wydajność może być problemem.
1. Komunikacja z katalogiem produktów:
• Cała komunikacja przez sieć jest kompresowana, aby zminimalizować transfer danych. Wyniki zapytań są też tymczasowo zapisywane, aby uniknąć wielokrotnego
pobierania tych samych danych.
2. Widok AR:
• Jest to najcięższy (w sensie obliczeniowym) moduł Aplikacji Klienckiej. Używamy
do tego biblioteki zewnętrznej, więc nie mamy dużego wpływu na jej wydajność.
Jednak po przeprowadzeniu wstępnych testów na urządzeniach, wydaje się, że
specjalna optymalizacja nie będzie potrzebna.
2.11. Jakość
2.11.1. Wydajność i Skalowalność
Zapewniona przez mechanizmy Microsoft Azure.
2.11.2. Niezawodność
Dostawca Azure’a, firma Microsoft, zapewnia dostępność serwera przez najmniej 99,9 %
czasu w każdym miesiącu.
2.11.3. Bezpieczeństwo
Bezpieczeństwo przechowywania danych zapewnia Microsoft Azure. Natomiast w celu
zapewniania bezpiecznej komunikacji pomiędzy częściami systemu została wykorzystana infrastruktura klucza publicznego oraz szyfrowanie i podpisywanie wiadomości.
39
Rozdział 3
Biznesowe przypadki użycia
3.1. Wprowadzenie
W poniższym rozdziale zebrano i szczegółowo omówiono wszystkie biznesowe przypadki
użycia Systemu, oraz aktorów w nich występujących. Opisane zostały czynności składające
się na korzystanie z oferowanych usług.
Opis jest pozbawiony technicznych szczegółów i nie zawiera informacji na temat implementacji systemu. Przedstawia przebiegi i efekty korzystania z poszczególnych funkcjonalności.
3.1.1. Schemat przypadku użycia
Krótki opis
Skrócony opis danego przypadku użycia oraz aktorów z nim związanych.
Cele
To, co chce osiągnąć aktor, realizując dany przypadek użycia.
Wydajność
Miary wydajności danego przypadku użycia i kryteria akceptacji wyrażone w tych miarach.
Warunki wstępne
Warunki, które muszą być spełnione, aby aktor mógł przystąpić do wykonywania danego
przypadku użycia.
Czynności
Ciąg czynności wykonywanych w ramach danego przypadku użycia. Zawiera ścieżki podstawowe oraz alternatywne, wynikłe ze specyficznych warunków.
Kategoria
Przyporządkowanie przypadku użycia do jednej z następujących kategorii: „Podstawowy”,
„Pomocniczy”, „Administracyjny”.
41
Ryzyko
Negatywne skutki, jakie może przynieść wdrożenie lub wykonywanie danego przypadku
użycia.
Możliwe usprawnienia
Opis potencjalnych możliwości rozwoju danego przypadku użycia.
Możliwe rozwinięcia
Wskazanie i nazwanie miejsc, w których przebieg wykonania przypadku rozwidla się na
więcej niż jedną ścieżkę.
3.2. Wzbogacenie (modyfikacja) produktu o informacje wymagane w trybie AR
3.2.1. Krótki opis
Aby produkt oferowany przez sklep mógł być zamieszczony w Katalogu Produktów, gdzie
następnie zostanie użyty do przekazania Aplikacji Klienckiej w celu prezentacji w trybie AR,
musi zostać opatrzony dodatkowymi informacjami takimi jak reprezentująca go tekstura. Aktor - Administrator Sklepu powinien w tym celu zaktualizować dane wybranych produktów.
Ten przypadek użycia jest szczególnym przypadkiem edycji danych o produkcie dostępnym w
Sklepie. Identycznie przebiega modyfikacja dodatkowych danych przypisanych do przedmiotu.
3.2.2. Cele
Celem tych czynności jest nadanie wybranemu produktowi cech obiektu, który Aplikacja
Kliencka potrafi prezentować w trybie AR. Po zrealizowaniu przypadku użycia, przedmiot
może zostać umieszczony w Katalogu Produktów i zaprezentowany przez Aplikację Kliencką.
W przypadku edycji przedmiotu celem może być modyfikacja owych danych.
3.2.3. Wydajność
Szybkość dostępu do strony edycji przedmiotu
Aby Aktor mógł uzupełnić informacje o przedmiocie o dodatkowe dane, musi dostać się do
strony edycji przedmiotu w panelu administracyjnym Sklepu. Czas, jaki jest potrzebny, zależy
tylko i wyłącznie od zrębu Sklepu, na którym jest on oparty, gdyż rozszerzające informacje
wprowadzane są w dodatkowe pola standardowego formularza edycji przedmiotu dla wybranego zrębu. Moduł Integracyjny pod tym względem nie pogarsza czasu pracy Administratora
Sklepu.
Czas wypełniania formularza
Aktor uzupełnia dane o przedmiocie wypełniając pola formularza. W tym przypadku
formularz, na którym pracuje Aktor, jest jedynie rozszerzonym przez Moduł Integracyjny
standardowym formularzem edycji bądź dodawania produktu do Sklepu. Czas wypełniania
formularza jest więc niewiele dłuższy od czasu modyfikacji przedmiotu w Sklepie bez Modułu
Integracyjnego (Aktor musi jedynie wypełnić dodatkowe pola).
42
3.2.4. 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.
3.2.5. Czynności
Czynności podstawowe
1. Aktor wchodzi na stronę internetową swojego Sklepu. (*)
2. Aktor loguje się do panelu administratora. (*)
3. Aktor przechodzi do edycji wybranego przedmiotu. (*)
4. Aktor wypełnia dodatkowe pola formularza edycji przedmiotu.
• tekstura przedmiotu - pole typu plikowego - po naciśnięciu przycisku „Choose
file”, Aktor za pośrednictwem okna dialogowego wyboru pliku, dokonuje wyboru
tekstury spośród plików dostępnych na jego dysku twardym
• czy przedmiot powinien być dostępny w trybie AR - zaznaczenie YES lub NO
5. Na końcu zapisuje wprowadzone zmiany. (*)
Czynności alternatywne
3 Aktor dostaje się do formularza edycji przedmiotu przez czynność dodania nowego
przedmiotu do Sklepu. (*)
4 Aktor modyfikuje wprowadzone wcześniej dane dodatkowe o przedmiocie (*)
3.1 Aktor dokonuje modyfikacji podstawowych pól formularza (*)
4.1 Aktor wybiera zbyt duży plik jako teksturę.
6 System informuje o błędzie i prosi o wybranie innego pliku - powrót do wypełniania
formularza.
4 Nie wybrał żadnego pliku tekstury w formularzu, ale zaznaczył, że przedmiot ma występować w trybie AR.
6 System informuje o błędzie i prosi o wybranie pliku lub rezygnącję z trybu AR.
(*) - czynności zależne od używanego zrębu
3.2.6. Kategoria
Administracyjny.
3.2.7. Ryzyko
Przypadek użycia w dużym stopniu pokrywa się ze standardowym przypadkiem edycji
danych o przedmiocie w Sklepie. Ryzykiem może być wprowadzenie niepoprawnych danych,
lub wybranie nieodpowiedniej tekstury. W takim przypadku dane można zawsze poprawić
ponownie wykonując wszystkie czynności.
43
3.2.8. Możliwe usprawnienia
Usprawnieniem eliminującym ryzyko wybrania złej tekstury może być umieszczenie aktywnego podglądu wybranego pliku na stronie formularza po uprzednim przesłaniu pliku bez
zapisywania danych.
3.2.9. Właściciel
Filip Daca.
3.2.10. Możliwe rozwinięcia
Rezygnacja z modyfikacji
Aktor może w dowolnym momencie wypełniania formularza zrezygnować z modyfikacji
przedmiotu i zaniechać wprowadzone zmiany - wystarczy, że nie zapisze wprowadzonych
zmian.
3.3. Wyeksportowanie wybranych produktów do Katalogu
3.3.1. 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.
3.3.2. Cele
Umieszczenie wybranych produktów ze Sklepu w Katalogu Produktów, bądź aktualizacja
danych o wybranych przedmiotach, jeśli już znajdują się one w Katalogu.
3.3.3. Wydajność
Szybkość dostępu do strony wyboru przedmiotów
Aby Aktor mógł wyeksportować wybrane produkty musi przejść do strony wyboru produktów. W tym przypadku efektywność zależy po części od zrębu, na którym zrealizowany
jest Sklep - mianowicie Aktor z panelu administracyjnego Sklepu musi dostać się do widoku
eksportu przedmiotów dostarczanego przez Moduł Integracyjny. Administrator Sklepu może
to uczynić przez wybór odpowiedniej opcji z menu panelu administracyjnego lub wpisanie
odpowiedniego adresu widoku bezpośrednio w polu adresu przeglądarki. W pierwszym przypadku szybkość zależy tylko i wyłącznie od interfejsu zrębu, a w drugim od biegłości Aktora
(przy rezygnacji z wygody / intuicyjności). Można stwierdzić, że w tej kategorii Moduł Integracyjny nie pogarsza czasu pracy Administratora Sklepu.
Wybór konkretnych produktów
Aktor musi zadecydować, które produkty z listy są przeznaczone do eksportu. Wszystkie
produkty na liście są już przystosowane do prezentacji w trybie AR (poprzedni przypadek).
Wybór dokonywany jest poprzez zaznaczenie pola przy wybranym elemencie listy przedmiotów. Alternatywnie - Aktor może zaznaczyć lub odznaczyć wszystkie przedmioty na liście,
44
klikając na przycisk „Zaznacz wszystkie”.
Odnalezienie wybranego przedmiotu na liście zależy od długości listy. Czas w jakim użytkownik odnajduje interesujące go obiekty na liście 100 produktów wynosi ok. 10 sekund.
Komunikacja z Katalogiem
Aktor po dokonaniu wyboru przedmiotów i potwierdzeniu wyboru czeka na odpowiedź
Katalogu o pomyślnym dodaniu obiektów. Czas ten zależy w dużym stopniu od szybkości
łącza internetowego oraz szybkości, z jaką Katalog Produktów jest w stanie obsłużyć zapytanie. Moduł Integracyjny wysyła zapytania ze względnie stałą prędkością i nie wpływa to
znacznie na dane kryterium.
Czas realizacji jednego zapytania (w zależności od obciążenia łącza oraz Katalogu) nie przekracza 10 sekund.
3.3.4. 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 (poprzedni przypadek użycia).
3.3.5. Czynności
Czynności podstawowe
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. (*)
4. Aktor zaznacza na liście przedmiotów te, które chce wyeksportować do Katalogu.
5. Na końcu za pomocą przycisku „Export” eksportuje wybrane produkty do Katalogu.
6. Po pomyślnym dodaniu obiektów do Katalogu, System wyświetla Aktorowi informację
o powodzeniu operacji.
Czynności alternatywne
3 Aktor dostaje się do widoku Modułu Integracyjnego bezpośrednio przez podanie stosownego adresu internetowego. (*)
3.1 Aktor decyduje się usunąć wybrane przedmioty z listy, jednocześnie czyniąc je niedostępnymi dla eksportu.
45
3.2 W tym celu używa przycisku „Disable AR”.
6 Aktor otrzymuje informację o niepowodzeniu eksportu i listę przedmiotów, których nie
udało się dodać do Katalogu.
6.1 Aktor może podjąć ponowną próbę wyeksportowania danych przedmiotów.
6 Aktor otrzymuje informację o niepowodzeniu eksportu ze względu na błąd autoryzacji.
6.1 Aktor powinien skontaktować się z administratorem Katalogu Produktów, aby zweryfikować, czy jego Sklep jest dodany do bazy danych Katalogu.
(*) - czynności zależne od używanego zrębu
3.3.6. Kategoria
Administracyjny.
3.3.7. Ryzyko
Przypadkiem ryzykownym może być zalanie Katalogu Produktów przez zbyt dużą, niemożliwą do obsłużenia w danym momencie serią żądań eksportu. Ryzyko jest jednak minimalizowane przez utrzymywanie mechanizmów autoryzacji i uwierzytelniania.
Innym przypadkiem jest wyeksportowanie nieodpowiednich przedmiotów przez pomyłkę. W
takim przypadku Aktor może ponowić wszystkie kroki, aby wysłać właściwe przedmioty, a
te, których nie powinno być w Katalogu, może usunąć z listy (następny przypadek użycia).
3.3.8. Możliwe usprawnienia
Dla zwiększenia wydajności lista przedmiotów może być podzielona na podstrony, pogrupowana według kategorii lub sortowana według wybranych kryteriów. Dobrym usprawnieniem
byłoby dodanie możliwości wyszukiwania na liście przedmiotów.
3.3.9. Właściciel
Filip Daca.
3.3.10. Możliwe rozwinięcia
Przejście do edycji przedmiotu
Aktor przeglądając listę przedmiotów gotowych do eksportu, może przejść do ekranu
edycji wybranego obiektu, klikając w jego odnośnik.
3.4. Wybór produktów, które mają być dostępne w Katalogu
3.4.1. Krótki opis
Administrator Sklepu (Aktor) decyduje, które produkty mają być eksportowane i aktualizowane w Katalogu Produktów. Katalog produktów może zażądać od Sklepu podania danych
przedmiotów, które są przystosowane do prezentacji w trybie AR i są oznaczone jako gotowe
do eksportu.
46
3.4.2. Cele
Zarządzanie dostępnością produktów dla Katalogu. Aktor może dodać lub usunąć produkt
z listy przeznaczonych do eksportu. Po zrealizowaniu celu jedynie produkty wybrane przez
Aktora będą dostępne podczas eksportu produktów do Katalogu.
3.4.3. Wydajność
Tak jak w przypadku Edycji i Eksportu.
3.4.4. 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,
• Co najmniej jeden produkt przystosowany do prezentacji w trybie AR (1 przypadek
użycia - w przypadku usunięcia z listy).
3.4.5. Czynności
Czynności podstawowe
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. (*)
4. Aktor zaznacza na liście przedmiotów te, których nie chcę udostępniać w Katalogu.
5. Na końcu za pomocą przycisku ”Disable AR” usuwa przedmioty z listy, przez co informuje Moduł Integracyjny o ich niedostępności dla Katalogu.
Czynności alternatywne
3 Aktor dostaje się do widoku Modułu Integracyjnego bezpośrednio przez podanie stosownego adresu internetowego. (*)
4 Aktor decyduje się wyeksportować wybrane przedmioty do Katalogu.
4.1 W tym celu postępuje zgodnie z przypadkiem użycia dotyczącym eksportu.
4 Aktor decyduje się dodać nowe przedmioty do listy.
4.1 W tym celu postępuje zgodnie z przypadkiem użycia edycji danych.
(*) - czynności zależne od używanego zrębu
3.4.6. Kategoria
Administracyjny.
47
3.4.7. Ryzyko
Przypadkiem ryzykownym może być pomyłkowe usunięcie produktów, które powinny być
dostępne podczas eksportów. Aby naprawić ten błąd, Aktor może postępować zgodnie z
przypadkiem użycia dotyczącym edycji danych, aby przywrócić dostępność porządanych produktów.
3.4.8. Możliwe usprawnienia
Dla zwiększenia wydajności lista przedmiotów może być podzielona na podstrony, pogrupowana według kategorii lub sortowana według wybranych kryteriów. Dobrym usprawnieniem
byłoby dodanie możliwości wyszukiwania na liście przedmiotów.
3.4.9. Właściciel
Filip Daca.
3.4.10. Możliwe rozwinięcia
Eksport produktów do katalogu
Aktor przeglądając listę przedmiotów może zdecydować się na natychmiastowy eksport
produktów do Katalogu - w tym celu postępuje zgodnie z przypadkiem dotyczącym eksportu.
Przejście do edycji przedmiotu
Aktor przeglądając listę przedmiotów gotowych do eksportu, może przejść do ekranu
edycji wybranego obiektu, klikając w jego odnośnik.
3.5. Dodanie sklepu do katalogu
3.5.1. Krótki opis
Administrator Katalogu chce powiązać nowy sklep z aplikacją. Jeśli akcja zakończy się
pomyślnie, administratorzy Sklepu będą mogli udostępniać swoje produkty za pośrednictwem
Katalogu.
3.5.2. Cele
Powiązanie Sklepu z Katalogiem, umożliwiające administratorom Sklepu wykonywanie
kolejnych akcji w jego kontekście.
3.5.3. Wydajność
Cały proces nie powinien zająć więcej niż minutę (przy założeniu, że moduł integracyjny
został odpowiednio skonfigurowany).
3.5.4. Warunki wstępne
• Po stronie sklepu musi zostać wcześniej skonfigurowany moduł integracyjny,
• Musi być on dostępny pod publicznym adresem url.
48
3.5.5. Czynności
Czynności podstawowe
1. Zalogowany administrator katalogu wchodzi na stronę zarządzania sklepami.
2. Wybiera opcję „Create New”.
3. Wpisuje adres url sklepu.
4. Opcjonalnie, może podać opis i ścieżkę do logo Sklepu.
5. Klika przycisk „Create”.
6. Sklep zostaje dodany do Katalogu.
Czynności alternatywne
1. Administrator podał niepoprawny adres url sklepu. Akcja się nie powiedzie. Aby kontynuować należy podać poprawny adres.
2. Moduł Integracyjny Sklepu został niepoprawnie skonfigurowany. Aby kontynuować, należy poprawnie zainstalować i skonfigurować Moduł Integracyjny.
3. Administrator nie zapisze akcji. Sklep nie zostanie wtedy dodany i jeśli strona z potwierdzeniem została zamknięta, trzeba powtórzyć proces od nowa.
3.5.6. Kategoria
Podstawowy.
3.5.7. Ryzyko
Jeden sklep może zostać dodany więcej niż jeden raz. Jest to jednak mało prawdopodobne,
gdyż wymaga podania alternatywnego adresu prowadzącego do tego samego sklepu.
3.5.8. Możliwe usprawnienia
Można opracować mechanizm dodawania wcześniej zapowiedzianych Sklepów, nie wymagający pomocy administratora Katalogu.
3.5.9. Właściciel
Maciej Kozieł.
3.5.10. Możliwe rozwinięcia
Zaimportowanie produktów ze Sklepu
Po pomyślnym powiązaniu Sklepu z Katalogiem użytkownik może od razu przejść do
importu produktów udostępnionych przez Moduł Integracyjny.
49
3.6. Modyfikacja i usuwanie produktu
3.6.1. Krótki opis
Administrator Sklepu chce zmodyfikować lub usunąć konkretny produkt.
3.6.2. Cele
Udostępnienie administratorom Sklepów mechanizmu zarządzania produktami.
3.6.3. Wydajność
Podobnie jak przy dodawaniu pojedynczego produktu: proces zajmie tyle czasu, ile jest
potrzebne na wprowadzenie nowych danych. W przypadku usuwania, jest to tylko kliknięcie
jednego przycisku w formularzu.
3.6.4. Warunki wstępne
Brak.
3.6.5. Czynności
Czynności podstawowe
1. Administrator sklepu loguje się do katalogu produktów.
2. Wchodzi na stronę zarządzania produktami i przechodzi do wybranego produktu.
3. W zależności, czy chce zmodyfikować, czy usunąć produkt:
(a) Klika w przycisk „Edit” po czym zmienia wartości pól opisujących produkt,
(b) Klika w przycisk „Delete”.
4. Potwierdza zmiany:
(a) Klikając w przycisk „Save”,
(b) Klikając w przycisk „Delete” pod detalami produktu.
Czynności alternatywne
1. Administrator wprowadził błędne dane w formularzu. Przy odpowiednim polu pojawia
się informacja o błędzie. Należy poprawić dane i ponownie kliknąć w przycisk „Save”.
3.6.6. Kategoria
Podstawowy.
3.6.7. Ryzyko
Brak.
3.6.8. Możliwe usprawnienia
Możliwość usuwania wielu produktów jednocześnie.
50
3.6.9. Właściciel
Maciej Kozieł.
3.6.10. Możliwe rozwinięcia
Brak.
3.7. Logowanie do katalogu
3.7.1. Krótki opis
Użytkownik chce zalogować się do katalogu. Niezależnie od typu użytkownika, panel logowania jest wspólny.
3.7.2. Cele
Udostępnienie mechanizmu autoryzacji użytkowników, pozwalający wykonywać im akcje
zdefiniowane dla ich roli.
3.7.3. Wydajność
Widok logowania zawiera tylko dwa pola: username i password. Proces nie powinien zająć
użytkownikowi więcej niż minutę. Podobnie dla widoku resetowania hasła.
3.7.4. Warunki wstępne
• Zalogować się mogą tylko użytkownicy, dla których zostało dodane konto przez administratora katalogu.
3.7.5. Czynności
Czynności podstawowe
1. Użytkownik wchodzi na stronę logowania.
2. Uzupełnia pola „Username” i „Password”, po czym klika w przycisk „Log in”.
3. Po pomyślnym zalogowaniu ładowany jest domyślny widok użytkownika.
Czynności alternatywne
1. Użytkownik podał niepoprawny login oraz/lub hasło. Wyświetlany jest stosowny komunikat. Należy podać poprawne dane i ponownie nacisnąć przycisk „Log in”.
3.7.6. Kategoria
Podstawowy.
3.7.7. Ryzyko
Brak.
51
3.7.8. Możliwe usprawnienia
Możliwość logowania zewnętrznego, np. poprzez portal Google.
3.7.9. Właściciel
Maciej Kozieł.
3.7.10. Możliwe rozwinięcia
Wybór kolejnej akcji
Po zalogowaniu użytkownik dostaje dostęp do wykonywania wszystkich akcji, przypisanych do jego roli.
3.8. Dodawanie nowego konta użytkownika Katalogu
3.8.1. Krótki opis
Administrator katalogu chce dodać nowego użytkownika. Jest to konieczna akcja przy dodawaniu nowego sklepu do katalogu (należy utworzyć co najmniej jedno konto administratora
sklepu).
3.8.2. Cele
Udostępnienie mechanizmu dodawania nowych użytkowników Katalogu.
3.8.3. Wydajność
Akcja wymaga wypełnienia jednego formularza zawierającego dane nowego użytkownika.
Cały proces nie powinien zająć więcej niż 2 minuty.
3.8.4. Warunki wstępne
• Musi istnieć konto administratora (należy jest utworzyć przy instalacji),
• Nowych użytkowników dodawać może tylko już poprzednio zarejestrowany administrator katalogu.
3.8.5. Czynności
Czynności podstawowe
1. Administrator katalogu wchodzi na stronę zarządzania użytkownikami.
2. Klika w przycisk „Create New”, który przekieruje go do odpowiedniej strony.
3. Wypełnia w formularzu pola:
(a) Username,
(b) Password.
4. Klika w przycisk „Create”.
5. Tak utworzonego użytkownika można przypisać do roli administratora Sklepu.
52
Czynności alternatywne
1. Administrator podał istniejący już w systemie login, lub zostawił to pole puste. Należy
podać inny, unikatowy login i ponownie kliknąć w przycisk „Create New”.
2. Podobnie dla pozostałych pól; może pojawić się wiadomość informująca o niepoprawnym wypełnieniu formularza. Należy poprawić wskazany wpis w opisany sposób.
3.8.6. Kategoria
Podstawowy.
3.8.7. Ryzyko
Po zainstalowaniu aplikacji tworzony jest pierwszy, domyślny administrator. Ze względów
bezpieczeństwa należy niezwłocznie zmienić hasło dostępu dla tego użytkownika.
3.8.8. Możliwe usprawnienia
Wysyłanie zaproszeń na adres e-mail nowego użytkownika, który może za jego pomocą
sam utworzyć swoje konto.
3.8.9. Właściciel
Maciej Kozieł.
3.8.10. Możliwe rozwinięcia
Brak.
3.9. Instrukcja „Jak korzystać z aplikacji”
3.9.1. Krótki opis
Tryb AR nie jest obecnie powszechnie wykorzystywany przez aplikacje mobilne. Wielu
użytkowników smartphonów nie interesuje się nowymi technologiami i może nie wiedzieć jak
korzystać z Rozszerzonej Rzeczywistości. Z tych powodów niezbędny jest poradnik opisujący
korzystanie z aplikacji.
3.9.2. Cele
Głównym zadaniem jest zapoznanie użytkownika z trybem AR. Po wykonaniu tego przypadku użycia Aktor powinien wiedzieć jak świadomie korzystać ze wszystkich możliwości
oferowanych przez aplikację.
3.9.3. Wydajność
Wszystkie niezbędne informacje są zapisane na stałe w aplikacji, stąd nie ma zdefiniowanych żadnych kryteriów wydajności.
53
3.9.4. Warunki wstępne
• Dostęp do Internetu.
3.9.5. Czynności
Czynności podstawowe
1. Aktor naciska przycisk „Print markers”, dowiaduje się czym są znaczniki (w szczególności zostaje poinformowany o konieczności ich wydrukowania).
2. Aktor naciska przycisk „Send markers by email”, podaje email. Znaczniki zostają wysłane pod wskazany adres.
3. Aktor naciska przycisk „Place markers”, dowiaduje się jak korzystać z wydrukowanych
znaczników.
4. Aktor naciska przycisk „Select objects”, dowiaduje się jak wybierać obiekty oraz jak
oglądać je w Trybie AR.
Czynności alternatywne
1. Użytkownik może naciskać przyciski w dowolnej kolejności.
2. Podany przez użytkownika adres email nie przejdzie składniowej weryfikacji.
3. Aktor zostanie poproszony o ponowne podanie emaila i otrzyma możliwość rezygnacji
z danej akcji.
3.9.6. Kategoria
Pomocniczy.
3.9.7. Ryzyko
• Braku dostępu do Internetu spowoduje, że znaczniki nie zostaną wysłane na wskazany
adres email,
• Podanie nieistniejącego adresu email (poprawnego składniowo) spowoduje niepowodzenie akcji przy jednoczesnym braku informacji o błędzie.
3.9.8. Możliwe usprawnienia
• Weryfikacja czy podany email istnieje,
• Możliwość konfiguracji treści instrukcji obsługi.
3.9.9. Właściciel
Łukasz Siczek, Paweł Nowosad.
3.9.10. Możliwe rozwinięcia
Brak.
54
3.10. Wyszukiwanie obiektów
3.10.1. Krótki opis
Aplikacja oferuje bardzo dużą liczbę różnych obiektów do wyboru, przez co użytkownik
może mieć problem ze znalezieniem konkretnego produktu, którym jest zainteresowany. Z
tego powodu w aplikacji Aktor ma możliwość wyszukiwania obiektów po zadanej przez niego
frazie. Głównym celem wyszukiwania jest zaprezentowanie obiektów możliwie najdokładniej
spełniających oczekiwania dzięki czemu zostanie skrócony czas potrzebny na wybranie odpowiedniego produktu.
3.10.2. Cele
Aktor chce znaleźć wszystkie produkty powiązane z jakąś konkretną frazą.
3.10.3. Wydajność
Czas wpisania frazy w pole wyszukiwania
W celu rozpoczęcia wyszukiwania Aktor musi określić frazę, do której zostaną dopasowane
wyniki wyszukiwania. Czas wykonania tej czynności zależy tylko i wyłącznie od Aktora, który
musi wpisać swoją frazę w pole wyszukiwania.
Szybkość dostępu do Katalogu
Cały proces realizacji wyszukiwania odbywa się po stronie Katalogu, do którego poprzez
łącze Internetowe musi zostać wysłana fraza wyszukiwania, a w odpowiedzi zostanie przesłany
wynik zapytania. Stąd czas zależy głównie od przepustowości łączą Internetowego w telefonie
Aktora oraz rozmiaru danych zawartych w odpowiedzi.
Szybkość realizacji wyszukiwania przez Katalog
Wyszukiwanie jest realizowane przez algorytmy znajdujące się po stronie Katalogu, których czas działania zależy bezpośrednio od liczby obiektów w bazie danych. Stąd szybkość
realizacji zależy bezpośrednio od złożoności obliczeniowej algorytmów wyszukujących oraz
ilości danych w Katalogu.
3.10.4. Warunki wstępne
• Dostęp do Internetu.
3.10.5. Czynności
Czynności podstawowe
1. Aktor naciska przycisk „Q”, co powoduje pojawienie się pola tekstowego przeznaczonego
na frazę wyszukiwania.
2. Aktor wpisuje w pole, które się pojawiło, frazę, według której chce wyszukać obiekty.
3. Aktor rozpoczyna wyszukiwanie poprzez naciśnięcie przycisku z obrazkiem w kształcie
lupy, co spowoduje przejścia do widoku z wynikami wyszukiwania.
55
Czynności alternatywne
1. Aktor może wrócić z widoku wyników wyszukiwania i rozpocząć nowe wyszukiwanie
dla innej frazy.
3.10.6. Kategoria
Pomocniczy.
3.10.7. Ryzyko
• Braku dostępu do Internetu spowoduje, że Aktor nie będzie mógł rozpocząć wyszukiwania,
• Awaria w działaniu Katalogu spowoduje, że Aktor nie otrzyma żadnych wyników wyszukiwania.
3.10.8. Możliwe usprawnienia
• Wyświetlanie sugestii co do frazy wyszukiwania na podstawie tego co Aktor wpisuje w
pole tekstowe,
• Historia kilku fraz i możliwość wybrania ponownego wyszukiwania dla nich,
• Możliwość wprowadzenia zakresu wyszukiwania po odpowiednich polach, np. w wyniku
mają znaleźć się tylko te obiekty, których pole opis produktu zawierało wyszukiwana
frazę oraz pominięciem sprawdzania tej frazy dla tytułów.
3.10.9. Właściciel
Paweł Nowosad.
3.10.10. Możliwe rozwinięcia
Widok ze szczegółami danego produktu
Naciśnięcie w którykolwiek produkt z listy wyników wyszukiwania spowoduje przejście do
widoku ze szczegółami wybranego obiektu.
Filtrowanie listy wyników wyszukiwania
Naciśnięcie przycisku „=” spowoduje otwarcie okna z dostępnymi filtrami, które umożliwią filtrowanie obiektów z listy wyników wyszukiwania.
3.11. Filtrowanie obiektów
3.11.1. Krótki opis
Lista obiektów może być bardzo długa i zawierać produkty, którymi niekoniecznie jest
zainteresowany Aktor. Dlatego aplikacja umożliwia filtrowanie obiektów z listy, aby Aktor
mógł ograniczyć liczbę widocznych produktów tylko do tych, które spełniają jego oczekiwania.
Głównym celem filtrowania jest umożliwienie Aktorowi dostosowania listy obiektów tak, aby
56
zawierała tylko te produkty, którymi jest zainteresowany i potencjalnie będzie chciał je później
zobaczyć.
3.11.2. Cele
Klient chce ograniczyć listę obiektów tylko do tych, które spełniają pewne określone przez
niego kryteria.
3.11.3. Wydajność
Czas wyboru filtrów
W celu przeprowadzania filtrowania, użytkownik musi określić odpowiednie przedziały
wartości dla filtrów, których chce użyć. Wydajność wykonania tej czynności zależy tylko i
wyłącznie od użytkownika i podjętych przez niego decyzji.
Szybkość filtrowania listy względem określonych filtrów
Zastosowanie filtrów do listy obiektów wymaga wysłania żądania do katalogu o przefiltrowaną listę produktów. Stąd wydajność zależy bezpośrednio od przepustowości łącza
internetowego i ilości produktów zwróconych jako wynik.
3.11.4. Warunki wstępne
• Dostęp do Internetu.
3.11.5. Czynności
Czynności podstawowe
1. Aktor naciska przycisk „=”, co powoduje pojawienie się nowego okna z listą filtrów
możliwych do użycia.
2. Aktor wpisuje odpowiednie wartości w pola filtrów, których chce użyć.
3. Aktor zatwierdza filtrowanie poprzez naciśnięcie przycisku „Ok”, co spowoduje zamknięcie okna z lista filtrów i powrotu do listy z przefiltrowanymi już obiektami.
Czynności alternatywne
1. Aktor w oknie wyboru filtrów może nacisnąć przycisk „Cancel”, co spowoduje zamknięcie okna z wyborem filtrów i anulowaniem filtrowania, przez co zawartość listy będzie
taka sama jak przed przejściem do okna wyboru filtrów.
2. Aktor po użyciu filtrowania może ponownie otworzyć okno z wyborem filtrów i zmodyfikować kryteria filtrowania.
3. Aktor po użyciu filtrowania może ponownie otworzyć okno z wyborem filtrów i wyczyścić zawartość pól wszystkich filtrów oraz zatwierdzić wybór, co spowoduje wyłączenie
filtrowania i wszystkie obiekty z listy będą ponownie widoczne.
3.11.6. Kategoria
Pomocniczy.
57
3.11.7. Ryzyko
• Braku dostępu do Internetu spowoduje, że Aktor nie będzie mógł wykonać filtrowania,
• Awaria w działaniu Katalogu spowoduje, że Aktor nie otrzyma żadnych wyników filtrowania,
• Może się tak zdarzyć, że Aktor może mieć na tyle dokładne i specyficzne kryteria co
do obiektu, że standardowe filtry mogą nie umożliwić przeprowadzenia filtrowania w
dostatecznym stopniu.
3.11.8. Możliwe usprawnienia
• Historia kilku ostatnich użytych filtrowań i możliwość ponownego użycia go.
3.11.9. Właściciel
Paweł Nowosad.
3.11.10. Możliwe rozwinięcia
Widok ze szczegółami danego produktu
Naciśnięcie na którykolwiek produkt z listy wyników wyszukiwania spowoduje przejście
do widoku ze szczegółami wybranego obiektu.
3.12. Wyświetlanie listy kategorii
3.12.1. Krótki opis
Aplikacja może zawierać bardzo dużo różnych obiektów, co może czynić kłopotliwym ich
przeglądanie przez Aktora. Jednym z najprostszych i najlepszych sposobów na zmniejszenie
listy obiektów na jednej liście i zwiększeniu efektywności przeglądania produktów przez Aktora jest wprowadzenie kategorii. Głównym celem wyświetlania listy kategorii jest wstępne
odrzucenie wszystkich obiektów, którymi nie jest zainteresowany Aktor. Drugim ważnym celem kategorii jest podzielenie wszystkich produktów na mniejsze i logiczne grupy, co ma za
umożliwić łatwiejsze przeglądanie obiektów.
3.12.2. Cele
Aktor chce zobaczyć wszystkie dostępne kategorie, albo chce się dostać do listy produktów
z interesującej go kategorii.
3.12.3. Wydajność
Szybkość dostępu do Katalogu
Cały proces wyświetlania kategorii rozpoczyna się od pobrania ich listy z Katalogu. Stąd
czas potrzebny na wyświetlenie listy kategorii zależy bezpośrednio od szybkości łącza Internetowego Aktora i rozmiaru listy zdefiniowanej w Katalogu.
58
3.12.4. Warunki wstępne
• Dostęp do Internetu.
3.12.5. Czynności
Czynności podstawowe
1. Aktor klika w zakładkę „Categories”, co spowoduje wyświetlenie wszystkich dostępnych
kategorii.
Czynności alternatywne
1. Aktor może wybrać opcję dodania nowego obiektu do AR, co spowoduje przejście do
widoku z wyświetloną listą kategorii.
3.12.6. Kategoria
Podstawowy.
3.12.7. Ryzyko
• Braku dostępu do Internetu spowoduje, że wyświetlona lista kategorii będzie pusta i
pojawi się stosowny komunikat,
• Awaria w działaniu Katalogu spowoduje, że wyświetlona lista kategorii będzie pusta.
3.12.8. Możliwe usprawnienia
• Lista kategorii nie ulega często zmianie, przez co może być trzymana przez pewien
okres czasu w pamięci podręcznej, aby zminimalizować czas potrzebny na wyświetlenie
się listy,
• Do przypadku użycia można dodać możliwość oznaczania kategorii jako ”ulubione” i
wyświetlać je na samej górze listy, albo w dodatkowej zakładce, co umożliwi szybszy
dostęp Aktorowi do tych kategorii, z których korzysta najczęściej.
3.12.9. Właściciel
Paweł Nowosad.
3.12.10. Możliwe rozwinięcia
Lista obiektów z danej kategorii
Aktor po naciśnięciu na dowolny przycisk z nazwą kategorii może przejść do listy produktów z danej kategorii.
Wyszukiwanie obiektów
Aktor naciskając na przycisk „Q” i wpisując w pole odpowiednią frazę wyszukiwania może
rozpocząć wyszukiwanie i przejść do widoku z jego wynikiem.
59
Ekran główny
Aktor naciskając na zakładkę „Home” może przejść do widoku głównego aplikacji.
3.13. Wyświetlenie listy obiektów należących do danej kategorii
3.13.1. Krótki opis
Główną rola takiej listy jest ułatwienie Aktorowi wyboru odpowiednich produktów spośród wszystkich dostępnych w danej kategorii poprzez krótkie i przystępne zaprezentowanie
obiektu. Głównym celem jest ułatwienie Aktorowi przeglądania obiektów z danej kategorii i
umożliwienie jak najszybszego odnalezienia tych produktów, które go interesują.
3.13.2. Cele
Aktor chce zobaczyć listę wszystkich obiektów należących do danej kategorii.
3.13.3. Wydajność
Szybkość dostępu do Katalogu
Cały proces wyświetlania obiektów należących do danej kategorii rozpoczyna się od pobrania ich listy z Katalogu. Stąd czas potrzebny na wyświetlenie listy produktów zależy
bezpośrednio od szybkości łącza Internetowego Aktora i rozmiaru listy zdefiniowanej w Katalogu.
3.13.4. Warunki wstępne
• Dostęp do Internetu.
3.13.5. Czynności
Czynności podstawowe
1. Aktor naciska przycisk z nazwą kategorii, co spowoduje przejście do listy obiektów
należących do danej kategorii.
Czynności alternatywne
1. Aktor może wrócić do poprzedniego widoku i wybrać inną kategorie, z której chce
wyświetlić listę produktów.
3.13.6. Kategoria
Podstawowy.
3.13.7. Ryzyko
• Braku dostępu do Internetu spowoduje, że Aktor nie przejdzie do nowego widoku, tylko
zostanie wyświetlony stosowny komunikat,
• Awaria w działaniu Katalogu spowoduje, że wyświetlona lista obiektów będzie pusta.
60
3.13.8. Możliwe usprawnienia
• Zdjęcie obiektu na liście nie ulega często zmianie, więc przez jakiś krótki okres czasu
można trzymać je w pamięci podręcznej, co spowoduje wzrost wydajności, ponieważ w
ten sposób zmniejszymy rozmiar danych jaki musimy pobrać z Katalogu,
• Możliwość sortowania listy po różnych polach obiektów ułatwi znalezienie Aktorowi
produktów, ponieważ dzięki odpowiedniemu posortowaniu te najbardziej interesujące
pozycje znajdą się na samej górze listy.
3.13.9. Właściciel
Paweł Nowosad.
3.13.10. Możliwe rozwinięcia
Widok ze szczegółami danego produktu
Kliknięcie w którykolwiek produkt z listy wyników wyszukiwania spowoduje przejście do
widoku ze szczegółami wybranego obiektu.
Filtrowanie listy wyników wyszukiwania
Kliknięcie przycisku „=” spowoduje otwarcie okna z dostępnymi filtrami, które umożliwią
filtrowanie obiektów z listy wyników wyszukiwania.
3.14. Wyświetlenie szczegółów obiektu
3.14.1. Krótki opis
Po wstępnym znalezieniu przez Aktora obiektów, którego go interesują, kluczowym elementem mającym wpływ na decyzję o jego zakupie jest poznanie wszystkich szczegółów
tego produktu. Stąd odpowiednie wyświetlenie informacji o obiekcie pełni bardzo ważną rolę. Głównym celem wyświetlania szczegółów obiektu jest jak najpełniejsze i najrzetelniejsze
przedstawienie Aktorowi informacji o produkcie, co ma ułatwić podjęcie świadomej i właściwej decyzji związanej z zakupem produktu.
3.14.2. Cele
Aktor chce zobaczyć szczegóły zaznaczonego obiektu.
3.14.3. Wydajność
Szybkość dostępu do Katalogu
Cały proces wyświetlania szczegółów obiektu rozpoczyna się od pobrania informacji o
tym produkcie z Katalogu. Stąd czas potrzebny na wyświetlenie szczegółów obiektu zależy bezpośrednio od szybkości łącza Internetowego Aktora i rozmiaru danych związanych z
obiektem.
3.14.4. Warunki wstępne
• Dostęp do Internetu.
61
3.14.5. Czynności
Czynności podstawowe
1. Aktor klika w odpowiedni produkt, o których chce przeczytać informację, co spowoduje
przejście do widoku z wyświetlonymi szczegółami produktu.
Czynności alternatywne
1. Aktor może wrócić do poprzedniego widoku i wybrać inny produkt, dla którego chce
wyświetlić szczegółowe informacje.
3.14.6. Kategoria
Podstawowy.
3.14.7. Ryzyko
• Braku dostępu do Internetu spowoduje, że Aktor nie przejdzie do nowego widoku, tylko
zostanie wyświetlony stosowny komunikat,
• Awaria w działaniu Katalogu spowoduje, że Aktor nie przejdzie do nowego widoku,
tylko zostanie wyświetlony stosowny komunikat,
• Niewystarczająca ilość pamięci do zapisania wszystkich zdjęć spowoduje, że w podglądzie produktu wyświetlą się tylko te zdjęcia, które zmieściły się w pamięci telefonu.
3.14.8. Możliwe usprawnienia
• Zdjęcie obiektu w podglądzie produktu nie ulegają często zmianie, więc przez jakiś
krótki okres czasu można trzymać je w pamięci podręcznej, co spowoduje wzrost wydajności, ponieważ w ten sposób zmniejszymy rozmiar danych jaki musimy pobrać z
Katalogu,
• Wyświetlanie ocen i opinii o produkcie wystawionych przez innych Aktorów potencjalnie
ułatwi podjęcie decyzji o zakupie danego produktu przez kolejnego Aktora. Możliwość
wystawienia opinii po zakupie obiektu przez Aktora umożliwi łatwe stworzenie bazy
danych z ocenami i opiniami na temat poszczególnych produktów.
3.14.9. Właściciel
Paweł Nowosad.
3.14.10. Możliwe rozwinięcia
Galeria
Kliknięcie w dowolne zdjęcie spowoduje otwarcie galerii zdjęć z wyświetlanym wybranym
zdjęciem.
Widok AR
Naciśnięcie na przycisk „View in AR” spowoduje przejście do widoku, gdzie możemy
wybrać, do którego znacznika AR mamy przypisać wybrany obiekt.
62
3.15. Wyświetlenie galerii danego obiektu
3.15.1. Krótki opis
W podjęciu decyzji o zakupie produktu przez Aktora ważną rolę gra możliwość jego wcześniejszego zobaczenia na zdjęciach, dlatego w tym celu została stworzona w naszej aplikacji
klienckiej galeria zdjęć obiektu. Głównym celem wyświetlania galerii jest ułatwienie Aktorowi
podjęcia decyzji związanej z zakupem produktu. Galeria pozwala w łatwy sposób na pierwszy rzut oka ocenić produkt przez Aktora, co potencjalnie może go zachęcić do zakupienia
produktu.
3.15.2. Cele
Aktor chce zobaczyć w powiększeniu wszystkie zdjęcie powiązane z danym obiektem.
3.15.3. Wydajność
Szybkość dostępu do Katalogu
Cały proces wyświetlania galerii danego obiektu rozpoczyna się od pobrania jego zdjęć z
Katalogu. Stąd czas potrzebny na wyświetlenie galerii zależy bezpośrednio od szybkości łącza
Internetowego Aktora i rozmiaru zdjęć związanych z obiektem.
3.15.4. Warunki wstępne
• Dostęp do Internetu.
3.15.5. Czynności
Czynności podstawowe
1. Aktor klika w dowolne zdjęcie widoczne w szczegółach danego obiektu, co spowoduje
wyświetlenie widoku galerii z wybranym zdjęciem produktu.
2. Aktor przesuwając palcem w lewo lub w prawo, w dolnej części ekranu zawierającej
miniaturki zdjęć, spowoduje wyświetlenie kolejnego zdjęcia z galerii odpowiednio po
lewej, albo prawej stronie aktualnie widocznego obrazka.
3. Aktor naciska standardowy przycisk Android „Cofnij”, co spowoduje wyjście z galerii i
powrót do widoku ze szczegółami obiektu.
Czynności alternatywne
1. Aktor może wrócić z galerii i ponownie do niej wejść wybierając innej zdjęcie niż poprzednio, co spowoduje wyświetlenie nowego zdjęcia po otwarciu galerii.
3.15.6. Kategoria
Podstawowy.
63
3.15.7. Ryzyko
• Braku dostępu do Internetu spowoduje, że Aktor nie będzie mógł wyświetlić galerii,
• Awaria w działaniu Katalogu spowoduje, że Aktor nie będzie mógł wyświetlić galerii,
• Niewystarczająca ilość pamięci do zapisania wszystkich zdjęć spowoduje, że w galerii
wyświetlą się tylko te zdjęcia, które zmieściły się w pamięci telefonu.
3.15.8. Możliwe usprawnienia
• Zdjęcie obiektu w galerii nie ulegają często zmianie, więc przez jakiś krótki okres czasu
można trzymać je w pamięci podręcznej, co spowoduje wzrost wydajności, ponieważ w
ten sposób zmniejszymy rozmiar danych jaki musimy pobrać z Katalogu,
• Zapisanie zdjęcia w telefonie ułatwi użytkownikowi późniejsze ponowne sprawdzenie
wyglądu produktu oraz umożliwi promowanie tego obiektu wśród znajomych Aktora,
co zwiększa liczbę potencjalnych klientów,
• Możliwość wysłania zdjęcia mailem, powód wprowadzenia takiej funkcjonalności jest
taki sam co powyżej.
3.15.9. Właściciel
Paweł Nowosad.
3.15.10. Możliwe rozwinięcia
Brak.
3.16. Przypisanie do znacznika
3.16.1. Krótki opis
Tryb Rozszerzonej Rzeczywistości wymaga ustalenia, jakie obiekty mają być wyświetlone
w momencie rozpoznania znacznika. W tym celu niezbędne jest wyróżnienie przez Aktora
przedmiotów, które chciałby zobaczyć w widoku AR.
3.16.2. Cele
Przypisanie konkretnego obiektu do znacznika umożliwia oglądanie danego przedmiotu w
trybie Rozszerzonej Rzeczywistości.
3.16.3. Wydajność
Prędkość pobrania tekstury z zewnętrznego źródła.
3.16.4. Warunki wstępne
• Dostęp do Internetu.
64
3.16.5. Czynności
Czynności podstawowe
1. Na formatce zawierającej szczegóły produktu użytkownik naciska przycisk „View in
AR”.
2. Aktor naciska jeden z pięciu znaczników przypisując do niego wybrany przedmiot. Przypisanie do zajętego znacznika powoduje zastąpienie poprzedniego obiektu.
Czynności alternatywne
1. Użytkownik może nie przypisać obiektu do żadnego znacznika naciskając przycisk „Back”
na swoim smartfonie.
3.16.6. Kategoria
Podstawowy.
3.16.7. Ryzyko
• Brak dostępu do Internetu,
• Adres url do żądanej tekstury jest niepoprawny lub serwer, na którym znajduje się dany
plik, nie odpowiada,
• Brak odpowiedniej ilości wolnej pamięci spowoduje wyświetlenie komunikatu o niepowodzeniu akcji.
3.16.8. Możliwe usprawnienia
W przyszłości można zwiększyć liczbę znaczników.
3.16.9. Właściciel
Łukasz Siczek.
3.16.10. Możliwe rozwinięcia
Tryb AR
Użytkownik przypisując obiekt do znacznika jednocześnie przechodzi do widoku Rozszerzonej Rzeczywistości.
3.17. Wyświetlenie obiektu w widoku AR
3.17.1. Krótki opis
Użytkownik aplikacji chce zobaczyć jak pożądany przedmiot prezentuje się w jego mieszkaniu. Dzięki temu będzie w stanie lepiej ocenić słuszność potencjalnego zakupu. Tryb Rozszerzonej Rzeczywistości pozwala sprawdzić jak dany obiekt komponuje się z otaczającym
wnętrzem.
65
3.17.2. Cele
Dzięki widokowi AR użytkownik porównuje ze sobą najbardziej pożądane przedmioty i
dokonać właściwego wyboru. To wszystko może zrobić bez konieczności wcześniejszego zakupu
tych produktów.
3.17.3. Wydajność
Przetwarzanie obrazu na bieżąco wymaga dużej, jak na smartfony, mocy obliczeniowej.
Stąd wydajność telefonu ma bezpośredni wpływ na płynne wyświetlanie obrazu.
3.17.4. Warunki wstępne
• Kamera w telefonie,
• Wydrukowane znaczniki,
• Przynajmniej jeden przedmiot przypisany do znacznika.
3.17.5. Czynności
Czynności podstawowe
1. Skierowanie obiektywu kamery na znacznik, do którego został przypisany obiekt.
2. Po wyświetleniu tekstury użytkownik może w przesuwać obiekt w dowolnym kierunku
za pomocą funkcji „Przeciągnij i upuść”.
Czynności alternatywne
1. Użytkownik może skierować kamerę na inny znacznik i operować na innym przedmiocie.
1. W przypadku nie przypisania żadnego obiektu do znacznika pojawi się stosowny komunikat zachęcający użytkownika do wybrania jakiegoś przedmiotu.
1. Użytkownik może za pomocą przycisku „Clear” wyczyścić aktualne powiązanie przedmiot - znacznik.
3.17.6. Kategoria
Podstawowy.
3.17.7. Ryzyko
Jeśli użytkownik nie posiada żadnego wydrukowanego znacznika, albo te posiadane są w
kiepskim stanie, algorytmy odpowiedzialne na rozpoznawanie znaczników mogą nie zadziałać
poprawnie i wybrany obiekt nie zostanie wyświetlony w trybie Rozszerzonej Rzeczywistości.
3.17.8. Możliwe usprawnienia
W przyszłości będzie można rozszerzyć funkcjonalność o wyświetlanie obiektów trójwymiarowych.
66
3.17.9. Właściciel
Łukasz Siczek.
3.17.10. Możliwe rozwinięcia
Zakup produktu
Naciśnięcie przycisku „Buy” spowoduje przejście aplikacji do formatki umożliwiającej
zakup produktów, które zostały przypisanego do znaczników.
Robienie zdjęć trybu AR
Naciśnięcie przycisku w prawym górnym rogu trybu AR spowoduje przygotowanie do
zrobienia zdjęcia bieżącego ekranu Rozszerzonej Rzeczywistości.
Przypisanie obiektu do znacznika
Naciśnięcie przycisku zawierającego znak „+” spowoduje przejście do wyszukiwania obiektów, który następnie zostanie przypisany do znacznika.
3.18. Robienie zdjęć trybu AR
3.18.1. Krótki opis
Często użytkownik przed podjęciem decyzji o zakupie produktu chce uzyskać opinie najbliższego otoczenia: rodziny czy przyjaciół. Jednak nie wszystkie osoby, z których zdaniem
się liczy, mają smartfona z systemem Android. Dlatego niezbędna jest możliwość zrobienia
zdjęć widoku AR.
3.18.2. Cele
Celem tej funkcjonalności jest utrwalenie trybu Rozszerzonej Rzeczywistości w postaci
pliku graficznego, którym użytkownik może swobodnie dzielić się z rodziną oraz znajomymi.
3.18.3. Wydajność
Podobnie jak w przypadku wyświetlania.
3.18.4. Warunki wstępne
• Dostęp do Internetu,
• Kamera w telefonie,
• Miejsce w pamięci telefonu potrzebne do zapisania zdjęcia.
67
3.18.5. Czynności
Czynności podstawowe
1. Użytkownik w widoku AR wybiera przycisk zrobienia zdjęcia.
2. Użytkownik klika przycisk „Save file”, który powoduje zapisaniu filmu na telefonie oraz
powrót do trybu AR.
Czynności alternatywne
1. Użytkownik może ponownie wrócić do trybu robienia zdjęć.
1. Aktor może nacisnąć przycisk „Send via email”, który spowoduje uruchomienie systemowego klienta poczty z załączonym zdjęciem.
3.18.6. Kategoria
Pomocniczy.
3.18.7. Ryzyko
W przypadku braku wystarczającego miejsca na telefonie zapisanie pliku graficznego nie
zakończy się sukcesem.
3.18.8. Możliwe usprawnienia
Możliwość ustawienia parametrów zdjęcia.
3.18.9. Właściciel
Paweł Nowosad, Łukasz Siczek.
3.18.10. Możliwe rozwinięcia
Systemowy klient email
Naciśnięcie przycisku „Send via email” spowoduje otworzenie systemowego klienta email,
który w załączniku będzie zawierać uprzednio nagrany plik.
3.19. Kupno produktu
3.19.1. Krótki opis
Aplikacja korzysta z Rozszerzonej Rzeczywistości, żeby skłonić niezdecydowanego klienta
do zakupu przedmiotu. Użytkownik, który podejmie decyzję o kupnie, nie chciałby szukać w
Internecie strony sklepu z wybranym produktem. Ten przypadek użycia rozwiązuje powyższy
problem.
3.19.2. Cele
Zadaniem tej czynności jest ułatwienie użytkownikowi sfinalizowania zakupu wybranego
produktu.
68
3.19.3. Wydajność
Szybkość całej akcji zależy tylko od systemu Android.
3.19.4. Warunki wstępne
• Produkt, który użytkownik chce kupić, musi być przypisany do jakiegoś znacznika,
• Dostęp do Internetu.
3.19.5. Czynności
Czynności podstawowe
1. Użytkownik z listy produktów przypisanych do znaczników wybiera ten, który chce
kupić i naciska przycisk „View in store”.
3.19.6. Kategoria
Podstawowy.
3.19.7. Ryzyko
Wybrany przez użytkownika produktu może zawierać nieaktualny odnośnik do sklepu, co
spowoduje brak możliwości sfinalizowania zakupu.
3.19.8. Możliwe usprawnienia
Można cyklicznie próbować weryfikować poprawność oraz aktualność odnośników do obiektów.
3.19.9. Właściciel
Paweł Nowosad.
3.19.10. Możliwe rozwinięcia
Systemowy klient email
Naciśnięcie przycisku „Send via email” spowoduje otworzenie systemowego klienta email,
który w treści wiadomości zawiera listę produktów wraz z cenami i odsyłaczami do sklepów.
69
Rozdział 4
Organizacja i przebieg prac
4.1. Organizacja prac
Metodologia przyjęta przez zespół była zbliżona do znanych metodologii zwinnych.
Na początku prac przygotowano szczegółowy harmonogram, który zakładał realizację
systemu w pięciu odmiennych etapach: projektowanie, organizacja pracy, implementacja kluczowych funkcjonalności, testy i opracowywanie funkcji pobocznych, finalizacja pracy. Każdy
etap realizowano w fragmentach tygodniowych, gdzie na każdy tydzień ustalono zadania do
wykonania. Ponadto każdego tygodnia przewidziano spotkanie mające na celu podsumowanie
prac, omówienie rozwiązań i dyskusję na temat dalszych czynności.
Współpraca z zamawiającym przebiegała bardzo profesjonalnie. Pracownicy firmy Agitive
pomagali zespołowi podejmować trudne decyzje projektowe, dostarczali materiały pomocnicze i kontrolowali pracę grupy udzielając cennych wskazówek.
Podczas pracy zespół wspierał się następującymi narzędziami: zdalne repozytorium scentralizowane - SVN, narzędzie do zarządzania pracą - Redmine, harmonogram oparty na kalendarzu Google i archiwum dokumentów w usłudze Google Drive.
4.2. Podział prac
Obowiązki implementacyjne zostały podzielone pomiędzy czterech programistów - zgodnie z architekturą systemu. Częścią aplikacji klienckiej odpowiedzialną za wyświetlanie obiektów w trybie rozszerzonej rzeczywistości zajmował się Łukasz Siczek. Za pozostałe aspekty
aplikacji mobilnej, w tym komunikację z Katalogiem odpowiadał Paweł Nowosad. Projekt i
realizacja Katalogu Produktów należały do obowiązków Macieja Kozieła. Implementacją Modułu Integracyjnego do Magento zajmował się Filip Daca, który pełnił również rolę kapitana
zespołu.
Do obowiązków kapitana zespołu, oprócz prac implementacyjnych, należało również planowanie, przydzielanie poszczególnych zadań członkom grupy, kontrolowanie przebiegu prac,
utrzymywanie systematyczności, organizowanie spotkań zespołu oraz kontakt z zamawiającym.
4.2.1. Filip Daca
Spis ról
• Implementacja Modułu Integracyjnego,
71
• Mechanizm rozszerzający produkty ze sklepu o dodatkowe atrybuty,
• Widok przeglądu produktów dla rozszerzonej rzeczywistości,
• Eksport i aktualizacja produktów do Katalogu wraz z mechanizmem powiadomień,
• Mechanizm powiązania Sklepu z Katalogiem,
• Projekt i implementacja API do komunikacji między Sklepem a Katalogiem,
• Mechanizm integracji kategorii produktów między Sklepem, a Katalogiem,
• Pakiet instalacyjny Modułu Integracyjnego,
• Rola kapitana zespołu i obowiązki z tym związane.
Szczegółowy opis pracy
Pierwszym etapem prac nad moją częścią projektu był wybór konkretnego silnika sklepu internetowego, do którego powstanie Moduł Integracyjny. Zamawiający zaproponował
Magento, jako najpopularniejszy i najszybciej rozwijający się obecnie zrąb. Po zebraniu podstawowych informacji o tym systemie zdecydowałem się na jego wybór.
Kolejnym krokiem koniecznym do wykonania przed rozpoczęciem prac programistycznych
była konfiguracja i uruchomienie środowiska. Pełna instalacja Magento na maszynie wirtualnej nie zajęła wiele czasu, ponieważ system udostępniał automatyczny instalator, który
znacznie ułatwiał ten proces.
Następnie przed rozpoczęciem implementacji zająłem się analizowaniem architektury Magento i studiowaniem dokumentacji. Zanim powstał pierwszy kod Modułu Integracyjnego
przekonałem się, że w sieci znajduje się bardzo mało przydatnych opracowań i profesjonalnych materiałów opisujących ten zrąb. Od tego momentu okazało się, że prace nad wtyczką
do Magento przyniosą dużo więcej trudności, niż zakładano na początku.
Zgodnie z Maciejem Koziełem opracowaliśmy w tym czasie wspólny interfejs komunikacji pomiędzy Katalogiem, a Modułem Integracyjnym. Ustaliliśmy model danych i protokół
komunikacji.
Pierwszym głównym zadaniem, jakie należało zrealizować, było stworzenie szkieletu modułu rozszerzającego standardową funkcjonalność Magento. W tym celu posługiwałem się
materiałami z amatorskich blogów internetowych, forów dyskusyjnych i wypowiedzi społeczności użytkowników tego zrębu. Pierwszą zaimplementowaną funkcjonalnością, realizowaną
przez wtyczkę była komunikacja z Katalogiem Produktów przez zaprojektowane wcześniej
API.
Następnym krokiem prac nad Modułem Integracyjnym było rozszerzenie istniejącego modelu produktu o dodatkowe atrybuty i implementacja mechanizmu eksportu. Problemy sprawiło nam testowanie stworzonego mechanizmu, ponieważ standard kodowania nagłówka pakietu JSON w Magento był istotnie inny niż w ASP.NET.
Sporą wagę przyłożyłem do strony wizualnej modułu - zwłaszcza widoku przeglądu produktów trybu AR. Starałem się, aby interfejs użytkownika był intuicyjny i nie odbiegał od
standardów Magento. Zadbałem również o mechanizm szczegółowych komunikatów o błędach.
Ostatnią istotną funkcjonalnością dodaną do Magento była synchronizacja kategorii dostępnych w Katalogu z kategoriami Sklepu. Aby pogodzić konflikty między różnymi kategoriami, zdecydowaliśmy się na przechowywanie głównych kategorii produktów w Katalogu i
umożliwienie Sklepom pobrania ich przez udostępnione API.
72
Dodatkowymi funkcjami, jakie dodałem do Modułu Integracyjnego, był widok konfiguracyjny oraz pakiet instalacyjny, który automatycznie dodaje moduł do systemu Magento.
4.2.2. Maciej Kozieł
Katalog Produktów:
• Baza danych SQL z produktami,
• API JSON do komunikacji z Modułem Integracyjnym,
• API JSON do komunikacji z Aplikacją Kliencką,
• strona webowa, do zarządzania Katalogiem,
• rozdziały pracy licencjackiej dotyczące katalogu produktów,
• przygotowanie i wygłoszenie części prezentacji naszego projektu dotyczącej architektury,
• czynny udział w spotkaniach z firmą Agitive, omawiając zakres naszego projektu,
• aktywny udział w planowaniu rozwiązań zastosowanych w projekcie (m.in. współpraca
z Modułem Integracyjnym i z Aplikacją Kliencką).
Problemy
• Głównie z Entity Framework (nakładka obiektowa na SQL) - rozwiązania głównie dzięki
stronom Microsoftu i Stackoverflow.
• Wprowadzenie indywidualnych i nietypowych zmian do początkowego projektu - rozwiązane przez przeglądanie kodu wygenerowanego przez Visual Studio i pomoc na stronach Microsoftu.
4.2.3. Paweł Nowosad
Interfejs aplikacji klienckiej dla Androida:
1. Zaimplementowanie widoków dla aplikacji na podstawie makiety dostarczonej przez
zamawiającego:
• menu główne,
• instrukcja obsługi,
• lista kategorii,
• lista produktów,
• lista produktów do zakupienia,
• lista dodawania obiektów do trybu Rozszerzonej Rzeczywistości,
• lista produktów dla wyników wyszukiwania,
• szczegóły produktu,
• galeria produktu,
• przypisanie produktu do znacznika.
73
2. W trakcie implementacji zakładek w menu głównym okazało się, że do zapewnienia
zgodności ze wszystkimi wersjami Androida określonymi w specyfikacji dostarczonej
przez zamawiającego, konieczne będzie skorzystanie z zewnętrznej biblioteki, która zapewnia takie wsparcie, ponieważ powyższy element został dodany do systemu w późniejszej wersji. Po przeglądzie kilku bibliotek wybrałem „ActionBarSherlock”.
3. Zaimplementowanie pobierania listy kategorii.
4. Zaimplementowanie pobierania listy produktów w ramach wybranej kategorii.
5. Zaimplementowanie pobierania szczegółów wybranego produktu.
6. Zaimplementowanie przypisywania wybranego produktu do znacznika.
7. Zaimplementowanie pobierania listy produktów promowanych.
8. Zaimplementowanie wyszukiwania produktów po frazie.
9. Zaimplementowanie pobierania obrazków do galerii produktów.
10. Zaimplementowanie filtrowania listy produktów w ramach wybranej kategorii.
11. Zaimplementowanie tymczasowego przechowywania dużych plików powiązanych z produktem.
12. Pod koniec implementacji aplikacji wspólnie z zespołem stwierdziliśmy, że aktualny
wygląd listy promowanych produktów nie jest wystarczająco atrakcyjny dla użytkownika. Po wspólnej debacie w zespole zaprojektowaliśmy nowy ciekawszy wygląd, który
zastąpił poprzedni w finalnej wersji aplikacji.
4.2.4. Łukasz Siczek
Na początku głównym zadaniem był wybór biblioteki do obsługi trybu AR. Po dyskusji
z zamawiającym zdecydowaliśmy się na Vuforię. Ta biblioteka posiada dobrą dokumentację,
forum gdzie bardziej doświadczeni programiści udzielają rad i pomagają rozwiązywać problemy. Ponadto to narzędzie udostępnia szeroki zestaw przykładowych aplikacji, które mogą
stanowić punkt startowy w pracy nad własnym projektem. Kolejnym powodem był fakt, że
zamawiający ma doświadczenie w pracy z Rozszerzoną Rzeczywistością i sam zasugerował
użycie właśnie tego narzędzia.
Następnie trzeba było zmierzyć się z problemem wyboru znacznika. Rozważaliśmy „Image
Target”, który jest zwykłem obrazem formatu A4, oraz „Frame Marker”, który przypomina znaczniki typu QRCode. Zdecydowaliśmy się na „Image Target”, ponieważ po wykryciu
znacznika kamera nie musi mieć w obiektywie całego obrazu.
Gdy nadszedł czas na prace programistyczne okazało się, że Vuforia nie działa na emulatorze, a ja nie posiadam telefonu z systemem Android. Szybko zgłosiliśmy ten problem
prowadzącemu, który zareagował błyskawicznie i umożliwił nam wypożyczanie wydziałowych
telefonów z możliwością zabierania ich do domu.
Po rozwiązaniu problemu z telefonem mogłem przystąpić do prac programistycznych. W
pierwszej kolejności chciałem jak najszybciej wyświetlać jedno zdjęcie w kamerze po wykryciu
znacznika. Bardzo przydatne okazały się przykładowe aplikacje oraz zestaw artykułów na
forum biblioteki, dzięki którym w miarę łatwo osiągnąłem zamierzony efekt.
74
Następnie zająłem się rozszerzeniem funkcjonalności trybu AR. Dodałem obsługę kilku
znaczników jednocześnie, możliwość przesuwania tekstury za pomocą dotyku oraz powiększanie/pomniejszanie obiektu.
Kolejną funkcjonalnością było nagrywanie trybu AR. Chcieliśmy udostępnić użytkownikom możliwość robienia filmów i dzielenia się nimi ze znajomymi. W tym momencie pojawiły
się niespodziewane kłopoty. Okazało się, że trzeba budować film klatka po klatce, ponieważ
ani Android ani Vuforia nie udostępniają żadnego API do tworzenia filmów z wirtualnymi
obiektami. To rozwiązanie nie było zadowalające z powodów wydajnościowych, dlatego po
konsultacji z zamawiającym zrezygnowaliśmy z filmów, zastępujące jest zrzutami ekranu.
Gdy równoległe prace nad katalogiem produktów umożliwiły, wspólnie z Pawłem Nowosadem zajęliśmy się pobieraniem rzeczywistych obrazów. W tym zadaniu do mnie należało
zapisywanie pobranych zdjęć w pamięci cache Androida, przypinanie obrazu do konkretnego
znacznika.
75
Rozdział 5
Opis zawartości pakietu
W pakiecie dostarczonym razem z pracą licencjacką znajdują się:
• kod źródłowy Aplikacji Klienckiej, Katalogu i Modułu Integracyjnego,
• pakiet instalacyjny Modułu Integracyjnego wraz z instrukcją instalacji,
• dokumentacja techniczna projektu,
• prezentacje wygłoszone w trakcie seminarium,
• końcowa prezentacja wraz z nagranymi filmami,
• treść dokumentów przygotowanych w trakcie trwania przedmiotu: Wizja, Architektura,
Biznesowe przypadki użycia oraz treść tego dokumentu.
77
Rozdział 6
Podsumowanie
Realizując projekt napotkaliśmy zarówno trudności, jak i ułatwienia. Sporym sukcesem
okazał się wybór biblioteki Vuforia, jako narzędzia obsługującego rozszerzoną rzeczywistość.
Okazało się, że biblioteka ta pozwala na dużą swobodę oraz implementuje wszystkie wymagana przez nas metody wizualizacji AR. Ponadto jest stale rozwijana i aktualizowana. Dzięki
temu mogliśmy skupić się nad dopracowaniem pozostałych elementów systemu.
Niemałą trudność sprawił nam niestety zrąb Magento. Okazało się, iż mimo bardzo dużej
i stale rosnącej popularności, jest on niestety słabo udokumentowany i z trudem przychodzi
znajdywanie odpowiedzi na najbardziej podstawowe pytania, jakie może zadać programista. Niska jakość dokumentacji Magento wynika poniekąd z polityki grupy Magento, która
odpłatnie świadczy usługi z dziedziny zarządzania i modyfikacji swojego zrębu.
Prace nad systemem przebiegły zgodnie z zaplanowanym harmonogramem, z uwzględnieniem przewidzianego wcześniej okresu bezpieczeństwa. Dobre rozplanowanie czasu pozwoliło
nam pogodzić obowiązki studenckie, wymagania licencjatu oraz pracę zawodową.
Ukończony przez zespół system został zaprezentowany na otwartej prezentacji 07.06.2013
na wydziale Matematyki, Informatyki i Mechaniki Uniwersytetu Warszawskiego, oraz przekazany firmie Agitive.
Zamawiający pozytywnie przyjął powstały system i planuje jego dalszy rozwój w celach
komercyjnych. Według informacji podanej przez przedstawicieli Agitive, tamtejsi programiści
wykorzystają naszą aplikację do pracy nad rozbudowanym, komercyjnym produktem. Zrealizowany system ma również służyć Agitive jako pewnego rodzaju wizytówka, które przedstawi
potencjalnym klientom zamawiającego pojęcie rozszerzonej rzeczywistości i ukaże przykładowy sposób jej wykorzystania w biznesie.
O sukcesie naszej aplikacji może świadczyć również propozycja stałej współpracy z Agitive,
którą osobiście otrzymał każdy członek zespołu. Do naszych przyszłych obowiązków, jako
potencjalnych pracowników Agitive miałaby należeć praca nad tym oraz innymi projektami
wykorzystującymi rozszerzoną rzeczywistość.
79
Bibliografia
[1] Baza wiedzy Magento, http://www.magentocommerce.com/knowledge-base
[2] Dokumentacja techniczna Magento, http://docs.magentocommerce.com/
[3] Portal developerski biblioteki Vuforia, https://developer.vuforia.com/
[4] Portal developerski platformy Android, http://developer.android.com/
[5] Portal developerski ASP.NET MVC, http://www.asp.net/mvc
[6] Aplikacja wykorzystująca rozszerzoną rzeczywistość do mierzenia butów zaprezentowana w Niemczech przez kempertrautmann, http://ooh-tv.com/2012/06/08/germanyaugmented-reality-and-virtual-shoe-fitting-on-a-strer-digital-advertising-screen/
[7] ActionBarSherlock http://actionbarsherlock.com/
81