Software requirements specification
A software requirements specification (SRS) é uma descrição de um sistema de software a ser desenvolvido. Ela é modelada após a especificação de requisitos de negócio (CONOPS), também conhecida como uma especificação de requisitos de partes interessadas (StRS). A especificação de requisitos de software estabelece requisitos funcionais e não-funcionais, e pode incluir um conjunto de casos de uso que descrevem as interações do usuário que o software deve fornecer ao usuário para uma interação perfeita.
A especificação de requisitos de software estabelece a base para um acordo entre clientes e contratantes ou fornecedores sobre como o produto de software deve funcionar (em um projeto orientado pelo mercado, essas funções podem ser desempenhadas pelas divisões de marketing e desenvolvimento). A especificação de requisitos de software é uma avaliação rigorosa dos requisitos antes das etapas mais específicas de projeto do sistema, e seu objetivo é reduzir o redesenho posterior. Deve também fornecer uma base realista para estimar os custos, riscos e cronogramas do produto. Usado apropriadamente, as especificações de requisitos de software podem ajudar a evitar falhas no projeto de software.
O documento de especificação de requisitos de software lista os requisitos suficientes e necessários para o desenvolvimento do projeto. Para derivar os requisitos, o desenvolvedor precisa ter uma compreensão clara e completa dos produtos em desenvolvimento. Isto é conseguido através de comunicações detalhadas e contínuas com a equipe do projeto e o cliente durante todo o processo de desenvolvimento do software.
O SRS pode ser uma das descrições de itens de dados a serem entregues em contrato ou ter outras formas de conteúdo mandatadas pela organização.
Tipicamente um SRS é escrito por um redator técnico, um arquiteto de sistemas ou um programador de software.