Buscar

717001_717000_Qualidade%20de%20software%20(3)

Prévia do material em texto

Qualidade de software
1. Definições:
Na norma ISO 9126, qualidade de software é definido como: "A 
totalidade de recursos e características de um produto de software que 
afeta sua habilidade para satisfazer as necessidades definidas ou 
implícitas". 
Decorre que a qualidade é decomposta em seis fatores:
• Funcionalidade
• Confiabilidade
• Eficiência
• Facilidade de Uso
• Facilidade de Manutenção
• Portabilidade
• IEEE 610.12-1990 define confiabilidade como “A habilidade de um 
sistema ou componente executar as funções exigidas nas condições 
declaradas por um período de tempo especificado.”
• IEEE 982.1-1988 define Gerenciamento de Confiabilidade de Software 
como “O processo de otimização da confiabilidade de software por um 
programa que enfatiza prevenção de erro de software, detecção e 
remoção de falhas, e o uso de medidas para maximizar a confiabilidade 
levando em conta fatores restritivos do projeto tais como recursos, 
cronograma e desempenho.” 
• Isto posto, a confiabilidade do produto de software entregue é relacionado 
a qualidade de todos os processos e produtos do desenvolvimento de 
software; a documentação dos requisitos, o processo de desenvolvimento, 
o código, planos de teste, e o teste do software.
• Para melhorar a qualidade do software, o processo de desenvolvimento de 
software deve ser compreendido, definido, medido, e continuamente 
melhorado.
• Em sistemas de software de grande porte, a obtenção de qualidades tais 
como desempenho, segurança, suscetibilidade à modificações, 
funcionalidade, confiabilidade,eficiência, facilidade de uso, facilidade de 
manutenção e portabilidade não só é dependente de práticas de a nível de 
código mas também de todo o processo de desenvolvimento de software.
2. Melhores Práticas de Software
• Um processo de desenvolvimento de software é uma série de atividades 
necessárias para transformar os requisitos do usuário em um sistema 
de software.
• Um processo efetivo provê diretrizes para o desenvolvimento eficiente 
de software com qualidade.
• Um processo bem definido permitirá resolver o paradoxo de software, 
maior qualidade com rápida disponibilização para o mercado.
• O processo adequado captura e apresenta as melhores práticas que o 
estado atual da arte permite
• Desenvolvimento Iterativo
• Gerenciamento de Requisitos (Requirements Management, 
RM)
• Arquiteturas baseadas em componentes
• Foco na Arquitetura
• Modelagem Visual (UML) e Métodos Orientados a Objetos
• Trabalho de equipe
• Ferramentas de apoio
• Verificação continua da qualidade
• Métricas de software são usadas afim de monitorar e avaliar 
os seguintes aspectos do projeto:
• Progresso em termos de tamanho e complexidade.
• Estabilidade em termos de taxa de mudança na 
implementação, tamanho ou complexidade.
• Modularidade em termos da extensão da mudança.
• Qualidade em termos do número e tipo de erros.
• Maturidade em termos da freqüência de erros.
• Recursos em termos de recursos despendidos contra os 
planejados.
• Gerenciamento da configuração de software (SCM, Software configuration
management)
• SCM é uma disciplina da engenharia de software que inclui as ferramentas 
e técnicas (processos ou metodologia) utilizadas pelas empresas para 
gerenciar as mudanças de seus ativos de software.
• IEEE 828-1998 diz sobre SCM: " SCM constitui uma boa prática de 
engenharia para todos os projetos de software,independentemente da fase 
do desenvolvimento, ou se for protótipo rápido, ou manutenção em 
andamento. Aumenta a confiança e qualidade do software pelas seguintes 
razões:
• Provê estrutura para identificação e controle da documentação, código,
 interfaces, e bancos de dados para apoiar todas as fases do ciclo de vida.
• Apoia uma metodologia escolhida para desenvolvimento / manutenção que 
se ajuste aos requisitos, normas, políticas, organização e filosofia de 
gerenciamento.
• Produz gerenciamento e informação de produto relativo ao estado da 
versão do produto de software utilizado como referencia, controle de 
mudanças, testes, liberações, auditorias, etc.
3.Erros, Falhas(Faults) e Avarias(Failures)
• Nenhum desenvolvedor de software produz um software perfeito na 
primeira implementação. 
• Assim, é importante o desenvolvedor medir aspectos de qualidade do 
software. 
• A terminologia utilizada na investigação e análise deve ser precisa, 
enquanto nos permitindo entender as causas como também os efeitos da 
avaliação da qualidade e esforços de aperfeiçoamento.
• Durante o teste e a operação, observamos o comportamento do sistema. 
• Quando um comportamento indesejável ou inesperado acontece, nós 
reportamos este fato como uma avaria. 
• A confiabilidade de um sistema de software está definida em termos de 
avarias observadas durante a operação, ao invés de número de falhas; 
normalmente, podemos deduzir pouco sobre confiabilidade a partir 
somente das informações de falhas. 
4. Confiabilidade como um Atributo da Qualidade
• Há muitos modelos diferentes para qualidade de software, mas em quase 
todos modelos, confiabilidade é um dos critérios, atributo ou característica 
que estão incorporadas.
• Considerando que confiabilidade é um atributo da qualidade, pode se 
concluir que a confiabilidade de software depende de um software com 
muita qualidade. 
• A construção de um software confiável depende da aplicação de atributos 
de qualidade a cada fase do ciclo de vida de desenvolvimento com a ênfase 
na prevenção de erros, especialmente nas fases preliminares do ciclo de 
vida
• Métricas são necessárias a cada fase do desenvolvimento para medir 
atributos da qualidade. IEEE Std 982.2-1988 inclui o diagrama da Figura 1, 
indicando a relação da confiabilidade com as diferentes fases do ciclo de 
vida. 
5. Melhoria do Processo de software com CMM
Um processo de desenvolvimento de software bem administrado pode ser 
visto como processo iterativo de troca de informações e permite que 
organizações de desenvolvimento de software tenham uma clara visão e um 
bom entendimento da informação disponível, provendo fundamentos para a 
análise e administração do processo de software baseado em fatos concretos 
e não em vagas suposições.
Para resistir a pressão da competição, economia de recursos, e para melhorar 
a qualidade do software produzido, uma organização de desenvolvimento de 
software precisa perceber a necessidade de implementar e administrar um 
processo de desenvolvimento de software eficiente e efetivo.
• O Modelo de Maturidade de Capacidade (Capability Maturity Model 
(CMM)), desenvolvido pela Software Engineering Institute (SEI), é a 
estrutura básica conceitual que representa o processo de gerenciamento do 
desenvolvimento de software. 
• O CMM contêm cinco níveis de maturidade ou fases. 
• Estes cinco níveis de maturidade definem uma escala original para medir a 
maturidade do processo de software de uma organização e para avaliar a 
capacidade do processo de software.
• Cada nível de maturidade indica o nível de capacidade de processo:
Nível 1, inicial: O processo de software é caracterizado como ad hoc, caótico, 
e heróico. 
• Poucos processos estão definidos ou seguidos, e o sucesso do projeto 
depende do esforço individual.
• Não há nenhum gerenciamento formal sobre o desenvolvimento de 
software. 
Nível 2, reproduzível: Este nível provê uma introdução formal, ao processo 
documentado. São estabelecidos processos básicos de gerenciamento para 
controlar custo, cronograma e funcionalidade. 
• A necessária disciplina do processo está a caminho de repetir sucessos de 
projetos anteriores com aplicações semelhantes. 
• A elevação do Nível 1 para o Nível 2 significa que a organização 
estabeleceu controle sobre o gerenciamento de projeto,estabeleceu um 
grupo de processo de engenharia de software (SEPG), e formalmente 
introduziu métodos e técnicas de engenharia de software.
Nível 3, definido: Este nível provê os fundamentos para o processo de 
melhoria contínua estabelecendo as funções do gerenciamento do processo 
necessárias para controlar os parâmetros do processo. 
• O processo de software para as atividades de gerenciamento e engenharia 
estão documentados, padronizados, e integrados em um processo de 
software padronizado para toda a organização. 
• Todos os projetos usam uma versão sob medida (subset adequado ao 
projeto) do processo de softwarepadrão da organização para desenvolver e 
manter software.
• 
Nível 4, gerenciado: Medidas detalhadas do processo de software e da 
qualidade do produto são coletadas. 
• O processo de software e de produtos são quantitativamente 
compreendidos e controlados.
Nível 5, otimizado: O processo de melhoria contínua é possível através da 
avaliação quantitativa do processo e a partir da introdução de idéias e 
tecnologias inovadoras.
6. Métricas de Software para Qualidade.
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13

Outros materiais