engenharia de software - qualidade e documentação
TRANSCRIPT
![Page 1: Engenharia de Software - Qualidade e Documentação](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/26.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/27.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/28.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/29.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/30.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/31.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/32.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/33.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/34.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/35.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/36.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/37.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/38.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/39.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/40.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/41.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/42.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/43.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/44.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/45.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/46.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/47.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/48.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/49.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/50.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/51.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/52.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/53.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/54.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/55.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/56.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/57.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/58.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/59.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/60.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/61.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062303/5571fa45497959916991b997/html5/thumbnails/62.jpg)
Alguns endereços na Web:• http://www.sei.cmu.edu/cmm/cmm.html• http://www.ISO_online.com
• Outras normativas qualidade• CMMI - MPSBR