AULA 5
ENGENHARIA DE SOFTWARE
Prof. Emerson Antonio Klisiewicz
CONVERSA INICIAL
Nesta quinta aula, estudaremos a Qualidade de Software para o
desenvolvimento de sistemas, que também fazem parte do processo de
Engenharia de Software.
CONTEXTUALIZANDO
É também por meio da Engenharia de Software que objetivamos garantir
uma qualidade do software, definindo e normatizando os processos durante o
desenvolvimento dentro de um prazo condizente com a necessidade apresentada
pelo usuário.
TEMA 1 – CONCEITOS
1.1 Qualidade
Trata-se de uma visão do desenvolvedor que se une à ideia de que o
software sempre deve atender às necessidades do usuário. Para o usuário,
qualidade é a ideia do valor, sua utilidade e o cumprimento de todos os requisitos
por ele solicitados.
1.2 Funcionalidade
Tratam-se dos atributos, das funções e propriedades particulares do
software que vão satisfazer as necessidades impostas pelos requisitos do usuário.
1.3 Resumindo
Figura 1 – Resumo dos conceitos
02
Leitura complementar
Engenharia de Software – Uma abordagem profissional. 8.ª edição. Por
Roger Pressman e Bruce Maxim. Capítulo 21.
TEMA 2 – QUAL A NECESSIDADE DE SE MEDIR A QUALIDADE?
É necessário ter um valor para comparação. Ao medir e realizar uma
comparação do software com alguma informação (dado) é possível ter, desse
modo, um indicador de qualidade.
Mas, então, o que vamos medir? Nesse caso, teremos opções como o
processo e o próprio produto desenvolvido. Nesse procedimento, teremos vários
fatores que afetaram a qualidade e que podemos dividir em dois segmentos: os
que podem ser medidos diretamente como tempo, custos e produção; e os que
não podem ser medidos de forma direta, como questões de usabilidade e
manutenção, que são muito subjetivos e difíceis de mensurar.
A qualidade necessita ser medida de forma comparativa com padrões e
também critérios que devem ser pré-definidos. Por exemplo: medir e comparar o
software desenvolvido com alguma informação padrão e obter um indicador de
qualidade.
2.1 Mas o que é necessário medir?
Podemos decidir medir diversas situações dentro do ciclo de
desenvolvimento do software, como o tempo e custo do processo, o desempenho
do software e os resultados obtidos por ele. Poderemos também medir a produção
da equipe e também quais os recursos que foram usados efetivamente no
processo. Dessa forma, poderemos criar padrões, estimativas e com elas aplicar
correções, sejam elas corretivas ou preventivas diante dos riscos encontrados.
2.2 Fatores de qualidade
Vamos encontrar diversos fatores que afetarão a qualidade do software,
como características de operação, capacidade em agregar mudanças, sua
adaptação a novos contextos. Essas situações podem ser agrupadas nas
seguintes categorias: revisão do software, operação do software e transição do
software.
03
2.2.1 Revisão
Dentro desse item, nós teremos três situações: a questão da manutenção,
que visa verificar quanto o software foi desenvolvido, já prevendo futuras
alterações; da flexibilidade, que mostrará quanto de esforço deveremos gastar
para realizar qualquer alteração; e da testabilidade, que empregará testes para
verificar se o software foi desenvolvido conforme suas especificações.
2.2.2 Operação
Nesse quesito, atenderemos aos seguintes itens: corretagem, que
atenderá a especificações e objetivos definidos pelo usuário; confiabilidade, que
verificará se o software sempre executa do mesmo jeito e com a precisão exigida;
eficiência, que trará a quantidade de recursos necessários para o programa
executar; integridade, que verificará se o controle de acesso é controlado; e
usabilidade, que traz o esforço para aprender a trabalhar com o software.
2.2.3 Transição
Na transição, vemos questões como a portabilidade, que mede o esforço
para transferir o programa a outro ambiente de produção, bem como a questão
da reusabilidade, que demonstrará como usar o software ou parte dele em outras
aplicações, e também a interoperabilidade, que verificará o esforço para fazer a
união de um sistema a outro, integrando, assim, soluções.
TEMA 3 – ELEMENTOS DE GARANTIA DE SOFTWARE
Engloba preocupações e atividades que se concentram na gestão da
qualidade do software. Dentre elas, podemos sintetizar as seguintes.
3.1 Padrões
O IEEE, a ISSO e outras padronizações possuem grande quantidade de
padrões e documentos que ajudam no gerenciamento da qualidade do software.
3.2 Revisões e auditorias
Formalizará e controlará todas as solicitações de mudança no software
tanto no desenvolvimento como após sua implantação e posterior manutenção.
04
3.3 Testes
Detectarão possíveis falhas e erros no desenvolvimento e manutenção do
software, mas somente isso não é o suficiente.
3.4 Coleta e análise de erros/defeitos
Coleta é um conjunto de medidas técnicas e orientadas à administração
das especificações do software. Dessa forma, com dados em mãos é possível
compreender como os erros surgem e quais soluções dentro da engenharia de
software podemos usar para sua eliminação.
Leitura complementar
Engenharia de Software – Uma abordagem profissional, 8.ª edição, por
Roger Pressman e Bruce Maxim – capítulo 21, itens 1 e 2.
TEMA 4 – SQA: PROCESSOS
A garantia da qualidade de software (Software Quality Assurance – SQA)
deve ser aplicada em todo o processo de engenharia de software. Avaliações,
auditorias e revisões vão definir padrões para o projeto, procedimentos para a
geração de relatórios de acompanhamento de erros e também a criação de uma
documentação necessária que vai instruir a equipe com conclusões a respeito do
projeto do software. Dentre elas, podemos sintetizar nos itens a seguir.
4.1 Revisões de software
Métodos de validação de qualidade usados pela equipe de
desenvolvimento do software. Eles filtrarão erros e inconsistências no processo
de desenvolvimento, tendo como objetivos reportar melhorias no produto ou parte
dele e tornar o trabalho técnico de desenvolvimento mais administrável.
4.1.1 Tipos de revisões
Inspeções de projeto ou programa, que vão detectar erros nos requisitos,
projeto ou código.
Revisões de progresso, que informarão para os GPs do projeto o progresso
geral do desenvolvimento (planejamento, custos e prazos).
05
Revisões de qualidade, que farão uma análise técnica do produto ou
documentação para verificar se existem inconsistências entre a
especificação e o projeto, entre o código e documentação e também
assegurar se padrões de qualidade foram seguidos.
4.2 Revisão técnica formal
Trata-se da principal atividade de um SQA, que tem por objetivos verificar
se o software atende a todos os requisitos. Também visa garantir que o software
está de acordo com padrões pré-definidos pelo usuário. Obter um software
desenvolvido de forma uniforme e tornar os projetos de desenvolvimento mais
administráveis também está entre os objetivos dessa técnica. Cada uma dessas
revisões é conduzida na forma de uma reunião que segue os seguintes padrões:
Restrições à reunião (duração de até 2h).
Participação de 3 a 5 pessoas, com preparação antecipada. Foco: um
produto ou um componente de software que se está desenvolvendo.
Ao final da reunião, o objetivo será todos aceitarem ou rejeitarem, ou ainda,
aceitarem temporariamente o que foi apresentado.
Leitura complementar
Engenharia de Software – Uma abordagem profissional. 8. ed. Por Roger
Pressman e Bruce Maxim. Capítulo 21, item 3.
TEMA 5 – NORMAS: NBR ISO
Um sistema de garantia da qualidade pode ser definido como a estrutura
organizacional com responsabilidades, procedimentos, processos e recursos para
implementação da gestão (ANS, 87).
O controle de qualidade e o uso dos padrões baseados em normas ISO
estão influenciando a forma como a qualidade está sendo usada nas últimas
décadas, mas historicamente o assunto é muito antigo.
Em relatos existentes há mais de quatro mil anos, os egípcios já
estabeleciam um padrão de medida de comprimento conhecido como cúbito, que
correspondia ao comprimento do braço do faraó reinante. Era utilizado assim
como a unidade de medida nas construções egípcias. Porém, havia um problema
quando um novo faraó assumia o poder, pois, assim, a unidade de medida
06
também se modificava. Interessante também era a punição para quem não
aceitava a mudança: a morte.
A ISO 9000 descreve elementos de garantia da qualidade em termos gerais
que podem ser aplicados a qualquer empresa, independentemente do tipo de
produtos ou serviços oferecidos. A necessidade das organizações se tornarem
competitivas passa a ser enfatizada como motivo para a adoção de sistemas que
resultem na qualidade. A ISO tem como princípios:
Descrever elementos de garantia em termos genéricos, que podem ser
aplicados aos negócios (produto ou serviço).
Ter um modelo de qualidade que define responsabilidades, crie
procedimentos e processos, capacite recursos para realização de uma
gestão da qualidade.
A empresa, ao adotar essa norma, com certeza vai ganhar produtividade e
credibilidade, aumentando sua competitividade no mercado, podendo ser uma
diferenciação e, desse modo, possibilitar à empresa buscar novas oportunidades
em um mercado global.
A certificação é possível seguindo-se os passos:
1. Empresa contrata consultoria específica.
2. Empresa se qualifica para a auditoria de acreditação da ISO.
3. É feita uma avaliação da conformidade do sistema de garantia da qualidade
e não se certifica o SOFTWARE e sim a capacidade de desenvolvimento.
Geralmente certifica-se por área de atividade da empresa (não na
totalidade).
4. Uma vez qualificada (auditoria de validade), a empresa recebe o certificado.
5. Começam as auditorias de vigilância – semestrais ou anuais.
A ISO 9000 surge como alternativa para melhoria do processo de
desenvolvimento das empresas, gerando produtos e serviços mais competitivos
nos mercados nacional e internacional. A certificação ISO surge como um
diferencial para que a empresa consiga atingir melhores patamares e
oportunidades num mercado que hoje se apresenta na forma global.
5.1 NBR 13596
A seguir mostramos quais são as características das normas NBR 13596,
que são uma versão brasileira da ISO 9126.
07
Quadro 1 – Características da norma NBR 13596
Quadro 2 – Mais características da norma NBR 13596
Mas como podemos aplicar as normas ISO/NBR?
Para avaliar um software segundo uma norma, deve-se tentar atribuir
valores (notas ou conceitos) a cada uma das subcaracterísticas. Porém, é difícil
aplicar uma norma sem se estar familiarizado com todo o processo de avaliação
de software. Guias para a avaliação da qualidade descrevem, detalhadamente
todos os passos para se avaliar um software.
5.2 ISO 9000-3
Trata-se de um guia, criada em 1993, para a aplicação da ISO 9001 voltada
ao desenvolvimento, fornecimento e manutenção de um software. Ela especifica
08
os requisitos mínimos para assegurar a qualidade de produtos de software e
serviços, porém não define modelos ou impõe sistemas de qualidade.
Ela agrupa as atividades do ciclo de vida em nove categorias: análise crítica
do contrato, especificação dos requisitos do comprador, planejamento do
desenvolvimento, planejamento da qualidade, projeto e implementação, ensaios
e validação, aceitação, cópia, entrega e instalação, manutenção.
Ela agrupa as atividades relacionadas a suporte em nove situações: gestão
de configuração, controle de documentos, registros da qualidade, medição,
regras, práticas e convenções, ferramentas e técnicas, aquisição, produto de
software incluído e treinamento.
A seguir, o fluxo do processo para a certificação.
Figura 2 – Fluxo do processo para certificação
A seguir, um quadro com mais algumas normas ISO e as suas
características.
09
Quadro 3 – Normas ISO e características
Leitura complementar
Engenharia de Software – Uma abordagem profissional 8. ed. Por Roger
Pressman e Bruce Maxim. Capítulo 21, item 8.
FINALIZANDO
No desenvolvimento de softwares, a qualidade no processo deve existir
desde o início. Possuir aferições em cada fase, com métricas, fatores de qualidade
e padrões é de vital importância para o sucesso. Buscar inconsistências ter um
bom SQA – Software Quality Assurance, realizar avaliações, auditorias, revisões
constantemente e ter atividades de controle das mudanças fará toda a diferença
no sucesso do desenvolvimento. Num mundo tão competitivo em que estamos,
ter uma boa documentação e qualidade no produto que se está entregando
selecionará a empresa, que crescerá ou não no mercado de software.
010
REFERÊNCIAS
PRESSMAN, R.; MAXIM, B. Engenharia de Software: uma abordagem
profissional. 8. ed. Porto Alegre: McGraw-Hill, 2016.
011