Olá sejam bem-vindos ao canal engenharia de software com ênfase o ML eu sou o professor J Denis Gets e eu já atuo na área de modelagem de software há vários anos eu tenho quatro livros publicados sobre o assunto e eu já ministrei diversas palestras e cursos técnicos sobre modelagem de software utilizando a linguagem ML na aula de hoje eu vou dar continuidade ao tema sobre qualidade software dessa vez falando sobre organismos normativos e as normas de qualidade ISO 25. 000 a ISO Square então Eh vamos iniciar a nossa aula então como eu falei essa vai ser a nossa segunda aula sobre qualidade de software dessa vez eu vou abordar Então os organismos normativos e as normas de qualidade da ISO 25000 eh Então vamos começar falando sobre organismos normativos organismos normativos são instituições são organizações que normas que criam padrões nacionais ou internacionais que estabelecem regras diretrizes sugestões de como determinados procedimentos devem ser realizados no caso nós vamos nessa aula nos concentrar em normas para qualidade de software Mas nós vamos falar sobre alguns Alguns organismos normativos que existem mundialmente então um dos mais conhecidos é a ISO barra IEC que é a que significa International organization for standardization bar International electrotechnical commission que significa eh organização internacional para padronização Barra comissão eletrotécnica internacional Na verdade são duas instituições dois organismos mas que eles costumam trabalhar em conjunto para criar normas relacionadas à qualidade e segurança de software como por exemplo a ISO 25. 000 a ISO bar IEC 25.
000 que foca na qualidade do produto de software e nós temos também a instituição i3e que significa institute of Electro and Electronics engineers ou Instituto de Engenheiros elétricos e eletrônicos que ela estabelece normas que são bastante adotadas na área de engenharia de software como por exemplo a I3 830 que foca na especificação de de requisitos de software que estabelece normas para especificação de requisitos de software e aí 3 12207 que enfoca o ciclo de vida do software nós temos também a nist a National institute of standards and technology que é uma instituição americana significa fica Instituto Nacional de padrões e tecnologias que ela foca principalmente em normas de segurança de Tecnologia de Informação e a sua norma mais conhecida é a nist Cyber Security Framework que é voltada para cibersegurança Ah nós temos a anzi que significa American National standards institute o Instituto de padrões nacionais americanos que com o nome diz é uma instituição eh norte-americana Então ela atua Principalmente nos Estados Unidos e na verdade com relação à qualidade de software ela não propõe tanto normas mas apoia a adoção de normas como as da i3e e da ISO nós temos também a bsi Ou seja a brid standards institution ou instituição de padrões britânica que nós percebemos que é um organismo ã de padrões Nacional do Reino Unido que ela é conhecida principalmente pelo padrão BS 7925 que é voltado para estabelecer normas para testes de software e nós temos a etsi que significa European telecommunications standards institute o Instituto de padrões de telecomunicação europeu como o nome já diz ela está localizada na Europa e estabelece padrões para interoperabilidade e segurança de software voltado para telecomunicações Ah então as suas normas mais conhecidas são as voltadas para sistemas de comunicação móvel que estabelece as normas para a comunicação 3G 4G 5g e 6G Ahã nós temos ainda a otan que é uma organização bastante conhecida otan significa organização do tratado do Atlântico Norte que é uma organização político-militar de defesa que ela adota as normas como a a aqap ou a oq significa quality assurance ou publicações de garantia de qualidade aliadas Então essa Norma ela tenta padronizar requisitos de qualidade para software e sistemas relacionados a ambientes de defesa então Tent estabelecer como definir a qualidade como medir a qualidade de softwares para ambientes de defesa nós temos também aomg que significa Object Management group ou grupo de gerenciamento de objetos que ela define uma grande quantidade de padrões Como por exemplo o padrão uml que significa unified Modern language ou linguagem de modelagem unificada que é linguagem padrão de modelagem adotada pel pela engenheiria de software ela também define o padrão BPMN o BPM que significa Business process Model Ann notation que é modelo e notação de processo de negócio e várias outros vários outros padrões como o padrão corba cwm mof entre outros Eh agora nós vamos falar sobre a norma ISO IEC 25000 também conhecida como Square o Square é abreviatura de software product Quality requirements and evaluation ou requisitos e avaliação de qualidade produto de software então a ISO 25000 na verdade ela se divide ou ela abrange uma grande quantidade de normas internacionais que são voltadas para estabelecer e medir a qualidade de produtos de software Então ela tenta criar ã diretrizes e modelos que ajudem a garantir a qualidade e medir essa qualidade com relação a muitos aspectos do ciclo de vida de desenvolvimento de software Eh vamos falar um pouquinho sobre os benefícios e importância da ISO 25000 da ISO Square Então ela ajuda a garantir a consistência e clareza em como a qualidade será avaliada e ela oferece uma abordagem estruturada que permita identificar medir e melhorar aspectos de qualidade de um produto de software Além disso no momento em que ela define critérios Claros de qualidade e critérios claros para métodos de avaliação ela também permite uma melhoria na comunicação entre a equipe de desenvolvimento os clientes e outras partes interessadas Lembrando que parte interessada é qualquer pessoa que será afetada pelo software ou tem interesse no desenvolvimento de software ou afeta o desenvolvimento desse software Ah então vão desde usuários Chaves usuários que tem tem bastante conhecimento sobre o domínio do problema e tem um certo poder de decisão até os usuários finais que simplesmente terão que utilizar o software bom mas esses esses critérios eles contribuem paraa comunicação entre os desenvolvedores e as partes interessadas ajudam a alinhar suas expectativas e garantir que os produtos finais realmente atendam aos requisitos esperados Ahã com relação à aplicação da ISO Square no ciclo de vida do software esse as isos essas normas esse conjunto de normas são utilizadas desde as etapas iniciais do projeto onde são enfocados os requisitos de qualidade requisitos de qualidade podem ser diversos e estabelece O que é considerado qualidade ou que qual é o nível de esperado de qualidade para determinados requisitos esses requisitos vão desde a qualidade de especificação eh dos requisitos do software até a qualidade do projeto até a qualidade do código cobrindo diversos requisitos não funcionais como desempenho portabilidade escalabilidade confiabilidade manutenibilidade [Música] usabilidade entre outros então eles vão desde as etapas a Square é utilizada desde as etapas iniciais do projeto passando pela avaliação dos produtos finais e a implementação de melhorias relacionada à evolução então a essa essas normas elas são essenciais para empresas que buscam certificações de qualidade como cmmi ou msbr e o seu alinhamento com as melhores práticas globais de desenvolvimento e qualidade de software Ah então como eu falei a ISO 25000 na verdade é uma família de normas então AL engloba as normas 25. 010 que foca no modelo de qualidade do produto e qualidade em uso do produto a 25. 12 que enfoca o modelo de qualidade de dados a a série 25.
20 A 25. 29 que leva em consideração medidas e avaliação de qualidade a 2. 030 que enfoca em requisitos de qualidade e a série 25.
040 2545 que que trabalha com o processo de avaliação de qualidade eh é importante eh lembrar que as normas Square na verdade elas não são gratuitas elas são pagas ela a ISO ela fornece alguns documentos hum relativamente superficiais sobre h a essas ISO Mas se nós quisermos ver detalhes sobre elas eh é necessário comprar o acesso a esses documentos certo há uma parte deles está disponível mas de forma resumida certo para nós podermos nos aar aprofundar seria necessário comprar eh o acesso a esses padrões o acesso a essas normas Mas nós vamos falar à brevemente sobre cada uma dessas ISO considerando que H uma maior profundidade Como já foi falado eh é necessário para ter uma maior profundidade adquirir pagar por acesso a essa informação bom então nós vamos falar sobre a ISO 2510 cuja última versão É bem recente é a 2023 ela fornece uma base para avaliar a qualidade do software ela tem dois ela se divide em dois grupos uma enfocando o modelo de qualidade do produto e a outro enfocando a qualidade em uso Ah o primeiro grupo foca nove características de qualidade interna e externa do software e o segundo Grupo Cinco características de qualidade em uso e asas características elas servem como base para estabelecer métricas e critérios de avaliação para analisar a qualidade do produto e melhorar a qualidade do produto do software Então vamos falar sobre as nove características da relativas à qualidade interna externa do Sol bom elas cobrem funcionalidade desempenho eficiência compatibilidade usabilidade confiabilidade proteção e ou segurança manutenibilidade portabilidade e sustentabilidade vamos falar um pouquinho sobre cada uma delas então a característica de funcionalidade ela é avaliada considerando a capacidade do software atender a requisitos funcionais específicos Lembrando que requisit exito funcional é uma funcionalidade um serviço uma função que o software oferece a seus usuários com relação à característica de desempenho e eficiência essa Norma ela considera a rapidez de resposta às solicitações dos usuários e como os recursos do sistema são utilizados com relação à compatibilidade eh ela é mais voltada para sistemas integrados mas pode ser aplicada a pratical ente qualquer sistema que interaja com outros softwares outras bibliotecas outros pacotes e leva em consideração a capacidade de interoperabilidade e coexistência entre vários softwares integrados ah determina o quão compatíveis esses softwares são obviamente eles devem ser o mais compatíveis possíveis possível para que eh eles possam se integrar ã há uma outra característica é a de usabilidade que leva em consideração a capacidade dos usuários utilizar o software de maneira intuitiva e fácil além de também cobrir questões de acessibilidade e inclusão para pessoas que Talvez tenham eh algum tipo de deficiência nós temos a característica de confiabilidade que leva em consideração a capacidade do software operar sem que falhas ocorram ou se ocorrerem a capacidade dele Seguir funcionando apesar da dessas falhas e conseguir eh corrigir essas falhas o mais breve possível nós temos a característica de proteção e segurança proteção barra segurança que na verdade leva em consideração a capacidade do software eh suportar ataques e ameaças Isso inclui proteção de dados e e privacidade esses dados nós temos a característica de manutenibilidade que capacidade do software H ser alterado atualizado adaptado e evoluído sem produzir contraindicações de manutenção ou seja que outras partes do software deixem de funcionar então Eh nesse quisito se considera quão fácil é manter e evoluir o software uma outra característica é de portabilidade Ou seja a capacidade do software ser executado em diversas plataformas diversos ambientes diversos sistemas operacionais e Finalmente nós temos a característica de sustentabilidade que leva a consideração em prática sustentáveis ele considera quão Qual é o recurso Qual é o impacto ambiental que os recursos computacionais eh necessários ao funcionamento do software causam no meio ambiente ã e nós temos as características de qualidade em uso que são eficácia eficiência satisfação prevenção de riscos e cobertura de contexto vamos falar um pouquinho sobre cada uma delas a característica de eficácia leva em consideração a capacidade do usuário Alcançar objetivos com precisão e completude a característica de eficiência leva em consideração Qual a quantidade de recursos gastos com relação ao tempo para realizar cada tarefa e a característica de satisfação o nome já diz leva em consideração a satisfação do usuário leva em consideração a experiência do usuário o quão feliz o quão engajado o qu quão satisfeito ele fica em utilizar o software Além disso nós temos a a característica de prevenção de riscos que leva em consideração como o software é capaz de evitar impactos negativos que possam eh causar problemas ao software então leva em consideração eh a que esses riscos ocorram ou Cao causo causo ou caso eles ocorram como software capaz de mitigar a o seu Impacto então isso leva em consideração segurança e proteção em diversos contextos Finalmente nós temos a cobertura de contexto que leva em consideração a adaptabilidade do software de que maneira o software é capaz de se adaptar a ambientes diversos e situações de uso diversas agora nós vamos falar sobre a ISO 25. 12 cuja última versão é a de 2008 que enfoca no modelo de qualidade de dados Então ela descreve características voltadas para a qualidade de dados que se dividem em duas categorias as categorias inerentes e as categorias Ah e as aliás as que encob que envolvem duas categorias que englobam características inerentes e características dependentes do sistema as características inerentes elas levam em consideração a qualidade dos dados como eles são de maneira independente do contexto em que eles são usados já as características dependentes do sistema leva em consideração a qualidade dos dados considerando o contexto em que o sistema utiliza esses dados Então vamos falar sobre as características inerentes as características inerentes elas cobrem precisão atualidade completude consistência credibilidade e facilidade de entendimento com relação à precisão essa característica ela reflete quão corretos e livres de erros os dados estão com relação a uma determinada fonte ou um determinado padrão a característica de atualidade determina se os dados eles estão atualizados com relação ao momento atual de referência com relação à completude essa característica tenta determinar se todos os dados necessários Estão realmente presentes já a característica de consistência ela determina a uniformidade e a coerência entre os dados a credibilidade leva em consideração a confiabilidade eh dos dados com relação à sua origem ou a sua qualidade e a facilidade de entendimento se refere a a a clareza e simplicidade dos dados quão fácil eles são de eh serem compreendidos pelos usuários já as características dependentes do sistema elas cobrem acessibilidade conformidade eficiência portabilidade precisão de representação recuperabilidade segurança rastreabilidade relevância ã e nós vamos falar um pouquinho sobre cada uma delas então a acessibilidade leva em consideração a facilidade com que os usuários que TM autorização obviamente conseguem acessar os dados a conformidade verifica se os dados eh seguem normas e e regulamentações estabelecidas garantindo o cumprimento de determinadas políticas de dados a eficiência ela avalia o desempenho de do acesso e da da manipulação dos dados no sistema a portabilidade determina quão fácil é que os dados possam ser transferidos entre sistemas a precisão de representação ela tenta garantir que os dados sejam apresentados em formato adequado e claro para o uso a que ele se destina a a recuperabilidade ela mé a capacidade de dados perdidos ou corrompidos serem operados a segurança ela tenta garantir que eh usuários não autorizados não possam acessar eh determinados dados e garante que esses dados permaneçam íntegros a rastreabilidade ela determina a capacidade de se rastrear a origem dos dados e o conjunto de alterações que esses que esses dados sofreram ao longo do uso e a relevância determina quão úteis esses dados Realmente são e como eles podem ser aplicáveis ao contexto de uso essa é uma medição um pouco mais complexa Na minha opinião Ah agora nós vamos falar da série 2520 a 2529 na verdade a série vai até a 25. 000 e 24 da 25.
025 a 28 elas ainda estão no desenvolvimento depois ela pula para 25. 29 eh então Eh essa série ela estabelece normas específicas para que permitam determinar que permitam aliás que permitam avaliar a qualidade do software então elas estabelecem padrões de medidas de qualidade então a ISO 2520 ela tenta fornecer orientações Gerais para que possa se eh estabelecer o processo de como medir a qualidade do Isso inclui diretrizes ou seja instruções sobre Como selecionar e como aplicar os métodos de medição a a sua última versão é a de 2019 já ISO 2521 ela introduz elementos de de medida de qualidade que incluem medidas de qualidade base e medidas de qualidade derivadas a partir das medidas de qualidade base ah essas medidas elas procuram facilitar as avaliações de de qualidade mais sistemáticas e padronizadas e a sua última versão é a de 2012 nós temos também a 25022 que foca em medidas de qualidades externas que busca com avaliar o comportamento e o desempenho do software em ambientes reais de operação Ou seja no ambiente do cliente no ambiente dos usuários e a sua última versão é de 2016 e nós temos também a 25. 23 que se preocupa com medidas de qualidade interna que leva em consideração eh quão bem o código foi escrito e estruturado de tal maneira que possa ser possível mantê-lo testá-lo e inspecioná-lo o quão eficiente é esse é esse código a sua última versão é a 2016 e nós temos a ISO 25 1024 que se concentra em medidas de qualidade em uso para determinar Qual a satisfação do usuário levando em consideração a efetividade a eficiência e a produtividade do usuário durante a sua interação com o software a sua última versão é a 2015 E aí nós temos a 25.
29 lembrando que a 25. 025 até a 25. 28 são normas que ainda não foram concluídas estão em desenvolvimento então a 25.
29 ela fornece diretrizes para como eh avaliar a qualidade ela tem o objetivo de garantir que as avaliações elas sejam consistentes e que possam ser repetidas de tal forma que isso possa aumentar a confiança nos resultados a sua última versão é a 2015 eh vou falar um pouquinho sobre a ISO 230 a última versão dessa norma é a de 2019 ela enfoque em requisitos de qualidade Então ela tenta fornecer diretrizes que permitam identificar documentar e utilizar requisitos de qualidade no desenvolvimento de software de de tal forma que seja possível auxiliar a garantir que o produto final Realmente realmente atenda à expectativas de qualidade Então ela recomenda boas práticas para a definição de requisitos de qualidade durante o processo de especificação de requisitos e de desenvolvimento ah auxilia na comunicação entre as partes interessadas Lembrando que parte interessada é qualquer pessoa que tenha interesse no desenvolvimento sof afetará o seu desenvolvimento ou será afetado por ele também destaca a importância de definir os requisitos de maneira clara e mensurável Ou seja que eles possam ser medidos e aborda diversos aspectos entre eles segurança desempenho confiabilidade e usabilidade então os principais objetivos da ISO 230 são garantir que os requisitos de qualidade sejam tratados desde início desenvolvimento também reduzir riscos Associados a que o os requisitos de qualidade sejam insuficientes ou tenham sido mal definidos e facilitar a verificação e validação do software de forma garantir a conformidade com os requisitos de qualidade estabelecidos Lembrando que verificação determina se o software está de acordo com os requisitos e validação é que esses requisitos realmente sejam úteis para hã os usuários a que o software se destinam Eh vamos falar agora da série 2540 2545 que leva em conta considera o processo de avaliação de qualidade então elas descrevem o processo de avaliação e oferecem orientações diretrizes para organizar e realizar essas avaliações de qualidade Então as normas eh 25.