Specyfikacja wymagań programowych
Specyfikacja wymagań programowych (SRS) to opis systemu oprogramowania, który ma zostać stworzony. Jest ona wzorowana na specyfikacji wymagań biznesowych (CONOPS), znanej również jako specyfikacja wymagań zainteresowanych stron (StRS). Specyfikacja wymagań programowych określa wymagania funkcjonalne i niefunkcjonalne oraz może zawierać zestaw przypadków użycia opisujących interakcje użytkownika, które oprogramowanie musi zapewnić użytkownikowi dla idealnej interakcji.
Szczegółowa specyfikacja wymagań programowych ustanawia podstawę porozumienia pomiędzy klientami i wykonawcami lub dostawcami na temat tego, jak powinien funkcjonować produkt programowy (w projekcie rynkowym role te mogą być odgrywane przez działy marketingu i rozwoju). Specyfikacja wymagań oprogramowania jest rygorystyczną oceną wymagań przed bardziej szczegółowymi etapami projektowania systemu, a jej celem jest redukcja późniejszych przeprojektowań. Powinna również stanowić realistyczną podstawę do szacowania kosztów, ryzyka i harmonogramu produktu. Odpowiednio użyta specyfikacja wymagań oprogramowania może pomóc zapobiec niepowodzeniu projektu oprogramowania.
Dokument specyfikacji wymagań oprogramowania zawiera listę wystarczających i niezbędnych wymagań dla rozwoju projektu. Aby określić wymagania, programista musi mieć jasne i dokładne zrozumienie tworzonych produktów. Osiąga się to poprzez szczegółową i ciągłą komunikację z zespołem projektowym i klientem podczas całego procesu wytwarzania oprogramowania.
Specyfikacja wymagań programowych może być jednym z opisów elementów danych dostarczanych w ramach kontraktu lub mieć inną formę zawartości wymaganej przez organizację.
Typowo specyfikacja wymagań programowych jest pisana przez pisarza technicznego, architekta systemów lub programistę.
Dokumenty te mogą być dokumentami o charakterze technicznym, które mogą być wykorzystywane do tworzenia oprogramowania.