Qualidade de Software. Profa. Cátia dos Reis Machado catia@ifc-camboriu.edu.br

Documentos relacionados
Métricas de Software. Sistemas de Informação

Padrões de Qualidade de Software

Introdução. O Modelo CMM/SEI. Roteiro da Apresentação. Conceitos básicos de qualidade. Conceitos básicos de qualidade de software

PSP: Personal Software Process. PSP- Personal Software Process. PSP: Personal Software Process. PSP: Personal Software Process

Engenharia de Software

Prof. Emiliano S. Monteiro

Instituto Federal da Bahia Análise e Desenvolvimento de Sistemas INF022 Tópicos Avançados. Medição de Sofware

Introdução a Métricas de Software

Qualidade de Software: Visão Geral. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa

QUALIDADE DE SOFTWARE DEFINIÇÕES / RESUMO. Apostilas de NORMAS, disponíveis no site do professor. Prof. Celso Candido ADS / REDES / ENGENHARIA

Workshop Paraense de Tecnologia de Software PROCESSO DE MEDIÇÃO. Fabrício Medeiros Alho

Qualidade de Software

Qualidade de Software. Profª Rafaella Matos

Qualidade de Software: Visão Geral. SSC 121-Engenharia de Software 1 Profa. Dra. Elisa Yumi Nakagawa

Medidas de Esforço de Desenvolvimento de Software

Agenda da Aula. Melhoria do Processo de Software. Por que melhorar o processo? De onde veio a idéia? Qualidade do Produto. Qualidade de Software

Engenharia de Software II

Garantia da Qualidade, Medição e Melhoria. Leonardo Gresta Paulino Murta

Ciência da Computação ENGENHARIA DE SOFTWARE. Métricas e Estimativas do Projeto

Nesta seção você encontra artigos voltados para testes, processo, modelos, documentação, entre outros

QUALIDADE DE SOFTWARE

Aula 05 - ES - Métricas de Software

ISO/IEC Roteiro IEC ISO. Histórico ISO/IEC ISO

Seminário sobre Qualidade de Software. Projeto Final. Givanaldo Rocha de Souza

Gerenciamento Objetivo de Projetos com PSM

Visão Geral da Norma ISO/IEC 12207

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Métricas de Software Importância e Aplicação

Qualidade de Processo de Software. Simone S Souza ICMC/USP 2018

Melhoria de processos Qualidade. Engenharia de software Profª Karine Sato da Silva

FATORES E MÉTRICAS DE QUALIDADE

Ciência da Computação ENGENHARIA DE SOFTWARE. Capítulo 1 Introdução

Introdução à Qualidade

QUALIDADE DE SOFTWARE

APOSTILAS: NORMAS; ABNT NBR ISO; MPS BR

Qualidade de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

Engenharia de Software

Garantia da Qualidade, Medição e Melhoria. Leonardo Gresta Paulino Murta

Visão Geral de Engenharia de Software

Desenvolvido pelo Software Engineering Institute-SEI em 1992 Possui representação por estágios (5 níveis)e contínua (6 níveis)

Engenharia de Software II

Universidade Federal de Pernambuco

Elementos Fundamentais para a Melhoria da Qualidade de Software nas Organizações de TI

3 Medição de Software

Conceitos Iniciais. Gestão, Gerente e as Organizações

CMM Capability Maturity Model. O que é isto???

Engenharia de Software. Gerenciamento de Pessoal. Professor Joerllys Sérgio

Gerenciamento de Projetos de Governança em TI

Gestão da Qualidade. Aula 13. Prof. Pablo

ENGENHARIA DE SOFTWARE

AVALIAÇÃO DE PRODUTOS DE SOFTWARE

QUALIDADE DE SOFTWARE. Prof. Emiliano Monteiro

Plano de Projeto. Tema 3. Gerência de Projetos Profa. Susana M. Iglesias

UNIVERSIDADE DO ESTADO DE SANTA CATARINA UDESC CENTRO DE EDUCAÇÃO SUPERIOR DO ALTO VALE DO ITAJAÍ CEAVI DIREÇÃO DE ENSINO DEN PLANO DE ENSINO

Maturidade e Capabilidade do Processo de Software: Definição Modelo: Definição MPS.BR: O Modelo MPS.BR: Capacidade do Processo Processos do Nível G,

ENGENHARIA DA QUALIDADE A ENG AULA 1 APRESENTAÇÃO DA DISCIPLINA

ANÁLISE E PROJETO DE SISTEMAS

Gerenciamento da Qualidade do Projeto (PMBoK 5ª ed.)

ADMINISTRAÇÃO DE SISTEMAS DE INFORMAÇÃO. Unidade VI Planejamento Estratégico de TI. Luiz Leão

Implantando Pontos de Função com PSM

Um modelo de medição para processos de desenvolvimento de software

Programa Brasileiro de Qualidade e Produtividade A Qualidade de um Produto de Software Através da Aplicação da Norma NBR e do modelo CMM

Gerência de Projetos e Qualidade de Software. Prof. Walter Gima

Crise do Software. Crise de tecnologia - hardware caminha mais rápido que o software

ISO 9000, ISO e ISO Professor Gabriel Baptista ( gabriel.baptista@uninove.br ) ( )

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

Engenharia de Requisitos

DCC / ICEx / UFMG. O Modelo CMMI. Eduardo Figueiredo.

Gerência de Projetos e Qualidade de Software. Prof. Walter Gima

Requisitos de Sistemas

PROVAS DISCURSIVAS P 3 (questões) e P 4 (parecer) RASCUNHO QUESTÃO 1

Apoio à Garantia da Qualidade do Processo e do Produto em Ambientes de Desenvolvimento de Software Orientados à Organização

Qualidade de Software (cont)

Desafio das organizações a busca da excelência na gestão

UNIVERSIDADE DO ESTADO DE SANTA CATARINA UDESC CENTRO DE EDUCAÇÃO SUPERIOR DO ALTO VALE DO ITAJAÍ CEAVI DIREÇÃO DE ENSINO DEN PLANO DE ENSINO

ICET CURSO: Ciência da Computação e Sistemas de Informação (Engenharia de Software) Campus: Data: / / Nome:

Gerência de Projetos e Manutenção de Software Aula 12 Medição / Manutenção / Encerramento Andréa Magalhães Magdaleno 2017.

Engenharia de Software

Visão Geral do Processo de Desenvolvimento de Software Introdução aos Sistemas de Informação

Qualidade de software

Agenda. Componentes genéricos de uma fábrica de. Implantar ou melhorar uma fábrica, é um. Outras novidades que merecem atenção

Gerência de Projetos e Qualidade de Software. Prof. Walter Gima

Exercícios 2ª Avaliação

Ciência da Computação ENGENHARIA DE SOFTWARE. Análise dos Riscos

Métricas de Software

APLICACAÇÃO DE METRICAS E INDICADORES NO MODELO DE REFERENCIA CMMI-Dev NIVEL 2

Uma Abordagem de Apoio à Realização de Controle Estatístico de Processos de Software em Organizações de Alta Maturidade

Normas Relacionadas ao Teste de Software

DESCRITORES (TÍTULOS E TERMOS)

Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Programa de Pós-Graduação em Informática

ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE

Introdução ao CMM SM Capability Maturity Model

GERENCIAMENTO DA QUALIDADE DO PROJETO

Gestão da Tecnologia da Informação

Processos de Apoio Gerencial Integrados ao Processo de Teste de Software. Jeanne de Castro Trovão Arilo Claudio Dias Neto

Engenharia de Software.

1.1. Melhoria Contínua

Normas e Organismos Normativos

Transcrição:

Qualidade de Software Profa. Cátia dos Reis Machado catia@ifc-camboriu.edu.br

Evolução da Qualidade na indústria automotiva Quando falamos de administração científica, não podemos ignorar a contribuição de F. W. Taylor e Henry Ford. A principal mudança trazida por eles ao conceito de administração foi a criação de padrões dentro das linhas de montagem, dando origem a um método de produção. Fonte: Engenharia de Software Magazine

Evolução da Qualidade na indústria automotiva Tarefas começaram a ser divididas, facilitando o controle de qualidade. Nesse sentido, todas as peças produzidas passaram por uma verificação de qualidade antes de sair da área de produção. Ainda na década de 20, com o desenvolvimento de estudos de especialistas militares e o trabalho de Walter Shewart (1939) do Bell Laboratories, surgiu a base do controle estatístico da qualidade.

Evolução da Qualidade na indústria automotiva Agora, não mais toda a linha de produção precisaria ser testada, mas apenas uma amostragem passou a ser utilizada no controle de qualidade dos produtos. Assim, os produtos eram testados em pequenos lotes que eram o identificador de um conjunto total de produtos. Desse modo, houve um ganho de tempo na linha de produção e aumento da qualidade do produto apenas utilizando critérios de certeza estatística que aperfeiçoaram a verificação e, consequentemente, foram eliminados custos desnecessários.

Evolução da Qualidade na indústria automotiva Entre as décadas de 40 e 50, o Japão se colocou em destaque no cenário da qualidade como ciência devido ao trabalho de William Edwards Deming (1982) que reforça o conceito de controle de qualidade desviando o foco da qualidade do produto para a qualidade do processo como fator chave para o sucesso da implementação de um sistema de qualidade. Esse modelo de qualidade de processo só foi disseminado na década de 1970.

Evolução da Qualidade na indústria automotiva Outro que se destacou neste campo foi Genichi Taguchi (1990) para projetos experimentais. Algumas outras metodologias contemporâneas como 5S e os Diagramas de Causa e Efeito de Ishikawa, conhecido como Diagrama de Espinha de Peixe também colaboraram com a evolução da qualidade no Japão.

Evolução da Qualidade na indústria automotiva Na década de 60, Feigenbaum (1991) consolida o conceito de controle da qualidade total que leva à qualidade um sentido não mais focando somente em produção, mas sim em elementos como Marketing, Finanças, Recursos Humanos, Pesquisa e Desenvolvimento. A qualidade total não implica em 100% do produto correto ou zero defeito, mas sim de que todas as pessoas envolvidas são responsáveis pelo produto final.

Evolução da Qualidade na indústria automotiva Na década de 80 se popularizou as normas ISO (International Organization for Standardization www.iso.org). As montadoras de automóveis se destacaram nessa época e as normas contribuíram na definição de padrões de processos de garantia da qualidade.

Evolução da Qualidade na indústria automotiva A qualidade na indústria de software não seguiu uma evolução tão diversa assim da indústria automotiva. O rumo que a Qualidade de Software tomou na história se iniciou a partir da reunião da OTAN em 1968 onde o termo Engenharia de Software foi utilizado pela primeira vez por F. L. Bauer.

Evolução da Qualidade na indústria automotiva Nessa reunião foi utilizado também o termo Crise do Software para definir a situação em que a indústria do software atravessava naquele momento. E a crise foi atribuída à complexidade de desenvolver sistemas cada vez maiores, bem como à falta de gerenciamento no processo de desenvolvimento de software.

Qualidade de Software a partir da década de 70

A Década de 70: Medição do Código Fonte Caracterizada por Métricas para código fonte propostas por Halstead (ex: número de operadores distintos, número de operandos distintos, etc.) Métricas de Complexidade Ciclomática de McCabe Medida do número de caminhos linearmente independentes num módulo Influenciada por: Aceitação crescente da programação estruturada Primeiras noções de complexidade cognitiva

A Década de 80: Medição no início do ciclo de vida Estimativas de medição: esforço e custo Medidas na etapa de projeto Medidas na etapa de especificação

A Década de 90: Um perspectiva mais ampla Surgimento de relatórios sobre programas de métricas aplicados em empresas Benchmarking Impacto do modelo CMM Surgimento de ferramentas para medição Surgimento de uma teoria de medição como um framework unificado Surgimento de padrões internacionais de medição de software (ex: Análise de pontos de função)

Tendências: procura por métricas mais específicas Medidas que: capturem a complexidade cognitiva capturem a complexidade estrutural capturem a complexidade funcional sejam independentes de linguagem possam ser extraídas nas etapas iniciais do ciclo de vida

Engenharia de Software O principal objetivo da Engenharia de Software (ES) é ajudar a produzir software de qualidade

Software de qualidade Mas afinal o que é um software de qualidade?

Software entregue ao cliente com quantidade mínima de defeitos e que atenda as expectativas do cliente. Qualidade é tudo aquilo que melhora o produto no ponto de vista do cliente. Deming

Empresas que desenvolvem software de qualidade são mais competitivas. Cliente satisfeito: volta empresa Indica a empresa em sua rede de relacionamento Empresas que utilizam software de alta qualidade podem, em geral, oferecer um melhor serviço a um preço mais competitivo.

Conceito Qualidade é estar em conformidade com os requisitos dos clientes; Qualidade é antecipar e satisfazer os desejos dos clientes; Qualidade é escrever tudo o que se deve fazer e fazer tudo o que foi escrito. 1º) capturar com eficácia os requisitos do cliente Dificuldade de capturar requisitos Dificuldade de entender corretamente o problema Dificuldade de o usuário passar os requisitos 2 ) Transformar os requisitos corretamente em um produto que esteja refletindo aquilo que o cliente pediu Nessas transformações nós humanos podemos inserir defeitos ao longo do processo

Conceitos de Qualidade A totalidade das características de uma entidade que lhe confere a capacidade de satisfazer as necessidades explícitas e implícitas. (NBR ISO 8402) 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 profissional desenvolvido. (Pressman, 2011)

O conceito é simples, entretanto atingir a qualidade não é tão trivial.

Eficiência / Eficácia A eficiência envolve a forma com que uma atividade é feita, a eficácia se refere ao resultado da mesma. Fazer a coisa certa de forma certa é a melhor definição de trabalho eficiente e eficaz. Paulo Sandroni (1996)

Fatores de qualidade de software A noção de qualidade de software pode ser descrita por um grupo de fatores, requisitos ou atributos, tais como: confiabilidade, eficiência, facilidade de uso, modularidade, legibilidade, etc. Podemos classificar estes fatores em dois tipos principais: externos e interno;

Fatores de qualidade de software Fatores externos são concebidos tanto pelas pessoas que desenvolvem software quanto pelos usuários. Por exemplo, confiabilidade, eficiência e facilidade de uso são fatores externos; Fatores internos são percebidos apenas pelas pessoas que desenvolvem software. Por exemplo, modularidade e legibilidade são fatores internos; Se os fatores internos forem observados, os fatores externos serão consequentemente observados. De fato, os fatores internos são um meio para alcançar os fatores externos.

Fatores externos de qualidade

Fatores externos de qualidade Facilidade de uso: a facilidade de aprender como usar o software; Eficiência: o bom uso dos recursos computacionais; Portabilidade: a facilidade de transferir software entre ambientes operacionais.

Fatores externos da qualidade Correção: habilidade do software executar suas tarefas exatamente como definida pelos requisitos e especificação; Robustez: habilidade de um software funcionar mesmo em condições anormais; Integridade: habilidade do sistema de proteger seus vários componentes contra acessos ou modificações indevidas.

Diferentes visões da qualidade

Padrões de qualidade de software Provêem um framework conceitual para a implementação do processo de garantia de qualidade. Considerando que esses padrões englobam as melhores práticas, a garantia da qualidade envolve assegurar que padrões apropriados foram selecionados e usado.

Métricas de qualidade de software Várias métricas foram desenvolvidas para medir os atributos ou fatores de qualidade; Independente da métrica usada, sempre se busca os mesmos objetivos Melhorar o entendimento da qualidade do produto; Atestar a efetividade do processo; Melhorar a qualidade do trabalho realizado a nível de projeto; Formar uma base para as estimativas; Auxiliar na justificativa de aquisição de novas ferramentas ou de treinamentos adicionais; Avaliar o retorno de investimento; Gerenciar contratos de software;

Propriedades desejáveis de uma métrica Facilmente calculada, entendida e testada Passível de estudos estatísticos Expressa em alguma unidade Obtida o mais cedo possível no ciclo de vida do software Passível de automação Repetível e independente do observador Sugere uma estratégia de melhoria

Medição A medição é o processo pelo qual números ou símbolos são atribuídos aos atributos de entidades no mundo real, descrevendo-os de acordo com regras claramente definidas. (FENTON, 94) Exemplo: Utilizar medidas para analisar a produtividade, o esforço gasto numa tarefa, a confiabilidade do sistema desenvolvido, etc.

Categorização de Métricas Métricas diretas (fundamentais ou básicas) Medida realizada em termos de atributos observados (usualmente determinada pela contagem) Ex.: custo, esforço, no. linhas de código, capacidade de memória, no. páginas, no. diagramas, etc. Métricas indiretas (derivadas) Medidas obtidas a partir de outras métricas Ex.: complexidade, eficiência, confiabilidade, facilidade de manutenção

Categorização de Métricas Métricas orientadas a tamanho São medidas diretas do tamanho dos artefatos de software associados ao processo por meio do qual o software é desenvolvido. Ex.: esforço, custo, no. KLOC, no. páginas de documentação, no. erros Métricas orientadas por função Consiste em um método para medição de software do ponto de vista do usuário, determinando de forma consistente o tamanho e a complexidade de um software.

Categorização de Métricas Métricas de produtividade Concentram-se na saída do processo de engenharia de software. Ex.: no. de casos de uso/iteração. Métricas de qualidade Oferecem uma indicação de quanto o software se adeqüa às exigências implícitas e explícitas do cliente. Ex.: erros/fase Métricas técnicas Concentram-se nas características do software e não no processo por meio do qual o software foi desenvolvido. Ex.: complexidade lógica e grau de manutenibilidade

Possíveis problemas com métricas Ex: Comparar a produtividade de engenheiros em termos de linha de código Está sendo utilizado a mesma unidade de medida? O que é uma linha de código válida? O contexto considerado é o mesmo? Todos os engenheiros são familiarizados com a linguagem de programação? O que se quer realmente é o tamanho do código? E a qualidade do código? Como o resultado será interpretado? Produtividade média de um engenheiro? O que se quer com o resultado? Comparar a produtividade do processo de software?

Por que medir? Você não pode controlar o que não pode medir Tom DeMarco Medição ajuda, por exemplo, a saber: Qual será a duração de um projeto? Quanto custará o desenvolvimento de uma nova versão de um produto de software? Que percentual do produto já foi concluído? Quantos erros foram detectados e corrigidos antes da entrega do produto? Que percentual do esforço do projeto foi gasto em re-trabalho?

Por que medir? Você não pode controlar o que não pode medir Tom DeMarco Medição ajuda, por exemplo, a saber: Utilizando o nosso processo de software, o nível da qualidade dos nossos produtos está estável? Existe algum problema na execução do projeto e o que está causando este problema? A mudança da plataforma de desenvolvimento diminui o esforço gasto no teste?

Fornecendo informações para responder estas questões, a medição pode oferecer dados quantitativos e qualitativos para que, sistematicamente, os projetos sejam gerenciados e os processo e produtos de software sejam controlados. Somente a medição fornece a base para a criação de modelos organizacionais e estimativas de esforço e custo que podem ser empregados no planejamento de novos projetos.

Desafios enfrentados pelas organizações O que medir? Como coletar os dados de forma eficiente e válida? Como analisar os dados e como utilizar os resultados da medição?

Padrões de qualidade de software São baseados no conhecimento sobre as melhores e mais apropriadas práticas para a empresa. Ajudam a empresa a evitar a repetição de erros cometidos no passado.

Medição de software Existem vários tipos de referência para medição: Referências que descrevem o que deve ser feito norma internacional ISO / IEC 15939 sobre o processo de medição de software; Referências que descrevem como isto pode ser feito GQM Goal / Question / Metric e o PSM Pratical Software & Systems Measurement; Referências que visam a implementação e avaliação da capacidade de medição Quão bom - modelos e normas de melhoria de processo de software modelo CMMI (Capability Maturity Model Integration), norma ISO / IEC 15504 e o modelo Brasileiro de melhoria de processo MPS.BR

Qualidade é? Estar em conformidade com os requisitos dos clientes Antecipar e satisfazer os desejos dos clientes Escrever tudo o que se deve fazer e fazer tudo o que foi escrito

Medições de software para serem efetivas precisam estar alinhadas às necessidades de negócio da organização, isto é, aos seus objetivos estratégicos, e estarem direcionadas às necessidades de informação de gerentes de projetos e engenheiros de software. Essas necessidades devem ser explicitadas e devem orientar a definição do que medir e de como analisar e comunicar o resultado das medidas. (ISO/IEC 2002; BASILI et al., 1994; BARRETO, 2011)

Melhoria de processo de software Processos devem ser tecnicamente corretos e devem ser capazes de atender às necessidades do negócio. Um objetivo de melhoria de processo é um conjunto de características desejadas, definidas para orientar o esforço de melhoria de processos de modo específico e mensurável (SEI, 2010). Esses objetivos devem agregar valor ao negócio da organização e melhorar a qualidade dos produtos desenvolvidos (BARRETO, 2011).

Melhoria de processo de software Relacionam-se a : Galgar níveis mais altos de maturidade; Realizar mudanças visando a uma maior adequação às necessidades da organização ou melhorias no desempenho dos processos.

O que é necessário para realizar melhorias nos processo de software???? MEDIÇÃO

Objetivos para medição Coletar dados para medir o desempenho do processo; Analisar o desempenho do processo; Armazenar e utilizar os dados para interpretar os resultados de observações e análises, predizer custos e desempenho futuros, fornecer baselines e benchmarks, identificar tendências e avaliar a estabilidade e capacidade do processo. Florac e Carleton (1999)

Normas internacionais ISO/IEC 12207 ISO/IEC 15504 Modelos de maturidade CMMI-DEV MR-MPS

Métodos para apoio a medição GQM (Goal Question Metric) PSM (Pratical Software Measurement)

Processo de medição nas organizações Um programa de medição para ser efetivo em uma organização deve estar apoiado em um processo capaz de garantir a execução disciplinada do conjunto de atividades envolvidas.

Atividade Identifique algumas orientações sobre o processo de medição (Capítulo 2) Livro: Ana Regina Cavalcanti da Rocha; Gleison dos Santos Souza; Monalessa Perini Barcellos. Medição de Software e Controle Estatístico de Processos, 2012, 232 p. Disponível em: http://www.mct.gov.br/index.php/content/view/340171 /Medicao_de_Software_e_Controle_Estatistico_de_P rocesso.html

Referências BARRETO, A. Definição e Gerência de Objetivos de Software Alinhados ao Planejamento Estratégico. Tese de Doutorado, universidade Federal do Rio de Janeiro. 2011. BASILI. V.; CALDIERA, G.; ROMBACH, H. Goal Question Metric Paradigm, In: Encyclopedia of Software Engineering, V.2, pp: 527 532. FENTON, N. Software Measurement: A Necessary Scientific Basis. IEEE Transactions on Software Engineering, vol. 20, No. 3, March 1994. Florac, W. A.; Carleton, A. D. Measuring the Software Process, Addison-Weslwy. 1999.

Referências ISO/IEC. Software Engineering Software Measurement Process, The International Organization for Standardization and the International Electrotechnical Commission, 2002. PRESSMAN, R. S. Engenharia de software: uma abordagem profissional. 7ª Edição. Porto Alegre: AMGH, 2011. 780 p. SEI. Capability maturity Model Integration (CMMI) for Development, version 1.3, Carnegie Mellon university, Software Engineering Institute, Technical Report CMU/SEI. 2010.