Engenharia de Software



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

Engenharia de Software

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

ENGENHARIA DE SOFTWARE I

Concepção e Elaboração

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

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

Engenharia de Software III

LEVANTAMENTO DE REQUISITOS. Lílian Simão Oliveira

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

Engenharia de Requisitos

Requisitos. Sistemas de Informações

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

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

APOO Análise e Projeto Orientado a Objetos. Requisitos

CONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES

Processos de Desenvolvimento de Software

Engenharia de Software II

Requisitos de Software

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

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

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

Metodologia de Gerenciamento de Projetos da Justiça Federal

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

Engenharia de Requisitos

Engenharia de Software

Projeto de Sistemas I

Extração de Requisitos

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

SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA

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

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental

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

Engenharia de Requisitos Estudo de Caso

Processos de gerenciamento de projetos em um projeto

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

ENGENHARIA DE SOFTWARE

Os desafios do Bradesco nas redes sociais

Feature-Driven Development

Requisitos de Software

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

ABCEducatio entrevista Sílvio Bock

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

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

TAM: o espírito de servir no SAC 2.0

Engenharia de Software II: Desenvolvendo o Orçamento do Projeto. Prof. Msc Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br

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

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

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

Pós Graduação Engenharia de Software

Plano de Gerenciamento do Projeto

endereço eletrônico) OPCIONAL: s.pdf

CHECK - LIST - ISO 9001:2000

Processos Técnicos - Aulas 4 e 5

Módulo 4: Gerenciamento de Dados

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Gerenciamento de Incidentes

Introdução Ciclo de vida tradicional de desenvolvimento Prototipagem Pacotes de software Desenvolvimento de 4ª geração Terceirização

Engenharia de Software. Análise de Requisitos de Sistema e de Software. Análise de requisitos

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

PLANOS DE CONTINGÊNCIAS

Gerenciamento de Projetos

Tecnologia e Sistemas de Informações

Manual AGENDA DE BACKUP

2 Diagrama de Caso de Uso

Sistemas de Gerenciamento de Banco de Dados

Introdução à Engenharia de Software

GARANTIA DA QUALIDADE DE SOFTWARE

Manual de Utilização

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

Análise de Requisitos

Planejando o aplicativo

Gestão dos Prazos e Custos do Projeto

Engenharia de Software II

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

Gerenciamento de Níveis de Serviço

O papel do CRM no sucesso comercial

Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Programa de Pós-Graduação em Informática

Engenharia de Software II

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

TI Aplicada. Aula 02 Áreas e Profissionais de TI. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

Questões atualizadas no PMBoK 5ª edição versão Respostas comentadas com justificativa e seção do PMBoK correspondente.

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

PROFESSOR: CRISTIANO MARIOTTI

Conceitos de Banco de Dados

Gerenciamento de Riscos do Projeto Eventos Adversos

Transcrição:

Engenharia de Software Módulo Engenharia de Requisitos Prof. Maxwell Anderson www.maxwellanderson.com.br

Agenda Introdução Processo de engenharia de requisitos

Introdução Engenharia de requisitos é difícil? Entender os requisitos de um problema está entre as tarefas mais difíceis de um engenheiro de software. Pressman Mas o cliente não sabe o que é necessário? Os usuários finais não deveriam ter um bom entendimento das características e funções? E aí? A resposta é não caro Dr. Watson! A engenharia de requisitos é difícil.

Introdução É o seu pior pesadelo. O cliente entra no seu escritório, senta-se, olha você direto nos olhos e diz: Eu sei que você pensa que entende o que eu disse, mas o que você não entende é que, o que eu disse, não é o que eu queria dizer! Invariavelmente, isso acontece no final de um projeto, depois que os compromissos de prazo de entrega foram feitos, que as reputações estão envolvidas e que dinheiro sério está em jogo.

Introdução Todos nós que temos trabalhado no negócio de sistemas e software a alguns anos, vivemos este pesadelo e, no entanto, poucos de nós aprenderam a se livrar dele. Lutamos quando tentamos levantar requisitos de nossos clientes. Temos dificuldade de entender a informação que conseguimos. Frequentemente registramos os requisitos de maneira desorganizada e gastamos muito pouco tempo verificando o que de fato registramos. Permitimos que as modificações nos controlem, em vez de estabelecer mecanismos para controlar as modificações Prefácio do livro Effective Requirements Practices de Ralph Young

Introdução O que é requisito? Uma condição ou uma capacidade com a qual o sistema deve estar de acordo". Consiste da definição documentada de uma propriedade ou comportamento que um produto ou serviço particular deve atender. Uma característica, atributo, habilidade ou qualidade que um sistema deve necessariamente prover para ser útil a seus usuários.

Introdução O que é requisito? São categorizados como: Requisitos funcionais: especificam ações que um sistema deve ser capaz de executar, sem levar em consideração restrições físicas. Requisitos não-funcionais: descrevem apenas atributos do sistema ou atributos do ambiente do sistema; Não-requisitos: descrevem funcionalidades que não deverão ser implementados no sistema;

Introdução Requisitos funcionais Podem ser capturados como descrições formais, cenários de uso ou casos de uso. Exemplos de descrição formal: RF00 Cadastrar solicitações O sistema deverá permitir ao atendente cadastrar as solicitações de mudanças dos clientes RF05 Controlar abastecimento O sistema deverá permitir ao frentista realizar o controle de abastecimento dos veículos cadastrados na empresa...

Introdução Requisitos funcionais Exemplos de cenário de uso: RF05 Controlar abastecimento Hipótese inicial: o frentista se conectou ao sistema SYSCOMB e acessou a funcionalidade de registrar abastecimento. Normal: o frentista seleciona o tipo de combustível. O sistema solicita ao usuário que forneça informações da placa do veículo, valor para o abastecimento ou quantidade de combustível (em litros) e o código do bico de abastecimento a ser utilizado. O sistema libera a bomba de combustível e reinicializa contadores. O frentista abastece carro. O cliente informa método de pagamento como a vista em dinheiro ou a prazo no cartão de crédito. O frentista realiza registro de pagamento. O sistema realiza procedimentos de controle de estoque conforme definido em RF06 Controlar estoque do combustível. O que pode dar errado: ao realizar pagamento utilizando cartão de crédito, o saldo para pagamento poderá ser insuficiente. Estado do sistema após o término: a funcionalidade será encerrada e o sistema exibirá o dashboard.

Introdução Requisitos funcionais Exemplos de caso de uso:

Introdução Requisitos funcionais

Introdução Requisitos não-funcionais Geralmente são especificados como descrições formais. Podem ser capturados em forma de caso de uso, quando possível. Exemplos de descrição formal: RNF00 Disponibilidade O sistema deverá estar disponível 4 horas por dia, 7 dias por semana, 0 dias por mês. RNF005 Segurança O sistema deverá implementar a segurança de acesso às senhas utilizando criptografia.

Introdução Requisitos não-funcionais Categoria Usabilidade Confiabilidade Desempenho Suportabilidade Subcategorias fatores humanos, estética, consistência na interface do usuário, ajuda on-line e contextual, assistentes e agentes, documentação do usuário, materiais de treinamento freqüência e gravidade de falha, possibilidade de recuperação, possibilidade de previsão, exatidão, tempo médio entre falhas (MTBF) Velocidade, eficiência,disponibilidade, exatidão, taxa de transferência, tempo de resposta, tempo de recuperação, uso de recurso possibilidade de teste, extensibilidade, adaptabilidade, manutenibilidade, compatibilidade, possibilidade de configuração, possibilidade de serviço, possibilidade de instalação, possibilidade de localização (internacionalização)

Introdução Requisitos não-funcionais Categoria Requisito de Design Requisito de Implementação Requisito de Interface Requisito Físico Descrição especifica ou restringe o design de um sistema. especifica ou restringe o código ou a construção de um sistema. Como exemplos, podemos citar: padrões obrigatórios, linguagens de implementação, políticas de integridade de banco de dados, limites de recursos, ambientes operacionais Um requisito de interface especifica: um item externo com o qual o sistema deve interagir, restrições de formatos, tempos ou outros fatores usados por tal interação Um requisito físico especifica uma característica física que um sistema deve possuir, por exemplo, material, forma, tamanho, peso. Esse tipo de requisito pode ser usado para representar requisitos de hardware, como as configurações físicas de rede obrigatórias.

Introdução Não-requisitos Geralmente são especificados como descrições formais. Exemplos de descrição formal: NR00 Usabilidade O sistema não deverá permitir o uso de mouse.

Introdução O que é Engenharia de Requisitos? Auxilia os engenheiros de software a compreender melhor o problema que eles vão trabalhar para resolver. Inclui um conjunto de tarefas que levam a um entendimento de qual será o impacto do software sobre o negócio, do que o cliente quer e de como os usuários finais vão interagir com o software Pressman

Introdução Quem faz? Engenheiros de software (algumas vezes conhecidos como engenheiros de sistemas ou analistas de sistemas) ; Outros interessados (gerentes, clientes e usuários finais). []

Processo de Engenharia de Requisitos A parte individual mais difícil da construção de um sistema de software é decidir o que construir. Nenhuma parte do trabalho danifica tanto o sistema resultante se for feita de forma errada. Nenhuma outr a parte é mais difícil de consertar depois. Fred Brooks

Processo de Engenharia de Requisitos Medição e Análise Engenharia de Requisitos Análise e Projeto Qualidade de Software Engenharia de Software Verificação e Validação Testes Gerência de Projetos Codificação Configuração

Processo de Engenharia de Requisitos Concepção Validação Levantamento Engenharia de Requisitos Especificação Elaboração Negociação

Processo de Engenharia de Requisitos Concepção Pode começar com uma conversa casual; É realizada quando uma necessidade de negócio é identificada ou um mercado ou serviço novo é descoberto Validação São realizadas uma série de questões livres de contexto Concepção Engenharia de Requisitos Levantamento

Processo de Engenharia de Requisitos Levantamento Concepção Porque o levantamento de requisitos é difícil? Porque é tão difícil obter um entendimento claro do que o cliente deseja? Levantamento Problemas de escopo Problemas de entendimento Problemas de volatilidade Engenharia de Requisitos Elaboração Para contornar estes problemas, o engenheiro de software deve realizar a atividade de coleta de requisitos de forma organizada.

Processo de Engenharia de Requisitos Elaboração É realizada o refinamento das informações obtidas durante a concepção e o levantamento dos requisitos. Levantamento Engenharia de Requisitos Elaboração Negociação São definidas as funções, características e restrições de software. Ela é guiada pela criação e refinamento de cenários do usuário que descrevem como o usuário final (e outros atores) poderão interagir com o sistema. Define-se o domínio do problema informacional, funcional e comportamental.

Processo de Engenharia de Requisitos Negociação Às vezes os clientes pedem demais? o Elaboração Diferentes clientes ou usuários podem propor requisitos conflitantes? Negociação O engenheiro de software deve reconciliar conflitos. Devem ser realizados a priorização dos requisitos junto aos clientes, usuários e demais envolvidos. Engenharia de Requisitos Especificação Riscos são identificados e analisados Estimativas grosseiras são realizados, com o objetivo de avaliar o impacto no custo do projeto e no prazo de entrega.

Processo de Engenharia de Requisitos Negociação Usando uma abordagem iterativa (evolutiva), requisitos são eliminados, combinados e/ou modificados de modo que cada parte alcance algum grau de satisfação. Elaboração o Negociação Engenharia de Requisitos Especificação

Processo de Engenharia de Requisitos Especificação Significa coisas diferentes para pessoas diferentes. Negociação Engenharia de Requisitos Especificação Pode ser utilizado um documento escrito, um modelo gráfico, um modelo matemático formal, uma coleção de cenários de uso, um protótipo ou qualquer combinação desses elementos. Serve como fundamento das atividades consequentes. o Validação

Processo de Engenharia de Requisitos Validação Os requisitos são verificados quanto a sua qualidade. Especificação Engenharia de Requisitos Validação É realizado um checklist dos requisitos: Os requisitos foram claramente estabelecidos? A fonte do requisito foi identificada? O requisito está limitado em termos quantitativos? Que outros requisitos se relacionam a estes requisitos? O requisito pode ser testado? Concepção

O que vem agora... Vamos voltar nossos estudos ao processo de engenharia de requisitos, só que agora de maneira detalhada, através das seguintes subáreas ou fases, segundo Pressman []: Concepção Levantamento Elaboração Negociação Especificação Validação

Concepção Seria ótimo se clientes e engenheiros de software trabalhassem juntos em uma mesma equipe. A realidade é muito diferente. Clientes podem estar em outros lugares, cidades diferentes, podem ter uma vaga idéia do que querem, ter opiniões conflitantes, ter conhecimento técnico limitado (ou não saber de nada!), tempo limitado, podem achar que software é barato, que é fácil e rápido de se construir etc... Estas coisas são muito, mas muito comuns! Concepção

Concepção Vamos nos concentrar nos passos necessários para manter o projeto de desenvolvimento de software no passo certo.. Identificação dos interessados. Reconhecimento de diversos pontos de vista. Trabalho em busca de colaboração 4. Formulação das primeiras questões Concepção 4

Concepção. Identificação dos interessados Interessado: quem quer que se beneficie de modo direto ou indireto do sistema que está sendo desenvolvido. Quem são os suspeitos? O chefe? Gerente de negócios? Gerente de produto, de marketing, RH? Clientes externos e internos ao negócio? Usuários finais? Engenheiros de software? Dependendo sim! E outros e outros... Concepção 4

Concepção. Identificação dos interessados Todos tem uma visão diferente do sistema, obtém diferentes benefícios quando o sistema é desenvolvido com sucesso e está exposto a diferentes riscos se o esforço do desenvolvimento falhar. O engenheiro de requisitos deve criar uma lista de pessoas que fornecerão entradas à medida que os requisitos forem levantados. Esta lista vai crescer à medida que os interessados forem sendo contatados. Concepção 4

Concepção. Identificação dos interessados Esta lista vai crescer à medida que os interessados forem sendo contatados porque, a cada interessado, será perguntado: com quem mais você acha que eu deveria falar? Exemplo: Documento de Visão do RUP Concepção 4

Concepção. Reconhecimento de diversos pontos de vista As necessidades dos envolvidos serão explorados a partir de muitos pontos de vista diferentes. Cenário de exemplo de Pressman: O grupo de marketing esta interessado em funções e características que excitem o mercado, tornando o novo sistema fácil de vender; Os gerentes de negócio estão interessados em um conjunto de características que possam ser construídas dentro do orçamento; Os usuários podem querer características que sejam fáceis de aprender; Engenheiros de software podem estar preocupados com funções que permitam melhor manutenibilidade. Concepção 4

Concepção. Reconhecimento de diversos pontos de vista Cada um contribuirá com informações para o processo de engenharia de requisitos; À medida que os requisitos forem sendo levantados sob vários pontos de vistas diferentes, eles poderão estar inconsistentes e podem conflitar uns com os outros. Será necessário categorizar todas as informações dos interessados (inclusive requisitos consistentes e conflitantes). Os interessados deverão decidir quais requisitos inconsistentes deverão ser excluídos ou modificados. Concepção 4

Concepção. Trabalho em busca de colaboração Os clientes e outros interessados deveriam colaborar entre eles e com os engenheiros de software. O trabalho do engenheiro de requisitos é identificar áreas de concordância e áreas de conflito ou inconsistência. Em muitos casos quem bate o martelo é o gerente de negócios ou o gerente sênior, por exemplo. Eles podem decidir quais requisitos entrarão para o corte. Concepção 4

Concepção 4. Formulação das primeiras questões (questões livres de contexto) Identificar os interessados Quem está por trás desta solicitação de trabalho? Quem vai utilizar a solução? Qual será o benefício econômico para a solução? Há outra fonte de solução no mercado? Concepção 4

Concepção 4. Formulação das primeiras questões Obter melhor entendimento Como você caracterizaria boas saídas que seriam geradas? Que problemas essa solução enfrentaria? Você pode mostrar (ou descrever) o ambiente no qual essa solução será usada? Existem algumas restrições que poderiam afetar a solução? Concepção 4

Concepção 4. Formulação das primeiras questões Foco na própria atividade de comunicação inicial Você é a pessoa certa para responder a estas questões? Minhas questões ou dúvidas são relevantes ao problema que você tem? Estou formulando muitas dúvidas ou questões? Alguém mais pode ou precisa fornecer informações adicionais? Devo perguntar-lhe mais alguma coisa? Concepção 4

Concepção Técnicas Entrevistas [RUP] Workshop de requisitos [RUP] Brainstorms Encenação Revisão dos requisitos existentes Etnografia [Sommerville] Concepção 4

Levantamento A forma P&R é útil na concepção, mas não é uma abordagem que tenha tido marcante sucesso para o levantamento dos requisitos mais detalhados.. Coleta colaborativa de requisitos. Cenários de usuários. Produtos de trabalho do levantamento Levantamento

Levantamento. Coleta colaborativa de requisitos Uma equipe de interessados e engenheiros de software trabalham em conjunto para: Identificar o problema; Propor elementos da solução; Negociar diferentes abordagens; Especificar um conjunto preliminar de requisitos. Levantamento

Levantamento. Coleta colaborativa de requisitos Muitas ferramentas são propostas, mas a todas são aplicadas algumas diretrizes básicas: As reuniões são assistidas e conduzidas por engenheiros de software e por clientes. São estabelecidas regras para a participação. É sugerida uma agenda para cobrir todos os pontos importantes, porém deve ser encorajada o livre fluxo de idéias. Um facilitador controla a reunião. Um mecanismo de definição é utilizado: folhas de rascunho, flip charts, papel auto-adesivo, quadro de avisos, fórum virtual, sala de conversa. Levantamento

Levantamento. Coleta colaborativa de requisitos O objetivo é identificar o problema, a necessidade do cliente, propor elementos para a solução, negociar diferentes abordagens e especificar um conjunto preliminar de requisitos da solução em um ambiente que propicie que o objetivo seja alcançado. Levantamento

Levantamento. Coleta colaborativa de requisitos Cenário resumido [PRESSMAN]. Durante a concepção, perguntas e respostas básicas estabelecem o escopo do problema e uma visão geral da solução;. Os interessados redigem uma solicitação de produto de uma ou duas páginas;. São selecionados local e hora para a reunião de levantamento. É escolhido um facilitador; 4. Membros da equipe de software e de outros departamentos são convidados a comparecer; 5. A solicitação do produto é distribuída a todos os participantes antes da data da reunião; Levantamento

Levantamento. Coleta colaborativa de requisitos Cenário resumido 6. Enquanto o dia da reunião não chega, é solicitado a cada participante que faça uma lista dos objetos que fazem parte do ambiente que cerca o sistema, objetos que serão produzidos pelo sistema e objetos que serão utilizados pelo sistema para desempenhar sua função; 7. É solicitado também a cada participante que faça uma outra lista de serviços (processos e funções) que manipulam ou interagem com os objetos; 8. São desenvolvidas listas de restrições (custo, tamanho, regras de negócio) e critérios de desempenho (velocidade, desempenho, precisão etc). Estas listas não devem ser enormes e exaustivas. Levantamento

Levantamento. Coleta colaborativa de requisitos Cenário resumido (exemplo) descrito por uma pessoa do marketing. Nossa pesquisa indica que o mercado de sistema de gestão residencial esta crescendo a uma taxa de 40% ao ano. A primeira função do CasaSegura que levaremos ao mercado deve ser a função de segurança residencial. A maioria das pessoas está familiarizada com sistemas de alarme, assim essa seria uma venda fácil Levantamento

Levantamento. Coleta colaborativa de requisitos Cenário resumido (exemplo) descrito por uma pessoa do marketing. A função de segurança residencial protegeria contra e/ou reconheceria várias situações indesejáveis tais como entrada ilegal, fogo, inundação, níveis de monóxido de carbono e outras. Ela usará nossos sensores sem fio para detectar cada situação, poderá ser programada pelo proprietário e discará automaticamente para a agência de monitoração sempre que uma situação for detectada. Levantamento

Levantamento. Coleta colaborativa de requisitos Cenário resumido. Quando a reunião começa, o primeiro tópico de discussão é a necessidade e a justificativa do produto;. Cada participante apresenta suas listas para discussão. As listas podem ser pinduradas nas paredes da sala usando grandes folhas de papel ou escritas em um quadro. Alternativamente, poderá ser colocada em um site ou em um ambiente de conversação ou mensagens instantâneas salvas posteriormente. O ideal é que cada lista possa ser combinada, as entradas apagadas e adições possam ser feitas. Neste estágio, críticas e debates são proibidos. Levantamento

Levantamento. Coleta colaborativa de requisitos Cenário resumido. Uma lista combinada é criada pelo grupo. A lista elimina redundâncias, adiciona qualquer idéia nova que tenha surgido durante a discussão, mas não apaga nada; 4. Depois de criadas as listas, o facilitador coordena a reunião para desenvolvimento de uma lista de consenso em cada assunto (objetos, serviços, restrições etc.); 5. Completadas as listas de consensos, a equipe é subdividida em equipes menores para desenvolvimento de miniespecificações. Levantamento

Levantamento. Coleta colaborativa de requisitos Exemplo de miniespecificação: O Painel de Controle é uma unidade montada na parede que tem o tamanho x cm. Ele tem conectividade sem fio a sensores e a um PC. A interação com o usuário ocorre por meio do teclado padrão de teclas. Um mostrador LCD de 5 x 5 cm, aproximadamente, fornece um feedback ao usuário. O software fornece prompts interativos, eco e funções similares. Levantamento

Levantamento. Cenários de usuários À medida que os requisitos são coletados, uma visão geral das funções e características do sistema começam a se materializar. A equipe agora deverá procurar entender como essas funções e características serão utilizadas por diferentes classes de usuários. Para isto deverá ser construído cenários de usuários ou casos de uso para o sistema que deverá ser construído. Levantamento

Levantamento. Produtos de trabalho do Levantamento Uma declaração da necessidade ou viabilidade; Uma afirmação limitada do escopo do sistema ou do produto; Uma lista dos clientes, usuários e outros interessados que participaram do levantamento de requisitos; Uma descrição do ambiente técnico do sistema; Uma lista de requisitos (preferenciamente organizadas por função) e as restrições de domínio; Um conjunto de cenários de uso que fornecem informações sobre o uso do sistema sob diferentes condições de operação; Quaisquer protótipos desenvolvidos para definir melhor os requisitos. Levantamento

Elaboração Desenvolvimento de Casos de Uso Um caso de uso conta uma história, sobre como um usuário interage com um sistema, sob seu ponto de vista. Pode ser representado por: Texto narrativo Delineamento de tarefas ou interações Descrição baseada em modelo Diagramas Elaboração

Elaboração Desenvolvimento de Casos de Uso Vamos assistir a algumas demonstrações em vídeo. Elaboração

Negociação de Requisitos Bom seria se esse processo fosse executado: Concepção Levantamento Elaboração Codificar!!! O cliente e os engenheiros entram em um processo de negociação. Negociação

Negociação de Requisitos O cliente será solicitado a ponderar sobre: As funcionalidades O desempenho Outras características em face do custo e do prazo As melhores negociações buscam um resultado ganha-ganha, isto é, o cliente ganha por obter o sistema ou produto que satisfaça à maioria das necessidades e a equipe de software ganha por trabalhar com orçamentos e prazos realistas e realizáveis. [PRESSMAN] Negociação

Negociação de Requisitos Atividades [BOEHM]. Identificação dos interessados-chave do sistema ou subsistema. Determinação das condições de ganho dos interessados.. Negociação das condições de ganho dos interessados para reconciliá-las em um conjunto de condições de ganha-ganha para todos os envolvidos (inclusive a equipe de software) São condições importantes para que o processo possa seguir para as atividades subsequentes. Negociação

Negociação de Requisitos Diretrizes. Reconheça que não é um competição. Trace uma estratégia. Ouça atentamente 4. Focalize nos interesses de outras partes 5. Não deixe a coisa ficar pessoal 6. Seja criativo 7. Esteja pronto a se comprometer Negociação

Especificação de Requisitos Utilização das mesmas práticas contidas na etapa de elaboração, porém a ser realizado em um nível mais detalhado. Inicia-se a fase de Projeto ou Design! Escreveremos coisas específicas para a equipe técnica. Especificação

Validação de Requisitos Os requisitos são priorizados pelo cliente Os requisitos são agrupados em pacotes de requisitos O objetivo é implementar o software em incrementos Validação

Validação de Requisitos Revisão da análise trata das seguintes questões:. Cada requisito está consistente com o objetivo global do sistema?. Todos os requisitos foram especificados no nível de abstração adequado? Isto é, algum requisito fornece um nível de detalhe técnico inadequado neste estágio?. O requisito é realmente necessário ou pode não ser essencial para o objetivo do sistema? 4. Cada requisito é limitado e não ambíguo? 5. Cada requisito tem atribuição (fonte)? 6. Algum requisito conflita com outros requisitos? Validação

Validação de Requisitos Revisão da análise trata das seguintes questões: 7. Cada requisito é realizável no ambiente técnico que vai alojar o sistema ou produto? 8. Cada requisito pode ser testado quando tiver implementado? 9. O modelo de requisitos reflete adequadamente a informação, função e comportamento do sistema a ser contruído? Ferramenta: Planilha de validação Validação

Bibliografia Referência Bibliográfica Sommerville. Engenharia de Software. 8ª ed. São Paulo: Pearson Addison-Wesley, 007. Pressman, S. R. Engenharia de Software. 6ª edição. São Paulo: McGraw-Hill, 006. Boehm, B.; Egyed, A., Software Requirements Negociation: Some Lessons Learned, Proc. Intl. Conf. Software Engineering, ACM/IEEE, 998, p. 50-06.