Metodos de Desenvolvimento de Software - Plano de ensino

DISCIPLINA: Métodos de Desenvolvimento de Software

CARGA HORÁRIA: 60 horas

PROFESSOR: Carla Rocha

CREDITOS: 04

SEMESTRE/ANO: 01/2023

Objetivos da Disciplina

Métodos de desenvolvimento de software podem ser entendidos como conjuntos estruturados de boas práticas, podendo ser 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 complexidade do desenvolvimento de software.

  • Capacitar o aluno a aplicar / adaptar processos de desenvolvimento de software a resolução de problemas de software.

  • Capacitar os estudantes para construírem sistemas complexos, apresentar as habilidades técnicas e não técnicas necessárias para a construção de software no contexto atual da Indústria.

Ementa do Programa

Modelos de ciclo de vida e de processos; Processo Unificado. Métodos Ágeis de desenvolvimento de software. Outras abordagens de desenvolvimento de software. Ferramentas.

Metodologia de Ensino

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 usa 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 imagem abaixo mostra o ciclo da disciplina:

image

Formação das equipes

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.

  • A planilha para definição dos grupos e temas aqui

Canais de Comunicação

A disciplina será realizada de forma presencial na sala Mocap. Serão disponibilizado tanto material assincrono quanto aulas sincronas.

Dúvidas, conversas rápidas, avisos

Aulas assíncronas

  • Vídeos disponibilizadas no youtube - [canal youtube] (https://www.youtube.com/channel/UC_VXpS5GIL8NdJNkwNeAorw/videos?view_as=subscriber)
  • Leituras sugeridas na sprint - disponibilizados no planejamento das aulas

Planejamento das aulas

  • O planejamento das aulas semanais, discriminando se são assíncronas ou síncronas, e qual canal vai ser atualizado no início da semana no link

Descrição do Programa

Processos de Desenvolvimento de Software

  • Modelos de Processo de Desenvolvimento de Software (ciclo de vida)
  • Atividades de Processo

Fundamentos do Extreme Programming

  • O manifesto Ágil
  • Os Quatro valores e as Quatro variáveis
  • Praticas ageis
  • 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

Fundamentos do Processo Unificado de Desenvolvimento de Software

  • 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)

Avaliações e Critérios de Avaliação

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 é calculado da seguinte forma:

Nota Final = (Critério de Avaliação Coletiva) * 0,20 + (Critério de Avaliação Individual) * 0,40 + (Release 1) * 0,2 + (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,0ou se PF > 25%. Nessa situação o aluno será considerado reprovado por nota ou por falta.

Os criterios avaliados individualmente no projeto esta destacado na tabela abaixo

Evento da Avaliacao Individual no projeto
Codigo/ 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 - reuniao de planejamento da sprint
PA - planning poker
PA - sprint time box
PA - participacao nas daylies
PA - review com o cliente
PA - retrospectiva na sprint
PA - user stories
PA - risco sustentavel de trabalho
PA - codigo escrito com padroes
PA - plano de comunicacao
PA - comunicacao tecnica nas issues
PA - pull requests educativos
PA - praticas de comunidades de software livre

Avisos

  • 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 sao 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.

Datas das Releases 1 e 2

  • Release 1 (major) - 9 de maio de 2023

  • Release 2 (major) - 12 de Julho de 2023

Bibliografia Basica

  • (OPENACCESS) Rocha, Carla. Como Acelerar o Aprendizado e Disseminar a Cultura de Inovação Ágil - https://rochacarla.github.io/Onboarding/
  • Beck, K., Programacao 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., Rumbauch 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

Bibliografia Complementar :

  • 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., Rumbauch 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)