Leonardo Gresta Paulino Murta Associate Professor, IC/UFF D.Sc., COPPE/UFRJ, 2006 M.Sc., COPPE/UFRJ, 2002 B.Sc., IC/UFRJ, 1999 |
Disciplina: Laboratório de Gerência de Configuração
Data: sextas, de 9h às 13h
Local: sala 238 do bloco D
Grupo: http://www.facebook.com/groups/labgc2012.2 (importante: todos os alunos devem se cadastrar nesse grupo)
Média = (Apresentação de Leituras + Seminários + Trabalho) / 3
APROVADO
(Presença >= 75%) E (Média >= 6)
VERIFICAÇÃO SUPLEMENTAR
(Aluno de Graduação) E (Presença >= 75%) E (4 <= Média < 6)
Será aprovado na VS se tirar nota maior ou igual a 6.
REPROVADO
Caso contrário
As atividades do curso serão feitas individualmente para alunos de mestrado e doutorado e em dupla para alunos de graduação, que devem ser constituídas na primeira semana de aula e ter a mesma formação até o final do curso. Apesar das atividades serem em grupo, a avaliação será individual. Entreguem por e-mail (assunto: Lab GC - Grupo) o número da matrícula e o nome completo de cada participante do grupo.
Um cronograma de leituras de artigos e capítulos de livro é indicado para viabilizar a consolidação dos conhecimentos referentes à matéria.
Uma das aulas da semana (ver seção Cronograma) consiste na apresentação dos leituras e capítulos de livro lidos na semana, seguida de discussões sobre as leituras. Essa apresentação será feita por grupos previamente definidos (reserve o quanto antes as suas por e-mail). Além disso, os demais grupos ficarão encarregados de discutir aspectos da leitura. Cada apresentação deve ter duração de 30 a 60 minutos. A participação nessas atividades será considerada na composição da Média (item Apresentação de Leituras).
Os artigos e livros estão disponíveis no Facebook para os alunos já cadastrados no Grupo.
1ª leitura: sistemas históricos (SCCS, RCS e CVS)
Marc J. Rochkind, 1975, “The Source Code Control System”, IEEE Transactions on Software Engineering (TSE), 1 (4), pp. 364-370
Walter F. Tichy, 1984, “RCS - A System for Version Control”, Purdue University, TR 84-474
Capítulo 1, “Overview”, de Cederqvist, 2005, “Version Management with CVS”
2ª leitura: Subversion (1 de 3)
Prefácio, “What Is Subversion?”, de Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato, “Version Control with Subversion”
Capítulo 1, “Fundamental Concepts”, de Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato, “Version Control with Subversion”
Capítulo 2, “Basic Usage”, de Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato, “Version Control with Subversion”
3ª leitura: Subversion (2 de 3)
Capítulo 4, “Branching and Merging”, de Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato, “Version Control with Subversion”
4ª leitura: Subversion (3 de 3)
Capítulo 5, “Repository Administration”, de Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato, “Version Control with Subversion”
5ª leitura: Mercurial (1 de 2)
Capítulo 1, “How did we get here?”, de Bryan OSullivan, “Mercurial: The Definitive Guide”
Capítulo 2, “A tour of Mercurial: the basics”, de Bryan OSullivan, “Mercurial: The Definitive Guide”
Capítulo 3, “A tour of Mercurial: merging work”, de Bryan OSullivan, “Mercurial: The Definitive Guide”
6ª leitura: Mercurial (2 de 2)
Capítulo 4, “Behind the scenes”, de Bryan OSullivan, “Mercurial: The Definitive Guide”
Capítulo 6, “Collaborating with other people”, de Bryan OSullivan, “Mercurial: The Definitive Guide”
Capítulo 8, “Managing releases and branchy development”, de Bryan OSullivan, “Mercurial: The Definitive Guide”
7ª leitura: Git (1 de 6)
Capítulo 1, “Getting Started”, de Scott Chacon, 2010, “Pro Git”
Capítulo 2, “Git Basics”, de Scott Chacon, 2010, “Pro Git”
8ª leitura: Git (2 de 6)
Capítulo 3, “Git Branching”, de Scott Chacon, 2010, “Pro Git”
9ª leitura: Git (3 de 6)
Capítulo 4, “Git on the Server”, de Scott Chacon, 2010, “Pro Git”
10ª leitura: Git (4 de 6)
Capítulo 5, “Distributed Git”, de Scott Chacon, 2010, “Pro Git”
11ª leitura: Git (5 de 6)
Capítulo 6, “Git Tools”, de Scott Chacon, 2010, “Pro Git”
12ª leitura: Git (6 de 6)
Capítulo 9, “Git Internals”, de Scott Chacon, 2010, “Pro Git”
O trabalho consiste na construção colaborativa de um sistema de controle de versões. Nas primeiras aulas discutiremos uma arquitetura genérica de um sistema de controle de versões e cada grupo deverá escolher alguns módulos dessa arquitetura para ser o tema do seu trabalho.
Como resultado, espera-se a escrita de um artigo de 8 a 10 páginas no formato da SBC, apresentando as seguintes seções:
O trabalho deve ser entregue na data estipulada (ver seção Cronograma) para compor a Média (item Trabalho).
Obs.: atraso na entrega do Trabalho terá uma multa de um ponto por dia.
Uma das aulas da semana consiste no seminário de andamento dos trabalhos (ver seção Cronograma). O grupo poderá utilizar slides e quadro e cada apresentação deve durar 30 a 60 minutos. Nas primeiras apresentações é esperado que o grupo discuta o contexto do trabalho, o detalhamento da interface com outros módulos e a metodologia a ser adotada na execução do mesmo. Nas apresentações intermediárias é esperado que o grupo discuta como está o andamento do trabalho, mostrando os seus módulos em execução, integrados com os demais. Assim, nesse momento já é esperado algum resultado concreto, mesmo que ainda com pouco aprofundamento. Desde a primeira apresentação, é esperado que a integração entre os módulos seja considerada como um elemento chave.
Na última semana do curso haverá uma apresentação final onde os grupos devem mostrar os resultados obtidos no trabalho. Vale notar que nesse momento os trabalhos estão sendo entregues, e essa apresentação serve como um espaço para que os grupos detalhem as suas experiências na execução do trabalho. Essas apresentações serão consideradas na composição da Média (item Seminários).
De acordo com o Regulamento dos Cursos de Graduação e de Pós-Graduação, a presença mínima necessária para aprovação é de 75% das aulas (Art. 80, §14 e Art. 20, respectivamente). Vale notar que segundo o mesmo regulamento, nenhuma falta será abonada (Art. 80, §15).
De acordo com o Regulamento dos Cursos de Graduação, não será permitida a Avaliação de Aprendizagem em Caráter Excepcional (i.e., 2ª chamada), com exceção dos casos citados no Art. 87, de acordo com os procedimentos do Art. 88.
As leituras do curso são sobre os artigos e livros a seguir. Alguns capítulos foram selecionados para leitura, mas é recomendado que os demais capítulos sejam lidos sob demanda, em função do tema do trabalho.
Marc J. Rochkind, 1975, “The Source Code Control System”, IEEE Transactions on Software Engineering (TSE), 1 (4), pp. 364-370
Walter F. Tichy, 1984. “RCS - A System for Version Control”, Purdue University, TR 84-474
Cederqvist, 2005, “Version Management with CVS”
Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato, “Version Control with Subversion”
Bryan OSullivan, “Mercurial: The Definitive Guide”
Scott Chacon, “Pro Git”
Data | Sessão | Atividade | Entrega |
17/08/2012 | 9h às 11h | Aula - Apresentação do Curso | |
11h às 13h | Aula - Introdução ao Controle de Versões | ||
24/08/2012 | 9h às 11h | Apresentação e Discussão (1ª leitura) | |
11h às 13h | Aula - Apresentação da Arquitetura | ||
31/08/2012 | 9h às 11h | Apresentação e Discussão (2ª leitura) | |
11h às 13h | Seminário de andamento (Algoritmos de Diff e Patch; Modelo de versionamento e Armazenamento) | ||
07/09/2012 | Sem aula (Independência do Brasil) | ||
14/09/2012 | 9h às 11h | Apresentação e Discussão (3ª e 4ª leituras) | |
11h às 13h | Seminário de andamento (Espaço de trabalho; API Cliente e API Servidor) | ||
21/09/2012 | 9h às 11h | Apresentação e Discussão (5ª leitura) | |
11h às 13h | Seminário de andamento (Comunicação; GUI/CLI e Algoritmo de Merge) | ||
28/09/2012 | Sem aula (CBSoft) | ||
05/10/2012 | 9h às 11h | Apresentação e Discussão (6ª e 7ª leituras) | |
11h às 13h | Seminário de andamento (Algoritmos de Diff e Patch; Modelo de versionamento e Armazenamento) | ||
12/10/2012 | Sem aula (Nossa Senhora Aparecida) | ||
19/10/2012 | 9h às 11h | Apresentação e Discussão (8ª e 9ª leituras) | |
11h às 13h | Seminário de andamento (Espaço de trabalho; API Cliente e API Servidor) | ||
26/10/2012 | 9h às 11h | Apresentação e Discussão (10ª leitura) | |
11h às 13h | Seminário de andamento (Comunicação; GUI/CLI e Algoritmo de Merge) | ||
02/11/2012 | Sem aula (Finados) | ||
09/11/2012 | Sem aula (BRAGFOST) | ||
16/11/2012 | Sem aula (Proclamação da República) | ||
23/11/2012 | Apresentação e Discussão (11ª e 12ª leituras) | ||
30/11/2012 | 9h às 11h | Seminário final (todos os módulos integrados) | |
11h às 13h | Seminário final (todos os módulos integrados) e Aula - Ant e Maven | Artigo |