Buscar

Slides de Aula IV

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 39 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 39 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 39 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Prof. Me. Edson Moreno
UNIDADE IV
Fundamentos de 
Engenharia de Software
 A partir dos requisitos e da disposição de processos para construir o software, a engenharia 
de software apresenta os princípios das atividades metodológicas voltadas para a 
comunicação, o planejamento, a modelagem, a construção e a disponibilização do software. 
 Para garantir a mantenabilidade do software, são abordados os processos de mudanças no 
software, durante o desenvolvimento e, mesmo depois que ele for liberado e o 
acompanhamento destas mudanças, garante que o produto software foi construído, de 
acordo com o que foi pedido.
 Neste contexto, a unidade IV, da disciplina Fundamentos de Engenharia de Software, 
aborda os princípios que orientam a prática e, ao término da disciplina, aborda a integração 
e a entrega do sistema.
Introdução
 A engenharia de software é uma prática contínua de conhecimento e de aplicação de novas 
tecnologias. 
 De acordo com Pressman (2011), o conhecimento sobre o desenvolvimento de software tem 
uma vida média de três anos. Metade do que se aprendeu se torna obsoleto.
 Os princípios da engenharia de software servirão ao profissional durante toda a sua carreira.
Neste capítulo, serão abordados os seguintes itens:
 A essência da prática;
 Princípios das atividades metodológicas;
 Atividade de verificação do código do software.
7 Princípios que orientam a prática
 Os princípios da engenharia de software servem de artefatos e regras que podem ser 
praticadas diariamente, criando as ações racionais que conduzem a uma melhoria contínua 
de aprendizado e de evolução profissional.
A essência da prática – Princípios fundamentais que orientam o processo
Princípios que orientam o processo
Princípio 1. Seja ágil;
Princípio 2. Concentre-se na qualidade em todas as etapas;
Princípio 3. Esteja pronto para as adaptações; 
Princípio 4. Monte uma equipe efetiva; 
Princípio 5. Estabeleça os mecanismos para a comunicação 
e a coordenação; 
Princípio 6. Gerencie as mudanças; 
Princípio 7. Avalie os riscos; 
Princípio 8. Gere os artefatos que forneçam valor para os 
outros.
Fonte: PRESSMAN (2011).
A essência da prática – Princípios fundamentais que orientam a prática
Princípios que orientam a prática
Princípio 1. Divida e conquiste; 
Princípio 2. Compreenda o uso da abstração; 
Princípio 3. Esforce-se por consistência; 
Princípio 4. Foque na transferência de informação; 
Princípio 5. Construa um software que apresente uma modularidade efetiva;
Princípio 6. Padronize; 
Princípio 7. Se possível, represente o problema e a sua solução sob as perspectivas diferentes; 
Princípio 8. Lembre-se de que alguém fará a manutenção do software.
Fonte: ARKAN. Descubra como funciona o Desenvolvimento de 
Softwares e os seus processos. Arkan System. Disponível em:
https://arkansystem.com.br/desenvolvimento-de-
softwares_e_seus_processos/. Acesso em: 24 fev. 2020.
Conheça a prática 
da prática.
Fonte: PRESSMAN (2011).
 A comunicação entre o 
cliente e o desenvolvedor é 
uma atividade desafiadora. 
Cliente  Negócio
X
Desenvolvedor  TI
Princípios das atividades metodológicas – Comunicação
Princípios da Comunicação
Princípio 1. Ouça;
Princípio 2. Prepare-se antes de se comunicar;
Princípio 3. Alguém deve facilitar a atividade;
Princípio 4. Comunique-se pessoalmente;
Princípio 5. Anote e documente as decisões; 
Princípio 6. Esforce-se por colaboração; 
Princípio 7. Mantenha o foco e crie módulos para a discussão; 
Princípio 8. Faltando clareza, represente graficamente;
Princípio 9. (a) Uma vez de acordo, siga em frente; (b) Se não 
chegar a um acordo, siga em frente; (c) Se uma 
característica ou função estiver obscura, e não 
puder ser elucidada no momento, siga em frente;
Princípio 10. Negociação não é uma contestação e 
nem um jogo.
Fonte: PRESSMAN (2011).
 O planejamento permite à 
equipe de software definir 
um roteiro à medida que 
segue na direção de 
seus objetivos 
estratégicos e táticos 
(PRESSMAN, 2011).
Princípios das atividades metodológicas – Planejamento
Princípios de planejamento
Princípio 1. Compreenda o escopo do projeto;
Princípio 2. Envolva os interessados na atividade de 
planejamento; 
Princípio 3. Reconheça que o planejamento é iterativo; 
Princípio 4. Faça as estimativas com base no que conhece; 
Princípio 5. Considere a análise de risco ao definir o plano; 
Princípio 6. Seja realista; 
Princípio 7. Ajuste as particularidades ao definir o plano; 
Princípio 8. Defina como se pretende garantir a qualidade;
Princípio 9. Descreva como pretende adequar as alterações;
Princípio 10. Verifique o plano, frequentemente, e faça ajustes 
necessários.
Fonte: PRESSMAN (2011).
Modelagem do software:
 Modelagem do projeto 
de software;
 Modelagem do 
produto software.
Princípios das atividades metodológicas – Modelagem
Princípios de modelagem
Princípio 1. O objetivo principal da equipe de software é construir 
softwares, e não criar modelos;
Princípio 2. Viaje leve; 
Princípio 3. Esforce-se ao máximo para produzir os modelos 
mais simples possíveis; 
Princípio 4. Construa modelos que facilitem as alterações; 
Princípio 5. Estabeleça um propósito claro para cada modelo; 
Princípio 6. Adapte o modelo desenvolvido a outros;
Princípio 7. Crie modelos úteis, mas esqueça a construção de 
modelos perfeitos; 
Princípio 8. Não seja dogmático quanto à sintaxe do modelo; 
Princípio 9. Se os instintos indicam que um modelo não está 
correto, provavelmente, há motivos para se
preocupar;
Princípio 10. Obtenha o feedback o quanto antes.
Fonte: PRESSMAN (2011).
As pessoas gostam de falar do que entendem, logo, o engenheiro de software que pretende 
coletar as informações sobre o negócio do cliente, tem que saber se comunicar para abstrair, 
ao máximo, o conhecimento sobre o negócio. Assinale a alternativa que possua alguns dos 
princípios da comunicação:
a) Defina junto ao cliente a qualidade do software, explique como vai alinhar o negócio com o 
sistema e forneça feedbacks sucessivos.
b) Explique ao cliente como irá funcionar o sistema, considere o risco da biblioteca do sistema, 
e anote e documente os itens do negócio.
c) Ouça, comunique-se pessoalmente e foque no objetivo.
d) Prepare-se antes de se comunicar, mantenha uma 
comunicação constante com o cliente, para deixá-lo seguro, 
e forneça feedbacks sucessivos.
e) Questione sempre que tiver dúvidas, anote e documente os 
itens do negócio e esclareça as dúvidas do cliente.
Interatividade
As pessoas gostam de falar do que entendem, logo, o engenheiro de software que pretende 
coletar as informações sobre o negócio do cliente, tem que saber se comunicar para abstrair, 
ao máximo, o conhecimento sobre o negócio. Assinale a alternativa que possua alguns dos 
princípios da comunicação:
a) Defina junto ao cliente a qualidade do software, explique como vai alinhar o negócio com o 
sistema e forneça feedbacks sucessivos.
b) Explique ao cliente como irá funcionar o sistema, considere o risco da biblioteca do sistema, 
e anote e documente os itens do negócio.
c) Ouça, comunique-se pessoalmente e foque no objetivo.
d) Prepare-se antes de se comunicar, mantenha uma 
comunicação constante com o cliente, para deixá-lo seguro, 
e forneça feedbacks sucessivos.
e) Questione sempre que tiver dúvidas, anote e documente os 
itens do negócio e esclareça as dúvidas do cliente.
Resposta
 A atividade de construção engloba um conjunto de tarefas de codificação e de testes que 
conduzem ao software operacional, pronto para ser entregue ao cliente e ao usuário final 
(PRESSMAN, 2011).
 A codificação é feita com o uso de uma linguagem de programação e os testes são voltados 
para os componentes, denominados como testes de unidade.
Princípios das atividades metodológicas – Construção
Princípios de codificação
Princípios de preparação;
Princípios de programação;
Princípios de validação.
 Verificação eValidação (V&V) trabalham juntas. A verificação 
inspeciona e a validação demonstra que o produto criado 
satisfaz os objetivos.
Fonte: PRESSMAN (2011).
Princípios das atividades metodológicas – Disponibilização
Princípios para a entrega de um incremento do software
Princípio 1. As expectativas dos clientes para o software
devem ser gerenciadas;
Princípio 2. Um pacote de entrega completo deve ser 
auditado e testado;
Princípio 3. Deve-se estabelecer uma estrutura de suporte 
antes da entrega do software; 
Princípio 4. Material adequado referente às instruções deve 
ser fornecido aos usuários finais;
Princípio 5. Software com bugs (erros), primeiro, deve ser 
corrigido, e, depois, entregue.
Fonte: PRESSMAN (2011).
A disponibilização envolve 
três ações:
 Entrega;
 Suporte; e 
 Feedback.
 A prática de verificação do código do software é chamada de depuração.
 A depuração é a atividade de rastreamento do código, com objetivo de corrigir e reduzir 
falhas no programa de computador.
 O termo trace (rastrear) é o termo técnico utilizado para rastrear um bug passo a passo, com 
testes para reproduzir o problema e buscar o ponto de erro. 
Atividade de verificação do código do software
Debugging (atividade de depuração de falhas)
1. Reprodução (Reproduce): rastrear o erro com o objetivo 
de identificar a causa de determinado problema; 
2. Diagnóstico (Diagnose): avaliar o ponto do erro, a sua 
causa, a gravidade, o grau de prioridade, os riscos e os 
impactos no comportamento do software;
3. Corrigir (Fix): implementação e testes para as correções 
necessárias;
4. Refletir (Reflect): aplicação das medidas corretivas, de 
forma a garantir uma solução para o problema.
 Fluxo das atividades de depuração, testes e diagnósticos do software.
Atividade de verificação do código do software – Fluxo de atividades
Fonte: MORENO (2020).
Reproduzir 
o
problema
Diagnosticar
Corrigir os
problemas
Reflexão
Correções
feitas com
sucesso?
Problema
corrigido?
Implantar a
solução
SIM
NÃO
NÃO
*Estabelecer as Marcas 
de referência 
(milestones)
Estabelecer 
as
medidas
corretivas
Registro e
Versionamento
Para entender melhor como funciona o teste de software estabeleça duas perspectivas: 
1. Interface do usuário com o software;
Atividade de verificação do código do software – top-down e bottom-up
Fonte: MORENO (2020).
2. Interface do software com o ambiente operacional do computador.
Fonte: MORENO (2020).
REQUISITOS FUNCIONALIDADE USABILIDADE
PROJETO
CÓDIGO
REQUISITOS FUNCIONALIDADE USABILIDADE
PROJETO
CÓDIGO
up
down
bottom
top
 O grafo de fluxo é utilizado para rastrear o código, normalmente, utilizado nos testes caixa-
branca e caixa-preta, que será visto mais à frente.
O grafo de fluxo é sugerido por Pressman (2007), para o acompanhamento da codificação, 
como é mostrado de forma adaptada na figura a seguir: 
Atividade de verificação: Projeto do código – Grafo de fluxo
Fonte: FELIZARDO, K. R. Técnicas de VV&T - Validação, Verificação e Teste. 
Disponível em: http://www.linhadecodigo.com.br/artigo/492/tecnicas-de-vvampt-
validacao-verificacao-e-teste.aspx. Acesso em: 28 jul. 2020.
1
2
2 2 2
1 1 1
3
3 34
Leia o texto: “O rastreamento de um bug inicia com os testes para reproduzir o problema e 
buscar o ponto de erro. Ao encontrar o erro faz-se um diagnóstico, que pode ser informal ou 
quando houver a necessidade um relatório formal de um registro do erro”. Este texto se refere 
à atividade de verificação do código, na limpeza e na exclusão de partes indesejáveis. Esta 
atividade, em termos técnicos, é chamada de _____________ do programa. 
Qual a alternativa que completa corretamente a lacuna:
a) Break point.
b) Customização.
c) Depuração.
d) Trace.
e) Validação.
Interatividade
Leia o texto: “O rastreamento de um bug inicia com os testes para reproduzir o problema e 
buscar o ponto de erro. Ao encontrar o erro faz-se um diagnóstico, que pode ser informal ou 
quando houver a necessidade um relatório formal de um registro do erro”. Este texto se refere 
à atividade de verificação do código, na limpeza e na exclusão de partes indesejáveis. Esta 
atividade, em termos técnicos, é chamada de _____________ do programa. 
Qual a alternativa que completa corretamente a lacuna:
a) Break point.
b) Customização.
c) Depuração.
d) Trace.
e) Validação.
Resposta
 O último capítulo de Fundamentos de Engenharia de Software trata da integração dos 
componentes do sistema com os recursos da engenharia de software para a implantação 
do sistema.
 O capítulo apresenta a preparação do sistema e a garantia da qualidade combinadas, para 
propiciar a implantação, o suporte, a manutenção e a evolução do sistema. 
Neste capítulo, serão abordados os seguintes itens:
 Projeto de arquitetura;
 Testes e diagnósticos;
 Manutenção do software;
 Gerenciamento de configuração do software.
8 Integração e entrega do sistema
 O projeto de arquitetura é o primeiro estágio no processo de projeto de software
(SOMMERVILLE, 2011).
Entre o início e o fim do projeto existem inúmeras arquiteturas que são elaboradas; contudo, 
os principais projetos são: 
 Projeto conceitual – modelo de abstração de alto nível, ou seja, sem detalhes específicos;
 Projeto lógico  modelo com os detalhes de implementação.
A visão estática da arquitetura do software permite separar o sistema em camadas, de acordo 
com os requisitos do sistema: 
Projeto de arquitetura
Fonte: VERSOLATTO (2015).
Camada de apresentação
Camada de negócios
Camada de integração
O
b
je
to
s
 d
e
 n
e
g
ó
c
io
Projeto de arquitetura – Evolução da arquitetura do sistema
Arquitetura Centralizada
SERVIDOR
Apresentação (usuário)
Negócios (aplicação)
Integração (dados)
TT
T – Terminais “burros” que não 
têm CPU. São periféricos E/S.
SERVIDOR
Integração (dados)
SERVIDOR (nS)
Negócios (aplicação)
Integração (dados)
Arquitetura Servidor/Cliente
E E
E – Estação (Cliente) – São 
computadores que executa e 
interpreta os programas de 
computador.
Arquitetura de Sistema Distribuído
E E
Fonte: MORENO (2020).
nS – múltiplos Servidores
Multiprocessamento – Existe mais que um 
processador funcionando na mesma memória, 
mas executa os processos simultâneos.
Projeto de arquitetura – Multiprocessamento e Multicomputação
Multicomputação – É formada por um 
aglomerado de computadores que, quando 
conectados, em uma rede local, podem 
constituir um cluster.
Fonte: BARNEY (2016).
Fonte: TANENBAUM (2013).
IA-32
CPU + L1
IA-32
CPU + L1
IA-32
CPU + L1
IA-32
CPU + L1
Cache L2Cache L2Cache L2Cache L2
Rede em anel
Cache L3 compartilhada
cpu0 cpu1 cpu1cpu0
nMPOpe
MPI MPI MPI
Ope nMP Ope nMP Ope nMP
cpu0 cpu1 cpu0 cpu1 cpu0 cpu1 cpu0 cpu1
Parallel File System
Service Nodes
Interconnect
Compute Nodes
 A disciplina de Testes é crítica para o desenvolvimento de software. Frequentemente, as 
atividades de testes inserem tantos defeitos em um produto quanto a própria implementação 
(PAULA FILHO, 2015).
Testes e diagnósticos
“Huum, que erro estranho. Aqui diz para deletar 
o Windows!”
“E se for verdade? Meus dados são mais 
importantes do que o sistema operacional?”
“E se não for verdade? Seria o hardware ou um 
vírus?”
Fonte: ALLAN (2011).
 Como a história começa? Se não houver testes de software, 
não tem jeito. A equipe se reúne e decide que tem que 
resolver este problema. A gerência afirma: “Temos que seguir 
os procedimentos de testes e diagnósticos, para resolver e 
evitar que este problema ocorra novamente”. 
 No processo V&V, quando o software é construído especificamente para um cliente e é 
normal que ele passe por um teste de aceitação por parte do usuário. A melhor estratégia 
são os Testes Alfa e Beta. 
 Teste Alfa – Os usuários são levados a testar o software desde os seus estágios iniciais de 
instalação até a sua operação completa. Tudo realizado num ambiente especial, controladopelos desenvolvedores.
 Teste Beta – É acompanhado por uma versão release, realizado, exclusivamente, no hábitat 
do usuário em um ambiente descontrolado. Sem a presença do desenvolvedor, porém 
monitorados por estes, ao contrário do Teste Alfa.
Testes e diagnósticos – Testes Alfa e Beta
 Os Testes Caixa-branca e Caixa-preta são guiados pelo código-fonte, respectivas métricas 
de software aplicáveis e se, realmente, estão atendendo aos requisitos com um bom 
desempenho e segurança.
 Teste Caixa-branca (teste estrutural) – É focado nos possíveis erros internos de estrutura dos 
componentes do software ou sistema.
 Teste Caixa-preta (teste comportamental) – Visa identificar as falhas em seu comportamento 
externo, com foco nos requisitos funcionais, e conduzidos na interface de software com o 
usuário e com o hardware.
Testes e diagnósticos – Testes Caixa-preta e Caixa-branca
Fonte: MORENO (2020).
Caso
de teste
Referência Especificação
CTP01
RF01,
RF01.1,
RF01.2.
CTP01: Teste MVC – apresentação de relatórios:
1. Ver no menu de relatórios os relatórios disponíveis e se 
estão de acordo com os requisitos;
2. Verificar a exibição de relatórios se está de acordo com os 
requisitos e os registros de dados;
3. Textos e mensagens deverão ser exibidos em sua íntegra.
4. Revisar os cálculos.
CTP02
RS01,
RS02,
RS03.
CTP02: ambiente do usuário:
1. Tipo de computador está de acordo com os requisitos;
2. Sistema operacional e Navegador estão de acordo com os 
requisitos do sistema.
A CPU Core i7 é um processador em um único chip 
manufaturado com quatro ou mais núcleos em uma única 
pastilha de silício (TANENBAUM, 2013). Sobre esta 
arquitetura é correto afirmar que:
a) Esta é uma arquitetura típica de um cluster de 
computadores.
b) Este tipo de multiprocessamento ocorre com o 
acréscimo de outros computadores conectados em uma 
rede local, para serviços de uma determinada aplicação.
c) Nesta arquitetura, o hardware e o software dos vários 
computadores são compartilhados por todos na rede.
d) O multiprocessamento fornece uma sincronização entre 
os múltiplos processadores para acessarem a memória 
de forma comum.
e) Os sistemas de informação, neste tipo de arquitetura, 
conseguem acessar os objetos distribuídos pela rede.
Interatividade
IA-32
CPU + L1
Cache L2
IA-32
CPU + L1
Cache L2
IA-32
CPU + L1
Cache L2
IA-32
CPU + L1
Cache L2
Rede em anel
Cache L3 compartilhada
A CPU Core i7 é um processador em um único chip 
manufaturado com quatro ou mais núcleos em uma única 
pastilha de silício (TANENBAUM, 2013). Sobre esta 
arquitetura é correto afirmar que:
a) Esta é uma arquitetura típica de um cluster de 
computadores.
b) Este tipo de multiprocessamento ocorre com o 
acréscimo de outros computadores conectados em uma 
rede local, para serviços de uma determinada aplicação.
c) Nesta arquitetura, o hardware e o software dos vários 
computadores são compartilhados por todos na rede.
d) O multiprocessamento fornece uma sincronização entre 
os múltiplos processadores para acessarem a memória 
de forma comum.
e) Os sistemas de informação, neste tipo de arquitetura, 
conseguem acessar os objetos distribuídos pela rede.
Resposta
IA-32
CPU + L1
Cache L2
IA-32
CPU + L1
Cache L2
IA-32
CPU + L1
Cache L2
IA-32
CPU + L1
Cache L2
Rede em anel
Cache L3 compartilhada
 Os níveis de manutenção do software variam do negócio para a tecnologia e funcionam, 
basicamente, com as abordagens top-down e bottom-up, vistas no “Tópico 7.2.4 Princípios 
de construção – Unidade IV”.
 A abordagem top-down e bottom-up para a manutenção difere do teste de software. O teste
de software tem, como objetivo, validar o software para o aceite do cliente e, na manutenção,
tem, como objetivo, fazer as mudanças no software para reparar os defeitos, adaptar o 
software a um novo ambiente operacional ou fazer os acréscimos de funções.
Manutenção do software
Fonte: MORENO (2020).
Top-down Software/Sistema
Funcionalidade 2Funcionalidade 1 n Funcionalidades
n FunçõesFunção 1 Função 2
Código
(software)
Interface
(usuário)
Interface
(hardware)
Desempenho e
Segurança
Bottom-up
 O processo de mudança do software ocorre em todo o seu ciclo de vida. Tudo para manter o 
software operacional e adaptado às novas tecnologias.
 Adaptações a novos ambientes operacionais e interfaces, mudanças de requisitos, possíveis 
erros de projeto ou de codificação.
De acordo com Lehman (1985), duas leis se destacam: 
 Mudança contínua: um programa necessariamente tem de ser modificado ou se tornará, de 
maneira progressiva, menos útil nesse ambiente;
 Aumento da complexidade: à medida que um programa em evolução se modifica, a sua 
estrutura tende a se tornar mais complexa.
Manutenção do software – Fundamentos da manutenção
Tipos de manutenção
Manutenção para reparar os defeitos no software;
Manutenção para adaptar o software a um ambiente operacional 
diferente;
Manutenção para fazer os acréscimos à funcionalidade do 
sistema ou modificá-la.
Fonte: PRESSMAN (2011).
 Cleanroom se baseia na prevenção de defeitos, ao invés da remoção de defeitos. 
 Utiliza uma especificação formal, usa um modelo de transição de estados baseada no 
desenvolvimento incremental com as inspeções rigorosas. 
Manutenção do software – Prevenção de defeitos com cleanroom
Fonte: SOMMERVILLE (2007).
Especificar
formalmente
o sistema
Definir
incrementos
de software
Desenvolver 
o perfil
operacional
Construir 
um
programa
estruturado
Verificar um 
código
formalmente
Integrar um
incremento
Projetar os
testes
estatísticos
Testar o
sistema
integrado
Retrabalho devido ao erro
 O gerenciamento de configuração define como registrar e processar as mudanças do 
sistema, e de como relacioná-los aos componentes e os métodos utilizados.
Gerenciamento de configuração do software
Atividades de configuração de software
Gerenciamento de mudanças Registro histórico das mudanças aplicadas no sistema;
Gerenciamento de versões Registro e acompanhamento das versões do sistema;
Construção de sistemas
Processo de compilar e ligar componentes de software
em um programa para uma configuração específica;
Gerenciamento de releases
Registro e acompanhamento das versões liberadas 
para o cliente.
Fonte: SOMMERVILLE (2011).
 O formulário de Requisição de Mudança 
é o registro de mudança no software que 
precede os procedimentos de manutenção.
Gerenciamento de configuração – Gerenciamento de mudanças
Fonte: MORENO (2019).
 São versões criadas para testes ou no desenvolvimento, e não são liberadas para o cliente. 
Gerenciamento de configuração – Gerenciamento de versões
Exemplos de técnicas básicas de numeração e identificação da versão
Numeração de versões
Versão 3.21 – Dígito (3) identifica a mudança de estrutura, 
dígito (2) indica a inserção de funcionalidade e o dígito (1) 
indica que houve a implementação de uma mudança;
Identificação por atributos
Versão TEC01_1 - TEC – Representa o componente 
teclado, (01) inserção de um mapa de caracteres e (_1) 
indica que houve a implementação de uma mudança;
Identificação orientada a mudanças CAR_04 – Carlos requisita uma quarta mudança.
Fonte: MORENO 
(2020).
V 1.0 V 1.1 V 1.1a
V 1.1b
Rel 1.0
V 1.2 V 1.3 V 1.31
Rel 1.1
 A construção de sistemas é o processo da criação de um sistema completo, executável por 
meio da construção e da ligação dos componentes de sistema, bibliotecas externas, arquivos 
de configuração, [...] (SOMMERVILLE, 2011).
 Toda a versão gerada deve ser registrada e armazenada.
Gerenciamento de configuração – Construção de sistemas: entrega
Fonte: SOMMERVILLE (2020).
Arquivos de
códigos-fonte
Arquivos de
configuração
Testes
executáveis
Arquivos
de dados
Bibliotecas
Sistema-alvo
executável
Sistema
automatizado
de construção
Compiladores
e ferramentas
Resultados
de testes
 Sempre existiram muitas versões de um sistema,mais do que releases, porque o release é 
a versão do software ou do sistema produzido que é autorizada para distribuir ao cliente.
O lançamento do release é acompanhado de vários fatores técnicos e organizacionais, 
tais como:
 Programa de instalação;
 Manual técnico e do usuário;
 Arquivos de configurações;
 Bibliotecas, arquivos de dados e scripts de registros.
Gerenciamento de configuração – Gerenciamento de releases
Em um determinado servidor foi feita uma expansão da memória RAM e uma atualização do 
sistema operacional. Assinale a alternativa correspondente ao tipo de manutenção que deverá 
ser aplicada:
a) Com a inserção de novos drivers a manutenção é para reparar os defeitos do software.
b) Como houve a atualização do sistema operacional, haverá novas funcionalidades, logo, a 
manutenção é para fazer acréscimos de funcionalidades do sistema.
c) Manutenção para fazer acréscimos à funcionalidade do sistema, porque novas interfaces 
serão inclusas.
d) Manutenção preventiva para identificar o erro antes do 
software entrar em operação.
e) No domínio do sistema é feita a manutenção para adaptar 
o software a um ambiente operacional diferente.
Interatividade
Em um determinado servidor foi feita uma expansão da memória RAM e uma atualização do 
sistema operacional. Assinale a alternativa correspondente ao tipo de manutenção que deverá 
ser aplicada:
a) Com a inserção de novos drivers a manutenção é para reparar os defeitos do software.
b) Como houve a atualização do sistema operacional, haverá novas funcionalidades, logo, a 
manutenção é para fazer acréscimos de funcionalidades do sistema.
c) Manutenção para fazer acréscimos à funcionalidade do sistema, porque novas interfaces 
serão inclusas.
d) Manutenção preventiva para identificar o erro antes do 
software entrar em operação.
e) No domínio do sistema é feita a manutenção para adaptar 
o software a um ambiente operacional diferente.
Resposta
 LEHMAN, M. M.; BELADY, L. A. Program evolution. APIC Studies in Data Processing, 
Academic Press, 1985.
 PAULA FILHO, W. de P. Engenharia de Software: Fundamentos, Métodos e Padrões. 3. ed. 
Rio de Janeiro: LTC, 2015.
 PRESSMAN, R. S. Engenharia de Software: uma abordagem profissional. 7. ed. Rio de 
Janeiro: McGraw-Hill, 2011.
 SOMMERVILLE, I. Engenharia de Software. 9. ed. São Paulo: Pearson Prentice H., 2011.
 TANENBAUM, A. S. Organização Estruturada de Computadores. São Paulo: Pearson 
Prentice Hall, 2013.
 VERSOLATTO, F. R. Projeto de Sistemas: Projeto de 
Sistemas Orientado a Objetos. São Paulo: Editora Sol, 2015.
Referências
ATÉ A PRÓXIMA!

Continue navegando