Especialização em Gerência de Projetos de Software Conceitos Fundamentais de Qualidade de Software Prof. Dr. Sandro Ronaldo Bezerra Oliveira srbo@ufpa.br www.ufpa.br/srbo Qualidade de Software 2009 Instituto de Ciências e Exatas e Naturais Universidade Federal de Pará
Quem vos fala... Tecnólogo pela UNAMA Especialista pela UFPA Mestre pela UFPE Doutor pela UFPE 9 anos de experiência em desenvolvimento de software, pesquisa tecnológica, treinamentos e consultoria Áreas de experiências: metodologias de desenvolvimento de software, banco de dados, gestão de projetos de software, qualidade de software, melhoria de processo, etc. Qualidade de Software - 2009 2
Exercícios diários... Professor Titular I e Pesquisador da UNAMA Pesquisador do Grupo ImPProS da UFPE Consultor na implantação de melhoria de processo em empresas (pequena e médio porte) Implementador e Avaliador credenciado pela SOFTEX do modelo MPS.BR, pela SWQuality Participa da comissão técnica do modelo MPS.BR Participa do ProQuality Group Participa do SEI Group Gerente de Divisão Desenvolvimento, da Cobra Tecnologia Qualidade de Software - 2009 3
Agenda O que é Qualidade? O que é Qualidade de Software? Qualidade do Produto e do Processo Normas e Organismos Normativos Qualidade de Software - 2009 4
O que é Qualidade? O que um determinado produto apresenta para considerarmos que o mesmo tem qualidade? Ex.: Carro Qualidade é um conceito relativo. Diversos aspectos são levados em conta. No caso de um automóvel, fatores como conforto, segurança, desempenho, beleza e custo têm estreita relação com a qualidade. Qualidade de Software - 2009 5
O que é Qualidade? Qualidade está fortemente relacionada à conformidade com os requisitos. O que é conformidade em relação a requisitos? observado x especificado. Pode haver problemas na observação. Pode haver problemas na especificação. Qualidade de Software - 2009 6
O que é Qualidade? Qualidade diz respeito à satisfação do cliente. Requisitos são especificados por pessoas e com o objetivo de satisfazer outras pessoas. Uma especificação depende das escolhas feitas (clientes alvo). Pode haver problemas na especificação. Qualidade de Software - 2009 7
Breve Histórico da Qualidade Relatos Históricos de 4.000 anos atrás no Egito. Marco Importante: Revolução Industrial 1920: Controle Estatístico da Produção 1940: Surgimento de vários organismos ligados à qualidade ASQC (American Society for Quality Control ABNT (Associação Brasileira de Normas Técnicas) ISO (International Standardization Organization) Ainda década de 1940: Japão destaca-se. Década de 1970: Qualidade de Software Qualidade de Software - 2009 8
O que é Qualidade de Software? Conferência da NATO (1968) Crise de Software Problemas detectados: Cronogramas não observados. Projetos abandonados. Módulos que não operam corretamente quando combinados. Programas que não fazem exatamente o que era esperado. Sistemas tão difíceis de usar que são descartados. Sistemas que simplesmente param de funcionar. Passados quase 40 anos, o que mudou? Qualidade de Software - 2009 9
O que é Qualidade de Software? Qualidade em geral: é um conceito relativo. está fortemente relacionada à conformidade com requisitos. diz respeito à satisfação do cliente. Como isso se manifesta em software? Qualidade de Software - 2009 10
O que é Qualidade de Software? O aspecto não repetitivo do desenvolvimento de software torna essa atividade difícil e em boa medida imprevisível. Delimitar o escopo de um sistema não é trivial. A volatilidade dos requisitos é lugar comum no desenvolvimento de software. Qualidade de Software - 2009 11
O que é Qualidade de Software? Fatores que afetam o desenvolvimento e que influenciam no julgamento dos usuários: Tamanho e complexidade do software; Número de pessoas envolvidas no projeto; Métodos, técnicas e ferramentas utilizadas; Custo x benefício do sistema; Custos associados à existência de erros; Custos associados à detecção e remoção de erros; Etc. Qualidade de Software - 2009 12
O que é Qualidade de Software? Conjunto de características a serem satisfeitas em um determinado grau, de modo que o software satisfaça às necessidades de seus usuários. Desenvolvedores Usuários Finais Usuários Indiretos Qualidade de Software - 2009 13
Qualidade do Produto x Qualidade do Processo de Software Qualidade do produto de software não se atinge de forma espontânea. A qualidade do produto depende fortemente da qualidade do processo de desenvolvimento. Qualidade de Software - 2009 14
Qualidade do Processo de Software Um bom processo não garante que os produtos produzidos são de boa qualidade, mas é um indicativo de que a organização é capaz de produzir bons produtos. Qualidade de Software - 2009 15
Qualidade do Processo de Software Motivação para a busca da Qualidade do Processo de Software: Aumento da qualidade do produto. Diminuição do retrabalho. Maior produtividade. Redução do tempo para atender o mercado (time to market). Maior competitividade. Maior precisão nas estimativas. Qualidade de Software - 2009 16
Qualidade do Processo de Software A implantação de um Programa de Qualidade começa pela definição e implantação de um processo de software. O processo de software deve estar documentado, ser compreendido e seguido. Qualidade de Software - 2009 17
O que é Processo de Software? Processos de Software devem estabelecer: atividades a serem realizadas durante o processo, sua estrutura e organização (decomposição e precedência), incluindo a definição de um modelo de ciclo de vida quando pertinente (ex.: processo de desenvolvimento); artefatos requeridos e produzidos por cada uma das atividades do processo; procedimentos (métodos, técnicas, roteiros e padrões) a serem adotados na realização das atividades; recursos necessários (humanos, hardware e software) para a realização das atividades. Qualidade de Software - 2009 18
Estrutura do Processo de Software Processo de Software Sub-processos (Desenvolvimento, Manutenção, etc) Atividades Sub-atividades Pré-atividades Artefatos Insumos Produtos Recursos Humanos Software Hardware Procedimentos Métodos Técnicas Roteiros Qualidade de Software - 2009 19
Exemplo de Processo de Software Processo de Software Processo de Desenvolvimento Análise e Especificação de Requisitos Projeto Projeto Arquitetural Pré-atividade: Análise e Especificação de Requisitos Insumo: Documento de Especificação de Requisitos Produto: Documento de Arquitetura do Sistema Recurso Humano: Projetista de Software Ferramenta de Software: Ferramenta de Modelagem UML Técnica: Modelagem de Objetos Projeto Detalhado Implementação Testes Implantação Qualidade de Software - 2009 20
Como definir um processo? Processos têm de ser definidos caso a caso, levando-se em consideração as características específicas do projeto em questão: equipe, domínio de aplicação, tipo de software, tecnologias a serem adotadas, restrições de negócio (cronograma, custo, qualidade) etc. Apoio de Normas e Modelos de Qualidade de Processos de Software. Qualidade de Software - 2009 21
Normas e Organismos Normativos Normas internacionais de qualidade são criadas no trabalho voluntário de especialistas do mundo todo. Essas normas tornaram-se a base para especificar produtos, organizar o fornecimento de serviços e até mesmo para a elaboração de legislação em vários países. Qualidade de Software - 2009 22
Padrões de Facto Muitas vezes padrões surgem espontaneamente, a partir de uma necessidade ou como uma solução amplamente adotada quando comparada a outras alternativas. Padrões de facto são padrões aplicados na prática, mas que não foram formalizados como um regulamento. Podem ser criados involuntariamente ou por razões comerciais. Qualidade de Software - 2009 23
Padrões de Jure São criados de maneira formal, regulamentada. São escritos seguindo regulamentos e aprovados por instituições reconhecidas publicamente como capacitadas para tal (ex., ISO, IEEE etc). Qualidade de Software - 2009 24
ISO International Standardization Organization. Criada em 1946, começou a funcionar em 1947. Conta atualmente com mais de 15.000 documentos internacionais de padronização, tendo aproximadamente 150 países participantes e cerca de 50.000 especialistas que contribuem no mundo inteiro para a criação e verificação dos documentos. Qualidade de Software - 2009 25
A ISO e as Normas Relacionadas a TI A ISO criou com a IEC (International Eletrotechnical Commission) a primeira comissão conjunta para elaboração de normas, o JTC1 (Joint Technical Committee 1). O JTC1 é responsável pela criação de normas relacionadas a TI e é dividido em subcomissões (SC), que, por sua vez, são divididas em grupos de trabalho (working groups WG). Qualidade de Software - 2009 26
A ISO e as Normas Relacionadas a QS A subcomissão SC-7 (Engenharia de Software e de Sistemas) trata das normas relacionadas à qualidade de software. Alguns grupos de trabalho da SC-7: WG-2: Documentação de Sistemas WG-6: Avaliação e Métricas WG-7: Gerência do Ciclo de Vida WG-12: Medição do Tamanho Funcional Qualidade de Software - 2009 27
Etapas na Criação de uma Norma Uma norma possui pelo menos um editor e um ou mais co-editores, que são pessoas de conhecimento técnico reconhecido e podem se dedicar ao projeto. O editor (junto com os co-editores) é responsável pela escrita do primeiro esboço do documento. Esse esboço é distribuído para análise pelos grupos de trabalho internacionais. A partir daí, sugestões de modificações são submetidas, avaliadas e introduzidas, em um ciclo que culmina com a versão final. Qualidade de Software - 2009 28
A Criação de Normas ISO/IEC Assim que uma nova proposta de item de trabalho (New Work Item proposal - NWI) é aprovada, um grupo de trabalho (WG) e um líder são designados. Um grupo de especialistas produz um esboço de trabalho (Working Draft WD) que é refinado até atingir o grau de maturidade de esboço do comitê (Committee Draft CD), quando é enviado aos grupos de trabalho internacionais (WGs). Qualidade de Software - 2009 29
A Criação de Normas ISO/IEC O trabalho segue em ciclos de modificação e uma data é fixada para votação. Passada a votação, o documento atinge o estágio de esboço de norma internacional (Draft International Standard DIS), quando passa por um novo ciclo de análise e modificações. Passada uma nova votação que aprova o documento no estágio de esboço finalizado (Final DIS FDIS), apenas modificações de caráter editorial podem ser efetuadas. Finalmente a norma é publicada como Norma Internacional (International Standard IS) ou como relatório técnico (Technical Report TR). Qualidade de Software - 2009 30
Uso de Padrões Adequação x Certificação. Adequação: deve preceder a certificação e consiste em colocar em prática, total ou parcialmente, aquilo que é nela proposto. Certificação: Envolve a participação de um organismo ou empresa externa que possa atestar que a empresa candidata segue efetivamente o padrão. Qualidade de Software - 2009 31
Certificação Pré-análise Relatório de não-conformidades. Ajustes Avaliação Relatório de não-conformidades + Recomendação, que pode ser: Certificar a empresa, sugerindo apenas pequenas correções a serem realizadas. Certificar a empresa, porém sob a condição de que certas correções sejam efetuadas. Não certificar a empresa, recomendando uma nova etapa de adequação à norma antes de uma nova tentativa de certificação. Acompanhamento durante a validade da certificação. Qualidade de Software - 2009 32