Baixe o app para aproveitar ainda mais
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
Compartilhar