From ec66ac93c0c05fccbc95904cb83ec44faa96a586 Mon Sep 17 00:00:00 2001 From: Oschly Date: Wed, 6 May 2026 19:33:25 +0200 Subject: [PATCH] requirements chapter --- .../Peered.xcodeproj/project.pbxproj | 8 ++-- Thesis/Chapters/2. Requirements.typ | 37 ++++++++++++++++++- Thesis/main.pdf | 4 +- 3 files changed, 41 insertions(+), 8 deletions(-) diff --git a/Implementation/Peered.xcodeproj/project.pbxproj b/Implementation/Peered.xcodeproj/project.pbxproj index 7a009a8..7202ae9 100644 --- a/Implementation/Peered.xcodeproj/project.pbxproj +++ b/Implementation/Peered.xcodeproj/project.pbxproj @@ -292,10 +292,10 @@ "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - IPHONEOS_DEPLOYMENT_TARGET = 18.4; + IPHONEOS_DEPLOYMENT_TARGET = 18; LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 15.4; + MACOSX_DEPLOYMENT_TARGET = 15; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = me.oschly.Peered; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -346,10 +346,10 @@ "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - IPHONEOS_DEPLOYMENT_TARGET = 18.4; + IPHONEOS_DEPLOYMENT_TARGET = 18; LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 15.4; + MACOSX_DEPLOYMENT_TARGET = 15; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = me.oschly.Peered; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/Thesis/Chapters/2. Requirements.typ b/Thesis/Chapters/2. Requirements.typ index 2a3585a..787ebe9 100644 --- a/Thesis/Chapters/2. Requirements.typ +++ b/Thesis/Chapters/2. Requirements.typ @@ -1,7 +1,40 @@ #set heading(numbering: "1.1") = Wymagania systemowe +W poniższym rozdziale opiszę specyfikację wymagań dla projektowanej aplikacji do współtworzenia notatek w architekturze peer to peer. Celem jest określenie zakresu funkcjonalności oraz ograniczeń technologicznych, których będę się trzymać w ramach proponowanej implementacji. Wyodrębnię dwóch aktorów: + +- Użytkownika - osoba zarządzająca notatkami przez interfejs graficzny zaimplementowany w ramach implementacji, +- Klient - instancja implementowanej aplikacji na urządzeniu fizycznym. + +Same wymagania zostały podzielone odpowiednio na wymagania funkcjonalne i niefunkcjonalne. + == Wymagania funkcjonalne +- System musi umożliwiać rozgłaszanie swojej obecności w sieci lokalnej, by móc zostać wykrytym przez innych klientów. +- System musi umożliwiać wyszukiwanie innych aktywnych klientów znajdujących się w zakresie lokalnego otoczenia oraz lokalnej sieci. +- System musi pozwalać na wysyłanie zaproszeń do połączenia się z wykrytymi klientami. +- System musi na bieżąco wyświetlać listę aktualnie połączonych klientów. + +- System musi umożliwiać utworzenie nowej notatki tekstowej. +- System musi umożliwiać edycję treści istniejącej notatki. +- System musi umożliwiać trwałe usunięcie notatki. +- System musi automatycznie tworzyć unikalny identyfikator oraz znacznik czasowy dla nowych notatek. +- System musi pozwalać na zdefiniowanie tytułu notatki, będącego niezależnym parametrem od treści notatki. + +- System musi enkodować strukturę danych notatki do formatu umożliwiającego przesył notatki do połączonych klientów. +- System musi dekodować otrzymane zakodowane dane o notatce i przekształcić je w natywny obiekt reprezentujący notatkę w systemie. +- System musi automatycznie rozsyłać zaktualizowaną treść notatki do wszystkich aktualnie połączonych klientów w jak najkrótszym czasie od wykrycia zmian. +- System musi nadpisać istniejącą notatkę nowo otrzymaną kopią, gdy obie posiadają ten sam identyfikator, ale otrzymana kopia zawiera nowszy znacznik czasowy. + +- System musi zapisywać wszystkie notatki w trwałej pamięci urządzenia. +- System musi odświeżać interfejs z listą notatek w czasie rzeczywistym. + == Wymagania niefunkcjonalne -== Wydajność i skalowalność -== Bezpieczeństwo i prywatność \ No newline at end of file +- System musi wspierać urządzenia mobilne firmy Apple z zainstalowanymi systemami operacyjnymi iOS lub iPadOS w wersji 18.0 lub wyższej. +- Kod źródłowy powinien być napisany w języku Swift z wykorzystaniem deklaratywnego frameworka do budowy interfejsów graficznych - SwiftUI. +- Operacje zapisu do plików oraz procesy sieciowe muszą być wykonywane poza głównym wątkiem - wątkiem obsługującym interfejs graficzny aplikacji. +- Czas propagacji zmian w notatce do innego połączonego klienta nie powinien wynosić więcej niż 1 sekunda. +- System musi obsłużyć przypadek zerwania połączenia, bez uszkodzenia notatki oraz rzucania wyjątków uniemożliwiających dalsze funkcjonowanie systemu. +- System musi zapewnić szyfrowaną komunikację między klientami. +- Interfejs użytkownika musi być responsywny i dostosowywać się do różnych rozmiarów ekranów i ich orientacji w zakresie urządzeń tworzonych przez Apple. +- Wygląd aplikacji powinien spełniać oficjalne wytyczne projektowe Apple Human Interface Guideliens. +- System powinien automatycznie dostosowywać paletę kolorów interfejsu graficznego do aktualnie ustawionego motywu systemowego. diff --git a/Thesis/main.pdf b/Thesis/main.pdf index d456a0e..a593df2 100644 --- a/Thesis/main.pdf +++ b/Thesis/main.pdf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b6706377413762166aa43075bb1aa9ac8d445478b263fd5bd4d0417ff97bc15a -size 272760 +oid sha256:4cb5f37fe4c2f1b44599430d4851dd7895b70341ce55a4a4125c47adc5a65ca1 +size 283522