Pytania pomocnicze - INF.04

Projektowanie, programowanie i testowanie aplikacji

Pytania pomocnicze rozwijające tematy z pytań egzaminacyjnych. Każde pytanie ma krótką odpowiedź, która pomaga utrwalić wiedzę i przygotować się do egzaminu. Łącznie: 2975.
Strona 37 z 39.

Czym jest UX w projektowaniu aplikacji?

UX to doświadczenie użytkownika podczas korzystania z aplikacji. Obejmuje wygodę, zrozumiałość, szybkość wykonania zadania i ogólne odczucia użytkownika.

Dlaczego czytelne czcionki są ważne w UX?

Czytelna czcionka ułatwia odbiór informacji i zmniejsza ryzyko błędów. Użytkownik nie musi się domyślać, co znajduje się na ekranie.

Co oznacza intuicyjny układ elementów interfejsu?

Oznacza takie rozmieszczenie przycisków, pól i menu, aby użytkownik łatwo rozumiał, co może zrobić i gdzie znaleźć potrzebną funkcję.

Dlaczego przypadkowe rozmieszczenie przycisków jest przykładem złego UX?

Użytkownik traci czas na szukanie funkcji i może popełniać błędy. Interfejs staje się mniej przewidywalny i mniej wygodny.

Dlaczego możliwość cofnięcia akcji poprawia UX?

Daje użytkownikowi poczucie kontroli i bezpieczeństwa. Jeśli popełni błąd, może go łatwo naprawić.

Czy zastosowanie jednego koloru w całym interfejsie zawsze poprawia UX?

Nie. Kolory powinny pomagać odróżniać elementy, sygnalizować ważność i prowadzić uwagę użytkownika. Jeden kolor może utrudnić orientację w interfejsie.

Jaka jest różnica między UI a UX?

UI dotyczy wyglądu i elementów interfejsu, np. przycisków, menu i formularzy. UX dotyczy całego doświadczenia użytkownika podczas korzystania z aplikacji.

Dlaczego wybór struktury danych wpływa na efektywność aplikacji?

Ponieważ różne struktury danych mają różny czas dostępu, wyszukiwania, dodawania i usuwania elementów. Źle dobrana struktura może znacząco spowolnić program.

Co oznacza złożoność obróbki danych?

Oznacza koszt wykonania operacji na danych, np. ile czasu lub pamięci wymaga wyszukanie, posortowanie albo zapisanie elementu. Często opisuje się ją za pomocą notacji Big O.

Jakie operacje warto przeanalizować przed wyborem struktury danych?

Należy sprawdzić, jak często aplikacja będzie dodawać, usuwać, wyszukiwać, sortować i aktualizować dane. Najczęstsze operacje powinny być możliwie szybkie.

Kiedy mapa lub słownik jest lepszym wyborem niż lista?

Mapa jest lepsza, gdy dane mają być szybko wyszukiwane po kluczu, np. identyfikatorze użytkownika. Lista sprawdza się lepiej przy prostym przechowywaniu elementów w kolejności.

Czy język programowania jest jedynym czynnikiem przy projektowaniu struktury danych?

Nie. Język programowania może narzucać dostępne typy i biblioteki, ale ważniejsze są wymagania aplikacji, rodzaj danych, operacje na danych oraz oczekiwana wydajność.

Dlaczego zużycie pamięci jest ważne przy strukturach danych?

Niektóre struktury danych przyspieszają operacje, ale wymagają więcej pamięci. W aplikacjach mobilnych, wbudowanych lub pracujących na dużych zbiorach danych ma to duże znaczenie.

Jak wymagania aplikacji pomagają dobrać strukturę danych?

Wymagania wskazują, jakie dane będą przechowywane i jak będą używane. Na tej podstawie można dobrać strukturę, która najlepiej obsłuży typowe operacje aplikacji.

Na czym polega architektura klient-serwer?

Architektura klient-serwer polega na podziale aplikacji na klienta, który wysyła żądania, oraz serwer, który je obsługuje i zwraca odpowiedzi. Klient zwykle odpowiada za interfejs użytkownika, a serwer za logikę biznesową, dane i bezpieczeństwo.

Dlaczego w architekturze klient-serwer przetwarzanie danych często odbywa się po stronie serwera?

Serwer jest centralnym miejscem przetwarzania, ponieważ ma dostęp do bazy danych, logiki aplikacji i mechanizmów bezpieczeństwa. Ułatwia to kontrolę danych, aktualizacje oraz zarządzanie wieloma klientami.

Jaka jest rola klienta w aplikacji klient-serwer?

Klient odpowiada głównie za komunikację z użytkownikiem, prezentację danych i wysyłanie żądań do serwera. Przykładem klienta może być przeglądarka internetowa, aplikacja mobilna lub desktopowa.

Jaka jest rola serwera w aplikacji klient-serwer?

Serwer odbiera żądania od klientów, wykonuje operacje, przetwarza dane i odsyła wyniki. Może również obsługiwać uwierzytelnianie, autoryzację oraz dostęp do bazy danych.

Czym różni się architektura klient-serwer od aplikacji działającej wyłącznie offline?

W architekturze klient-serwer aplikacja wymaga komunikacji z serwerem, który wykonuje część zadań lub udostępnia dane. Aplikacja offline działa lokalnie i nie potrzebuje stałego połączenia z serwerem.

Dlaczego brak podziału na klienta i serwer nie pasuje do architektury klient-serwer?

Podział na klienta i serwer jest podstawową cechą tej architektury. Bez tego podziału aplikacja nie realizuje modelu, w którym jedna strona wysyła żądania, a druga je obsługuje.

Dlaczego architektura modularna ułatwia rozwijanie aplikacji?

Ponieważ aplikacja jest podzielona na niezależne części. Zmianę można wprowadzić w jednym module bez dużego ryzyka uszkodzenia całego systemu.

Czym jest moduł w aplikacji?

Moduł to wydzielona część programu odpowiedzialna za konkretną funkcję, np. logowanie, płatności lub raportowanie.

Dlaczego tworzenie aplikacji bez specyfikacji technicznej jest ryzykowne?

Brak specyfikacji utrudnia ustalenie, co aplikacja ma robić i jak ma być zbudowana. Prowadzi to do chaosu, błędów i trudniejszych zmian.

Jak dokumentacja wpływa na możliwość późniejszej modyfikacji kodu?

Dokumentacja pomaga zrozumieć działanie aplikacji i decyzje projektowe. Dzięki temu łatwiej wprowadzać zmiany oraz poprawiać błędy.

Dlaczego skupienie się wyłącznie na estetyce aplikacji nie wystarcza?

Wygląd aplikacji jest ważny, ale nie zastępuje poprawnej struktury kodu. Aplikacja może wyglądać dobrze, a jednocześnie być trudna w rozbudowie.

Jaki związek ma modularność z testowaniem aplikacji?

Moduły można testować osobno, co ułatwia wykrywanie błędów. Zmiana w jednym module wymaga zwykle przetestowania mniejszej części systemu.

Dlaczego interfejs aplikacji powinien być dostosowany do różnych urządzeń?

Ponieważ urządzenia różnią się rozmiarem ekranu, sposobem obsługi i możliwościami technicznymi. Dostosowany interfejs poprawia wygodę, czytelność i efektywność pracy użytkownika.

Czy przystosowanie interfejsu do wielu platform eliminuje konieczność testowania?

Nie. Aplikację nadal trzeba testować na różnych urządzeniach, systemach i rozdzielczościach, ponieważ błędy UI mogą występować tylko w konkretnych warunkach.

Jaka jest różnica między aplikacją cross-platform a responsywnym interfejsem?

Aplikacja cross-platform może działać na wielu systemach lub urządzeniach. Responsywny interfejs oznacza, że wygląd i układ aplikacji dostosowują się do warunków użycia.

Jakie elementy UI najczęściej wymagają dostosowania do urządzeń mobilnych?

Najczęściej dostosowuje się menu, przyciski, formularze, rozmiary czcionek, obrazy oraz układ treści. Ważne jest też zapewnienie wygodnej obsługi dotykiem.

Dlaczego odpowiedź o unifikacji kodu nie jest najlepsza w tym pytaniu?

Dostosowanie interfejsu dotyczy przede wszystkim jakości korzystania z aplikacji, a nie samej organizacji kodu. Kod może być wspólny częściowo, ale celem jest wygoda użytkownika na danej platformie.

Co może się stać, jeśli aplikacja nie ma interfejsu dostosowanego do platformy?

Użytkownik może mieć problemy z odczytaniem treści, klikaniem przycisków lub korzystaniem z formularzy. Może to prowadzić do błędów, frustracji i rezygnacji z aplikacji.

Dlaczego bezpieczeństwo aplikacji powinno być planowane już na etapie projektu?

Ponieważ późniejsze dodawanie zabezpieczeń jest trudniejsze, droższe i często mniej skuteczne. Projekt powinien od początku uwzględniać ochronę danych, kontrolę dostępu i bezpieczne przetwarzanie informacji.

Jakie dane użytkowników wymagają szczególnej ochrony w aplikacji?

Szczególnej ochrony wymagają m.in. dane osobowe, dane logowania, adresy e-mail, numery telefonów, dane finansowe oraz informacje medyczne. Ich wyciek może naruszać prywatność i przepisy prawa.

Czym różni się uwierzytelnianie od autoryzacji?

Uwierzytelnianie sprawdza, kim jest użytkownik, np. przez login i hasło. Autoryzacja określa, do jakich funkcji i danych ten użytkownik ma dostęp.

Dlaczego hasła nie powinny być przechowywane w bazie danych jako zwykły tekst?

W przypadku wycieku bazy atakujący od razu poznałby hasła użytkowników. Hasła powinny być przechowywane jako bezpieczne skróty z użyciem soli i odpowiedniego algorytmu.

Jak HTTPS pomaga chronić dane użytkowników?

HTTPS szyfruje komunikację między przeglądarką a serwerem. Dzięki temu dane, np. login i hasło, nie powinny być możliwe do łatwego podsłuchania w sieci.

Dlaczego testowanie aplikacji jest ważne dla bezpieczeństwa?

Testowanie pozwala wykryć błędy, luki i nieprawidłową kontrolę dostępu przed wdrożeniem aplikacji. Pominięcie testów zwiększa ryzyko wycieku lub uszkodzenia danych.

Czy wygląd interfejsu użytkownika wpływa bezpośrednio na bezpieczeństwo danych?

Sam wygląd interfejsu nie zabezpiecza danych. Może poprawiać użyteczność, ale bezpieczeństwo zależy od mechanizmów takich jak szyfrowanie, walidacja, kontrola dostępu i aktualizacje.

Dlaczego oczekiwania klienta trzeba zapisywać w formie dokumentacji?

Dokumentacja porządkuje ustalenia i zmniejsza ryzyko nieporozumień. Programiści otrzymują jasny opis funkcji, ograniczeń technicznych i oczekiwanego działania systemu.

Czym różnią się wymagania funkcjonalne od technicznych?

Wymagania funkcjonalne opisują, co system ma robić, np. logowanie lub generowanie raportów. Wymagania techniczne opisują, jakich technologii, środowisk, integracji lub ograniczeń należy użyć.

Dlaczego same makiety ekranów nie wystarczają jako dokumentacja dla programistów?

Makiety pokazują wygląd interfejsu, ale często nie opisują logiki działania, walidacji danych, obsługi błędów ani wymagań technicznych. Dlatego powinny być uzupełnione opisem funkcji.

Jaką rolę pełni analiza wymagań przed napisaniem dokumentacji technicznej?

Analiza wymagań pozwala zrozumieć potrzeby klienta, uporządkować je i wykryć braki lub sprzeczności. Dopiero na tej podstawie można przygotować użyteczną dokumentację dla zespołu.

Co oznacza, że wymaganie powinno być jednoznaczne i testowalne?

Jednoznaczne wymaganie nie pozostawia miejsca na różne interpretacje. Testowalne wymaganie pozwala sprawdzić, czy dana funkcja została wykonana poprawnie.

Jakie informacje są szczególnie przydatne programistom w dokumentacji projektu?

Programiści potrzebują opisu funkcji, danych wejściowych i wyjściowych, reguł biznesowych, obsługi błędów, ograniczeń technicznych oraz integracji z innymi systemami.

Dlaczego rozmowa wyłącznie z programistami nie wystarcza do przełożenia oczekiwań klienta?

Programiści nie zawsze znają pełny kontekst biznesowy klienta. Potrzebna jest komunikacja z klientem, analiza potrzeb i zapisanie ustaleń w formie dokumentu.

Czym jest cel projektu informatycznego?

Cel projektu informatycznego określa, jaki problem ma zostać rozwiązany i jaki rezultat ma zostać osiągnięty. Powinien wskazywać sens realizacji projektu, a nie tylko listę zadań.

Dlaczego określenie problemu jest ważne na początku projektu?

Bez jasnego określenia problemu zespół może tworzyć rozwiązanie, które nie odpowiada rzeczywistym potrzebom użytkownika lub klienta. Problem wyznacza kierunek dalszej analizy i projektowania.

Czym różni się cel projektu od harmonogramu?

Cel projektu mówi, co i po co ma zostać osiągnięte. Harmonogram określa, kiedy i w jakiej kolejności będą realizowane poszczególne działania.

Czy wybór technologii jest celem projektu?

Nie. Wybór technologii jest środkiem do realizacji celu, np. wyborem narzędzi, języków programowania lub frameworków potrzebnych do wykonania rozwiązania.

Jak analiza wymagań wiąże się z celem projektu?

Analiza wymagań pomaga doprecyzować, czego oczekuje klient lub użytkownik. Dzięki niej można sprawdzić, czy planowane rozwiązanie rzeczywiście realizuje cel projektu.

Dlaczego ocena postępów nie jest tym samym co cel projektu?

Ocena postępów służy kontroli wykonywania prac w trakcie projektu. Cel projektu określa natomiast oczekiwany końcowy efekt i powód realizacji projektu.

Na czym polega faza analizy w projekcie informatycznym?

Faza analizy polega na poznaniu potrzeb użytkownika i opisaniu wymagań wobec systemu. Jej celem jest ustalenie, co aplikacja ma robić.

Dlaczego identyfikacja wymagań użytkownika nie należy głównie do etapu wdrażania?

Wdrażanie polega na uruchomieniu gotowego systemu w środowisku użytkownika. Wymagania powinny być znane dużo wcześniej, przed projektowaniem i programowaniem.

Czym różni się planowanie od analizy?

Planowanie dotyczy organizacji projektu, np. harmonogramu, kosztów i zasobów. Analiza dotyczy ustalenia potrzeb użytkownika i funkcji systemu.

Jakie dokumenty mogą powstać po analizie wymagań?

Mogą powstać specyfikacja wymagań, opis przypadków użycia, lista funkcji systemu, diagramy procesów lub makiety interfejsu.

Dlaczego błędy w analizie wymagań są groźne dla projektu?

Jeśli wymagania zostaną źle rozpoznane, zespół może stworzyć system niezgodny z potrzebami użytkownika. Poprawki na późniejszych etapach są zwykle droższe i trudniejsze.

Jaka jest rola użytkownika lub klienta podczas analizy?

Użytkownik lub klient dostarcza informacji o swoich potrzebach, problemach i oczekiwaniach. Bez jego udziału trudno poprawnie określić wymagania systemu.

Dlaczego umiejętności członków zespołu są ważne przy planowaniu projektu?

Pozwalają przypisać właściwe osoby do odpowiednich zadań. Dzięki temu praca jest efektywniejsza, a ryzyko błędów i opóźnień mniejsze.

Czym różnią się kompetencje techniczne od miękkich w zespole projektowym?

Kompetencje techniczne dotyczą wiedzy specjalistycznej, np. programowania lub testowania. Kompetencje miękkie dotyczą współpracy, komunikacji i odpowiedzialności.

Jak doświadczenie członka zespołu wpływa na realizację projektu?

Doświadczenie pomaga szybciej rozwiązywać problemy i przewidywać ryzyka. Osoby bardziej doświadczone mogą też wspierać mniej zaawansowanych członków zespołu.

Czy budżet projektu wystarczy do prawidłowej organizacji zasobów ludzkich?

Nie. Budżet jest ważny, ale nie zastępuje analizy kompetencji, doświadczenia i dostępności członków zespołu.

Co może się stać, jeśli zadania zostaną przydzielone osobom bez odpowiednich kompetencji?

Może dojść do opóźnień, błędów technicznych, obniżenia jakości produktu i konieczności poprawek.

Jakie czynniki warto uwzględnić przy przydzielaniu zadań w projekcie IT?

Należy uwzględnić umiejętności, doświadczenie, dostępność, zakres odpowiedzialności oraz stopień trudności danego zadania.