62
Qualidade e Qualidade e Documentação de Documentação de Software Software Documentação Técnica de Sistemas Engenharia de Software Profº Sérgio Murilo Schütz,Msc. Profº Sérgio Murilo Schütz,Msc. 1º Semestre/2011 1º Semestre/2011

Engenharia de Software - Qualidade e Documentação

Embed Size (px)

Citation preview

Page 1: Engenharia de Software - Qualidade e Documentação

Qualidade e Documentação de Qualidade e Documentação de SoftwareSoftware

Documentação Técnica de SistemasEngenharia de Software

Profº Sérgio Murilo Schütz,Msc.Profº Sérgio Murilo Schütz,Msc.1º Semestre/20111º Semestre/2011

Page 2: Engenharia de Software - Qualidade e Documentação

IntroduçãoIntrodução

• Necessidade ou preciosismo? A documentação de software, mesmo sendo o carma de qualquer desenvolvedor, é extremamente necessária e auxilia na redução de horas preciosas na correção de problemas. Neste primeiro momento, vamos ver o que é a documentação de um sistema, suas partes principais e também as ferramentas que auxiliam desenvolvedores a fazer desta uma tarefa menos maçante.

Page 3: Engenharia de Software - Qualidade e Documentação

IntroduçãoIntrodução

• Para muitos desenvolvedores, a criação de documentação técnica é a parte mais aterrorizante para se enfrentar em todo o processo de criação de um software, seja pela necessidade de escrever várias e várias páginas de texto, gráficos e desenhos ou ainda pela necessidade de largar aquilo que se aprendeu (programar) para fazer aquilo que não sabe bem (redigir).

• .

Page 4: Engenharia de Software - Qualidade e Documentação

IntroduçãoIntrodução

• Entretanto a documentação é parte integrante de qualquer sistema ou programa criado. Arrisco a dizer inclusive que a documentação é tão importante (ou mais) que as questões de segurança pois sem a devida documentação, bug's e pontos vulneráveis no sistema demoram a ser encontrados e corrigidos, permitindo assim que os ataques continuem levando à falência múltipla do sistema e, conseqüentemente, de seu usuário.

Page 5: Engenharia de Software - Qualidade e Documentação

IntroduçãoIntrodução

• Normalmente, em grandes corporações existem pessoas e/ou equipes voltadas única e exclusivamente para a criação de documentação, sendo que o desenvolvedor fica restrito à codificação e comentários de seu código. Já no mundo "real", esta atividade é realizada pelo próprio desenvolvedor e demanda um bom conjunto de horas para planejar e criar cada uma de suas partes a fim de atender minimamente as necessidades do produto desenvolvido.

Page 6: Engenharia de Software - Qualidade e Documentação

IntroduçãoIntrodução

• Então, como não é possível evitar a criação da documentação técnica, vamos tentar amenizar um pouco sua horrível aparência usando ferramentas que auxiliam na tarefa de domar o monstro. Mas, antes disso, uma pequena apresentação do que é a documentação em si.

Page 7: Engenharia de Software - Qualidade e Documentação

Documentação, o que é?

• A documentação de um software é composta por várias partes diferentes que abrangem todo o sistema e pode ser dividida em dois grandes grupos: documentação técnica e documentação de uso. A primeira é voltada ao desenvolvedor ou pessoa de TI e compreende principalmente dicionários e modelos de dados, fluxogramas de processos e regras de negócios, dicionários de funções e comentários de código.

Page 8: Engenharia de Software - Qualidade e Documentação

Documentação, o que é?

• Já a documentação de uso é voltada tanto para o usuário final quanto para o administrador do sistema e, comumente, é formada por apostilas ou manuais que apresentam como o software deve ser usado, o que esperar dele e como receber as informações que se deseja.

Page 9: Engenharia de Software - Qualidade e Documentação

Documentação, o que é?

• A primeira parte (técnica) é, para o desenvolvedor, a mais simples pois, literalmente, descreve seu trabalho e também é utilizada pelo mesmo como ferramenta para o desenvolvimento de um bom código. Já a segunda costuma ser um martírio pois a redação de manuais, inserção de screenshots, desenhos e outros elementos gráficos não é aquilo que podemos considerar como skill deste profissional (são raros os que possuem).

Page 10: Engenharia de Software - Qualidade e Documentação

Documentação, o que é?

• Ambas podem ser criadas em vários formatos de visualização tais como páginas HTML, documentos PDF, apresentações, vídeos ou ainda arquivos texto. A forma de apresentação não importa. O importante é saber que para cada tarefa existe uma ferramenta certa, inclusive para a documentação de sistemas em qualquer nível de complexidade ou necessidade e que precisa ser feita, de uma forma ou de outra.

Page 11: Engenharia de Software - Qualidade e Documentação

As ferramentas para documentação

• Aproveitando a divisão da documentação em duas grandes áreas, vamos conhecer suas partes e algumas ferramentas que ajudam e/ou facilitam aqueles que tem pela frente a tarefa de gerar documentação de sistemas.

Page 12: Engenharia de Software - Qualidade e Documentação

Modelos de dados

• Modelos de dados são aquelas folhas com várias caixinhas das tabelas de um banco de dados interligadas e que muitas vezes somente são utilizadas para decoração de escritórios. Mas longe de ser um quadro ou pôster, o modelo de dados reflete de uma forma gráfica (e lógica) a base de dados de um sistema, seus relacionamentos, entidades, chaves e tudo aquilo que é referente aos dados em si.

Page 13: Engenharia de Software - Qualidade e Documentação

Modelos de dados

• Este modelo, junto com o dicionário de dados, é peça fundamental para o desenvolvimento de um sistema, sendo inclusive pensado e criado ANTES do início do desenvolvimento. Um bom modelo de dados bem pensado e bem estruturado não impacta somente em um bom código, mas também na performace da aplicação com um todo e na redução de horas de desenvolvimento equivocado.

Page 14: Engenharia de Software - Qualidade e Documentação

Modelos de dados

• Para criá-lo são utilizadas ferramentas de modelagem de dados, as quais geram de forma gráfica as tabelas, índices, relacionamentos e tudo aquilo que tem a ver com a base de dados em si, podendo ser criados por meio de engenharia reversa ou ainda baseando-se nas necessidades do aplicativo que está sendo desenvolvido.

Page 15: Engenharia de Software - Qualidade e Documentação

Modelos de dados

• As ferramentas mais conhecidas para modelagem de dados dentro do mundo livre são o DBDesigner (http://www.fabforce.net), MySQL Workbench (http://www.mysql.com) e também o PGDesigner (http://pgdesigner.sourceforge.net), as quais possuem funcionalidades diferentes e dispõem de versões tanto para Linux quanto para Windows.

• .

Page 16: Engenharia de Software - Qualidade e Documentação

Dicionário de dados

• Como o próprio nome sugere, o dicionário de dados nada mais é que um arquivo ou documento que define a organização básica dos dados do banco. Nele são informadas as tabelas, os campos, suas definições, tipos e descrições (para que serve este campo?). Um exemplo simples de um dicionário de dados pode ser visto a seguir:

Page 17: Engenharia de Software - Qualidade e Documentação

Dicionário de dados

• Com um arquivo destes, mesmo simplório, em conjunto com o modelo de dados, a possibilidade de erro na hora do desenvolvimento fica extremanente reduzida, quando falamos de acesso à dados na base, além de economizar neurônios que muitas vezes estão sendo usados para armazenar a informação que o campo varCodSysFil01 é o código de uma filial.

Page 18: Engenharia de Software - Qualidade e Documentação

Fluxogramas

• Tão antigos quanto a computação, os fluxogramas apresentam graficamente a sequência lógica das informações de um processo ou sistema, utilizando para isso vários elementos de geometrias diferentes que indicam cada uma das partes do processo. Sua importância, mesmo deixada de lado, é grande pois a partir dele (e conjuntamente com o modelo e dicionário de dados), inicia-se o projeto de um sistema eficiente e bem desenvolvido.

Page 19: Engenharia de Software - Qualidade e Documentação

Fluxogramas• Da mesma forma que o modelo de dados,

fluxogramas são muitas vezes (mas não deveriam) utilizados como pôsters de escritório. Eles são mais que isso: visualmente conseguem passar a lógica de todo um sistema desde os níveis mais altos de processamento até pequenas partes, permitindo assim uma visão geral do que realmente precisa ser feito dentro do sistema.

• Um exemplo de um fluxograma pode ser visto a seguir:

•  

Page 20: Engenharia de Software - Qualidade e Documentação

Fluxogramas

• Para criar fluxogramas, as mais conhecidas ferramentas são:

• DIA (http://www.gnome.org/projects/dia) e o OpenModeling (http://www.openmodeling.info), ambas disponíveis em várias plataformas e livres.

• http://s2i.das.ufsc.br/docs/s2idoc/index.html• Exercício – Construir um fluxograma apresentando as etapas de

desenvolvimento de Software desde a análise de requisitos até a documentação e implantação, especificando com mais detalhes a Documentação.

Page 21: Engenharia de Software - Qualidade e Documentação

Documentação de código• Para muitos, a parte mais chata. Para outros, a

mais importante. A documentação de código é feita basicamente de duas formas: comentários dentro do próprio código e geração de documentação online (ou física).

• No primeiro caso normalmente o desenvolvedor acredita que sua memória nunca irá falhar e que somente ele irá colocar a mão no sistema, deixando de documentá-lo e gerando problemas gigantescos para si e para outros profissionais. Um conjunto de comentários bem feito é tão importante quanto uma lógica bem estudada.

Page 22: Engenharia de Software - Qualidade e Documentação

Documentação de código• Funções, constantes, inclusão de arquivos,

campos de tabelas e outros elementos sempre proliferam de forma exponencial dentro do sistema, o que leva na maioria das vezes o desenvolvedor a simplesmente criar novos "remendos" com constantes "adicionais" ou variáveis novas, pois não se recorda onde está aquela função que formata determinado campo (quem não passou por isso?).

• Um pequeno exemplo de um código bem comentado pode ser visto a seguir:

Page 23: Engenharia de Software - Qualidade e Documentação

Documentação de código

• $database->setQuery( $query );$rows = $database->loadObjectList();

• // establish the hierarchy of the menu$children = array();// first pass - collect childrenif ($rows) foreach ($rows as $v ) {       $pt = $v->parent;       $list = @$children[$pt] ? $children[$pt] : array();       array_push( $list, $v );       $children[$pt] = $list;}// second pass - get an indent list of the items$list = mosTreeRecurse( 0, '', array(), $children, max( 0, $levellimit-1 ) );// eventually only pick out the searched items.if ($search) {

Page 24: Engenharia de Software - Qualidade e Documentação

Documentação de código

• Observe que não são necessárias dezenas de linhas de comentários para compreender o que determinada área do sistema executa. Mas se estas simples linhas forem deixandas de lado, além de gerar um gasto desnecessário de horas à procura de erros, aumenta-se o nível de estresse de todos que irão mexer no código e principalmente de quem paga por ele.

Page 25: Engenharia de Software - Qualidade e Documentação

Documentação de código

• Para a criação de documentação de código online são utilizadas ferramentas que, baseadas nos comentários existentes dentro do código, permitem a geração de documentos que efetivamente explanam o sistema de forma macro, relacionando arquivos que são incluídos em outros, funções, seus parâmetros e retornos, constantes e uma infinidade de informações que auxiliam qualquer desenvolvedor a compreender o que é aquele "monstro" nascido de suas mãos.

Page 26: Engenharia de Software - Qualidade e Documentação

QualidadeQualidade

• QualidadeQualidade é um dos principais objetivos da Engenharia de Software.

• Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção com qualidade.

• “Tem-se dado grande importância ao processo como forma de se garantir um software de melhor qualidade.”

Page 27: Engenharia de Software - Qualidade e Documentação

QualidadeQualidade

Termo que pode ser definido de várias formas,

causando mal-entendidos:

1. Qualidade não tem um único sentido;

2. Para cada conceito existem vários níveis de

abstração;

3. Visão popular pode ser diferente do seu uso

profissional.

Page 28: Engenharia de Software - Qualidade e Documentação

Qualidade: Visão PopularQualidade: Visão Popular

• termo indefinível.

• pode ser sentida, discutida, julgada, mas

não pode ser medida;

• luxo, classe e elegância. Produtos caros e

complexos têm melhor nível de qualidade.

Confiabilidade e o número de reparos

efetuados não são considerados.

Page 29: Engenharia de Software - Qualidade e Documentação

Qualidade: Definições SimplesQualidade: Definições Simples

• Qualidade é estar em conformidade com os

requisitos do cliente.

• Qualidade é antecipar e satisfazer os

requisitos dos clientes.

• Qualidade é escrever tudo o que se deve

fazer e fazer tudo o que foi escrito.

Page 30: Engenharia de Software - Qualidade e Documentação

Qualidade: Visão ProfissionalQualidade: Visão ProfissionalAs duas definições são similares embora a segunda dê mais As duas definições são similares embora a segunda dê mais ênfase às expectativas do usuário.ênfase às expectativas do usuário.

DefiniçõesDefinições

Crosby: “Conformidade aos Requisitos”

Juran: “Conveniência para Uso”

Requisitos devem ser claramente definidos e não podem ser mal-interpretados.Não conformidade = ausência de qualidade.

• Considera os requisitos e a expectativa do cliente.• Um produto deve ter elementos que satisfaçam as diversas maneiras com que os clientes o utilizarão. • Parâmetros da conveniência para uso:

Qualidade de Projeto e de Conformidade.

Page 31: Engenharia de Software - Qualidade e Documentação

Qualidade: Definição segundo NBR 8402Qualidade: Definição segundo NBR 8402

A totalidade das características de uma entidade que lhe confere a capacidade de satisfazer as necessidades explícitas e implícitas.

• sabor• aparência• temperatura• rapidez no serviço• preço• higiene• valor nutricional

Qualidade :

Ex: Qualidade de um prato de

comida está relacionado com

a satisfação das necessidades:

Page 32: Engenharia de Software - Qualidade e Documentação

Qualidade : Certificação de QualidadeQualidade : Certificação de Qualidade

A qualidade não basta existir, ela deve ser reconhecida pelo cliente.

A certificação de qualidade oficial é emitida com base em um padrão.

Ex. Certificados O selo do SIF O selo da ABIC A classificação em estrelas dos hotéis Os certificados de qualidade da série ISO 9000

(padrão de qualidade) .

Page 33: Engenharia de Software - Qualidade e Documentação

Qualidade : Organizações NormalizadorasQualidade : Organizações Normalizadoras

ISO - International Organization for Standardization IEEE - Instituto de Engenharia Elétrica e Eletrônica ABNT - Associação Brasileira de Normas Técnicas

Para a emissão de certificado, é preciso a realização de todo um processo de avaliação e julgamento de acordo com uma determinada norma.INMETRO - orgão do governo responsável pelo credenciamento das instituições que realizam a certificação.

Page 34: Engenharia de Software - Qualidade e Documentação

Evolução dos Conceitos de Qualidade Evolução dos Conceitos de Qualidade

1900 - Inspeção pós-produção - avalia o produto final. 1940 - Controle estatístico da produção. 1950 - Avaliação do procedimento de produção. 1960 - Educação das pessoas. 1970 - Otimização dos processos. 1980 - Projeto robusto - avaliação do processo. 1990 - Engenharia Simultânea - avalia a própria

concepção do produto.

Page 35: Engenharia de Software - Qualidade e Documentação

Qualidade aplicada ao SoftwareQualidade aplicada ao Software

Mito: Criar programas é uma arte que não pode seguir regras, normas ou padrões.

Causas: Produtos de software são complexos. Software não tem produção em série. Custo está no projeto e desenvolvimento. Software não se desgasta. Software é invisível. Sua representação em grafos e diagramas não é precisa.A Engenharia de Software ainda não está madura, é uma tecnologia em evolução.Não há um acordo entre os profissionais sobre o que é qualidade de software.

Causas: Produtos de software são complexos. Software não tem produção em série. Custo está no projeto e desenvolvimento. Software não se desgasta. Software é invisível. Sua representação em grafos e diagramas não é precisa.A Engenharia de Software ainda não está madura, é uma tecnologia em evolução.Não há um acordo entre os profissionais sobre o que é qualidade de software.

Page 36: Engenharia de Software - Qualidade e Documentação

Qualidade de SoftwareQualidade de Software

Perspectiva Histórica da Engenharia de Software: anos 60 - Era Funcional anos 70 - Era do Método anos 80 - Era do Custo anos 90 e depois - Era da Qualidade

Qualidade não é um fator de vantagem no mercado, mas é

uma necessidadenecessidade para a garantia da competitividade.

Page 37: Engenharia de Software - Qualidade e Documentação

Qualidade de Software - Qualidade de Software - atividades para garantia atividades para garantia de qualidade de produtos de softwarede qualidade de produtos de software

Software Quality Assurance: padrão sistemático e planejado de ações que são exigidas para garantir a qualidade de software. Essas ações englobam:

Aplicações de métodos técnicos Realizações de revisões técnicas formais Atividade de teste de software Aplicação de padrões e procedimentos formais Processo de controle de mudanças Mecanismos de medição

Page 38: Engenharia de Software - Qualidade e Documentação

Qualidade de Software - Qualidade de Software - técnicas aplicadas ao técnicas aplicadas ao processo de desenvolvimentoprocesso de desenvolvimento

Planejamento de qualidade Melhoria no processo e controle de qualidade Gerenciamento de qualidade no processo Análise de dados sobre a satisfação do cliente

Page 39: Engenharia de Software - Qualidade e Documentação

Definição de Qualidade de SoftwareDefinição de Qualidade de Software

“Conformidade aos requisitos de desempenho e de funcionalidade que foram explicitamente

definidos, aos padrões de desenvolvimento explicitamente documentados e às

características implícitas que são esperadas por todo software desenvolvido por profissionais.”

Page 40: Engenharia de Software - Qualidade e Documentação

Visões sobre a importância da qualidade do produto e Visões sobre a importância da qualidade do produto e do processodo processo

• Visão que aborda a qualidade do produtoqualidade do produto– Funcionalidade, confiabilidade, usabilidade, eficiência,

manutenibilidade e portabilidade (ISO 9126 e NBR 13596).

• Visão que aborda a qualidade do processoqualidade do processo– Dos requisitos do usuário à entrega do produto final,

existe um processo de desenvolvimento complexo e dividido em fases, que pode comprometer a qualidade do software.

Mesmo diante de divergências, o fato é que o processo

influi nas características finais do software.

Page 41: Engenharia de Software - Qualidade e Documentação

Principais Normas Nacionais e Internacionais na Área Principais Normas Nacionais e Internacionais na Área de Softwarede Software

NORMA

ISO 9126 Características da qualidade deprodutos de software

NBR 13596 Versão brasileira da ISO 9126

ISO 14598 Guias para avaliação de produtos desoftware, baseados na ISO 9126

ISO 12119 Características de qualidade de pacotes desoftware (software de prateleiras)

ISO 12207 Norma para a qualidade do processo dedesenvolvimento de software.

NBR ISO 9001 Modelo para garantia de qualidade emprojeto, desenvolvimento, intalação eassistência técnica (processo)

Page 42: Engenharia de Software - Qualidade e Documentação

Principais Normas Nacionais e Internacionais na Área Principais Normas Nacionais e Internacionais na Área de Softwarede Software

NORMA

CMM Modelo da SEI para avaliação da qualidadedo processo de desenvolvimento desoftware. Não é uma norma ISO, mas émuito bem aceita no mercado.

SPICEISO 15504

Projeto da ISO/IEC para avaliação deprocesso de desenvolvimento de software.Ainda não é uma norma oficial ISO, mas oprocesso está em andamento.

ISO

Page 43: Engenharia de Software - Qualidade e Documentação

Qualidade de Produtos de SoftwareQualidade de Produtos de Software

• O que é qualidade de software?• Que padrões utilizar? Parece difícil ... • Muito se tem pensado sobre isso:

– ISO/IEC 9126 - publicada em 1991.– NBR 13596 - publicada em agosto de 1996

Listam um conjunto de características que devem ser verificadas em um software para que ele seja considerado um software de qualidade

Page 44: Engenharia de Software - Qualidade e Documentação

Qualidade de Produtos de Software - Qualidade de Produtos de Software - NBR 13596NBR 13596

Característica Subcaracterísticas Pergunta chave para asubcaracterística

Funcionalidade(satisfaz asnecessidades?)

Adequação

Acurácia

Interoperabilidade

Segurança de acesso

Conformidade

Propõe-se a fazer o que éapropriado?Faz o que propôs de maneiracorreta?Interage com os sistemasespecificados?Evita acesso não autorizado adados?Está de acordo com as normas,leis, etc.

Confiabilidade(É imune afalhas?)

Maturidade

Tolerância a falhasRecuperabilidade

Com que frequência apresentafalhas?Ocorrendo falhas, como reage?É capaz de recuperar dados emcaso de falhas?

Usabilidade(É fácil de usar?)

Inteligibilidade

ApreensibilidadeOperacionalidade

É fácil entender o conceito e aaplicação?É fácil aprender a usar?É fácil operar e controlar

Page 45: Engenharia de Software - Qualidade e Documentação

Qualidade de Produtos de Software - Qualidade de Produtos de Software - NBR 13596NBR 13596

Característica Subcaracterísticas Pergunta chave para asubcaracterística

Eficiência(Rápido e enxuto)

Tempo

Recursos

Qual o tempo de resposta,velocid. de execução?Quanto recurso usa? Durantequanto tempo?

Manutenibilidade(É fácil demodificar?)

Analisabilidade

ModificabilidadeEstabilidade

Testabilidade

É fácil encontrar uma falha,quando ocorre?È fácil modificar e adaptar?Há grande risco quando se fazalterações?É fácil testar quando se fazalterações?

Portabilidade(É fácil de usar emoutro ambiente?)

Adaptabilidade

Capacidade para serinstaladoConformidade

Capacidade parasubstituir

É fácil adaptar a outrosambientes?É fácill instalar em outrosambientes?Está de acordo com padrões deportabilidade?É fácil usar para substituir outrosistema?

Page 46: Engenharia de Software - Qualidade e Documentação

Qualidade de Produto de Software - Qualidade de Produto de Software - NBR 13596NBR 13596

Como aplicar a norma ISO 9126/ NBR 13560?• Para avaliar um software segundo a norma deve-se tentar

atribuir valores (notas ou conceitos) a cada uma das subcaracterísticas.

Fato: É difícil aplicar a norma sem se estar familiarizado com o processo de avaliação de software.

Guias para a avaliação da qualidade - descrevem, detalhadamente todos os passos para se avaliar um software.

Page 47: Engenharia de Software - Qualidade e Documentação

Qualidade de Processo de SoftwareQualidade de Processo de Software

Processo de Software = conjunto de ferramentas, métodos e práticas usadas para produzir um software.

• Para melhorar a qualidade no desenvolvimento precisa-se de modelos de processos para a descrição precisa e formal das atividades do ciclo de vida do software.

• Modelo de Processo é representado por um conjunto seqüencial de atividades, objetivos, transformações e eventos que encapsulam estratégias para o cumprimento da evolução do software

Page 48: Engenharia de Software - Qualidade e Documentação

Gerência de Processo de SoftwareGerência de Processo de Software

• A gerência de processo objetiva a geração de produtos de acordo com o planejado e, ao mesmo tempo, melhorar a capacidade de produzir software com mais qualidade.

• Melhor capacidade de lidar com o software:Passo 1. Compreender o estado atual do processo;Passo 2. Desenvolver uma visão do processo desejado;Passo 3. Estabelecer ações para a melhoria do processo;Passo 4. Gerar um plano para acompanhar estas ações;Passo 5. Compreender os recursos para execução do plano;Passo 6. Recomeçar a partir do Passo 1.

• Para a evolução do processo de software é necessário ter uma maneira para medí-lo.

Page 49: Engenharia de Software - Qualidade e Documentação

Modelos para a Avaliação do Processo de SoftwareModelos para a Avaliação do Processo de Software

• Modelo Capability Maturity Model (CMM)• ISO 9000-3• Projeto SPICE• Modelo PSP (Personal Software Process)• Projeto SQUID, etc

Page 50: Engenharia de Software - Qualidade e Documentação

ISO 9000-3ISO 9000-3

• Guia para a aplicação da ISO 9001 para o desenvolvimento, fornecimento e manutenção de software, criado em 1993.

• Especifica requisitos mínimos para assegurar a qualidade de produtos e serviços, não definindo modelos ou impondo sistemas de qualidade.

Page 51: Engenharia de Software - Qualidade e Documentação

ISO 9000-3ISO 9000-3 Atividades do Ciclo de Vida

• Agrupa as atividades do ciclo de vida em 9 categorias:análise crítica do contratoespecificação dos requisitos do compradorplanejamento do desenvolvimentoplanejamento da qualidadeprojeto e implementaçãoensaios e validaçãoaceitaçãocópia, entrega e instalaçãomanutenção

Page 52: Engenharia de Software - Qualidade e Documentação

ISO 9000-3ISO 9000-3 Atividades de Suporte

• Estão organizadas em 9 itens:

gestão de configuração controle de documentos registros da qualidade medição regras, práticas e convenções ferramentas e técnicas aquisição produto de software incluído treinamento

Page 53: Engenharia de Software - Qualidade e Documentação

SPICE - IntroduçãoSPICE - Introdução

• Motivação– Mortalidade dos trabalhos de padronização

• SPICE (Software Process Improvement and Capability dEtermination)

• Organização– 4 Centros Técnicos– Conselho Administrativo– Organizações privadas e estatais

Page 54: Engenharia de Software - Qualidade e Documentação

SPICE - O que é ?SPICE - O que é ?

• É um conjunto de documentos• Consiste de um framework de avaliação

– Facilita o auto-julgamento– Desperta consciência do contexto– Produz um perfil do processo– Direciona a adequação das atividades– Apropriado para organizações de diversos

tamanhos

Page 55: Engenharia de Software - Qualidade e Documentação

SPICE - AplicaçãoSPICE - Aplicação

• Aplicado para organizações envolvidas com qualquer atividade relacionada ás atividades de computação

• A Avaliação examina o processo e determina a efetividade deste

• Resultados podem usados para– Auto-Avaliação– Melhoria do processo

Page 56: Engenharia de Software - Qualidade e Documentação

Documentos do SPICEDocumentos do SPICE

• O SPICE é composto por 9 partes:

parte 1: Conceitos e Guia Introdutório

parte 2: Modelo de Gerenciamento de Processo

parte 3: Avaliação do Processo

parte 4: Guia para Condução de uma Avaliação

parte 5: Construção, Seleção e Uso das Ferramentas de Avaliação

parte 6: Qualificação e Treinamento dos Avaliadores

parte 7: Guia para o Processo de Melhoria

parte 8: Guia para Orientação da Determinação da Capacidade do Processo

parte 9: Dicionários

Page 57: Engenharia de Software - Qualidade e Documentação

Aspectos ISO 9000-3 CMM (SEI) SPICE

Abordagem Verificação deconformidadede processos apadrõesdocumentados.

Classificação das organizaçõesem níveis de maturidadecrescente.

Avaliação dosprocessos com oobjetivo dedeterminar acapacitação daorganização epropor melhoria.

Meta/Objetivo

Certificar aorganização deacordo com ospadrõesestabelecidos.

Determinar a capacitação daempresa e apoiar sua evoluçãode acordo com os 5 níveis.

Determinar acapacitação daorganização eapoiar sua evoluçãode acordo com osobjetivos daorganização.

EmpresasAlvo

Organizaçõesque necessitamde umacertificação.

Organizações de grande porteque necessitam de umacertificação.

Organizações emgeral.

Quadro ComparativoQuadro Comparativo

Page 58: Engenharia de Software - Qualidade e Documentação

Quadro ComparativoQuadro Comparativo

Aspectos ISO 9000-3 CMM(SEI)

SPICE

Definiçõesde Processos

Não estabeleceprocessos,(estabelece asatividades a sercumpridas, comvisão deestrutura, ciclode vida esuporte).

Estabelece18 processosorganizadosem 5 níveis.

Estabelece35processosorganizadosem 5categorias.

Flexibilidade Não admiteadaptação.

Não admiteadaptação.

Adaptávelaosobjetivos daorganização.

Instrumentode Avaliaçãode nível decapacitação

Check list. Questionário. Forneceorientaçõespara montarquestionário.

Page 59: Engenharia de Software - Qualidade e Documentação

Aspectos ISO 9000-3 CMM (SEI) SPICE

InspiraçãoeInfluência

Normas militaresamericanas,canadenses,sistemas dequalidade doReino Unido.

Princípios deShewart, Deming,Juran, Crosby.

TQM, PDCA,CMM,TRILLIUM,MalcolmBaldrige,Bootstrap.

Benefícios Difusão extensa;Reconhecimentodo valor dacertificação.

Estabelecimentode um roteiro paraa melhoriacontínua.

Expansão eflexibilizaçãodos modeloscitados.

Limitações Risco de secolocar aCertificaçãocomo objetivoprincipal.Ausência deapoio à melhoriacontínua. Focoexclusivo noprocesso.

Poucaconsideração àdiversidade dasorganizações.Dificuldade deaplicação empequenasorganizações.Foco exclusivo noprocesso.

Dificuldade deaplicaçãodevido àgrandequantidade deinformações.Foco exclusivono processo.

Page 60: Engenharia de Software - Qualidade e Documentação

ConclusõesConclusões

• Dos métodos de avaliação de processo apresentados, alguns estão estabelecidos no mercado (CMM), e outros apresentam projetos ambiciosos a nível mundial (SPICE).

• Dentre estes, existem modelos que além de avaliar o processo de desenvolvimento propõem algum mecanismo para melhoria do processo.

Page 61: Engenharia de Software - Qualidade e Documentação

ConclusõesConclusões

• Não existe um modelo ideal de avaliação de qualidade que seja aplicável indistintamente às organizações, abrangendo os diversos objetivos que elas tem em relação a qualidade.

• A qualidade de software não é garantida somente pela qualidade de processo, mas também pela garantia de qualidade do produto final.

• A maior preocupação deve ser sempre a satisfação do usuário final.

Page 62: Engenharia de Software - Qualidade e Documentação

Alguns endereços na Web:• http://www.sei.cmu.edu/cmm/cmm.html• http://www.ISO_online.com

• Outras normativas qualidade• CMMI - MPSBR