Você está na página 1de 42

Engenharia de Software II

Engenharia de Software II

Fonte: Internet

A engenharia de Software surgiu como o objetivo de melhorar o processo de desenvolvimento de


software, bem como a qualidade do produto de software produzido.

Engenharia de Software II Prof. Airton Rovaron 1


Engenharia de Software II

Objetivos Específicos
Apresentar ao aluno conceitos de qualidade de produto e de processo, bem como os modelos de
qualidade de software. Conscientizar os alunos sobre a importância da Verificação e Validação para a
qualidade do software que é produzido, bem como a importância dos testes e seu impacto nos custos
de desenvolvimento do software. Apresentar as atividades de teste e as principais técnicas
empregadas. Apresentar ao aluno a importância da manutenção no ciclo de vida de um software.
Mostrar que esta atividade envolve não somente o código, mas também todos os documentos do
projeto.

COMPETÊNCIAS
Entender a aplicação clara da gerência de configuração. Construir ambientes de teste e validação devidamente
dimensionados para o artefato a ser entregue.

Engenharia de Software II Prof. Airton Rovaron 2


Engenharia de Software II

Conteúdo Programático

1. Qualidade de software
 Conceitos de qualidade de produto e de processo
 Qualidade do produto de software: ISO/IEC 9126 e ISO 25000
 Sistemas da Qualidade: ISO 90003 e ISO 9001
 Processos do Ciclo de Vida do Software: ISO 12207
 Modelos de qualidade de software

•CMMI (Capability Maturity Model Integration)

•MPS.Br (Melhoria de Processos de software Brasileiro)

•SPICE - ISO 15504

Engenharia de Software II Prof. Airton Rovaron 3


Engenharia de Software II

Conteúdo Programático

2. Verificação e Validação de software


 Definição e importância da Verificação e Validação ao longo do ciclo de vida
 Classificação das técnicas
 Revisões técnicas: Passeio (walkthrough); Inspeção do produto
 Abordagens formais: Prova de correção; O processo sala limpa (clean room)
 Testes: Fundamentos; Os testes e o ciclo de vida
 Testes unitários: Testes Estruturais; Testes Funcionais
 Outras estratégias de teste

Engenharia de Software II Prof. Airton Rovaron 4


Engenharia de Software II

Conteúdo Programático
3. Manutenção de software
 Manutenção: definição e características
 Manutenabilidade
 Processos de Manutenção
 Técnicas de Desenvolvimento para a Manutenabilidade
 Padrões de Desenvolvimento
 Padrões de Manutenção
 Desenvolvimento Baseado em Componentes e Impactos na Manutenção
 Desenvolvimento Orientado a Aspectos e Impactos na Manutenção
 Atividades de Apoio a Manutenção
4. Gerência de Configuração

Engenharia de Software II Prof. Airton Rovaron 5


Engenharia de Software II

Bibliografia Básica

PAULA FILHO, W. P. Engenharia de software: fundamentos, métodos e padrões. 3. ed. Rio de Janeiro: LTC,
2011.
PFLEEGER, S. L. Engenharia de software: teoria e prática. 2. Ed. Rio de Janeiro: Elsevier, 2001/07.
PRESSMAN, R. S. Engenharia de software. 6. ed. São Paulo: Pearson, 1995/10.

Engenharia de Software II Prof. Airton Rovaron 6


Engenharia de Software II

Bibliográfia Complementar

CARVALHO, A. M. B. R. Introdução a engenharia de software. São Paulo: UNICAMP, 2001.


KOSCIANSKI, A.; SOARES, M. S. Qualidade de software. 2.ed. Rio de Janeiro: Novatec, 2010.
REZENDE, D. A. Engenharia de software e sistemas de informação. 2. ed. São Paulo: Brasport, 2002.
SOMMERVILLE, I. Engenharia de software. 8. ed. São Paulo: Pearson, 2007/08/10.
COSTA, Ivanir; MOLLO NETO, Pedro Luiz de Oliveira; CARDOSO JÚNIOR, Jarbas Lopes. Qualidade em tecnologia da
informação: conceitos de qualidade nos processos, produtos, normas, modelos e testes de software no apoio às estratégias
empresariais. São Paulo: Atlas, 2013

Engenharia de Software II Prof. Airton Rovaron 7


Engenharia de Software II

Horário

19h10
20h25 – 20h45 intervalo
22h00

Engenharia de Software II Prof. Airton Rovaron 8


Engenharia de Software II

O que significa qualidade para você?

Qualidade é um conceito subjetivo, é o modo de ser, é a propriedade de qualificar os mais diversos


serviços, objetos, indivíduos etc.

Do latim qualitate. Qualidade está relacionado às percepções de cada indivíduo e diversos fatores
como cultura, produto ou serviço prestado.

Engenharia de Software II Prof. Airton Rovaron 9


Engenharia de Software II

O que é qualidade?

Qualidade é o grau de utilidade esperado ou adquirido de qualquer coisa, verificável através da forma
e dos elementos constitutivos do mesmo e pelo resultado do seu uso. A palavra "qualidade" tem um
conceito subjetivo que está relacionada com as percepções, necessidades e resultados em cada
indivíduo.

O conceito de qualidade é comumente associado as definições de desempenho ou conformidade de


um produto ou serviço, englobando a visão geral sobre suas especificações e acompanhando a
satisfação do atendimento até o suporte técnico.

O que é e para que serve a qualidade de software

No desenvolvimento a qualidade de software é a área responsável por avaliar e garantir o


desenvolvimento de um software de acordo com as boas práticas técnicas da literatura, cumprindo os
requisitos do sistema de acordo com o objetivo final do projeto.

Engenharia de Software II Prof. Airton Rovaron 10


Engenharia de Software II

O que é qualidade de software?

A qualidade de software refere-se à excelência e precisão do software em atender aos requisitos e


expectativas do cliente.

Envolve a implementação de processos e padrões para garantir que o software desenvolvido seja
confiável, eficiente e seguro.

Engenharia de Software II Prof. Airton Rovaron 11


Engenharia de Software II

"Aquele que desenvolve software melhor, mais barato e mais rápido será o líder com enorme
vantagem econômica.
A chave para o sucesso no desenvolvimento de software vai depender do processo de software usado
para construí-los.
Raman,S,It is Software Process: Next Millennium Software Quality Key,
IEEE AES Systems Magazine, junho 2000

Engenharia de Software II Prof. Airton Rovaron 12


Engenharia de Software II

Importância da qualidade de software


A qualidade de software é crucial para garantir a satisfação do cliente, minimizar custos com
manutenção e suporte, e estabelecer a reputação da empresa como fornecedora de soluções
confiáveis. Além disso, softwares de baixa qualidade podem resultar em perda de dados, danos à
marca e problemas de segurança.

Satisfação do Cliente
 A qualidade do software impacta diretamente na satisfação do cliente, uma vez que softwares de alta qualidade funcionam conforme
esperado.

Custo e Reputação
 Softwares de baixa qualidade podem gerar altos custos com suporte e manutenção, além de prejudicar a reputação da empresa.

Segurança e Confiabilidade
 Software de qualidade é essencial para garantir a segurança dos dados e a confiabilidade das operações de negócios.

Engenharia de Software II Prof. Airton Rovaron 13


Engenharia de Software II

Princípios da qualidade de software


Os princípios da qualidade de software são fundamentais para orientar o desenvolvimento e a manutenção de
softwares de alto padrão. Eles incluem foco no cliente, liderança, engajamento das pessoas, abordagem de
processo e melhoria contínua.

Foco no cliente
Entender e atender às necessidades do cliente é essencial para garantir a qualidade do software.

Melhoria Contínua
A busca constante pela excelência e aprimoramento dos processos são essenciais para
a qualidade de software.

Engajamento das Pessoas


O envolvimento e capacitação das equipes são fundamentais para garantir a qualidade
em todas as etapas do desenvolvimento.

Fonte: Internet

Engenharia de Software II Prof. Airton Rovaron 14


Engenharia de Software II

Processo de garantia de qualidade de software


O processo de garantia de qualidade de software envolve a definição de padrões e práticas, revisões de
código, testes de software abrangentes e a implementação de ferramentas de qualidade. Esse processo visa
garantir que o produto final atenda aos requisitos de qualidade estabelecidos.

Definição de Padrões
Estabelecer os critérios e requisitos de qualidade que guiarão todo o processo de desenvolvimento .

Revisões de Código
Análise detalhada do código-fonte para identificar possíveis erros e inconsistências .

Testes Abrangentes
Realização de testes funcionais, de desempenho, segurança e usabilidade para garantir a qualidade do
software.

Engenharia de Software II Prof. Airton Rovaron 15


Engenharia de Software II

Métricas de qualidade de software


As métricas de qualidade de software são indicadores quantitativos que permitem avaliar o nível de
qualidade de um software em diferentes aspectos, como desempenho, confiabilidade, segurança e
facilidade de manutenção.

Desempenho Mede a eficiência e a capacidade de resposta do software em diferentes condições de uso.

Confiabilidade Avalia a capacidade do software de manter suas funcionalidades e desempenho ao


longo do tempo.

Segurança Indica o nível de proteção oferecido contra ameaças e vulnerabilidades.

Engenharia de Software II Prof. Airton Rovaron 16


Engenharia de Software II

Testes de qualidade de software


Os testes de qualidade de software são essenciais para identificar defeitos, verificar a conformidade com os
requisitos e garantir que o software atenda às expectativas do cliente. Eles incluem testes de unidade,
integração, sistema e aceitação do usuário.

Testes de Unidade
Verificam se cada unidade ou componente do software funciona conforme o esperado.

Testes de Integração
Avaliam a interação entre diferentes partes do software e suas funções integradas.

Testes de Aceitação do Usuário


Garantem que o software funciona de acordo com as expectativas e necessidades do usuário final.

Engenharia de Software II Prof. Airton Rovaron 17


Engenharia de Software II

Melhoria contínua da qualidade de software


A melhoria contínua da qualidade de software envolve a revisão constante dos processos, a coleta e análise
de feedback, e a atualização de práticas e ferramentas para garantir que a qualidade do software esteja
sempre sendo aprimorada.

Revisão de Processos
Revisão periódica dos processos para identificar áreas de melhoria e implementar mudanças.

FeedBack dos Usuários


Avaliação contínua do feedback dos usuários para identificar oportunidades de melhoria.

Atualização de Práticas
Adoção de novas práticas, metodologias e ferramentas alinhadas com as melhores práticas da
indústria.

Engenharia de Software II Prof. Airton Rovaron 18


Engenharia de Software II

Desafios na garantia de qualidade de software


Alguns dos desafios na garantia de qualidade de software incluem a evolução constante das tecnologias, a
complexidade dos sistemas, a variabilidade de requisitos e a necessidade de equilibrar agilidade e qualidade.

Evolução das Tecnologias


A rápida evolução das tecnologias requer adaptação constante das práticas de qualidade de software.

Complexidade dos Sistemas


Sistemas complexos exigem estratégias de teste e garantia de qualidade mais sofisticadas e abrangentes.

Equilibrio entre Agilidade e Qualidade


O desafio de entregar software de alta qualidade dentro de prazos curtos associados a metodologias
ágeis.

Engenharia de Software II Prof. Airton Rovaron 19


Engenharia de Software II

Base da Qualidade

Fonte : Internet

Engenharia de Software II Prof. Airton Rovaron 20


Engenharia de Software II

Fases do processo de desenvolvimento de Software

Fonte : Internet

Engenharia de Software II Prof. Airton Rovaron 21


Engenharia de Software II

Definição de Processo de Software

Processo: Sequencia de passos realizados para um determinado propósito (IEEE)

Processo de Software: Conjunto de atividades, tarefas, métodos, práticas e tecnologias que as pessoas
utilizam para desenvolver e manter software e produtos relacionados. (CMMi)

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

Engenharia de Software II Prof. Airton Rovaron 22


Engenharia de Software II

Modelos de Processos de Software

Uma das maiores dificuldades encontradas pelos desenvolvedores de software é o gerenciamento de


seus processos de desenvolvimento 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 as metas da organização e saber o grau em que esse modelo
será implementado

Engenharia de Software II Prof. Airton Rovaron 23


Engenharia de Software II

Processos Imaturos de desenvolvimento de Software

AD HOC: Processo improvisado por profissionais e gerências;


Não é rigorosamente seguido e o cumprimento não é controlado.


Altamente dependente dos profissionais


Baixa visão do progresso e da qualidade


Engenharia de Software II Prof. Airton Rovaron 24


Engenharia de Software II

Processos Imaturos de desenvolvimento de Software

A qualidade do produto pode ficar comprometida para que os prazos sejam cumpridos;

Custos de manutenção excessivos;


Qualidade difícil de se prever.


Engenharia de Software II Prof. Airton Rovaron 25


Engenharia de Software II

Processos Maturos de desenvolvimento de Software

A qualidade do processo de software pode ser analisada por meio do nível de maturidade do

processo;

A maturidade dos processos de software de uma organização influencia na sua capacidade de atingir

metas de custos, qualidade e cronograma.

Engenharia de Software II Prof. Airton Rovaron 26


Engenharia de Software II

Valor da Melhoria de Processo de Desenvolvimento

A melhoria do processo de desenvolvimento oferece um retorno no investimento que pode ser


medido, quando é medido.

Benefícios adicionais são intangíveis e não podem ser quantificados facilmente.


Engenharia de Software II Prof. Airton Rovaron 27


Engenharia de Software II

Visão profissional de qualidade

Qualidade está relacionada com os Requisitos (expectativas e necessidades) designados para o produto e ou serviço.

As não conformidades aos requisitos são consideradas defeitos, falta de qualidade

Qualidade pode e deve ser medida, definida, monitorada, gerenciada e melhorada

Engenharia de Software II Prof. Airton Rovaron 28


Engenharia de Software II

V
I
S D
à E Facilidade de Uso, Desempenho,
O usuário Confiabilidade dos Resultados, Preço do
Software, etc.
P Q
R U
O A
Taxa de defeitos, Facilidade de
F desenvolvedor Manutenção e Conformidade em relação
L
I I aos Requisitos de Usuários, etc
S D
S A
I D
O E Cumprimento de Prazo, Boa Previsão de
N organização Custo, Boa Produtividade
A
L

Engenharia de Software II Prof. Airton Rovaron 29


Engenharia de Software II

PORQUE SE CERTIFICAR-SE?

Entre os principais benefícios de adotar o controle de qualidade no desenvolvimento de softwares


está a redução de custos.

Pois, ao prevenir e identificar possíveis falhas, é possível corrigir o desvio a tempo e diminuir o
impacto posterior..

COMO OBTER A CERTIFICAÇÃO?

Obter a certificação de qualidade de software é um objetivo importante para empresas e


profissionais da área de desenvolvimento de software.

Essa certificação demonstra a capacidade da empresa em fornecer produtos de alta qualidade,


processos eficientes e uma cultura de melhoria contínua.

No entanto, para obter essa certificação, é necessário cumprir uma série de requisitos específicos.

Engenharia de Software II Prof. Airton Rovaron 30


Engenharia de Software II

Principais requisitos

1. Estabelecer um sistema de gestão da qualidade


Um dos requisitos fundamentais para a certificação de qualidade de software é a implementação de
um sistema de gestão da qualidade, baseado em normas e padrões reconhecidos internacionalmente,
como a ISO 9001. Esse sistema irá estabelecer os processos, procedimentos e controles necessários
para garantir a qualidade em todas as etapas do desenvolvimento de software.

2. Documentação de processos
A certificação de qualidade de software exige que a empresa tenha documentado todos os processos
relacionados ao desenvolvimento de software, desde a análise de requisitos até a entrega final do
produto. Essa documentação deve ser clara, completa e atualizada, facilitando a compreensão e o
acompanhamento de todas as etapas do processo.

Engenharia de Software II Prof. Airton Rovaron 31


Engenharia de Software II

3. Controle de qualidade e testes

A certificação também requer que a empresa tenha um sólido processo de controle de qualidade e
testes de software. Isso inclui a definição de critérios de qualidade, a realização de testes e análises
rigorosas, a identificação e correção de defeitos, entre outros aspectos relacionados à garantia da
qualidade do produto final.

4. Capacitação e desenvolvimento de equipe

Para obter certificação de qualidade de software, é fundamental investir na capacitação e


desenvolvimento da equipe.
Os profissionais envolvidos no desenvolvimento de software devem ter o conhecimento e as
habilidades necessárias para garantir a qualidade do produto. Isso pode envolver treinamentos, cursos,
certificações específicas da área, entre outras ações de capacitação.

Engenharia de Software II Prof. Airton Rovaron 32


Engenharia de Software II

5. Auditorias internas e externas

A certificação de qualidade de software envolve auditorias internas e externas para verificar a


conformidade com os requisitos estabelecidos.
Essas auditorias são realizadas por empresas certificadoras, que avaliam se a empresa está aderente
aos padrões estabelecidos e se o sistema de gestão da qualidade está sendo efetivamente
implementado.

Benefícios da certificação de qualidade de software

A obtenção da certificação de qualidade de software traz uma série de benefícios tanto para a empresa
quanto para os profissionais envolvidos no desenvolvimento de software

https://awari.com.br/guia-completo-para-obter-certificacao-de-qualidade-de-software/?utm_source=blog&utm_campaign=projeto+blog&utm_medium=Guia%20Completo%20Para%20Obter
%20Certifica%C3%A7%C3%A3o%20De%20Qualidade%20De%20Software

Engenharia de Software II Prof. Airton Rovaron 33


Engenharia de Software II

Certificação

Não se pode pensar na certificação como uma ação isolada e pontual, mas sim como um processo que se inicia com a
conscientização da necessidade da qualidade para a manutenção da competitividade e consequente permanência no
mercado, passando pela utilização de normas técnicas e pela difusão do conceito de qualidade por todos os setores da
empresa, abrangendo seus aspectos operacionais internos e o relacionamento com a sociedade e o ambiente.

Marcas e Certificados de Conformidade da ABNT são indispensáveis na elevação do nível de qualidade dos produtos,
serviços e sistemas de gestão.

A certificação melhora a imagem da empresa e facilita a decisão de compra para clientes e consumidores.

Engenharia de Software II Prof. Airton Rovaron 34


Engenharia de Software II

ABNT
Fundada em 1940, a ABNT – Associação Brasileira de Normas Técnicas – é o órgão responsável pela
normalização técnica no país, fornecendo a base necessária ao desenvolvimento tecnológico
brasileiro.

É uma entidade privada, sem fins lucrativos, reconhecida como Fórum Nacional de Normalização –
ÚNICO – através da Resolução n.º 07 do CONMETRO, de 24.08.1992.
É membro fundador da ISO (International Organization for Standardization), da COPANT (Comissão
Panamericana de Normas Técnicas) e da AMN (Associação Mercosul de Normalização).

Engenharia de Software II Prof. Airton Rovaron 35


Engenharia de Software II

O que é ISO ?

A International Standards Organization, (fundada em 1947) mais conhecida como ISO é o organismo
que estabelece os padrões internacionais de trabalho e de garantia de qualidade nas empresas.

Desde 1987 foi criada uma série de normas, conhecidas como ISO 9000, que deram início a um
sistema de gestão da qualidade. É um sistema da qualidade, modelo para garantia da qualidade em
produção, instalação e serviços.

Engenharia de Software II Prof. Airton Rovaron 36


Engenharia de Software II

A norma ISO faz parte de um conjunto de normas de Garantia da Qualidade (ISO série 9000). São
avaliados tanto aspectos diretamente relacionados com o produto ou serviço prestado pela Empresa,
quanto aspectos gerenciais como Política da Qualidade, Controle de Aquisições, Treinamento e
Auditorias Internas.

O objetivo de tais normas é garantir a satisfação dos clientes por meio da prevenção de falhas (ou
não-conformidades) em todos os estágios do serviço sob consideração.

Engenharia de Software II Prof. Airton Rovaron 37


Engenharia de Software II

Resumidamente: “QUALIDADE” é conformidade com requisitos, e este devem estar definidos para
permitir que sejam gerenciados com o uso de medidas (métricas), de forma a reduzir o retrabalho, e
aumentar a produtividade.

A melhoria da qualidade deve estar focada nos processos, e não nas pessoas; certamente, é
responsabilidade de todos os envolvidos no processo.

A satisfação com o produto está relacionada com seu desempenho e com a ausência de defeitos, erros
ou falhas. Portanto, a satisfação com o produto é alcançada quando as necessidades do cliente são
supridas, e o produto se comporta como é esperado.

Os requisitos representam as necessidade explicitas dos clientes e devem procurar cobrir a maior
parte das necessidades por eles declaradas em relação ao produto.

Engenharia de Software II Prof. Airton Rovaron 38


DÚVIDAS

“Você quer achar a pessoa que pode te ferrar??


Vai pro espelho toda manhã....é você!
Ninguém tem poder sobre você, a não ser que você deixe.
Então você vai ter um grande inimigo, se ele for você mesmo.” (Geraldo Rufino)

Engenharia de Software II Prof. Airton Rovaron 39


EXERCICIOS

Engenharia de Software II Prof. Airton Rovaron 40


FIM DE AULA

OBRIGADO POR TEREM VINDO

BOM RETORNO À TODOS

BOA NOITE.

Engenharia de Software II Prof. Airton Rovaron 41


BIBLIOGRAFIA

https://awari.com.br/guia-completo-para-obter-certificacao-de-qualidade-de-software/?utm_source=blog&utm_campaign=projeto+blog&utm_medium=Guia%20Completo%20Para
%20Obter%20Certifica%C3%A7%C3%A3o%20De%20Qualidade%20De%20Software – acessado janeiro/2024.

Engenharia de Software II Prof. Airton Rovaron 42

Você também pode gostar