Escolar Documentos
Profissional Documentos
Cultura Documentos
Design Patterns E Gerência de Configuração: Do Projeto Ao Controle de Versões
Design Patterns E Gerência de Configuração: Do Projeto Ao Controle de Versões
APRENDIZAGEM EM FOCO
2
integrem Design Patterns e a Gerência de Configuração, visando à
qualidade.
Bons estudos!
INTRODUÇÃO
3
TEMA 1
5
Figura 1 – Padrões de projeto
Padrões de criação
Padrões de estrutura
Padrões de comportamento
6
Por outro lado, caso o problema do desenvolvimento de software
possa ser resolvido com um padrão, é necessário, antes de tudo,
que você estude todos os padrões para saber as características de
cada um. Dessa forma, saberá qual padrão deve ser utilizado em um
problema específico.
Referências bibliográficas
LEITE, A. F. Conheça os Padrões de Projeto. DevMedia, 2005. Disponível em:
https://www.devmedia.com.br/conheca-os-padroes-de-projeto/957. Acesso em:
20 abr. 2021.
7
Geralmente a saudação é realizada com estruturas de decisão if,
mas podemos utilizar o factory method para guardar as informações
de sexo e nome, criando um objeto “homem” para realizar a
saudação correta; dessa forma, tudo fica guardado dentro do factory
method.
factory.getPessoa(nome, sexo);
8
Figura 2 – Padrão de projeto de criação factory method
9
não se expanda de uma forma descontrolada, mantendo uma boa
prática de programação, o que faz com que o sistema funcione de
acordo com os objetivos predefinidos pelo cliente.
TEORIA EM PRÁTICA
LEITURA FUNDAMENTAL
Indicações de leitura
10
sites acadêmicos (como o SciELO), repositórios de instituições
públicas, órgãos públicos, anais de eventos científicos ou
periódicos científicos, todos acessíveis pela internet.
Indicação 1
Indicação 2
11
QUIZ
12
d. Os padrões de projetos são ferramentas com soluções
simples; assim, não devemos utilizá-los para soluções de
problemas complexos.
e. O conceito de padrões de projetos está ligado à não
reutilização de um determinado padrão para mais de um
problema.
GABARITO
Questão 1 - Resposta B
Resolução: Um padrão de projeto possui necessariamente
três partes: problema, solução e contexto. O problema está
13
relacionado ao código que está sendo desenvolvido; a solução
é a escolha de um padrão; e o contexto está relacionado ao tipo
de aplicação.
Questão 2 - Resposta C
Resolução: Os padrões catalogados pela Gang of Four foram
inseridos nos grupos: padrões de projetos de criação, padrões
de projetos de comportamento e padrões de projetos de
estrutura, sendo possível citar um exemplo de cada grupo:
o padrão de projeto de criação Factory method; o padrão de
projeto de estrutura Adapter pattern; e padrão de projeto de
comportamento Mediator pattern. As demais alternativas estão
incorretas, pois não trazem os nomes corretos dos grupos.
14
TEMA 2
Gerência de configuração:
atividades, ferramentas e desafios
______________________________________________________________
Autoria: Arthur Gonçalves
Leitura crítica: Marco Ikuro Hisatomi
DIRETO AO PONTO
16
Para entender melhor a gerência de configuração de software,
é necessário conhecer alguns conceitos básicos, algumas
terminologias consideradas essenciais. O Quadro 1 mostra os
conceitos básicos segundo a visão do autor Sommerville (2018):
17
Área de trabalho privada em que
o software pode ser modificado
Espaço de trabalho sem afetar outros desenvolvedores
que possam estar usando ou
modificando-o.
Processo de criação de uma
versão de sistema executável
Construção de sistema com componentes e bibliotecas
adequados que o compõem.
Referências bibliográficas
BORGES, S. S. Apoio de gerência de configuração de software ao
ARAGAwCRe. Dissertação (Mestrado em Ciência da Computação) –
Universidade Federal de São Carlos, São Carlos, 2009.
MORAIS, I. S.; ZANI, A. Engenharia de software. Porto Alegre: SAGAH, 2017.
PRESSMAN, R. S. Engenharia de Software, uma abordagem profissional.
Tradução de Ariovaldo Griesi e Mario Moro Fecchio. 8. ed. Porto Alegre: AMGH,
2016.
SOMMERVILLE, I. Engenharia de Software. Tradução Luiz Cláudio Queiroz. 10.
ed. São Paulo: Pearson Education do Brasil, 2018.
18
hardwares e ferramentas. É muito importante escolher entre utilizar
ou não os IC em um sistema. Na realidade, é necessário analisar a
necessidade desse controle.
1. Nome.
2. Data de criação.
3. Local de armazenamento.
4. Quem criou.
Referências bibliográficas
SOMMERVILLE, Ian. Engenharia de Software. Tradução Luiz Cláudio Queiroz.
10. ed. São Paulo: Pearson Education do Brasil, 2018.
19
TEORIA EM PRÁTICA
LEITURA FUNDAMENTAL
Indicações de leitura
20
Isso não significa que o protagonismo da sua jornada de
autodesenvolvimento deva mudar de foco. Reconhecemos
que você é a autoridade máxima da sua própria vida e deve,
portanto, assumir uma postura autônoma nos estudos e na
construção da sua carreira profissional.
Indicação 1
Indicação 2
21
QUIZ
22
As atividades de gerenciamento de configuração de software
reúnem quatro atividades essenciais, que são:
GABARITO
Questão 1 - Resposta A
Resolução: A gerência de configuração de software aborda
quatro atividades, entre elas a gerência de configuração de
construção de sistemas, que executa processos de criação por
meio de componentes de sistemas. As demais alternativas
estão incorretas, pois nenhuma aborda a atividade de
construção de sistemas a importância dos componentes nesta.
Questão 2 - Resposta C
Resolução: As quatro atividades relacionadas à gerência
de projetos são as gerências de mudanças, de versões, de
construção de sistemas e de releases. As demais alternativas
estão incorretas, pois não trazem os nomes corretos das
atividades da gerência de configuração de software.
23
TEMA 3
25
O Git é uma ferramenta que deve ser instalada no seu computador
e reúne os programas Git Gui, com o qual o desenvolvedor pode
realizar ações por interface gráfica; Git Bash, que é um terminal
para a inserção de linhas de comandos, muito utilizado por usuários
habituados com sistemas Linux; e Git cmd, que também é um
terminal e realiza as mesmas operações que o Git Bash, porém é
mais utilizado por usuários habituados com os sistemas Windows,
pois é onde utilizam o command do Windows.
26
Git config --global user.email Comando utilizado para se
“SeuEmail@email.com” identificar na ferramenta Git. O
e-mail inserido deve ser o mesmo
informado no cadastro do GitHub.
Git init Comando utilizado para criar um
novo repositório local.
Git status Comando utilizado para verificar o
status dos arquivos que constam
no repositório local. Apenas mostra
arquivos que ainda não foram
enviados para controle e arquivos
alterados.
Git add -A Comando utilizado para adicionar
todos os arquivos para controle de
versão.
Git commit -m Comando utilizado para iniciar o
processo de envio de arquivos do
repositório local para o repositório
remoto, em que o –m escreve uma
mensagem de descrição do arquivo
enviado, como commit -m “Linha 2
alterada”.
Git remote origin in Comando utilizado para indicar o
caminho do repositório remoto
que servirá para o congelamento
da versão. Esse caminho deve ser
copiado do repositório criado no
GitHub.
Git push -u origin master Comando final utilizado para enviar
os arquivos adicionados ao controle
de versão para o repositório remoto
no GitHub.
27
Git branch É umas das principais vantagens
do uso de uma ferramenta de
controle de versão e release de
itens de software, podendo ser
útil quando são feitas simulações
ou testes ou, até mesmo, quando
há desenvolvimento em paralelo
por equipes (squad ou tribe) de
software.
Fonte: elaborado pelo autor.
TEORIA EM PRÁTICA
29
LEITURA FUNDAMENTAL
Indicações de leitura
Indicação 1
30
Indicação 2
LASTER, B. Professional Git. Nova Jersey: John Wiley & Sons, 2016. v.
1..
QUIZ
GABARITO
Questão 1 - Resposta A
Resolução: O controle de versões de software é fundamental
para projetos individuais ou desenvolvidos por equipes de
desenvolvedores. Qualquer ferramenta de controle de versão
consegue criar um repositório. As demais alternativas estão
incorretas, pois nenhuma preenche corretamente as lacunas do
enunciado.
32
Questão 2 - Resposta A
Resolução: As ferramentas de controle de versão de
software congelam os arquivos alterados, mantendo todas as
atualizações realizadas em um sistema. Dessa forma, é possível
manter as alterações comentadas para que o processo de
controle se torne mais seguro. As demais alternativas estão
incorretas, pois não fazem referência correta ao conceito de
ferramentas de controle de software.
33
TEMA 4
35
como a gerência de configuração de controle de mudanças, é
auxiliado por ferramentas que atuam diretamente nesse controle. A
mais utilizada para realizar esse processo é o Git, aliado ao GitHub.
Já o gerenciamento de configuração de controle de construção
de sistema está relacionado ao processo geral de construção de
sistema e é auxiliada por ferramentas de controle, sendo Jenkins a
mais conhecida.
Referências bibliográficas
BIGARDI, G. B. Arquitetura e Desenvolvimento de software — Parte 12 —
Facade. 2019. Disponivel em: https://medium.com/@gbbigardi/arquitetura-e-
desenvolvimento-de-software-parte-12-facade-2a5ed5209325. Acesso em: 6
maio 2021.
GURU, R. Mediator. [s.d.]. Disponivel em: https://refactoring.guru/pt-br/design-
patterns/mediator. Acesso em: 1 jun. 2021.
MARTINS, C. Padrões de Projeto em Aplicações Web Desenvolvendo
projetos web consistentes baseados em reuso de soluções. 2012. Disponível
em: http://www.facom.ufu.br/~bacala/DAW/artigo2012-javamagazine107-
PadroesProjetoWeb.pdf. Acesso em: 9 ago. 2021.
PASSOS, U. Gestão de Projetos: Primeiros passos com o RedMine. DevMedia,
2015. Disponivel em: https://www.devmedia.com.br/gestao-de-projetos-
primeiros-passos-com-o-redmine/33905. Acesso em: 1 jun. 2021.
VALENTE, M. T. Engenharia de Software: Princípios e Práticas para
Desenvolvimento de Software com Produtividade. Minas Gerais: [s.n.], 2020. v.
A teoria parece ser bem simples, mas como resolver esse problema
na prática? Na realidade, nem na prática é tão complicado, porque,
como já sabemos, existem padrões de projetos para nos auxiliar,
sendo a ideia reutilizar uma solução já existente. Nesse caso, fica
fácil, já que existem diversos jogos que utilizam o checkpoint como
alternativa para os usuários.
38
Figura 1 – Criação de checkpoint com o padrão memento
Referências bibliográficas
BIGARDI, G. B. Arquitetura e Desenvolvimento de software — Parte 12 —
Facade. 2019. Disponivel em: https://medium.com/@gbbigardi/arquitetura-e-
desenvolvimento-de-software-parte-12-facade-2a5ed5209325. Acesso em: 6
maio 2021.
GURU, R. Mediator. Refactoring guru. [s.d.]. Disponivel em: https://refactoring.
guru/pt-br/design-patterns/mediator. Acesso em: 1 jun. 2021.
MARTINS, C. Padrões de Projeto em Aplicações Web Desenvolvendo
projetos web consistentes baseados em reuso de soluções. 2012.
39
Disponível em: http://www.facom.ufu.br/~bacala/DAW/artigo2012-
javamagazine107-PadroesProjetoWeb.pdf. Acesso em: 9 ago. 2021.
PASSOS, U. Gestão de Projetos: Primeiros passos com o RedMine. 2015.
Disponivel em: https://www.devmedia.com.br/gestao-de-projetos-primeiros-
passos-com-o-redmine/33905. Acesso em: 1 jun. 2021.
VALENTE, M. T. Engenharia de Software: Princípios e Práticas para
Desenvolvimento de Software com Produtividade. Minas Gerais: [s.n.], 2020. v.
1.
TEORIA EM PRÁTICA
40
LEITURA FUNDAMENTAL
Indicações de leitura
Indicação 1
41
Indicação 2
QUIZ
42
configuração de software envolve atividades que controlam
todo o processo de desenvolvimento. Em projetos de
desenvolvimento de jogos eletrônicos, utilizamos o padrão
de projeto GoF ___________ para guardar o estado interno de
um___________.
a. Prototype; classe.
b. Adapter; método.
c. Memento; objeto.
d. Builder; objeto.
e. Facade; classe.
a. Git.
b. Jenkins.
c. GitHub.
43
d. Redmine.
e. Rubi.
GABARITO
Questão 1 - Resposta C
Resolução: Em projetos de desenvolvimento de jogos
eletrônicos, utilizamos o padrão de projeto GoF memento para
guardar o estado interno de um objeto. As demais alternativas
estão incorretas, pois nenhuma completa corretamente o
enunciado.
Questão 2 - Resposta D
Resolução: A ferramenta Redmine é um exemplo de
ferramenta que atua no controle de mudanças. Nela, é possível
criar projetos, cadastrar a equipe que participará do projeto
e as tarefas que cada membro realizará dentro do projeto. As
demais alternativas estão incorretas, pois não trazem o nome
correto da ferramenta utilizada na gerência de configuração de
software.
44
BONS ESTUDOS!