Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Engenharia e Projeto de 
Software
Evolução do Software Sistemas 
Legados e Manutenção
Aula 1
O desenvolvedor deve conhecer o ambiente onde atua, 
para tanto deve conhecer e compreender:
Objetivo da Engenharia de Software
O que sistemas legados.
A evolução dos sistemas de software.
O processo de manutenção de um sistema 
de software.
Quais estratégias devem seguir
para assegurar o funcionamento
adequado dos sistemas.
Objetivos
Esta teleaula contempla o estudo sobre os 
conceitos, características e processos de evolução 
de software, especificamente sobre os sistemas 
legados e o processo de manutenção de um 
sistema de software.
Palavras-chave: Evolução de software, 
manutenção de software, sistemas legados.
Resumo
Objetivo de melhorar a qualidade 
dos produtos de software e 
aumentar a produtividade no 
processo de desenvolvimento.
Engenharia de Software
Engenharia de Software
Vídeo
Fonte:
https://www.youtube.com/watch?v=wdU9L3DqU2w
Acesso em: 17 Jan 2019.
Para atingir resultados esperados, é necessário:
Conhecer conceitos, métodos e ferramentas.
Considerar as restrições organizacionais e financeiras.
Dominar o processo de desenvolvimento de software 
(PDS): Escopo, Orçamento, Prazo, Pessoal e Qualidade.
Manter um software.
Gerenciar um Projeto de Software.
Engenheiros...
• Por que deve entender a 
evolução de software?
• Devemos manter ou trocar 
um sistema legado?
1. Evolução dos sistemas
Fonte: Do Autor
1. Evolução dos sistemas
As necessidades do negócio impulsiona mudanças 
nos sistemas, provocando alterações nas aplicações.
A equipe de desenvolvimento desenvolve, evolui e 
mantém. 
Toda alteração do software requer o gerenciamento 
das atividades em todas as fases.
Fonte: Do Autor
A evolução: 
� Identificação da 
mudança
� Proposta de mudança
� Processo de evolução 
de software
� Nova versão.
1. Evolução e Legado
O Legado: sistema com 
tecnologia desatualizada
fundamental para o negócio 
Fonte: Do Autor
Mudança contínua para evitar ficar inútil.
Complexidade pela mudanças constantes.
Manter a estabilidade organizacional exige constante 
alteração.
Crescimento contínuo, manter a satisfação do 
usuário.
Evitar o declínio da qualidade.
Conservação da
familiaridade.
1. Evolução – Leis de Lehman
São sistemas já existentes!
Muitos podem apresentar algumas das características a 
seguir:
� software mais velhos que são vitais para uma 
organização;
� passaram por diversas mudanças ocasionadas por 
fatores internos e externos;
� foram desenvolvidos 
utilizando tecnologia que 
hoje são ultrapassadas;
� são antigos, mas ainda são 
necessários ao negócio.
1. Sistemas legados
Os sistemas legados incorporam um grande número 
de alterações, feitas com o decorrer do tempo de uso 
do software, onde muitas pessoas, diferentes, 
realizaram essas mudanças, e é incomum que 
qualquer pessoa tenha uma 
compreensão completa do 
sistema.
1. Sistemas legados
As mudanças geram requisitos de
software novos ou modificados!
Migração de Sistemas Legados
Vídeo
Fonte: https://www.youtube.com/watch?v=yW7aIwgGE7Y
Acesso em: 17 Jan 2019.
Reflita: Num processo da mudança de um sistema 
legado, qualquer documentação incosistente poderá 
causar danos irreparáveis.
Qual fatores de mudança considera mais relevante em 
relação as Leis de Lehman? 
Envie a sua experiência 
em mundaça ou 
substituição de sistema.
Atividade 1
Há um risco empresarial significante descartando 
um sistema legado e substituindo por um novo 
sistema, utilizando tecnologia mais modernas, 
como:
� sistemas legados raramente têm uma 
especificação completa
� Falta ou falha na documentação e ainda, principais 
mudanças não tenham sido documentadas
2. Sistemas legados - Substituição
� o sistema pode embutir regras empresariais que 
não estão documentadas formalmente em outro 
lugar
� processos empresariais e a forma como os mesmos 
operam estão quase sempre entrelaçados, uma vez 
que se o sistema for substituído, esses processos 
também deverão ser modificados
2. Sistemas legados - substituição
� a estrutura do sistema pode estar corrompida devido 
aos muitos anos de manutenção;
� o sistema pode ter sido otimizado para melhorar a 
utilização de espaço ou a velocidade de execução, em 
vez de ser escrito para facilitar a compreensão;
� estruturas de arquivo usadas podem ser 
incompatíveis.
2. Sistemas legados - Substituição
Riscos em mudar o sistema legado para um novo:
� Documentação incompleta.
� Documentação desatualizada.
� Complexidade das regras de negócios (RN).
� A implementação reflete a complexidade das RN.
� Apenas o código-fonte 
reflete a realidade 
da organização.
2. Legados: substituição
Diferentes tecnologias.
Profissionais diferentes.
Novas possibilidades de
operacionalizar o sistema.
Diferença na performance.
Estrutura e Banco de Dados
diferentes.
2. Legados: fatores de mudança
Fonte: Do AutorFonte: Do Autor
Analisar o risco antes de substituir. 
Analisar o custo da manutenção.
Aplicar a Reengenharia.
Refatorar.
Prolongar a vida útil do sistema.
2. Legados: dilemas
Escopo da engenharia de sistema
E da engenharia de software
2. Legados: estruturas envolvidas
Fonte: Ian Sommerville, 9ª edição
Da política e regra de negócio
até o Hardware do sistema
devem ser detalhadamente
analisados.
2. Legados: componentes envolvidos
Fonte: Do Autor
Vários aplicativos e 
vários bancos de dados.
2. Legados: aplicações e BD
Fonte: Do Autor
Vários aplicativos 
concentrados num só BD.
2. Legados: aplicações e BD
Fonte: Do Autor
2. Legados: qualidade x valor de negócio
Fonte: Do Autor
Perguntas
Tornar a usabilidade do software.
Mínimo de custo.
Máximo de funcionalidades
para o Negócio.
Manutenção
A manutenção de software é o processo geral de 
modificação de um sistema depois que ele foi colocado em 
uso.
Uma vez em operação, alguns defeitos não foram 
cobertos, o ambiente operacional muda e novos requisitos 
de usuário surgem. A fase de manutenção do ciclo de vida 
inicia após um período de garantia ou de suporte pós-
implementação, 
mas as atividades de 
manutenção ocorrem 
muito antes. 
Fonte: Traduzido de SWEBOK, 2004 
3. Manutenção
Simples: destinadas a corrigir erros de código 
(exaustão).
Mais extensas: a fim de corrigir os erros de 
projeto (reengenharia/refatoração).
Significativas: com a finalidade de corrigir erros 
de especificação ou acomodar novos requisitos 
(envolve o usuário).
3. Manutenção: abrangência
Fonte: Sommerville
Considera importantes quatro tipos:
� Corretiva: identificar e corrigir erros.
� Adaptativa: adaptar o software ao ambiente.
� Evolutiva/Perfectiva: atender pedidos do usuário 
para modificar funções existentes, incluir novas 
funções e efetuar melhoramentos gerais.
3. Manutenção: tipos
Fonte: Pressman
� Preventiva/Reengenharia: 
melhorar a manutenibilidade 
ou confiabilidade futuras e 
fornecer uma base melhor para 
futuros melhoramentos.
3. Manutenção: Gráfico
Fonte: Pressman
Representa um alto valor para 
qualquer organização.
Mais dispendioso acrescentar 
funcionalidades quando um 
sistema está em operação.
3. Manutenção: custos
Por: Eduardo Soler
Custos não monetários
� Adiamento de oportunidades de novos sistemas.
� Redução da qualidade global do software.
� Insatisfação do cliente.
� Insatisfaçãodo pessoal de manutenção.
Custo operacional
� Tenta entender o que o software faz.
� Interpreta as estruturas de dados, 
as características de interface e 
limites de desempenho.
� Analisa, avalia, projeta, codifica e
testa as modificações.
3. Manutenção: custos
3. Manutenção: processo
Fonte: Do Autor
3. Manutenção: processo
Fonte: Do Autor
3. Manutenção: processo
Fonte: Do Autor
Evolução de Software: Manutenção
Vídeo
Fonte:
https://www.youtube.com/watch?v=o7T_DqyxEzo
Acesso em: 17 Jan 2019.
Você prefere desenvolver 
certo ou trabalhar na 
manutenção de um software?
Por que?
A maioria dos problemas com a manutenção do software é 
causada por deficiências na maneira como o software foi 
projetado e desenvolvido.
Problemas clássicos
� Falha na documentação da manutenção.
� Equipe de desenvolvimento diferente da equipe de 
manutenção.
� Falta de plano da evolução. 
� A documentação inicial fica
desatualizada.
� Desenvolver eleva o status 
profissional.
� Executar manutenção não 
agrega valor profissional.
3. Manutenção: problemas
Quantitativamente, o quanto tem facilidade para entender, 
corrigir, adaptar e/ou melhorar o software.
Fatores que influenciam:
� Eficiência inicial no projeto, codificação e teste.
� Configuração de software.
� Disponibilidade de pessoal para manutenção.
� Facilidade de conhecer as 
regras de negócio.
� Experiência do pessoal 
em negócios.
3. Manutenção: manutenibilidade
Os “Alienígenas” são:
� Programas com um complexo/inadequado fluxo de 
controle.
� Módulos com muitas funcionalidades.
� Poucas linhas de documentação.
� Falta de integração na equipe.
� Falha no Processo de Desenvolvimento de Software 
(PDS).
3. Manutenção: códigos alienígenas
Engenharia reversa de software: Processo de análise de 
um software, partindo da implementação para um nível 
mais alto de abstração.
Reengenharia de software: Implica no exame e na 
alteração do software para reconstruí-lo em uma nova 
forma.
Refatoração (técnica de 
refactoring): refazer a 
codificação para melhorar 
na manutebildiade.
3. Engenharia reversa e reengenharia
Documentação atualizada.
Participação do usuário.
Experiência do negócio.
3. Engenharia reversa e reengenharia
Fonte: Do Autor
Perguntas
Encaminhe a sua dúvida.
http://www.leandromtr.com/tecnologia-
informacao/tipos-de-manutencao-de-software/
http://evertongomede.blogspot.com.br/2010/08/
areas-de-conhecimento-segundo-o-swebok.html
Material complementar
Engenharia e Projeto de Software
Aula 2
Testes e Validação de Software
Conhecer e compreender os conceitos, tipos e 
abordagens de testes de software;
Conhecer e compreender os conceitos e tipos de 
validação de software.
Conhecer técnicas de testes.
Objetivos
Esta teleaula aborda os conceitos sobre os 
processos de verificação e validação de software, 
analise estática e dinâmica, inspeção de software, 
testes de software e tipos de testes. 
Palavras-chave: Verificação, 
Validação, Inspeção de 
Software, Analise Estática e 
Dinâmica, Testes de 
Software.
Resumo
• Qual é a colaboração dos 
testes de software para a 
Qualidade do produto?
• Devemos investir esforços 
nesta atividade?
Vamos assistir ao vídeo: Conceitos de Testes
Conceitos -Testes de Software
Vídeo
Fonte: www.youtube.com/watch?v=fk1JWVVDvsw
Acesso em: 17 Jan 2019.
Conseguimos atender todas 
necessidades dos usuários?
Por que o desenvolvimento de 
software necessita da fase de 
teste?
Teste de Software
Assegurar que um software 
atenda às necessidades do 
usuário, de acordo com 
as espeficações planejadas.
1. Verificação e validação (V&V)
Fonte: Do Autor
Verificação: Um software deve cumprir com suas 
especificações (sem executar o sistema).
� “Estamos construindo certo o produto?”
Validação: O software deve fazer aquilo que os 
usuários esperam que faça.
� “Estamos construindo o 
produto certo?”
1. Verificação e validação (V&V)
Verificação e Validação devem estabelecer a 
confiança de que o software é adequado ao seu 
propósito;
Isso NÃO significa que o software tenha de ser 
inteiramente livre de defeitos;
Em vez disso, ele deve ser suficientemente bom 
para o uso pretendido. O tipo de uso determinará o 
grau de confiança necessário;
1. Verificação e validação: objetivos
Função do software: o nível de confiança depende 
de quão crítico o software é para uma organização.
Expectativas do usuário: usuário pode ter poucas 
expectativas para certos 
tipos de software.
Ambiente de mercado: 
oferecer um produto para o mercado mais cedo 
pode ser mais importante que 
encontrar defeitos em um 
programa.
1. Verificação e validação: nível de confiança
É um processo de ciclo de vida completo – V&V 
precisa ser aplicados em cada estágio do processo 
de software.
Tem dois objetivos principais:
� A descoberta de defeitos 
em um sistema;
� A avaliação se um sistema 
é ou não utilizável em 
condições operacionais.
1. Verificação e validação: processo
No processo de V&V, podemos ter duas abordagens:
� Inspeções de software ou revisão por pares: Verificam 
as representações do sistema, usadas em todos os 
estágios do processo. Utiliza a análise da representação 
estática para descobrir problemas (verificação estática).
� Testes de software: Executam 
uma implementação de testes 
com dados de teste, checando 
as saídas do software, 
verificando se seu 
desempenho esta conforme o 
necessário (verificação 
dinâmica).
1. Verificação e validação: processo
Reflita: Para saber se o software está gerando um 
relatório com o resumo semanal, mostrando o 
resumo da produção de sua indústria, devemos 
aplicar a Verificação ou a Validação?
Por que?
Atividade 1
Testar envolve exercitar (executar) o programa com dados reais 
processados pelo programa.
Testes de Validação (Estatístico):
� Sua finalidade é mostrar que o software é o que o cliente deseja;
� São testes projetados para refletir a frequência de entradas do 
usuário para a estimativa de 
confiabilidade.
Testes de Defeitos: 
� Testes projetados para descobrir 
defeitos no sistema
� Um teste de defeito bem sucedido é 
aquele que revela a presença de 
defeitos em um sistema.
2. Testes
Teste de defeitos e depuração são processos distintos.
Verificação e validação estabelece a existência de defeitos 
em um programa.
Depuração lida com a localização e correção desses erros.
Depuração envolve formular 
uma hipótese sobre o 
comportamento do programa e 
então testar essas hipóteses 
para encontrar os erros do 
sistema.
2. Testes e depuração
Alto custo.
Seguir padrões para verificação e validação.
Planejar no início do ciclo de vida do desenvolvimento.
O plano deve identificar o 
equilíbrio entre a verificação 
estática e testes.
Priorizar o processo de testes.
Plano de ação para correção.
Plano de atividades para 
mitigação.
2. Planejamento de testes
Não é um documento estático.
Mudam devido a atrasos em outros processos de 
desenvolvimento.
Se uma parte do sistema está incompleta, o resto não pode 
ser testado.
Plano:
� Processo de teste;
� Rastreabilidade dos requisitos;
� Itens testados; 
� Cronograma de testes.;
2. Planejamento de testes: plano
Imagine dentro de uma 
caixa escura! Se a bolinhas 
pretas são os Erros de um 
software.
Como encontrar todas as 
bolinhas pretas, de forma 
rápida e certeira?
Usando ou não usando 
técnicas de testes?
Atividade em sala 2
Perguntas
Processo estático de V&V .
Baseado no modelo de sistema,especificação ou código de 
linguagem de alto nível.
Objetivo: descobrir erros, anomalias e defeitos.
Não requer a execução.
Eficaz para descobrir erros.
Não tem foco em requisitos
não-funcionais.
2. Inspeções
Processos formais cuja função explícita é a 
DETECÇÃO de defeitos no programa (não a 
correção).
Defeitos podem ser erros lógicos, anomalias no 
código que podem indicar 
uma condição errônea 
(ex. uma variável não 
inicializada) 
ou não-conformidade com 
padrões. 
2. Inspeções em programas
Particularmente valiosa quando uma linguagem 
como C é utilizada. C é fracamente tipada e, 
portanto, muitos erros podem não ser detectados 
pelo compilador.
Pode ter uma baixa relação 
custo-benefício para 
linguagens como Java que 
tem uma checagem forte de 
tipos e pode detectar muitos 
erros durante a compilação.
2. Uso da análise estática
O nome é derivado do processo ‘Cleanroom’ na 
fabricação de semicondutores. 
Evitar defeitos em vez de removê-lo.
Processo de desenvolvimento de software baseia-se 
em:
� Especificação formal;
� Desenvolvimento 
incremental;
� Verificação estática;
� Teste estatístico do sistema 
para determinar a 
confiabilidade.
2. Desenvolvimento de software Cleanroom
Qual é a vantagem em 
desenvolver corretamente 
ao invés de corrigir os erros 
após a entrega do software?
Falha: incapacidade do software de realizar a 
função requisitada (aspecto externo).
Falta: causa de uma falha (defeito).
Erro: estado intermediário (instabilidade), provém 
de uma falta e pode resultar 
em falha se propagado até a 
saída.
3. Testes de software
Uma referência para garantir que o software pode ser liberado 
para o uso.
Confiabilidade de software:
� É uma estimativa probabilística.
� Mede a frequência com que um 
software irá executar sem falha 
num dado ambiente e por 
determinado período de tempo.
Assim, entradas para testes 
devem se aproximar 
do ambiente do 
usuário final!
3. Testes de software: confiabilidade
Averiguar a implementação correta dos requisitos do sistema. 
Assegurar a qualidade e a corretude do software produzido.
Reduzir custos de manutenção corretiva e retrabalho.
Assegurar a satisfação do cliente.
Identificar todos casos de teste com probabilidade para revelar erros. 
Verificar a integração entre 
todos os componentes de software.
3. Testes de software: finalidade
Sistemático:
� Testes aleatórios não são suficientes;
� Testes devem cobrir todos os fluxos possíveis do 
software;
� Testes devem representar 
situações de uso reais.
• Documentado: que testes 
foram feitos, resultados, etc.
• Repetitível: se encontrou ou 
não erro em determinada 
situação, deve-se poder 
repeti-lo.
3. Testes de software: padronização
3. Testes: abordagem funcional (caixa preta)
• Características
• Simples de ser aplicado.
• Testa sob o ponto de vista do usuário.
• Testa a funcionalidade do software.
• Não considera o código-fonte.
• É conduzido olhando-se as interfaces do 
software.
• Objetivos
• Detectar erros de funcionalidades.
• Detectar funcionalidades não 
implementadas.
• Detectar erros de interface.
• Analisar desempenho.
Entrada
Saída
Fonte: Do Autor
3. Testes: abordagem estrutural (caixa branca)
Entrada
Saída
• Características
• Complexo de ser aplicado.
• Considera o código internamente.
• Necessidade do código-fonte.
• Verificação comando a comando.
• Objetivos
• Detectar comandos incorretos.
• Analisar estrutura de codificação.
• Conferir variáveis (definições e uso).
• Verificar inicialização e finalização 
de loops.
• Encontrar parte que nunca será
usado.
Fonte: Do Autor
Qual abordagem de teste 
você considera mais 
eficiente? Por que?
Conte sua experiência com
teste de caixa branca ou
teste de caixa preta.
Teste de Unidade.
Teste de Aspectos OO.
Teste de Integração.
Teste de Sistema.
Teste de Aceitação.
3. Testes: estágios
Fonte: http://itprocess.com.br/128/
São definidos em relação aos diversos tipos de 
requisitos descritos no documento de requisitos.
3. Testes: tipos
Fonte: Do Autor
3. Testes: tipos e técnicas
1ª - Quando testar
Níveis de teste
Unidade
Integração
Sistema
Aceitação
Regressão
3ª - Como testar
Técnicas de teste
Estrutural
Funcional
2ª - O que testar
Tipos de teste
Funcionalidade
Interface
Desempenho
Carga (stress)
Usabilidade
Volume
Segurança
Fonte: Do Autor
Testadores de Software
Vídeo
Fonte: https://www.youtube.com/watch?v=yHFbRpI-OGk
Acesso em: 17 Jan 2019.
Perguntas
http://testesdesoftware.com/tipos-de-teste-de-software/
http://www.devmedia.com.br/artigo-engenharia-de-
software-introducao-a-teste-de-software/8035
http://www.linhadecodigo.com.br/artigo/492/tecnicas-de-
vvampt-validacao-verificacao-e-teste.aspx
Material complementar
Engenharia e Projeto de Software
Aula 3
Gerência de Qualidade e de 
Configuração de Software
O aluno conhecerá como a engenharia e o projeto 
podem contribuir com a Qualidade do Software, a 
partir de:
Fundamentos de qualidade em software.
Fundamentos de configuração de software.
Instrodução à gestão da qualidade e da configuração 
de software.
Introdução à gestão do processo
de software.
Objetivos
Esta teleaula aborda os fundamentos sobre a gerência de 
qualidade de software aplicada ao processo de 
desenvolvimento e ao produto com técnicas de 
validação, bem como o estudo sobre a configuração de 
software.
Palavras-chave: Qualidade de 
Software, Gerência de 
Configuração de software.
Resumo
1. Gerenciamento de qualidade de software
Assegurar o nível requerido de qualidade no software 
desenvolvido.
Definir e gerenciar os padrões e procedimentos apropriados 
de qualidade e da garantia.
Estimular uma cultura em qualidade no processo.
Obter o engajamento de todos os envolvidos.
Maior ênfase para projetos mais complexos.
Manter os registros do progresso 
da qualidade.
Qualidade, de uma forma geral, 
significa que um produto deve 
atender às especificações.
Fonte: Do Autor
Deve focar numa cultura de qualidade.
Para sistemas menores, o gerenciamento de qualidade 
requer menos documentação.
1. Gerenciamento de qualidade de software
O gerenciamento de qualidade deve ser 
separado do gerenciamento de projeto
para assegurar independência.
Fonte: Istock Acesso em: 17 Jan 2019.
Processo e atividades
1. Gerenciamento de qualidade de software
Garantia da Qualidade
estabelece 
procedimentos e 
padrões 
organizacionais para a 
qualidade.
Planejamento da Qualidade
seleciona os 
procedimentos e 
padrões aplicáveis 
para um projeto 
específico.
Controle da Qualidade
assegura 
que os procedimentos 
e os padrões sejam 
seguidos.
Qualidade de Processo 
influencia na qualidade 
do produto.
1. Gerenciamento de qualidade de software
Fonte: Do Autor
Importância dos Padrões:
� Engloba as melhores práticas.
� Um framework para os processos de garantia de qualidade.
� Estabelece uma comunicação adequada para a equipe.
Problemas com Padrões:
� Procedimentos desatualizados.
� Documentações burocrática.
1. Gerenciamento de qualidade de software
Práticas do Processo:
� Definir padrões de processo.
� Estabelecer processo da gestão e revisão.
� Monitorar o processo de desenvolvimento.
� Comunicar o status da qualidade.
� Envolver o usuário e cliente.
1. Gerenciamento de qualidade de software
Garantia de Qualidade e Padrões:
� Considerar padrões reconhecidos.
� Seguir os padrões.
� Contemplar o estilo de programação comum.
� Prever a institucionalização dospadrões de processo.
� Registrar e melhorar os padrões.
1. Gerenciamento de qualidade de software
Qualidade de software 
Vídeo
Fonte:
https://www.youtube.com/watch?v=fmtvFZZOoNs
Acesso em: 17 Jan 2019.
Quais são as vantagens e 
desvantagens de se aplicar 
padrões de qualidade de 
software durante o processo 
de desenvolvimento do 
software?
CMMI / MPS.BR:
� Modelo de Maturidade de 
Qualidade de Software.
� Modelo de referência: 
base em ISO 12207 e 15504.
2. Modelo de Qualidade de Software 
Fonte: Do Autor
Por Estágios Contínua
2. Modelo de Qualidade de Software - CMMI 
Fonte: Do Autor
Estrutura do MR-MPS.BR
2. Modelo de Qualidade de Software – MPS.BR 
http://www.softex.br/mpsbr/guias/
Fonte: Do Autor
Representações do MPS.BR.
Maior granularidade entre
os níveis.
2. Modelo de Qualidade de Software 
Fonte: Do Autor
Representações do MPS.BR.
2. Modelo de Qualidade de Software 
Fonte: Do Autor
Planejamento da Qualidade:
� Alinhamento da estratégias da organização e ao projeto.
� Estabelece os critérios da qualidades do produto 
desejadas.
� Estabelece como são avaliadas.
� Define os atributos de qualidade mais significativos.
� Estabelece os padrões 
organizacionais.
2. Modelo de Qualidade de Software 
Controle da Qualidade: 
� Verificação do processo de desenvolvimento.
� Assegurar que procedimentos e padrões estão sendo 
seguidos.
� Abordagens para controle de qualidade:
• Revisões de qualidade.
• Avaliação automatizada e 
medições de software.
2. Modelo de Qualidade de Software 
Revisões de Qualidade:
� Principal método de validação da qualidade de um processo ou 
de um produto.
� Foco em descobrir os defeitos e a inconsistências do sistema.
� Revisão de: código, projetos, especificações, 
planos de teste, padrões, etc.
� O processo deve ter curta duração.
� Todos os documentos devem ser revisados.
� O software e documentos
podem ser aprovados (“assinados”).
2. Modelo de Qualidade de Software 
Formal Technical Review – FTR.
Tipos de revisão:
� Inspeções para detectar os defeitos (produto).
� Revisões para avaliação de progresso 
(produto e processo).
� Revisões de qualidade (produto e padrões).
2. Modelo de Qualidade de Software 
Um modelo de maturidade 
tem influência direta no 
desenvolvimento de software?
Por que?
Como controlar todas implementações realizadas numa determinada 
versão?
As versões do software são criados a cada mudança
� Para diferentes máquinas/sistemas operacionais.
� Diferentes funcionalidades.
� Adaptados a requisitos de usuários específicos.
Gerência de configuração (CM Configuration Management)
� Envolve uma equipe.
� Controlar os custos.
� Controlar o esforço da equipe.
� Histórico de versões.
3. Gerenciamento de configurações
Define procedimentos e padrões para gerenciar um produto 
de software.
Processo de gerência de qualidade.
Possibilita o versionamento controlada.
Permite o retorno até uma determinada baseline.
Visar uma versão/produto Deliverable.
3. Gerenciamento de configurações
https://blog.pronus.io/posts/o-que-eh-gerencia-de-
configuracao-de-software/
Visar uma versão de produto entregável (Deliverable).
Aplicado em Famílias de 
Sistemas
3. Gerenciamento de configurações
Fonte: Do Autor
Versões, Variantes e Releases:
� Versão: uma instância de um sistema com que é 
funcionalmente distinto em alguma forma de outras instâncias 
do sistema.
� Variante: uma instância de um sistema que é funcionalmente 
idêntico mas não-funcionalmente distinto de outras instâncias 
de um sistema.
� Release: Uma instância de um 
sistema que é distribuído para 
usuários fora do time de 
desenvolvimento.
3. Gerenciamento de configurações
Merging e Branching:
3. Gerenciamento de configurações
Fonte: Do Autor
Controle de versão
Vídeo
Fonte: https://www.youtube.com/watch?v=ILUvjs8xvSs
Acesso em: 17 Jan 2019.
Padrões de Gerência de Configuração:
� Baseada em um conjunto de padrões:
• Para definir como itens são identificados;
• Como as mudanças são controladas;
• Como as novas versões são gerenciadas;
� Padrões existentes são baseados em
um modelo de processo em cascata;
** Novos padrões são necessários 
para a evolução do desenvolvimento.
3. Gerenciamento de configurações
Planejamento de Gerência de Configuração:
� Na fase inicial do projeto.
� Definir os documentos ou classes de documentos que serão 
gerenciados. 
� Todos os itens de software (artefato) do processo podem ser 
gerenciados:
• Especificações.
• Projetos.
• Programas.
• Dados de Teste.
• Manuais do Usuário.
3. Gerenciamento de configurações
Plano de Gerência de Configuração:
� Define os tipos de documentos.
� Define o esquema de nomes para documentos.
� Estabelece os responsáveis pelos procedimentos de gerência 
de configuração e criação de baselines.
� Define políticas de controle de 
mudança e gerência de versão.
� Define os registros de gerência 
de configuração que devem ser 
mantidos.
� Banco de dados.
� Ferramenta para gestão.
� Prever a auditoria.
3. Gerenciamento de configurações
Base de Dados
� Informações do gerenciamento de configuração.
� Permite buscar as configurações para:
• Quem tem uma versão do 
sistema particular?
• Qual plataforma é requerida 
para uma versão particular?
• Que versões são afetadas por 
uma mudança no componente X?
• Quantas falhas foram 
reportadas na versão T?
3. Gerenciamento de configurações
Gerência de Mudança por:
� Requisitos de usuários específicos.
� Demandas técnicas dos desenvolvedores.
� Demandas de mercado.
� Demandas fiscais e legais.
� Por segurança da informação.
� Evolução da Tecnologia da
Informação e Comunicação.
� Concorrência no setor de
negócio.
3. Gerenciamento de configurações
Fonte: Istock Imagens 
Acesso em: 17 Jan 2019.
Em qual tipo de mudança de 
software julga mais necessária 
o Gerenciamento de 
Configuração?
Por que?
http://www.softex.br/mpsbr/guias/
https://blog.pronus.io/posts/o-que-eh-gerencia-de-
configuracao-de-software/
Material complementar
Perguntas
Engenharia e Projeto de 
Software
Aula 4
Introdução a Gestão de 
Projetos de Softwares
O objetivo desta teleaula é capacitar o aluno na identificação do 
escopo de um projeto de software. Reconhecer o cenário da 
organização na qual o desenvolvedor deverá conceber a solução 
em software. Criar a estrutura para o gerenciamento de um 
projeto de software. Introdução ao detalhamento do projeto de 
software. Inicialização do uso de ferramentas de gerenciamento 
ao desenvolvimento de software.
Palavras-chave:
� Projeto de Sistemas,
� Escopo de sistemas,
� Gerenciamento de Projetos
� Ferramentas de Projetos de 
Software
Resumo
Projeto de Software
� Definição Projetos de Software
� Cenário Atual
� Gerenciamento de 
Projetos de Software
� Detalhando o projeto
Tópicos desta aula
Projeto de software prioriza: dados, arquitetura, 
interface e componentes. Para garantir a qualidade é 
necessário avaliar continuamente pontos referentes 
a corretude, completude, clareza e consistência com 
os requisitos do sistema.
Definição Projetos de Software
http://projeto-de-software.blogspot.com.br/2008/06/o-
que-projeto-de-software.html
Crise do Software em 1970
Surgem várias metodologias de desenvolvimento, com 
o objetivo de entregar software de qualidade, dentro 
do cronograma proposto e com base nos custos 
previstos.Então, como trabalhar
no cenário atual?
Projeto de software
By J. Fabio Mazzini Z. 
(http://www.fabiomazzini.com/crbst_9.html)
Engenharia Civil X Software
Análise Orientada a Objetos
� Diagrama de Casos de Uso
� Diagrama de Atividades
� Diagrama de Classes
� Diagrama de Sequência
� Diagrama de Estado
� Outros
Como projetar software?
Fonte: Do Autor
Análise de Dados
Modelo de Entidades e Relacionamentos
Projeto de Banco de Dados
Como projetar software?
Fonte: Do Autor
Protótipos
� Exploratória
� Evolucionária
Como projetar software?
Fonte: Do Autor
Proporciona apoio ao processo de software pela automação de 
algumas atividades de processo e pelo fornecimento de 
informações sobre o software que está sendo desenvolvido. 
(SOMMERVILLE, 2003)
Material Complementar:
Fonte: (acessado em 16 dez 2016)
Usando ferramentas - CASE
http://www.etelg.com.br/paginaete/do
wnloads/informatica/apostila_uml.pdf
Cronograma
� Atividade
� Datas
� Responsáveis
� Resultados
� Dependências
Como projetar software?
Fonte: Do Autor
Escopo
� Sistemas
� Módulos
� Funcionalidades
� Departamento
� Região
� Prioridades
� Importância
Como projetar software?
Fonte: Do Autor
Kanban
� Cartão
� Sinalização
� Status
� Visual
� Agilidade
� Linguagem
Como visualizar as atividades?
Fonte: Do Autor
Quais as vantagens que teria se desenvolver um 
software usando técnicas: UML, MER, Protótipos, 
Gerenciamento de Projeto, Kanban...?
Assista ao vídeo sobre Kanban.
Atividade 1
Perguntas? 
Envie suas Dúvidas.
Vídeo Aula Atividade 1
Kanban no Desenvolvimento Ágil de Software by Dilbert
Vídeo
Fonte: https://www.youtube.com/watch?v=LJOiFRsp0Z8
Perguntas
Gerenciamento de projetos é “a aplicação de 
conhecimentos, habilidades, ferramentas e 
técnicas em projetos com o objetivo de atingir 
ou até mesmo exceder às necessidades e 
expectativas dos clientes e demais partes 
interessadas do projeto” [PMBOK].
Cenário Atual em 
Gerenciamento de Projetos
Responsável pelo projeto
PMI – chapters brasileiros - 2009
Habilidades deficientes no GP
PMI – chapters brasileiros - 2009
Problemas frequentes em projetos
PMI – chapters brasileiros - 2009
Documentos existentes em GP
PMI – chapters brasileiros - 2009
1. Qual a relação entre benefícios do GP
e problemas em projetos?
2. Qual fator você julga mais problemático em sua 
experiência? Por que?
Atividade 2
Perguntas? 
Envie suas Dúvidas.
Perguntas
Gerenciamento de projetos é “a aplicação de 
conhecimentos, habilidades, ferramentas e 
técnicas em projetos com o objetivo de atingir 
ou até mesmo exceder às necessidades e 
expectativas dos clientes e demais partes 
interessadas do projeto” [PMBOK].
Gerenciamento de 
Projetos de Software
História do GP
Restrições em gestão de projetos
Gerenciamento de projetos
O papel do Gerente de 
Projetos 
a importância da experiência
Seguir um padrão de 
qualidade requer 
Gerenciamento constante
Empreendimento que 
produzirá um software, no 
prazo estimado e com as 
funcionalidades desejadas
Principais recursos no gerenciamento
Fonte: Do Autor
Atividade
Prazo
Responsável
Resultado
Medição/métrica
Ferramentas & artefatos para GP
Fonte: Do Autor
Gerenciando recursos, tempo e pessoas
1. O que é mais importante para a entrega do 
projeto: escopo ou requisito?
2. No GP, o fator Liderança está diretamente 
relacionado a qual tipo de 
recurso?
Atividade 3
Perguntas? 
Envie suas Dúvidas.
Gerenciamento do projeto
Planejar o 
gerenciamento
Realizar o 
controle
Realizar a 
garantia
Definir padrão
Comprovar e 
entregar 
Ciclo de vida ou 
Grupos de Processos
do PMBoK com 
foco em Qualidade
Áreas do conhecimento 
do PMBoK
Plan
Do
Check
Action
Fonte: Do Autor
Propósitos:
Criar valor para o cliente.
Correlacionar todos (o que) 
os serviços, sistemas ou 
processos.
Responsabilidades:
Definir política, diretriz e 
objetivo.
Desenvolver habilidades para 
gerar valor.
ITIL – Information Technology Infrastrutucte Library
COBIT
Control Objetives 
for Information
and related
Technology.
Fonte: Do Autor
Alinhar, Planejar e Organizar
Construir, Adquirir e Implementar
Entregar, Serviços e Suporte
Monitorar, Avaliar e Analisar
Fonte: Do Autor
Perguntas
Objetivo geral do projeto
� Solução de um problema.
� Oportunidade de negócio.
Objetivos específicos do projeto
� Processos de entrada e de saída.
� Controles fundamentais.
Critérios de sucesso
� Prazos, Custos, Qualidade.
Restrições e Riscos.
Escopo
Diagrama específico para o escopo do projeto
Visualizar fases, atividades, responsáveis e entregas
Orientar na Estimativa de Esforço, Duração e Custo
Facilitar a Identificação de Riscos
Tipos:
� Fases
� Entregas
� Equipes
Criando WBS
Controle de Recursos
Subcausas
Causas
CCQ - reuniões regulares entre 
grupos de trabalho de uma 
determinada área da empresa 
(podendo ser de áreas diferentes) 
que se unem para discutir sobre os 
problemas da qualidade, eles 
geralmente são voluntários nesse 
trabalho.
Controle do projeto
Fonte: Do Autor
Existem diversos modelos de Metodologias Ágeis, 
mas vamos utilizar como exemplo, o SCRUM.
Pode ser utilizado para planejar, gerenciar e 
desenvolver qualquer tipo de projeto. 
Metodologia Ágil
SCRUM
Fonte: Do Autor
Perguntas
Projeto de software com UML
http://www.etelg.com.br/paginaete/downloads/informatica/apostila2u
ml.pdf
Material complementar
Escopo ou Requisito?
http://blogdoabu.blogspot.com/2010/02
/o-que-e-escopo-e-requisito.html
Material complementar
Construindo uma WBS
http://elirodrigues.com/gestao-de-projetos/como-fazer-uma-eap-
wbs/
http://astah.net/editions/community
http://www.ganttproject.biz/download
http://gantter.com/
http://www.sis4.com/brModelo/download.html
http://www.xmind.net/
http://pencil.evolus.vn/
Material complementar
Governança, Cobit e ITIL
http://www.slideshare.net/Ridlo/governana-de-ti-v8
(acessado em 01ago2014)
Documento Cobit
http://www.isaca.org/COBIT/FOCUS/Pages/the-core-cobit-
publications-a-quick-glance-portuguese.aspx (acessado em 28 Jan 2019)
ITIL Foundation
http://www.itilofficialsite.com/
Qualifications/ITILQualificationLevels/
ITILFoundation.aspx
(acessado em 01ago2014)
Material complementar

Mais conteúdos dessa disciplina