layout | title | permalink |
---|---|---|
page |
Plano de Ensino |
/planoensino/ |
Disciplina: Métodos de Desenvolvimento de Software
Carga Horária: 60 horas
Professor: Carla Rocha
Créditos: 04
Semestre/Ano: 02/2024
Os métodos de desenvolvimento de software podem ser entendidos como conjuntos estruturados de boas práticas, repetíveis durante o processo de produção do software. Os principais objetivos da disciplina são:
- Capacitar o aluno a compreender os diferentes métodos, ferramentas, procedimentos e complexidades do desenvolvimento de software.
- Capacitar o aluno a aplicar/adaptar processos de desenvolvimento de software à resolução de problemas de software.
- Capacitar os estudantes a construírem sistemas complexos, apresentando as habilidades técnicas e não técnicas necessárias para a construção de software no contexto atual da Indústria.
- Modelos de ciclo de vida e de processos; Processo Unificado. Métodos Ágeis de desenvolvimento de software. Outras abordagens de desenvolvimento de software. Ferramentas.
Uma estratégia eficaz de aprendizagem deve integrar conceitos teóricos com sua aplicação prática, seguindo o princípio de "aprender fazendo". Sem prática, não há aprendizado significativo. Portanto, o processo de ensino-aprendizagem deve incluir duas etapas fundamentais: sessões de assimilação de conceitos teóricos e sessões de prática.
A disciplina utiliza aprendizagem por experiência, aprendizagem orientada a projetos, processo de Onboarding e práticas de comunidades Open source para que o aluno seja ativo no seu processo de aprendizagem.
A turma deve se dividir em equipes ágeis, de até 6 membros por time. Serão apresentados temas de projeto e cada grupo escolhe 3 temas na ordem de preferência. A professora negocia e aloca os temas para o grupo, dentro das preferências.
- Planilha para definição dos grupos e temas está aqui
A disciplina será realizada de forma presencial na sala Mocap. Serão disponibilizados tanto material assíncrono quanto aulas síncronas.
- Grupo do Telegram - https://t.me/+-HBi7HDB42llMDEx
- Vídeos disponibilizados no YouTube - Canal YouTube
- Leituras sugeridas na sprint - disponibilizadas no planejamento das aulas
- O planejamento das aulas semanais, discriminando se são assíncronas ou síncronas, e qual canal será atualizado, estará disponível no início da semana no link
- Modelos de Processo de Desenvolvimento de Software (ciclo de vida)
- Atividades de Processo
- O manifesto Ágil
- Os Quatro valores e as Quatro variáveis
- Práticas ágeis
- O jogo do planejamento
- Releases Pequenas
- A metáfora
- Histórias do Usuário
- Desenho simples
- Testes (unitário, aceitação)
- Refatoração
- Programação em Pares
- Desenvolvimento Coletivo
- Conceitos
- Fases: Iniciação, Elaboração, Construção e Transição
- Disciplinas (Modelagem de Negócio, Requisitos, Análise e Desenho, Implementação, Teste, Gerenciamento de Projeto, Gerência de Configuração e Mudanças, Implantação e Ambiente)
A avaliação será feita por meio da avaliação individual do desempenho do aluno no ciclo de projeto. O objetivo do Projeto simula uma situação real de desenvolvimento. Os alunos de MDS irão se concentrar na execução metodologia de desenvolvimento através da especificação de requisitos, codificação e testes. Haverá duas avaliações formais das releases a serem desenvolvidas.
A nota final do aluno é calculada da seguinte forma:
Nota Final = (Provas) * 0,20 + (Critério de Avaliação Individual) * 0,40 + (Nota individual Release 1) * 0,2 + (Nota individual Release 2) * 0,2
Os critérios estão detalhados nesse documento
Para o aluno satisfazer os seguintes requisitos para obter a aprovação na disciplina:
- Aprovação se MF >= 5,0 e se Percentual de faltas (PF) for
PF <= 25%. Onde PF é dado pelo número de aulas com faltas registradas dividido pelo número de aulas ministradas.
- Reprovação se MF < 5,0 ou se PF > 25%. Nessa situação, o aluno será considerado reprovado por nota ou por falta.
Os critérios avaliados individualmente no projeto estão destacados na tabela abaixo:
Evento da Avaliação Individual no Projeto |
---|
Código/Entrega |
Documentação |
Coerência - Documentos e Código |
Critério Extra |
Histórias e Planejamento da Release |
Testes Automatizados e Cobertura de Código > 90% |
Tracking |
Wiki Atualizada |
Software Implantado e Disponível para Uso |
PA - pareamento |
PA - reunião de planejamento da sprint |
PA - planning poker |
PA - sprint time box |
PA - participação nas dailies |
PA - review com o cliente |
PA - retrospectiva na sprint |
PA - user stories |
PA - risco sustentável de trabalho |
PA - código escrito com padrões |
PA - plano de comunicação |
PA - comunicação técnica nas issues |
PA - pull requests educativos |
PA - práticas de comunidades de software livre |
- Também são considerados critérios de avaliação da participação: assiduidade; pontualidade; interesse; participação em sala.
- Os documentos referentes à disciplina estarão disponíveis em: https://github.com/fga-eps-mds/Qualifying-Software-Engineers-Undergraduates-in-DevOps
- Os projetos são avaliados continuamente.
- A cobertura de código deverá ser 90%, excetuando a camada de apresentação.
- O tamanho dos times deve respeitar o limite máximo de 6 membros.
- As atividades do projeto deverão ser organizadas por meio de issues e milestones.
- O código-fonte e demais artefatos elaborados deverão ser revisados utilizando pull/merge requests e issues.
- As provas não são pré agendadas.
Entregáveis R1 e R2 Nos slides
- Release 1 (major) - 11 a 13 de dezembro de 2024.
- Release 2 (major) - 04-06 de fevereiro de 2025.
- (OPENACCESS) Rocha, Carla. Como Acelerar o Aprendizado e Disseminar a Cultura de Inovação Ágil - https://rochacarla.github.io/Onboarding/
- Beck, K., Programação Extrema (XP) Explicada, 1st ed. Bookman, 2004
- Ken Schwaber e Jeff Sutherland - O Guia Definitivo para o Scrum: As Regras do Jogo - Disponível em português em https://scrumguides.org
- Sommerville, I., Engenharia de Software. 8th ed., Pearson Addison Wesley, 2007.
- Engenharia de Software Moderna
- Alves, Isaque, Rocha, Carla. Qualifying Software Engineers Undergraduates in DevOps - Challenges of introducing technical and non-technical concepts in a project-oriented course - http://arxiv.org/abs/2102.06662
- Jacobson, I., Booch G., Rumbaugh J., The Unified Software Development Process, 1st ed., Addison-Wesley, 1999.
- [EBRARY] Lano, K., UML 2 Semantics and Applications, 1st ed., Wiley, 2009.
- OPENACCESS Scrum e XP direto da sTrincheiras
- Pfleeger, S. L., Engenharia de Software: Teoria e Prática. 2nd ed., Prentice Hall, 2004.
- Pressman, R. S., Engenharia de Software. 6th ed., McGraw-Hill, 2006.
- Ambler, S., Agile Modeling: Effective Practices for eXtreme Programming and the Unified Process, 1st ed., Wiley, 2002
- Jacobson, I., Booch G., Rumbaugh J., UML: Guia do Usuário, 2nd ed., Elsevier, 2005.
- [OPEN ACCESS] Scrum e XP direto das Trincheiras. (http://www.infoq.com/br/minibooks/scrum-xp-from-the-trenches)