Laboratório de Engenharia de Software

IMPORTANTE

Devido as suspensão das atividades presenciais na UFPA, a disciplina irá rodar de forma REMOTA. O horário de aula será respeitado, e os encontros irão acontecer online. Como isso está sendo feito de forma EXPERIMENTAL, é provável que várias mudanças aconteçam ao longo da disciplina. Por favor, semprem olhem o Telegram, que é o canal oficial de comunicação da turma. Reforço que as atividades remotas serão reavaliadas a cada semana. Se não houver progresso/participação por parte dos alunos, a disciplina será suspensa, e só retornará quando a UFPA retormar as atividades.

Horário

Segunda e Quarta, às 18:30.

Telegram

Todo material de aula será postado no Telegram. Para acessar: https://t.me/joinchat/GeSB2RfUVFvkfzuoM8H8fg

Objetivo

Aplicação dos conceitos de engenharia de software e de banco de dados, através do desenvolvimento controlado de um sistema de software, desde a análise de requisitos até a aceitação do software, projeto do banco dados, aplicação de técnicas de verificação e validação e geração dos documentos relevantes.

Ementa

  • Engenharia de software: UML (Casos de uso, diagramas de classe, estado, etc), Método ágeis, Testes de software
  • Banco de dados: Criação e manipulação de banco de dados
  • Programação orientada a Objetos

Importante: Por ser uma disciplina de laboratório, não iremos introduzir novos conceitos. Ao contrário, iremos praticar os conceitos já estudados.

Bibliografia

  • Engenharia de Software Moderna - Marco Tulio Valente
  • Refactoring: Improving the Design of Existing Code - Martin Fowler
  • Test Driven Development: By Example - Kent Beck
  • Clean Code: A Handbook of Agile Software Craftsmanship - Robert Martin
  • Clean Architecture: A Craftsman’s Guide to Software Structure and Design

Material extra

  • Beck, K. (1999). Embracing change with extreme programming. IEEE Computer, (10), 70-77.
  • The Scrum guide

Avaliação

A avaliação será contínua (não haverá provas nem outros trabalho).

Dinâmica do curso

O foco da disciplina está na criação de um protótipo funcional para um problema real.

Para isso, o professor da disciplina irá chamar alguns clientes interessados em uma solução de tecnologia. Os clientes irão solicitar suas demandas. As demandas dos clientes irão para um backlog de demandas. A disciplina também contará com um gerente de projetos, que tem a função de auxiliar os alunos para gerenciar as expectativas com o cliente.

Para conduzir os projetos, iremos usar o método ágil Scrum. No Scrum, cada equipe precisa de um líder. As equipes terão até quatro alunos (um deles será o líder). A nossa sprint do Scrum será de uma semana. Ou seja, a cada semana, a equipe deve entregar um protótipo funcional.

Como essa é uma disciplina iterativa e dinâmica, não deixem para trabalhar no projeto no último minuto, pois não irá adiantar.

Equipes

  • TBD

Clientes

  • Givago Souza

Gerente de projetos

  • Edson Costa

Cronograma

Passível de alterações.

# Data Conteúdo de Aula
1 09/03 AULA CANCELADA
2 11/03 AULA CANCELADA
3 16/03 Apresentação da disciplina
4 18/03 Apresentação do primeiro cliente
5 23/03 Apresentação do segundo cliente
6 25/03 Definição de grupos e projetos
7 30/03 Sprint Equipes 1 e 2
8 01/04 Sprint Equipes 3 e 4
9 06/04 Sprint Equipes 1 e 2
9 08/04 Sprint Equipes 3 e 4
9 13/04 Sprint Equipes 1 e 2
10 15/04 Sprint Equipes 3 e 4
11 20/04 Sprint Equipes 1 e 2
13 22/04 Sprint Equipes 3 e 4
12 27/04 Sprint Equipes 1 e 2
14 29/04 Sprint Equipes 3 e 4
15 04/05 Sprint Equipes 1 e 2
16 06/05 Sprint Equipes 3 e 4
17 11/05 Sprint Equipes 1 e 2
18 13/05 Sprint Equipes 3 e 4
19 18/05 Sprint Equipes 1 e 2
21 20/05 Sprint Equipes 3 e 4
22 25/05 Sprint Equipes 1 e 2
23 27/05 Sprint Equipes 3 e 4
24 01/06 Sprint Equipes 1 e 2
25 03/06 Sprint Equipes 3 e 4
26 08/06 Sprint Equipes 1 e 2
27 10/06 Sprint Equipes 3 e 4
28 15/06 Sprint Equipes 1 e 2
29 17/06 Sprint Equipes 3 e 4
28 22/06 Apresentação de projetos (Equipes 1 e 2)
29 24/06 Apresentação de projetos (Equipes 3 e 4)
28 29/06 Buffer
29 01/07 Buffer