Dlaczego różnice pomiędzy wymaganiami funkcjonalnymi aplikacji i wymaganiami niefunkcjonalnymi aplikacji jest ważna?

Dlaczego różnice pomiędzy wymaganiami funkcjonalnymi aplikacji i wymaganiami niefunkcjonalnymi aplikacji jest ważna?

Celem tworzenia aplikacji dedykowanej jest dostarczenie wysokiej jakości aplikacji, takiej, jakiej klient oczekiwał. Wymagania funkcjonalne aplikacji są podstawowym sposobem, w jaki firma - klient komunikuje swoje wymagania zespołowi projektowemu. Wymagania funkcjonalne aplikacji pomagają utrzymać zespół projektowy we właściwym kierunku.

Niejasne wymagania aplikacji dedykowanej prowadzą do źle zdefiniowanego zakresu, który tworzy wiele wyzwań od początku projektu. Źle zdefiniowany zakres prowadzi do wydłużenia harmonogramu i wzrostu kosztów. Firma, klient może nie mieć czasu i pieniędzy na inwestycje, więc po prostu akceptuje produkt o niskiej jakości.

Zazwyczaj firma ma zarówno potrzeby, jak i pragnienia, czyli wymagania niefunkcjonalne aplikacji. Po zapoznaniu się z kosztorysem może poprosić o zmniejszenie zakresu. Zazwyczaj usunięcie niektórych wymagań niefunkcjonalnych zmniejsza zakres. Duża ilość wymagań niefunkcjonalnych aplikacji może szybko podnieść koszty, podczas gdy niewystarczające wymagania niefunkcjonalne aplikacji dedykowanej mogą prowadzić do złych doświadczeń użytkownika.

Zrozumienie różnicy pomiędzy wymaganiami funkcjonalnymi aplikacji dedykowanej i wymaganiami niefunkcjonalnymi aplikacji pomoże zarówno firmie, klientowi, jak i dostawcy oprogramowania dedykowanego, ponieważ będą oni w stanie jasno zrozumieć swoje wymagania. Prowadzi to do dopracowania zakresu, optymalizacji kosztów, a w końcu do zadowolenia firmy.

Różnice pomiędzy wymaganiami funkcjonalnymi aplikacji i wymaganiami niefunkcjonalnymi

Jeśli jest coś, co każdy projekt musi mieć, aby zapobiec niepowodzeniu, to jest to rozsądny i kompleksowy opis i zestawienie dokumentów, na który składają się:

  • wymagania funkcjonalnych aplikacji dedykowanej.
  • wymagania niefunkcjonalnych aplikacji dedykowanej.
  • przypadki użycia aplikacji.

Wymagania każdej aplikacji dedykowanej muszą być dobrze przemyślane, wyważone i jasno zrozumiane przez wszystkie strony zaangażowane w realizację projektu. Najważniejsze jest fakt, że nie są one porzucane lub zmieniane w połowie realizacji projektu.

Jaka jest różnica pomiędzy wymaganiami funkcjonalnymi aplikacji i wymaganiami niefunkcjonalnymi aplikacji dedykowanej? Nie jest to aż tak skomplikowane, a kiedy już zrozumiemy różnicę, definicja będzie jasna.

Wymagania funkcjonalne aplikacji dedykowanej określają, co aplikacja dedykowana system powinna robić. Zazwyczaj, wymagania funkcjonalne aplikacji określają zachowanie lub funkcję aplikacji, na przykład:

Wyświetl nazwę, całkowity rozmiar, dostępne miejsce i format dysku podłączonego do portu USB.

Inne przykłady to ‘dodaj klienta’ i ‘drukuj fakturę’.

Wymaganiem funkcjonalnym dla kartonu na mleko jest zdolność do przechowywania płynu bez przeciekania.

Czym są wymagania funkcjonalne aplikacji dedykowanej?

Definicja wymagania funkcjonalnego aplikacji to: ‘Dowolne wymaganie, które określa, co aplikacja powinna robić’.

Innymi słowy, wymagania funkcjonalne aplikacji opisują konkretne zachowanie funkcji systemu, gdy spełnione są pewne warunki, na przykład: "Wyślij e-mail, gdy nowy klient się zarejestruje" lub "Otwórz nowe konto".

Wymaganie funkcjonalne kubka, brzmi: "zdolność do przechowywania napoju bez przeciekania".

Niektóre z bardziej typowych wymagań funkcjonalnych aplikacji obejmują:

  • Uwierzytelnianie
  • Dane historyczne
  • Reguły biznesowe
  • Śledzenie audytów
  • Poziomy autoryzacji
  • Interfejsy zewnętrzne
  • Funkcje administracyjne
  • Wymagania dotyczące certyfikacji
  • Wymagania prawne lub regulacyjne
  • Wymagania dotyczące raportowania
  • Korekty transakcji, korekty i anulowanie transakcji

Wymagania niefunkcjonalne aplikacji, czym są i czym się różnią?

Mówiąc prosto, różnica polega na tym, że wymagania niefunkcjonalne aplikacji opisują jak aplikacja dedykowana działa, podczas gdy wymagania funkcjonalne aplikacji opisują co aplikacja powinna robić.

Definicją wymagania niefunkcjonalnego aplikacji jest to, że zasadniczo określa jak aplikacja powinna się zachowywać, zawierają ograniczenia w zakresie zachowania aplikacji. Można również myśleć o wymaganiach niefunkcjonalnych aplikacji jako o atrybutach jakości aplikacji dedykowanej.

Wymaganie niefunkcjonalne dla myszki komputerowej może brzmieć "musi świecić wieloma kolorami ".

Co to są wymagania niefunkcjonalne aplikacji?

Definicja, wymagania niefunkcjonalne aplikacji to: "Każde oczekiwanie, które określa, jak aplikacja dedykowana wykonuje określoną funkcję". Innymi słowy, wymagania niefunkcjonalne opisują, jak aplikacja dedykowana powinna się zachowywać i jakie są ograniczenia jej funkcjonalności.

Wymagania niefunkcjonalne aplikacji obejmują wszystkie pozostałe wymagania, które nie są objęte wymaganiami funkcjonalnymi. Określają one kryteria, które oceniają działanie aplikacji dedykowanej, a nie konkretne zachowania, na przykład: "Zmodyfikowane dane w bazie danych aplikacji powinny być aktualizowane dla wszystkich użytkowników mających do niej dostęp w ciągu 2 sekund".

Wymaganie niefunkcjonalne aplikacji dla wspomnianego wcześniej kubka brzmiałoby: "ma możliwość zawierać gorącą ciecz bez nagrzewania się uchwytu do temperatury wyższej niż 45°C".

Nawet w przypadku, gdy wymagania niefunkcjonalne aplikacji nie zostaną spełnione, podstawowa funkcjonalność nie zostanie naruszona.

Jeśli funkcjonalność aplikacji dedykowanej nie jest zależna od wymagań niefunkcjonalnych, to dlaczego są one ważne?

Odpowiedź leży w użyteczności aplikacji dedykowanej. Wymagania niefunkcjonalne aplikacji wpływają na doświadczenie użytkownika, ponieważ definiują zachowanie aplikacji dedykowanej, jej cechy i ogólną charakterystykę.

Wymagania niefunkcjonalne aplikacji, gdy są dobrze zdefiniowane i wykonane, pomogą uczynić aplikację dedykowaną łatwą w użyciu i zwiększą jej wydajność.

Wymagania niefunkcjonalne aplikacji skupiają się na oczekiwaniach użytkownika, ponieważ są właściwościami aplikacji.

Przykład wymagania funkcjonalnego. Aplikacja dedykowana ładuje tabelę z wynikami wyszukania, gdy ktoś kliknie na przycisk. Powiązane wymaganie niefunkcjonalne określa, jak szybko strona www w aplikacji dedykowanej musi się ładować. Opóźnienie w ładowaniu spowoduje negatywne doświadczenie użytkownika i niską jakość dedykowanej aplikacji webowej, nawet jeśli wymaganie funkcjonalne jest w pełni spełnione.

Niektóre typowe wymagania niefunkcjonalne aplikacji to:
  • Pojemność
  • Dostępność
  • Użyteczność
  • Skalowalność
  • Niezawodność
  • Odzyskiwalność
  • Bezpieczeństwo
  • Regulacje prawne
  • Interoperacyjność
  • Integralność danych
  • Ochrona środowiska
  • Możliwość zarządzania
  • Możliwość konserwacji
  • Możliwość serwisowania
  • Wydajność - na przykład czas odpowiedzi, przepustowość, wykorzystanie, statyczna objętość

Wymagania niefunkcjonalne aplikacji określają "cechy jakościowe" lub "atrybuty jakościowe" aplikacji dedykowanej.

Wielu różnych stron ma interes w tym, aby wymagania niefunkcjonalne aplikacji były właściwe, szczególnie w przypadku zaawansowanych aplikacji dedykowanych, gdzie nabywca aplikacji niekoniecznie jest również jej użytkownikiem.

Dlatego nie należy lekceważyć znaczenia wymagań niefunkcjonalnych aplikacji. Jednym ze sposobów zapewnienia, że jak najmniej wymagań niefunkcjonalnych aplikacji zostanie pominiętych, jest użycie grup wymagań niefunkcjonalnych aplikacji.

Różnica pomiędzy wymaganiami funkcjonalnymi i niefunkcjonalnymi:

Wymagania funkcjonalne aplikacji
  • Definiują aplikację dedykowaną lub jego komponent.
  • Określają, "Co aplikacja dedykowana powinna robić?".
  • Użytkownik określa wymaganie funkcjonalne aplikacji.
  • Spełnienie wymagań funkcjonalnych aplikacji jest obowiązkowe.
  • Są uchwycone w przypadkach użycia.
  • Zdefiniowane na poziomie komponentu.
  • Pomagają zweryfikować funkcjonalność aplikacji dedykowanej.
  • Wykonywane są testy funkcjonalne, takie jak testy systemowe, integracyjne, End to End, API, itp.
  • Zwykle łatwe do zdefiniowania.
Wymagania niefunkcjonalne aplikacji
  • Definiują atrybut jakości systemu
  • Określają, "Jak aplikacja dedykowana powinna spełniać wymagania funkcjonalne?".
  • Wymaganie niefunkcjonalne aplikacji są określane przez osoby techniczne, np. architektów, liderów technicznych i programistów.
  • Nie jest obowiązkowe spełnienie wymagań niefunkcjonalnych.
  • Są ujęte jako atrybutach jakości.
  • Stosowane do całej aplikacji dedykowanej.
  • Pomagają zweryfikować wydajność aplikacji dedykowanej.
  • Testy niefunkcjonalne, takie jak testy wydajności, stresu, użyteczności, bezpieczeństwa itp. są wykonywane.
  • Zazwyczaj trudniejsze do zdefiniowania.
Przykłady wymagań funkcjonalnych i wymagań niefunkcjonalnych:

Poniżej możesz sprawdzić listę przykładów wymagań funkcjonalnych i niefunkcjonalnych aplikacji:

Wymagania funkcjonalne aplikacji, przykłady:

  • Uwierzytelnianie użytkownika przy próbie zalogowania się do aplikacji dedykowanej.
  • Wyłączenie systemu IT w przypadku cyberataku.
  • E-mail weryfikacyjny wysyłany do użytkownika przy pierwszej rejestracji w systemie IT.

Wymagania niefunkcjonalne aplikacji, przykłady:

  • E-maile powinny być wysyłane z opóźnieniem nie większym niż 12 godzin.
  • Każde żądanie powinno być przetwarzane w ciągu 10 sekund.
  • Strona aplikacji webowej powinna ładować się w 3 sekundy, gdy liczba jednoczesnych użytkowników jest > 10000.
Jak zebrać wymagania funkcjonalne aplikacji i wymagania niefunkcjonalne aplikacji?

Sesja burzy mózgów jest jednym z najlepszych sposobów na zebranie wymagań aplikacji poprzez zebranie wszystkich interesariuszy razem. Należy uwzględnić przedstawicieli użytkowników, którzy są najlepszym źródłem wymagań niefunkcjonalnych aplikacji.

Zasadniczo wymagania funkcjonalne aplikacji mogą być podzielone na 4 grupy, którymi są:

  • Wymagania biznesowe aplikacji. Zawierają one ostateczny cel, taki jak system zamówień, katalog online lub produkt fizyczny. Mogą również obejmować zagadnienia jak przepływy pracy zatwierdzania i poziomy uprawnień.
  • Funkcje administracyjne aplikacji. Są to rutynowe czynności, które system IT będzie wykonywał, takich jak raportowanie.
  • Wymagania użytkownika aplikacji. Są to czynności, które użytkownik systemu IT może wykonać, takie jak złożenie zamówienia lub przeglądanie katalogu online.
  • Wymagania systemowe aplikacji. Są to rzeczy, takie jak specyfikacje oprogramowania i sprzętu, odpowiedzi systemu IT lub działania systemu IT.

Gdy wymagania funkcjonalne aplikacji są zdefiniowane, jest czas, aby myśleć o wymaganiach niefunkcjonalnych aplikacji wymagań, takich jak:

  • Użyteczność aplikacji. Koncentruje się na wyglądzie interfejsu użytkownika aplikacji i jak użytkownicy wchodzą w interakcję z nim. Jakiego koloru są ekrany? Jak duże są przyciski?
  • Niezawodność / dostępność aplikacji. Jakie są wymagania dotyczące czasu pracy? Czy system IT musi działać 24/7/365?
  • Skalowalność aplikacji. Czy system IT poradzi sobie z rosnącymi potrzebami? W przypadku instalacji fizycznych, obejmuje to zapasowy sprzęt lub miejsce na jego instalację w przyszłości.
  • Wydajność aplikacji. Jak szybko system IT musi działać?
  • Możliwość wsparcia aplikacji. Czy wsparcie jest zapewniane wewnątrz firmy, czy też wymagana jest zdalna dostępność dla zasobów zewnętrznych?
  • Bezpieczeństwo aplikacji. Jakie są wymagania bezpieczeństwa, zarówno dla fizycznej instalacji, jak i z perspektywy cybernetycznej?
Jak pisać wymagania funkcjonalne aplikacji i wymagania niefunkcjonalne aplikacji?

Istnieją różne sposoby pisania wymagań funkcjonalnych i niefunkcjonalnych.

Najbardziej powszechnym sposobem pisania wymagań funkcjonalnych i niefunkcjonalnych jest Dokument Specyfikacja Wymagań Aplikacji Dedykowanej. Jest to pisemny opis wymaganej funkcjonalności aplikacji dedykowanej.

Specyfikacja Wymagań Aplikacji Dedykowanej określa cel projektu i zawiera przegląd projektu, aby zapewnić kontekst, wraz z wszelkimi ograniczeniami i założeniami. Dokument specyfikacji wymagań aplikacji powinien zawierać wizualne reprezentacje wymagań, aby pomóc nietechnicznym interesariuszom zrozumieć zakres systemu IT.

Ściśle powiązana z dokumentem specyfikacji wymagań aplikacji dedykowanej jest Struktura Podziału Pracy (ang. Work Breakdown Structure lub WBS). Rozbija ona cały proces na jego komponenty poprzez "dekompozycję" wymagań na ich elementy, aż do momentu, gdy nie mogą one być już dalej rozbite.

Innym podejściem są przypadki użycia historie użytkowników (user stories). Opisują one funkcjonalność z perspektywy użytkownika końcowego i dokładnie określają, co chce on, aby system IT robił.

Skutecznie stwierdza "Jako <typ użytkownika>, chcę <cel> tak, aby <powód>". Jedną z zalet historyjek użytkownika jest to, że do ich napisania nie potrzeba dużej wiedzy technicznej. Historie użytkownika mogą być również używane jako prekursor dokumentu specyfikacji wymagań, pomagając zdefiniować potrzeby użytkownika.

Przypadki użycia aplikacji (user cases) są podobne do historii użytkownika pod tym względem, że nie jest wymagana wiedza techniczna. Przypadki użycia aplikacji opisują po prostu szczegółowo, co robi użytkownik podczas wykonywania zadania. Przykładem przypadku użycia może być "zakup produktu", który opisuje z punktu widzenia użytkownika każdy krok w procesie dokonywania zakupu.