Engenharia de Requisitos

Slides:



Advertisements
Apresentações semelhantes
Engenharia de Software
Advertisements

Introdução à Programação: uma Abordagem Funcional PD I – Engenharia Elétrica Prof.ª Claudia Boeres 2008/2.
Introdução à Análise de Sistemas
Boas Práticas Adotadas em um Projeto de Design de Testes – Um relato de experiência
Introdução a Algoritmos
Gerência de Projetos Introdução A Crise do Software
Diagrama Entidade-Relacionamento – DER
Especificação de Requisitos
Levantamento de Requisitos
Análise Estruturada Moderna
Análise de Requisitos Eveline Alonso Veloso PUC-Minas.
Validação de Requisitos
Modelos de Ciclo de Vida
Participantes do Processo de Desenvolvimento de Software
15/1/2014 Professor Leomir J. Borba- – 1 CIÊNCIA DA COMPUTAÇÃO ENGENHARIA DE SOFTWARE Aula.
Tipos de sistemas de Lehman
Processos de Software Introdução
Engenharia de Software
INTRODUÇÃO A INFORMÁTICA
Mitos e Problemas Relacionados ao Software
Faculdade de Ciências Sociais de Aplicadas de Petrolina – FACAPE
CK 119: Engenharia de Software DC/CC/UFC © Rossana Andrade, Setembro CK119: Engenharia de Software Rossana Andrade Ph.D, SITE, University of Ottawa,
Adélia Barros Requisitos Adélia Barros
Processo Desenvolvimento de Software Tradicional
Engenharia de Requisitos
Reutilização de Software
TSDD Teste de segurança durante o desenvolvimento.
Gerenciamento de Requisitos com Casos de Uso
Gerenciamento de Requisitos com Casos de Uso
Engenharia de Software
Gerência de Configuração de Software
Engenharia de Software Conceitos
RUPinho Qualidade de Software
Prof.Alfredo Parteli Gomes
Planejamento e Gerenciamento de Projetos
Gerenciamento de Configuração
Fase de Elaboração: Fluxo de Requisitos
Processo Praxis – Fase de Concepção
Análise e Projeto de Sistemas
IEEE Std IEEE Melhores Práticas para Especificações de Requisitos de Software (ERS)
Introdução a Requisitos
Engenharia de Software
Introdução e Fundamentos Engenharia de Requisitos
Modelos de Processo de Software
Gerência de Configuração - GC
Analises de sistemas ESTRUTURADA Analise de sistema estruturada.
Levantamento de Requisitos
Documentação de Software
Levantamento de Requisitos
Teste de Software Conceitos iniciais.
O Processo Unificado (UP)
Engenharia de Software
Engenharia de Software
Processos de Software.
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE AULA 5
Engenharia de Software
Gerenciamento de Requisitos e Modelagem de sistemas
Antonio Nascimento Roteiro Introdução Objetivos Áreas de Conhecimento Certificações Conclusões Referências.
Análise e Projeto de Sistemas Orientado a Objetos Profa. Ana Karina Barbosa.
Verificação e Validação
Engenharia de Software
Aula 02 de Eng. de Requisitos
RUP – Rational Unified Process Márcia Seabra Cabral Prof. Augusto Sampaio Centro de Informática - UFPE.
ISO9001:2000 para Software Professor: Alexandre Vasconcelos Equipe: Amanda Pimentel Börje Karlsson Danielly Karine Erika Pessoa Jorge Cavalcanti Jose Edson.
Processos - I. © 2002 Wilson de Pádua Paula Filho Processos - I O que é Engenharia de Software Computador: problema ou solução? Enunciar os problemas.
Apresentação Leonardo Brussolo de Paula
GERÊNCIA DE REQUISITOS Engenharia de Requisitos Departamento de Informática Pontifícia universidade Católica do Rio de Janeiro (PUC-Rio) Joanna.
Estimativa, Teste e Inspeção de Software
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
Engenharia de Produtos
Transcrição da apresentação:

Engenharia de Requisitos Eveline Alonso Veloso PUC-Minas

Bibliografia PAULA-FILHO, Wilson de Pádua. Engenharia de Software: Fundamentos, Métodos e Padrões. 2ª ed., Rio de Janeiro: LTC - Livros Técnicos e Científicos, 2003, capítulos 1 e 5. PRESSMAN, Roger S. Engenharia de Software. 5ª ed., Rio de Janeiro: McGraw Hill, 2002, capítulo 10. IEEE. SWEBOK: Guide to the Software Engineering Body of Knowledge. 2004, capítulo 2. Transparências da professora Maria Augusta Vieira Nelson – PUC-Minas.

Engenharia de Requisitos Concentra-se em problemas e objetivos do mundo real; para estabelecer as funções que o cliente e usuários requerem de um sistema de software; e definir as restrições sob as quais ele opera e/ou é desenvolvido.

Engenharia de Requisitos são as descrições das funções e restrições do sistema de software; geradas durante o processo de Engenharia de Requisitos. são documentados em um documento denominado: Especificação dos Requisitos do Software.

Engenharia de Requisitos Uma boa engenharia de requisitos é um passo essencial; para o desenvolvimento de um bom produto. Requisitos bem entendidos e gerenciados; reduzem riscos na construção de um sistema de software.

Terminologia da Engenharia de Requisitos propriedades do domínio requisitos do cliente computador programa especificação domínio da aplicação domínio da máquina Propriedades do domínio da aplicação são todos os fatos que são verdadeiros a respeito do negócio do cliente, independentemente de construírmos o sistema proposto. Requisitos expressam os fatos que nós queremos que sejam verdade quando o sistema proposto for instalado no domínio do cliente. Os requisitos servem para validar todos os outros artefatos do sistema que vão ser construídos ao longo do seu desenvolvimento. A especificação do sistema é uma descrição do comportamento que o programa deve ter, para satisfazer os requisitos. A especificação é a ponte que liga o mundo do cliente ao mundo da máquina. É a descrição em mais alto nível do sistema proposto. É através de refinamentos na especificação que se chega ao programa. Dois critérios que verificam se o programa está correto: - O programa sendo executado em um determinado computador satisfaz a especificação. A especificação dentro do contexto das propriedades do domínio da aplicação do cliente satifaz os requisitos. Por exemplo: Requisito: O histórico escolar deve conter todas as notas de apenas um aluno. Propriedades do domínio: Cada aluno é identificado por um número de matrícula único ou dois alunos não possuem o mesmo número de matrícula. Especificação: O sistema deve ler um número de matrícula de aluno e imprimir todas as notas associadas a este número de matrícula.

Onde pode dar Errado? domínio da aplicação domínio da máquina No computador (muito raro) Causas: falha na energia falha nos dispositivos de hardware falha no sistema operacional falha na rede propriedades do domínio requisitos do cliente computador programa especificação domínio da aplicação domínio da máquina

Onde pode dar Errado? domínio da aplicação domínio da máquina No programa (não tão raro) Causas: erros de programação especificação mal entendida ausência de controle de mudanças Detecção: testes do programa em relação à especificação inspeções, walkthroughs propriedades do domínio requisitos do cliente computador programa especificação domínio da aplicação domínio da máquina

Onde pode dar Errado? domínio da aplicação domínio da máquina Na especificação (comum) Causas: requisitos mal entendidos escolha inadequada da linguagem de especificação especificação ambígua, inconsistente ou incompleta Detecção: inspeções, verificação formal propriedades do domínio requisitos do cliente computador programa especificação domínio da aplicação domínio da máquina

Onde pode dar Errado? domínio da aplicação domínio da máquina Nos requisitos (comum) Causas: comunicação insuficiente com o cliente/usuários ausência de análise falha ao lidar com as mudanças Detecção: inspeções, revisões feitas pelo cliente, modelagem, validação formal, prototipagem propriedades do domínio requisitos do cliente computador programa especificação domínio da aplicação domínio da máquina

Onde pode dar Errado? domínio da aplicação domínio da máquina Nas propriedades do domínio (muito comum) Causas: ausência de especialistas no domínio premissas que não foram questionadas análise do domínio insuficiente Detecção: comunicação com os especialistas que detêm a informação propriedades do domínio requisitos do cliente computador programa especificação domínio da aplicação domínio da máquina

Princípios da Engenharia de Requisitos Boas especificações de requisitos são indispensáveis. Não representam custos supérfluos; mas investimentos necessários. A participação dos usuários é fundamental; para que suas verdadeiras necessidades sejam atendidas. Uma boa especificação de requisitos; custa tempo e dinheiro. A ausência de uma boa especificação de requisitos; custa muito mais tempo e dinheiro.

Receitas para Reduzir Custos Fazer uma boa especificação de requisitos: para não ter que mudá-la durante o desenvolvimento; nada é mais caro do que resolver os problemas errados. Desenvolver adequadamente os requisitos do produto de software; ajuda a obter os requisitos corretos em um estágio anterior ao desenvolvimento; o custo de correção de defeitos cresce muito ao longo do tempo. minimiza a necessidade de alterações posteriores nos requisitos do produto; mas não a elimina. Se for preciso modificar requisitos: controlar as mudanças; por meio da gerência dos requisitos.

Engenharia de Requisitos Os processos utilizados durante a Engenharia dos Requisitos variam amplamente dependendo: do domínio da aplicação; das pessoas envolvidas; da organização que desenvolve os requisitos. Contudo, existem atividades genéricas comuns a todos os processos.

Engenharia de Requisitos Desenvolvimento de Requisitos Gerência de Requisitos Levantamento Análise Documentação Validação

Desenvolvimento de Requisitos Levantamento: coletar os requisitos do software. Análise: modelar o comportamento desejado. Documentação: documentar o comportamento do sistema de software proposto. Validação: verificar se a especificação atende aos requisitos do cliente e dos usuários.

Gerência de Requisitos Concentra-se nos processos envolvidos nas mudanças de requisitos do produto de software, já que, à medida que o projeto de desenvolvimento evolui: novos requisitos aparecem; requisitos existentes são alterados ou desaparecem. Procura manter sob controle os requisitos de um produto; mesmo diante dessas alterações.

Instabilidade dos Requisitos Ocorre quando clientes e usuários trazem novos requisitos, ou alterações em requisitos já especificados anteriormente; quando o desenvolvimento do software já está em fase adiantada. Acarreta: perda de tempo e dinheiro.

Instabilidade dos Requisitos Os requisitos podem alterar-se ao longo do projeto de desenvolvimento: descoberta de defeitos e inadequações nos requisitos originais; falta de detalhes suficientes nos requisitos originais; alterações incontornáveis no contexto do projeto; como mudanças na legislação.

Gerência de Requisitos – Principais Interesses Gerenciar mudanças nos requisitos aprovados. Manter a informação de rastreabilidade dos requisitos atualizada; auxilia a descobrir o impacto de uma mudança nos requisitos do produto.

Gerência de Requisitos – Diretrizes Delimitar o escopo do sistema. Definir as regras para o gerenciamento dos requisitos. Definir as regras de rastreabilidade. Definir as regras para a gerência de mudanças.

Rastreabilidade Um requisito é rastreável se: é possível identificar quais são as partes do produto que existem por causa dele; rastreabilidade para frente. para qualquer parte do produto; é possível identificar o requisito que causou sua existência; rastreabilidade para trás.

Rastreabilidade Através da rastreabilidade é possível identificar: os relacionamentos entre os requisitos; suas fontes; os artefatos criados durante o ciclo de vida do sistema; que são derivados do requisito.

Matriz de Rastreabilidade Relações entre os requisitos: R1 depende de R2; R1 especifica R2; acrescenta detalhes. R1 requer R2; requer o resultado de R2. R1 restringe R2. Matriz de Rastreabilidade Projeto <nome do projeto> Requisito R1 R2 R3 R4 *

Matriz de Rastreabilidade Projeto <nome do projeto> Requisito Caso de Uso de Análise 1 Caso de Uso de Análise 2 Compo- nente 1 Caso de Teste 1 R1 * R2 R3 R4

Por quê Rastrear? Auxiliar a gerência do projeto; acompanhando a evolução dos requisitos; registrando sua situação. Auxiliar a gerência de mudanças; acompanhando como a alteração nos requisitos; pode impactar em mudanças nos diversos artefatos do projeto. Garantir a qualidade.

Regras para a Gerência de Mudanças Devem definir: o processo de requisição de mudanças; a informação necessária para processar cada requisição de mudanças; o processo usado para analisar o impacto e os custos da mudança e da informação associada com a mudança; o responsável por analisar a requisição de mudanças; ferramentas para registrar a situação da requisição de mudanças.