Engenharia de
Software
Juliana Paschoal Bueno
e-mail:
julianapb@gmail.com
site:
https://sites.google.com/site/engsoft2012/
Tópicos
• O que é qualidade?
• Gerenciamento de Qualidade
• Software sem Qualidade
• Qualidade de Processo e Produto
• Garantia de Qualidade e Padrões
• Significa que um produto deve atender as suas
especificações.
• Qualidade é a capacidade de um produto de
satisfazer uma dada necessidade.
• Qualidade está diretamente relacionada a
satisfação do cliente/usuário com o produto. Satisfação do usuário = produto adequado +
entrega dentro do orçamento e do prazo.
O que é qualidade?
• É complexo manter uma boa relação entre os
requisitos de qualidade do usuário (eficiência, confiabilidade, funcionalidades, etc) e os requisitos de qualidade do desenvolvedor (reusabilidade, facilidade de manutenção, etc).
• É difícil definir claramente o que são requisitos
de qualidade de software.
O que é qualidade?
• Qualidade de software segundo Pressman:
“Conformidade com os requisitos funcionais e de desempenho explicitamente declarados, padrões de desenvolvimento explicitamente documentados e características implícitas, que são esperadas em todo software desenvolvido profissionalmente.”
• O gerenciamento de qualidade tem o objetivo
de assegurar que o nível requerido de qualidade seja atingido em um produto de software.
• A gerência de qualidade tem a responsabilidade
de definir padrões e procedimentos apropriados de qualidade e garantir que estes sejam
seguidos.
• O gerenciamento de qualidade deve desenvolver
uma cultura dentro da equipe de que a qualidade é vista como responsabilidade de TODOS.
Gerenciamento de Qualidade
• São três pontos importantes:
• O primeiro ponto de medição de qualidade de
software é através de seus requisitos.
• Padrões especificados definem um conjunto
de critérios de desenvolvimento que guiam o desenvolvedor na construção do software.
• O software deve satisfazer requisitos
implícitos, exemplo: facilidade de uso.
Parâmetros de Qualidade
• Devemos implantar procedimentos de
gerenciamento de qualidade para melhorar a qualidade do produto.
• Antes de começarmos o projeto pode-se
especificar padrões de modelos, código, documentos, etc.
• O alvo durante todo o projeto deve ser manter
a qualidade.
Gerenciamento de Qualidade
• Pode ser dividido em 3 atividades principais: • Garantia de qualidade tem o objetivo de
estabelecer padrões e procedimentos organizacionais a serem seguidos.
• Planejamento de qualidade tem o objetivo de selecionar padrões e
procedimentos aplicáveis a um determinado projeto. Faz modificações quando necessário.
Gerenciamento de Qualidade
• Pode ser dividido em 3 atividades principais: • Controle de qualidade tem o objetivo de
assegurar que os padrões e procedimentos definidos sejam seguidos por todas as equipes envolvidas em um projeto.
• A gerência de projeto e a gerência de qualidade
devem ser gerências separadas para assegurar independência.
Gerenciamento de Qualidade
• Gerenciamento de qualidade e desenvolvimento
de software:
Gerenciamento de Qualidade
Processo de desenvolvimento de software Processo de gerenciamento de qualidade D1 D2 D3 D4 D5 Padrões e procedi mentos Plano de qualidad e Relatórios de qualidade• É quando o produto é feito em regime de
urgência, sem planejamentos.
• Dificilmente prazos e custos são mantidos. • Quando o planejamento é feito, não é baseado
em estimativas realistas.
• Iniciativas de melhoria não se sustentam e não
se perpetuam.
Software sem Qualidade
• Quando o prazo está se esgotando qualidade e
funcionalidades são sacrificadas.
• As chances de sucesso do projeto são poucas. • Os testes se forem feitos, são feitos quando
houver tempo, sem planejamento.
• Estresse constante e excesso de trabalho.
• Primeiro tem que ser feita uma mudança de
cultura dentro da equipe, mostrando a
importância da qualidade de software.
• Envolver os setores gerenciais.
• Criar planos de revisão, inspeção e testes. • Padronizar procedimentos: revisões, testes e
inspeções, etc.
Como Implantar Qualidade
• A qualidade de um produto é influenciada pela
qualidade do processo de produção deste produto.
• É difícil medir os atributos de qualidade de
software.
• A relação entre qualidade de processo e
qualidade de produto é complexa.
• A modificação no processo nem sempre gera
melhorias no produto.
• Em processos de produção de produtos
manufaturados quando o processo é ajustado, ele pode ser executado N vezes.
• O software é projetado e não manufaturado.
Qualidade de Processo e Produto
• O processo de desenvolvimento de software é
criativo e não mecânico.
• Por esta razão mesmo depois que o processo
seja ajustado, outros fatores vão influenciar a aplicação do processo diversas vezes.
• Exemplo: surgimento de uma nova ferramenta,
de uma nova linguagem, pressão comercial, etc.
Qualidade de Processo e Produto
• Qualidade baseada em processo:
Qualidade de Processo e Produto
• O gerenciamento de qualidade de software
envolve:
• Definir padrões de processo, tais como o
modo como as revisões devem ser conduzidas, em que momento as revisões devem ocorrer, etc.
• Monitorar o processo de desenvolvimento
para assegurar que os padrões estejam sendo seguidos.
• O gerenciamento de qualidade de software
envolve:
• Relatar sobre o processo para a gerência de
projeto e para o comprador do produto.
• Não utilizar práticas inadequadas
simplesmente porque padrões foram estabelecidos.
Qualidade de Processo e Produto
• Garantia de qualidade é o processo de definição
de como a qualidade de software pode ser atingida e como a organização sabe que o software possui o nível de qualidade necessário.
• Padrões são a chave para o gerenciamento de
qualidade.
• Podem ser padrões internacionais, nacionais,
organizacionais, etc.
• Padrões de Produto
• Padrões que se aplicam ao produto de
software em desenvolvimento. Incluindo: padrões de documentos, padrões de modelos, padrões de código, etc.
• Padrões de Processo
• Padrões que definem como o processo de
software deve se tornar próprio da instituição. Incluindo: definições de processos de
especificação, projeto de validação e uma descrição dos documentos que devem ser confeccionados.
Garantia de Qualidade e Padrões
• Importância dos padrões:
• Reunir as melhores práticas, evitar a
repetição de erros do passado.
• São uma ferramenta para os processos de
garantia de qualidade, envolvem a verificação de conformidade com os padrões.
• Fornecem continuidade ao projeto, novos
contratados podem compreender a
organização através dos padrões que são utilizados.
• Instituições que produzem padrões:
• ANSI: American National Standards Institute • BSI: British Standards Institution
• IEEE: Institute of Eletrical and Electronic
Engineers
Garantia de Qualidade e Padrões
• As equipes de garantia de qualidade que estão
desenvolvendo padrões para uma empresa devem usar os padrões já existentes como partida e elaborar seu próprio manual de padrões.
• Padrões de produto e processo:
Garantia de Qualidade e Padrões
Padrões de Produto Padrões de Processo Formulário de revisão de projeto Conduta de revisão de projeto Estrutura de documento de
requisitos
Submissão de documento a inspeção
Modelo de cabeçalho de classe Processo de liberação de versão Estilo de programação Java Processo de aprovação do plano
de projeto
Modelo de plano de projeto Processo de controle de mudança Formulário de pedido de mudança Processo de registro do software
• Engenheiros podem achar os padrões
irrelevantes ou desatualizados.
• Envolvem muito preenchimento de formulários,
muito trabalho.
• O desenvolvimento e manutenção de padrões
deve ser apoiado pelo uso de ferramentas para que se torne mais fácil.
• Envolver engenheiros no desenvolvimento. Eles
devem compreender as razões de se utilizar padrões.
• Revisar padrões e seu uso regularmente.
Padrões podem se tornar desatualizados e isso reduz sua credibilidade.
Desenvolvimento de padrões
• Explique a figura do slide 12 – Gerenciamento
de Qualidade.
• Qual a definição de qualidade de software? • Quais são os problemas na adoção de padrões
de qualidade de software?
• Qual a gerência é responsável por desenvolver
os padrões e procedimentos de software?
Questões de Revisão
Bibliografia
• “Engenharia de Software”
Autor: Roger S. Pressman
Editora: Pearson – Makron Books
• “Engenharia de Software”
Autor: Ian Sommerville
Editora: Pearson – Addison Wesley
• “Engenharia de Software – Os Paradigmas
Clássico e Orientado a Objetos”
Autor: Stephen R. Schach Editora: Mc Graw Hill
Bibliografia
• “Introdução ao RUP: Rational Unified Process”
Autor: Phillippe Kruchten