Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) - PDF Download grátis
Download "Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)"
Talita Igrejas Medina
1 Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Definição Geral: Disciplina de Compiladores Prof. Jorge Bidarra (UNIOESTE) A especificação de requisitos tem como objetivo obter produtos de software de melhor qualidade que satisfaçam às reais necessidades dos clientes dentro de prazo e orçamento adequados. Podemos entender requisito como uma função, restrição ou propriedade que deve ser fornecida, encontrada ou atendida para satisfazer às necessidades do usuário do sistema. (Descreve um serviço ou uma limitação) Embora não exista um modelo padrão consagrado para gerenciar requisitos, podemos definir alguns passos para um processo de especificação de requisitos. No geral, especificar um requisito implica em compreender exatamente o que deve ser feito e que se espera receber como resultado. Os requisitos podem ser classificados em : Funcionais - descrevem as funcionalidades do sistema desejadas pelos clientes ou seja O QUE se espera que o software faça; Não-funcionais - São as qualidades e restrições globais do sistema relacionados com manutenção, uso, desempenho, custo, interface, etc... Alguns exemplos de requisitos funcionais: O sistema deve possibilitar o cadastramento dos dados pessoais dos clientes; O sistema deve emitir relatórios gerenciais; O sistema deve permitir a baixa automática do estoque quando da venda de um produto; A Norma ISO/IEC 9126 define seis características de qualidade de software que devem ser avaliadas: Funcionalidade (finalidade do produto); Usabilidade (esforço para utilizar/aprender o produto); Confiabilidade (freqüência de falhas, recuperabilidade); Eficiência (característica relacionada ao desempenho);
2 Manutenibilidade (esforço necessário para modificar o sistema); Portabilidade (capacidade de transferir o produto para outros ambientes). Alguns exemplos de requisitos não-funcionais: tempo de resposta do sistema não deve ultrapassar 10 segundos; software deve ser operacionalizado no sistema Windows; O banco de dados usado deverá ser o Oracle. (fonte de consulta: Acesso em: 26/03/2011. Conteúdo adaptado) A seguir, apresenta-se uma sugestão de estrutura organizacional de um documento de Especificação de Requisitos de Software ou ERS. Proposta de Estrutura de uma ERS (fonte de consulta: Acesso em: 26/03/2011. Conteúdo adaptado) 1. Introdução Fornece-se aqui uma visão geral do software a ser desenvolvido; por exemplo, a finalidade, o escopo, as definições, os acrônimos, as abreviações, as referências. A Especificação de Requisitos de Software (ERS) deve ser capaz de mostrar todos os requisitos de software do sistema ou de uma parte do sistema. É possível organizar uma ERS de várias maneiras diferentes. Para maiores detalhes, consultar o padrão [IEEE ]. 1.1 Finalidade Uma ERS deverá descrever o comportamento externo do aplicativo ou do subsistema identificado. Ela também deverá descrever requisitos não funcionais, restrições de projeto e outros fatores necessários para fornecer uma visão completa e abrangente dos requisitos do software. 1.2 Escopo Apresenta-se nessa seção uma breve descrição do aplicativo de software; o recurso ou outro agrupamento de subsistemas; modelo(s) de Caso de Uso associados; e tudo o mais que seja afetado ou influenciado por este documento.
3 1.3 Definições, Acrônimos e Abreviações Aqui devem ser fornecidas as definições de todos os termos, acrônimos e abreviações necessárias à adequada interpretação da ERS. É muito comum nesse tipo de documento o uso de glossários. 1.4 Referências Relação completa de todos os documentos mencionados em qualquer outra parte desse documento. Cada documento deverá ser identificado por título, número do relatório (se aplicável), data e organização de publicação. Não se deve esquecer de especificar as fontes a partir das quais as referências podem ser obtidas. Essas informações podem ser fornecidas por um anexo ou através de outro documento. 2. Descrição Geral Descrever os fatores gerais que afetam o produto e seus requisitos. Evitar a especificação de requisitos específicos. Em vez disso, fornecer uma base para esses requisitos, cujos detalhes deverão ser mostrados na Seção 3. Para facilitar a compreensão do leitor, incluir nessa seção os seguintes itens: perspectiva do produto funções do produto características do usuário restrições suposições e dependências subconjuntos de requisitos 3. Requisitos Específicos Descrevem-se aqui todos os requisitos de software em um nível de detalhamento suficiente para possibilitar que os designers projetem um sistema que satisfaça esses requisitos e que os testadores verifiquem se o sistema satisfaz esses requisitos. Quando for utilizada a modelagem de casos de uso, esses requisitos serão capturados nos Casos de Uso e nas especificações suplementares aplicáveis. Se a modelagem de casos de uso não for utilizada, o esquema das especificações suplementares poderá ser inserido diretamente nesta seção, conforme mostrado a seguir. 3.1 Funcionalidade Esta seção descreve os requisitos funcionais do sistema. Para muitos aplicativos, este poderá ser o volume do Pacote da ERS. Dentre os requisitos funcionais estão o conjunto de recursos existentes no software, suas capacidades e segurança. 3.2 Usabilidade
4 Essa seção deve incluir todos os requisitos que afetam a usabilidade. Por exemplo, especificar o tempo de treinamento necessário para que usuários normais e usuários com conhecimentos avançados se tornem produtivos em operações específicas especificar períodos de tempo mensuráveis para tarefas típicas ou baseie os requisitos de usabilidade do novo sistema em outros sistemas que os usuários conheçam e gostem especificar requisitos de forma que estejam em conformidade com padrões comuns de usabilidade como, por exemplo, os padrões CUA da IBM ou os padrões GUI da Microsoft. 3.3 Confiabilidade Alguns tópicos que podem/devem ser considerados nessa descrição: Disponibilidade - especifique a porcentagem de tempo disponível ( xx.xx%), as horas de uso, o acesso à manutenção, as operações de modo degradado, etc. Tempo Médio entre Falhas (MTBF) - normalmente especificado em horas, mas também poderá ser especificado em termos de dias, meses ou anos. Tempo Médio para Reparo (MTTR) - quanto tempo o sistema poderá ficar sem funcionar após uma falha? Exatidão - especifique a precisão (resolução) e a exatidão (através de algum padrão conhecido) necessárias na saída do sistema. Taxa Máxima de Erros ou Defeitos - geralmente expressa em termos de erros por milhares de linhas de código (erros/kloc) ou de erros por ponto de função (erros/ponto de função). Taxa de Erros ou Defeitos - categorizados em termos de erros pouco importantes, importantes e críticos: o(s) requisito(s) devem definir o que se entende por um erro "crítico"; por exemplo, a perda total de dados ou uma total incapacidade de usar determinadas partes da funcionalidade do sistema.] 3.4 Desempenho tempo de resposta de uma transação (médio, máximo); taxa de transferência como, por exemplo, transações por segundo; capacidade como, por exemplo, o número de clientes ou de transações que o sistema pode acomodar; modos de degradação (o modo aceitável de operação quando o sistema tiver sido degradado de alguma maneira); a utilização de recursos como, por exemplo, memória, disco, comunicações, etc.
5 3.5 Manutenibilidade Indicar nessa seção todos os requisitos que aprimorarão o sistema que está sendo criado, nos quais se incluem padrões de codificação, convenções de nomeação, bibliotecas de classes, acesso à manutenção e utilitários de manutenção. 3.6 Restrições de Projeto Indicar e descrever todas as restrições de projeto referentes ao sistema que está sendo criado. As restrições de projeto compreendem as decisões de projeto que foram impostas e que devem ser respeitadas. Entre os exemplos desse tipo de restrição estão linguagens de software, requisitos de processo de software, uso prescrito de ferramentas de desenvolvimento, restrições de design e de arquitetura, componentes comprados, bibliotecas de classes, etc. 3.7 Requisitos de Sistema de Ajuda Descrever aqui os requisitos de auxílio, tais como: documentação de usuário, sistemas de ajuda, observações sobre ajuda, etc. 3.8 Interfaces Essa seção define as interfaces que devem ser suportadas pelo aplicativo. Ela deve conter as especificidades, os protocolos, a porta e os endereços lógicos adequados, entre outros, para que o software possa ser desenvolvido e verificado em relação aos requisitos de interface. Sua descrição deve contemplar os seguintes tipos de interface: Interfaces de Usuário Descreva as interfaces de usuário que deverão ser implementadas pelo software Interfaces de Hardware Esta seção define todas as interfaces de hardware que devem ser suportadas pelo software, incluindo a estrutura lógica, os endereços físicos, o comportamento esperado, etc Interfaces de Software Esta seção descreve as interfaces de software com outros componentes do sistema de software, se houver. Poderão ser componentes comprados, componentes reutilizados de outro aplicativo ou componentes que estejam sendo desenvolvidos para subsistemas fora do escopo desta SRS, mas com os quais esse aplicativo de software deve interagir Interfaces de Comunicação Descrever aqui todas as interfaces de comunicação com outros sistemas ou dispositivos como, por exemplo, redes locais, dispositivos seriais remotos, etc. 3.9 Padrões Aplicáveis
6 Esta seção descreve, por meio de referências, todos os padrões aplicáveis e as seções específicas desses padrões que se aplicam ao sistema que está sendo descrito. Entre esses padrões estão incluídos, por exemplo, padrões reguladores, de qualidade e legais, padrões de indústria referentes à usabilidade, interoperabilidade, internacionalização, compatibilidade com o sistema operacional, etc. 4. Informações de Suporte As informações de suporte facilitam o uso da ERS. Essas informações incluem: Índice analítico Índice Apêndices Poderão estar incluídos roteiros de caso de uso ou protótipos da interface do usuário. Quando forem incluídos apêndices, a ERS deverá especificar explicitamente se os apêndices deverão ou não ser considerados parte integrante dos requisitos.