Prof. M.Sc. Ronaldo C. de Oliveira ronaldooliveira@facom.ufu.br FACOM - 2011
Requisitos do Sistema
Introdução O que são requisitos de um software? Serviços (funcionalidades) de um software e restrições sob as quais o mesmo deve operar ou ser desenvolvido. Ronaldo C. Oliveira 3
Introdução O termo requisito pode ser escrito diferentes formas Declaração em linguagem natural sobre um serviço ou uma restrição. Uma definição formal sobre uma função do software. Ronaldo C. Oliveira 4
Introdução Um requisito pode ser apresentado em diferentes níveis de detalhe Requisitos do Usuário Lista das funcionalidades e restrições do software. Requisitos para o Software Detalhes técnicos sobre cada requisito do usuário. Ronaldo C. Oliveira 5
Introdução Os requisitos são organizados em duas classes Funcionais Funcionalidades do software Não Funcionais Restrições para o software Ronaldo C. Oliveira 6
Requisitos Funcionais Descrevem o que o software deve realizar serviços (funcionalidades) Devem ser completos, precisos e consistentes. Ronaldo C. Oliveira 7
Requisitos Funcionais Exemplo O sistema deve permitir que um aluno realize sua matrícula em disciplina pela Internet. Ronaldo C. Oliveira 8
Requisitos Funcionais Exemplo O sistema deve permitir que um cliente realize empréstimo de mais de um livro. Ronaldo C. Oliveira 9
Requisitos Funcionais Exemplo A ferramenta CASE deve gerar o código fonte, em uma linguagem OO, a partir de um Diagrama de Classes. Ronaldo C. Oliveira 10
Requisitos Funcionais Como escrever RFs Sempre escreva um teste para o RF. Quanto à redação, use períodos curtos; modo positivo; consistência. Ronaldo C. Oliveira 11
Requisitos Não Funcionais Descrevem as restrições para o software. Exemplo O tempo de resposta para uma consulta deve demandar no máximo 3 segundos. Os RNFs, em geral, dizem respeito ao sistema como um todo. Ronaldo C. Oliveira 12
Requisitos Não Funcionais Não confunda RFs com RNFs. RFs descrevem funcionalidades. RNFs descrevem restrições. O sistema deve ser executado no Windows. é um RF ou RNF? RNF! Ronaldo C. Oliveira 13
Requisitos Não Funcionais Como especificar RNFs? Especifique-os por meio de termos mensuráveis. Os RNFs devem ser possíveis de serem comprovados tanto quanto os RFs. Ronaldo C. Oliveira 14
Requisitos Não Funcionais Analise os RNFs abaixo O sistema deve ser fácil de usar. O sistema deve minimizar a quantidade de erros do usuário no lançamento de notas. É possível comprová-los? Ronaldo C. Oliveira 15
Requisitos Requisitos Não Funcionais Como especificar o RNF correspondente a o sistema deve ser fácil de usar? O usuário será capaz de utilizar todas as funcionalidades dos sistema após 2 horas de treinamento. Ronaldo C. Oliveira 16
Requisitos Requisitos Não Funcionais Como especificar o RNF correspondente a O sistema deve minimizar a quantidade do usuário no lançamento de notas? O usuário deverá cometer no máximo dois erros a cada cem lançamentos de nota de aluno em disciplinas. Ronaldo C. Oliveira 17
Requisitos Não Funcionais Algumas unidades de medida CRITÉRIO UNIDADE velocidade transações por segundo tempo de resposta p/ evento tamanho usabilidade interface K bytes tempo de treinamento qtde de erros por tempo as telas devem aparecer maximizadas o fundo deve ser de cor azul claro Ronaldo C. Oliveira 18
Requisitos Não Funcionais Tipos Produto Eficiência, Usabilidade, Confiabilidade,... Organização Externo Padrões, Implementação, Entrega Interoperabilidade, Ética, Legislação Ronaldo C. Oliveira 19
Importância dos Requisitos São fundamentais para o desenvolvimento de um software. Quem os lê? Clientes, Usuários do Sistema, Gerente, Líder do Projeto, Programador, Testador, Responsável pela manutenção Ronaldo C. Oliveira 20
Documentos de Requisitos Os RFs e RNFs devem estar explicitados em documentos. Requisitos do Usuário Requisitos do Sistema Ronaldo C. Oliveira 21
Requisitos do Usuário Documento que descreve o software (sistema) a ser desenvolvido. Entre outras informações contém a relação de RFs e RNFs do sistema, que devem ser descritos tendo em mente o cliente como leitor; e não deve conter detalhes sobre a implementação do sistema. Ronaldo C. Oliveira 22
Requisitos do Usuário Os RFs e RNFs devem ser descritos em linguagem natural. Problemas: ambigüidade Prolixidade (vícios de linguagem) inconsistência jargão técnico Ronaldo C. Oliveira 23
Requisitos do Sistema É o documento que contém os RFs e RNFs de um sistema de modo mais detalhado. Detalhes: linguagem técnica (p.ex., algoritmos) desenhos (p.ex., DER) plano de testes Ronaldo C. Oliveira 24
Considerações Finais Os RFs e RNFs são a base de um sistema. É necessário habilidade para capturar os requisitos; acompanhar sua implementação; não se esquecer de implementá-los; verificar a implementação dos mesmos. Ronaldo C. Oliveira 25
Referências I.Sommerville, Cap.6 R.Pressman, Cap.7 S.L.Pfleeger, Cap.4 Ronaldo C. Oliveira 26
Engenharia de Requisitos
Engenharia de Requisitos ER Conjunto de atividades relacionadas à criação, validação e evolução do documento Requisitos do Sistema. Etapas genéricas Estudo de viabilidade Elicitação de requisitos Especificação de requisitos Validação de requisitos Ronaldo C. Oliveira 28
Engenharia de Requisitos Ronaldo C. Oliveira 29
Estudo de Viabilidade
Estudo de Viabilidade Analisa a viabilidade de se desenvolver o software solicitado. Análise curta (tempo) O software está inserido nos objetivos da empresa? O software pode ser desenvolvido? (tecnologia, custo, prazo) Há necessidade de integração com os demais softwares da empresa? Ronaldo C. Oliveira 31
Estudo de Viabilidade Início do Processo Identifique os interessados Reconheça os diferentes pontos de vista Trabalhe em busca de colaboração Saiba perguntar Ronaldo C. Oliveira 32
Estudo de Viabilidade Um EV consiste de coletar e avaliar informações. Procure determinar O que é esperado do sistema? Quem solicitou o sistema? Quem vai usar o sistema? Ronaldo C. Oliveira 33
Estudo de Viabilidade Procure determinar quais são os benefícios que o sistema trará para a organização; quais são as fontes de informação do sistema; o que ocorre se o sistema não for desenvolvido; Ronaldo C. Oliveira 34
Estudo de Viabilidade Procure determinar quais são os problemas do sistema atual. Como o novo sistema irá resolvê-los; qual a contribuição direta que o novo sistema trará para o negócio da empresa; se há intercâmbio de dados entre outros sistemas da empresa. Ronaldo C. Oliveira 35
Estudo de Viabilidade Procure determinar os riscos para o projeto O sistema requer uma tecnologia nova à empresa? O ambiente no qual o sistema será utilizado? Quais são as dificuldades que a implantação do sistema poderá acarretar? Ronaldo C. Oliveira 36
Estudo de Viabilidade Procure determinar Quais são as restrições impostas ao sistema? As informações coletadas irão constar do Relatório de Viabilidade. Ronaldo C. Oliveira 37
Estudo de Viabilidade Após o levantamento inicial das informações do sistema deve-se verificar as seguintes viabilidades: Econômica: a avaliação do custo de desenvolvimento confrontada com a renda ou benefício últimos derivados do sistema desenvolvido; Técnica: estudo das funções, do desempenho e das restrições que possam afetar a capacidade de se conseguir um sistema aceitável; Legal: determinação de qualquer interface, violação ou responsabilidade legal que possa resultar do desenvolvimento do sistema; Alternativas: avaliação das abordagens alternativas ao desenvolvimento do sistema; Ronaldo C. Oliveira 38
Estudo de Viabilidade O estudo de viabilidade deve ser realizado para todo e qualquer sistema, independendo do tamanho ou da necessidade do mesmo. Impasse: Prossegir /Cancelar o projeto Ronaldo C. Oliveira 39
Estudo de Viabilidade Econômica Análise de custo-benefício; Estratégias de renda corporativa longo prazo; Impacto sobre outros centros de lucro ou produtos; Custo dos recursos necessários ao desenvolvimento; Crescimento em potencial de mercado. Ronaldo C. Oliveira 40
Estudo de Viabilidade Técnica Riscos do desenvolvimento: O sistema pode ser projetado de forma que a função e o desempenho necessário sejam obtidos dentro das restrições reveladas durante a análise? Disponibilidade de recursos: Existe um pessoal competente à disposição para desenvolver o sistema em questão? Os demais recursos necessários (hardware e software) estão à disposição para a construção do sistema? Tecnologia: A tecnologia progrediu para um estado que suporte o sistema? Ronaldo C. Oliveira 41
Estudo de Viabilidade Legal Contratos comerciais; Responsabilidade legal; Violações; Direitos autorais; Infinidade de outras armadilhas muitas vezes desconhecidas do pessoal técnico. Ronaldo C. Oliveira 42
Análise de Custo Benefício Delineia os custos para o desenvolvimento do projeto e compara-os com os benefícios tangíveis (diretamente mensuráveis em $) e intangíveis de um sistema. Dificuldades encontradas: critérios que variam de acordo com as características do sistema a ser desenvolvido; tamanho relativo do projeto; retorno sobre o investimento esperado. Ronaldo C. Oliveira 43
Benefícios Associados aos Sistemas Automação de processos Controle e integridade das informações Busca e acesso rápido as informações Capacidade de análise e simulações; Redução de pessoal Aumento de lucratividade... Ronaldo C. Oliveira 44
Custos Associados aos Sistemas Custos de aquisição: consultoria, licenças e compra de hardware... Custos de iniciação: instalação, contratação e treinamento de pessoal, mudança cultural... Custos relacionados ao projeto: adequações do sistema, coleta de dados, implementação do sistema, migração de dados, preparação de documentação, gerenciamento e desenvolvimento... Custos permanentes: manutenção, depreciação do hardware, evolução do sistema, pessoal envolvido na administração e operação do sistema...... Ronaldo C. Oliveira 45
Análise do Custo/Benefício Determinação do Ponto Break-even Ronaldo C. Oliveira 46
Análise do Custo / Benefício Benefícios adicionais acarretam custos elevados Ronaldo C. Oliveira 47
Estudo de Viabilidade Relatório de Viabilidade É o resultado do EV. Esse relatório deve conter Objetivos Benefícios esperados pelo sistema Recomendações (sim/não) Cronograma Preço Ronaldo C. Oliveira 48
Elicitação dos Requisitos
Elicitação de Requisitos Etapa que segue o Estudo de Viabilidade. O objetivo desta etapa é determinar os requisitos do sistema a ser construído. Aprofunda-se o que foi realizado no EV. Ronaldo C. Oliveira 50
Elicitação de Requisitos Como descobrir os requisitos? Estudo domínio do problema; Observação de softwares existentes; Imersão no ambiente; Análise de documentos; Protótipos. Ronaldo C. Oliveira 51
Elicitação de Requisitos É uma etapa difícil porque o usuário tem dificuldade de expressar suas necessidades; o usuário se expressa no domínio da aplicação; talvez você não conheça o negócio da empresa; Ronaldo C. Oliveira 52
Elicitação de Requisitos É uma etapa difícil porque diferentes usuários podem possuir diferentes necessidades; fatores políticos podem influenciar os requisitos; o ambiente é dinâmico. Ronaldo C. Oliveira 53
Elicitação de Requisitos Quais são as atividades envolvidas? Entendimento do domínio; Coleta de requisitos; Classificação de requisitos; Solução de conflitos; Determinação de prioridades; Verificação de requisitos. Talvez ciclicamente Ronaldo C. Oliveira 54
Elicitação de Requisitos O produto resultante do processo de elicitação de requisitos são modelos do sistema e requisitos (usuário / sistema). Quais são as atividades envolvidas nessa etapa? Ronaldo C. Oliveira 55
Elicitação de Requisitos O processo Ronaldo C. Oliveira 56
Especificação dos Requisitos
Especificação de Requisitos Como descrever os requisitos? Depende do leitor. Linguagem Natural (clientes leigos) Linguagem Formal (cliente técnico) OBS: Verificar o Template - Documento de Requisitos do Sistema Ronaldo C. Oliveira 58
Validação dos Requisitos
Validação de Requisitos Consiste em verificar que os requisitos definem o software demandado pelo cliente. Validações quanto realidade; consistência; completeza; realismo; verificabilidade. Ronaldo C. Oliveira 60
Validação de Requisitos Técnicas para validação conferencia com o cliente se os requisitos estão corretos revisões análise automática de algumas peças ; prototipação; geração de testes. Ronaldo C. Oliveira 61
Gerencia de Requisitos
Gerência de Requisitos É o processo de entender e controlar as alterações nos requisitos do software. Carece de mecanismos de rastreamento. Ronaldo C. Oliveira 63
Gerência de Requisitos Técnicas para rastreamento de requisitos: fonte de informação referência cruzada entre requisitos; com o desenho do software; com o código-fonte. Ferramenta CASE Ronaldo C. Oliveira 64