Logo IC/UFF Leonardo Gresta Paulino Murta
Associate Professor, IC/UFF
D.Sc., COPPE/UFRJ, 2006
M.Sc., COPPE/UFRJ, 2002
B.Sc., IC/UFRJ, 1999
Picture

Menu:

Engenharia de Software II

Logística

Disciplina: TCC00293 - Engenharia de Software II

Data: segundas e quartas, de 7:00 às 9:00

Sala: 302 (provas 1 e 2 na sala 206)

Ementa

Monitoria

Monitora: Alan Lira

Horário: quartas, de 8h às 9h e de 11h às 13h, e sextas, de 8h às 13h

Local: sala de estudo

Avaliação

Média = (2 x Prova 1 + 2 x Prova 2 + Trabalho) / 5

APROVADO

(Presença >= 75%) E (Média >= 6)

VERIFICAÇÃO SUPLEMENTAR

(Presença >= 75%) E (4 <= Média < 6)

Será aprovado na VS se tirar nota maior ou igual a 6.

Trabalho

O curso terá um trabalho feito em grupos de 5 participantes, que devem ser constituídos preferencialmente na primeira semana de aula e ter a mesma formação até o final do curso. Cada grupo deve se enxergar como uma pequena software house. O tema do trabalho consiste em fazer um jogo Rummikub onde seja possível jogar contra o computador. É esperado que os grupos, durante o decorrer do curso, utilizem as técnicas aprendidas para gerenciar o projeto e desenvolver o produto. Será avaliado o produto final e como esse produto foi desenvolvido (processos e técnicas aplicados).

Desde o início do trabalho, os grupos devem registrar as tarefas alocadas para cada membro do grupo, assim como as horas previstas para realização da tarefa e as horas efetivamente realizadas na tarefa. Essa informação será fundamental para viabilizar o Monitoramento e Controle do projeto. Além disso, apesar da matéria de testes ser dada somente no final do curso, escolham um framework de testes de unidade popular para a linguagem de programação adotada pelo grupo e iniciem a escrita dos testes desde já. Tirem dúvidas no Google Classroom ou diretamente com o professor caso necessário.

Foram reservados 3 momentos para apresentações de 30 minutos por grupo. O grupo deve utilizar slides nas apresentações e publicar esses slides no Google Classroom no dia das apresentações.

A primeira apresentação deve conter o escopo do projeto e do produto, as estimativas de esforço e custo, o orçamento, o cronograma de desenvolvimento, a análise de riscos e o monitoramento e controle do projeto. O grupo também deve mostrar a versão parcial do produto feita até então.

A segunda apresentação deve descrever como está sendo usado controle de versões e controle de modificações no projeto, qual estratégia de ramificação foi adotada, assim como apresentar o conteúdo do repositório e o monitoramento e controle do projeto, além de mostrar a versão parcial do produto feita até então. Além disso, nessa apresentação deve ser informado o endereço do repositório de controle de versões e de controle de modificações. Vale ressaltar que o repositório de controle de versões deve conter todos os artefatos produzidos durante o trabalho.

A terceira apresentação deve descrever como foram feitos testes de unidade, integração, sistema e aceitação no projeto, assim como apresentar os casos de teste e resultados da sua execução, dados de monitoramento e controle do projeto e versão final do produto. Além disso, nessa última apresentação também é esperado um detalhamento das dificuldades encontradas e decisões tomadas e listagem do percentual de participação de cada membro do grupo no trabalho. Caso não seja informado o percentual de participação, estará subentendido que todos participaram igualmente.

Essas apresentações serão avaliadas pela sua completude e corretude e capacidade de argumentação em relação às decisões tomadas. Essas decisões devem ser fundamentadas nos princípios estudados durante o curso. Essas apresentações e entregas devem ser feitas nas datas estipuladas na seção Cronograma.

Listas de exercícios

As listas de exercícios devem ser feitas individualmente e entregues no Google Classroom dentro do prazo definido na seção de Cronograma. Caso, no final do curso, o aluno esteja com média entre 5,5 e 6,0, as listas serão corrigidas podendo somar até 0,5 pontos na média, eventualmente arredondando a média para 6,0. Não serão aceitas entregas fora do prazo.

Obs.: Caso tenha dificuldade de fazer alguma questão, verifique se não é referente a uma matéria que está para ser apresentada nas próximas aulas.

Ferramentas

No curso não temos uma ferramenta obrigatória. Os grupos devem aproveitar essa oportunidade para experimentar ferramentas que ainda não conhecem ou mesmo aprofundar os conhecimentos em ferramentas já conhecidas.

Existem várias ferramentas proprietárias e livres que apóiam os diferentes tópicos tratados neste curso: gerência de projetos, estimativas, controle de versões, controle de modificações, gerenciamento de construção, integração contínua, hospedagem de projetos, testes de unidade, testes de interface, testes de carga e profiling.

Bibliografia

Visando um maior aprofundamento, as aulas foram baseadas em diversos livros. Não é esperado que todos esses livros sejam lidos pelos alunos durante o curso, mas podem ser consultados no caso de dúvidas específicas em um determinado assunto da matéria. A seguir, são listadas as referências completas dos principais livros utilizados. Apesar de essas referências estarem em inglês, muitos desses livros têm versões em português.

Greene, J.; Stellman, A.; 2007. Head First PMP. O’Reilly Media.

Larman, C.; 2007. Utilizando UML e Padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Bookman

Orth, A.; Prikladnicki, R.; 2009. Planejamento e Gerência de Projetos. EDIPUCRS.

Pilone, D.; Miles, R.; 2008. Head First Software Development. O’Reilly Media.

Pressman, R. S.; 2004. Software Engineering: A Practitioner’s Approach. 6 ed. McGraw-Hill.

Schwaber, K.; 2004. Agile Project Management with Scrum. Microsoft Press.

Cronograma

Data Atividade Entrega
20/03/2019 Aula - Apresentação da Disciplina  
22/03/2019 Aula - Processo de Software  
27/03/2019 Aula - Processo de Software  
29/03/2019 Aula - Planejamento de Projetos  
03/04/2019 Aula - Planejamento de Projetos  
05/04/2019 Aula - Planejamento de Projetos  
10/04/2019 Sem Aula (IC fechado)  
12/04/2019 Aula - Planejamento de Projetos e Monitoramento e Controle  
17/04/2019 Aula - Monitoramento e Controle  
19/04/2019 Sem Aula (semana santa)  
24/04/2019 Apresentações de trabalhos (grupos 1 a 4) Slides
26/04/2019 Apresentações de trabalhos (grupos 5 a 8) Slides
01/05/2019 Sem Aula (dia do trabalho) Listas 1 a 3
03/05/2019 Prova 1 na sala 206  
08/05/2019 Aula - Gerência de Configuração  
10/05/2019 Aula - Gerência de Configuração  
15/05/2019 Aula - Gerência de Configuração  
17/05/2019 Aula - Git  
22/05/2019 Apresentações de trabalhos (grupos 5 a 8) Slides
24/05/2019 Apresentações de trabalhos (grupos 1 a 4) Slides
29/05/2019 Sem Aula (ICSE)  
31/05/2019 Sem Aula (ICSE)  
05/06/2019 Aula - Verificação, Validação e Testes  
07/06/2019 Aula - Verificação, Validação e Testes  
12/06/2019 Aula - Verificação, Validação e Testes  
14/06/2019 Aula - Revisão  
19/06/2019 Aula - Garantia da Qualidade, Medição e Melhoria  
21/06/2019 Sem Aula (Corpus Christi)  
26/06/2019 Aula - Manutenção de Software Listas 4 a 6
28/06/2019 Prova 2 na sala 206  
03/07/2019 Apresentações de trabalhos (grupos 1 a 4) Slides
05/07/2019 Apresentações de trabalhos (grupos 5 a 8) Slides
10/07/2019 Segunda Chamada  
12/07/2019 Vista de prova na sala 528  
17/07/2019 Verificação Suplementar  
19/07/2019 Vista de prova na sala 528