Lab 6 domyka integrację elementów poznanych w semestrze oraz przygotowanie działającej wersji projektu. Projekt ma być desktopową aplikacją Java z GUI, relacyjną bazą danych i analizą danych ekonomicznych lub ekonometrycznych.
Projekt rozwijaj stopniowo od Lab 1. Lab 6 porządkuje sprawdzenie integracji i obronę przygotowanego rozwiązania. Pełny zakres i punktacja znajdują się w wymaganiach projektu. Uruchamianie i budowanie wykonujemy w IntelliJ IDEA.
tekst, ikony, fokus i zaznaczenie są czytelne; większa czcionka nie ucina treści;
flowchart TD
U[Użytkownik] --> G["GUI: dane, parametry, wykresy"]
G --> C[Kontroler]
C --> S["Serwis: walidacja i koordynacja"]
S --> I["Importer lokalnych danych"]
I --> F[Plik CSV]
S --> R[Repozytorium]
R --> B[(Baza lokalna)]
S --> A["Moduł analizy: statystyki i model"]
A --> W["Wynik: parametry, miary, ostrzeżenia"]
W --> C
C --> G
S --> E[Eksport raportu]
Obliczenia przyjmują dane i konfigurację, a zwracają wynik; nie powinny odczytywać wartości bezpośrednio z pól GUI. Pozwala to sprawdzać metodę analityczną bez uruchamiania okna.
erDiagram
DATASET ||--o{ OBSERVATION : zawiera
DATASET ||--o{ ANALYSIS : analizowany_przez
DATASET {
long id PK
string name
string source
string units
}
OBSERVATION {
long id PK
long dataset_id FK
string period
string region
double x
double y
}
ANALYSIS {
long id PK
long dataset_id FK
string method
string parameters
string result
}
To minimalny przykład szerokiego modelu. Nazwy x i y w rzeczywistym projekcie zastąp znaczeniem ekonomicznym, zapisz jednostki i dostosuj liczbę zmiennych do wymagań projektu. Dodaj unikalność identyfikującą obserwację. Analiza musi zapamiętywać filtr i wersję danych albo ich migawkę, aby późniejsza edycja zbioru nie zmieniała po cichu znaczenia zapisanego wyniku.
flowchart LR
A[Uruchomienie] --> B[Wczytanie danych demo]
B --> C[Walidacja i zapis]
C --> D[Wybór zmiennych i zakresu]
D --> E[Obliczenie modelu]
E --> F[Wykres i interpretacja]
F --> G[Eksport raportu]
G --> H[Restart i odczyt zapisanych danych]
Przygotuj demonstrację około 8–10 minut, jeśli prowadzący nie ustali innego czasu. Pokaż najpierw problem ekonomiczny i źródło lokalnego zbioru, potem pełny przepływ. Na końcu wywołaj jeden błąd danych i pokaż, że aplikacja go obsługuje. W IntelliJ miej przygotowane klasy kontrolera, serwisu, repozytorium i analizy do omówienia podczas obrony.
Przykład kontrolny OLS z jedną zmienną: x = [1, 2, 3, 4], y = [3, 5, 7, 9]. Oczekiwany model to y = 1 + 2x, średnia y = 6, suma kwadratów reszt SSE = 0 i R² = 1. Dla obliczeń zmiennoprzecinkowych porównuj z tolerancją, np. 1e-9.
Ten mały sztuczny zbiór służy sprawdzeniu implementacji, nie zastępuje danych ekonomicznych. Przy regresji wielorakiej dodaj test znanych parametrów dla pełnorządowej macierzy i test współliniowości. Nie odwracaj macierzy bez kontroli osobliwości.
| Przypadek | Oczekiwane zachowanie |
|---|---|
| brak obserwacji po filtrowaniu | brak próby dopasowania, komunikat |
wszystkie wartości x jednakowe |
informacja o niemożności oszacowania nachylenia |
stałe y |
jawna obsługa nieokreślonego standardowego R², bez prezentacji NaN jako wyniku |
| brak wartości lub duplikat | ustalona polityka, raport i liczba pominiętych rekordów |
| błąd w połowie importu | wycofanie importu albo jawnie opisany tryb częściowy |
| dłuższa analiza | GUI reaguje, przycisk nie uruchamia wielu analiz równolegle |
| błąd eksportu | komunikat z możliwością wyboru innej lokalizacji |
Interpretacja ma odróżniać zależność statystyczną od przyczynowości. Przy prognozie zachowaj kolejność czasu i oceniaj wynik na danych nieużytych do dopasowania. Opisz jednostki błędu i ograniczenia małego zbioru.
Do materiałów GUI dołącz także raport HiDPI i motywów: 12 przypadków, cztery zrzuty obu układów i motywów oraz opis ograniczeń sprzętowych, jeżeli wystąpiły. Podczas obrony pokaż zmianę szerokości i przełącz motyw na załadowanych danych. Stan aplikacji i wynik analizy muszą zostać zachowane.
clean verify w IntelliJ kończy się poprawnie;Przed oddaniem otwórz kopię projektu z pom.xml w IntelliJ, przygotuj zależności i uruchom scenariusz offline. Nie dołączaj katalogów target, .idea, haseł ani przypadkowych danych prywatnych. Zdjęcia ekranu dokumentują działanie, ale nie zastępują uruchamialnego projektu.