Wymagania niefunkcjonalne aplikacji internetowej

Wymagania niefunkcjonalne aplikacji internetowej

Wymagania niefunkcjonalne aplikacji internetowej dotyczą obszaru jakościowego tworzonego rozwiązania. Mogą wynikać zarówno z założeń funkcjonalnych jak i architektonicznych. Źródłem wymagań niefunkcjonalnych aplikacji są klienci, użytkownicy oraz osoby odpowiedzialne za integrację i utrzymanie aplikacji. W wielu wypadkach wymagania niefunkcjonalne są równie istotne jak wymagania funkcjonalne aplikacji. Wymagania niefunkcjonalne aplikacji to wszelkiego rodzaju ograniczenia, które aplikacja musi spełniać, a które nie dotyczą samej jej funkcjonalności.

Typowe, często pojawiające się pytania po wdrożeniu aplikacji internetowej.

  • Dlaczego ładowanie strony z produktami trwa 3 sekundy? Skoro inne aplikacje otwierają się w ciągu 1,5 sekundy.
  • Dlaczego z aplikacji może korzystać tylko 15 użytkowników jednocześnie? Skoro mamy 67 pracowników.
  • Dlaczego aplikacja internetowa działa poprawnie tylko na Chrome? Przecież mamy w firmie również komputery Apple.
  • Dlaczego aplikacja nie ma widgetów? Skoro wszystkie aplikacje w firmie korzystają z widgetów?

To tylko kilka z wielu przykładów, które pojawiają się po wdrożeniu aplikacji internetowej. Wszystkie dotyczą wymagań niefunkcjonalnych aplikacji. pojawiają się w sytuacji, w której firma tworząca specyfikację aplikacji internetowej skupiła się na wymaganiach funkcjonalnych. Zapomniała, albo nie poświęciła właściwej uwagi wymaganiom niefunkcjonalnym.

Definicja wymagania niefunkcjonalne aplikacji internetowej.

Wymagania niefunkcjonalne to udokumentowane potrzeby, aplikacji informatycznej dotyczące oczekiwań, jakie ona musi spełniać w zakresie jakości jej działania. Wymagania niefunkcjonalne aplikacji to określenie jak ma być zbudowana, jakie kryteria jakościowe i ilościowe ma spełniać. Kryteria które nie dotyczą sposobu jej działania i nie są opisane w wymaganiach funkcjonalnych. Wymagania niefunkcjonalne aplikacji dotyczą oczekiwań w zakresie: funkcjonalności, użyteczności, niezawodności, wydajności, dostępności, wsparcia, sposobu wdrożenia, wydajności, skalowalności, otwartości, stabilności, bezpieczeństwa.

Dziękujemy! Twoja wiadomość została wysłana. Coś poszło nie tak, spróbuj ponownie. Proszę podać poprawną odpowiedź.

Wymagania niefunkcjonalne aplikacji

Zawartość
  • Dopasowanie – dokładność aplikacji.
  • Wydajność – czas reakcji na zapytania ze strony użytkowników, innych aplikacji i systemów, zużycie procesora, pamięci RAM i dysku twardego.
  • Kompatybilność – współpraca z innymi aplikacjami i systemami.
  • Użyteczność – łatwość korzystania z aplikacji, estetyka, szybkość uczenia się obsługi aplikacji.
  • Niezawodność – brak wad, czas naprawy wad i błędów, dostępność korzystania z wszystkich cech aplikacji wyrażona w procentach.
  • Bezpieczeństwo – poufność i stopień zabezpieczenia danych w aplikacji.
  • Utrzymanie – założenia i wymagania jakie musi spełniać środowisko aplikacji aby użytkownicy mogli z niej korzystać przy założonym obciążeniu w kolejnych okresach.
  • Przenoszalność – łatwość zmiany lokalizacji aplikacji, środowiska, eksportu danych.
Wymagania niefunkcjonalne aplikacji internetowej dotyczą zagadnień:
  • Szybkość reakcji aplikacji na zapytania.
  • Maksymalna liczba użytkowników równoczesnych.
  • Czas projektowania aplikacji internetowej.
  • Rodzaj i zawartość dokumentacji technicznej.
  • Dodatkowe usługi poza stworzeniem aplikacji realizowane przez dostawcę [szkolenia, wsparcie pogwarancyjne, gwarancja, koszt utrzymania aplikacji].
  • Rodzaj i sposób tworzenia kopii zapasowych.
  • SLA.
  • Kolorystyka aplikacji.
  • Układ formularzy.
  • Zasady umieszczenia logotypu wykonawcy aplikacji.
  • Wzorce i układy dokumentów i raportów generowanych przez aplikację.
  • Procedury, które musi spełniać aplikacja [bezpieczeństwo, dostępność, integracja z innymi systemami].

Wymagania niefunkcjonalne aplikacji webowej określają sposób, w jaki aplikacja reaguje na dane wejściowe oraz w jaki sposób się zachowuje w określonych sytuacjach.

Cechy wymagań niefunkcjonalnych aplikacji webowej:
  • Określają, czego aplikacja nie wykonuje.
  • Definiują oczekiwania użytkowników, które pozwalają łatwiej, sprawniej, bardziej produktywnie wykorzystywać aplikację.
  • Opisują w sposób spójny i kompletny. Obejmują wszystkie zagadnienia. Nie zawierają sprzecznych informacji.
  • Nie dotyczą konkretnych funkcji aplikacji webowej.
  • Dotyczą całej aplikacji, a nie jej części lub fragmentu.
  • Mogą być związane z cechami aplikacji takimi jak: niezawodność, wykorzystanie pamięci operacyjnej, czas reakcji.
  • Mogą definiować ograniczenia aplikacji webowej np. wykorzystywanych interface’ów.
  • Bez spełnienia wybranych wymagań niefunkcjonalnych aplikacja webowa może okazać się zupełnie bezużyteczna.
  • Źródłem wymagań niefunkcjonalnych aplikacji mogą być: potrzeby użytkowników, wielkość budżetu, integracja z innymi aplikacjami, regulacje prawne, biznesowe.
  • Wyrażone przy użyciu powszechnie dostępnych i weryfikowalnych miar.
Klasyfikacja wymagań niefunkcjonalnych aplikacji webowej

Wymagania niefunkcjonalne może podzielić na trzy obszary:

  • Wymagania niefunkcjonalne związane z aplikacją – są to wymagania związane z efektywnością, szybkością działania aplikacji, niezawodnością działania.
  • Wymagania niefunkcjonalne związane z firmą – są to wymagania związane ze strategią biznesową firmy, jej standardami, strukturą organizacyjną, kulturą biznesową, wartościami, którymi firma jest wierna, sposobem wdrożenia, językiem programowania, systemem operacyjnym. Również wiekiem użytkowników, co może wpływać na interface.
  • Wymagania niefunkcjonalne związane z otoczeniem systemowym – są to wymagania związane z wszystkimi czynnikami zewnętrznymi, interakcji z innymi aplikacjami, wymagania prawne, etyczne, w zakresie bezpieczeństwa.
Miary wymagań niefunkcjonalnych aplikacji webowej, które można użyć w celu określenia.

Wymagania niefunkcjonalne są trudne do weryfikacji. Są spisane w formie ogólnych tez, oczekiwań klienta. Są w wielu wypadkach nieskwantyfikowane. Niekiedy, nie ma określonej, powszechnie używanej miary użytej do ich zmierzenia. W związku, z czym nie można stworzonej aplikacji webowej określić, w jakim stopniu je spełniła. Aby lepiej je opisać firma powinna zastosować miary. Przykłady miar wymagań niefunkcjonalnych aplikacji:

  • Szybkość aplikacji – liczba transakcji na sekundę.
  • Wykorzystanie pamięci operacyjnej – zajętość w procentach pamięci RAM.
  • Łatwość użycia – liczba godzin szkolenia, po którym użytkownik może sam korzystać w pełni z aplikacji.
  • Niezawodność aplikacji – liczba błędów na liczbę godzin użytkowania.
  • Rzetelność wykonania aplikacji – liczba błędów po wdrożeniu na liczbę godzin z niej korzystania, liczbę wykonanych transakcji.

Wymagania niefunkcjonalne aplikacji

FURPS  - Funkctionality, Usability, Reliability, Performance, Supportability, +

W 1992 roku pracownik firmy HP Robert Grady połączył wymagania niefunkcjonalne aplikacji z wyrazami, które je określają. Robert Grady stworzył akronim FURPS. W kolejnych latach do akronimu FURPS dodano plus i powstał FURPS+. Akronim pochodzi od wyrazów:

  • Funkctionality – funkcjonalność. Funkcje aplikacji. Funkcjonalność aplikacji dotyczy również jej bezpieczeństwa oraz możliwości, tego na co pozwala aplikacja.
  • Usability – użyteczność. Łatwość nauczenia się przez użytkowników korzystania z aplikacji webowej. Użyteczność to materiały szkoleniowe szkolenia, system pomocy w aplikacji, interface użytkownika. Również rodzaj fontu i wielkość czcionki, użyte kolory. Użyteczność aplikacji dotyczy grafiki, układu ikon pól, przycisków, kolorystyki, tutorial - samouczków, tootipów oraz dokumentacji.
  • Reliability – niezawodność. Wykonywanie przez aplikację założonych działań w określonym czasie i wielkości. Niezawodność aplikacji do liczba godzin działania aplikacji bez awarii, czas naprawy aplikacji. Niezawodność to również bezpieczeństwo, odporność na ataki z zewnątrz i odporność na nieprawidłowe użycie aplikacji przez użytkowników. Niezawodność aplikacji dotyczy również częstotliwością występowania błędów. Szybkością ich naprawy.
  • Performance – wydajność. Czas, jaki potrzebuje aplikacja, aby wykonać działania żądane przez użytkownika lub użytkowników. Wydajność aplikacji dotyczy również czasu jaki aplikacja potrzebuje aby wyświetlić użytkownikowi raport, jak również w jaki sposób aplikacja wykorzystuje zasoby sprzętowe.
  • Supportability – wsparcie. Obejmuje cechy związane ze wsparciem ze strony twórcy aplikacji dedykowanej, sposobem wprowadzania zmian, rozbudowę. Wsparcie obejmuje również: opis, do czego służy aplikacja, opis, w jaki sposób używać, faq, samouczek, tooltipy. Wsparcie aplikacji dotyczy również możliwości jej instalacji na różnych platformach, sposób jej testowania.
  • Znak + - oznacza inne kategorie np. sposób wdrożenia, otoczenie prawne, kultura biznesowa firmy. Zarzadzanie projektem w obszarze budżetu, czasu realizacji.
  • Dziękujemy! Twoja wiadomość została wysłana. Coś poszło nie tak, spróbuj ponownie. Proszę podać poprawną odpowiedź.

Kilka przykładów jak można formułować wymagania niefunkcjonalne aplikacji
Wymagania niefunkcjonalne przykłady w obszarze funkcjonalności.
  • Logo firmy jest umieszczone w lewym górnym rogu aplikacji.
  • Informacje o firmie tworzącej aplikację dedykowaną mogą być umieszczone tylko w wersji elektronicznej aplikacji.
  • Informacje o firmie tworzącej aplikację dedykowaną nie mogą być umieszczone na wydrukach.
  • Kolory aplikacji to: biały, szary, czerwony.
  • Aplikacja musi posiadać oddzielne moduły: pracownicy, wiki, urlopy, delegacje, rozliczenie zaliczek, administracja, baza umów,
  • Aplikacja musi zapewnić skalowalność i możliwość skalowania na maszynach wieloprocesorowych.
  • Aplikacja udostępnia dane liczbowe w formacie liczby oddzielonych spacjami, co trzy znaki z dwoma miejscami po przecinku.
  • Aplikacja działa na przeglądarkach internetowych nie starszych wersji niż Mozilla 61, Chrome 68.
Wymagania niefunkcjonalne przykłady w obszarze użyteczności.
  • Aplikacja będzie w stanie dodać nową fakturę kosztową w 2 sekundy, przy jednoczesnym korzystaniu z niej przez 100 użytkowników jednocześnie.
  • Aplikacja zawiera również
  • Instrukcje dla użytkowników aplikacji zostanie w niej stworzona w formie tutoriala, który użytkownicy wypełniają podczas pierwszego logowania się do niej.
  • Aplikacja będzie zgodna z Human Interface Guidelines firmy Apple.
  • Aplikacja będzie zgodna z wzorcem User Interface Design.
  • Maksymalny czas odpowiedzi aplikacji na zapytanie użytkownika nie może być dłuższy niż 1,5 sekundy.
  • W aplikacja pola obowiązkowe są oznaczone w inny sposób niż pola nieobowiązkowe.
  • W aplikacji wyróżnione są pola obliczane przez nią.
  • Aplikacja używa czcionki 11 pikseli. Przy rozdzielczości monitora full HD 1980x1020.
Wymagania niefunkcjonalne przykłady w obszarze niezawodności.
  • Aplikacja będzie dostępna dla użytkowników w ciągu średnio 99,97% ich czasu pracy w każdym roku. W ciągu kolejnych pięciu lat jej użytkowania.
  • Aplikacja będzie dostępna dla wszystkich użytkowników przez 5 lat.
  • Aplikacja będzie dostępna 24/7/365 średnio 99,9% czasu. W ciągu kolejnych 5 lat korzystania z niej.
Wymagania niefunkcjonalne przykłady w obszarze wydajności.
  • Aplikacja będzie umożliwiać korzystanie z niej przez 1 200 osób równocześnie. Osób, które są umiejscowione w różnych lokalizacjach.
  • Struktura aplikacji wraz z danymi 10 000 000 rekordów nie będzie większa niż 5 TB. Same dane rekordów bez załączników.
Wymagania niefunkcjonalne przykłady w obszarze wsparcia.
  • Wszystkie błędy krytyczne aplikacji zostaną skutecznie naprawione w ciągu 48 h roboczych.
  • Wszyscy użytkownicy mogą zgłaszać błędy na dedykowany adres email i dedykowany numer telefonu.
  • Wszystkie błędy aplikacji będą monitorowane. Monitorowany będzie sposób i czas ich naprawy.
  • Do aplikacji zgłaszania błędów będą miały dostęp wszystkie osoby ze strony zamawiającego.
Wymagania niefunkcjonalne przykłady w obszarze sposób wdrożenia
  • Aplikacja zostanie wdrożona w ciągu 30 dni roboczych.
  • Pierwszymi użytkownikami aplikacji będą pracownicy działów HR oraz finanse i administracja. W sumie 16 osób.
  • Proces wdrożenia aplikacji nie może spowodować braku dostępu do istniejących aplikacji firmowych.
  • Aplikacja zostanie wdrożona w ciągu 90 dni roboczych od dnia podpisania umowy z firmą tworzącą aplikacje dedykowane.
  • Oprócz aplikacji, firma dostarczy również dokumenty: harmonogram wdrożenia, projekt migracji danych, projekt architektury informatycznej, specyfikację sprzętową, specyfikację funkcjonalną.
  • Szkolenie dla użytkowników aplikacji zostanie przygotowane w formie prezentacji dostępnej w internecie.

Wymagania niefunkcjonalne aplikacji internetowej w podejściu

Wydajność aplikacji webowej

Wydajność aplikacji dotyczy czasu dostępu do funkcji, które ona oferuje w określonym czasie. Istotne jest aby aplikacja odpowiadała na żądana użytkownika szybko. Jako parametr szybko przyjmij czas, który nie spowoduje irytacji użytkowników. Czyli czas, który użytkownicy są w stanie zaakceptować na podstawie ich dotychczasowych doświadczeń, w zakresie korzystania z aplikacji webowych.

Istotne jest, aby mierzyć wydajność aplikacji webowej w sytuacji typowej dla większości jej użytkowników. To znaczy, jeżeli użytkownicy korzystają z aplikacji poprzez telefony komórkowe w terenie. To testy należy dokonać używając telefonów komórkowych, a nie komputerów w biurze firmy. Sprawdzając wydajność istotne jest również obciążenie oraz pora dnia. Sprawdzenia wydajności należy dokonać w sytuacji jak najbardziej realnej. W praktyce stosuje się testy, które bardziej obciążają aplikację niż docelowi użytkownicy.

Skalowalność aplikacji webowej

Skalowalność aplikacji webowej to zdolność do wydajnego i sprawnego obsłużenia rosnącego obciążenia poprzez dołączanie dodatkowych zasobów najczęściej w postaci pamięci RAM, procesorów, serwerów. Właściwie zaprojektowana skalowalna aplikacja webowa pozwala dodawać kolejne urządzenia bez konieczności zmian w jej kodzie. Wydajność prawidłowo zaprojektowanej aplikacji webowej rośnie wraz ze wzrostem dołączanych urządzeń.

Dobrze zaprojektowana aplikacja webowa samodzielnie rozpoznaje nowe zasoby. Sama jest w stanie zacząć z nich korzystać oraz rozplanować swoje zadania w sposób jak najbardziej równomierny. Sposób, który pozwala wykorzystać w pełni wszystkie osiadane zasoby.

Otwartość aplikacji webowej

Otwartość aplikacji webowej to możliwość korzystania z niej przez wielu, różnych użytkowników. Otwarta aplikacja webowa umożliwia korzystania z jej zasobów innym użytkownikom poprzez znane, powszechnie dostępne protokoły komunikacyjne.

Stabilność aplikacji webowej

Stabilność aplikacji webowej wiąże się z jej ciągłą, nieprzerwaną pracą bez względu na liczbę użytkowników i sposób z niej korzystania. To wynik sposobu, w jaki aplikacja została stworzona, który umożliwia bezawaryjne działanie, odporność na różne, niekiedy nielogiczne sposoby korzystania z niej przez użytkowników.

Bezpieczeństwo aplikacji webowej

Każda aplikacja internetowa jest wystawiona na ataki. Istota bezpieczeństwa jest przewidywanie działań, które mogą wydarzyć się w przyszłości z jednej strony. Z drugiej, stworzenia środowiska zapasowego, które w razie sytuacji zagrożenia można w przewidywalnym czasie postawić od nowa. Bezpieczeństwo aplikacji webowej dotyczy zabezpieczeń przed działaniami przypadkowymi oraz działaniami celowymi. Główne trzy obszary bezpieczeństwa aplikacji webowych:

  • Bezpieczeństwo przed atakami Denial of Service (DOS). Blokowanie adresów IP, z których następuję częsta prośba o połączenie.
  • Bezpieczeństwo komunikacji. Komunikacja z aplikacją tylko uprawnionych użytkowników.
  • Bezpieczeństwo fizyczne. Realizowane na poziomie uprawnień dostępu do plików.