Escolar Documentos
Profissional Documentos
Cultura Documentos
processos e tecnologias
Este documento descreve padrões adotados na Fábrica de Software do CEULP para
tecnologias e processos e serve como guias para o desenvolvimento de novos projetos.
Sumário
Processos 3
Tecnologias 6
Artefatos 7
Linha de comando 8
Interface gráfica 9
Linha de comando 10
Interface Gráfica 10
Linha de Comando 12
Interface Gráfica 13
Linha de comando 17
Interface Gráfica 17
Primeiro acesso 21
Referências 27
Visão geral 29
Inserindo Estimativas 30
REFERÊNCIAS 32
Documentação do código-fonte 34
Projetos PHP 34
Guias gerais 34
Processos
O desenvolvimento de projetos na Fábrica de Software segue a metodologia SCRUM e
utiliza a ferramenta Gitlab como suporte. Desta forma, o processo de desenvolvimento deve
seguir as seguintes etapas:
c. fazer push diariamente (sem corromper o repositório remoto com código que
não funciona)
Tecnologias
O ideal é que um projeto [novo] não fique preso a um conjunto específico de tecnologias e
que sejam estudadas as necessidades de integrações com outros projetos. Entretanto,
seguem alguns conjuntos de tecnologias mais utilizadas:
Artefatos
Ao descrever projetos, produzir os seguintes artefatos (não necessariamente nesta ordem):
i. print da tela
Git é um sistema de controle de versão gratuito e open source, desenvolvido para gerenciar
o versionamento de projetos grandes ou pequenos. Este documento é destinado a
apresentar algumas dicas rápidas e fluxos de trabalho para o desenvolvimento usando essa
ferramenta. Para informações mais completas sobre utilização a documentação está
disponível em https://git-scm.com/docs.
Além do sistema do Git para versionar projetos, são usados sistemas web para colaboração
e compartilhamento, isso permite que várias pessoas trabalhem no mesmo projeto de forma
remota. GitHub e GitLab são exemplos de softwares com esse objetivo. Nos exemplos a
seguir será usado o fluxo para o desenvolvimento usando GitLab (http://gitlab.bitstudio.io/),
a documentação oficial pode ser acessada em https://docs.gitlab.com/ee/user/index.html.
Linha de comando
O Git disponibiliza opções para que possam ser executados processos pertinentes ao
sistema através da linha de comando. Para clonar o repositório usando a linha de comando
(Terminal, Command Prompt. PowerShell, etc), é preciso abrir o shell e executar o seguinte
comando:
Interface gráfica
Para esse exemplo será utilizado o GitKraken, que possui uma versão gratuita com algumas
limitações.
Obs.: Alunos têm acesso a funções da versão PRO do GitKraken ao logar com uma conta
premium de estudante do GitHub.
Nessa tela através da opção “Clone with URL”, o repositório do GitLab será baixado, é
preciso informado para qual diretório o projeto deve ser clonado e a URL do projeto. O
repositório clonado se comporta como um repositório Git local, ou seja, o estado de todos
os arquivos e da pasta do repositório serão guardados, isso garante que será mantido um
controle sobre quais arquivos novos foram inseridos e/ou alterados.
Linha de comando
Para criar e usar um novo branch existem alguns comandos do Git que podem ser usados
direto da linha de comando do shell. O primeiro é usado para criar um novo branch.
O nome do branch deve conter o nome o tipo da funcional (feature, Hotfix), seguido de barra
e o nome da funcionalidade (sis_financeiro, login, cadastro), também é informado a qual
sprint (Milestone) aquela funcionalidade está ligada, (sprint-1, sprint-2…), um exemplo de
nomenclatura de branch seria: feature/sis_financeiro/sprint-1. Qualquer modificação nesse
novo branch não irá afetar diretamente outros branchs do repositório. No comando abaixo
está o comando para alterar entre branchs.
É comum que seja criado vários branchs que referenciam o desenvolvimento de novas
funcionalidades, correção de bugs, etc. Isso faz com que o desenvolvimento seja mais
organizado e seguro.
Interface Gráfica
A interface gráfica também auxilia no controle e acompanhamento de branchs, pois
apresenta visualmente os branchs do repositório. Para criar um novo branch com o
GitKraken o usuário deve clicar no menu de projeto na parte superior central no botão
Branch, essa ação vai abrir uma caixa de texto para que seja inserido o nome do novo
branch, após colocar o nome e dar enter o GitKraken irá criar um novo branch e usá-lo
como branch atual.
Linha de Comando
Antes de realizar o commit e salvar as alterações realizadas no branch atual, é preciso
adicionar os arquivos alterados na “Área de arquivos para salvar”, todos os arquivos que
estiverem nessa “área”, serão incluídos no próximo commit. Existem dois comandos para
realizar essa ação, eles estão exemplificados abaixo:
Esse primeiro comando adiciona um arquivo ou pasta para ser salvo no próximo commit.
Abaixo é demonstrado outro comando com que também pode ser usado para enviar
alterações em arquivos para serem comitados (Salvos).
git add .
Colocando um Ponto fará com que todas as alterações em arquivos do repositório sejam
inseridas na área de arquivos a serem comitados.
O próximo passo é realizar o commit (Salvar alterações). Cada commit possui um código
identificador, e serve como um ponto de controle, para que seja possível voltar o estado dos
documentos para commits passados (Caso aconteça algum problema com o projeto em
edição, queira recuperar algum código, etc). Abaixo o comando para realizar o commit de
alterações do branch atual no repositório local.
A mensagem do commit é um elemento importante e deve ser algo significativo que informe
sobre as mudanças e implementações feitas. As issues criadas no GitLab que funcionam
como um cronograma de atividades também deve ser mencionado na mensagem, a sintaxe
de menções de issues é #<numero da issue>, por exemplo a mensagem do commit para o
issue 001 deve conter a referência #001.
Interface Gráfica
O GitKraken faz um controle de todas as modificações realizadas no repositório. Na próxima
Figura é demonstrado como adicionar as alterações para serem salvas localmente no
próximo commit (o mesmo do comando add).
Caso seja selecionado apenas um dos arquivos, a aplicação disponibiliza a opção para
enviar apenas o arquivo selecionado para o área de arquivos que estarão no próximo
commit.
Linha de comando
É importante que o repositório local sempre esteja atualizado com o repositório remoto do
GitLab, para baixar alterações do GitLab para o repositório local é preciso realizar um Pull.
Essa ação vai garantir que caso alguma alteração presente no repositório remoto, não
esteja presente no repositório local, ela será baixada e as alterações de arquivos serão
mescladas aos arquivos do repositório local. O comando para realizar um pull é:
git pull
git push
Interface Gráfica
No menu de ferramentas são disponibilizados botões de ação com as opções para realizar
Pull e Push, a Figura 7 exemplifica o processo para enviar atualizações do repositório local
para o GitLab através do Pull.
Na Figura 8 está a ação para realizar a atualização do repositório remoto e com isso enviar
arquivos e alterações locais para o GitLab.
Issues são atividades que podem ser cadastradas no GitLab, elas representam uma
funcionalidade ou partes de uma funcionalidade a serem implementadas, as issues
funcionam também como uma forma de organizar o cronogramas de desenvolvimento da
equipe. Cada issue recebe automaticamente uma numeração como forma de identificação
(Essa identificação deve ser referenciada nos commits). Nas próximas sessões é
demonstrado mais algumas funcionalidades configuráveis para cada issue como estimativas
de tempo e como utilizar o Issue board. É recomendavel seguir a documentação original
para mais detalhes sobre essa funcionalidade do GitLab, o material está disponível em
https://docs.gitlab.com/ee/user/project/issues/index.html#doc-nav.
Milestones são uma forma abstração do conceito de Sprints. Após a reunião de definição da
Sprint e de quais funcionalidades serão implementadas, uma milestone deve ser criada,
geralmente as milestones tem o prazo de uma semana (O prazo também é definido na
criação). As funcionalidades (features) a serem desenvolvidas, que foram selecionadas para
a sprint são então cadastradas como Issues e devem ser vinculadas a milestone que
representa a respectiva sprint. De forma sucinta a issue é uma funcionalidade (ou parte de
uma funcionalidade), e uma milestone é um conjunto de issues que representa a Sprint. Na
documentação oficial do GitLab estão informações mais detalhadas sobre as Milestones,
https://docs.gitlab.com/ee/user/project/milestones/.
Primeiro acesso
Para acessar o board procure navegar através do sidebar do projeto e encontre o Issues >
Board.
A primeira vez que você abrir o Issue Board, será apresentado uma lista contendo o
Backlog, onde você encontrará todas as issues do projeto, assim como uma lista de Issues
fechadas.
Escolha uma label para criar uma lista. A nova lista será inserida no final das listas, antes da
lista de issues fechadas.
Para mover e reordenar, basta arrastá-las. Para criar uma lista de um label que ainda não
existe, basta criar o label escolhendo a opção “Create new label”.
Isso abrirá uma janela modal na qual você poderá ver todos os problemas que não
pertencem a nenhuma lista. Selecione uma ou mais issues clicando nos cards e, em
seguida, clique em “Add issues” para adicioná-los à lista selecionada. Você pode limitar as
issues que deseja adicionar à lista, filtrando por author, assignee, milestone and label.
Após adicionar uma issue à lista, a Issue Boar será apresentada dessa forma.
Referências
PANDYA, Kushal. Issue Boards. 2018. Disponível em:
<https://docs.gitlab.com/ee/user/project/issue_board.html>. Acesso em: 14 ago. 2018.
● Não estar consciente acerca do tempo necessário para resolver uma tarefa pode
acarretar em atrasos na entrega do produto;
● Documentar o tempo gasto com as tarefas pode te ajudar a criar uma base de
conhecimento.
Visão geral
O Gitlab oferece algumas funções de rastreamento de tempo em issues, merge requests e
milestones. Com elas, é possível estimar o tempo, bem como, adicionar o tempo gasto em
determinada issue.
Você não precisa indicar uma estimativa de tempo para informar um tempo gasto e vice
versa. Os dados sobre o rastreamento de tempo são exibidos no menu lateral da issue,
como mostra a figura a seguir.
Ao utilizar o comando /estimate, você indica (usando sintaxe melhor descrita a seguir)
quanto tempo estima que precisará para finalizar determinada issue. O comando /spend é
utilizado para indicar o tempo gasto.
Inserindo Estimativas
Na Fábrica de Software, por padrão, informamos o tempo estimado ao cadastrar uma issue
(no campo Descrição). Portanto, esse processo ocorre apenas 1 vez no “ciclo de vida” de
uma issue.
Para cadastrar uma estimativa é utilizado o comando /estimate seguido do tempo. Por
exemplo, se você estima que precisará de 2 dias, 3 horas e 20 minutos para concluir uma
issue, você utilizará o comando /estimate 2d 3h 20m. Toda vez que uma nova estimativa é
cadastrada, qualquer estimativa anterior é sobrescrita. Por isso, para manter uma base de
registros confiáveis e entender quando há acertos e erros na estimativa cadastramos a
estimativa uma única vez.
● semana (w)
● dias (d)
● horas (h)
● minutos (m)
● 1 semana = 5 dias
● 1 dia = 8 horas
Como boa prática, recomendamos não criar issues com longa duração de tempo (por
exemplo de mais de 1 dia). Em vez disso, sugerimos “quebrar” essa issue em partes
menores.
O uso da técnica PERT consiste em calcular a duração média de uma tarefa utilizando uma
estimativa otimista (O), uma mais provável de acontecer (MP) e outra pessimista (P) e
aplicando o seguinte cálculo:
P ERT = (O + 4 x M P + P ) / 6
Com isto, se você tem, por exemplo, uma tarefa/issue X com estimativa otimista de 3h, mais
provável de 6h e pessimista de 12h, o resultado seria uma média de 6h 30m para realizá-la:
X = (O + 4 x M P + P ) / 6 = (3 + 4 x 6 + 12 ) / 6 = 6h 30m
REFERÊNCIAS
DEVMEDIA. Estimativa de tempo em gerência de projetos de software. 2012.
Disponível em:
<https://www.devmedia.com.br/estimativa-de-tempo-em-gerencia-de-projetos-de-software-re
vista-engenharia-de-software-magazine-51/25757>. Acesso em: 16 ago. 2018.
Documentação do código-fonte
A documentação do código-fonte é uma etapa importante do processo. Projetos
desenvolvidos na Fábrica de Software do CEULP/ULBRA devem ser devidamente
documentados de acordo com cada caso.
Projetos PHP
Códigos-fontes em PHP devem ser documentados seguindo o padrão PHPDoc
(https://www.phpdoc.org/). A ferramenta, também disponível no site do padrão de
documentação, gera um site de documentação completa do projeto.
Guias gerais
As guias gerais a seguir devem ser seguidas na documentação de códigos-fontes:
1
Exemplo: Documentação do projeto "Noticias Angular", software da disciplina LPWEB, ministrada
pelo prof. Jackson Gomes: https://jacksongomesbr.github.io/webdevbook-noticias-angular/
2
Exemplo de código-fonte seguindo o guia de estilo do Google:
http://www.sphinx-doc.org/pt_BR/stable/ext/example_google.html
Fábrica de Software - CEULP/ULBRA