Aula 5 texto

Page 1

PROF HORACIO

Disciplina: REQUISITOS DE SISTEMAS Aula 05: DOCUMENTAÇÃO DE REQUISITOS DE SOFTWARE Introdução da aula

O documento de requisitos é um documento formal utilizado para comunicar os requisitos aos clientes, engenheiros e gestores, além de outros envolvidos que necessitem acessar este documento. Contudo, não apenas a ação de desenvolvê-lo, é importante conhecer o que deve conter e a quem e como será utilizado, que permita uma visão geral do sistema, necessidades de negócio suportadas pelo sistema e um demais informações que consigam explicitar todo o contexto a ser desenvolvido, mediante a necessidade identificada por quem encomendou um determinado software. Iremos então compreender que a documentação de requisitos não é exclusivamente importante para o desenvolvimento de software, ela também é muito útil na análise e seleção de fornecedores de aplicações comerciais já desenvolvidas.

Até essa etapa, conseguimos estabelecer uma boa perspectiva de todo o contexto que envolve um projeto relacionado a desenvolvimento de software. Mesmo para aqueles que já atuam na área de desenvolvimento de sistema, mas a cada aula vamos adicionando necessidades e entendendo que não basta codificar uma sequência lógica de um procedimento em uma determinada linguagem de programação, mas que existem métodos que auxiliam e estabelecem modelos para que possamos alcançar um resultado mais aderente e satisfatório junto ao cliente. Tudo que estamos estudando nessa disciplina é para fazer com que entendamos bem do problema, da sistemática já ou se existente - quem está contratando, além de estabelecer um elo entre o que se espera e o que será entregue. Na aula de hoje, estaremos avançando no quesito de comunicação e documentação, mais especificamente no aspecto do registro de todo o conteúdo extraído no levantamento de requisitos, ou seja, será um local cujo teor é uma consignação que retrata as especificações a serem seguidas no desenvolvimento de software. Este é o que denominamos que documento de requisitos de software. De acordo com Sommerville (2009), “o documento de requisitos de software, às vezes chamado de Especificação de Requisitos de Software (SRS – do inglês Software Requeriments Specification), é uma declaração oficial do que os desenvolvedores do sistema devem implementar”. Enfim, como sabemos que a área de requisitos de sistemas tem total ligação com o fator qualidade para o desenvolvimento de software, o documento de requisitos trata então de indicar e detalhar sobre os


PROF HORACIO componentes a serem inseridos no sistema que está sendo construído. Uma vez concluído, se comportar como uma bússola que detalha quais as ferramentas a serem estabelecidas ao término do projeto. Como tudo o que vimos até agora, não seria diferente com este documento. Enfim, não é simplesmente criar um documento no editor de texto e digitar os itens e seus respectivos conceitos. É preciso ter disciplina e orientação para alcançar um documento que seja acessível e entendido pelos diversos participantes do projeto, evitando que ele seja o primeiro recurso de desentendimento e dificuldade para a compreensão do que está sendo desenvolvido. Portanto, vamos então conhecer sobre o documento de requisitos de software! A primeira necessidade é ter em mente que este não é apenas um documento técnico, que será lido apenas pelos analistas de sistemas e os programadores. Sommerville (2009) esclarece sobre tal realidade, tratando claramente sobre a diversidade do perfil de usuários, que vão desde a cúpula organizacional até aqueles vinculados à tecnologia da informação e comunicação. Ele então chama a atenção referenciando que “a diversidade de possíveis usuários é um indicativo de que o documento de requisitos precisa ser um compromisso com a comunicação dos requisitos para o cliente, a definição dos requisitos em detalhes precisos para os desenvolvedores e testadores e a inclusão de informações sobre a possível evolução do sistema”. Portanto, a premissa “compreensível” deve ser uma tônica para o grupo que está responsável por gerar o documento de requisitos. Conforme mencionado, o documento é referência tanto no presente (quanto se está em pleno desenvolvimento), bem como no futuro, quando na fase de manutenção. No tocante a compreensão, também deve-se observar o texto utilizado, o qual precisa organizado e com nível adequado aos respectivos leitores. Veja o exemplo abaixo, retirado do livro do PFLEEGER (Engenharia de Software – Teoria e Prátíca – 2ª Edição, pág. 140): Em 1995, a Organização Australiana de Defesa e Tecnologia relatou os resultados de uma pesquisa sobre problemas com especificação de requisitos na Marinha. Um dos problemas destacados foi a disparidade no nível das especificações. Isto é, alguns requisitos foram especificados em um nível alto e outros em um nível muito baixo. A disparidade era composta de diversas situações: •

Algumas vezes, os analistas de requisitos utilizaram diferentes estilos de escrita, especialmente em área diferentes do sistema.

A diferença de experiência entre os analistas levou a diferentes níveis de detalhes nos requisitos.


PROF HORACIO •

Na tentativa de reutilizar os requisitos a partir de sistemas anteriores, os analistas empregaram diferentes formatos e estilos de escrita.

Os analistas, algumas vezes, mesclaram requisitos com soluções parciais, levando a sérios problemas para o projeto de uma solução com boa relação custo-benefício.

Frequentemente, os requisitos foram excessivamente especificados, quando os analistas identificaram tipos específicos de computadores e linguagens de programação assumiram uma solução específica ou impuseram processos e protocolos não apropriados.

Algumas vezes, os requisitos foram pouco especificados, especialmente ao descreverem o ambiente de operação, manutenção, simulção para treinamento, computação administrativa e tolerância a falhas.

Conforme apontando em Sommerville (2009) na Figura 1, são estes exemplos de usuários de um documento de requisitos de software:


PROF HORACIO Da mesma particularidade que existe em um projeto de software, tornando-o único em algum(ns) ponto(s), toda a informação a ser disposta no documento de requisitos tem total vínculo com o perfil do sistema a ser desenvolvido. Portanto, podemos encontrar documentos com o foco será sobre a definição de requisitos de usuários e os requisitos não funcionais, ou que envolva requisitos de sistemas e requisitos funcionais, bem como outras combinações entre eles. Ainda sob o aspecto de fatos particulares, outro aspecto que deve também ser definido é o nível de detalhamento a ser utilizado para descrição dos requisitos no documento.

Então agora, mais contextualizados sobre o perfil de um documento de requisitos, passaremos para uma nova etapa, na qual iremos aprender detalhes sobre a sua estrutura, conhecendo o que pode ser considerado para a sua criação. Para tal finalidade, utilizaremos a composição definido por Sommerville (2009) – bibliografia básica de nossa disciplina, a qual está disposta na tabela abaixo: Capítulo Prefácio

Descrição Deve definir os possíveis leitores do documento e descrever seu histórico de versões, incluindo uma justificativa para a criação de uma nova versão e um

Introdução

resumo das mudanças feitas em cada versão. Deve descrever a necessidade para o sistema. Deve descrever brevemente as funções do sistema e explicar como ele vai funciona com outros sistemas. Também deve descrever como o sistema atende aos objetivos globais do

Glossário

negócio ou estratégicos da organização que encomendou o software. Deve definir os termos técnicos usados no documento. Não deve conter

Definição de

suposições sobre o conhecimento ou experiência do leitor. Deve descrever os serviços oferecidos ao usuário. Os requisitos não funcionais

requisitos de usuário

do sistema também devem ser descritos nessa seção. Essa descrição pode usar linguagem natural, diagramas ou outras notações compreensíveis para os

Modelos do sistema

clientes. Normas produtos que devem ser seguidos devem sem especificados. Pode incluir modelos gráficos do sistema que mostram relacionamentos entre

Evolução do sistema

os componentes do sistema, o sistema e seu ambiente. Deve descrever os pressupostos fundamentais em que o sistema se baseia, bem como quaisquer mudanças previstas, em decorrência da evolução do hardware, de mudanças nas necessidades do usuário, etc. Essa seção é útil para projetistas de sistemas, pois pode ajudá-los a evitar decisões capazes de

Apêndices

restringir possíveis mudanças futuras no sistema. Deve fornecer informações detalhadas e especificas em relação à aplicação em desenvolvimento, além das descrições de hardware e banco de dados, por


PROF HORACIO exemplo. Os requisitos de hardware definem as configurações mínimas do sistema. Requisitos de banco de dados, definem a organização lógica dos dados usados pelo sistema e os relacionamentos entre esses dados. Vários índices podem ser incluídos no documento. Pode haver, além de um

Índice

índice alfabético normal, um índice de diagramas, de funções, dentre outros que sejam pertinentes. A seguir, teremos então exposição de um modelo de documento de requisito, a partir da estrutura citada e suas respectivas descrições, a qual propiciará uma visão mais prática do teor de um documento como tal finalidade. Para fins didáticos, separaremos com seção em um quadro diferente. Lembre-se que essa proposta não é única e definitiva, podendo sofrer adaptações, inclusões e exclusões, a depender da necessidade do cliente dos responsáveis pela sua criação. Fonte:

Guisa

para

criação

de

documentos

de

requisitos.

Acessível

pela

URL:

http://www.google.com.br/url?

sa=t&rct=j&q=documento%20de%20requisitos&source=web&cd=4&sqi=2&ved=0CDoQFjAD&url=http%3A%2F %2Fwww.fernandoans.site50.net%2Fcurso %2Fcurso04%2FDocumentoDeRequisitos.pdf&ei=berUTtm8AqfX0QGrydn8AQ&usg=AFQjCNFY3KwpGcWNoDF0fg5SEDB407Ht9Q .

Ficha Técnica Equipe Responsável pela Elaboração <nome> <identificação: carga, setor, divisão, região> <nome> <identificação: carga, setor, divisão, região> <nome> <identificação: carga, setor, divisão, região> <nome> <identificação: carga, setor, divisão, região> Público Alvo Este manual destina-se a <especifique o público alvo deste documento>

Versão <x.y> - <local>, <mês> de <ano> Dúvidas, críticas e sugestões devem ser encaminhadas por escrito para o seguinte endereço postal: <especifique o endereço para correspondência> Ou para o seguinte endereço eletrônico: <especifique o e-mail para contato> Recomendamos que o assunto seja identificado com o título desta obra. Alertamos ainda para a importância de se identificar o endereço e o nome completos do remetente para que seja possível o envio de respostas.


PROF HORACIO


PROF HORACIO

Sumário INTRODUÇÃO..............................................................................................................8 Visão geral deste documento................................................................................................... 8 Convenções, termos e abreviações......................................................................................... 9 Identificação dos Requisitos ............................................................................................. 9 Prioridades dos Requisitos................................................................................................ 9

DESCRIÇÃO GERAL DO SISTEMA.........................................................................10 Abrangência e sistemas relacionados...................................................................................10 Descrição dos usuários.......................................................................................................... 10 <Opcional> <Nome de um tipo específico de usuário>...................................................10 <Opcional> <Nome de outro tipo específico de usuário >...............................................10

REQUISITOS FUNCIONAIS......................................................................................11 <Nome de subseção para agrupar casos de uso correlacionados>...................................11 [RF001] <Nome do caso de uso>...................................................................................11 Fluxo de eventos principal..............................................................................................................................11 <Opcional> Fluxos secundários (alternativos e de exceção).........................................................................11 [RF…] <Nome de outro caso de uso>............................................................................11 <Nome de outra subseção para agrupar outros casos de uso correlacionados>.............11

REQUISITOS NÃO FUNCIONAIS.............................................................................13 Usabilidade.............................................................................................................................. 13 [NF001] <Nome do requisito>......................................................................................... 13 [NF…] <Nome do requisito>........................................................................................... 13 Confiabilidade.......................................................................................................................... 13 [NF…] <Nome do requisito>............................................................................................13 Desempenho............................................................................................................................ 13 [NF…] <Nome do requisito>............................................................................................13 Segurança................................................................................................................................ 13 [NF…] <Nome do requisito>............................................................................................13 Distribuição.............................................................................................................................. 13 [NF…] <Nome do requisito>............................................................................................13 Padrões.................................................................................................................................... 13 [NF…] <Nome do requisito>............................................................................................13 Hardware e software................................................................................................................ 13 [NF…] <Nome do requisito>............................................................................................13

<OPCIONAL> DESCRIÇÃO DA INTERFACE COM O USUÁRIO...........................14


PROF HORACIO

Introdução <Este espaço deve ser usado para descrever os objetivos deste documento e o público ao qual ele se destina. Complete e/ou adapte o texto abaixo para fornecer essas informações.> Este documento especifica o sistema <Nome do sistema>, fornecendo aos desenvolvedores as informações necessárias para o projeto e implementação, assim como para a realização dos testes e homologação do sistema.

Visão geral deste documento <Esta seção fornece uma breve descrição de como o resto deste documento está organizado. Complete e/ou adapte o texto abaixo para fornecer essa informação.> Contemple com as informações necessárias para fazer um bom uso deste documento, abrangendo a maioria dos objetivos e das convenções a serem adotadas no texto, bem como uma lista de referências para outros documentos relacionados. Para as demais seções, siga orientação como descrito abaixo. • Seção 2 – Descrição geral do sistema: apresenta uma visão geral do sistema, caracterizando qual é o seu escopo e descrevendo seus usuários. • Seção 3 – Requisitos funcionais (casos de uso): especifica todos os requisitos funcionais do sistema, descrevendo os fluxos de eventos, prioridades, atores, entradas e saídas de cada caso de uso a ser implementado. • Seção 4 – Requisitos não funcionais: especifica todos os requisitos não funcionais do sistema, divididos em requisitos de usabilidade, confiabilidade, desempenho, segurança, distribuição, adequação a padrões e requisitos de hardware e software. • Seção 5 – Descrição da interface com o usuário: apresenta desenhos, figuras ou rascunhos de telas do sistema.


PROF HORACIO

Convenções, termos e abreviações <Esta subseção deve descrever as convenções, termos e abreviações necessários para interpretar apropriadamente este documento. As explicações necessárias podem ser fornecidas diretamente nesta seção ou através de referências para outros documentos ou para apêndices deste documento. Complete e/ou adapte o texto abaixo para fornecer essas informações.> A correta interpretação deste documento exige o conhecimento de algumas convenções e termos específicos, que são descritos a seguir.

Identificação dos Requisitos Por convenção, a referência a requisitos é feita através do nome da subseção onde eles estão descritos, seguido do identificador do requisito, de acordo com o esquema abaixo: [nome da subseção.identificador do requisito] Por exemplo, o requisito [Recuperação de dados.RF016] está descrito em uma subseção chamada “Recuperação de dados”, em um bloco identificado pelo número [RF016]. Já o requisito não funcional [Confiabilidade.NF008] está descrito na seção de requisitos não funcionais de Confiabilidade, em um bloco identificado por [NF008].

Prioridades dos Requisitos Para estabelecer a prioridade dos requisitos foram adotadas as denominações “essencial”, “importante” e “desejável”. • Essencial é o requisito sem o qual o sistema não entra em funcionamento. Requisitos essenciais são requisitos imprescindíveis, que têm que ser implementados impreterivelmente. • Importante é o requisito sem o qual o sistema entra em funcionamento, mas de forma não satisfatória. Requisitos importantes devem ser implementados, mas, se não forem, o sistema poderá ser implantado e usado mesmo assim. • Desejável é o requisito que não compromete as funcionalidades básicas do sistema, isto é, o sistema pode funcionar de forma satisfatória sem ele. Requisitos desejáveis são requisitos que podem ser deixados para versões posteriores do sistema, caso não haja tempo hábil para implementá-los na versão que está sendo especificada


PROF HORACIO

Descrição geral do sistema <Descreva aqui, em linhas gerais, os objetivos do sistema, comunicando o propósito da aplicação e a importância do projeto para todas as pessoas envolvidas. Se for necessário apresentar detalhes mais técnicos sobre o sistema, você também pode usar esta seção para descrever em linhas gerais a arquitetura do sistema, indicando seus módulos principais, o uso (se existir) da Internet ou outra rede de comunicação, componentes on-line e off-line, e a interação (se existir) com outros sistemas. Use um diagrama se achar conveniente.> Abrangência e sistemas relacionados <Nesta seção, descreva em linhas gerais o que o sistema irá fazer (suas principais funcionalidades) e o que ele não irá fazer (escopo negativo), deixando claro se o sistema irá interagir com outros sistemas relacionados ou se ele é independente e totalmente autocontido. As funcionalidades principais do sistema devem ser apenas citadas, para dar uma idéia geral ao leitor dos serviços que serão fornecidos pelo sistema. Os detalhes serão fornecidos posteriormente, na seção 3 deste documento. Funcionalidades que a princípio seriam da alçada do sistema e que não serão implementadas também devem ser listadas, registrando-se o motivo pela qual elas não serão contempladas (porque serão fornecidas por outros sistemas relacionados, por exemplo, ou porque serão implementadas apenas em projetos futuros). Se o sistema for independente e totalmente auto-contido diga isso explicitamente, caso contrário, liste e descreva brevemente os outros sistemas com os quais este sistema deve interagir, explicando, de maneira geral, quais os papéis de cada um e o meio de comunicação entre eles.> Descrição dos usuários <Para efetivamente prover produtos e serviços que atendam às necessidades dos usuários, é necessário entender os desafios que eles enfrentam para executar suas funções. Esta seção deve descrever os futuros usuários do sistema e os principais problemas que limitam sua produtividade. Descreva os aspectos gerais, relacionados a todos os usuários, aqui. Depois, se for necessário, descreva nas subseções abaixo as características específicas de cada usuário.> <Opcional> <Nome de um tipo específico de usuário> <Se for conveniente fornecer mais detalhes sobre um tipo específico de usuário, use esta subseção para descrevê-lo.> <Opcional> <Nome de outro tipo específico de usuário > <Prossiga no detalhamento das características dos usuários, descrevendo todos os tipos de usuário que for necessário, cada um em uma subseção.> …


PROF HORACIO

Requisitos funcionais <Nesta seção, apresente todos os requisitos funcionais, ou casos de uso, do sistema. Em sistemas grandes é comum haver muitos casos de uso e, para facilitar a visualização deste documento, você pode agrupá-los em subseções de casos de uso correlacionados. Os nomes das subseções devem ser únicos e pequenos (3 palavras no máximo) e podem ser formados por palavras, números e/ou abreviações. Cada um dos casos de uso deve ser descrito em um bloco específico, seguindo o modelo descrito abaixo. O identificador do bloco deve conter o número do caso de uso (por exemplo, [RF001]) e o seu nome. Se os casos de uso forem agrupados em subseções específicas, a numeração deles deve ser reiniciada a cada subseção (dentro de uma mesma subseção, todo caso de uso deve ter um número de identificação único). Quando a primeira versão deste documento for disponibilizada para a equipe de desenvolvimento, os nomes das subseções e os números dos casos de uso não devem ser modificados ou reaproveitados, para não invalidar referências externas feitas a eles.> <Nome de subseção para agrupar casos de uso correlacionados> <Utilize este espaço para descrever características comuns dos casos de uso desta seção, explicitando o motivo do seu agrupamento em uma seção única. Se todos os casos de uso desta seção estiverem relacionados com o mesmo ator você pode informar isso aqui, especificando qual é o ator em questão, e eliminar o campo “Ator:” das descrições dos casos de uso feitas nos blocos a seguir.> [RF001] <Nome do caso de uso> <Opcional – forneça uma pequena explicação do propósito do caso de uso (útil quando o nome do caso de uso não deixa suficientemente claro qual é o seu objetivo) e o(s) seu(s) respectivo(s) ator(es). Em seguida, substitua um dos símbolos abaixo por , para indicar a prioridade do caso de uso.> Ator: <informe o(s) ator(es) do caso de uso > Prioridade:

 Essencial

 Importante

 Desejável

<Opcional> Interface(s) associada(s): <inclua aqui o(s) identificador(es) da(s) respectiva(s) interface(s) do caso de uso (descrita(s) na Seção 5).> Entradas e pré condições: <Liste aqui todas as entradas e/ou pré condições do caso de uso. Pré condição de um caso de uso é o estado em que o sistema deve estar para realizar o caso de uso.> Saídas e pós condições: <Liste aqui todas as saídas e/ou pós condições do caso de uso. Pós condição de um caso de uso é a lista de possíveis estados em que o sistema pode estar imediatamente após o término da realização do caso de uso.> Fluxo de eventos principal <Descreva aqui o fluxo de eventos principal que ocorre durante a execução do caso de uso.> <Opcional> Fluxos secundários (alternativos e de exceção) <Fluxo secundário XXX>


PROF HORACIO


PROF HORACIO

Requisitos não funcionais <Esta seção deve conter os requisitos não funcionais do sistema. Para uma melhor organização deste documento, utilize as subseções abaixo para agrupar os requisitos não funcionais relacionados. Naturalmente, o número e tipo de subseções utilizadas depende do sistema que está sendo especificado e não é preciso utilizar todas elas. Simplesmente elimine as subseções para as quais não for encontrado nenhum requisito. Os requisitos não funcionais devem ser identificados com um identificador único, da mesma maneira que os requisitos funcionais (casos de uso). Inicie a numeração com o identificador NF001 e prossiga incrementando os números a medida que forem surgindo novos requisitos não funcionais. Reinicie a numeração em cada subseção. Forneça também um nome para o requisito, como foi feito para os requisitos funcionais. Descreva o requisito, assinale a sua prioridade e, em seguida, caso o requisito esteja relacionado a um caso de uso ou a um grupo de casos de uso específicos, utilize o campo “Caso(s) de uso associado(s):” para identificar o(s) caso(s) de uso correspondente(s). Se for um requisito não funcional do sistema como um todo, esse campo não precisa ser utilizado.> Usabilidade Esta seção descreve os requisitos não funcionais associados à facilidade de uso da interface com o usuário, material de treinamento e documentação do sistema. [NF001] <Nome do requisito> <Descreva o requisito não funcional e substitua um dos símbolos abaixo por , para indicar a sua prioridade.> Prioridade:

 Essencial

 Importante

 Desejável

<Opcional> Caso(s) de uso associado(s): <use este campo para identificar a que caso(s) de uso o requisito de usabilidade está relacionado.> [NF…] <Nome do requisito> <Utilize os mesmos campos mostrados no bloco anterior para descrever este e os demais requisitos não funcionais de usabilidade.> Confiabilidade Esta seção descreve os requisitos não funcionais associados à freqüência, severidade de falhas do sistema e habilidade de recuperação das mesmas, bem como à corretude do sistema. [NF…] <Nome do requisito> <Utilize os mesmos campos mostrados na seção 4.1 para descrever este e os demais requisitos não funcionais de confiabilidade.> Desempenho Esta seção descreve os requisitos não funcionais associados à eficiência, uso de


PROF HORACIO

<Opcional> Descrição da interface com o usuário <Esta seção deve conter desenhos ou rascunhos das telas do sistema que forem necessários ou convenientes para esclarecer algum dos requisitos do sistema. Para sistemas que possuem protótipos ou versões já desenvolvidas é possível capturar as telas e apresentar figuras das mesmas. Use nomes e/ou números para identificar cada interface e descreva-as em seções independentes.> <Identificador de uma interface> <Descreva a interface em questão, através de figuras, diagramas e/ou texto. <Opcional> Críticas da interface <Você pode fazer aqui a descrição de críticas simples de interface, como o tamanho e máscara de campos, simplificando assim a descrição dos fluxos de exceção.> <Identificador de outra interface> <Prossiga no detalhamento das interfaces do sistema, descrevendo todas que for necessário, cada uma em uma subseção.>


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.