Você está na página 1de 34

Qualidade de software

Professor
Emiliano S.
[Versão 10 Ago/2019] Monteiro
1. Conceitos Básicos
• O que é qualidade? Existem diversas definições...
1. Qualidade é estar em conformidade com os requisitos dos
clientes (atender especificação)
2. Qualidade é antecipar e satisfazer os desejos dos clientes (g)
3. Qualidade é escrever tudo o que se deve fazer e fazer tudo o que
foi escrito
4. Qualidade, de forma simplista, significa que o produto deve esta
de acordo com a especificação (item 1)
1. Conceitos Básicos
• Qualidade de software é definida pelo IEEE (The Institute of
Electrical and Electronics Engineers) como "o grau com que um
sistema, componente ou processo atende aos requisitos
especificados e às expectativas ou necessidades de clientes ou
usuários".
• Já a ISO (The International Standards Organization) define
qualidade como "a totalidade de características de um produto ou
serviço que comprovam sua capacidade de satisfazer
necessidades especificadas ou implícitas"
1.1. Atributos relacionados com a qualidade

• Correção: Um software precisa funcionar corretamente. Um


software correto é aquele que satisfaz a sua especificação e que
não possui falhas ou erros.
• Validade: Um software válido é aquele cuja especificação satisfaz
aos requisitos dos usuários e da organização, isto é, está de acordo
com as necessidades dos usuários.
• Robustez: O software deve prever que o usuário pode agir de
forma não esperada e deve ser capaz de resistir a estas eventuais
situações incomuns, sem apresentar falhas.
1.1. Atributos relacionados com a qualidade

• Confiabilidade: Um software correto e robusto ganha a confiança


dos usuários uma vez que ele deve se comportar como esperado e
não falha em situações inesperadas.
• Eficiência: O software deve realizar suas tarefas em um tempo
adequado à complexidade de cada uma delas. A utilização dos
recursos de hardware (memória, disco, tráfego de rede) também
deve ser feita de forma eficiente.
• Reusabilidade: Diversos componentes de um software devem
poder ser reutilizados por outras aplicações.
1.1. Atributos relacionados com a qualidade

• Usabilidade: O software precisa ser fácil de aprender e de usar,


permitir maior produtividade do usuário, flexibilidade de utilização,
flexibilidade de aplicação e proporcionar satisfação de uso.
• Manutenibilidade: Todo software precisa de manutenção, seja para
corrigir erros ou atender a novos requisitos. O software deve ser
fácil de manter para que estas correções ou atualizações sejam
feitas com sucesso.
• Evolutibilidade: Todo software precisa evoluir para atender novos
requisitos, para incorporar novas tecnologias ou para expansão de
sua funcionalidade.
1.1. Atributos relacionados com a qualidade
• Portabilidade: O software deve poder ser executado no maior
número possível de equipamentos de hardware.
• Interoperabilidade: Software em diferentes plataformas devem
poder interagir entre si. Esta qualidade é essencial em sistemas
distribuídos uma vez que o software pode estar sendo executado
em diferentes computadores e sistemas operacionais. É
interessante que diferentes elementos de software distintos
possam ser utilizados em ambos. Por exemplo, uma certo arquivo
com uma imagem feita num aplicativo deve poder ser vista em
outros aplicativos. Conhecida também como compatibilidade.
1.2. Definição de “galhofeiro”

• “todo programa faz alguma coisa certa; talvez


apenas não seja a coisa que queremos que ele
faça”.

• Fonte: PRESSMAN, Roger. Engenharia de


Software, Makron Books, São Paulo, 1995.
P724.
1.3. Definição de Qualidade de Pressman

• “Conformidade a requisitos funcionais e de


desenvolvimento explicitamente declarados, a padrões
de desenvolvimento claramente documentados e a
características implícitas que são esperadas de todo
software profissionalmente desenvolvido”.

• Fonte: PRESSMAN, Roger. Engenharia de Software,


Makron Books, São Paulo, 1995. P724.
1.4. Indícios de falta de qualidade

• Falta de conformidade ou falta de


implementação de requisitos significa falta de
qualidade.
1.4. Indícios de falta de qualidade
• Egito antigo, uso do padrão de medida cubito - O resultado foi
que as suas obras tinham precisão na ordem de 0,05%
• Na França as catedrais eram construídas com compassos simples
e cordas com nós em intervalos regulares.
• A revolução industrial iniciou o processo de melhoria contínua.
• Na década de 1920 surge o controle estatístico de produção.
• Na década de 1940, surge a ISO (International Standard
Organization), o Japão se destaca com diversas contribuições
para a qualidade como: o método 5S e o diagrama de causa e
efeito ou diagrama de ishikawa.
• ABNT foi fundada na década de 1940.
1.5. Definição de Crosby (1992)

A qualidade é a conformidade aos requisitos


1.5.1. 3 fatores que podem mudar a definição de Crosby

1)A qualidade de um produto é dada pela diferença entre


as características observadas e as características que
foram especificadas para sua construção
2)Erros de medição que podemos controlar
3)Pontos de vista de diferentes stakeholders(clientes
[partes interessadas])
1.6. Como garantir a qualidade?
StarUML, Kanban Visual Studio
Scrum MS Project

1. Com métodos e ferramentas de análise, projeto, codificação e teste;


2. Com revisões técnicas formais que são aplicadas durante cada fase da
engenharia de software; Testes de
integração
3. Usando uma estratégia de teste de múltiplas fases;
4. No controle da documentação do software e das mudanças feitas Doxygen
nela;
5. Com um procedimento para garantir a adequação aos padrões de
Processo de
desenvolvimento de software, se eles forem aplicados; software
6. Com mecanismos de medição e divulgação de resultados. (Scrum)

IDE, Graylog, eureka log,


Mantis Bug Tracker, Splunk
1.7. Análise e especificação

Análise Descrição Documentação e


do do validação
problema problema

Especificação dos
Análise dos requisitos requisitos
Investigação! Registros

O produto final atende ao que foi especificado?


1.7.1. Especificação de requisitos = base para qualidade

• O SRS (Software Requirements Specification [Especificação de requisitos de


software]) é basicamente a compreensão de uma organização e cliente (por
escrito) de um requisitos do sistema para este potencial cliente e realizado em
determinado ponto no tempo (geralmente) antes de qualquer projeto real ou
trabalho de desenvolvimento tenha início.
• É uma apólice de seguro de duas vias, que assegura que tanto ao cliente como
para a organização entender as necessidades de ambas as partes.

SRS é a base de processos de fiscalização.


1.7.2. Fontes de requisitos de softwares

Gerentes

Operadores Leis e regulamentos

Software

Compradores Analistas

Programadores
1.8. O que é um produto de software?

• Produto de software = programas de computador (fontes


e executáveis) + documentação associada.
• Os produtos de software podem ser:
1. Personalizado / customizado / parametrizar -
desenvolvido para um cliente específico, de acordo com
suas especificações.
2. Genérico ("pacote") - desenvolvido para um mercado
geral, para ser vendido a uma gama de clientes
diferentes. Off the shelf – Software de prateleira.
1.8. O que é um produto de software?

• Tipos de produtos de software:


1. Software de suporte empresarial: Software utilizado para
manter um determinado negócio operando.
2. Software de desenvolvimento: ferramentas de
engenharia de software bem como IDE e compiladores
para a produção de artefatos de software.
3. Software de produtividade pessoal: Planilhas,
ferramentas de processamento de texto, ... Software
embutido (prateleira)
1.9. A importância do software
1. As economias de TODOS os países desenvolvidos dependem do
software.
2. Cada vez mais sistemas são controlados por software Incluindo um
número crescente de sistemas críticos e de missão crítica, com altas
exigências de confiabilidade.
3. Mais e mais empresas dependem do software para o seu sucesso.
4. Software e Sistemas de Informação são fatores críticos de sucesso em
um número crescente de empresas e organizações.
5. As despesas de engenharia de software (no desenvolvimento e
manutenção de produtos de software) representam uma fração
significativa do PIB (Produto Interno Bruto) em todos os países
desenvolvidos.
1.10. Software rodando por longo período perde a qualidade?

1. Um programa executando continuamente por um


longo período de tempo (sem desligar) pode
funcionar cada vez mais lento ou mesmo falhar, por
exemplo.
2. Devido a problemas de memória ou fragmentação
de memória.
3. A qualidade original é restaurada desligando e
reiniciando.
1.10. Software rodando por longo período perde a qualidade?

• Você conhece produtos antigos com problemas de execução?


1. O desempenho diminui com o número de usuários simultâneos e o tamanho
dos dados.
2. Pode requerer atualização de hardware e, consequentemente, atualização de
software.
3. A manutenção diminui com o tempo.
4. Pode requerer manutenção preventiva (migração para tecnologias conhecidas).
5. O software torna-se obsoleto muito rapidamente: Devido à rápida evolução da
tecnologia, requisitos ou conhecimentos.
6. Às vezes o software é usado por mais tempo do que o esperado (bug Y2K)
Requer inovação e evolução contínuas.
1.11. Principais fatores de qualidade do produto

• Qualidade do processo:
1. Um bom processo é geralmente necessário para produzir
um bom produto!
2. Para os bens manufaturados, o processo é o principal
determinante da qualidade.
3. Para a atividade baseada em projeto (como o
desenvolvimento de software), outros fatores também
estão envolvidos especialmente as capacidades dos
projetistas.
1.11. Principais fatores de qualidade do produto

• Para projetos de grande porte com capacidades 'médias',


o processo de desenvolvimento determina a qualidade
do produto.
• Qualidade das pessoas:
1. Para projetos pequenos, as capacidades dos
desenvolvedores são o principal determinante.
2. Corolário: você precisa de pessoas de qualidade inferior
(e processo de qualidade superior) em projetos maiores?
3. Tamanho do Projeto x Pessoas Qualidade = Constante?
1.11. Principais fatores de qualidade do produto

• Tamanho do Projeto x Pessoas Qualidade =


Constante?
• Tecnologia de desenvolvimento:
1. É particularmente importante para pequenos
projetos.
• Orçamento e cronograma:
1. Em todos os projetos, se um cronograma irreal é
imposto, a qualidade do produto sofrerá.
1.23. White label
• São produtos re-rotulados, com rótulos de terceiros.
• Uma determinada empresa X adquire o produto Y da empresa Z
para revendê-lo com o rótulo seu rótulo X.
• Desta forma a empresa X lança no mercado produtos com seu
rótulos sem ter investido em tecnologia e pesquisa. A empresa Z é
quem investe em P&D.
• Para a empresa Z, ela tem um único cliente garantido, esta empresa
não aparece para o consumidor final.
• Para a empresa X, ela adicionar mais um produto no seu portfolio.
• Para o cliente o produto que esta adquirindo é fabricado pela
empresa X.
Microsoft bot services
Empregos
Referências bibliográficas

Você também pode gostar