Você está na página 1de 64

2.

Qualidade de
Software
Prof. Peter Jandl Jr
Engenharia de Software II
ADS | UNIP
Existem muitas definições de
qualidade de software
propostas na literatura, sob
Qualidade de diferentes pontos de vista.
Software Qualidade é um termo que
pode ter diferentes
interpretações.

22/03/2024 (C)2021-2024, PJandl. 2


Década de 1980: o fator qualidade
emergiu como uma necessidade básica na
luta pelo mercado cada vez mais
competitivo.

Qualidade
::definições Werneck (1994): “Não basta vender
barato, as novas regras de mercado são
orientadas à produção de bens e serviços
com qualidade, prazo de entrega
determinado, atendimento correto, além
de um baixo custo”.
22/03/2024 (C)2021-2024, PJandl. 3
É definido ambiguamente e
diferentes significados podem ser
atribuídos a ele, em diferentes
situações e de acordo com a opinião
ou enfoque de quem faz uso.
Qualidade
Termo faz parte da linguagem
cotidiana e a visão popular que se
tem do conceito de qualidade pode
ser muito diferente de como ele é
usado profissionalmente.
22/03/2024 (C)2021-2024, PJandl. 4
Visão Popular
 Algo abstrato
 Perfeição
 Luxo e questão de gosto

Qualidade
Visão Profissional
 Conformidade aos requisitos
 Atendimento às normas vigentes
 Adequação ao uso

22/03/2024 (C)2021-2024, PJandl. 5


Qualidade::visão profissional
Usuário

Produto Requisitos
Atendidos
Requisitos

Qualidade do
Processo

Qualidade do
Produto Garantia da
Qualidade
Testes Desenvolvimento

22/03/2024 (C)2021-2024, PJandl. 6


Sanders (1994): “Um produto de
software apresenta qualidade
dependendo do grau de satisfação das
necessidades dos clientes sob todos os
Qualidade de aspectos do produto”.
Software
Peters (2002): “Qualidade de software
::definições é avaliada em termos de atributos de
alto nível chamados fatores, que são
medidos em relação a atributos de
baixo nível chamados de critérios”.

22/03/2024 (C)2021-2024, PJandl. 7


• Pressman (1995): “Qualidade de
software é a conformidade a requisitos
funcionais e de desempenho que foram
Qualidade de explicitamente declarados, a padrões de
Software desenvolvimento claramente
documentados, e a características
::definições implícitas que são esperadas de todo
software desenvolvido por
profissionais”.

22/03/2024 (C)2021-2024, PJandl. 8


Diferenciam empresas de
Razões da crise do
software viáveis das
software.
inviáveis!

22/03/2024 (C)2021-2024, PJandl. 9


Atendimento pleno das
necessidades do usuário é
fundamental!

22/03/2024 (C)2021-2024, PJandl. 10


É inevitável que softwares
complexos contenham erros,
mas isto não pode
comprometer sua utilização

22/03/2024 (C)2021-2024, PJandl. 11


Qualidade = Competitividade!
22/03/2024 (C)2021-2024, PJandl. 12
Qualidade de Software::aspectos importantes
• Se o software se adequar aos seus requisitos explícitos,
mas deixar de cumprir seus requisitos implícitos, a
qualidade do software pode ser comprometida.

22/03/2024 (C)2021-2024, PJandl. 13


Qualidade de Software::pontos de vista
Usuário

• Interesse concentrado no uso do software.

Desenvolvedor

• Qualidade é voltada aos aspectos internos do software.

Gerente

• Qualidade do produto não pode ser desvinculada dos interesses da


organização.

22/03/2024 (C)2021-2024, PJandl. 14


Qualidade de Software::visões

Usuário Desenvolvedores Organização


• Avalia o software sem • Avaliam aspectos de • Avalia aspectos de
conhecer seus conformidade em conformidade em
aspectos internos. relação aos requisitos relação aos requisitos
• Está apenas dos clientes e também dos clientes e
interessado na aspectos internos do desenvolvedores e
facilidade do uso, no software. também aspectos de
desempenho, na custo, cronograma e
confiabilidade dos legislação vigente.
resultados e no preço.

22/03/2024 (C)2021-2024, PJandl. 15


Qualidade de Software::aplicação
Qualidade mais importante

Fazer aquilo que eu quero

Se comportar com precisão

Sistema de Sistema em
Ser fácil de usar Tempo Real
Missão Crítica

Rodar bem no hardware

Fácil de alterar

22/03/2024 (C)2021-2024, PJandl. 16


Qualidade de Software::aplicação
Qualidade mais importante

Fazer aquilo que eu quero

Se comportar com precisão

Sistema de Sistema
Folha de Ser fácil de usar Interativo com
Pagamento Usuário

Rodar bem no hardware

Fácil de alterar

22/03/2024 (C)2021-2024, PJandl. 17


ISO
::International Standardization Organization
• A Organização Internacional de Normalização
ou Organização Internacional para
Padronização, popularmente conhecida como
ISO é uma entidade que congrega os grémios
de padronização/normalização de 162 países.

22/03/2024 (C)2021-2024, PJandl. 18


Qualidade de
Software::definições
• ISO9126 (1994): “Qualidade é a
totalidade de características e critérios
de um produto ou serviço que
exercem suas habilidades para
satisfazer às necessidades declaradas
ou envolvidas“.

22/03/2024 (C)2021-2024, PJandl. 19


Aspectos Importantes das Definições
• São enfatizados três aspectos importantes nas definições:
1. Os requisitos de software são a base a partir da qual a qualidade é
medida. A falta de conformidade com os requisitos significa não
atendimento às necessidades dos usuários e da organização, o que
representa falta de qualidade.

22/03/2024 (C)2021-2024, PJandl. 20


Aspectos Importantes das Definições
• São enfatizados três aspectos importantes nas definições:
2. Padrões especificados definem um conjunto de critérios de
desenvolvimento que orientam a maneira segundo a qual o
software passa pelo trabalho de engenharia. Se os critérios não
forem seguidos, o resultado quase que seguramente será a falta de
qualidade.

22/03/2024 (C)2021-2024, PJandl. 21


Aspectos Importantes das Definições
• São enfatizados três aspectos importantes nas definições:
3. Existe um conjunto de requisitos implícitos que frequentemente
não são mencionados na especificação. Por exemplo, o desejo de
uma boa integridade no acesso ao sistema ou a facilidade de uso.

22/03/2024 (C)2021-2024, PJandl. 22


Qualidade::garantia e controle
• Garantia de qualidade: consiste nas funções gerenciais de auditar e
relatar.
• Controle de qualidade: envolve a série de inspeções, revisões e testes
usados ao longo do processo de software para garantir que cada
produto de trabalho satisfaça os requisitos estabelecidos para ele. São
os instrumentos técnicos e gerenciais da garantia da qualidade.

22/03/2024 (C)2021-2024, PJandl. 23


Base da
Qualidade::
requisitos de
software

22/03/2024 (C)2021-2024, PJandl. 24


Incorporação da Qualidade
• Raramente qualidade pode ser
incorporada ao produto final, após o
processo de desenvolvimento ter
terminado.
• Dos requisitos do usuário à entrega do
produto final, existe um processo de
desenvolvimento que é complexo e
frequentemente envolve uma série de
etapas que podem comprometer a
qualidade do produto final.
22/03/2024 (C)2021-2024, PJandl. 25
Incorporação da Qualidade
• A qualidade do produto final depende intrinsecamente da
qualidade dos produtos intermediários usados na construção
do software.
• Cada produto intermediário tem certos atributos de
qualidade que afetam a qualidade do produto intermediário
da próxima etapa e assim, afetam a qualidade do produto
final.

22/03/2024 (C)2021-2024, PJandl. 26


Qualidade::
objetivo do processo de desenvolvimento
• A qualidade do produto de software é um objetivo do
processo de desenvolvimento.
• Assim, ao desenvolver-se um produto, deve-se ter
previamente estabelecidas, como perspectiva, as
características de qualidade que se deseja alcançar.

22/03/2024 (C)2021-2024, PJandl. 27


Normas para padronização de atividades

Qualidade do Produto Qualidade do Processo (1994) Subsidiou


• ISO/IEC 9126 • ISO/IEC 12207 criação do SWEBOK

• ISO/NBR 12119 • ISO/IEC 15504 SPICE


• ISO/IEC 14598 • CMM/CMMI
• ISO/IEC 25000 e 25010 • MPS-BR

22/03/2024 (C)2021-2024, PJandl. 28


ISO/IEC 9126
• É uma norma ISO para qualidade de produto de
software. Ela define um conjunto de parâmetros
com o objetivo de padronizar a avaliação da
qualidade de software.
• Ela se enquadra no modelo de qualidade das
normas da família 9000.

22/03/2024 (C)2021-2024, PJandl. 29


ISO/IEC 9126
• A ISO/IEC 9126, sob o título geral "Engenharia de
software - Qualidade do produto", consiste nas
seguintes partes:
• Parte 1: Modelo de qualidade;
• Parte 2: Métricas externas;
• Parte 3: Métricas internas;
• Parte 4: Métricas de qualidade em uso
• A norma brasileira correspondente é a NBR
13596, foi substituída pela NBR ISO/IEC 9126-1
que por sua vez foi substituída pela Norma
ISO/IEC 25010:2011.
22/03/2024 (C)2021-2024, PJandl. 30
ISO/IEC 9126
• Representa a padronização mundial para a qualidade de
software e do produto.
• Baseada em três níveis:
• Características,
• Subcaracterísticas e
• Métricas.
• Cada característica é refinada em um conjunto de
subcaracterísticas e cada subcaracterística é avaliada por
um conjunto de métricas.

22/03/2024 (C)2021-2024, PJandl. 31


ISO/IEC 9126
• Descreve um modelo de qualidade do produto de software,
composto de duas partes:
a) qualidade interna e qualidade externa e
b) qualidade em uso.
• Para tanto, esta norma define Qualidade como a totalidade de
características e critérios de um produto ou serviço que exercem suas
habilidades para satisfazer às necessidades declaradas ou envolvidas.

22/03/2024 (C)2021-2024, PJandl. 32


ISO/IEC 9126
• A primeira parte do modelo especifica seis características para
qualidade interna e externa, as quais são por sua vez subdivididas em
subcaracterísticas.
• Estas subcaracterísticas são manifestadas externamente, quando o
software é utilizado como parte de um sistema computacional, e são
resultantes de atributos internos do software.
• Esta parte da NBR ISO/IEC 9126 não apresenta o modelo de qualidade
interna e externa além do nível de subcaracterísticas.

22/03/2024 (C)2021-2024, PJandl. 33


ISO/IEC 9126
• A primeira parte do modelo de qualidade de software abrange as
características que seguem:
• funcionalidade,
• confiabilidade,
• usabilidade,
• eficiência,
• manutenibilidade e
• portabilidade.

22/03/2024 (C)2021-2024, PJandl. 34


ISO/IEC 9126
• A segunda parte do modelo especifica quatro características de qualidade
em uso, mas não inclui outras, diferentes do modelo de qualidade, nem vão
além do nível de característica.
• Qualidade em uso é, para o usuário, o efeito combinado das seis
características de qualidade do produto de software.
• As características definidas são aplicáveis a todo tipo de software, incluindo
programas de computador e dados contidos em firmware.
• As características e subcaracterísticas fornecem terminologia consistente
para tratar de qualidade do produto de software. Elas também fornecem
uma estrutura para especificar requisitos de qualidade de software e
realizar comparações entre produtos de software.
22/03/2024 (C)2021-2024, PJandl. 35
ISO/IEC 9126
• As características (e suas perguntas-chave) são:
• Funcionalidade: satisfaz as necessidades?
• Confiabilidade: é imune a falhas?
• Usabilidade: é fácil de usar?
• Eficiência: é rápido e “enxuto”?
• Manutenibilidade: é fácil de modificar?
• Portabilidade: é fácil de usar em outro
ambiente?

22/03/2024 (C)2021-2024, PJandl. 36


ISO/IEC 9126

22/03/2024 (C)2021-2024, PJandl. 37


ISO/IEC 9126
• Funcionalidade:
Conjunto de atributos que evidenciam a existência de um conjunto de
funções e suas propriedades especificadas. As funções são as que
satisfazem as necessidades explícitas e implícitas.
• Usabilidade:
Conjunto de atributos que evidenciam o esforço necessário para
utilizar o software, bem como o julgamento individual desse uso, por
um conjunto explícito ou implícito de usuários.

22/03/2024 (C)2021-2024, PJandl. 38


ISO/IEC 9126
• Confiabilidade:
Conjunto de atributos que evidenciam a capacidade do software de
manter seu nível de desempenho sob condições estabelecidas
durante um período de tempo estabelecido.
• Eficiência:
Conjunto de atributos que evidenciam o relacionamento entre o nível
de desempenho do software e a quantidade de recursos usados, sob
condições estabelecidas.

22/03/2024 (C)2021-2024, PJandl. 39


ISO/IEC 9126
• Manutenibilidade:
Conjunto de atributos que evidenciam o esforço necessário para fazer
modificações especificadas no software.
• Portabilidade:
Conjunto de atributos que evidenciam a capacidade do software de
ser transferido de um ambiente para outro.

22/03/2024 (C)2021-2024, PJandl. 40


Outros fatores de qualidade
• Fidedignidade:
Até que ponto o software satisfaz seus requisitos – critérios de
avaliação: rastreabilidade, completude, consistência.
• Testabilidade:
Esforço necessário para garantir que o software desempenhe as
funções a que se destina – critério: simplicidade, modularidade,
instrumentação, capacidade de autodescrição.
• Integridade:
Extensão do controle de modificações ou acessos acidentais –
controle de acesso e auditoria de acesso.

22/03/2024 (C)2021-2024, PJandl. 41


ISO/IEC 25000
Série substituta
da ISO/IEC
9126

(C)2021-2024, PJandl. 22/03/2024 42


ISO/IEC 12207
• Define processo de desenvolvimento
de software e tem como objetivo
principal estabelecer uma estrutura
comum para os processos de ciclo de
vida de software visando ajudar as
organizações a compreenderem todos
os componentes presentes na
aquisição e fornecimento de software
e, assim, conseguirem firmar
contratos e executarem projetos de
forma mais eficaz.

(C)2021-2024, PJandl. 22/03/2024 43


ISO/IEC 12207
• Segundo o IEEE, um processo é uma sequência de passos realizados
para um determinado propósito.
• O processo de software envolve:
• métodos,
• técnicas,
• ferramentas e pessoas.
• Um processo pode ser descrito de duas formas:
• por propósito ou resultado e
• por atividade.

22/03/2024 (C)2021-2024, PJandl. 44


Descrição por Propósito ou Resultado
• É utilizada quando não há necessidade de detalhar o processo,
apenas indicar o objetivo e o resultado.
• Essa abordagem poderá ser utilizada na avaliação do processo em
relação aos modelos de maturidade de software como, por exemplo,
o modelo CMMI (Capability Maturity Model® Integration) e o modelo
da ISO/IEC 15504 (SPICE).

22/03/2024 (C)2021-2024, PJandl. 45


Descrição por Atividade
• É a abordagem mais conhecida e intuitiva.
• Nela são descritas as atividades com as interrelações e o algoritmo de
execução de cada atividade.
• As atividades devem atingir o propósito do processo.

22/03/2024 (C)2021-2024, PJandl. 46


22/03/2024 (C)2021-2024, PJandl. 47
ISO/IEC 12207
• Para isso deve adotar as premissas:
• Que procedimentos e métodos serão usados para a
execução das atividades;
• Que ferramentas e equipamentos suportarão a realização
das atividades, de forma a simplificar e automatizar o
trabalho;
• Qual o perfil adequado de quem irá executar as
atividades e qual o treinamento requerido nos
procedimentos, métodos, ferramentas para que se
possam realizar as atividades de forma adequada;
• Quais as métricas de processo que poderão ser
empregadas para que a execução do processo possa ter a
qualidade avaliada.

22/03/2024 (C)2021-2024, PJandl. 48


Processo de Software::definições

• Processo é uma sequência de passos realizados para um determinado


propósito (IEEE).
• Processo de software é conjunto de atividades, métodos, práticas e
tecnologias que as pessoas utilizam para desenvolver e manter software e
produtos relacionados (CMM).
• Capability Maturity Model (CMM) é uma metodologia usada para
desenvolver e refinar o processo de desenvolvimento de software de uma
organização. Este modelo descreve um caminho evolucionário e
incremental contendo cinco passos.

(C)2021-2024, PJandl. 22/03/2024 49


• Consiste em uma série de atividades,
práticas, eventos, ferramentas e métodos
Processo de que garantem, técnica e
Software::definiçõe administrativamente que o software pode
s ser desenvolvido com qualidade e de
maneira organizada, disciplinada e previsível.

22/03/2024 (C)2021-2024, PJandl. 50


Gerência do
Procedimentos
Processo
e Métodos
(métricas)

Processo de
Processo de Ferramentas e Software
bem
Equipamento

Software
definido

Pessoas com
habilidades,
treinamento e
motivação

22/03/2024 (C)2021-2024, PJandl. 51


Processo de Software::premissas
• Quais procedimentos e métodos serão usados para a execução das
atividades.
• Quais ferramentas e equipamentos suportarão a realização das
atividades, de forma a simplificar e automatizar o trabalho.
• Qual o perfil adequado das pessoas que executarão as atividades e
qual o treinamento requerido nos procedimentos, métodos,
ferramentas para que se possam realizar as atividades de forma
adequada;
• Quais as métricas de processo que poderão ser empregadas para que
a execução do processo possa ter a qualidade avaliada.
22/03/2024 (C)2021-2024, PJandl. 52
Modelos de Processos de
Software

• Uma das maiores


dificuldades encontradas
pelas empresas de
software é o
gerenciamento de seus
processos de software.

22/03/2024 (C)2021-2024, PJandl. 53


Modelos de Processos de Software
• Um modelo de processo procura descrever formalmente e de
maneira organizada todas as atividades que devem ser seguidas para
a obtenção segura de um produto de software.
• É importante escolher um modelo apropriado às metas da
organização e saber em que grau esse modelo será implementado.
• Os modelos CMM, SPICE e Bootstrap são padrões relacionados a
processos de software.

22/03/2024 (C)2021-2024, PJandl. 54


“Without requirements or design,
programming is the art of adding bugs
to an empty text file.”
“Sem requisitos ou design, a programação é a arte de adicionar bugs
à um arquivo de texto vazio.”

— Louis Srygley

22/03/2024 (C)2021-2024, PJandl. 55


Modelos de Processos de Software
Problemáticos
• Ad hoc, onde o processo é improvisado por
profissionais e gerências.
• Solto, quando não é rigorosamente seguido e
o cumprimento não é meticulosamente
controlado.
• Dependente, quando é altamente
dependente dos profissionais atuais.
• Opaco, quando há pouca visão do progresso e
da qualidade efetiva.

22/03/2024 (C)2021-2024, PJandl. 56


Modelos de Processos de Software
Imaturos
• Naqueles onde se admite que a qualidade do
produto pode ficar comprometida para que
prazos sejam cumpridos.
• Arriscado do ponto de vista do uso de novas
tecnologias e novos padrões.
• Quando se observam custos de manutenção
excessivos.
• Onde a qualidade difícil de prever ou verificar.

22/03/2024 (C)2021-2024, PJandl. 57


“The mark of a mature programmer
is willingness to throw out code you
spent time on when you realize it’s
pointless.”
“A marca de um programador maduro é a disposição de jogar
fora o código em que você gastou tempo quando percebe que é
inútil.”

— Bram Cohen

22/03/2024 (C)2021-2024, PJandl. 58


Modelos de Processos de
Software Maduros
• Coerente com as linhas de ação, o trabalho é
efetivamente concluído.
• Claramente definido, documentado e melhorado
constantemente em termos de sua:
• Compreensão
• Utilização
• Atividade e relevância.

22/03/2024 (C)2021-2024, PJandl. 59


Modelos de Processos de
Software Maduros
• Conta com o apoio visível da alta administração e
outras gerências.
• É bem controlado e mantém fidelidade ao
processo é objeto de auditoria e de controle.
• Fazem uso de várias medições do produto e do
processo.
• Efetua uso disciplinado da tecnologia

22/03/2024 (C)2021-2024, PJandl. 60


Maturidade do Processo de Software
• A qualidade do processo de software pode ser analisada por
intermédio do nível de maturidade do processo.
• A maturidade dos processos de software de uma organização
influencia a sua capacidade de atingir metas de custo, qualidade e
cronograma.

22/03/2024 (C)2021-2024, PJandl. 61


Valor das Melhorias no Processo de Software
• Oferecem um retorno no investimento que pode ser medido - quando
é medido.
• Benefícios adicionais são intangíveis e não podem ser quantificados
facilmente.

• O CMM é uma ferramenta útil para orientação no processo de


melhoria. Porém muito complexa para ser implementada (o que não
significa que não deve ser adotada, mas implantada de maneira
planejada e progressiva, nível a nível, até ser completada).

22/03/2024 (C)2021-2024, PJandl. 62


Referências

22/03/2024 (C)2021-2024, PJandl. 63


Referências para saber mais
• PRESSMAN, R. S.; MAXIM, B. R. Engenharia de Software. Grupo A:
2021.
• PÁDUA PAULA FILHO, W. D. Engenharia de Software: projetos e
processos. Volume 2. Grupo GEN: 2019.
• SOMMERVILLE, I. Engenharia de Software. 8ª Ed. Pearson: 2007.

22/03/2024 (C)2021-2024, PJandl. 64

Você também pode gostar