Prévia do material em texto
Modelos de qualidade de software Apresentação A qualidade de software é formada por três atividades principais: garantia da qualidade, planejamento da qualidade e controle da qualidade. Na garantia da qualidade, pressupõe-se o estabelecimento de procedimentos e os padrões de desenvolvimento, os quais resultam em um software de qualidade. O planejamento de qualidade é o desenvolvimento de um plano de qualidade para um determinado processo. No controle de qualidade, busca-se garantir que o processo especificado seja seguido. A qualidade de software vai além dos padrões de desenvolvimento, ela também procura garantir que o produto final satisfaça as expectativas do cliente. Nesta Unidade de Aprendizagem, você aprenderá como identificar os atributos de qualidade de software, assim como identificar normas e modelos de qualidade. Bons estudos. Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados: Descrever o gerenciamento da qualidade de software.• Identificar os atributos e princípios de qualidade de software.• Indicar normas e modelos de qualidade de software.• Desafio Em busca da melhoria de seus produtos, as empresas investem no aperfeiçoamento dos processos da organização e da qualidade do produto e/ou serviço. Sendo assim, os modelos de qualidade utilizados refletem as melhores práticas do mercado, auxiliando nas melhorias. Considere o seguinte cenário: Entre os modelos MPS-BR e CMMI, qual dos dois é a melhor opção nesse caso? Justifique a sua resposta. Infográfico Os modelos de qualidade de software existem para padronizar os projetos, além de garantir a qualidade e facilitar o seu acompanhamento. CMMI e MPS-BR são exemplos de modelos de qualidade de software. Neste Infográfico, você verá as principais diferenças entre CMMI e MPS-BR. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://statics-marketplace.plataforma.grupoa.education/sagah/7064a061-8725-4033-9f51-3b9724b7ff8c/0cc0816a-15d3-4814-bc4f-ec220d871f8f.png Conteúdo do Livro A qualidade de software está bem presente nos projetos de desenvolvimento, de modo a garantir a satisfação do cliente e a entrega de um produto de excelência. No capítulo Modelos de qualidade de software, da obra Engenharia de software, base teórica desta Unidade de Aprendizagem, você conhecerá os principais atributos da qualidade, além de alguns modelos de qualidade de software. Boa leitura. ENGENHARIA DE SOFTWARE Adriana de Souza Vettorazzo Identificação interna do documento Modelos de qualidade de software Objetivos de aprendizagem Ao final deste texto, você deve apresentar os seguintes aprendizados: � Descrever o gerenciamento da qualidade de software. � Identificar os atributos e princípios da qualidade de software. � Indicar normas e modelos de qualidade de software. Introdução A qualidade de software divide-se em três atividades principais: garantia da qualidade, para estabelecer procedimentos e padrões de desenvol- vimento que resultam em um software de qualidade; planejamento da qualidade, processo de desenvolvimento de um plano de qualidade para um determinado processo; e controle da qualidade, que garante que o processo especificado seja seguido. Neste capítulo, você vai estudar sobre modelos de qualidade de software, aprendendo a descrever seu gerenciamento e identificando seus atributos, princípios, normas e modelos. Gerenciamento da qualidade de software Segundo Sommerville (2011), existem três níveis de preocupação para que a qualidade de um produto de software seja alcançada. � Preocupação no nível organizacional: o gerenciamento se preocupa em estabelecer um quadro de processos organizacionais e padrões que resultarão em um software de alta qualidade. � Preocupação no nível do projeto 1: o gerenciamento envolve pro- cessos quanto à aplicação de processos de qualidade específicos e à Identificação interna do documento verificação sobre o seu seguimento conforme o planejado, garantindo que tudo esteja correto. � Preocupação no nível do projeto 2: o gerenciamento da qualidade preocupa-se com o desenvolvimento de um plano de qualidade para o projeto. Nesse plano, devem estar descritas as metas de qualidade e a definição de processos e padrões que serão utilizados. Ainda segundo Sommerville (2011), o gerenciamento de qualidade em sistemas de grande porte pode ser estruturado em três atividades principais: � fornecer uma verificação independente a respeito do processo de de- senvolvimento de software; � verificar as entregas do projeto para garantir que sejam consistentes com os objetivos e padrões organizacionais; � a equipe de desenvolvimento deve ser diferente da equipe da qualidade, conseguindo, assim, ter uma visão mais objetiva do software e gerando rela- tórios sobre a qualidade sem a influência das questões de desenvolvimento. A Figura 1 mostra a relação entre aas atividades de gerenciamento de qualidade e de desenvolvimento do software. Figura 1. Processo de desenvolvimento versus processo de qualidade. Fonte: Adaptada de Sommerville (2011). Planejamento da qualidade de software Planejar a qualidade significa traçar um plano de qualidade para um projeto a partir de padrões apropriados para o produto e o processo. Esse plano definirá Modelos de qualidade de software2 Identificação interna do documento os atributos mais significativos e também a forma como eles serão avaliados, estabelecendo, ainda, os padrões da qualidade que devem ser aplicados e definindo novos padrões a serem utilizados, se necessário. Um bom plano de qualidade deve apresentar a seguinte estrutura: � introdução ao produto; � planos de produto; � descrições de processo; � metas de qualidade; � riscos e gerenciamento de riscos. Esse documento deve conter todas as informações necessárias para que sejam realizadas as atividades da qualidade do projeto, além de ser curto e sucinto, de modo a facilitar a leitura da equipe. Precisa, além disso, registrar o progresso e dar apoio à continuidade do desenvolvimento mesmo que haja mudanças na equipe de desenvolvimento. Em sistemas menores, o gerenciamento de qualidade necessita de uma docu- mentação menor e deve concentrar-se em estabelecer uma cultura de qualidade. Qualidade de software Para garantir a qualidade, o produto de software deve corresponder às expec- tativas e às especificações. Para isso, McCall, Richards e Walters (1977 apud PRESSMAN; MAXIM, 2016) criaram uma proposta com fatores que afetam a qualidade (Figura 2). Figura 2. Fatores de qualidade de software de McCall. Fonte: Pressman e Maxim (2016). 3Modelos de qualidade de software Identificação interna do documento A partir desses fatores, podemos compor os atributos de qualidade de software (Quadro 1), que se dividem em três grupos: segurança, compreen- sibilidade e portabilidade, segundo Sommerville (2011). Fonte: Adaptado de Sommerville (2011). Segurança CompreensibilidadePortabilidade Proteção Testabilidade Usabilidade Confiabilidade Adaptabilidade Reusabilidade Resiliência Modularidade Eficiência Robustez Complexidade Capacidade de aprendizado Quadro 1. Atributos de qualidade de software � Segurança: é a medida da capacidade do sistema em resistir a tentativas não autorizadas de utilização ou negação de serviço ao mesmo tempo que presta serviços aos legítimos utilizadores. Para isso, o sistema precisa garantir proteção, confiabilidade, resiliência e robustez. � Compreensibilidade: abrange a capacidade do produto de ser compre- endido, aprendido, operado e ter interface atraente ao usuário. � Portabilidade: é a garantia de que o software irá desempenhar as fun- ções a que se destina, sendo fácil de se adaptar a diferentes ambientes sem a necessidade de ações adicionais. Embora tenhamos o mapeamento de todos esses atributos, nem todos os sistemas poderão ser otimizados e utilizados em sua totalidade. Assim, poderão ser utilizados os atributosque se considere mais importante para o software que está sendo desenvolvido no momento. No plano de software, pode-se incluir os processos de avaliação da quali- dade, o que se transforma em uma forma acordada para avaliar a qualidade. Modelos de qualidade de software4 Identificação interna do documento Padrões, normas e modelos de qualidade de software Segundo Sommerville (2011), há uma estreita ligação entre padrões de produto e de processo. Os de produtos aplicam-se à saída do processo de software, e os padrões de processo incluem atividades específicas de processos que asseguram que os padrões sejam seguidos. Os padrões definem os atributos necessários de um produto ou processo e desempenham um papel importante no gerenciamento de qualidade. Assim, enquanto os padrões de produto definem as características que os componentes de software devem exibir, os padrões de processo definem como o processo de software deve ser seguido. Veja, no Quadro 2, alguns padrões que podem ser utilizados. Fonte: Adaptado de Sommerville (2011). Padrões de produto Padrões de processo Formulário de revisão de projeto Condução de revisão de projeto Estrutura de documento de requisitos Apresentação do novo código para a construção de sistema Formato de cabeçalho de método Processo de versão e release Estilo de programação Java Processo de aprovação de plano de projeto Formato de plano de projeto Processo de controle de mudança Formulário de solicitação de mudança Processo de registro de teste Quadro 2. Padrões de produto e processo Os padrões podem mudar com o tempo por necessidade ou pelo surgimento de novos. Assim, para evitar que membros da equipe os desconsiderem por 5Modelos de qualidade de software Identificação interna do documento achar que são burocráticos ou até mesmo irrelevantes para o desenvolvimento de atividades técnicas, alguns passos podem ser seguidos: 1. envolver a equipe de software para selecionar os padrões que serão adotados para o produto; 2. fazer a revisão dos padrões regularmente para refletir as mudanças de tecnologia; 3. utilizar ferramentas de software que apoiem a utilização dos padrões escolhidos. Existe um número significativo de normas técnicas. Veja, a seguir, no Quadro 3, algumas normas internacionais e modelos de qualidade de software. Produto Processo ISO 9126 Norma para qua- lidade de produ- tos de software ISO 12207 Processos de ciclo de vida do software ISO 14598 Guias para avalia- ção de produtos de software ISO 90003:2004 Diretrizes para aplicação da norma ISO 9001 ao desenvolvimento, forne- cimento e manutenção de software ISO 15504 (SPICE) Projeto da ISO/IEC para avaliação dos processos de desenvolvimento de software CMMI Capability Maturity Model Integrated. Modelo do SEI que estende o CMM para avaliação de pro- cessos de software MPS-BR Modelo Brasileiro de qualidade de processo de software baseado nas normas ISO 12207 e 15504 e no modelo CMMI Quadro 3. Normas internacionais e modelos de qualidade de software Modelos de qualidade de software6 Identificação interna do documento Modelo CMMI O modelo CMMI (Capability Maturity Model Integration) foi criado pelo SEI Software Engineering Institute e tem foco na capacidade de maturidade de processos de software, ou seja, serve de guia para a melhoria de processos. O CMMI apresenta cinco níveis de maturidade, que estabelecem patamares de evolução de processos, caracterizando estágios de melhoria da implemen- tação de processos (Figura 3). � Nível 1 – inicial: os processos são caóticos e a organização não apresenta ambiente estável de desenvolvimento. Se existem padrões, eles não são seguidos, e os projetos, geralmente, apresentam problemas de execução dos projetos no que diz respeito a prazos e custos. � Nível 2 – gerenciado: os projetos possuem requisitos gerenciados e processos planejados. Os requisitos, processos e serviços são gerenciados e há uma preocupação em seguir o que está determinado nos planos. � Nível 3 – definido: os processos são caracterizados e bem entendidos. Existe a padronização dos processos, o que possibilita que os produtos gerados sejam consistentes. Nesse estágio, os procedimentos são pa- dronizados e devem prever a aplicação em diferentes projetos. � Nível 4 – gerenciamento da qualidade: os processos selecionados contribuem para o desempenho geral dos demais processos. Eles são controlados com base em estatísticas e técnicas quantitativas. � Nível 5 – otimizado: os processos são continuamente avaliados e melhora- dos. Os objetivos quantitativos são estabelecidos e revisados com frequência. Figura 3. Níveis de maturidade CMMI. Fonte: Groffe (2013, documento on-line). 7Modelos de qualidade de software Identificação interna do documento Alguns benefícios da implantação do CMMI são: � maior confiabilidade no que se refere ao cumprimento de prazos e custos que foram acordados; � o acompanhamento das atividades relativas à produção de software aumenta consideravelmente; � aumento da qualidade dos softwares criados devido aos processos bem definidos. � já que os processos são bem definidos, a dependência por profissional com elevado conhecimento técnico diminui; � a melhoria contínua é uma busca diária. Modelo MPS–BR O modelo de Melhoria do Processo de Software Brasileiro (MPS–BR) é uma metodologia voltada à área de desenvolvimento de sistemas. A exemplo do modelo CMMI, o MPS-BR também apresenta níveis de maturidade. � Nível A – em otimização: um processo nesse nível é otimizado por meio da realização de mudanças e adaptações de forma ordenada, com foco na efetividade para atender mudanças nos objetivos do negócio. � Nível B – gerenciado quantitativamente: a organização passa a ter uma visão quantitativa quanto ao desempenho dos seus processos. � Nível C – definido: são implementados três novos processos com a mesma capacidade dos processos já implantados: ■ análise e decisão e resolução (ADR); ■ desenvolvimento para a reutilização (DRU); ■ gerência de riscos (GRI). � Nível D – largamente definido: estar nesse nível implica apenas a definição e a implementação de cinco novos processos com a mesma capacidade dos processos já implantados: ■ desenvolvimento de requisitos (DRE); ■ integração do produto (ITP); ■ projeto e construção do produto (PCP); ■ validação (VAL); ■ verificação (VER). Modelos de qualidade de software8 Identificação interna do documento � Nível E – parcialmente definido: o foco principal é a padronização dos processos da organização, que devem ser definidos a partir dos processos e das melhores práticas já existentes. � Nível F – gerenciado: existe o apoio à gestão do projeto referente à garantia da qualidade e medição. Esses processos possibilitam maior visibilidade de como os artefatos são produzidos. � Nível G – parcialmente gerenciado: a implementação deve ser exe- cutada com cautela devido à mudança de cultura organizacional e à definição do conceito acerca do que é projeto para a organização. Veja, na Figura 4, os níveis de maturidade do MPS-BR. Figura 4. Os diferentes níveis de maturidade do MPS-BR. Fonte: Groffe (2013, documento on-line). Alguns benefícios da implantação do MPS-BR são: � o MPS-BR é mais adequado à realidade brasileira e mais acessível do que o modelo CMMI (Figura 5); � maior número de níveis: tem sete níveis de maturidade e a implantação é mais gradual e adequada a pequenas e médias empresas; � compatibilidade com CMMI, facilitando a obtenção do certificado; � as empresas são avaliadas a cada 2 anos para manter o certificado ou para evoluir ao próximo nível. 9Modelos de qualidade de software Identificação interna do documento Figura 5. Principais semelhanças entre os modelos CMMI e MPS-BR. Fonte: Franciscani e Pestili (2012, documento on-line). O plano de qualidade deve estabelecer as qualidades desejadas para o software e, também, descrever como elas serão avaliadas. Modelos dequalidade de software10 Identificação interna do documento FRANCISCANI, J. F.; PESTILI, L. C. CMMI e MPS.BR: um estudo comparativo. 2012. Disponível em: . Acesso em: 01 nov. 2018. GROFFE, R. J. Maturidade no desenvolvimento de software: CMMI e MPS-BR. 2013. Dis- ponível em: . Acesso em: 01 nov. 2018. PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software: uma abordagem profissional. 8. ed. Porto Alegre: Bookman, 2016. SOMMERVILLE, I. Engenharia de software. 9. ed. São Paulo: Pearson, 2011. Leitura recomendada STEFFEN, J. B. O que são essas tais de metodologias ágeis? 2012. Disponível em: . Acesso em: 01 nov. 2018. 11Modelos de qualidade de software Identificação interna do documento Identificação interna do documento Conteúdo: Identificação interna do documento Dica do Professor Seguir modelos de referência ajudam a manter a qualidade de produtos e processos. Implantar esses modelos requer mudanças na organização, não só nos processos, mas também na postura da equipe. Nesta Dica do Professor, você verá algumas dicas que vão tornar a empresa de software mais aderente ao CMMI ou MPS-BR. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://fast.player.liquidplatform.com/pApiv2/embed/cee29914fad5b594d8f5918df1e801fd/223d3c7054abe3cd26390fcab87b596b Exercícios 1) Na engenharia de software, quando se fala em satisfação de requisitos, normas de desenvolvimento documentadas e satisfação dos clientes quanto à entrega do que foi esperado, trata-se de: A) Análise de software. B) Engenharia de software. C) Qualidade de software. D) Métricas de software. E) Teste de software. 2) No que diz respeito à avaliação de qualidade de software, o conceito de corretude é: A) O esforço para aprender um programa, operá-lo, preparar a entrada e interpretar a saída dos dados. B) O esforço exigido para localizar e reparar erros em um programa. C) O esforço exigido para modificar um programa operacional. D) A medida com que um programa satisfaz sua especificação e cumpre os objetivos visados pelo cliente. E) A quantidade de recursos de computação e de código exigidos para que um programa execute a sua função. 3) No desenvolvimento de um software, a qualidade é um item de grande importância. Sobre as propriedades utilizadas para determinar a qualidade de um software, é correto afirmar que: A) não há preocupação com a facilidade de manutenção do software. B) não se inclui a confiabilidade esperada do software. C) mede-se, exclusivamente, a qualidade da documentação produzida para o software. D) verifica-se a satisfação de requisitos estabelecidos, incluindo o desempenho. E) não se abrange questões relativas à interface do software. 4) Analise as afirmativas abaixo e assinale a alternativa que corresponde às principais características do CMMI. A) Avaliar a qualidade do processo a partir da avaliação do nível de maturidade de diversas categorias contidas nele. B) Ser mais restrito que seu antecessor, CMM, estando confinado apenas à avaliação de processos relativos à engenharia de software. C) Adaptado para a realidade das empresas de desenvolvimento de software brasileiras. D) Ter como subproduto a pontuação IFPUG do software avaliado. E) Avaliar a qualidade do processo por meio da sua classificação em 6 níveis globais de maturidade. 1. 5) Analise as opções a seguir e marque a alternativa em que se apresentam apenas modelos de qualidade de software. A) CMMI, MPS.BR e COBIT. B) CMMI, COBIT e ISO9001. C) CMMI, MPS.BR, ISO9001 e COBIT. D) CMMI, MPS.BR e ISO9000-1. E) CMMI, ISO12207, ISO15504, ISO20000 e ITIL. Na prática Para estar no nível 3 de maturidade no modelo CMMI a empresa precisa adotar algumas medidas. Neste Na Prática, você verá quais são as medidas que Carlos, gestor da empresa Tecnolima, utiliza. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://statics-marketplace.plataforma.grupoa.education/sagah/b08b6760-2bf7-49bc-9d0e-0df012edb909/573c9ced-af5a-4313-abee-645f217a70ed.png Saiba mais Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor: Introdução ao gerenciamento da qualidade Neste artigo você vai aprender mais sobre as técnicas CMM, CMMI e ISO/IEC 9126. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. A importância da qualidade de software Assista ao vídeo a seguir para saber mais sobre os conceitos iniciais de qualidade de software. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. O que é qualidade de software e por que você precisa ter? Assista ao vídeo a seguir para saber mais sobre a importância da qualidade de software. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://www.devmedia.com.br/introducao-ao-gerenciamento-de-qualidade/33435 https://www.youtube.com/embed/ajNtM0CuIVM https://www.youtube.com/embed/TmH7Jeb89wY