Co to jest wymaganie funkcjonalne w inżynierii oprogramowania?

⚡ Inteligentne podsumowanie

Wymagania funkcjonalne opisują każdą usługę, jaką musi oferować system oprogramowania, rejestrując dane wejściowe, zachowania i dane wyjściowe, aby programiści, testerzy i interesariusze biznesowi mieli wspólną, weryfikowalną definicję tego, co produkt musi faktycznie robić.

  • 📘 Definicja: Wymaganie funkcjonalne, zwane również specyfikacją funkcjonalną, określa, co system musi robić — dane wejściowe, zachowanie i dane wyjściowe, opisane z perspektywy użytkownika lub firmy.
  • 📄 Zakres dokumentu: Dokument wymagań funkcjonalnych obejmuje operacje na ekranie, logikę przetwarzania danych, raporty, przepływy pracy, uprawnienia i zgodność z przepisami.
  • 🗂️. Powszeche typy: Obsługa transakcji, reguły biznesowe, raportowanie, funkcje administracyjne, poziomy autoryzacji, audyt trackról, interfejsy zewnętrzne i wymogi prawne.
  • 💡 Przykłady: Wymagania funkcjonalne obejmują walidację logowania, rejestrowanie sprzedaży, przeglądanie przychodów według ról, integrację z bankowym API i zgodność z przepisami dotyczącymi ułatwień dostępu.
  • 🆚 Kontrast niefunkcjonalny: Wymagania funkcjonalne opisują, co system robi; wymagania niefunkcjonalne opisują, jak dobrze to robi — wydajność, bezpieczeństwo i użyteczność.
  • Najlepsze Praktyki: Zadbaj o to, aby wymagania były szczegółowe, możliwe do przetestowania i powiązane z celem biznesowym. Zbierz je za pomocą wywiadów i warsztatów.

Wymagania funkcjonalne w inżynierii oprogramowania

Co to jest wymaganie funkcjonalne?

A Wymagania funkcjonalne (FR) to opis usługi, którą musi oferować oprogramowanie. Opisuje system oprogramowania lub jego komponent. Funkcja jest definiowana przez dane wejściowe, zachowanie i dane wyjściowe. Może to być obliczenie, manipulacja danymi, proces biznesowy lub interakcja użytkownika, która definiuje, co system musi robić. Wymagania funkcjonalne w inżynierii oprogramowania są również nazywane Specyfikacja funkcjonalna.

Wymagania funkcjonalne mogą mieć różny zakres, od potrzeb interesariuszy wysokiego szczebla po szczegółową specyfikację matematyczną. Funkcjonalne oprogramowanie Wymagania odzwierciedlają zamierzone zachowanie systemu.

Co należy uwzględnić w dokumencie wymagań funkcjonalnych

Oto, co powinien obejmować dokument wymagań funkcjonalnych:

Przykładowe wymagania funkcjonalne

Przykładowe wymagania funkcjonalne

Dokument wymagań funkcjonalnych zazwyczaj obejmuje:

  • Szczegóły operacji przeprowadzanych na każdym ekranie
  • Logika obsługi danych, którą musi zastosować system
  • Descriptjonów raportów systemowych i innych wyników
  • Pełna informacja o przepływach pracy realizowanych przez system
  • Kto ma prawo tworzyć, modyfikować lub usuwać dane w systemie
  • W jaki sposób system spełnia obowiązujące wymogi regulacyjne i zgodności

Korzyści z wymagań funkcjonalnych

Główne korzyści płynące z dobrze napisanego dokumentu wymagań funkcjonalnych to:

  • Sprawdza, czy aplikacja dostarcza każdą określoną funkcję
  • Definiuje funkcjonalność systemu i jego podsystemów w jednym miejscu
  • W połączeniu z analizą wymagań wymagania funkcjonalne pomagają zidentyfikować brakujące potrzeby i wyjaśnić oczekiwane zachowanie systemu
  • Błędy wykryte na etapie wymagań są najtańsze do naprawienia
  • Wspiera cele, zadania i działania użytkownika

Rodzaje wymagań funkcjonalnych

Do powszechnych kategorii wymagań funkcjonalnych należą:

  • Obsługa transakcji
  • Zasady biznesowe
  • Wymagania certyfikacyjne
  • Wymagania dotyczące raportowania
  • Funkcje administracyjne
  • Poziomy autoryzacji
  • Audyt Tracking
  • Interfejsy zewnętrzne
  • Zarządzanie danymi historycznymi
  • Wymagania prawne i regulacyjne

Przykłady wymagań funkcjonalnych

Poniżej przedstawiono praktyczne przykłady wymagań funkcjonalnych:

  • Oprogramowanie będzie automatycznie weryfikować klientów w systemie ABC Contact Management.
  • System sprzedaży ma umożliwiać użytkownikom rejestrowanie sprzedaży klientów.
  • Kolor tła wszystkich okien w aplikacji powinien być niebieski z szesnastkową wartością RGB 0x0000FF.
  • Prawo wglądu do danych o przychodach mają wyłącznie pracownicy na stanowiskach kierowniczych.
  • System oprogramowania musi integrować się z bankowym API.
  • System oprogramowania musi spełniać Sekcja 508 wymagania dotyczące dostępności.

Wymagania funkcjonalne i niefunkcjonalne

Oto kluczowe różnice między wymaganiami funkcjonalnymi i niefunkcjonalnymi Inżynieria oprogramowania:

Parametry Wymagania funkcjonalne Wymaganie niefunkcjonalne
Co to jest Czasownik Atrybuty
Wymaganie Jest to obowiązkowe Nie jest to obowiązkowe
Typ przechwytywania Jest przechwytywany w przypadku użycia. Jest on ujęty jako atrybut jakości.
Wynik końcowy funkcja produktu Właściwości produktu
Przechwytywanie Łatwe do uchwycenia Trudno uchwycić
Cel Pomaga zweryfikować funkcjonalność oprogramowania. Pomaga zweryfikować działanie oprogramowania.
Obszar zainteresowania Skoncentruj się na wymaganiach użytkownika Koncentruje się na oczekiwaniach użytkownika.
Dokumenty Opisz działanie produktu Opisuje działanie produktu
Rodzaj testu Testy funkcjonalne, takie jak system, integracja, kompleksowe, Testowanie API, itp. Testowanie niefunkcjonalne, takie jak wydajność, obciążenie, użyteczność, Testy bezpieczeństwa, itp.
Wykonanie testu Wykonanie testu następuje przed testowaniem niefunkcjonalnym. Po testach funkcjonalnych
Informacje o produkcie cechy produktu Właściwości produktu

Najlepsze praktyki pisania wymagań funkcjonalnych

Oto najważniejsze dobre praktyki dotyczące pisania dokumentu wymagań funkcjonalnych:

  • Nie łącz dwóch wymagań w jedno; niech każde wymaganie będzie szczegółowe.
  • Zadbaj o to, aby każde wymaganie było tak kompletne i dokładne, jak to tylko możliwe.
  • Sporządź dokument zawierający wszystkie wymagania techniczne.
  • Dopasuj wszystkie wymagania do celów i zasad, które stanowią podstawę skutecznego dostarczania oprogramowania.
  • Zdobądź wymagania poprzez wywiady, warsztaty i nieformalne rozmowy.
  • Udokumentuj każde znane, zweryfikowane ograniczenie, które ma istotny wpływ na wymaganie.
  • Zapisz każde założenie w dokumencie.

Typowe błędy popełniane podczas pisania wymagań funkcjonalnych

Do typowych błędów popełnianych podczas tworzenia dokumentu wymagań funkcjonalnych należą:

  • Dodawanie nieuzasadnionych dodatkowych informacji, które wprowadzają programistów w błąd
  • Pominięto szczegóły potrzebne programistom do zbudowania tej funkcji.
  • Zasady mieszania, przykłady, scoping oświadczeń lub celów do samego wymogu.
  • Pominięcie informacji, które są niezbędne do pełnego i dokładnego przedstawienia wymogu.
  • Obrona istniejącego wymogu w momencie otrzymania prośby o zmianę, zamiast znalezienia właściwej odpowiedzi.
  • Wymagania dotyczące pisania nie są odniesione do żadnego celu ani zasady.

FAQ

Narzędzia AI grupują notatki z wywiadów, generują wersje robocze historyjek użytkownika, sygnalizują niejednoznaczne sformułowania i wykrywają duplikaty w dużych zestawach wymagań. Analitycy biznesowi nadal weryfikują każdą sugestię pod kątem rzeczywistych potrzeb interesariuszy, zanim trafi ona do zatwierdzonej linii bazowej.

Copilot i GPT tworzą projekty historyjek użytkownika, kryteriów akceptacji i deklaracji „mush” na podstawie krótkich komunikatów. Analityk biznesowy edytuje każdy wynik pod kątem testowalności i potwierdza zgodność z celami biznesowymi przed formalnym przeglądem.

Wymagania biznesowe określają cel istnienia projektu, na przykład wzrost przychodów lub zgodność z przepisami. Wymagania funkcjonalne określają, co system musi zrobić, aby osiągnąć ten cel, na przykład zweryfikować płatność lub wygenerować raport.

Użyj jasnego podmiotu, słowa „should” (should) i jednej sprawdzalnej czynności na każde stwierdzenie. Unikaj niejednoznacznych słów, takich jak „fast” (szybko), i określ jedno zachowanie, aby wymaganie można było sprawdzić jednym testem „zaliczony” lub „niezaliczony”.

EARS, czyli Easy Approach to Requirements Syntax, oferuje pięć szablonów: wszechobecny, sterowany zdarzeniami, sterowany stanem, funkcja opcjonalna i niepożądane zachowanie. Każdy z nich wymusza testowalną strukturę, taką jak: Po wyzwoleniu TRIGGER system powinien REAGOWAĆ.

Specyfikacja wymagań oprogramowania to główny dokument opisujący, co system musi robić. Wymagania funkcjonalne stanowią największą sekcję, obok interfejsów, wymagań niefunkcjonalnych, przypadków użycia i ograniczeń.

Wymagania funkcjonalne napędzają przypadki testowe w testach systemowych, integracyjnych, kompleksowych, API i akceptacji użytkownika. Każde wymaganie jest odwzorowywane na co najmniej jeden przypadek testowy, a wymagania Traceability Matrix potwierdza zasięg przed wydaniem.

Zespoły Agile wyrażają wymagania funkcjonalne jako historyjki użytkownika, używając formatu: „Jako rola, chcę mieć zdolność, więc ta wartość”. Kryteria akceptacji dołączone do historyjki przekształcają wymaganie w możliwą do przetestowania definicję ukończenia.

Podsumuj ten post następująco: