Software Requirements Specification

Definicja Specyfikacji Wymagań Oprogramowania

Specyfikacja Wymagań Oprogramowania (Software Requirements Specification, SRS) to przydatny dokument analityczny zawierający zarówno zidentyfikowane, jak i funkcjonalne i poza-funkcjonalne wymagania istotne dla użytkowników. W kompletnej formie przekazuje ona programistom w sposób precyzyjny i zrozumiały rzeczywiste założenia produktu, który powstaje na podstawie określonego projektu.

Podstawą SRS jest seria analitycznych wywiadów z klientami, menedżerami, udziałowcami, itp. Kolejny etap to analiza dokumentacji wraz z powiązanymi z projektem kwestiami prawnymi. Dzięki takiemu rozwiązaniu zespół może odnieść się do dokumentu, który ma za zadanie pomóc przygotować dobry jakościowo produkt.

Treść specyfikacji projektu

Na typową specyfikację składa się przede wszystkim ogólny opis projektu obejmujący zakres określonych działań. Uwzględnia ona również dodatkowe załączniki, np. linki prowadzące do tekstów, obrazów albo modeli. Niezbędne są również wymagania techniczne dla przygotowania produktu. Specyfikacja powinna wskazywać przeznaczenie oprogramowania (określenie urządzeń i systemów operacyjnych) oraz rodzaj integracji, z których może ono korzystać (np. CRM, system fakturowy, magazynowy, itp.). Najlepiej dokładnie opisać sposób działania tych połączeń i typ danych, które mają być między sobą wymieniane.

Zaprojektowanie całego systemu będzie łatwiejsze jeśli sprecyzuje się, który rodzaj danych wysyłanych na serwer krytycznie wpłynie na działanie aplikacji. Potrzebna będzie tutaj komunikacja warstwy wizualnej, którą użytkownik widzi w przeglądarce / aplikacji (front-end) z częścią serwerową, operacyjną (back-end).

W specyfikacji powinny znaleźć się również zaawansowane funkcje aplikacji, tzw. moduły składowe (akcje i informacje) oraz inne niestandardowe elementy dodatkowe niewchodzące w podstawowy zakres projektu. Są one związane zazwyczaj z pracą innych zatrudnionych podmiotów, które zajmują się np. obsługą hardware.

Specyfikacja projektu jest potrzebna

Praca nad projektem oprogramowania, aplikacji, systemów lub stron internetowych bez opracowania specyfikacji to nie najlepszy pomysł. Błąd ten wynika najczęściej z zaniedbań związanych z brakiem dostatecznego zaangażowania, nieodpowiedniego zaplanowania zadań lub postawienia na nieodpowiednie rozwiązania technologiczne i narzędzia. Głównym problemem bywa tutaj jednak niedostateczna komunikacja inwestora z wykonawcą. To wszystko wpływa na niemożność przygotowania dobrej dokumentacji projektu. Do tego typu sytuacji prowadzi zazwyczaj zachowanie klienta, który nie potrafi sformułować swoich oczekiwań, a najważniejsze założenia swojego produktu zachowuje dla siebie, nie dzieląc się nimi z zespołem wykonawczym. Warto pamiętać, że należy odpowiednio sformułować zadania i instrukcje w sporządzonej specyfikacji, ponieważ ma to szczególny wpływ na komunikację między klientem a wykonawcami i późniejszymi użytkownikami, co może negatywnie odbić się na wdrażanym później produkcie.

Co można zawrzeć w SRS?

Specyfikacja Wymagań Oprogramowania powinna być wynikiem nakreślenia głównych założeń całego projektu. W jej treści musi znaleźć się kilka ważnych aspektów uwzględniających cel opracowywanego oprogramowania, czy działanie interfejsów zewnętrznych. Pod uwagę bierze się również oczekiwania co do wydajności produktu, a także jego główne funkcje. W specyfikacji powinny znaleźć się zakładane usprawnienia, np. ułatwiające dostęp do pomocy technicznej lub zwiększające bezpieczeństwo użytkowników. Duże znaczenie mają też wytyczne inwestora, które mogą być związane np. z obowiązującymi w jego firmie standardami.

SRS – dlaczego warto?

Poprawnie sformułowana specyfikacja wymagań oprogramowania jest kompletnym źródłem wiedzy i solidnym fundamentem dla umowy, która powinna być zawarta przed rozpoczęciem pracy. Na jej podstawie można zaplanować terminy i koszty realizacji, a także znacząco ograniczyć konieczność przeprowadzania prac dodatkowych poprzez software house. Pomaga również zaplanować zespołowi pracę, określić własne wymagania i oczekiwania oraz ograniczyć do minimum konieczność edytowania i wprowadzania korekty w kodzie. Specyfikacja służy również inwestorowi do przedstawienia własnego pomysłu dotyczącego interfejsu oprogramowania, łącznie z uwzględnieniem szczegółowego opisu każdego modułu. Doskonale sprawdza się tutaj zaprojektowanie ścieżek działań dla użytkowników, które pomagają poznać oczekiwania klientów dotyczące np. funkcjonalności.

Co oferuje Mediart Software House

1). Dokumentację:

  • dokumentację wymagań (utworzona na podstawie wymagań przesłanych przez klienta)
  • specyfikację techniczną tworzoną wspólnie z developerami: przygotowane szablony dokumentu, z sekcjami, które należałoby uzupełnić.
  • dokumentację po wykonawczą

2). Testy Akceptacyjne, które zostaną wykonane do zweryfikowania poprawności aplikacji (testy rozpisuje Mediart, scenariusze akceptuje Klient, testy klient może wykonać niezależnie od nas).
3). Mockupy stworzone przez grafika ułatwiają klientowi na etapie wymagań 'wizualizację' pomysłu: to też dobry moment na wprowadzenie zmian, ewentualne poprawki i zmiany w estymacji całego developmentu. Mockupy po akceptacji Klienta, grafik może zamienić na layouty.