Prévia do material em texto
29/08/2016 1 QUALIDADE DE SOFTWARE EM ENGENHARIA DE SOFTWARE QUALIDADE DE SOFTWAREQUALIDADE DE SOFTWARE �Gestão de projetos de software �Métricas de software �Engenharia reversa �Garantia de Qualidade de Software Capitulo 3, 4, 8 – Pressman Capitulo 4 ou 24 - Sommerville Qual imagem tem uma qualidade melhor? Qual produto é melhor? QUALIDADE DE SOFTWARE � O que é qualidade? ◦ É uma característica ou atributo de alguma coisa..... � O que é Qualidade de Software? ◦ Produto pronto... ◦ Software em funcionamento... ◦ Código fonte... ◦ Interface.... ◦ Os requisitos, projetos... ◦ Satisfação do usuário � produto adequado + máxima qualidade + entrega dentro do orçamento e do cronograma.... ◦ Se o usuário não esta satisfeito nada mais importa.... Pressman: “A qualidade de um produto é função de quanto ele muda o mundo para melhor”. evand Realce evand Realce evand Realce 29/08/2016 2 �Qualidade é: �Superar as expectativas �Produto sem defeito �Fazer melhor com menos recursos �Adequação ao uso �Produzido por empresa certificada QUALIDADE DE SOFTWARE Qualidade é o que cada cliente percebe como sendo “Qualidade”! Qualidade é o que cada cliente percebe como sendo “Qualidade”! Para o cliente a qualidade acaba sendo resumida em algo que seja mais prático, mais rápido, mais fácil, mais seguro e mais barato em relação ao processo convencional. “Um software de Qualidade deve encantar o cliente e não somente funcionar direito e não ter erros”. Bill Gates “Software de Qualidade é aquele que, não apenas satisfaz as exigências, mas também é implementado a tempo e de acordo com o orçamento”. Joseph Moses Juran Resumindo: qualidade em ES é “Conformidade a requisitos funcionais e de desempenho explicitamente declarados, a padrões de desenvolvimento claramente documentados e a características implícitas que são esperadas de todo software profissionalmente desenvolvido” (Pressman). CERTIFICAÇÃO DE QUALIDADE •Não basta que a qualidade exista, ela deve ser reconhecida pelo cliente; •Deve existir uma certificação oficial emitida com base em um padrão; •As certificações são dadas por instituições competentes; •Exemplos de certificação: •Selo SIF de qualidade de produtos alimentícios; •Selo ABIC de qualidade do café; •Classificação da rede hoteleira (ex.: hotel 5 estrelas). CERTIFICADOS ISO - 9000 •ISO é uma organização não-governamental fundada em 1947, em Genebra, e hoje presente em cerca de 189 países. A sua função é a de promover a normatização de produtos e serviços, para que a qualidade dos mesmos seja permanentemente melhorada. •Esta família de normas estabelece requisitos que auxiliam a melhoria dos processos internos, a maior capacitação dos colaboradores, o monitoramento do ambiente de trabalho, a verificação da satisfação dos clientes, colaboradores e fornecedores, num processo contínuo de melhoria do sistema de gestão da qualidade. Aplicam-se a campos tão distintos quanto materiais, produtos, processos e serviços. ISO - 9000 - Sistemas de Gestão da Qualidade nas empresas. Normas da ABNT – Associação Brasileira de Normas Técnicas. • ABNT NBR ISO 9001:2015: Especifica requisitos para um Sistema de Gestão da Qualidade, onde uma organização precisa demonstrar sua capacidade para fornecer produtos que atendam aos requisitos do cliente e aos requisitos regulamentares aplicáveis, e objetiva aumentar a satisfação do cliente. • ABNT NBR ISO 9004:2010: Fornece diretrizes que consideram tanto a eficácia como a eficiência do sistema de gestão da qualidade. O objetivo desta norma é melhorar o desempenho da organização e a satisfação dos clientes e das outras partes interessadas. ISO/IEC 25010:2011ISO/IEC 25010:2011 http://www.abntcatalogo.com.br/Pesquisar em: As normas: A ISO/IEC 25010 é uma norma disponibilizada em 2011 para qualidade de produto de software. Define modelos de avaliação da qualidade de software e sistemas. Substituiu a Norma ISO/IEC 9126. evand Realce evand Nota evand Nota Pesquisar 29/08/2016 3 GESTÃO DE PROJETOS DE SOFTWARE Trabalha com os 4 P´s: 1. Pessoas 2. Produtos 3. Processo 4. Projeto � 1P - “O gerente que esquece que o trabalho de ES é um empreendimento intensamente humano não obterá sucesso...” � 2P - “O gerente que não se comunica com o cliente e que não pensa na evolução do software, ira construir uma solução elegante para o problema errado”. � 3P - “O gerente que não presta atenção no processo corre o risco de empregar métodos e ferramentas competentes em algo vazio.” � 4P – “O gerente que começa sem um plano de projeto sólido compromete o sucesso do produto”. GESTÃO DE PROJETOS DE SOFTWARE – PESSOAS – 1ºP �Organizado para realizar o projeto de software efetivamente � Comunicação com o cliente � Requisitos e escopos � Importância: O cultivo de pessoal de software motivado e altamente qualificado tem sido discutido desde os anos 60. �O Instituto de Engenharia de Software desenvolveu um modelo de maturidade da capacidade (CMM) para a gestão do gerenciamento de pessoas e processos de software; Em um estudo publicado no IEEE por três vice-presidentes de engenharia de software. IEEE - Instituto de Engenheiros Eletricistas e Eletrônicos, sua meta é promover conhecimento no campo da engenharia elétrica, eletrônica e computação. Um de seus papéis mais importantes é o estabelecimento de padrões para formatos de computadores e dispositivos. ES 3- Pessoal bom....e desenvolver pessoal bom, oferecendo um ambiente no qual esse pessoal possa produzir.... Qual o fator mais importante para um projeto ser bem sucedido? ES 1- ...As pessoas...e não as ferramentas... ES 2- Pessoal competente. Mais importante é selecionar a equipe... Recrutar pessoal bom... GESTÃO DE PROJETOS DE SOFTWARE – PESSOAS – 1ºP Participantes: �Gerentes seniores: definem os aspectos do negócio que tem influência significativa sobre o projeto � Gerentes de projeto (técnicos): Devem planejar, motivar, organizar e controlar os profissionais que fazem o trabalho de software � Profissionais: Aptidões técnicas necessários para desenvolver a aplicação. �Clientes: Especificam os requisitos � Usuários finais: Interagem com o software depois de pronto GESTÃO DE PROJETOS DE SOFTWARE – PESSOAS – 1ºP Líderes de Equipe: Profissionais competentes que ganham destaque dentro de uma equipe, onde os demais são considerados como pessoas “fracas”. � Equipe de Software: � Glenn Parker diz em seu livro que “ Nem todo grupo é uma equipe e nem toda equipe está preparada” � A melhor equipe depende.... ◦ Estilo de gestão ◦ Quantidade de pessoas ◦ Níveis de aptidão ◦ Dificuldade geral do problema GESTÃO DE PROJETOS DE SOFTWARE – PESSOAS – 1ºP Equipe de Software: 1. Democrática Descentralizada (DD): não tem líder permanente; são selecionados coordenadores de tarefas por um período de tempo; as decisões são tomadas em consenso com o grupo. 2. Controlada Descentralizada (CD): líder definido que coordena tarefas especificas e lideres secundários; a solução dos problemas é visto em grupo; a divisão de tarefas é feita pelo líder. 3. Controlada Centralizada (CC): tem um líder de equipe que toma as decisões. Qual a melhor organização para ser utilizada? � Projetos simples – CC ou CD � Projetos mais complexos - DD 29/08/2016 4 Equipe de Software: Fatores que devem ser levados em conta quando se planeja a formação da estrutura da equipe de ES: 1. A dificuldade do problema a ser resolvido; 2. Tamanho do programa resultante (linhas de código); 3. Período de vida da equipe (período que a equipe estará junto para desenvolver o projeto); 4. Grau de módulos que o problema admite;5. A qualidade e a confiabilidade do sistema a ser construído; 6. A rigidez do prazo de entrega; 7. Grau de sociabilidade (comunicação) exigido pelo projeto. Sugestão de formação de uma equipe: �Membros das equipes devem confiar uns nos outros � Distribuição de aptidões deve ser adequada ao problema � “Estrelas” podem ser excluídas da equipe, se a coesão tiver que ser mantida. “Trabalhar com pessoas é difícil, mas não é impossível”. “Não importa qual é o problema.... é sempre um problema de pessoal”. Equipe de Software: � Antes que um projeto possa ser planejado, devem ser estabelecidos os objetivos e o escopo do produto (software). � No início do projeto é exigido de um gerente que ele faça as estimativas quantitativas e um plano organizado para a confecção do produto... mas não se tem informação necessária suficiente ainda !!! � Deve ser realizada primeiro a análise detalhada dos requisitos, e isso pode requer semanas ou meses.... � Desta forma o escopo do produto dever ser pelo menos estabelecido e delimitado. Gestão de Projetos de Software – Produto – 2ºP � Escopo do software: � Contexto: ◦ Como um software a ser construído se encaixa no contexto de um sistema maior, do produto ou do negócio? � Objetivos da informação: ◦ Quais as informações que o usuário terá como saída? Quais as entradas? � Função e desempenho: ◦ Como os dados de entrada são transformados em dados de saída? Gestão de Projetos de Software – Produto – 2ºP Decomposição do Problema: �Para desenvolver um plano de projeto razoável, que poderá ser aceito, é necessário decompor funcionalmente o problema a ser resolvido: Dividir para conquistar Seguindo duas áreas principais: �A funcionalidade que precisa ser entregue �O processo que será usado para entregá-lo. Gestão de Projetos de Software – Produto – 2ºP Gestão de Projetos de Software – Processo – 3ºP Gerente do projeto deve:Gerente do projeto deve: 1. Selecionar o processo de software que será aplicado no desenvolvimento; 2. Qual é o mais apropriado para.... ◦ o cliente que fez a solicitação do produto ... ◦ o pessoal técnico 3. As características do produto propriamente dito; 4. O ambiente no qual a equipe trabalha. 29/08/2016 5 1) Fusão do Produto e do Processo: �Considerando que a equipe definiu as seguintes etapas de atividades a serem seguidas: �Comunicação com o cliente – engenharia de requisitos; �Planejamento – definição de recursos, prazos; �Analise de risco – quais as falhas que podem ocorrer durante o desenvolvimento do projeto; �Engenharia – ferramentas a serem utilizadas pra criar a documentação e as representações de uma aplicação; �Construção e entrega – tarefas e ferramentas necessárias para construir, testar, instalar e dar manutenção; �Avaliação pelo cliente – tarefas para colher informações do cliente, baseado na avaliação feita pelo mesmo. Gestão de Projetos de Software – Processo – 3ºP 2) Decomposição do processo: �Ex.: Comunicação com o cliente: ◦ Desenvolva uma lista de pontos a esclarecer ◦ Reúna-se com o cliente para discutir os pontos a esclarecer ◦ Desenvolva conjuntamente uma declaração de escopo ◦ Reveja a declaração de escopo com todos os interessados ◦ Modifique a declaração do escopo na medida do necessário Gestão de Projetos de Software – Processo – 3ºP Gestão de Projetos de Software – Projeto – 4ºPGestão de Projetos de Software – Projeto – 4ºP Para gerir com sucesso um projeto de software, precisamos entender o que pode dar errado (de modo que os problemas possam ser evitados) e como fazer para dar certo. 1.O pessoal de software não entende as necessidades de seus clientes 2. Escopo mal definido 3. Modificações mal gerenciadas 4.Tecnologia escolhida sofre modificações 5. As necessidades do negócio modificam-se (ou estão mal definidas) 6. Prazos irreais 8. Usuários resistentes8. Usuários resistentes 7. Equipe com aptidões não adequadas 7. Equipe com aptidões não adequadas 9. Gerentes evitam as melhores práticas e as lições adquiridas Gestão de Projetos de Software – Projeto – 4ºPGestão de Projetos de Software – Projeto – 4ºP Comece com o pé direito: Trabalho duro para entender o problema; Boa equipe, autonomia, autoridade e tecnologia necessária. Mantenha a energia de momento: Providenciar incentivos para reduzir a rotatividade de pessoal; Enfatizar a qualidade em toda tarefa Acompanhe o progresso: Modelos, código-fonte, conjunto de casos de testes são produzidos e aprovados através de revisões técnicas Tome decisões adequadas: Manter as coisas simples; Uso de componentes; Identifique riscos e evite-os Como o gerente pode evitar esses problemas: