====== Projekt konceptualny ====== ===== 1. Sformułowanie zadania projektowego ===== Przedmiotem projektowania jest przetworzenie podanego na wejściu zbioru punktów w celu: * znalezienia grup współliniowych z zadaną tolerancją (tolerancja na wspołliniowość i równomierność rozmieszczenia) * eksportu wyników do pliku csv * wizualizacji wyniku na mapie ===== 2. Analiza stanu wyjściowego ===== * Dane wejściowe stanowi plik csv z danymi: **NR MIASTO ULICA X Y Z PAR1 PAR2 PAR3 PAR4 PAR5 PAR6** * Plik jest tajny i nie może być udostępniany publicznie * Parametry par1 do par6 są traktowane literalnie, czyli nie są interpretowane przez algorytm * Podczas wczytywania plików csv atrybuty mogą być w różnej kolejności - pierwszy wiersz determinuje kolejność wczytywanych atrybutów ===== 3. Analiza wymagań użytkownika ===== W projekcie wykorzystamy PostGIS – rozszerzenie relacyjno-obiektowej bazy danych PostgreSQL, dodające możliwość zapisywania danych geograficznych wprost do bazy danych zgodnie ze specyfikacją OpenGIS Simple Features dla profilu SQL [wikipedia]. Wykorzystanie tej bazy danych ułatwi nam obliczenia wymagane dla realizacji algorytmu znajdowania grup współliniowych (wbudowane funkcje PostGISa). ==== Wymagania funkcjonalne ==== * możliwość przetwarzania plików csv z możliwością pobrania wyników w tym formacie * realizacja algorytmu * wizualizacja efektów działania algorytmu na mapie * możliwość ingerencji w grupy (łączenie istniejących grup, dzielenie istniejących grup, dodanie punktów do grup) - najlepiej w sposób graficzny ==== Wymagania pozafunkcjonalne ==== * graficzny interfejs użytkownika umożliwiający interakcje na mapie w oparciu o Openlayers ===== 4. Określenie scenariuszy użycia ===== ==== Podstawowy scenariusz użycia ==== - Ustalenie tolerancji (na współliniowość i równomierność) - Załadowanie pliku csv - Ustalenie kolejności kolumn na podstawie pierwszej linii pliku CSV (możliwość ingerencji użytkownika w tę kolejność) - Oczekiwanie na zakończenie działania algorytmu - Analiza wyników na mapie - Wprowadzenie ręcznych poprawek do grupowania, jeśli zachodzi taka potrzeba - Pobranie wynikowego pliku CSV ===== 5. Identyfikacja funkcji ===== ==== Funkcje realizowane w bazie ==== * Import pliku CSV * Wykorzystanie funkcji PostGIS'a w kolejnych etapach algorytmu (przynależność do obszaru, tworzenie obszaru poprzez "bufor" dookoła linii, obrót obszaru itp.) * Wypełnianie tabeli odpowiadających kolejnym etapom realizacji algorytmu * Eksport wyniku do pliku CSV ===== 6. Analiza hierarchii funkcji projektowanej aplikacji ===== {{:pl:dydaktyka:sbd:2012:projekty:oswietlenie:bazy2.jpg|}} ===== 7. Wybór encji (obiektów) i ich atrybutów ===== {{:pl:dydaktyka:sbd:2012:projekty:oswietlenie:start:bazy.png|}} ===== 8. Projektowanie powiązań (relacji) pomiędzy encjami ===== {{:pl:dydaktyka:sbd:2012:projekty:oswietlenie:start:bazy3.png|}} ===== 9. Projekt diagramów STD ===== {{:pl:dydaktyka:sbd:2012:projekty:oswietlenie:bazy4.jpg|}}