Requisitos www.professoralucelia.com.br Conceito de Requisito Requisito é uma condição ou capacidade: • Necessária para um usuário resolver um problema ou alcançar um objetivo; • Para satisfazer uma especificação em um sistema ou em um componente; • Com uma representação documentada. Rocco, 2004 Em: The IEEE Standard Glossary of Software Engineering Terminology, 1997. Ciclo-de-vida dos REQUISITOS Necessidade Definição Gestão Avaliação Utilização Processo de Engenharia de Requisitos Informações Necessidades Rocco, 2004 Especificação dos Requisitos Elicitação Modelagem Validação Análise Aquisição Especificação Representações Requisitos de Software • A Norma ISO/IEC 9126 define seis características de qualidade de software que devem ser avaliados: – Funcionalidade (finalidade do produto) – Usabilidade (esforço para utilizar, aprender o produto) – Confiabilidade (freqüência de falhas, recuperabilidade) – Eficiência (desempenho) – Manutenibilidade (esforço necessário para modificar) – Portabilidade (capacidade de transferir o produto para outros ambientes) Níveis de Requisitos Requisitos de negócio objetivos de alto nível requeridos pelos clientes Requisitos de usuário tarefas que os usuários são habilitados a realizar Requisitos funcionais funcionalidade que o software deve prover (comportamento e propriedade: como o sistema deve se comportar quando recebe um estimulo) Requisitos não funcionais Restritivos: Impõem restrições ao sistema, o que limita as opções de solução a serem adotadas. Não expressam nenhuma funcionalidade a ser realizada pelo software Como os Projetos Podem Ter Sucesso? Análise do Problema Entenda o problema Obtenha concordância dos envolvidos Levantamento dos Requisitos Identifique quem usará o sistema (atores) Descubra como o sistema será usado (casos de uso) Gerência de Requisitos Especifique os requisitos completamente Gerencie expectativas, mudanças e erros Controle o aumento do escopo Defina a equipe e a mantenha informada Gerência de Requisitos Atividades de: Rocco, 2004 - acompanhar o desenvolvimento - controlar as mudanças dos requisitos Ações: - planejamento desenvolvimento - rastreabilidade com componentes de software - definição do estado e avaliação da qualidade - Análise de impacto e controle de versões de mudanças Principais Atividades da Engª de Requisitos ELICITAR Documento de Requisitos do Sistema ANALISAR Decisões da Análise MODELAR Métodos, Técnicas e Ferramentas Modelo de Análise do Sistema Elicitação dos requisitos Nesta fase o engenheiro de requisitos procura captar os requisitos do software, buscando obter conhecimento do domínio do problema. ELICITAR: descobrir, tornar explícito, obter o máximo de informações para o conhecimento do objeto em questão. Cabe à elicitação a tarefa de identificar os fatos relacionados aos requisitos do Sistema, de forma a prover o mais correto e mais completo entendimento do que é demandado do software. Para alcançar tal objetivo, esta fase utiliza três atividades principais: identificação das fontes de informação; coleta de fatos e comunicação, além de ferramentas, pessoal e métodos. Elicitação dos requisitos Obter informação sobre domínio do problema e sistema atual (Antes de manter as reuniões com os clientes e usuários e identificar os requisitos, é fundamental conhecer o domínio do problema e os contextos organizacional e operacional (situação atual). A equipe responsável pelo levantamento deve se familiarizar com o vocabulário próprio do domínio a ser considerado. Preparar e realizar reuniões de levantamento /negociações (Utilizar técnicas específicas para o levantamento de requisitos e técnicas de negociação). Identificar e revisar os objetivos do sistema (Identificar e revisar quais informações relevantes para o cliente que o sistema deverá gerir e armazenar.) Identificar e revisar os requisitos funcionais Identificar e revisar os requisitos não funcionais Elicitação dos Requisitos Necessidades da Elicitação • Faz Coleta de Fatos • Faz Identificação de Fontes de Informação • Faz • Faz/Usa Ferramentas • Usa Pessoal • Usa Métodos • Depende de Pontos de Vista Comunicação Identificação das Fontes de Informação • O que são Stakeholders do sistema? – Qualquer pessoa afetada de alguma forma pelo sistema (atores, cliente, usuário final, desenvolvedor) A análise dos Stakeholders ajuda a determinar o impacto que um novo sistema de informação terá. Identificação das Fontes de Informação • Outras fontes de Informação: – – – – – – Documentação do macrosistema Políticas Manuais Memos, atas, contratos... Livros sobre tema relacionado Outros sistemas da empresa, sistemas externos. Identificação das Fontes de Informação • Importante: – Priorizar as Fontes de Informação. – Descubra: • Atores mais importantes • Documentos mais mencionados • Rede de comunicações entre os componentes do macro-sistema • ... Comunicação (...entre clientes/agentes e os eng. soft.) • Apresentação: A forma como a informação é apresentada • Entendimento: Estabelecimento de contextos comuns. – Ex. Planta; Ordem de 5,10,2,9,8,4,6... • Linguagem – Nível de Abstração • Retro-alimentação Apresentação Diferentes formas de apresentação ajudam ou dificultam o entendimento. Percentual Distribuição de Vendas 45% 40% 35% 30% 25% 20% 15% 10% 5% 0% Distribuição de Vendas •Produto A •Produto B •Produto C •Produto D Produto A Produto B Produto C Produto D •15% •40% •20% •25% Entendimento • A comunicação pode ser ruidosa se os indivíduos estiverem dialogando em diferentes níveis de abstração. • Conflito presente entre generalistas e especialistas. Exemplo Devemos conquistar mercados (Diretoria) X Distribuir os vendedores (Gerência de Vendas) Linguagem • A linguagem é reflexo da cultura de uma sociedade. • Para entendermos algo de importante para uma sociedade temos que entender sua linguagem. • Deve-se compreender a linguagem antes de elicitar as necessidades. Exemplos Conta-mãe, Dzero, Fecha a mesa, Passagem de Resultados, Zipar, FTP, TCP/IP Retroalimentação • Obrigar ao receptor da informação a recolocar a comunicação até que o emissor responda positivamente a recolocação. • Resumir, parafrasear, confirmar. a a ? Técnicas de Levantamento - Entrevistas - Questionários -Observação / Visitas instalações (próprias ou outras) - Demonstrações - Pesquisa externa - Análise da Documentação - Joint Application Design (JAD) - IBM - Brain Storm - Brain Writing JAD - Joint Application Development Processo INTRODUZ TEMA Usuários e desenvolvedores trabalham juntos em uma reunião com o objetivo de: identificar o problema propor elementos de solução negociar diferentes abordagens especificar um conjunto preliminar de requisitos de solução MOSTRAR EXEMPLOS DISCUSSÃO Responsável PENDÊNCIA IMPASSE Gerência CONSENSO Envolve: preparação para reunião a partir de uma requisição geral do produto reunião DOCUMENTAÇÃO O Questionários - Fontes sólidas e confiáveis. - Questionário objetivo, dirigido e diferenciado Análise Documental Estudo dos registros existentes, (documentos e relatórios, atuais ou históricos). Inclui a análise das informações em meio magnético (discos, fitas...) Entrevistas Funções - Obtenção de informações: atitudes, comportamento, fatos vivenciados, tendências e experiências - Informações sobre a empresa, atividades e a funções - Visão mais concreta da realidade - Coordenação de informações recebidas de fontes diversas A entrevista - Forma mais comum: pessoal / direta - Documentação dos resultados: copiar tudo? gravar? filmar? realizar anotações ? - Pessoas certas que estão nos locais certos - Perguntas certas, respostas certas - Seqüência dos entrevistados - Planejamento do tempo - Coleta prévia de tantos dados quanto possíveis Entrevistas Procedimentos preliminares - Planejar a entrevista: objetivo, perguntas e tempo - Escolher o local: privacidade é essencial - Agendar a entrevista, informando o entrevistado da agenda - Obter informações sobre as características do pessoais e funcionais do entrevistado Durante a entrevista - Apresentar-se - Repassar a agenda (objetivos, patrocinador, motivo da escolha do entrevistado) - Postura do entrevistador: credibilidade, isenção, discrição; não criar ressentimentos - Deixar o entrevistado falar (redução da interferência) - Direcionar a discussão para os objetivos - Evitar perguntas fechadas - Não ultrapassar o tempo - Notar sinais de impaciência Um estilo para entrevistar - Relacione a parte da entrevista c/ partes do sistema - Obtenha pontos de vista alternativos - Solicite detalhes do item que você estiver interessado - Estabeleça a dependência do assunto com outros - Confirme os dados obtidos - Focalize os requisitos (não os problemas técnicos) Problemas - Você está tomando tempo demais - Você está ameaçando meu emprego - Você não conhece a nossa empresa - Você está tentando mudar o modo que as coisas são feitas aqui - Não queremos esse sistema - Mudei de opnião - Aqui não há consenso de como a coisa deve ser feita Brainstorm - Reunião onde todos têm liberdade de expressar suas opiniões - Nenhuma crítica prévia deve ser feita - São válidas colocações por impulso: o que vale é a quantidade de idéias - Relacionadas as idéias, passa-se para a interpretação dos resultados Brainwriting - Dividir os participantes em grupos de 4 ou 5 pessoas - Os grupos recebem uma questão O trabalho - Escrever a sua opinião sobre a questão - Ao terminar, colocar a folha no centro da mesa - Pegar a folha de respostas de outro integrante do grupo - Criticar as colocações encontradas Brainwriting - Criticar todos os trabalhos do grupo, por escrito - Completado o ciclo, o grupo pode receber nova pergunta - O presentes criticam todas as posições dos grupos Obs: - Pode haver um relator por grupo - Cada grupo pode receber uma questão diferente - Exige um relator do trabalho final