quarta-feira, 21 de abril de 2021

Norma ISO 14598 - Avaliação de produtos de software

Desenvolver software com qualidade tem sido um grande desafio, pois estabelecer prazos, especificar requisitos, estimar custos e recursos e cumprir todos esses quesitos não são atividades simples. É necessário um controle muito grande dos processos que envolvem a fabricação do software, desde a sua criação até a sua completa instalação no cliente. Um desafio ainda maior é conseguir identificar, ao final do desenvolvimento, se o produto de software atende aos requisitos previamente estabelecidos. Com a finalidade de auxiliar nestas complexas tarefas, processos de avaliação de produtos de software foram desenvolvidos e consolidados na Norma ISO 14598.

A norma ISO 14598 traz macroprocessos de avaliação de qualidade de produtos de software que podem ser instanciados para avaliação do produto por desenvolvedores ou agentes externos, dependendo dos objetivos e da infraestrutura da organização. A Figura mostra o processo proposto na ISO 14598-5 para avaliação por agentes externos.

Processo de avaliação de software - ISO 14598-5. Fonte: <www.goconqr.com>.

Cada fase descrita na Figura possui uma série de recomendações, porém, como toda norma, ela recomenda o que fazer mas não explica como deve ser feito. As principais etapas são:

  • Estabelecimento dos requisitos da avaliação, em que os requisitos do software são recebidos e os requisitos da avaliação são definidos.
  • Especificação da avaliação, no qual utiliza-se a descrição do produto e os requisitos da avaliação para definir o que será contemplado na avaliação.
  • Projeto da avaliação, no qual os dados utilizados na etapa anterior são agregados ao conhecimento de métodos de avaliação e projeta-se o plano de avaliação.
  • Execução da avaliação, em que são utilizadas ferramentas específicas para se colocar o plano de avaliação em prática.
  • Conclusão da avaliação, quando o relatório de avaliação é gerado, todos os resultados obtidos são sintetizados e um parecer é emitido para o requisitante da avaliação.

As etapas “estabelecimento dos requisitos da avaliação” e “especificação da avaliação” são cruciais da avaliação, pois representam o momento em que é definido o que se medirá no software e os níveis aceitáveis dessas medidas.

terça-feira, 20 de abril de 2021

Normas de qualidade ISO

Modelos e normas de qualidade de software

A qualidade de software é um aspecto da engenharia de software que vem evoluindo, tanto em relação à qualidade do processo (da concepção à construção e manutenção) quanto em relação à qualidade do produto (o software em si).

Qualidade de software, de acordo com Pressman (2011, p. 360) se refere a “[...] uma gestão de qualidade efetiva aplicada de modo a criar um produto útil que forneça valor mensurável para aqueles que o produzem e para aqueles que o utilizam”.

Qualidade não é uma fase do ciclo de desenvolvimento de software, mas um integrante fundamental de todas as fases. Portanto, é necessário um planejamento adequado para que metas de qualidade de software sejam atingidas. Para isso são necessários modelos, padrões, procedimentos e técnicas para atingir as metas de qualidade propostas. Assim, todas as etapas do ciclo de vida de engenharia de software devem ser contempladas com atividades que visam garantir a qualidade tanto do processo quanto do produto.

Um dos primeiros modelos de qualidade de software é o que James A. McCall (2002) propõe como métricas para qualidade de software. Conhecidos como fatores da qualidade, eles avaliam o software em três pontos distintos: operação do produto, transição do produto e revisão do produto, conforme ilustra a figura.

  • Operação: refere-se às características relativas ao uso do produto. Envolve os critérios de qualidade correção, confiabilidade, eficiência, integridade e usabilidade.
  • Revisão: refere-se à capacidade do produto ser modificado e evoluído. Envolve os critérios de qualidade manutenibilidade, flexibilidade e testabilidade.
  • Transição: refere-se à adaptabilidade a novos e diferentes ambientes. Envolve os critérios portabilidade, reusabilidade e interoperabilidade.

Naturalmente surgiram outros modelos e normas para avaliação da qualidade do produto de software, notadamente as homologadas pela ISO (International Organization for Standardization) juntamente à IEC (International Electro-Technical Commission). A abordagem das normas da série ISO fundamenta-se na documentação do sistema de qualidade, estabelecendo a visão da empresa com relação aos interesses e necessidades dos clientes e, por isso, resulta na percepção deles. A abordagem da ISO para qualidade é considerada uma das mais antigas e bem estabelecidas para a indústria em geral e tem ampliado seu espaço nas empresas de software.

Além do objetivo principal de alcançar a qualidade, as organizações podem almejar a obtenção de certificações de qualidade que são adquiridas por meio da utilização destas normas e modelos.

De acordo com Koscianski e Soares (2009, p. 156), as normas da família ISO 9000 foram desenvolvidas para aplicação em qualquer organização em qualquer ramo de atividade, notadamente do setor produtivo, que deseja realizar o controle de qualidade dos produtos ou serviços oferecidos.

Curiosidade

A ISO (International Organization for Standardization ou, em português, Organização Internacional de Normalização) é formada por representantes de diversos países, cada um representado por um organismo de normas, testes e certificação. O ANSI (American National Standards Institute) é o representante ISO dos Estados Unidos e no Brasil a ISO é representada pela ABNT (Associação Brasileira de Normas Técnicas). A ABNT é uma organização que apoia o desenvolvimento de normas consensuais e providencia estrutura e mecanismos a fim de que grupos industriais ou de produtos se juntem para estabelecer um consenso e desenvolver diretivas de qualidade.

Fonte: KOSCIANSKI, André; SOARES, Michel S. Qualidade de software. São Paulo: Novatec, 2009.

“A família das normas ISO 9000 nasceu em 1987 e evoluiu nos anos de 1994, 2000, 2005 e 2008 incorporando as melhores práticas, lições aprendidas, inovações e evolução requeridas pelas empresas e mercado.

A NBR ISO 9001:2008 Sistemas de Gestão da Qualidade faz parte da família de normas ISO 9000 e estabelece requisitos que auxiliam a melhoria dos processos internos, a maior capacitação dos colaboradores, o monitoramento do ambiente de trabalho, a verificação da satisfação dos clientes, colaboradores e fornecedores, em um processo contínuo de melhoria do sistema de gestão da qualidade. Aplica-se a campos distintos dentre eles: materiais, de produtos, de processos e serviços.”

Fonte: ASSOCIAÇÃO PARA PROMOÇÃO DA EXCELÊNCIA DO SOFTWARE BRASILEIRO (SOFTEX). MPS.BR - Melhoria de Processo do Software Brasileiro. Brasília: Softex, 2016. p. 15. Disponível em: <www.softex.br>. Acesso em: 8 jun. 2017.

segunda-feira, 19 de abril de 2021

Garantia da qualidade

A garantia da qualidade (quality assurance) pode ser definida como “[...] o conjunto de atividades de apoio para fornecer confiança de que os processos estão estabelecidos e são continuamente melhorados para produzir produtos que atendam as especificações e que sejam adequados para o uso pretendido”.

Fonte: Hernaski (2010, s/p).

De acordo com Hernaski (2010), para garantir a qualidade é necessário obtê-la tanto no processo quanto no produto. A qualidade no processo pode ser quantificada através de métricas e no produto pode ser obtida através de técnicas de verificação e validação. Para isso podem ser utilizadas avaliações normatizadas, como a ISO 9000, auditorias, inspeções formais, testes, revisões, análise estatística de controle do processo etc.

De acordo com Campos (2008), os conceitos e a aplicação dos termos controle da qualidade (quality control) e garantia da qualidade (quality assurance) costumam ser confundidos. Embora usados como sinônimos, ambos os termos têm propósitos diferentes. Vejamos o Quadro, que mostra a diferença entre estas duas atividades.

QUADRO – Garantia da qualidade x controle da qualidade
Garantia da qualidade Controle da qualidade
a) Garante que o processo é definido e apropriado.
b) Metodologia e padrões de desenvolvimento são exemplos de garantia da qualidade.
c) É orientada a processo.
d) É orientada à prevenção.
e)
Foco em monitoração e melhoria de processo.
f)
As atividades são focadas no início das fases no ciclo de vida de desenvolvimento de software.
g)
Garante que você está fazendo as coisas certas e da maneira correta.
a) As atividades focam na descoberta de defeitos em itens específicos.
b) Um exemplo de controle da qualidade poderia ser: “Os requisitos definidos são os requisitos certos?”.
c)
É orientado a produto.
d) É orientado à detecção.
e)
Inspeções e garantia de que o produto de trabalho atenda aos requisitos especificados.
f) As atividades são focadas no final das fases no ciclo de vida de desenvolvimento de software.
g)
Garante que os resultados do seu trabalho são os esperados conforme requisitos.
Fonte: Campos (2017).

Pode-se afirmar que o teste de software é uma das atividades de controle da qualidade, ou seja, ele é orientado a produto e está dentro do domínio do controle da qualidade.

domingo, 18 de abril de 2021

Qualidade e o ciclo de vida do produto

O conceito de ciclo de vida do produto está vinculado ao aspecto satisfação das necessidades do cliente. A qualidade de um produto é o resultado das características por ele adquiridas ao longo de todo o seu ciclo de vida, podendo, de forma resumida, envolver:

  • Qualidade de projeto, que indica se o produto atende aos critérios de qualidade exigidas pelo consumidor e está em conformidade com os requisitos especificados no projeto.
  • Qualidade de serviços, que se refere às facilidades a serem oferecidas ao consumidor do produto durante o período em que estiver em uso ou operacional, como assistência técnica, orientação de uso etc.
  • Qualidade de uso, que se refere à soma da qualidade do projeto com a de serviços.

No processo de desenvolvimento de produtos, é importante que se promova o trabalho em equipe de forma concorrente, simultânea e colaborativa, reduzindo o ciclo de desenvolvimento do produto. Através da disseminação de poderes e responsabilidades aos indivíduos e às equipes, e da visibilidade plena de cada passo por trás do ciclo de vida, garante-se que o propósito do produto/serviço seja mantido e esteja alinhado à estratégia organizacional.

Ao observarmos o ciclo de vida de um produto ou serviço, destacam-se o período de sua criação e o período de seu declínio, indicando a necessidade de renovação ou substituição. Mas entre estes dois pontos há um intervalo de tempo que requer ações de melhoria que afetam a qualidade, a produtividade e os custos de produção. Nesse intervalo há que se buscar soluções para problemas que eventualmente ocorrem na linha de produção e na logística. Pela inovação e pela melhoria contínua, a organização pode buscar diferenciais competitivos, prolongando e ampliando suas vantagens. A Figura 8 ilustra este processo.

Todos estes conceitos podem ser aplicados às empresas e equipes envolvidas no desenvolvimento de software. O Quadro faz uma comparação entre organizações imaturas e maturas quanto às suas tomadas de decisões em assuntos relacionados à qualidade de software.

QUADRO – Maturidade das organizações quanto à qualidade
Organização imatura Organização madura
Processos de software improvisados pelos participantes durante o curso do projeto. Atividades planejadas de acordo com o processo existente.
Mesmo que um processo de software tenha sido especificado, ele não é seguido. Processo disciplinado é consistentemente seguido porque os participantes entendem o seu valor e existe a infraestrutura necessária para suportá-lo.
Gerentes focados em resolver problemas imediatos. Gerentes monitoram a qualidade do produto e do processo.
Cronogramas e orçamentos estourados, e não baseados em estimativas realistas. Cronogramas e orçamentos baseados em dados históricos e realísticos.
Quando prazos não realísticos são impostos à equipe de desenvolvimento, a qualidade e funcionalidade do produto ficam comprometidas. Processo definido atualizado quando necessário. As melhorias são descobertas através de testes-piloto controlados e da análise da relação custo/benefício.
Não há base para julgar a qualidade do produto ou para resolver problemas no processo ou produto. Base quantitativa para julgar qualidade e para analisar problemas com o produto ou processo.
Qualidade do produto imprevisível. Capacidade de gerenciar o desenvolvimento e manutenção dos processos e projetos.
Atividades que visam garantir a qualidade dos produtos (revisões e testes) são eliminadas quando o projeto está atrasado. Papéis e responsabilidades estão claros dentro da organização.
Fonte: Adaptado de SEI (2010).

sábado, 17 de abril de 2021

Qualidade total

Qualidade Total é a preocupação com a qualidade em todas as atividades da empresa, buscando sistematicamente o nível ‘zero defeito’, através da melhoria contínua dos processos de produção.” (OLIVEIRA et al., 2004; p. 94).

Total quality management (gestão de qualidade total - GQT).
Fonte: <blogspot.com>.

O termo TQM (total quality management) ou gerenciamento da qualidade total, amplamente usado nas organizações, descreve uma abordagem para a melhoria da qualidade em todos os níveis e setores. De acordo com Periard (2013), é um conceito que distribui a responsabilidade pelo alcance de patamares de qualidade para todas as pessoas envolvidas, e não apenas aos dirigentes e gestores. Desta forma, a qualidade total tem como um dos pilares o empowerment ou empoderamento das pessoas, que atribui a elas autonomia para a tomada de decisões relativas à qualidade de forma que possam solucionar questões emergentes de forma mais ágil, chegando às soluções mais rapidamente.

De acordo com Reid e Sanders (2010), TQM tem como foco a identificação das raízes dos problemas de qualidade e sua solução a partir da fonte destes problemas, ao invés de apenas inspecionar o produto depois de pronto. Os autores indicam sete princípios básicos para o TQM:

  • Customer focus: Foco no cliente: a qualidade pode ser medida pela satisfação do cliente ou mesmo quando se excede esta satisfação, a partir de suas reais necessidades.
  • Continuous improvement: Melhoria contínua: denominada kaizen pelos japoneses, requer esforços contínuos da organização, mesmo depois que a qualidade tenha sido satisfatoriamente atingida. Como nunca se atinge a perfeição, é necessário que o desempenho seja avaliado e medições sejam realizadas visando sua constante melhoria.
  • Employee empowerment: Empoderamento dos funcionários: conceito que incentiva as pessoas a buscarem problemas de qualidade e quando os encontram – são premiadas, não punidas. Além disso, há o incentivo para que busquem aprimorar a qualidade dos processos.
  • Use of quality tools: Uso de ferramentas de qualidade: como o TQM atribui grande responsabilidades às pessoas, que devem identificar e corrigir problemas de qualidade, elas precisam ser adequadamente treinadas e capacitadas. Para isso, há diversas ferramentas de qualidade que as ajudam a avaliar e medir a qualidade, mas ainda é necessário que saibam como interpretar os resultados e como fazer para corrigir os problemas.
  • Product design: Projeto do produto: para que os requisitos dos clientes possam ser traduzidos para requisitos técnicos formais há as ferramentas QFD (quality function deployment). Essas ferramentas permitem visualizar as relações entre as variáveis envolvidas no projeto do produto, confrontando os requisitos técnicos com os requisitos do cliente.
  • Process management: Gerenciamento de processos: de acordo com o TQM, a qualidade do produto é derivada da qualidade do processo. Desta forma, a qualidade deve estar presente nos processos.
  • Managing supplier quality: Gerenciamento da qualidade dos fornecedores: TQM estende o conceito de qualidade aos fornecedores, de forma que estes devam ser selecionados caso adotem práticas de qualidade em seus processos. Isso busca assegurar que os materiais/serviços entregues tenham sido fabricados/criados com qualidade e não irão comprometer o produto.

Desta forma, uma organização moderna enxerga a qualidade como uma união de conceitos que reúnem adequação ao uso, conformidade com as especificações e qualidade total nos processos. As organizações devem buscar produzir produtos e serviços com qualidade total como uma condição de competitividade e sobrevivência, e não apenas como uma estratégia de diferenciação de mercado.

sexta-feira, 16 de abril de 2021

Qualidade de processo

A qualidade no processo, de acordo com Oliveira et al. (2004), procura identificar a má qualidade o quanto antes, o que é feito pelo controle da conformidade à especificação, e corrigir o problema, evitando que continue o desperdício até o fim. Os autores afirmam que, para garantir a conformidade à especificação ao longo do processo, é necessário especificar como executar atividades e seus resultados e controlar sistematicamente todo esse processo que irá atingir a qualidade.

“A qualidade de processo é a rigorosa especificação dos processos que serão realizados na produção de um bem ou serviço, incluindo as faixas de tolerância desejadas em relação aos resultados.” (OLIVEIRA et al., 2004; p. 93)

Aqui deve-se levar em consideração a definição de qualidade como adequação ao uso, o que significa que o produto deve ter as funções necessárias à solução dos problemas do cliente e, ainda, atender aos critérios de desempenho, facilidade de uso, confiabilidade etc. Por exemplo, pode-se imaginar a existência de um cliente que vai receber o bem ou serviço, cujas necessidades de uso precisam ser satisfeitas.

É preciso ainda identificar e eliminar as fontes da má qualidade mediante alterações apropriadas no processo, ou seja, nas especificações de suas atividades.

Cliente satisfeito x cliente insatisfeito
Fonte: <qualiwork.pt>.

Oliveira et al. (2004) propõem uma lista de perguntas que realçam essa perspectiva e apontam as consequências para os processos de produção:

  • Quem são os clientes visados?
  • O que desejam e necessitam?
  • O que tais necessidades significam para os produtos e processos?
  • Quais características devem ter um produto/serviço para satisfazê-las?
  • Como fabricar esse produto ou prestar esse serviço?

Com isso, vê-se que o conceito de adequação ao uso também se dirige para a qualidade no processo. A qualidade não pode ser alcançada apenas com a verificação de conformidade dos resultados parciais em pontos escolhidos do processo. A qualidade no processo é mais que isso. Exige que os processos sejam concebidos de forma a maximizar a produção de bens e serviços que atendam às especificações.

Assim nasce a qualidade total. A preocupação é garantir qualidade em cada atividade realizada no processo de produção e evitar erros, de modo a produzir certo da primeira vez até eliminar a necessidade de inspeções, as quais perdem sentido quando cada etapa entrega seus resultados sem defeitos para a etapa seguinte e se implanta um processo explícito para melhorar sistematicamente os processos, de modo a sempre aumentar a qualidade no processo.

quinta-feira, 15 de abril de 2021

Conceitos relacionados à qualidade de software

Qualidade do produto

Hoje sabemos que a qualidade é apreciada e desejada por todos em diversos setores, desde o atendimento na prestação de um serviço até os produtos de tecnologia amplamente utilizados. Interessante é nos perguntarmos: como chegamos a este ponto?

Fazendo um retrospecto, houve época em que a qualidade estava associada primordialmente à inspeção, que utilizava mecanismos para medir se o produto estava em conformidade com algum determinado padrão. De acordo com Garvin (2002, p. 44),

[...] posteriormente, passou-se a buscar, através de instrumentos e técnicas estatísticas, conseguir um controle estatístico da qualidade. Em uma etapa posterior, o movimento da qualidade foi mais na direção de se encontrar instrumentos que visassem assegurar a sua própria garantia. Para isso, todo o processo produtivo passou a ser coordenado, desde o projeto do produto até a sua chegada ao mercado consumidor. Finalmente, a ênfase voltou-se para o gerenciamento estratégico da qualidade, no qual a preocupação maior é poder concorrer em um determinado mercado, buscando-se não só satisfazer as necessidades do consumidor, mas também a do próprio mercado. A metodologia que vai dar sustentação a essa nova mentalidade baseia-se no planejamento estratégico, no qual, sob a liderança da direção, todos na empresa passam a ter a oportunidade de serem também agentes da qualidade.

“A qualidade de produto é a rigorosa definição das características relevantes do produto, estabelecendo os atributos e as variáveis que deve conter, cuja dimensão deve ser assegurada. A especificação é o documento que formalizará essas definições.” (OLIVEIRA et al., 2004, p. 92).

De acordo com Oliveira et al. (2004), há duas formas de se alcançar a conformidade de um produto à sua especificação. Uma é a inspeção final rigorosa que segrega os produtos sem qualidade. Essa é uma alternativa cara, já que espera o consumo de material, capital e mão de obra para, só ao final do processo produtivo, separar o bom produto. Gera imenso desperdício. A outra possibilidade é introduzir a qualidade ao longo do processo produtivo, desde a verificação da conformidade dos insumos até suas especificações, evitando a cada fase a má qualidade.

Ainda de acordo com os autores, o ideal é que qualidade de produto seja aplicada em conjunto com a qualidade de processo. Para tornar isso viável, surgiram os sistemas formais da qualidade, como por exemplo, a série de normas produzidas pela ISO (International Organization for Standardization).