Engenharia de Software
description
Transcript of Engenharia de Software
Engenharia de Software
Prof.: Bruno Rafael de Oliveira Rodrigues
• O levantamento de requisitos não é uma tarefa simples, por isso deve acontecer de forma organizada
Principais problemas relacionados ao
levantamento de requisitos• Problemas de escopo – O limite do sistema é mal
definido ou o cliente especifica detalhes técnicos desnecessários
• Problemas de entendimento – Os clientes/usuários não estão completamente certos do que é necessário; têm dificuldade de informar as necessidades ao engenheiro de sistemas; omitem informações que acreditam ser “óbvias”; especificam requisitos conflitantes com as necessidades de outros clientes/usuários;
• Problemas de volatilidade – Os requisitos mudam ao longo do tempo.
Técnicas de apoio durante o levantamento de requisitos
• Prototipação• Entrevistas• Questionários• Brainstorming• JAD (Joint Application Development)• Estudo etnográfico• Workshops
Prototipação• É construído com o objetivo de demonstrar aos
usuários o que o analista conseguiu captar quanto aos requisitos do produto, ou parte dele.
O protótipo é indicado:• alternativa de interface de usuário.• os problemas de comunicação com outros
produtos.• a viabilidade de atendimento dos requisitos de
desempenho.
EntrevistaÉ uma das técnicas tradicionais mais simples de utilizar e que produz bons resultados na fase inicial de obtenção de dados.
• Forma mais comum: pessoal / direta• Documentar os resultados• Procurar as pessoas certas • Planejamento do tempo• Coleta prévia de tantos dados quanto possíveis
Para elaborar perguntas
• Explique o relacionamento entre o que está em discussão e as demais partes do sistema;
• Descreva o ponto de vista de outros usuários em relação ao item que esteja sendo discutido;
• Descreva informalmente a narrativa do item em que o analista deseja obter informações;
• Perguntar ao usuário se o item em discussão depende para a sua existência de alguma outra coisa, para assim poder juntar os requisitos comuns do sistema, formando assim um escopo conciso
Questionários• É indicado, por exemplo, quando há diversos
grupos de usuários que podem estar em diversos locais diferentes do país
Tipos de Questionários• Múltipla escolha• Lista de verificação• Questões com espaços em branco
Deve ser desenvolvido um controle que identifique todas as pessoas que receberão os questionários. Devem haver instruções detalhadas sobre como preenchê-lo e ser indicado claramente o prazo para devolução do questionário
Brainstorming• É uma técnica para geração de idéias. São
reuniões onde todos têm liberdade de expressar suas opiniões.
Para conduzir uma sessão de brainstorming• Seleção dos participantes• Explicar a técnica e as regras a serem seguidas• Produzir uma boa quantidade de idéias
• Uma pessoa registra todas as ideias em uma lousa branca ou em papel. À medida que cada folha de papel é preenchida, ela é colocada de forma que todos os participantes possam vê-la.
Workshops• Consiste numa técnica usada através de uma
reunião estruturada, da qual devem fazer parte um grupo de analistas e um grupo representando o cliente, para então obter um conjunto de requisitos bem definidos
• Promove-se a interação entre todos os elementos presentes no workshop fomentando momentos de descontração como forma de dinamizar o trabalho em equipe, existindo um facilitador neutro cujo papel é conduzir a workshop e promover a discussão entre os vários intervenientes
• Uma técnica que é também útil em workshops é o uso de brainstorming.
• Deve ser produzida documentação que reflita os requisitos e decisões tomadas sobre o sistema a implementar. É importante que esta técnica, não seja utilizada sozinha, pois a informalidade do Workshop poderá deixar alguns detalhes dos projetos escapar.
Cenários• Levar as pessoas a imaginarem o comportamento
de um sistema através de exemplos práticos descritivos do comportamento de um sistema
Os cenários devem incluir
• Estado do sistema no início do cenário.• Sequência de eventos esperada (na ausência de
erros) no cenário.• Listagem de erros que podem ocorrer no decorrer
dos eventos do cenário e de como estes erros serão tratados.
• Outras atividades que podem ser executadas ao mesmo tempo que as deste cenário.
• Estado do sistema depois de o cenário terminar.
JAD (Joint Application Design)
• É uma técnica estruturada de condução de reuniões, aplicável a diversas atividades de desenvolvimento de software.
• Muito útil para o levantamento e a negociação de requisitos
Vantagens do JAD• Compromete nos requisitos os usuários com
poder de decisão sobre eles.• Reduz o prazo de levantamento da especificação
de requisitos.• Elimina requisitos de valor questionável.• Reduz diferenças de interpretação dos requisitos
entre usuários e desenvolvedores.• Produz um primeiro esboço das interfaces de
usuários.• Traz à baila, o mais cedo possível, problemas
políticos que possam interferir no projeto.
Problemas do JAD• A não participação das pessoas que
desempenham papéis-chave nos processos de uso do produto.
• A participação das pessoas não comprometidas com o produto
• O número excessivo de participantes(8 a 15 pessoas)
• O cliente não libere o seu pessoal para participar das reuniões com a dedicação necessária
Etnografia
• É uma técnica de observação que pode ser utilizada para compreender os requisitos sociais e organizacionais, ou seja, entender a política organizacional bem como a cultura de trabalho com objetivo de familiarizar-se com o sistema e sua história.
• Uma observação direta das atividades realizadas durante um período de trabalho de um funcionário é possível encontrar requisitos que não seriam observáveis usando técnicas convencionais
Problemas da Etnografia
• O tempo necessário para os processar pode ser demasiado. Nesta técnica assume-se que o representante do cliente observado desempenha as suas funções "corretamente", pelo que convém ter algum cuidado na escolha do mesmo.
Bibliografia• Moraes, Janaína Bedani Dixon.Técnicas para
levantamento de Requisitos. Disponível em:<http://www.devmedia.com.br/artigo-engenharia-de-software-2-tecnicas-para-levantamento-de-requisitos/9151> acessado em: 07 de mar. De 2012
• Felizardo, José Henrique Lincoln da Fonseca. Técnicas Para Levantamento de Requisitos. Disponível em: <http://www.projetodiario.com.br/engenharia-de-requisitos/tecnicas-para-levantamento-de-requisitos> acessado em: 07 de mar. De 2012
• Técnicas de Levantamento de Requisitos disponível em: <http://pt.scribd.com/doc/40232331/Tecnicas-de-Levantamento-de-Requisitos> acessado em: 07 de mar. De 2012
• PÁDUA, Wilson de Paula. Engenharia de software: fundamentos, métodos e padrões. 1. ed. LTC, 2001.