KWALIFIKACJA INF3 - WRZESIEŃ 2014

PYTANIE NR 31.
Wskaż prawidłową kolejność tworzenia aplikacji.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Prawidłowa kolejność wynika z zależności między etapami: najpierw trzeba zrozumieć potrzeby klienta (analiza), potem je jednoznacznie opisać (specyfikacja), następnie wykonać rozwiązanie (tworzenie/implementacja), sprawdzić je (testy) i dopiero wtedy udostępnić użytkownikom (wdrożenie).

Pełne wyjaśnienie:

W klasycznym, uporządkowanym ujęciu procesu wytwarzania oprogramowania (często omawianym w szkole jako model "krok po kroku") etapy wynikają z tego, że kolejny etap korzysta z efektów poprzedniego.

1) Analiza wymagań klienta polega na zebraniu i zrozumieniu potrzeb: co system ma robić, dla kogo, w jakich ograniczeniach. Bez tego łatwo stworzyć funkcje nieprzydatne albo pominąć krytyczne scenariusze.

2) Specyfikacja wymagań porządkuje wynik analizy i zapisuje go w sposób jednoznaczny (np. wymagania funkcjonalne i niefunkcjonalne, kryteria akceptacji). Specyfikacja jest podstawą do projektowania, implementacji oraz przygotowania testów.

3) Tworzenie (implementacja) to budowa aplikacji zgodnie z ustalonymi wymaganiami. W tym momencie powstaje kod, konfiguracja i elementy niezbędne do uruchomienia rozwiązania.

4) Testy następują po implementacji, bo trzeba mieć co weryfikować. Testowanie (jednostkowe, integracyjne, systemowe) ma wykryć błędy oraz sprawdzić zgodność z wymaganiami przed udostępnieniem użytkownikom.

5) Wdrażanie jest na końcu, ponieważ oznacza udostępnienie aplikacji na środowisku docelowym (np. produkcyjnym). Wdrożenie przed testami zwiększa ryzyko awarii i niezadowolenia użytkowników.

Dlaczego pozostałe odpowiedzi są błędne?

  • Warianty rozpoczynające od specyfikacji przed analizą odwracają logikę: trudno specyfikować coś, czego jeszcze nie zrozumiano i nie uzgodniono.
  • Warianty zaczynające od tworzenia pomijają fundament procesu: implementacja bez wymagań prowadzi do "zgadywania" funkcjonalności.
  • Warianty z wdrożeniem przed testami ignorują etap weryfikacji jakości i zgodności z wymaganiami.

Na egzaminie warto szukać odpowiedzi, w której testy poprzedzają wdrożenie, a analiza poprzedza specyfikację.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Analiza wymagań to etap zbierania i doprecyzowania potrzeb interesariuszy: jakie funkcje mają powstać, jakie są ograniczenia, priorytety i scenariusze użycia. Jej wynikiem są uzgodnione potrzeby biznesowe, które później można opisać formalniej w specyfikacji.
Analiza skupia się na zrozumieniu problemu i rozmowie z klientem, a specyfikacja to uporządkowany, jednoznaczny zapis ustaleń (np. wymagania funkcjonalne i niefunkcjonalne). Specyfikacja ma być na tyle precyzyjna, by dało się na jej podstawie implementować i testować.
Testy mają wykryć błędy i sprawdzić zgodność z wymaganiami, zanim aplikacja trafi do użytkowników. Wdrożenie bez testów zwiększa ryzyko awarii, utraty danych i kosztownych poprawek "na produkcji". Dlatego w klasycznej kolejności testowanie poprzedza wdrożenie.
Po implementacji zwykle wykonuje się testy jednostkowe (poziom funkcji/klas), integracyjne (współpraca modułów), systemowe (cały system) oraz akceptacyjne (czy spełnia wymagania klienta). Dobór zależy od projektu, ale sens jest wspólny: weryfikacja jakości przed wdrożeniem.
W podejściach Agile te aktywności nadal istnieją, ale często są wykonywane iteracyjnie i równolegle w krótkich cyklach (np. sprintach). Na potrzeby pytań szkolnych często przyjmuje się jednak uporządkowany model, w którym wymagania poprzedzają implementację, a testy poprzedzają wdrożenie.
Specyfikację tworzy się po zebraniu i przeanalizowaniu wymagań, gdy ustalenia są już wystarczająco jasne, by je jednoznacznie zapisać. Dobrze przygotowana specyfikacja ułatwia planowanie prac, komunikację w zespole oraz przygotowanie przypadków testowych.
Najczęstsze błędy to: zaczynanie od kodowania bez wymagań, mylenie analizy ze specyfikacją oraz przesuwanie wdrożenia przed testy. Uczniowie często kierują się intuicją ("najpierw coś zrobić"), zamiast zależnościami: testy wymagają działającej implementacji, a implementacja wymaga ustaleń.
Wdrażanie to czynności prowadzące do udostępnienia aplikacji na środowisku docelowym: publikacja wersji, konfiguracja, migracje, ustawienia serwera/usługi, a często także monitoring i plan wycofania (rollback). To etap po weryfikacji działania aplikacji w testach.
Daje wspólne zrozumienie celu, ogranicza ryzyko "budowania nie tego, co trzeba" i pozwala zaplanować testy oraz harmonogram. W praktyce skraca czas poprawek, bo błędy wykryte na etapie wymagań są zwykle tańsze do naprawy niż po wdrożeniu.
Ucz się zależności między etapami: wymagania → implementacja → testy → wdrożenie. Ćwicz na krótkich scenariuszach projektowych i dopasowuj działania do etapu (np. "spisanie wymagań" vs "uruchomienie na produkcji"). Zwracaj uwagę na pułapkę: wdrożenie nie powinno wyprzedzać testów.
info

Statystycznie 63% uczniów zna prawidłową odpowiedź. średnie

Źródła:

  • Ian Sommerville, "Software Engineering", 10th Edition, rozdz. 2 (Software processes) i 4 (Requirements engineering), Pearson, 2015
  • Roger S. Pressman, Bruce R. Maxim, "Software Engineering: A Practitioner's Approach", 8th Edition, rozdziały o process models oraz requirements, McGraw-Hill Education, 2014
  • ISO/IEC/IEEE 12207:2017, "Systems and software engineering — Software life cycle processes", opis procesów cyklu życia oprogramowania, 2017

Materiały:

  • Podręczniki z inżynierii oprogramowania (rozdziały o procesach wytwórczych i SDLC)
  • Materiały dydaktyczne o modelu kaskadowym i iteracyjnym (porównanie etapów)
  • Dokumentacja narzędzi CI/CD (dla zrozumienia miejsca testów i wdrożenia w praktyce)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego