Baixe o app para aproveitar ainda mais
Prévia do material em texto
Engenharia de Software Informática– Modalidade Subsequente Turma 441 Danilo de Oliveira Gonçalves Encaminhamentos • 25/11 – Qualidade Software • 02/12 – NÃO HAVERÁ AULA • 09/12 – Teste de Software • 16/12 – PROVA • 06/01 – Entrega de resultados / Revisão • 13/01 – Recuperação (se houver necessidade) Prof. Msc. Danilo de Oliveira Gonçalves 2 Tópicos da Aula • Qualidade de Software • Garantias de Qualidade de Software Prof. Msc. Danilo de Oliveira Gonçalves 3 QUALIDADE DE SOFTWARE O que significa? Prof. Msc. Danilo de Oliveira Gonçalves 4 O que é? • Conjunto de características – que devem ser alcançadas em um determinado grau • para que o produto atenda às necessidades de seus usuários • Garantia de Conformidade (Pressman) – Requisitos funcionais e de desempenho – Padrões e convenções de desenvolvimentos pré- estabelecidos – Atributos implícitos que todo o software desenvolvido profissionalmente deve possuir Prof. Msc. Danilo de Oliveira Gonçalves 5 Importância • Dependência crescente em sistemas computacionais • Sistemas computacionais dependem cada vez mais do software – Mau funcionamento do software pode gerar prejuízos elevados Prof. Msc. Danilo de Oliveira Gonçalves 6 Importância O futuro: O que pode acontecer se • bancos perderem milhões • clientes virem saldos de suas contas sumirem de repente • telefones pararem de funcionar • aviões tiverem suas rotas desviadas • vários trens (metrô) sejam colocados no mesmo trilho Prof. Msc. Danilo de Oliveira Gonçalves 7 O passado: • bug do milênio • avião F-16: voou de cabeça para baixo ao cruzar o equador devido a falha no sw de navegação • lançamento do ônibus espacial Columbia foi atrasado em 1981 devido a alteração errada em rotina de sincronização • ao menos 2 mortes causadas por overdose de radiação por causa de uma falha de sw no Therac-25 8 Contextualização • Globalização – Novas exigências, alta competitividade, concorrência internacional • Qualidade como Arma Competitiva – Equiparação com padrões internacionais, garantia de conformidade do produto, garantia da satisfação do cliente • No contexto dos Sistemas de Informação – Garantia de conformidade do software com os requisitos especificados qualidade de software 9 Qualidade: O que é? • “É atender plenamente os requisitos do cliente” • “É superar a expectativa do cliente” “ A totalidade das características de uma entidade que lhe confere a capacidade de satisfazer às necessidades explícitas e implícitas” (NBR ISO 8402) 10 Benefícios da Qualidade • Na visão do fornecedor (ex: equipe interna de TI ou fornecedor externo – do mercado) – Maior produtividade – Maior precisão nas estimativas – Redução de defeitos no produto – Aumento da confiabilidade do produto – Menos esforço de re-trabalho – Menos horas extras de trabalho – Redução do tempo para atender o mercado – Redução de custo de desenvolvimento e manutenção – Maior competitividade – Maior índice de satisfação do cliente/usuário final 11 Benefícios da Qualidade • Na visão do contratante – Auxilia a definição de critérios para seleção e descredenciamento de fornecedores – Auxilia a definição de processos de acompanhamento do progresso e desempenho dos fornecedores nas etapas de desenvolvimento, entrega e pós-entrega dos produtos – Auxilia a definição de critérios para avaliação e aceitação dos produtos entregues pelo fornecedor 12 Gurus da Qualidade • Armand Feigenbaum • W.Edwards Deming • Joseph M.Juran • Karou Ishikawa • Philip Crosby • Tom Peters 13 Armand Feigenbaum • Definiu TQM como um sistema efetivo que integra a qualidade do desenvolvimento, qualidade de manutenção, e esforços de melhoria da qualidade de vários grupos em uma organização 14 Joseph M.Juran • Melhoria estruturada da qualidade – Estudar sintomas de defeitos e/ou falhas encontrados – Desenvolver uma teoria para as causas destes defeitos e/ou falhas – Testar a teoria até que a causa seja encontrada – Simular ação remediadora por áreas apropriadas • Preocupou-se com o impacto nos trabalhadores individuais e no envolvimento e motivação da força de trabalho nas atividades de melhoria da qualidade 15 W.Edwards Deming • Considerado no Japão o “pai” do controle da qualidade • Afirmou que qualidade inicia com o alto nível gerencial e é uma atividade estratégica. Enfatiza a necessidade dos métodos estatísticos, participação, educação e proposta de melhoria 16 Karou Ishikawa • Baseando seu trabalho nos de Deming, Juran e Feigenbaum, Ishikawa criou os conceitos de círculos da qualidade e diagramas de causa-e- efeito. • Considerou a participação do trabalhador como a chave do sucesso da implementação do TQM. 17 Philip Crosby • Definiu 4 certezas para o Gerenciamento da Qualidade – Qualidade significa atendimento aos requisitos. – Qualidade vem através de prevenção. – Padrão para desempenho da qualidade e “defeito zero”. – A medida de qualidade é o preço da não- conformidade. 18 Tom Peters • Focou no atendimento às expectativas do cliente CARACTERÍSTICAS DA QUALIDADE Prof. Msc. Danilo de Oliveira Gonçalves 19 Características da Qualidade • Modelo de qualidade de McCall 1977 Prof. Msc. Danilo de Oliveira Gonçalves 20 Características operacionais: correção confiabilidade integridade eficiência Habilidade para ser alterado: manutenibilidade flexibilidade testabilidade Adaptabilidade a novos ambientes: portabilidade reusabilidade interoperabilidade Fatores de Qualidade de McCall • Com relação ao uso do produto (características operacionais): – correção: o quanto um programa satisfaz a sua especificação e cumpre os objetivos visados pelo cliente – confiabilidade: o quanto um programa executa a função pretendida com a precisão exigida – eficiência: a quantidade de recursos computacionais e de código exigida para que um programa execute sua função – integridade: o quanto o acesso ao software ou aos dados por pessoas não autorizadas pode ser controlado – usabilidade: o quanto de esforço é necessário para aprender, preparar a entrada e interpretar a saída de um programa Prof. Msc. Danilo de Oliveira Gonçalves 21 Fatores de Qualidade de McCall • Com relação às alterações do produto (habilidade para ser alterado): – manutenibilidade: o quanto de esforço é necessário para localizar e eliminar erros em um software – flexibilidade: o quanto de esforço é necessário para modificar um software – testabilidade: o quanto de esforço é necessário para testar um software a fim de garantir que ele execute a função pretendida Prof. Msc. Danilo de Oliveira Gonçalves 22 Fatores de Qualidade de McCall • Com relação às alterações do produto (habilidade para ser alterado): – portabilidade: o quanto de esforço é necessário para transferir um software de uma plataforma de hardware e/ou software para outra – reusabilidade: o quanto um software (ou partes dele) pode ser reutilizado em outros software – interoperabilidade: o quanto de esforço é necessário para se acoplar um software a um outro Prof. Msc. Danilo de Oliveira Gonçalves 23 A norma ISO/IEC 9126 • Norma ISO/IEC 9126/1991 ou NBR 13596: – Fornece um modelo de propósito geral • Define 6 categorias de características de qualidade de software – Divididas em subcaracterísticas. – Podem ser avaliadas por um conjunto de métricas. Prof. Msc. Danilo de Oliveira Gonçalves 24 É uma referência mundial para qualidade de software • ISO: The International Standardization Organization, fundada em 1947, coordena o trabalho de 127 países membros para promover a padronização de normas técnicas em âmbito mundial • IEC: The International Electrotechnical Commission, fundada em 1906, conta com mais de 50 países e publica normas internacionais relacionadas com eletricidade, eletrônica e áreas relacionadas Prof. Msc. Danilo de Oliveira Gonçalves 25 Características dequalidade Funcionalidade o software satisfaz às necessidades explícitas e implícitas do usuário? Confiabilidade o software, durante um período de tempo, funciona de acordo com as condições pré-estabelecidas? Usabilidade o software é fácil de usar? Eficiência o software não desperdiça recursos? Manutenibilidade o software é fácil de alterar? Portabilidade o software é facilmente adaptável a diferentes plataformas? Prof. Msc. Danilo de Oliveira Gonçalves 26 Características e subcaracterísticas • Funcionalidade: o software satisfaz às necessidades explícitas e implícitas do usuário? – Adequação: propõe-se a fazer o que é apropriado? – Acurácia: gera resultados corretos ou conforme acordado? – Interoperabilidade: é capaz de interagir com os sistemas especificados? – Conformidade: está de acordo com normas e convenções previstas em leis, normas e descrições similares? – Segurança de acesso: evita acesso não autorizado, acidental ou deliberado acesso a programa e dados? Prof. Msc. Danilo de Oliveira Gonçalves 27 Características e subcaracterísticas • Confiabilidade: o software, durante um período de tempo, funciona de acordo com as condições pré- estabelecidas ? – Maturidade: com que frequência apresenta falhas? – Tolerância a falhas: ocorrendo falhas, como ele reage? – Recuperabilidade: é capaz de recuperar dados após uma falha? Prof. Msc. Danilo de Oliveira Gonçalves 28 Características e subcaracterísticas • Usabilidade: o software é fácil de usar? – Inteligibilidade: é fácil entender os conceitos utilizados? – Apreensibilidade: é fácil de aprender a usar? – Operacionalidade: é fácil de operar e controlar a operação? Prof. Msc. Danilo de Oliveira Gonçalves 29 Características e subcaracterísticas • Eficiência: o software não desperdiça recursos? – Comportamento em relação tempo: qual é o tempo de resposta e de processamento? – Comportamento em relação aos recursos: quanto recurso usa? Durante quanto tempo? Prof. Msc. Danilo de Oliveira Gonçalves 30 Características e subcaracterísticas • Manutenibilidade: o software é fácil de alterar? – Analisabilidade: é fácil encontrar um erro quando ocorre? – Modificabilidade: é fácil modificar e remover erros? – Estabilidade: há grandes riscos de erros quando se faz alterações? – Testabilidade: é fácil testar quando se faz alterações? Prof. Msc. Danilo de Oliveira Gonçalves 31 Características e subcaracterísticas • Portabilidade: o software é facilmente adaptável a diferentes plataformas? – Adaptabilidade: é fácil adaptar a outras plataformas sem aplicar outras ações ou meios além dos fornecidos para esta finalidade no software considerado? – Capacidade para instalar: é fácil instalar em outras plataformas? – Capacidade para substituir: é fácil substituir por outro software? – Conformidade: está de acordo com padrões e convenções de portabilidade? Prof. Msc. Danilo de Oliveira Gonçalves 32 Qualidade x tipo de software • Cada tipo de software tem seu próprio requisito de qualidade • A importância de cada característica depende do tipo de software Prof. Msc. Danilo de Oliveira Gonçalves 33 Funcionalidade Confiabilidade Usabilidade Eficiência Manutenibilidade Portabilidade Software para locadora de dvd’s Sistema embarcado para satélite Qualidade x Pontos de Vista Prof. Msc. Danilo de Oliveira Gonçalves 34 Entraves à qualidade erro (engano) Ação humana que produz um resultado incorreto mistake falha incorreção em um passo, processo ou definição de dados; manifestação no software de um engano cometido pelo desenvolvedor fault (bug) erro diferença entre o valor obtido e o valor esperado, ou seja, qualquer estado intermediário incorreto ou resultado inesperado na execução do software error defeito incapacidade de fornecer o serviço conforme especificado failure Prof. Msc. Danilo de Oliveira Gonçalves 35 Porque surgem as falhas? • Alterações: – alterações degradam a estrutura do software, tornando-o cada vez mais difícil de alterar • Tempo: – com o tempo os custos da implementação de alterações aumenta, e a capacidade do sistema em prestar os serviços esperados diminui • Complexidade: – difícil de desenvolver: um único desenvolvedor não é capaz de entender o sistema como um todo – difícil de usar – difícil de entender: código incompreensível, falta de documentação Prof. Msc. Danilo de Oliveira Gonçalves 36 Garantia de qualidade • Definição de um arcabouço para se atingir a qualidade do produto • Padrão sistemático e planejado de ações que são exigidas para garantir a qualidade • Visa responder às seguintes questões: – O software atende às características de qualidade desejadas? – O desenvolvimento do software foi conduzido conforme os padrões pré-estabelecidos? – As disciplinas técnicas cumpriram adequadamente seus papéis como parte da atividade de Garantia da Qualidade? Prof. Msc. Danilo de Oliveira Gonçalves 37 Atividades para garantir a qualidade • Aplicação de métodos, técnicas e ferramentas – (desenvolvedores): uso de métodos e ferramentas que ajudem a conseguir maior qualidade nas especificações, projetos, etc. • Aplicação de padrões – podem ser usados: para documentos, documentação do código e estilo de codificação (como usar linguagem de programação) – podem ser determinados pelo cliente, por normas internacionais ou pela empresa de desenvolvimento. Prof. Msc. Danilo de Oliveira Gonçalves 38 Atividades para garantir a qualidade • Controle de alterações – toda mudança no software tem potencial para introduzir erros ou criar efeitos colaterais que propagam erros – controle de mudanças durante desenvolvimento e manutenção é essencial para garantir a qualidade do software • Medição – obtenção de métricas para rastrear a qualidade do software e para avaliar o impacto de mudanças nos métodos e procedimentos usados para desenvolvimento e manutenção • Anotação e manutenção de registros – manter histórico com resultados de revisões, auditorias, controle de alterações e outras atividades de garantia de qualidade – devem ser levados ao conhecimento dos desenvolvedores Prof. Msc. Danilo de Oliveira Gonçalves 39 40 Garantia da Qualidade X Controle da Qualidade • Controle da Qualidade – Evita que produtos defeituosos sejam entregues aos clientes; – Natureza reativa. – Objetiva monitoração de processo, e detecção e correção de defeitos. – Ex: Inspeções, ensaios e testes. 41 Garantia da Qualidade X Controle da Qualidade • Garantia da Qualidade – Tenta produzir software com uma baixa taxa de defeitos; – Natureza proativa. – Definição de procedimentos, padrões, treinamentos. – Gerência e melhoria de processo. 42 Evolução Total Quality Management Garantia da Qualidade Controle da Qualidade Inspeção Detecção de Erro Retificação Métodos estatísticos Desempenho de processo Padrões de qualidade Sistemas da Qualidade Custo da qualidade Solução de problemas Planejamento da qualidade Estratégia de qualidade Grupos de trabalho Envolvimento de clientes e fornecedores 43 Elementos-chave do TQM TQM Melhoria Contínua Foco no Cliente Melhoria de Processo Lado Humano da Qualidade Métricas, Modelos, Medição e Análise Stephen Kan 44 Total Quality Management (TQM) • Aspectos Fundamentais – Atender as necessidades e expectativas do cliente (a mais importante “parte” da organização). – Consideração ao cliente e fornecedor interno. – Envolver todas as pessoas da organização. – Examinar custos relacionados com a qualidade. – Desenvolver sistemas e procedimentos que suportem qualidade e melhoria. – Desenvolver um processo de melhoria contínua. 45 Grupo de SQA • Grupo de SQA (Software Quality Assurance) – Grupo de Garantia de Qualidade de Software • Atividades – Preparar um plano de SQA; – Participar da descrição do projeto de software; – Revisar as atividades dos engenheiros de software; – Documentar e consertaros desvios; – Registrar discordâncias e reportar para o gerente; – Gerenciar mudanças e métricas de software. 46 Custos da Qualidade • Custos da Prevenção – Atividades de planejamento e implementação de sistemas da qualidade. • Custos de Avaliação – Verificações no processo de produção. • Custos de Falhas e Correção – Custos de refazer atividades devido a erros efetuados. 47 Política da Qualidade • Alinhada aos objetivos da organização. • Comprometimento em atender os requisitos. • Melhoria contínua. • Comunicação e entendimento. • Análise crítica. Avaliação da qualidade • Objetivos: – aprimorar o processo de desenvolvimento e, em consequência, melhorar a qualidade do produto resultante – avaliar a qualidade do produto visando emitir documento oficial sobre a qualidade de um software e sua conformidade em relação a uma norma ou padrão – adquirir um software, com o intuito de escolher o produto mais adequado dentre um conjunto de produtos selecionados Prof. Msc. Danilo de Oliveira Gonçalves 48 Aprimoramento do processo de Software • Algumas iniciativas visando melhorias do processo de software: – SEI/CMM (Capability Maturity Model), modelo desenvolvido pelo Instituto de Engenharia de Software (SEI) da Universidade CarnegieMellon, EUA, visando dar às organizações diretrizes sobre como aprimorar o processo – ISO/SPICE (Software Process Improvement & Capability dEtermination), cujo objetivo é gerar normas ISO/IEC para a avaliação de processos de software – Norma ISO/IEC 12207, define um processo de ciclo de vida do software – Norma ISO/IEC 9000-3, apresenta diretrizes para a aplicação da ISO 9001 (voltada para indústria), por empresas que desenvolvem software, para o processo de desenvolvimento e manutenção de software Prof. Msc. Danilo de Oliveira Gonçalves 49 Avaliação da qualidade do produto • Algumas normas: – ISO/IEC 9126 (NBR 13596), define as características de qualidade de software que devem estar presentes em todos os produtos – ISO/IEC 12119, estabelece os requisitos de qualidade para pacotes de software e instruções para teste, considerando esses requisitos – ISO/IEC 14598-5, define um processo de avaliação da qualidade de produto de software Prof. Msc. Danilo de Oliveira Gonçalves 50 Avaliação da qualidade do produto • Como fazer: – Organismos de certificação: no Brasil, para fornecer o certificado ISO 9000, existem empresas credenciadas pelo INMETRO – Avaliar in-house: utilizar equipe multidisciplinar com especialistas que se utilizará do software • Ponto de vista do cliente • Grupo de Garantia da Qualidade do Software – Contratar empresas para avaliação: existem empresas que fazem avaliação do software • mas, por não serem credenciadas pelo INMETRO, não emitem certificado oficial. • Mais acessíveis e mais ágeis que os organismos credenciados. Prof. Msc. Danilo de Oliveira Gonçalves 51 52 Certificação de Qualidade • Não basta que a qualidade exista, ela deve ser reconhecida pelo cliente; • Deve existir uma certificação oficial emitida com base em um padrão; • As certificações são dadas por instituições competentes; • Exemplos de certificação: – Selo SIF de qualidade de produtos alimentícios; – Selo ABIC de qualidade do café; – Classificação da rede hoteleira (estrelas). 53 Certificação da Qualidade • Por que Normalização Internacional? – Garantir a confiabilidade do produto. – Reduzir custos e evitar desperdícios e retrabalhos. – Implementar e utilizar práticas reconhecidas internacionalmente. – Estabelecer confiança no relacionamento com o cliente. – Cartão de visita para o mercado internacional. MPS.BR • O MPS.BR ou Melhoria de Processos do Software Brasileiro é simultaneamente – um movimento para a melhoria da qualidade (Programa MPS.BR) – um modelo de qualidade de processo (Modelo MPS). • Voltado para a realidade do mercado de pequenas e médias empresas de desenvolvimento de software – baseado nas normas ISO/IEC 12207 e ISO/IEC 15504 e compatível com o CMMI. Prof. Msc. Danilo de Oliveira Gonçalves 54 MR-MPS (Modelo de referência para melhoria do processo de software) • O MPS.BR apresenta 7 níveis de maturidade – (diferencial em relação aos outros padrões de processo): • A - Em Otimização; • B - Gerenciado quantitativamente; • C - Definido; • D - Largamente Definido; • E - Parcialmente Definido; • F - Gerenciado; • G - Parcialmente Gerenciado. Prof. Msc. Danilo de Oliveira Gonçalves 55 Prof. Msc. Danilo de Oliveira Gonçalves 56 MR-MPS (Modelo de referência para melhoria do processo de software) • Cada nível de maturidade possui suas áreas de processo, onde são analisados: • processos fundamentais – aquisição; – gerência de requisitos; – desenvolvimento de requisitos; – solução técnica; – integração do produto; – instalação do produto; – liberação do produto. • processos organizacionais – gerência de projeto; – adaptação do processo para gerência de projeto; – análise de decisão e resolução; – gerência de riscos; – avaliação e melhoria do processo organizacional; – definição do processo organizacional; – desempenho do processo organizacional; – gerência quantitativa do projeto; – análise e resolução de causas; – inovação e implantação na organização. • processos de apoio – garantia de qualidade; – gerência de configuração; – validação; – medição; – verificação; – treinamento. Prof. Msc. Danilo de Oliveira Gonçalves 57 Capacidade • AP 1.1 - O processo é executado; • AP 2.1 - O processo é gerenciado; • AP 2.2 - Os produtos de trabalho do processo são gerenciados; • AP 3.1 - O processo é definido; • AP 3.2 - O processo está implementado; • AP 4.1 - O processo é medido; • AP 4.2 - O processo é controlado; • AP 5.1 - O processo é objeto de inovações; • AP 5.2 - O processo é otimizado continuamente. Prof. Msc. Danilo de Oliveira Gonçalves 58 MA-MPS (Método de avaliação para melhoria do processo de software) • Objetivo: – orientar a realização de avaliações – em conformidade com a norma ISO/IEC 15504 – em empresa e organizações que implementaram o MR-MPS Prof. Msc. Danilo de Oliveira Gonçalves 59 MA-MPS (Método de avaliação para melhoria do processo de software) • Equipe de avaliação: 3 a 8 pessoas, sendo: – 1 avaliador líder – No mínimo 1 avaliador adjunto – no mínimo 1 técnico da empresa – Duração: 2 a 4 dias; – Validade: 3 anos; • Estruturação da Avaliação: – Planejar e preparar avaliação • Plano de Avaliação / Descrição dos indicadores de processo – Conduzir Avaliação • Resultado da avaliação – Relatar resultados • Relatório da avaliação – Registrar e publicar resultados • Banco de dados Softex (portal MPS.BR) Prof. Msc. Danilo de Oliveira Gonçalves 60 MN-MPS (Modelo de negócio para melhoria do processo de software) • Instituições que se propõem a implantar os processos MPS.Br (Instituições Implementadoras) • Credenciam-se através de um documento – onde é apresentada a instituição proponente – contendo seus dados com ênfase na experiência em processos de software – estratégia de implementação do modelo – estratégia para seleção e treinamento de consultores para implementação do MR.MPS – estratégia para seleção e treinamento de avaliadores – lista de consultores de implementação treinados no modelo e aprovados em prova específica – lista de avaliadores treinados no modelo e aprovados em prova específica Prof. Msc. Danilo de Oliveira Gonçalves 61 Prof. Msc. Danilo de Oliveira Gonçalves 62 CMMI • Capability Maturity Model Integration • Foi criado pelo SEI (Software Engineering Institute) • Versão 1.3 (Agosto/2012) • Capacidade de maturidade de processos de software – Está dividido em 5 níveis de maturidade • Atestam o grau de evolução em que uma organização se encontra num determinado momento Prof. Msc. Danilo de Oliveira Gonçalves 63 Níveis CMMI Prof. Msc. Danilo de Oliveira Gonçalves 64 Descrição dos níveis CMMI • Nível 1 - Inicial: os processos normalmenteestão envoltos num caos decorrente da não-obediência ou ainda, inexistência de padrões • Nível 2 - Gerenciado: os projetos têm seus requisitos gerenciados neste ponto. Além disso, há o planejamento, a medição e o controle dos diferentes processos • Nível 3 - Definido: os processos já estão claramente definidos e são compreendidos dentro da organização. Os procedimentos se encontram padronizados, além de ser preciso prever sua aplicação em diferentes projetos • Nível 4 – Gerenciado: quantitativamente: ocorre o aumento da previsibilidade do desempenho de diferentes processos, uma vez que os mesmos já são controlados quantitativamente • Nível 5 - Otimizado: existe uma melhoria contínua dos processos. Prof. Msc. Danilo de Oliveira Gonçalves 65 Alvo do CMMI • A implantação do CMMI é recomendável para grandes fábricas de software • Implementar os diversos estágios é uma tarefa árdua – não só numa fase inicial, mas também quando se leva em conta a migração de um nível para outro. • Invariavelmente exige – vultosos investimentos financeiros, – mudança de postura da organização (principalmente quando a mesma não contava uma experiência anterior bem-sucedida no gerenciamento de processos). – consultorias especializadas, • visando apoio na obtenção da certificação CMMI • Inviável a adoção deste mesmo modelo por pequenas companhias Prof. Msc. Danilo de Oliveira Gonçalves 66 Prof. Msc. Danilo de Oliveira Gonçalves 67 68 Auditorias • Auditorias de Certificação – Inicial • Completa, abrangendo todo o escopo de certificação. – De Manutenção • Periódica, conduzida para determinar a manutenção da auditoria inicial. – De Re-certificação • Realizada no final do período de certificação no sentido de re-emitir o certificado para um novo período. 69 Assessments • “the evaluation or estimation of the nature, quality, or ability of someone or something” • Auxilia a organização a melhorar através da identificação de problemas críticos e estabelecimento de ações de melhoria. • Objetivos – Conhecer como a organização trabalha. – Identificar principais problemas. • Foco em revisão e não em auditoria 70 Assessments • Premissas – Modelo de processo como base do assessment. – Confidencialidade. – Envolvimento da alta gerência. – Respeito a diferentes pontos de vista. – Orientação a ações. 71 Assessments • Estágios – Preparação – Avaliação – Recomendações • Assessment Report 72 Conclusão • O principal objetivo da Engenharia de Software (ES) é ajudar a produzir software de qualidade; • Empresas que desenvolvem software de qualidade são mais competitivas; • Empresas que utilizam software de alta qualidade podem, em geral, oferecer um melhor serviço a um preço mais competitivo. 73 Qualidade de Software • O que o cliente quer? – Atendimento aos requisitos especificados – Defeito zero – Alto desempenho – Baixo custo – Desenvolvimento rápido – Facilidade de uso – Eficiência nos serviços associados – Inovação 74 Qualidade de Software: dificuldades • Características dos projetos de software – Complexidade – Custo focado no conhecimento e no desenvolvimento – Produção específica e não em série – Imaturidade da área de Engenharia de Software 75 Qualidade de Software: processo x produto QUALIDADE DO PRODUTO DE SOFTWAREQUALIDADE DO PROCESSO DE DESENVOLVIMENTO 76 Certificação do Produto ou do Processo? • Hoje em dia, a qualidade do processo é mais importante do que a qualidade final do produto; • Existem normas e padrões tanto para produtos quanto para processos. 77 Qualidade do Processo • Processo – uma seqüência de passos realizados para um determinado propósito. (IEEE) – conjunto de recursos e atividades inter- relacionados que transformam insumos em produtos. (ISO 8402) • Processo de software – um conjunto de atividades, métodos, práticas e transformações que as pessoas utilizam para desenvolver e manter software e produtos relacionados. (CMM) 78 Processo de Software PROCESSO Ferramentas Métodos, Procedimentos, Padrões, Técnicas Pessoas habilitadas, treinadas, motivadas FATORES DE QUALIDADE • o procedimento que descreve o método escolhido • as ferramentas para darem apoio e facilitarem o trabalho • pessoas treinadas, que compreendam e usem o processo 79 Desenvolvimento do Software REQUISITOS PRODUTO DE SOFTWARE Análise Projeto … verificação validação Qualidade do Processo de Software 80 Qualidade do Processo de Software • Pontos Relevantes – Definição de um ciclo de vida – Conformidade com requisitos especificados – Integridade dos produtos do desenvolvimento com os requisitos – Controle de versões – Padronização – Testes e Inspeções – Planejamento e gerenciamento efetivo – . . . 81 Melhoria de Processo de Software • Princípios – Grandes mudanças devem ser iniciadas de cima pra baixo. – Todos devem ser envolvidos. – Mudanças efetivas devem ser construídas com base em conhecimento. – Mudanças são contínuas. – Mudanças no processo são incorporadas através de motivação e esforço. – Melhoria de processo de software requer investimento. 82 Princípios Básicos da Qualidade de Software Satisfação do Cliente Melhoria Contínua de Processos Redução de Custo de Qualidade Controle do Projeto 83 Conclusão • Qualidade é um conceito complexo, porque significa diferentes coisas para diferentes pessoas; • Não há uma simples medida para qualidade de software que seja aceitável para todos os projetos de todas as empresas; • Apesar dos custos elevados, é importante introduzir sistemas de gerenciamento de qualidade de software, pois permitem um aumento de produtividade, uma melhoria da qualidade do produto final e um aumento da satisfação dos clientes e da própria empresa; • A falta de consciência de muitas empresas e profissionais que lidam com sistemas complexos tem sido um dos maiores problemas em adotarem uma política de qualidade. Trabalho próxima aula • 02/12 – não haverá aula • Trabalho para ser feito no horário da aula (ou quando preferirem) – Qualquer lugar – Individual – Entregar Impresso (colocar nome, disciplina e data) – Data de entrega: 09/12/2015 – Mínimo de 3 páginas excluindo figuras – Vai compor a terceira nota • Assunto: – Pesquisa sobre Scrum e FDD (Feature Driven Development) • O que é? Como funciona? Pra que serve? Vantagens e Desvantagens. Comparativo entre as duas metodologias. Prof. Msc. Danilo de Oliveira Gonçalves 84 Próxima Aula • 09/12 – Teste de Software Prof. Msc. Danilo de Oliveira Gonçalves 85
Compartilhar