Você está na página 1de 39

Universidade Federal do Vale do So Francisco

Padres de Qualidade de Software e Mtricas de Software


Engenharia de Software I Aula 3 e 4 Ricardo Argenton Ramos

Agenda da Aula
Introduo (Qualidade de Software) Padres de Qualidade de Software Alguns Padres de Qualidade de Software
CMM ISO/IEC 15504 (SPICE)

Mtricas de Software Processo de Medio Mtricas de Produto Pontos Chaves Exerccios

Objetivos da Aula
Compreender os conceitos bsicos de qualidade de software. Conhecer os padres de Qualidade CMM, ISO/IEC 15504 (SPICE). Compreender o que so mtricas de software e as diferenas entre mtricas de predio e mtricas de controle.

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

Empresas que desenvolvem software de qualidade so mais competitivas; Empresas que tem qualidade em seus processos podem, em geral, oferecer um melhor servio a um preo mais competitivo.

Definies sobre Qualidade


Definio genrica: Propriedade, atributo ou condio das coisas ou das pessoas capaz de distingui-las das outras e de lhes determinar a natureza (Aurlio). Outras definies para software:
Qualidade estar em conformidade com os requisitos dos clientes; Qualidade antecipar e satisfazer os desejos dos clientes;

Qualidade x Confiana
Confiana do cliente em estar obtendo um

produto que atende a suas expectativas

Confiana do fornecedor em poder

planejar a construo de produtos em relao aos custos

Vises da Qualidade de Software


usurio Facilidade de Uso, Desempenho, Confiabilidade dos Resultados, Preo do Software, etc. Taxa de defeitos, Facilidade de Manuteno e Conformidade em relao aos Requisitos de Usurios, etc Cumprimento de Prazo, Boa Previso de Custo, Boa Produtividade

desenvolvedor

organizao

Como garantir a qualidade?

Padres de Qualidade de Software


Matria da prxima aula

Padres de produto:
Se aplicam ao produto de software em desenvolvimento. Incluem padres de documentos, como a estrutura de um documento de requisitos at como uma linguagem de programao deve ser usada.

Padres de processo:
Definem os processos que devem ser seguidos durante o desenvolvimento de software.

Padres de Qualidade de Software


[importncia] 1/2

1. So baseados no conhecimento sobre as

melhores e mais apropriadas


prticas para a empresa. Esse
conhecimento freqentemente adquirido somente aps um grande nmero de tentativas e erros. Ajudam a empresa a evitar a repetio de erros cometidos no passado.

Padres de Qualidade de Software


[importncia] 2/2

2. Provem um framework conceitual para a implementao do processo de garantia de qualidade. Considerando que esses padres

englobam as melhores prticas, a garantia da qualidade


envolve assegurar que padres apropriados foram selecionados e usados.

Alguns Padres de Qualidade de Software


CMM Capability Maturity Model
Desenvolvido pelo SEI (Software Engineering Institute)

SPICE (Software Process Improvement & Capability dErtemination)


Desenvolvido pela International Organization for Standardization and the International Electrotechnical Commission (ISO/IEC)

CMM*
(Modelo de Maturidade de Competncia) Uma estrutura conceitual que descreve

os elementos chaves de um processo de software eficaz.


Um caminho de melhoramento evolucionrio (5 nveis de maturidade) para organizaes de software mudarem de um processo de software imaturo, ad hoc, para um processo maduro, disciplinado.
http://www.sei.cmu.edu/cmm *A verso mais atual o CMMI Capability Maturity Model Integration

Os 5 Nveis de Maturidade do CMM

OTIMIZADO
Organizaes com Melhoria Contnua

GERENCIADO Organizaes Previsveis

DEFINIDO Organizaes Padronizadas REPETVEL Organizaes Disciplinadas

INICIAL Organizaes Caticas

CMM Nvel 1- Inicial


O Gerenciamento de Software uma Caixa Preta

In

Out

Requisitos fluem para dentro Um produto de software (normalmente) produzido atravs de algum processo disforme O produto flui para fora e (espera-se) funciona

CMM Nvel 2 - Repetvel


Est em vigor um Sistema de Gerenciamento de Projeto

In

Out

Processo de construo de software uma srie de caixas pretas com pontos de verificao definidos

CMM Nvel 3 - Definido


Desenvolvimento de software de acordo com um processo bem definido

In

Out

Funes e responsabilidades no processo so bem entendidas A produo do produto de software visvel atravs do processo de software

CMM Nvel 4 - Gerenciado


Produto e processo so gerenciados quantitativamente

In

Out

A gerncia tem bases objetivas para tomada de deciso A gerncia capaz de prever o desempenho dentro de limites quantificados

CMM Nvel 5 - Otimizado


Foco na melhoria contnua do processo

In

Out

Mudana disciplinada um meio de vida

CMM
[reas-chave de Processo (KPA)]

Indicam as reas que uma organizao deveria enfocar para melhorar seu processo de software; O CMM define 18 KPAs distribudas nos seus nveis de maturidade; Cada KPA descrita em termos de prticas que contribuem para satisfazer seus objetivos.
descrevem a infra-estrutura e atividades que contribuem para a implementao e institucionalizao da KPA.

CMM
[reas-chave de Processo (KPA)] Inicial - 1: no existem KPAs para este nvel; Repetvel - 2: interesses relacionados ao estabelecimento do controle bsico de administrao de projeto; Definido - 3: problemas organizacionais e de projeto; Gerenciado - 4: estabelecer um entendimento quantitativo do processo de software e do produto; Otimizado - 5: cobrem os problemas que a organizao e os projetos devem enderear para implementar uma

melhora contnua e mensurvel do processo de software.

Alguns Padres de Qualidade de Software


CMM Capability Maturity Model
Desenvolvido pelo SEI (Software Engineering Institute)

SPICE (Software Process Improvement & Capability dErtemination)


Desenvolvido pela International Organization for Standardization and the International Electrotechnical Commission (ISO/IEC)

ISO/IEC 15504 (SPICE)


[definio]

Melhoria do processo e determinao da capacidade do processo Consiste de um framework de avaliao


Facilita o auto-julgamento Desperta conscincia do contexto Produz um perfil do processo Direciona a adequao das atividades Apropriado para organizaes de diversos tamanhos
http://www.isospice.com Atualmente o padro ISO/IEC 15504

ISO/IEC 15504 (SPICE)


Melhoria dos Processos As empresas podero identificar quais os processos que devem melhorar, o que dever ser feito para este fim e deduzir onde devem investir em primeiro lugar, com vista obteno de retornos
rpidos e significativos.

ISO/IEC 15504 (SPICE)


Determinao da Capacidade dos Processos
Permite s empresas avaliar o estado dos seus processos em comparao com as melhores prticas, atravs da identificao das suas foras, fraquezas e riscos. Com base nesta avaliao podero decidir se tm a capacidade para empreender um determinado projeto.

ISO/IEC 15504 (SPICE)


[documentos] O SPICE composto por 9 partes: parte 1: Conceitos e Guia Introdutrio parte 2: Modelo de Gerenciamento de Processo parte 3: Avaliao do Processo parte 4: Guia para Conduo de uma Avaliao parte 5: Construo, Seleo e Uso das Ferramentas de Avaliao parte 6: Qualificao e Treinamento dos Avaliadores parte 7: Guia para o Processo de Melhoria parte 8: Guia para Orientao da Determinao da Capacidade do Processo parte 9: Dicionrios
http://www.isospice.com

Comparando os dois Padres 1/2


Aspectos Abordagem CMM (SEI) SPICE Classificao das Avaliao dos processos organizaes em com o objetivo de nveis de maturidade determinar a capacitao da crescente. organizao e propor melhoria. Determinar a Determinar a capacitao capacitao da da organizao e apoiar sua empresa e apoiar sua evoluo de acordo com os evoluo de acordo objetivos da organizao. com os 5 nveis. Questionrio. Fornece orientaes para montar questionrio.

Meta/ Objetivo

Avaliao de nvel de capacitao

http://www.sei.cmu.edu/cmmi/faq/15504-faq.html

Comparando os dois Padres 2/2


SPICE Expanso e flexibilizao dos padres CMM, ISO 9000 e outros. Limitaes Pouca considerao Dificuldade de diversidade das aplicao devido organizaes. Dificuldade grande quantidade de de aplicao em informaes. pequenas organizaes. Empresas Organizaes de grande Organizaes em Alvo porte que necessitam de geral. uma certificao.
http://www.sei.cmu.edu/cmmi/faq/15504-faq.html

Aspectos Benefcios

CMM (SEI) Estabelecimento de um roteiro para a melhoria contnua

Mtricas de Software
[utilidade]

Medies de software podem ser usadas para:


1. fazer previses gerais sobre um sistema

2. identificar componentes anmalos

Mtricas
[controle e predio]

Controle so associadas com processos de software. Exemplos:


Tempo mdio para reparar um defeito reportado Tempo para rastrear um mdulo

Predio so associadas com produtos de software. Exemplo:


Complexidade de um mdulo

Mtricas
[controle e predio]
Influenciam no processo de tomada de decises gerenciais
Processo de Software Produto de Software

Medies de controle

Medies de predio

Decises gerenciais [Sommerville]

Mtricas de Software
[como medir]

Geralmente impossvel medir os atributos de software diretamente. Atributos como facilidade de manuteno, facilidade de compreenso e facilidade de uso so os atributos externos.

Mtricas de Software
[relacionamento de atributos]
Facilidade de Manuteno Facilidade de uso

Complexidade ciclomtica

Tamanho do programa Em linhas de cdigo

Extenso do Manual de usurio

Nmero de Mensagens de erro

Processo de Medio
Escolher medies A serem realizadas Analisar componentes anmalos

Selecionar componentes a serem avaliados

Identificar medies anmalas

Medir caractersticas de componentes

Mtricas de Produto
Dinmicas
Coletadas por meio de medies realizadas em um programa em execuo. Exemplo:
Tempo para iniciar um programa

Estticas
Coletadas por meio de medies realizadas em representaes do sistema, como projeto, cdigo fonte ou documentao.

Algumas Mtricas de Produto


Fan-in/fan-out Fan-in uma medida do nmero de funes ou mtodos que chamam alguma outra funo ou mtodo (digamos x). Fan-out o nmero de funes chamadas pela funo x. Tamanho do cdigo Mede o tamanho em relao a linhas de cdigos.

Pontos Chaves
Os padres de software so importantes para a garantia da qualidade, pois representam uma identificao das melhores prticas. As mtricas de qualidade de produto so particularmente valiosas para destacar componentes anmalos que podem ter problemas de qualidade. No existem mtricas de softwares padronizadas e universalmente aplicveis.

Exerccios
Explique por que as mtricas de projetos so, por si ss, um mtodo inadequado para prever a qualidade do projeto. Pesquisa para ser entregue na prxima aula. Diferenas entre:
ISO/IEC 15504, e SPICE, CMMI e CMM.

Referncias
KOSCIANSKI A. e SOARES, M. Qualidade de Software Ed. Novatec, 2007. ROCHA, A. MALDONADO, J. WEBER, K. A Qualidade de software - Teoria e Prtica.Prentice Hall. 2001. Sommerville, I. Engenharia de Software. Adisson-Wesley, So Paulo, 2007. Presman, R. Engenharia de Software. Makron Books. 1995. Kautz, K. Making Sense of Measurement for Small Organizations. Transactions of IEEE Software, maro/abril de 1999. SEI - Software Engineering Institute, http://www.sei.cmu.edu/cmm ISO - International Organization for Standardization, http://www.iso.org Verso disponvel do SPICE http://www.sqi.gu.edu.au/spice/suite/ SEI - Software Engineering Institute, http://www.sei.cmu.edu/cmm ISO/IEC - http://www.isospice.com

Você também pode gostar