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 36 z 39.
Do czego służy polecenie git clone?
Polecenie `git clone` tworzy lokalną kopię istniejącego repozytorium. Najczęściej pobiera projekt ze zdalnego serwera na komputer programisty.
Czym różni się git clone od git init?
`git clone` kopiuje już istniejące repozytorium wraz z historią. `git init` tworzy nowe, puste repozytorium Git w wybranym katalogu.
Czym różni się git clone od git commit?
`git clone` pobiera repozytorium, a `git commit` zapisuje przygotowane zmiany w historii lokalnego repozytorium.
Czym różni się git clone od git merge?
`git clone` tworzy lokalną kopię repozytorium. `git merge` łączy zmiany z jednej gałęzi z drugą w istniejącym repozytorium.
Co oznacza zdalne repozytorium w Git?
Zdalne repozytorium to repozytorium znajdujące się na serwerze lub platformie takiej jak GitHub czy GitLab. Umożliwia współpracę wielu osób nad tym samym projektem.
Co zwykle oznacza nazwa origin po wykonaniu git clone?
`origin` to domyślna nazwa zdalnego repozytorium, z którego wykonano klonowanie. Dzięki niej można później pobierać i wysyłać zmiany.
Do czego służą gałęzie w Git?
Gałęzie pozwalają prowadzić równoległe prace nad projektem, np. nad nową funkcją lub poprawką błędu, bez naruszania stabilnej wersji kodu.
Jaka jest różnica między `git merge` a `git pull`?
`git merge` łączy zmiany z jednej gałęzi do drugiej. `git pull` pobiera zmiany ze zdalnego repozytorium i zwykle od razu próbuje je połączyć z bieżącą gałęzią.
Czym jest konflikt podczas scalania gałęzi?
Konflikt występuje, gdy Git nie potrafi automatycznie połączyć zmian, ponieważ ten sam fragment pliku został zmodyfikowany w różnych gałęziach.
Jak rozwiązuje się konflikt po poleceniu `git merge`?
Należy ręcznie poprawić pliki oznaczone przez Git jako konfliktowe, wybrać właściwą wersję kodu, a następnie wykonać `git add` i `git commit`.
Jak sprawdzić, na której gałęzi aktualnie pracuje użytkownik?
Można użyć polecenia `git branch`. Aktualna gałąź jest oznaczona gwiazdką.
Czy `git merge` usuwa gałąź po połączeniu zmian?
Nie. `git merge` tylko scala zmiany. Jeśli gałąź nie jest już potrzebna, można ją usunąć osobnym poleceniem, np. `git branch -d nazwa-galezi`.
Dlaczego analiza wymagań powinna zaczynać się od zrozumienia potrzeb klienta?
Ponieważ aplikacja ma rozwiązywać konkretny problem biznesowy klienta. Bez poznania celu projektu zespół może zaprojektować funkcje, które nie będą potrzebne.
Czym różnią się potrzeby biznesowe od wymagań technicznych?
Potrzeby biznesowe opisują cel i oczekiwany efekt dla klienta. Wymagania techniczne opisują sposób realizacji, np. technologie, bazę danych lub architekturę.
Dlaczego diagram Gantta nie jest najważniejszy na początku analizy wymagań?
Diagram Gantta służy do planowania harmonogramu prac. Ma sens dopiero wtedy, gdy wiadomo, co należy wykonać i jakie są oczekiwania klienta.
Jakie pytania warto zadać klientowi podczas analizy wymagań?
Warto zapytać, jaki problem ma rozwiązać aplikacja, kto będzie jej używał, jakie funkcje są najważniejsze oraz jakie efekty klient uzna za sukces projektu.
Jak aktywne słuchanie pomaga w analizie wymagań?
Pomaga lepiej zrozumieć intencje klienta i ogranicza ryzyko błędnej interpretacji. Polega m.in. na dopytywaniu, parafrazowaniu i potwierdzaniu ustaleń.
Dlaczego wybór języka programowania nie powinien być pierwszą decyzją w projekcie?
Technologię dobiera się do wymagań, a nie odwrotnie. Najpierw trzeba poznać cel aplikacji, użytkowników, funkcje i ograniczenia projektu.
Do czego służy pole tekstowe w interfejsie użytkownika?
Pole tekstowe służy do wpisywania danych tekstowych, np. loginu, hasła, adresu e-mail, komentarza lub wyszukiwanej frazy.
Czym różni się pole tekstowe od przycisku?
Pole tekstowe przyjmuje dane od użytkownika, natomiast przycisk służy do uruchomienia określonej akcji, np. zapisania formularza.
Czym różni się jednowierszowe pole tekstowe od wielowierszowego?
Jednowierszowe pole tekstowe służy do krótkich danych, np. loginu. Wielowierszowe umożliwia wpisanie dłuższej treści, np. opisu lub komentarza.
Jakie kontrolki odpowiadają polu tekstowemu w popularnych technologiach?
W HTML jest to najczęściej `input type="text"` lub `textarea`, w WPF `TextBox`, a w Androidzie `EditText`.
Dlaczego dane wpisane w pole tekstowe powinny być walidowane?
Walidacja pozwala sprawdzić, czy użytkownik wpisał dane w poprawnym formacie, np. czy adres e-mail zawiera znak `@` albo czy pole wymagane nie jest puste.
Jaką rolę pełni klient w architekturze klient-serwer?
Klient inicjuje komunikację, wysyłając żądania do serwera. Może to być np. przeglądarka internetowa, aplikacja mobilna lub program desktopowy.
Jaką rolę pełni serwer w architekturze klient-serwer?
Serwer odbiera żądania od klientów, przetwarza je, korzysta z danych i odsyła odpowiedzi. Może obsługiwać wielu klientów jednocześnie.
Dlaczego odpowiedź o bezpośredniej komunikacji między klientami jest błędna?
Bezpośrednia komunikacja między urządzeniami klienckimi jest charakterystyczna raczej dla modelu peer-to-peer. W architekturze klient-serwer komunikacja odbywa się przez serwer.
Na czym polega schemat żądanie-odpowiedź?
Klient wysyła żądanie, np. o pobranie danych, a serwer je przetwarza i zwraca odpowiedź. Tak działa m.in. komunikacja HTTP w aplikacjach internetowych.
Jakie są przykłady systemów działających w architekturze klient-serwer?
Przykładami są strony WWW, sklepy internetowe, systemy bankowości elektronicznej, poczta e-mail i aplikacje mobilne korzystające z API.
Jakie są zalety centralnego przechowywania danych na serwerze?
Ułatwia to zarządzanie danymi, wykonywanie kopii zapasowych, kontrolę dostępu i aktualizację systemu. Klienci korzystają z jednej wspólnej wersji danych.
Dlaczego serwer nie jest pasywnym odbiorcą danych?
Serwer nie tylko odbiera dane, ale również wykonuje operacje, sprawdza uprawnienia, przetwarza informacje i generuje odpowiedź dla klienta.
Dlaczego dziedziczenie jest kojarzone z programowaniem obiektowym?
Dziedziczenie pozwala tworzyć nowe klasy na podstawie istniejących klas. Jest to jeden z głównych mechanizmów ponownego użycia kodu w programowaniu obiektowym.
Czym jest polimorfizm w programowaniu obiektowym?
Polimorfizm pozwala używać różnych obiektów przez wspólny typ, interfejs lub klasę bazową. Ta sama metoda może działać inaczej w zależności od konkretnego obiektu.
Czym programowanie obiektowe różni się od proceduralnego?
Programowanie proceduralne skupia się na procedurach i kolejnych krokach działania programu. Programowanie obiektowe organizuje kod wokół klas i obiektów, które łączą dane z metodami.
Jakie są podstawowe filary programowania obiektowego?
Najczęściej wymienia się hermetyzację, dziedziczenie, polimorfizm oraz abstrakcję. W egzaminach szczególnie często pojawiają się dziedziczenie i polimorfizm.
Dlaczego programowanie strukturalne nie jest poprawną odpowiedzią w tym pytaniu?
Programowanie strukturalne dotyczy głównie porządkowania kodu za pomocą instrukcji warunkowych, pętli i podprogramów. Nie akcentuje ono dziedziczenia ani polimorfizmu.
Dlaczego programowanie funkcyjne nie pasuje do dziedziczenia i polimorfizmu?
Programowanie funkcyjne skupia się na funkcjach, wyrażeniach i unikaniu zmiennego stanu. Dziedziczenie i polimorfizm są typowe dla podejścia obiektowego.
Jak rozpoznać w zadaniu, że chodzi o programowanie obiektowe?
Należy szukać pojęć takich jak klasa, obiekt, metoda, hermetyzacja, dziedziczenie, polimorfizm, interfejs lub klasa abstrakcyjna. Są to charakterystyczne elementy OOP.
Dlaczego system ochrony aplikacji jest ważny w dokumentacji technicznej?
Opisuje mechanizmy zabezpieczające dane i dostęp do aplikacji. Dzięki niemu wiadomo, jakie metody ochrony należy zastosować podczas projektowania i wdrażania systemu.
Czym system ochrony aplikacji różni się od opisu architektury klient-serwer?
Opis architektury klient-serwer pokazuje podział aplikacji na klienta i serwer oraz sposób komunikacji. System ochrony aplikacji skupia się na zabezpieczeniach, takich jak autoryzacja, szyfrowanie i ochrona danych.
Jakie mechanizmy mogą być opisane w systemie ochrony aplikacji?
Mogą to być m.in. logowanie użytkowników, role i uprawnienia, szyfrowanie transmisji, haszowanie haseł, kopie zapasowe oraz logowanie zdarzeń bezpieczeństwa.
Jaka jest różnica między uwierzytelnianiem a autoryzacją?
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 harmonogram zarządzania zadaniami nie służy do ustalania metod ochrony danych?
Harmonogram opisuje terminy, kolejność i organizację prac projektowych. Nie określa bezpośrednio zabezpieczeń aplikacji ani sposobów ochrony danych.
Jaką rolę w ochronie danych pełni analiza ryzyka?
Analiza ryzyka pozwala określić możliwe zagrożenia dla danych i ocenić ich skutki. Na tej podstawie dobiera się odpowiednie zabezpieczenia aplikacji.
Jakie znaczenie ma RODO przy projektowaniu ochrony danych w aplikacji?
RODO określa wymagania dotyczące przetwarzania i ochrony danych osobowych. Aplikacja powinna być projektowana tak, aby ograniczać dostęp do danych i zapewniać ich poufność, integralność oraz rozliczalność.
Do czego służy menu w interfejsie użytkownika?
Menu służy do nawigacji oraz udostępniania użytkownikowi funkcji aplikacji w uporządkowanej formie. Pozwala szybko przechodzić między sekcjami lub uruchamiać polecenia.
Czym menu różni się od rozwijanej listy?
Menu najczęściej prowadzi do sekcji lub funkcji aplikacji, a rozwijana lista służy do wyboru jednej wartości z dostępnych opcji, np. kraju lub kategorii.
Czym menu różni się od obszaru tekstowego?
Menu jest elementem nawigacyjnym, natomiast obszar tekstowy służy do wpisywania dłuższego tekstu przez użytkownika.
Czym menu różni się od przycisku opcji?
Przycisk opcji, czyli radio button, służy do wyboru jednej z kilku opcji. Menu służy do organizowania nawigacji lub dostępu do poleceń.
Jakie są popularne rodzaje menu w aplikacjach?
Popularne rodzaje to menu główne, menu boczne, menu rozwijane, menu kontekstowe oraz pasek nawigacyjny, czyli navbar.
Dlaczego menu jest ważne dla użyteczności aplikacji?
Dobre menu ułatwia użytkownikowi znalezienie potrzebnych funkcji i zmniejsza liczbę błędów podczas korzystania z aplikacji.
Czym jest aplikacja cross-platform?
To aplikacja zaprojektowana tak, aby mogła działać na różnych platformach, np. Windows, Linux, macOS, Android lub iOS. Często wykorzystuje wspólną bazę kodu zamiast osobnych wersji dla każdego systemu.
Dlaczego pisanie osobnego kodu dla każdej platformy nie zawsze jest najlepszym rozwiązaniem?
Zwiększa koszt, czas tworzenia i trudność utrzymania aplikacji. Każdą zmianę trzeba wtedy wdrażać oddzielnie dla wielu wersji.
Na czym polega responsywność interfejsu?
Responsywność oznacza, że interfejs automatycznie dopasowuje się do rozmiaru ekranu, rozdzielczości i sposobu korzystania z urządzenia.
Czy responsywne projektowanie oznacza to samo co wieloplatformowość?
Nie dokładnie. Wieloplatformowość dotyczy działania aplikacji na różnych systemach, a responsywność dotyczy dopasowania interfejsu do różnych ekranów i urządzeń.
Jakie technologie pomagają tworzyć responsywny interfejs aplikacji webowej?
Najczęściej używa się HTML, CSS, media queries, flexbox, CSS grid oraz frameworków takich jak Bootstrap.
Dlaczego koncentrowanie się wyłącznie na estetyce aplikacji jest błędem?
Aplikacja musi być nie tylko ładna, ale też funkcjonalna, czytelna, dostępna i wygodna na różnych urządzeniach oraz systemach.
Na czym polega architektura klient-serwer?
Jest to model, w którym klient wysyła żądania, a serwer je obsługuje i zwraca odpowiedzi. Serwer zwykle przechowuje dane oraz realizuje logikę biznesową lub jej część.
Dlaczego scentralizowane przechowywanie danych jest ważne w modelu klient-serwer?
Pozwala utrzymywać jedną aktualną wersję danych dostępną dla wielu klientów. Ułatwia też zarządzanie bezpieczeństwem, kopiami zapasowymi i uprawnieniami.
Jaka jest rola klienta w architekturze klient-serwer?
Klient odpowiada za komunikację z użytkownikiem i wysyłanie żądań do serwera. Może to być przeglądarka, aplikacja mobilna lub program desktopowy.
Jaka jest rola serwera w architekturze klient-serwer?
Serwer odbiera żądania klientów, przetwarza je i zwraca odpowiedzi. Często przechowuje dane, obsługuje autoryzację i wykonuje operacje biznesowe.
Dlaczego odpowiedź o braku podziału na klienta i serwer jest błędna?
Architektura klient-serwer opiera się właśnie na podziale ról. Klient i serwer mają różne zadania, dlatego brak takiego podziału zaprzecza tej architekturze.
Czy komunikacja w architekturze klient-serwer musi być wyłącznie synchroniczna?
Nie. Komunikacja może być synchroniczna lub asynchroniczna, zależnie od technologii i sposobu działania aplikacji. Nie jest to cecha fundamentalna tego modelu.
Jaki jest przykład systemu działającego w architekturze klient-serwer?
Przykładem jest aplikacja internetowa, w której przeglądarka wysyła żądania HTTP do serwera, a serwer zwraca strony, dane JSON lub wyniki operacji na bazie danych.