Normas, Organismos Normativos e Métricas Prof. Geiser Chalco Challco email: geiser@alumni.usp.br Slides not completely created by Chalco C. G. Slides based on Slides of Vasconselos A. (amlv@cin.ufpe.br). Sem: 2022-I PEX0198-Qualidade de Software 1 Revisão • Tópico 1: Conceito e Fundamentos da Qualidade • Tópico 2: Qualidade Total (QT) • • • • Qualidade de Produto Qualidade do Processo Conceito de QT = Controle Total + Garantia Total de Qualidade Gestão de Qualidade e o Grupo SQA (Software Quality Assurance) • Garantia de Qualidade - seguir clausulas e planos de qualidade • Controle de Qualidade – garantir que os objetivos são cumpridos • Normas, Organismos Normativos e Métricas (hoje) 2 Motivação • Um problema fundamental da qualidade de software é lidar com subjetividade da qualidade. • Assim, é preciso: • Comunicar de forma não ambígua as características de qualidade desejáveis; • Definir o grau das características esperados de modo que eles sejam entendidos por todos os envolvidos; • Definir valores quantitativos a serem respeitados por todos os envolvidos; • Delinear as estratégias de medição em relação às características. • Possibilitando um diagnóstico preciso da qualidade. Motivação • Há alguma forma de lidar com a subjetividade de modo que qualidade de software seja universal (entendido por todo o mundo)? • Especificações - um conjunto documentado de regras e diretrizes que definir qualidade sem ambiguidade e possibilitam medir ela de forma adequada. • Com o passo do tempo, especificações tornam-se normas quando é aprovado por um organismo normativo (de preferência, que seja Internacional). • Finalmente as normas alcançam o nível de padrão – quando elas são amplamente adoptadas por todo o mundo. 4 Normas 5 Normas “expectativas compartilhadas sobre o que constitui um comportamento apropriado mantido por uma comunidade de atores” [1] • Para a disciplina, o comportamento apropriado é a gerencia de qualidade (visando qualidade total) • Controle de qualidade + Garantia de qualidade • O compartilhamento das expectativas é realizado mediante especificações (regras e diretrizes documentadas) de qualidade [1] Global Trends. (2021). US-Backed International Norms Increasingly Contested (NIC-2021-02491; Emerging or Evolving Dynamics International System Level, p. 12). https://www.dni.gov/index.php/gt2040-home/gt2040-deeper-looks/future-of-international-norms Normas • As normas tornam-se base para: • Especificar produtos; • Organizar serviços; • Elaborar legislações em vários países. • Diversas empresas têm preocupação com padronização de serviços. • Exemplo: Em 1963, era preciso uniformizar a entrega de correios devido aos vários atrasos das correspondências. • Assim, a União Europeia definiram normas de entrega de correios Normas • As normas: • Surgem devido a necessidades; • Servem para solucionar problemas, enfrentados por um grupo de pessoas; • Podem ser estabelecidas de forma involuntária, quando as pessoas adotam o comportamento apropriado sem coerção e de forma natural; • Podem ser estabelecidos por razões comerciais e/ou governamentais, sendo assim definidas por leis regulamentadas. • Exemplo: Normas definidas pela ISO, ABTN. Tipos de normas • “de facto” quando a especificação alcança aceitação e uma posição dominante por costume (ou convenção) na sua aplicação prática. • Esse tipo de normas não são ordenadas por lei como regulamento • “de jure” quando a especificação, independente de ser ou não aplicada na prática, ela é emitida por uma entidade governamental com caractere de regulamentador. • Esse tipo de normas correspondem às que devem ser executados por lei. 9 Organismos Normativos 10 ISO: International Organization of Standardization • A ISO nasceu numa conferência em Londres, no ano de 1946. • Foi composta por duas organizações, que já existiam: • ISA (International Federation of the National Standardizing Associations); • UNSCC (United Nations Standards Coordinationg Comittee). • O nome do organismo é palavra grega ISOS, que significa “IGUAL”. • Inicialmente, a ISO produzia “recomendações” e não normas. • As recomendações ofereciam uma base comum para permitir consumidores encontrar compatibilidade entre diferentes tecnologias e produtos • Permitiam a eles a julgar a qualidade dos produtos e definir critérios em contratos e negociações. ISO: International Organization of Standardization • Em dezembro de 2004, a ISO chegou a 14.941 recomendações que se tornaram documentos internacionais de padronização. • Participação de mais de 150 países e 50 mil especialistas. • Várias áreas foram afetadas pelas documentações da ISO. • • • • • • Tecnologia; Construção; Eletrônica; Petróleo; Sistemas de saúde; Entre outros. ISO: International Organization of Standardization • ISO trabalha em diferentes comitês técnicos. • ISO/IEC JTC 1 (Joint Technical Commitee e International Electrotechnical Commission) – 1987 – dedicado a desenvolver padrões relacionados com TI • • • • • • • SC-6: Telecommunications and information exchange between systems SC-7: Software and systems engineering SC-22: Programming languages, their environments and system software interfaces … SWG-2: Directives SWG-6: Management ... • ISSO/TC 1 Screw threads (Roscas de parafuso) • ... SC: Subcomitê ; SWG: Subgrupo de trabalho 13 ISO/IEC JTC 1 • A ISO/IEC JTC 1 é o comitê responsável pela criação de normas relacionadas com a Tecnologia da Informação. • Ele define normas que abrangem: • • • • Projeto e Desenvolvimento de Sistemas; Ferramentas de TI; Qualidade, Desempenho, Segurança e Portabilidade de Sistemas; Validação de ferramentas, ambientes e vocabulário. A ISO/IEC JTC 1 e Normas de Qualidade Software product quality Software process quality 15 ISO/IEC 25021 - Quality measure elements ISO/IEC 25020 - Measurement reference model ISO/IEC 25001 - Planning and management ISO/IEC 25020 - Quality measurement framework ISO/IEC 25021 - Quality measure elements ISO/IEC 25012:2008 - Data quality model ISO/IEC 25011 - Service quality model ISO/IEC 25010 - SW Quality model ISO/IEC 9126 - Product quality 1991 ISO/IEC 25001 - Planning and management ISO/IEC 9126 - Quality model ISO/IEC 25000 - External metrics - Terms and definition - Internal metrics - General guide - Quality in use metrics - Reference models 2001 2005 2007 2008 ISO/IEC 25000 - Terms and definition - General guide - Reference models 2011 2012 2014 2017 2019 ABNT: Associação Brasileira de Normas Técnicas • A ABNT é o órgão brasileiro responsável por normas de qualidade. • Fundada em 1940 (seis anos antes da ISO). • Representa a ISO no Brasil. • Possui comissões que trabalham na preparação de diversas normas, publicadas para diferentes áreas de desenvolvimento, tais como: • • • • Mineração; Construção Civil; Computadores e processamento de dados; Entre outros. ABNT: Associação Brasileira de Normas Técnicas • ABTN é organizado e comissões. • CB-01: Mineração e Metalurgia; • CB-02: Construção Civil; • ... • CB-021: Tecnologias da Informação e Transformação Digital – incorpora as comissões de CEE-078 (Informática em Saúde), a CEE-126 (Ergonomia da Interação Humano-Sistema) e a CEE-307 (Blockchain e Tec. Distribuídas) • 021:000.007 Engenharia de Software e Sistemas • 021:000.027 Técnicas de Segurança • 021:000.031 Identificação automática e técnicas de captura de dados • ... 18 ABNT: Associação Brasileira de Normas Técnicas • O trabalho da ISO restringe-se à elaboração de normas. • A ABNT se dedica a realizar certificação além do trabalho normativo • Verifica a implantação e uso das normas nas empresas. • As certificações envolvem a participação de um organismo ou empresa externa, devidamente regulamentada ou credenciada. • É preciso atestar que há adequação da norma; e • É preciso também inspeção de um auditor para garantir conformidade da norma pela empresa. Certificação e adequação • A partir dos 1990s, certificação tornou-se modismo (consumidores se viram bombardeados com propagandas de empresas ostentando a certificação ISO9000 – chamado ISO9001 a partir de 2000) • Adequação: Colocar em pratica o que é proposto pela norma • Certificação: Confirmação por um organismo/entidade externo de que se segue e atende os requisitos da norma. 20 Certificação e adequação • Para que a certificação aconteça, precisa-se a adequação da norma. Ao se adoptar a norma, deve-se efetuar o processo seguinte: Definição do escopo Pessoas e sectores envolvidos Diagnóstico Planejamento e documentação Gestão de transição Correções 21 Certificação e adequação • Para que a certificação aconteça, também precisa-se conformidade da norma – adopção adequada da norma pela empresa. • Diferença entre o adotado e o normalizados é chamada de não-conformidade • Assim, na certificação são realizar pré-auditorias e auditorias Pré-auditoria Relatório de não conformidade Correções Auditoria Recomendações Relatório de não conformidade 22 O por que da certificação da qualidade? • Não basta que a qualidade exista, ela deve ser reconhecida; • Deve existir uma certificação oficial emitida com base em um padrão; • As certificações são dadas por instituições competentes e recomendasse que sejam adoptadas normas internacionais. • • • • • Essas normas garantem a confiabilidade do produto; Reduzem custos e evitar desperdícios e retrabalhos; Implementar e utilizar práticas reconhecidas internacionalmente; Estabelecer confiança no relacionamento com o cliente; Servem como cartão de visita para o mercado internacional. Acerca das certificações • As certificações podem ser de toda empresa ou ainda pontuais • E.g. Uma empresa que exibe o selo de “ISO 9000” pode estar apenas se referindo à especificando um produto, parte dele ou setor apenas. • A certificação é válida apenas por num dado período de tempo. • Continuamente são realizadas vistorias e auditorias. • Existe pressão do mercado em torno as certificações. • Por exemplo, várias empresas negociam com fornecedores certificações em relação a uma dada norma. INMETRO (Instituto Nacional de Metrologia, Normalização e Qualidade Industrial) • O INMETRO foi criado em 1973 para dedicar-se a observar normas relacionadas às medições. • Assim, a ABNT é credenciada pelo INMETRO para fazer “certificações de empresas em normas de qualidade”. • Das competências e atribuições do INMETRO, destacam-se: • Verificar normas que se refere às unidades de medida, métodos de medição, medidas materializadas, instrumentos de medição e produtos pré-medidos; • Manter e conservar os padrões das unidades de medida • Fomentar a gestão da qualidade nas empresas brasileiras Métricas Métricas e Medição do Software 26 Métricas • Definição (IEEE, 1990) “Medida quantitativa do grau que um sistema, componente ou processo possui um determinado atributo” • Forma quantitativa de avaliar a qualidade • As métricas são usadas como indicadores (não verdades) • Ajudam na tomada de decisão IEEE. (1990). IEEE Standard Computer Dictionary: a compilation of IEEE standard computer glossaries. New York: IEEE 610. 27 Métricas • Características de boas métricas • • • • • • Cálculo simples (fácil de calcular) Satisfazem noções intuitivas do atributo (não depende de variações) Não ambígua (claridade no significado do valor) Consistente em seu uso de unidades e dimensões (entre 1 ou 2 dim.) Independente de linguagem de programação (implementação) Mecanismo efetivo para informação sobre qualidade (útil) 28 Métricas: Tipos de métricas • As métricas podem ser comumente divididas em : • Métricas de produto: provêm indicadores para avaliar as características de qualidade do software como um produto. • Métricas do processo e métricas de projeto • Métricas de processo: provêm indicadores para ajudar à melhora dos processos no ciclo de vida do software. • Métricas de projeto: provêm indicadores usados pelos gerentes para adaptar fluxos de trabalho em projetos. 29 Métricas: Tipos de métricas • Métricas também podem ser classificadas como diretas ou indiretas • Métricas diretas (fundamentais ou básicas): são medidas realizadas em termos de atributos diretamente observados; • Exemplo: Complexidade ciclomática. • Métricas indiretas: são medidas obtidas por derivação de outras medidas, pelo geral a partir de medidas diretas. • Exemplo: Analisabilidade (medida indireta) - esforço para diagnosticar deficiências, falhas, ou partes a serem modificadas para corrigir problemas • Número de linhas de código (medida direta) • Número de filhos nas classes (medida direta) 30 Métricas: Tipos de métricas • Métricas que também são classificadas como estáticas ou dinâmicas • Métricas estáticas: métricas que não precisam da execução do software para sua atribuição. • Exemplos: • Número de linhas de código (LoC) • Pontos de função • Pontos de usuário • Métricas dinâmicas: métricas que precisam da execução do software para sua atribuição. • Exemplo: tempo de carregamento de uma página 31 Exemplo de Métrica: Linhas de Código (LoC) • Vantagens • Fácil de medir • Muitos trabalhos sobre o assunto • Algumas métricas empregam LoC para normalização de outras • Exemplos: erros por KLOC, custo por KLOC • Alguns principais problemas nas medidas de LoC (uso discutível) • Dependente da linguagem de programação • Produtividade com LOC penaliza bons designs Exemplo de Métrica: Pontos de função • É uma medida do tamanho funcional do software • Permite realizar estimativas do software antes de sua implementação • Análise de custos e recursos necessários do software • Estimativa de complexidade do software • Predizer o número de componentes e/ou linhas de código necessários • Os pontos de função são baseados na medição de: • Dados necessários • Transações 33 Medição dos Pontos de Função Medir funções de transações Obter documentação disponível Determinar escopo e fronteira do sistema Calcular tamanho funcional Documentar e reportar Medir funções de dados 34 Medição das funções de dados • Identificar grupos lógicos de dados ou informações de controle • Arquivo de lógica interna (ILF): dentro do escopo do software • Arquivo de interface externa (EIF): fora do escopo do software, mas que são referenciado pelo software ou mantido por outro software • Exemplo: loja virtual ILF EIF Pedido Venda Categoria Produto Cliente 35 Medição das funções de dados • Complexidade dos arquivos lógicos internos (ILF) e externos (ELF) 36 Medição dos Pontos de Função Medir funções de transações Obter documentação disponível Determinar escopo e fronteira do sistema Calcular tamanho funcional Documentar e reportar Medir funções de dados 37 Medição de funções transacionais • Definição de processos elementares • A menor unidade de atividade • Tipos: • Entrada externa: processa dados ou informações de controle enviada externamente • Consulta externa: envia para fora da fronteira dados ou informação de controle • Saída externa: similar a consulta externa, mas inclui lógica adicional de processamento • O cálculo matemático cria dados derivados, mantém arquivo de lógica interna e/ou altera o comportamento do sistema 38 Exemplo: loja virtual Consulta externa Entrada externa Editar produto Procurar produtos Informar dados de compra Loja Adicionar produto na compra Emitir relatórios de venda Ver dados do cliente Emitir nota fiscal Saída externa 39 Medição de funções transacionais • Complexidade de processos de entrada externa 40 Medição de funções transacionais • Complexidade de processos de consulta externa e saída externa 41 Medição dos Pontos de Função Medir funções de transações Obter documentação disponível Determinar escopo e fronteira do sistema Calcular tamanho funcional Documentar e reportar Medir funções de dados 42 Calcular Tamanho Funcional • Fórmula empírica • Existem diversas organizações que definem o método de medição • A formula varia dependendo se é de: • Desenvolvimento • Projeto de melhoria • Ou se já foi feito um projeto de melhoria • Alguns padrões ISO • • • • • ISO 20926 (IFPUG – International Function Point Users Group) ISO 24570 (NESMA - Netherlands Software Metrics Association) ISO 20968 (MRKII) ISO 29881 (FISMA) ISO 19761 (COSMIC) • Ferramenta online: https://w3.cs.jmu.edu/bernstdh/web/common/webapps/oop/fpcalculator/FunctionPointCalculator.html FP = ∑(tam_func_de_dados) + ∑(tam_func_de_transacional) 43 Calcular Tamanho Funcional • Considera a influência de 14 características • Exemplo • • • • Processamento de dados distribuídos Desempenho é critico Facilidade de operação e instalação .... • O grau de influência (GI) de cada característica é de 0 ate 5 • O valor é ajustado em +/- 35% Adj.FP = FP*[∑(GIi)*0.01 + 0.65] 44 O que mais se pode fazer com PF • Estimar a carga de horas de trabalho com base nas LoC por PF https://www.qsm.com/resources/function-point-languages-table • Calcular homem-hora à Histórico da empresa 45 Pontos de Função: ISO20926 (IFPUG) • O manual da IFPUG detalha como contar PF • Manual é como medir PF evitando o máximo possível de decisões subjetivas • Problemas e críticas • Apesar das regras, existe alguma subjetividade • Fórmula empírica • O número não tem um significado real • Necessário mapear linhas de código com carga de horas de trabalho, LoC, e produção de LoC em pessoas/mês 46 License • These slides are shared under a Creative Commons License. Under the following conditions: Attribution, Noncommercial and Share Alike. • See further details about this Creative Commons license at: https://creativecommons.org/licenses/by-nc-sa/3.0/ • Slides not completely created by Chalco C. G. Slides based on Slides of Vasconselos A. (amlv@cin.ufpe.br). 47 Referências • ANSI/IEEE An American National Standard, IEEE Standards for Software Reviews and Audits. ANSI/IEEE 1028 (2008) • Fagan, M. E. (2001). Advances in software inspections. In Pioneers and Their Contributions to Software Engineering (pp. 335-360). Springer. • McConnell, S. (2005). Code Complete: Um guia prático para a construção de software. Bookman. • IEEE. (1990). IEEE Standard Computer Dictionary: a compilation of IEEE standard computer glossaries. New York: IEEE 610. • ISO/IEC 20926. (2009). Software and Systems Engineering, Software Measurement, IFPUG Functional Size Measurement Method, Practices Manual. • ISO/IEC 25010. (2011). Software Quality Requirements and Evaluation (SQuaRE), the ISO 25000 series. Software Engineering • Pressman, R. S., & Maxim, B. R. (2021). Engenharia de software: Uma abordagem profissional. 9ª edição. McGraw Hill Brasil. 48