Prof.: Ivon Rodrigues Canedo PUC Goiás
Qualidade Subjetiva Não sei o que é mas reconheço quando a vejo
Qualidade Baseada no Produto O produto possui algo que produtos similares não têm
Qualidade Baseada na Perfeição Fazer a coisa certa na primeira vez
Qualidade Baseada no Valor O produto possui a maior relação custo-benefício
Qualidade Baseada na Manufatura Conformidade às especificações e aos Requisitos
Qualidade Baseada no Cliente Conformidade às exigências do Cliente
Software Criação intelectual compreendendo os programas, procedimentos, regras e qualquer documentação correlata à operação de um sistema de processamento de dados - (NBR ISSO 9000-3);
Características do Software Imaturidade Indeterminístico
Características do Software Intangível Complexo SAI $20 Milhões
Características do Software Ferramenta de Apoio Dê-me um ponto de apoio e uma vara e eu levantarei o mundo Arquimedes
As Características têm como Conseqüência Dificuldades em medir o tamanho do software; Dificuldades no gerenciamento dos processos de produção e manutenção de softwares; Demora na produção; Alto custo de produção; Dificuldades em definir padrões de qualidade; Dificuldades de automação do processo de produção;
As Características têm como Conseqüência Dificuldade em medir a qualidade; Dificuldade de utilização de componentes na produção de software; Modelos inadequados para interação com usuários; Dificuldades em promover mudanças no software;
Ponto de Vista Interno do Produto Ponto de Vista do Uso Qualidade de Software Ponto de Vista da Disponibilidade Ponto de Vista da Produção
Adequação Acurácia Maturidade Portabilidade Conformidade Ponto de Vista Interno do Produto Analisibilidade Adaptabilidade Instabilidade Tolerância a Falhas Inteligibilidade Uso de Recursos
Tempo de Resposta Segurança de Acesso Interoperabilidade Ponto de Vista do Uso Recuperabilidade Operacionalidade Apreensibilidade
Modificabilidade Comportamento em Relação ao tempo Estabilidade Ponto de Vista da Disponibilidade Testabilidade Comportamento em relação ao custo Recuperabilidade
Requisitos Medidas de Qualidade Produtividade Interfaces Comunicação Integração Confiança Riscos Ponto de Vista da Produção Testes Coesão Segurança Ferramentas Padrões Encapsulamento Documentação
Clientes Gerência Planejamento Usuários Visibilidade Interna Contratos Ponto de Vista da Produção Visibilidade Externa Disciplina Capacitação Dinâmica da Realidade Eficiência Ética
. Características de Qualidade de Software A norma NBR 9126 define as seguintes características de qualidade de software: funcionalidade, confiabilidade, usabilidade, eficiência, manutenibilidade e portabilidade. Cada uma dessas características está subdividida em subcaracterísticas, conforme segue: Funcionalidade: conjunto de atributos que evidenciam a existência de um conjunto de funções e suas propriedades especificadas. As funções são as que satisfazem as necessidades explícitas ou implícitas.
Subcaracterísticas: Adequação: atributos do software que evidenciam a presença de um conjunto de funções e sua apropriação para as tarefas especificadas. Acurácia: atributos do software que evidenciam a geração de resultados ou efeitos corretos ou conforme acordados. Interoperabilidade: atributos de software que evidenciam sua capacidade de interagir com sistemas especificados. Conformidade: atributos do software que fazem com que o software esteja de acordo com as normas, convenções ou regulamentações previstas em leis e descrições similares, relacionadas à aplicação. Segurança de acesso: atributos do software que evidenciam sua capacidade de evitar o acesso não autorizado, acidental ou deliberado, a programas e dados.
Qualidade de Software Confiabilidade: conjunto de atributos que evidenciam a capacidade do software de manter seu nível de desempenho sob condições estabelecidas durante um período de tempo estabelecido. Subcaracterísticas: Maturidade: atributos de software que evidenciam a freqüência de falhas por defeitos no software. Tolerância a falhas: atributos do software que evidenciam sua capacidade em manter um nível de desempenho especificado nos casos de falhas no software ou de violação nas interfaces especificadas. Recuperabilidade: atributos de software que evidenciam sua capacidade de restabelecer seu nível de desempenho e recuperar os dados diretamente afetados, em caso de falha, e o tempo e esforço necessário para tal.
Qualidade de Software Usabilidade: conjunto de atributos que evidenciam o esforço necessário para se poder utilizar o software, bem como o julgamento individual desse uso, por um conjunto explícito ou implícito de usuários. Subcaracterísticas: Inteligibilidade: atributos do software que evidenciam o esforço do usuário para reconhecer o conceito lógico e sua aplicabilidade. Apreensibilidade: atributos do software que evidenciam o esforço do usuário para aprender sua aplicação (por exemplo: controle de operação, entradas, saídas). Operacionalidade: atributos do software que evidenciam o esforço do usuário para sua operação e controle de sua operação.
Qualidade de Software Eficiência: conjunto de atributos que evidenciam o relacionamento entre o nível de desempenho do software e a quantidade de recursos usados, sob condições estabelecidas. Subcaracterísticas: Comportamento em relação ao tempo: atributos do software que evidenciam seu tempo de resposta, tempo de processamento e velocidade na execução de suas funções. Comportamento em relação a recursos: atributos do software que evidenciam a quantidade de recursos usados e a duração de seu uso na execução de suas tarefas.
Qualidade de Software Manutenibilidade: conjunto de atributos que evidenciam o esforço necessário para fazer modificações especificadas no software. Subcaracterísticas: Analisabilidade: atributos do software que evidenciam o esforço necessário para diagnosticar deficiências ou causas de falhas, ou para identificar partes a serem modificadas. Modificabilidade: atributos do software que evidenciam o esforço necessário para modificá-lo, remover seus defeitos ou adaptá-lo a mudanças ambientais. Estabilidade: atributos do software que evidenciam o risco de efeitos inesperados ocasionados por modificações. Testabilidade: atributos do software que evidenciam o esforço necessário para validar o software modificado.
Qualidade de Software Portabilidade: conjunto de atributos que evidenciam a capacidade do software ser transferido de um ambiente para outro. Subcaracterísticas: Adaptabilidade: atributos do software que evidenciam sua capacidade de ser adaptado a ambientes diferentes especificados, sem a necessidade de aplicação de outras ações ou meio além daqueles fornecidos para esta finalidade pelo software considerado. Capacidade para ser instalado: atributos do software que evidenciam o esforço necessário para sua instalação num ambiente especificado. Conformidade: atributos do software que o torna consonante com padrões ou convenções relacionadas à portabilidade. Capacidade para substituir: atributos do software que evidenciam sua capacidade e esforço necessário para substituir um outro software, no ambiente estabelecido para esse outro software.
Qualidade de Software Orientada ao Processo Modelo estável de produção; Modelo de gerência de produção; Processo de produção inteligível - Entendimento; Processo de produção compreensível pelo usuários contratantes - Visibilidade; Invulnerabilidade do processo de produção a problemas inesperados - Robustez;
Qualidade de Software
Qualidade de Software Por definição, a qualidade de um software é um conjunto de características a serem satisfeitas em um determinado grau, de modo que o software atenda às necessidades explícitas e implícitas. Mas, quando tentamos alcançar a qualidade de um software, somos forçados a considerar a Qualidade do Processo e a Qualidade do Produto. Processo e Produto estão fortemente relacionados e não podem ser separados quando se analisa a qualidade de um software.
Qualidade de Software Orientada ao Processo Processos de produção que garantam a descoberta de erros antes que resultem em erro do produto - Confiança; Técnicas de medida de qualidade do processo e do produto;
Qualidade de Software Orientada ao Produto Tempo de desenvolvimento aceitável; Baixo custo de desenvolvimento; Interfaces que facilitem a produção e utilização do produto - Usabilidade; Garantia de evolução em razão de mudanças de requisitos - Manutenibilidade;
Qualidade de Software Orientada ao Produto Utilização parcimoniosa de recursos de informática - Eficiência; Minimizar danos físicos e econômicos na presença de falhas - Confiabilidade;
A busca da qualidade Desenvolvimento de modelos de gerência dos processos de produção e manutenção do produto; Desenvolvimento de modelos que dinamizem a produção - Estruturados e Orientados a Objetos; Busca de modos de documentação que auxiliem na produção e manutenção do produto; Desenvolvimento de linguagens de quarta geração;
A busca da qualidade Desenvolvimento de ferramentas I-CASE para auxiliar nos processos de produção; Desenvolvimento de métricas para medida de qualidade e tamanho do produto; Desenvolvimento de gerenciadores de banco de dado que busquem garantir a distribuição, segurança, manuseio e irredundância de dados; Definição de padrões de qualidade do produto e da produção: ISO-9000 e CMM;
A busca da qualidade Desenvolvimento de dispositivos que garantam a segurança e privacidade de dados;
Mudança em um software As mudanças em um software ocorrem sejam para corrigir defeitos em seu código, sejam para melhorar aspectos operacionais ou devidas à mudanças em seu ambiente de atuação. Enfim, são mudanças necessárias ao software para que ele cumpra os seus propósitos. Há basicamente três tipos de manutenções: Manutenções Corretivas aquelas devidas necessárias à correção de erros no software; Manutenções Adaptativas aquelas necessárias à melhorias operacionais; Manutenções Evolutivas aquelas necessárias à aderência do software ás mutações do ambiente;
Engenharia de Software
Software Qualidade de Software Criação intelectual compreendendo os programas, procedimentos, regras e qualquer documentação correlata à operação de um sistema de processamento de dados - (NBR ISSO 9000-3);
Produto de Software Conjunto completo de programas de computador, procedimentos e documentação correlata, assim como dados designados para entrega ao usuário - (NBR ISSO 9000-3);
> Desenvolvimento de Software Todas as atividades a serem executadas para a construção de um produto de software - (NBR ISSO 9000-3);
Programa de computador
Algoritmo É um conjunto de instruções de uma linguagem, interpretada por uma máquina real ou abstrata [Diretrizes Curriculares de Cursos da Área de Computação e Informática do MEC];
Metodologia É um conjunto de métodos, técnicas e ferramentas que determinam com um processo deve ser desempenhado [INFO87];
Método É uma maneira sistemática de realizar uma tarefa [INFO87]; Ex: Cálculo da hipotenusa de um triângulo retângulo a partir de seus dois catetos. [Pitágoras];
Técnica É uma maneira mas, não sistemática, de realizar uma tarefa [INFO87]; Ex: Construção de um programa de computador;
Ferramenta É qualquer auxílio para por em prática métodos e técnicas; Ex: Diagramas, Linguagens de Programação, I-CASE;
Modelo Qualidade de Software
Abstração Qualidade de Software
Qualidade Subjetiva qualidade é qualidade, ué! Enfoque no produto o produto possui algo, que lhe acrescenta valor, que outros produtos não têm; Enfoque na perfeição fazer a coisa certa da primeira vez; Enfoque no valor melhor relação custo/benefício;
Qualidade Enfoque na manufatura conformidade às especificações e aos requisitos; Enfoque no cliente conformidade às exigências do cliente;
Bibliografia 1. SOMMERVILLE, Ian. Engenharia de Software. 8. ed. São Paulo: Pearson Education do Brasil, 2007. 2. WAZLAWICK, Raul Sidnei. Engenharia de Software: conceitos e práticas. Rio de Janeiro: Elsevier, 2013.