Engenharia de requisitos

Documentos relacionados
Tópicos da Aula. Que é são requisitos? Tipos de Requisitos. Requisitos Funcionais. Classificação de Requisitos. Requisitos de Software.

Engenharia de Software

Requisitos do usuário, do sistema e do software [Sommerville, 2004]

LEVANTAMENTO DE REQUISITOS. Lílian Simão Oliveira

Engenharia de Requisitos

Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

Requisitos de Software

APOO Análise e Projeto Orientado a Objetos. Requisitos

REQUISITOS. Prof. Msc. Hélio Esperidião

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Objetivos. Requisitos de Software. Tipos de Requisitos. O que é um requisito? Requisitos Funcionais e Não- Funcionais. Requisitos Funcionais

Engenharia de Requisitos

Requisitos de Software

Requisitos. Sistemas de Informações

Modelo para Documento de. Especificação de Requisitos de Software

Requisitos de Software

2 Diagrama de Caso de Uso

Extração de Requisitos

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

Auditoria e Qualidade de Software ISO/IEC 9126 Engenharia de Software Qualidade de Produto

Feature-Driven Development

Engenharia de Requisitos Estudo de Caso

Análise e Projeto Orientados a Objetos Aula IV Requisitos. Prof.: Bruno E. G. Gomes IFRN

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Projeto de Sistemas I

Processos de Desenvolvimento de Software

Resumo do BABok 2.0 O Guia de Referência de Análise de Negócio Curso de Analista de Negócio 3.0

Análise e Conc epç ão de Sist em as de Inform aç ão,qwurgxomrj(qj GH5HTXLVLWRV. Adaptado a partir de Gerald Kotonya and Ian Sommerville

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS

ENGENHARIA DE SOFTWARE I

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas

02/10/2012. Padronização de interfaces. Referências

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 10 PROFª BRUNO CALEGARO

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

Engenharia de Software II

LEVANTAMENTO DE REQUISITOS SEGUNDO O MÉTODO VOLERE

PROFESSOR: CRISTIANO MARIOTTI

desenvolvimento de SI

O Processo Unificado: Captura de requisitos

! Introdução. " Motivação para Processos de Software. ! Processo Unificado (USDP) " Definições " RUP x USDP " Características do Processo Unificado

OBJETIVO 2 APLICAÇÃO 3 ATRIBUIÇÕES E RESPONSABILIDADES 4 DOCUMENTOS DE REFERÊNCIA 5 TERMINOLOGIA 6 DESCRIÇÃO DO PROCESSO DE GESTÃO DE MUDANÇAS

Tecnologia e Sistemas de Informações

Engenharia de Software 2012/3 Aula 4 Engenharia de Requisitos

Tipos de teste de software

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES

Termo de Abertura Sistema de Vendas de Pizzas Online (PizzaWeb) - Versão 1.0

Análise de Requisitos

Modelo para Documento de. Especificação de Requisitos de Software

Ciência da Computação ENGENHARIA DE SOFTWARE. Análise dos Requisitos de Software

Diagrama de Caso de Uso e Diagrama de Sequência

Engenharia de Software

Requisitos. Professor Gabriel Baptista ( gabriel.baptista@uninove.br ) ( )

Planejamento de Projetos. Professor Gabriel Baptista ( gabriel.baptista@uninove.br ) ( )

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Universidade Paulista

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Requisitos de Software

3 a Lista de Exercícios

Padrões de Qualidade e Métricas de Software. Aécio Costa

Objetivos. Processos de Software. Tópicos abordados. O processo de software. Modelos genéricos de modelos de processo de software.

Implantação de um Processo de Medições de Software

GARANTIA DA QUALIDADE DE SOFTWARE

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação

Professor: Curso: Disciplina: Aula 4-5-6

Planejamento e Gerenciamento de Software. Tema 3. Gerência de Projetos Profa. Susana M. Iglesias

Para cada fase consideramos. Tempo para um projeto típico Tempo para um projeto Complexo. Arquitetura do Processo Unificado. A meta a ser atingida

EVOLUÇÃO DE SOFTWARE

Modelos de Sistema by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Modernização e Evolução do Acervo de Software. Gustavo Robichez de Carvalho guga@les.inf.puc-rio.br

Fundamentos em Teste de Software. Vinicius V. Pessoni

LISTA DE VERIFICAÇAO DO SISTEMA DE GESTAO DA QUALIDADE

Engenharia de Software Questionário sobre Engenharia de Requisitos Resolvido Prof. MSc Wagner Siqueira Cavalcante

Conceitos de Banco de Dados

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

CES-32 e CE-230 Qualidade, Confiabilidade e Segurança de Software. Conceitos de Qualidade. CURSO DE GRADUAÇÃO e DE PÓS-GRADUAÇÃO DO ITA

Análise de Sistemas. Visão Geral: Orientação a Objetos. Prof. José Honorato Ferreira Nunes honorato.nunes@bonfim.ifbaiano.edu.br

Sistemas de Informação I

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico. " Crise do Software

Ricardo Roberto de Lima UNIPÊ APS-I. Históricos e Modelagem Orientada a Objetos

Fábrica de Software 29/04/2015

Prova de Conhecimento para Consultores de Implementação MPS.BR INSTRUÇÕES

Engenharia de Software

Gerenciamento de Projeto

BANCO CENTRAL DO BRASIL 2009/2010

CHECK - LIST - ISO 9001:2000

Transcrição:

Engenharia de requisitos Um Requisito é uma característica que um sistema precisa ter ou uma restrição que ele precisa satisfazer para ser aceito pelo cliente. A Engenharia de requisitos tem por objetivo definir os requisitos de um sistema em construção e apresenta duas atividades principais: o levantamento e análise de requisitos. Levantamento de requisitos O levantamento de requisitos é desafiador. Ele exige a colaboração de vários participantes com diferentes experiências. Em geral os clientes e usuários são especialistas em seu domínio e têm uma idéia geral do que o sistema deverá ser, mas têm pouca ou nenhuma experiência no desenvolvimento de aplicações. Erros introduzidos durante o levantamento de requisitos são tardiamente encontrados e têm um grande custo para serem corrigidos. Tipos de requisitos Requisitos funcionais descrevem as interações do sistema com o seu ambiente independente de sua implementação, incluindo as interações com os usuários e outros agentes externos. Em geral os requisitos funcionais estão associados a: 1. Funcionalidades do sistema 2. Serviços que o sistema deve prover 3. Comportamento do sistema a determinadas entradas 4. Funções que o sistema não deve suportar Exemplos: a) O aplicativo deve possibilitar o agendamento de pagamentos em conta corrente (em um sistema de bancário de contas correntes). b) O aplicativo deve possibilitar o débito parcial da fatura do cartão e pagamento antecipado. c) O pagamento on-line não será permitido para pagamentos em atraso. Requisitos não funcionais são características requeridas pelo usuário do sistema, mas que não estão diretamente relacionadas à sua funcionalidade. Os requisitos não funcionais são associados, por exemplo, a: 1. Qualidade 2. Desempenho 3. Portabilidade 4. Precisão 5. Confiabilidade 6. Segurança

Os requisitos não funcionais definem, em geral, restrições aos sistemas propostos. Muitas dessas restrições refletem restrições do usuário ao processo de desenvolvimento do software como restrições organizacionais, restrições orçamentárias, legais etc. Os requisitos não funcionais ainda podem ser classificados como Requisitos de produto, organizacionais e externos. Non-functiona l Product Organisa tiona l Externa l Effic iency Re lia bility Portability Inte rope r a bility Ethica l Usability De live ry Imple menta tion Sta ndar ds Le gisla tive Performa nc e Spa ce Priva cy Safety Requisitos não funcionais segundo Sommerville. Requisitos de domínio são características que refletem um dado domínio da aplicação. Considere um sistema de solução de sistemas lineares, pode haver o requisito de solução do sistema através de um método específico, como Gauss-Seidel. Pseudo Requisitos. Alguns autores ainda consideram a restrição pelo cliente do tipo de linguagem ou plataforma a ser utilizada como um pseudo-requisito do aplicativo. Validação dos requisitos A constante validação dos requisitos junto ao cliente e usuários é crucial. A validação envolve verificar se a especificação dos requisitos é correta, completa, consistente, unívoca e realista. Correta Completa Consistente Unívoca Realista o modelo descreve a realidade do cliente e não outra todo aspecto de interesse é descrito através de um conceito todos conceitos correspondem ao um aspecto concreto (real) cada conceito relaciona-se a um único aspecto e vice-versa o modelo descreve uma realidade que pode existir

Documento de Análise de Requisitos (DAR) 1. Introdução 1. Propósito do sistema 2. Escopo do sistema 3. Objetivos e critérios de sucesso do projeto 4. Definições, acrônimos, e abreviaturas 5. Referências 6. Visão geral 2. Sistema Atual 3. Sistema Proposto 1. Visão geral 2. Requisitos Funcionais 3. Requisitos não Funcionais 1. Interface do usuário e fatores humanos Qual o nível de especialização dos usuários? Qual o tipo de interface requerida? 2. Documentação Tipos de documentação requeridos: do usuário, técnica, nível de detalhe 3. Considerações de hardware Size, tipo dos equipamentos 4. Considerações de software Tipo de S.O., versões, tipo de banco de dados, arquitetura 5. Características de desempenho Tempo de resposta do sistema, número de usuários, acessos concorrentes, condições extremas de carga 6. Tratamento de exceções Exceções de processamento, erros do sistema 7. Considerações de qualidade Robustez, confiabilidade, disponibilidade 8. Modificações no sistema Escopo de modificações previstas 9. Ambiente físico Locais onde o aplicativo deve ser distribuído 10. Considerações de segurança Risco de violação, erros e ataques 11. Questões de recursos Recursos a serem consumidos pelo sistema como espaço de armazenamento 4. Modelos do sistema 1. Cenários 2. Casos de Uso 3. Modelo de Objetos i. Dicionário de dados ii. Diagrama de classes 4. Modelos dinâmicos Diagramas de seqüência, colaboração, estados, atividades etc. 5. Interface do usuário Navegabilidade, screen-shots etc. 5. Glossário

Técnicas de extração de requisitos As seguintes técnicas são aplicadas na extração de requisitos adaptando-se a cada caso e, na maior parte das vezes combinadas umas às outras: Entrevistas - Requerem planejamento. As entrevistas devem ser planejadas: objetivo, organização da entrevista, seleção dos participantes, questionário prévio, feedback etc. - Gerar documento de compromisso com os participantes. - Permitem o contato direto com o cliente. Questionários - Requerem conhecimento prévio do assunto e dos clientes (perfil, vocabulário etc.) para elaboração de questões claras e objetivas. Isso torna o questionário impraticável em muitos casos. - Permite padronização das perguntas/respostas e tratamento estatístico dos resultados. - Aplicável quando é necessário obter informações de um grande número de usuários. Cenários - Construídos como instâncias de casos de uso que serão construídos mais adiante no sistema. Apresentam: Atores participantes Condições de entrada Fluxo de eventos principais o Fluxo de eventos secundários Condições de saída Requerimentos especiais - Cenários e casos de uso fazem parte dos recursos da linguagem UML e vem sendo amplamente empregados. Prototipação - Lida basicamente em oferecer ao usuário as interfaces do sistema para que ele experimente o aplicativo verificando os seus requisitos e encontrando novos. - Apresenta um custo alto de desenvolvimento (protótipos são desenvolvimentos parciais que são descartados depois). - Técnicas de desenvolvimento ágil vêm sistematicamente substituindo protótipos por entregas parciais completas. Projetistas e empresas tendem a misturar vários desses processos criando técnicas de extração de requisitos específicas. As técnicas de JAD (Joint Application Design) são bastante populares entre os desenvolvedores de software. Basicamente ela envolve a colaboração de clientes, usuários e desenvolvedores, incluindo-se os executivos patrocinadores do projeto (stakeholders) e gerentes do projeto, através de reunião de trabalho ao longo de toda uma

semana para a extração dos requisitos de um sistema. Nesse trabalho são efetuadas discussões, entrevistas, atividades de planejamento, verificações de requisitos e elaborados documentos do sistema. 10 Small Steps, to Better Requirements Não obstante o esforço despendido no adequado levantamento de requisitos a falta de especificações corretas de requisitos ainda aparece como um dos principais problemas no desenvolvimento de software. Ian Alexander aponta no texto abaixo algumas boas práticas que buscam minimizar esse problema. Ian Alexander, Requirements Column, IEEE Software, 23, 2, pages 19-21, Mar/Apr, 2006. http://easyweb.easynet.co.uk/~iany/index.htm Step 1. Step 2. Step 3. Step 4. Step 5. Step 6. Step 7. Step 8. Step 9. Step 10. Mission & Scope Stakeholders Goals Goal Conflicts Scenarios Shall-Statements Justifications Assumptions Agreed Priorities Acceptance Criteria Exercícios 1. Cite 3 dificuldades encontradas no levantamento de requisitos. 2. Defina de forma geral do que é a técnica de JAD? 3. Estudo de Viabilidade. Antes do levantamento de requisitos devemos nos questionar sobre a Viabilidade do projeto. Que questões principais devem ser verificadas antes de prosseguirmos com o levantamento de requisitos? (Resposta) Basicamente o estudo de Viabilidade busca responder às perguntas: O sistema contribui para os objetivos gerais da organização e encontra-se alinhado com eles? O sistema é viável na tecnologia, prazos e recursos (financeiros, humanos etc.) disponíveis para sua realização? O sistema se ajusta aos aplicativos e processos atuais (análise de impacto). 4. Cite 6 requisitos não funcionais. 5. Requisitos não funcionais requerem métricas que permitam que sejam verificados. a) Justifique essa afirmativa. b) Exemplifique.

(Resposta item b somente). Seguem-se exemplos de requisitos não funcionais e formas de medida. Requisito não funcional Desempenho Capacidade Facilidade de uso Confiabilidade Portabilidade Robustez Métricas potenciais Tempo de resposta ao usuário Número de operações/transações por segundo Tempo de carga de uma tela Taxa de transferência de arquivos Gigabytes de armazenamento requeridos Número de usuários concorrentes Quantidade de horas de treinamento requeridas Número de ações requeridas para executar uma dada operação (clicks, telas etc.) Percentual de indisponibilidade do sistema Número de falhas/incidentes por um período Relação de sistemas e versões para as quais se espera portabilidade Tempo de recuperação do sistema para diferentes cenários desastre (perda do banco de dados, perda da máquina etc. ) 6. Cite ao menos 4 boas práticas a serem observadas para o sucesso do levantamento de requisitos. 7. Um dos maiores problemas na engenharia de requisitos é que os requisitos mudam. a) Justifique essa afirmativa. b) Não sendo possível garantir que os requisitos não mudam como devemos proceder para garantir o sucesso de um projeto.