Baixe o app para aproveitar ainda mais
Prévia do material em texto
Qualidade de Software Qualidade de Software Professor MSc. Adilson da Silva UNIDADE 1 e 2 • Desafio Colaborativo • Unidades • Material de quatro Unidades • Avaliações de quatro unidades • Web conferência • 1ª Web conferencia Unid I e II • 2ª Web conferência Unid III e IV • Dicas de Leitura • Dicas de Vídeo • Biblioteca • Prova Como funciona as disciplinas • Apresentar ao aluno os conceitos básicos de qualidade de software; • Compreender a importância da gestão da qualidade dentro da Engenharia de software; • Abordar os fundamentos de qualidade e metodologias para a gestão da qualidade do Software; • Conhecer os padrões de qualidade para processo e produto de software; • Compreender como garantir e controlar a qualidade de software. • Normas e organismos normativos • Organização Internacional de Normalização (ISO) • Capability Maturity Model Integration (CMMI) • Métricas: visão geral • Métricas aplicadas aos métodos ágeis Objetivos Conceitos “O conceito da qualidade tem hoje importância fundamental para alavancar a competitividade das empresas. Atualmente, a preocupação com a qualidade deixou de ser um diferencial competitivo e passou a ser um pré-requisito básico para participação no mercado. No setor de software não é diferente. A disseminação do uso do software em todas as áreas, envolvendo monitoração, controle e gestão de funções críticas, tem aumentado consideravelmente a importância da qualidade de software.” https://www.devmedia.com.br/qualidade-de-software-engenharia-de-software- 29/18209#:~:text=Qualidade%20de%20Software%20na%20Vis%C3%A3o,ao%20me smo%20tipo%20de%20produto. Conceitos • O que é qualidade? • Diversos autores definem a qualidade sob suas visões, por exemplo: • Juran diz que – “Qualidade é adequação ao uso”; • Philip Crosby define: “Qualidade é conformidade às especificações”; • Noriaki Kano propôs uma definição bastante difundida no ocidente, onde explica qualidade como – “Produtos e serviços que atendem ou excedem as expectativas do consumidor”. https://blogdaqualidade.com.br/o-que-e-qualidade/ https://blogdaqualidade.com.br/o-que-e-qualidade/ https://blogdaqualidade.com.br/o-que-e-qualidade/ https://blogdaqualidade.com.br/o-que-e-qualidade/ https://blogdaqualidade.com.br/o-que-e-qualidade/ https://blogdaqualidade.com.br/o-que-e-qualidade/ https://blogdaqualidade.com.br/o-que-e-qualidade/ https://blogdaqualidade.com.br/o-que-e-qualidade/ Conceitos • Mas veja uma definição encontrada no blog da qualidade e formulada pelo autor do artigo Fernando de Mello Batista. • “Qualidade é um conjunto de atributos que se refere ao atendimento das necessidades dos clientes e ao padrão de produtos e serviços disponibilizados por uma empresa”. https://blogdaqualidade.com.br/o-que-e-qualidade/ https://blogdaqualidade.com.br/o-que-e-qualidade/ https://blogdaqualidade.com.br/o-que-e-qualidade/ https://blogdaqualidade.com.br/o-que-e-qualidade/ https://blogdaqualidade.com.br/o-que-e-qualidade/ https://blogdaqualidade.com.br/o-que-e-qualidade/ https://blogdaqualidade.com.br/o-que-e-qualidade/ https://blogdaqualidade.com.br/o-que-e-qualidade/ • Qualidade de Software não é perfeição; • Qualidade de software é um processo que focaliza todas as etapas do desenvolvimento de um sistema e os componentes produzidos com o objetivo de garantir a conformidade dos processos e dos produtos, prevenindo e eliminando futuros defeitos. Conceitos • A preocupação nasceu na década de 90, com a abertura do mercado mundial, o advento da internet, o aceso à informação e a consequente integração dos softwares às nossas atividades diárias. • Exemplos de problemas ocorridos: • 1991 – Sistema telefônico da Califórnia, por causa de três linhas de código; • 1996 – Foguete Ariane 5 • 2013 – Sistema do Enem • 2016 – SISU Problemas com a Qualidade em softwares Conceitos Segundo a ISO/IEC 9126-1, publicada em 2003, Qualidade de software é a totalidade das características de um produto de software que lhe confere a capacidade de satisfazer necessidades implícitas e explícitas dos stakeholders. O que é ISO? A organização que fornece orientação, ferramentas e conceitos de qualidade para empresas é a ISO (International Standardization Organization ou Organização Internacional de Normalização, em português). Conforme a ISO, qualidade é a adequação para atender às exigências definidas pela organização em conformidade com a necessidade do cliente, interessado em um processo, serviço ou produto. Foi criada em 1947 e fica estabelecida em Genebra, na Suíça, e foi criada com o objetivo de desenvolver e promover normas internacionais para produtos e serviços que possam ser usados por todos os países do mundo. As normas são baseadas em práticas e conhecimentos do trabalho voluntário de especialistas em todo mundo. A ISO é composta por profissionais especializados no assunto. Qualidade na visão do usuário • Entende-se como qualidade de um produto seu grau de conformidade com os respectivos requisitos. • Um software de qualidade deve oferecer segurança nas transações, disponibilizar serviços essenciais, gerar competitividade das empresas, etc. • Deve estar em conformidade com especificações e padrões de desenvolvimento. Sendo assim, não basta dizer simplesmente que a qualidade de software é importante, é preciso: • Definir explicitamente o que realmente se quer dizer com qualidade de software; • Criar um conjunto de atividades que ajude a garantir que todo artefato resultante da Engenharia de Software apresente alta qualidade; • Realizar atividades de garantia e controle da qualidade de software em todos os projetos de software; • Usar métricas para desenvolver estratégias e aperfeiçoar a gestão da qualidade. Qualidade na visão do usuário • A qualidade de um produto, refere-se às características que o compõem e que o tornam capazes de satisfazer as necessidades do cliente. • A qualidade do processo refere-se ao grau em que um processo aceitável, incluindo medidas e critérios de qualidade, foi implementado e aderido para produzir os produtos de trabalho. Qualidade do produto e Qualidade do processo https://www.cin.ufpe.br/~gta/rup- vc/core.base_rup/guidances/concepts/process_quality_BA2B2D83.html#:~:text=A%20qualidade%20do%20processo%20refere,produzir%20os%20produtos%20de%20trabalho.&text=Todos%20os%20processos%20consistem%20em,e%20ati vidades%20do%20c%C3%B3digo%20extra. https://www.cin.ufpe.br/~gta/rup-vc/core.base_rup/guidances/concepts/process_quality_BA2B2D83.html https://www.cin.ufpe.br/~gta/rup-vc/core.base_rup/guidances/concepts/process_quality_BA2B2D83.html https://www.cin.ufpe.br/~gta/rup-vc/core.base_rup/guidances/concepts/process_quality_BA2B2D83.html https://www.cin.ufpe.br/~gta/rup-vc/core.base_rup/guidances/concepts/process_quality_BA2B2D83.html https://www.cin.ufpe.br/~gta/rup-vc/core.base_rup/guidances/concepts/process_quality_BA2B2D83.html https://www.cin.ufpe.br/~gta/rup-vc/core.base_rup/guidances/concepts/process_quality_BA2B2D83.html • Segundo Andrade, em seu livro Qualidade de software, publicado em 2015, “a qualidade do produto é profundamente afetada pela qualidade do processo de desenvolvimento, portanto a qualidade deve ser tratada juntamente ao processo, deve ser uma meta a ser alcançada e aprimorada ao longo do processo (p. 13).” Qualidade do produto e Qualidade do processo • Quando um projeto de desenvolvimento de software é iniciado, o maior desejo dos envolvidos é ter um produto com qualidade, com um valor justo e que fique pronto dentro do prazo estabelecido. • A utilização de metodologias pode auxiliar o gerente de projetos na condução e monitoramento das atividades. • Existem algumas metodologias para desenvolvimento de software que descrevem como fazer o gerenciamento de qualidade de um sistema dentro do processo de produção. AQualidade e as Metodologias O PMBOK é um guia internacional do conhecimento em gerenciamento de projetos, formulado pelo PMI (Project Management Institute), reconhecido por profissionais de diversas áreas como uma padronização que descreve métodos, processos e práticas para gerenciar projetos e que pode ser aplicada na maioria dos projetos. Define-se nele um projeto como sendo um esforço temporário empreendido para criar um produto, serviço ou resultado exclusivo. A Qualidade e as Metodologias - PMBOK https://www.devmedia.com.br/gerenciamento-de-qualidade-com-pmbok/29207 https://www.devmedia.com.br/gerenciamento-de-qualidade-com-pmbok/29207 https://www.devmedia.com.br/gerenciamento-de-qualidade-com-pmbok/29207 https://www.devmedia.com.br/gerenciamento-de-qualidade-com-pmbok/29207 https://www.devmedia.com.br/gerenciamento-de-qualidade-com-pmbok/29207 https://www.devmedia.com.br/gerenciamento-de-qualidade-com-pmbok/29207 https://www.devmedia.com.br/gerenciamento-de-qualidade-com-pmbok/29207 https://www.devmedia.com.br/gerenciamento-de-qualidade-com-pmbok/29207 https://www.devmedia.com.br/gerenciamento-de-qualidade-com-pmbok/29207 https://www.devmedia.com.br/gerenciamento-de-qualidade-com-pmbok/29207 A Qualidade e as Metodologias - PMBOK https://www.devmedia.com.br/gerenciamento-de-qualidade-com-pmbok/29207 O PMBOK traz ainda alguns conceitos muito importantes para a formação, garantia e melhoria contínua da qualidade, que vêm sendo estabelecidos há décadas. Alguns deles são: • O processo de qualidade independe das pessoas: Regra 85/15 (responsabilidade do gerente do projeto – 85%, responsabilidade de outros – 15%); • Ciclo PDCA (planejar, fazer, verificar e agir); • Trilogia da qualidade (planejar, controlar e melhorar a qualidade): a melhoria contínua referente ao produto ou ao processo deve ser analisada a todo o momento e não ser um evento isolado; • Qualidade é grátis: vem da conformidade com os requisitos, deve vir da prevenção e não deve variar de acordo com a variação do escopo; • Experimentação como medida de qualidade: produto à prova de erros; • Just in time: ajuda a não mascarar problemas no processo que são recorrentes; • Qualidade total: a qualidade deve estar presente nas áreas produtivas ou não da empresa; • Gold Plating: não entregar funcionalidades a mais, somente o que foi combinado. https://www.devmedia.com.br/gerenciamento-de-qualidade-com-pmbok/29207 https://www.devmedia.com.br/gerenciamento-de-qualidade-com-pmbok/29207 https://www.devmedia.com.br/gerenciamento-de-qualidade-com-pmbok/29207 https://www.devmedia.com.br/gerenciamento-de-qualidade-com-pmbok/29207 https://www.devmedia.com.br/gerenciamento-de-qualidade-com-pmbok/29207 https://www.devmedia.com.br/gerenciamento-de-qualidade-com-pmbok/29207 https://www.devmedia.com.br/gerenciamento-de-qualidade-com-pmbok/29207 https://www.devmedia.com.br/gerenciamento-de-qualidade-com-pmbok/29207 https://www.devmedia.com.br/gerenciamento-de-qualidade-com-pmbok/29207 Qualidade e as Metodologias - PMBOK O PMBOK apresenta 43 processo divididos em 5 fases: Iniciação: processo que autoriza o projeto ou fase. O grupo de iniciação contempla o termo de abertura do projeto e a identificação das partes interessadas; Planejamento: processo responsável por elaborar e documentar o trabalho do projeto. O planejamento incorpora todas as áreas de gerenciamento de projetos; Execução: processo responsável pela concretização dos planos do projeto. Fase que coloca o projeto para andar; Controle e monitoramento: processo responsável pela avaliação de desempenho e averiguação do projeto além de controlar e monitorar suas mudanças; Fechamento: processo responsável pelo encerramento formal do projeto. Nesta fase, são registradas as informações de erros e acertos para possíveis e novos projetos Qualidade no PMBOK O PMBOK divide o controle da Qualidade entre três processo divididos em três fases: Planejar o gerenciamento de qualidade • Quais são os requisitos e padrões dos produtos e do projeto? • Como eles podem ser satisfeitos? • As respostas devem considerar as expectativas, anseios e necessidades dos envolvidos, pontos importantes na definição do escopo e retomados nesta fase. Os parâmetros são normas internacionalmente reconhecidas, como a ISO 9001. • Planejar o gerenciamento de qualidade requer o atendimento às leis ambientais, estabelecimento dos critérios de aceitação do material comprado e do trabalho realizado, além do cuidado com a elaboração dos documentos passíveis de provar a excelência das aquisições, procedimentos e metodologias laborais. Qualidade no PMBOK O PMBOK divide o controle da Qualidade entre três processo divididos em três fases: Realizar a garantia da qualidade • Diferentemente da fase de controle, aqui não focamos na checagem, mas sim nos processos, responsáveis diretos pelo resultado final do projeto. Eles estão sendo devidamente realizados? Confira alguns exemplos práticos. • Certifique-se de que a limpeza do terreno e a terraplanagem foram feitas antes de iniciar uma obra. Etapas de montagem e preparo da comida em redes de fast-food precisam ser sequencial e rigorosamente seguidas, garantia de que o McLanche Feliz terá o mesmo sabor em qualquer unidade. https://www.projectbuilder.com.br/blog/gestao-por-processos/ Qualidade no PMBOK O PMBOK divide o controle da Qualidade entre três processo divididos em três fases: Controlar a qualidade • Essa fase é normalmente realizada por equipe especialmente designada, envolve testes, métricas e medições. As avaliações são feitas tanto em entregas finais quanto nas intermediárias e podem exigir reparos quando os resultados forem insatisfatórios — solicitações de mudanças, ações preventivas e/ou corretivas. • O controle de qualidade tem aplicação prática quando um designer faz impressões para ver se a tonalidade da cor no papel de parede corresponde aos requisitos do cliente. O desempenho de airbags para automóveis também precisa atender a critérios mínimos de segurança, assim como as rodas no teste de tração em veículos 4×4. https://www.projectbuilder.com.br/blog/dar-acesso-ao-cliente-seu-projeto-e-uma-boa/ A Qualidade no RUP O Rational Unified Process (RUP) é uma ferramenta que automatiza grande parte do processo de produção de um software. Trata-se de um processo configurável, que se adapta a pequenas equipes de desenvolvimento, bem como a grandes organizações de desenvolvimento. Apresenta 9 disciplinas divididas em quatro fases: Qualidade no RUP O gerenciamento de qualidade é feito para estas finalidades: Identificar indicadores adequados (métricas) com qualidade aceitável Identificar medidas adequadas a serem usadas na avaliação da qualidade Identificar e abordar adequadamente questões que afetam a qualidade o mais cedo e eficaz possível O gerenciamento da qualidade é implementado em todas as disciplinas, fluxos de trabalho, fases e iterações do RUP. Em geral, o gerenciamento da qualidade durante o ciclo de vida significa que você implementa, mede e avalia tanto a qualidade do processo como a do produto. Alguns dos esforços gastos para gerenciar a qualidade em cada disciplina estão realçados a seguir: Requisitos – É preciso entender com clareza todas as informações adquiridas na coleta, levantamento e especificação, buscando entender todos os requisitos com clareza; para avaliar o processo de desenvolvimento. Qualidade no RUP Análise e design – Inclui a aplicação de avaliações e testes no design do produto que será entregue, verificando se há alguma inconsistência com os requisitos; Implementação – Inclui verificar se os códigos estão seguindo os padrões determinados para futuras manutenções, bem como se estão de acordo com os requisitos e o design; Teste – É neste ponto que está centralizado o gerenciamento da qualidade, uma vez que a maior parte do trabalho engloba as três disciplinasanteriormente explicadas; Ambiente – Aqui é possível encontrar diretrizes sobre como configurar melhor o processo para atender às necessidades do ambiente do software que será instalado; Implantação– Inclui avaliar os arquivos executáveis, verificar se eles estão relacionados com requisitos levantados e se estão de acordo com o design construído; Gerenciamento do projeto – Fornece base para as revisões e auditorias, além de fornecer ferramentas para avaliar o processo de desenvolvimento. Qualidade na ISO As normativas ISO que definem a qualidade de software estão definidas na ISO/IEC 9126. No Brasil, essas normas estão definidas na NBR ISO/IEC 9126-1. Por meio da Associação Brasileira de Normas Técnicas (ABNT), são organizadas comissões de estudo que se baseiam nas normas estabelecidas pela ISO. A ISO 9126 estabelece um conjunto de normas para: •Processos: definição das normas e das etapas que compõem o desenvolvimento de um software; •Produtos: atributos que compõem a qualidade do software, dividindo-se em internos e externos; •Qualidade em uso: são definidas a aferição da qualidade na visão do usuário e a facilidade de uso e operação do sistema. Qualidade na ISO A ISO/IEC 9126 (NBR 13596) define que a qualidade de software deve ser dividida em seis amplas categorias. Este modelo tem como objetivo servir de base na avaliação de produto de software. Garantia da Qualidade X Controle da Qualidade • Em teoria, a diferença é que as atividades de garantia de qualidade são proativas e destinadas a impedir a produção de produtos não conformes. As atividades de controle de qualidade são reativas, destinadas a detectar e separar produtos não conformes usando mecanismos de inspeção e testes. • Na prática, a diferença é que a garantia de qualidade estabelece as regras e os padrões para atingir a qualidade do produto, e o controle de qualidade inspeciona e testa o produto em relação às regras e padrões predefinidos. . Garantia da Qualidade • Consiste de um conjunto sistemático e planejado de ações para determinar se as atividades estão de acordo com as políticas e processos planejados. Se o planejamento for seguido, o cliente adquire confiança nos produtos e serviços, os quais provavelmente estarão de acordo com suas necessidades (requisitos). • A responsabilidade pela garantia da qualidade em uma empresa ou empreendimento deve ser atribuída aos funcionários envolvidos com a implantação da política de qualidade. Garantia da Qualidade Garantir a qualidade de software envolve algumas atividades, tais como: Padrões: o IEEE, a ISO e outras organizações de padronização produzem diversos padrões para Engenharia de Software e seus os respectivos documentos, que podem ser adotados por uma organização de Engenharia de Software ou impostos pelo cliente. O papel da SQA é garantir que padrões adotados sejam seguidos; Auditoria: tipo de revisão efetuado pelo pessoal de SQA com o intuito de assegurar que as diretrizes de qualidade estejam sendo seguidas no trabalho de produção do software; Testes: o papel da SQA é garantir que os testes sejam planejados e conduzidos de modo que se tenha a maior probabilidade de alcançar seu objetivo; Gerenciamento de mudanças: a SQA garante que práticas adequadas de gerenciamento de mudanças tenham sido realizadas. Controle da Qualidade • Envolve a comparação de resultados com os padrões aplicáveis. • Qualquer desvio identificado na comparação e avaliação é passível de registro de não conformidade. • A não conformidade, assim que for identificada, deve seguir os passos descritos no plano para seu devido tratamento. O controle de qualidade permite assegurar que o produto funcione de forma correta (dentro dos padrões) e os requisitos sejam atendidos. Controle da Qualidade Responsabilidades usuais da área de Controle da Qualidade • Inspeção de Materiais • Manuseio e Armazenamento de Materiais • Material não conforme – Inspeção e Segregação • Aprovação de mudanças realizadas em produtos • Controle e Calibração de Dispositivos de Monitoramento e Medição • Inspeção e teste de produtos em processo • Inspeção Final do Produto • Monitoramento ambiental • Inspeção de Rotulagem Empresas de Normas As normas têm como principal objetivo tornar mais seguro, limpo e eficiente o processo de desenvolvimento, fabricação e etc. Elas tornam o comércio entre países mais justo; compartilha avanços tecnológicos; dissemina a inovação e protege o consumidor. Com isso, as normas asseguram todas as características desejadas em produtos e serviços, zelando pela qualidade, confiabilidade, segurança, intercambialidade, eficiência, respeito ao meio ambiente e baixo custo econômico. Empresas de Normas A normas desempenham um importante papel na contribuição para a grande gama de aspectos da sociedade, logo, notamos quando as mesmas estão ausentes Empresas – Ao adotar as normas, os fornecedores desenvolvem e oferecem produtos e serviços que contemplam as necessidades de cada setor. E ao utilizar normas internacionais, as empresas elevam sua capacidade de se destacar mundialmente no mercado, o que contribui para seu crescimento de forma geral; Inovadores – Com as terminologias, compatibilidade e segurança, as inovações aceleram a sua disseminação e implantação, pois seguindo tais itens é possível reduzir a margem de erro já que desta forma as inovações são apresentadas logo no início sem oferecer riscos e afins; Clientes – Se beneficiam da ampla gama de concorrentes quando os produtos e serviços são baseados em normas, o que garante a qualidade e durabilidade de determinados produtos, assim como suporte no caso de possíveis falhas; Empresas de Normas Governos – Prover bases científicas e tecnológicas para nutrir segurança, saúde e legislação ambiental contribui para o bom andamento da indústria e comércio; Países em desenvolvimento – O consenso mediante a eficácia e a necessidade das normas internacionais é uma fonte muito importante de conhecimento tecnológico, que define as características dos produtos e serviços que serão exportados. Isso exerce influência direta nas tomadas de decisões destes países, para que os mesmos evitem o desperdício dos seus recursos; Qualquer pessoa – As normas asseguram que ferramentas, transportes e máquinas em geral funcionem de maneira adequada, de acordo com o idealizado pelo fabricante, a fim de garantir qualidade de vida. Planeta – As normas sobre a qualidade da água, do ar, dos solos, a emissão de radiação, gases e outras diversas problemáticas ambientais, contribuem com as diligências na preservação do meio ambiente. Níveis de Normatização Figura 1. Pirâmide de níveis de normalização. Fonte: ABNT. Acesso em: 30/09/2019. Níveis de Normatização As normas são delimitadas pelo seu alcance geográfico, político ou econômico: • Nível internacional – Tem abrangência mundial estabelecida pela Organização Internacional de Normalização (OMC); • Nível regional/sub-regional – Estabelecida por um grupo de países ou região geográfica ou política. São representadas por organismos regionais, como a Associação Mercosul de Normalização (AMN); • Nível nacional – São normas elaboradas pelas partes de interesse (governo, empresas, indústrias e consumidores) e geridas por um organismo nacional de normalização, por exemplo: no Brasil temos a Associação Brasileira de Normas Técnicas (ABNT); • Nível de associação – São normas desenvolvidas por entidades técnicas, juntamente com seus associados, para facilitar transações entre si. Essas normatizações chegam a ser utilizadas de maneira ampla, se tornando referências em algumas modalidades de comércio; • Nível empresarial – Implementadas por um conjunto de empresas com o intuito de orientar a fabricação, compra e venda de seus produtos; Organização Internacional de Normalização (ISO) A ISO define as normas por comitê e cada comitê tem uma numeração,por exemplo: • ISO 9000 – Gestão da Qualidade; • ISO 14000 – Gestão Ambiental; • ISO 2600 – Responsabilidade Social; • ISO 31000 – Gestão de Riscos; • ISO 22000 – Gestão de Segurança Alimentar; A ISO 9000 foi desenvolvida para ajudar organizações na implementação e operação de sistemas eficazes de qualidade. Ela auxilia a empresa na seleção da norma mais apropriada para o seu negócio, assim como a sua utilização. • ISO 9000 - Fundamentos e vocabulário; • ISO 9001- Sistemas de gerenciamento da qualidade e requisitos; • ISO 9004 - Sistemas de gerenciamento da qualidade e guia para melhoria da performance; • ISO 19011 - Auditorias internas da qualidade. ISO/UEC 9126 A ISO/IEC 9126 (NBR 13596) define que a qualidade de software deve ser dividida em seis amplas categorias que têm como objetivo servir de base na avaliação de produto de software, conforme apresentado por Rezende (2005). CERTIFICAÇÃO E ADEQUAÇÃO Em diversos produtos e serviços, existem padrões estabelecidos por meio de estudos, testes e aferições, realizados pelos órgãos reguladores, como a ISO (PRESSMAN, 2011). As normativas da qualidade de software estão definidas na ISO/IEC 9126. No Brasil, essas normas estão definidas na NBR ISO/IEC 9126-1. Por meio da ABNT, são organizadas comissões de estudo que se baseiam nas normas estabelecidas pela ISO. • A ISO 9126 estabelece um conjunto de normas para: • Processos - São definidas a aferição da qualidade na visão do usuário e a facilidade de uso e operação do sistema (ARTERO, 2016). • Produtos - Estão definidos os atributos que compõem a qualidade do software, podendo ser dividido em: internos e externos, em que está descrito as formas de aferição dos atributos; • Qualidade em Uso - São definidas a aferição da qualidade na visão do usuário e a facilidade de uso e operação do sistema (ARTERO, 2016). Elaboração de Norma Uma nova norma é elaborada a partir de uma demanda, para isso é criado um documento técnico que pode ser apresentado por qualquer pessoa, empresa ou entidade que tenha o intuito de normalizar algo. Este documento é analisado para verificar se tal sugestão é viável e, então, o documento é enviado para um comitê técnico, no caso de não existir uma proposta para a criação de um. Sendo o assunto discutido de maneira ampla e com participação livre da sociedade, ele é possivelmente viabilizado. Em vias de ser submetida à consulta pública, a norma elaborada é editorada e recebe a sigla ABNT NBR e seu número para em seguida ser disponibilizada para consulta pública no site da ABNT, em que qualquer pessoa pode enviar comentários ou sugestões. Após esse período, a norma é homologada e publicada pela ABNT. CMMI Capability Maturity Model Integration (CMMI) ou Ciclo de Vida do Desenvolvimento de Software, o CMMI é um modelo de boas práticas de qualidade e maturidade no processo de desenvolvimento de um software. Foi criado pelo Software Engineering Institute (SEI) e fomentado pelo departamento de defesa dos Estados Unidos. O modelo CMMI tem como objetivo ofertar às organizações um conjunto de práticas para desenvolvimento e manutenção de serviços e produtos tecnológicos, podendo ser utilizado como um apoio nas ações de aperfeiçoamento da melhoria contínua em processos. O CMMI considera que existem níveis de maturidade para serem alcançados no processo de melhoria contínua, que são separados em cinco etapas (WAZLAWICK, 2013). CMMI Métricas: Visão Geral Como a produção de um software gera diversos artefatos, é possível utilizar os materiais gerados para fazer essas medições, a fim de checar a qualidade. Pressman (2011) destaca alguns princípios necessários para fazer medições em software: • Todos os envolvidos no projeto devem reunir dados para estimativa de desempenho; • É necessário coletar dados de performance referentes à melhoria do software; • É preciso considerar os projetos antigos como base para evitar os mesmos problemas e erros nos projetos futuros. Métricas: Visão Geral Dessa forma, o autor também destaca as vantagens das aplicações de métricas: Ajuda na verificação da qualidade do produto; • É possível verificar o desempenho da equipe do projeto; • Com base nos resultados das métricas, é possível fazer estimativas de tempo, custo e escopo; • Reforça a justificativa de aquisição de novos recursos a serem contratados e implantados no projeto. Métricas: Visão Geral Métrica de requisitos – Verifica se o software atendeu aos requisitos solicitados pelo cliente. Nesta medição, leva-se em consideração os requisitos levantados inicialmente e o que é apresentado na interface do sistema. Para medir, é feita uma contagem e são comparados o resultado do que usuário solicitou com o que foi atendido. Métrica de projeto UML – Essa métrica verifica o número de diagramas gerados, tanto comportamentais quanto estruturais (UML), que delineiam o software. Baseado no histórico de outros projetos, é possível calcular o escopo, o tempo e ainda garantir a qualidade para este novo projeto. Métrica de banco de dados – Essa métrica tem como objetivo avaliar o banco de dados físico e lógico. Com base no número de tabelas criadas, número de registros e número de colunas criadas, é possível medir a quantidade de bytes necessários para armazenamento dos registros. Essa métrica ajuda a saber qual período é necessário para a realização de um backup e o tamanho desse backup num determinado tempo de uso do sistema. Métricas: Visão Geral Métrica de codificação – Tem o objetivo de avaliar fisicamente o tamanho do código-fonte do software. Mede o tamanho através da quantidade de linhas do código-fonte, ou faz uma análise sobre a quantidade de comandos utilizados em cada linha. Métrica de performance – Avalia a performance do software quando está em execução. Nesta métrica, deve ser possível medir em milissegundos o tempo que leva para executar ou abrir uma determinada funcionalidade do sistema. Para isso, é interessante realizar testes de performances com ferramentas automatizadas. Métrica de implantação – Mede o esforço médio de cada tarefa de implantação, como por exemplo: configuração do sistema, instalação do servidor, do banco de dados e de bibliotecas. Métodos Ágeis • A metodologia ágil se consolidou nos últimos anos como uma alternativa para atender às demandas de clientes e projetos de forma dinâmica, flexível e com grande aumento de produtividade. Métodos Ágeis • “Ágil” se refere a um conjunto de “métodos e práticas baseadas nos valores e princípios expressos, o que inclui coisas como colaboração, auto-organização e equipes interdisciplinares” http://www.metodoagil.com/metodos-ageis/ Manifesto Ágil (Valores) • Indivíduos e interações => mais importantes que processos e ferramentas. • Software funcionando => mais importante do que documentação completa e detalhada. • Colaboração com o cliente => mais importante do que negociação de contratos. • Adaptação a mudanças => mais importante do que seguir o plano inicial. http://www.agilemanifesto.org Métodos Ágeis SCRUM • O Scrum é um framework de gerenciamento de projetos, da organização ao desenvolvimento ágil de produtos complexos e adaptativos com o mais alto valor possível, através de várias técnicas, utilizado desde o início de 1990 e que atualmente é utilizado em mais de 60% dos projetos ágeis em todo o mundo. FDD • Feature-driven development (FDD), ou Desenvolvimento Dirigido por Funcionalidades, é um método leve e iterativo para desenvolvimento de software. Criado por Jeff de Luca e Peter Coad, combina gestão de projetos com boas práticas de engenharia de software. https://pt.wikipedia.org/wiki/Feature_Driven_Development XP • O XP é um método de desenvolvimento de software leve, não é prescritivo e procura fundamentar as suas práticas porum conjunto de valores que serão vistos posteriormente no artigo. O XP, diferentemente do que muitos pensam, também pode ser adotar por desenvolvedores médios e não apenas por desenvolvedores experientes. • O objetivo principal do XP é levar ao extremo um conjunto de práticas que são ditas como boas na engenharia de software. Entre elas podemos citar o teste, visto que procurar defeitos é perda de tempo, nós temos que constantemente testar. https://www.devmedia.com.br/introducao-ao-extreme-programming-xp/29249 Quando as empresas adotam as metodologias ágeis, as métricas têm um papel importante; elas ajudam a equipe a obter um entendimento mais amplo do processo de desenvolvimento do software, ajudam a melhorar os acertos medem o desempenho e a eficiência das soluções. Com as métricas é possível acompanhar, monitorar e avaliar o sucesso ou a falha de vários processos de negócios. • Algumas métricas podem ser usadas nas metodologias ágeis. Podemos citar as principais, que são: •Sprint Burndown; •Release Burndown; •Velocidade da equipe; •Gráfico de controle; •Diagrama de fluxo cumulativo. MÉTRICAS EM MÉTODOS ÁGEIS PRÓXIMOS PASSOS • Padrões de projeto • Teste de software • Inspeção e revisão de software • MPS.BR – Melhoria do Processo de Software Brasileiro • Processos de gerência da qualidade do software • Melhorias de processos OBRIGADO Adilson da Silva adilson.silva@sereducacional.com Mestre OBRIGADO
Compartilhar