Apresentação PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ PÓS-GRADUAÇÃO EM INFORMÁTICA APLICADA Qualidade de software WILIAN ANTÔNIO ANHAIA DE QUEIROZ
O que é qualidade? A Norma ISO8402 define Qualidade como: a totalidade de características de uma entidade que lhe confere a capacidade de satisfazer às necessidades explícitas e implícitas.
O que é qualidade de software? No contexto de desenvolvimento de software, qualidade pode ser entendida como um conjunto de características a serem satisfeitas em um determinado grau, de modo que o produto de software atenda às necessidades explícitas e implícitas de seus usuários.
Qualidade de software Qualidade de software é um assunto que muito se discute e pouco se pratica.
Exemplos de problemas do mercado U$250 bilhões/ano - Gastos em desenvolvimento de software nos USA. U$38 bilhões em 2002 - Foram perdidos em projetos não entregues. U$17 bilhões - São custos acima do previsto nos projetos. 15% dos projetos - Terminam sem entregar resultados. 66% dos projetos - Foram considerados não atendendo as necessidades dos usuários. 43% - Representa o erro médio em relação ao budget do projeto daqueles que foram completados. Fonte: the Standish Group InternationalCHAOS Report2003
Falando de qualidade de software Quando falamos de qualidade de software estamos focando dois itens fundamentais: Qualidade do processo Necessidade Qualidade do produto negócios Os esforços em melhoria da qualidade não podem ter seu foco no produto apenas (fazer software melhor), mas principalmente no processo (fazer melhor o software).
Conseqüências da qualidade do processo Aumento da qualidade do produto. Diminuição do retrabalho. Maior produtividade. Redução do tempo para atender o mercado. Maior competitividade. Maior precisão nas estimativas.
Benefícios indiretos da qualidade do processo Melhoria da satisfação do cliente. Melhoria da imagem da empresa. Melhoria do gerenciamento de riscos nos projetos. Melhoria da satisfação do funcionário. Diminuição de horas-extras (diminui custo ao cliente e funcionário não abre mão de seu descanso). Melhoria nas condições de trabalho.
Qualidade do produto Podemos visualizar o produto através de dois prismas distintos: Qualidade do serviço : é a qualidade do produto tal como observada pelo usuário final. Qualidade da engenharia e valor agregado : é a qualidade da implementação do produto tal como observada pelos desenvolvedores.
Exemplos de métricas do produto Número de linhas de código fonte Número de identificadores de um programa Número de condicionais (ifs) aninhados Boas praticas de programação. Utilização adequada da tecnologia empregada.
Características de Qualidade de Software Correção Validade Robustez Confiabilidade Eficiência Reusabilidade Usabilidade Manutenibilidade Evolutibilidade Portabilidade Interoperabilidade
Gerenciamento da Qualidade
Gerenciamento da Qualidade Visa assegurar que o nível de qualidade requerido é atingido pelo software Envolve a definição apropriada de procedimentos e padrões de qualidade Deve proporcionar uma cultura da qualidade onde esta seja vista como uma responsabilidade de cada um dos envolvidos Não é apenas reduzir defeitos, mas garantir outras qualidades do produto.
Atividade da gerência da qualidade Garantia de Qualidade (Quality Assurance): estabelecer procedimentos e padrões organizacionais que conduzam a um software de qualidade Planejamento da Qualidade: selecionar procedimentos e padrões específicos para um certo projeto. Controle de qualidade: assegurar que os procedimentos e padrões são cumpridos pela equipe de desenvolvimento.
Garantia e padrões de qualidade Padrões (ou normas) são a chave para a garantia da qualidade Padrões podem ser internacionais, nacionais ou organizacionais. Organizações internacionais de padronização: ISO, IEEE, ANSI, etc. Padrões de produto definem características que todos os componentes do software devem possuir Padrões de processo definem como o processo de software deve ser conduzido de forma a assegurar a qualidade do produto
Melhoria de processo do software Brasileiro O mpsbr é um projeto de estruturação que pretender promover a qualificação de um grupo amplo de empresas compatível com os padrões de qualidade aceitos internacionalmente pela comunidade de software, a custos acessíveis para a grande maioria das empresas brasileiras, sendo adequado ao perfil e cultura das empresas de software do país. Mais informações no site: http://www.softex.br/cgi/cgilua.exe/sys/start.htm?sid=191
Algumas siglas ISO 9126 - Norma para qualidade de produtos de software ISO 14598 - Guias para avaliação de produtos de software ISO 12119 - Norma para qualidade de pacotes de software ISO 12207 - Processos de ciclo de vida do software. NBR ISO 9000-3 -Diretrizes para aplicação da norma ISO 9001 ao desenvolvimento, fornecimento e manutenção de software. SPICE / ISO 15504 - Projeto da ISO/IEC para avaliação de processo de desenvolvimento de software. MPSBR : projeto de melhoria de processo do software brasileiro.
Algumas siglas GQM (Gold Questions Metrics) : Metodologia para medição de processos. CMMI (Capability Maturity Model Integrator) : o passo atual de parâmetros de qualidade. SCAMPI : (Standard CMMI Appraisal Method for Process Improvement). CBA-IPI : (CMM Based assessment for internal process improvement). CMM - Capability Maturity Model. Modelo do Software Engineering Intitute (SEI) para avaliação de processos de software. PSP - Personal Software Process - Modelo do SEI que define disciplinas para qualidade pessoal do engenheiro de software. SEI : (Software Engineering Institute) promover melhorias nas prática de desenvolvimento de software para USA.