Curso de verão 2009


Introdução a Métodos Ágeis de Desenvolvimento de Software
Professores: Prof. Dr. Alfredo Doldman Vel Lejbman, Prof. Dr. Fabio Kon, Prof. Dr. João Eduardo Ferreira, Alexandre Freire da Silva, Dairton Luiz Bassi Filho, Daniel Cukier, Hugo Corbucci, Mariana Vivian Bravo, Paulo Cheque Bernardo.

Objetivos: Familiarizar desenvolvedores de software e gerentes de TI com metodologias ágeis de desenvolvimento de software orientado a objetos com especial ênfase em Programação eXtrema (XP).

Justificativa: As novas metodologias ágeis de desenvolvimento de software têm se mostrado bastante eficazes para o desenvolvimento de sistemas de software de pequeno e médio porte (até 1 milhão de linhas de código) com excelentes níveis de qualidade. Neste curso, apresentaremos a filosofia por trás dos métodos ágeis, daremos uma visão geral dos vários métodos ágeis existentes e, em seguida, abordaremos em detalhes a Programação eXtrema (XP), o método ágil mais conhecido e utilizado.

Conteúdo: O manifesto ágil. Os principais métodos ágeis. As práticas de XP. Testes automatizados. Refatoração: técnicas sistemáticas para melhorar o projeto de software pré-existente. Planejamento ágil. Padronização de estilo. Ferramentas para o desenvolvimento colaborativo de software. Modelagem Ágil e Refatoração de Bancos de Dados.

Pré-requisitos: Conhecimentos básicos de Orientação a Objetos.

Bibliografia:

Kent Beck, Extreme Programming: Explained, Addison-Wesley, 2000 (1a edição) e 2005 (2a edição).

Kent Beck, Test-Driven Development: By Example, Addison-Wesley, 2002.

Alistair Cockburn, Agile Software Development, Addison-Wesley Longman, 2002.

Martin Fowler, Refactoring: Improving the Design of Existing Code, Addison-Wesley, 2000.

E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995.

Brian W. Kernighan and Rob Pike, The Practice of Programming, Addison-Wesley, 1998.

P. McBreen, Questioning Extreme Programming, Addison Wesley, 2003.

Ken Schwaber and Mike Beedle. Agile Software Development with SCRUM. Prentice-Hall, 2001.

Ron Crocker. Large-Scale Agile Software Development. Addison-Wesley, 2004.

Scott W. Ambler and Pramod J. Sadalage. Refactoring Databases: Evolutionary

Database Design. Addison-Wesley, 2006.

Carga Horária:

20 horas: 26/01/2009 a 30/01/2009, 2a. a 6a. das 14h00 às 18h00

Investimento:

R$ 400.00, ou
R$ 150,00: taxa especial para professores e estudantes (mediante comprovação) - desconto limitado aos 35 primeiros

Slides
Primeiro Dia:

Segundo Dia:

Terceiro Dia:

  • Retrospectiva do Segundo Dia (pdf)
  • Planejamento e Estimativas Ágeis (pdf)
  • Acompanhamento de Projetos (odp) / (pdf)
  • Scrum (pdf)

Quarto Dia:

Quinto Dia:

  • Retrospectiva do Quarto Dia (pdf)
  • Dificuldades na implantação de métodos ágeis (pdf)

Desenvolvimento de Software de Qualidade através de Testes Automatizados
Professores: Prof. Dr. Alfredo Doldman Vel Lejbman, Prof. Dr. Fabio Kon, Prof. Dr. João Eduardo Ferreira, Alexandre Freire da Silva, Dairton Luiz Bassi Filho, Daniel Cukier, Hugo Corbucci, Mariana Vivian Bravo, Paulo Cheque Bernardo.

Objetivos: Familiarizar desenvolvedores de software, tanto estudantes quanto profissionais do mercado, com a importância dos testes automatizados e com as principais tecnologias e métodos associados a esta disciplina.

Justificativa: A escrita sistemática e freqüente de testes automatizados é fundamental para o desenvolvimento de software de alta qualidade. No entanto, observa-se que a utilização das tecnologias e métodos relacionados a testes automatizados ainda é muito pequena na indústria de software brasileira. A falta de uma política de testes e, também, de sua automatização leva a uma queda na velocidade do desenvolvimento de sistemas de software complexos e, principalmente, a uma queda na qualidade do software desenvolvido, que passa a apresentar muitos erros e torna-se difícil de ser mantido e estendido. Este curso de extensão tem, portanto, um papel de grande importância para contribuir com a formação conceitual e com a prática diária da grande maioria dos desenvolvedores de software da indústria de software nacional que ainda não possui conhecimento adequado nesta área.

Conteúdo: Importância do Teste de Software. Diferença entre testes manuais e automatizados. Tipos de testes: testes de unidade, teste de aceitação, teste de estresse, teste de segurança. Arcabouços para automação de testes, família xUnit, Selenium, JMeter, etc. Cobertura de testes. Técnicas avançadas para escritas de bons testes. Padrões auxiliares para escrita de testes em sistemas de grande porte e em sistemas com Bancos de Dados.

Pré-requisitos: Conhecimentos básicos de Desenvolvimento de Software e Orientação a Objetos.

Bibliografia:

Kent Beck, Extreme Programming: Explained, Addison-Wesley, 2000 (1a edição) e 2005 (2a edição).

Kent Beck, Test-Driven Development: By Example, Addison-Wesley, 2002.

Alistair Cockburn, Agile Software Development, Addison-Wesley Longman, 2002.

Marcio Delamaro, José Carlos Maldonado, Mario Jino (Orgs.). Introdução ao Teste de Software. Editora Campus, 2007

Martin Fowler, Refactoring: Improving the Design of Existing Code, Addison-Wesley, 2000.

Brian W. Kernighan and Rob Pike, The Practice of Programming, Addison-Wesley, 1998.

Carga Horária:

20 horas: 09/02/2009 a 13/02/2009, 2a. a 6a. das 14h00 às 18h00

Investimento:

R$ 400.00, ou
R$ 150,00: taxa especial para professores e estudantes (mediante comprovação) - desconto limitado aos 35 primeiros

Slides
Primeiro Dia:

Segundo dia:

Terceiro dia:

Quarto dia:

  • Testes com Banco de Dados (pdf)
  • Testes de Aceitação (pdf)
  • Técnicas de Escrita de Testes Automatizados (pdf)
  • Feedback(pdf)

Quinto dia:


Laboratório de Programação eXtrema
Professores: Prof. Dr. Alfredo Doldman Vel Lejbman, Prof. Dr. Fabio Kon, Prof. Dr. João Eduardo Ferreira, Alexandre Freire da Silva, Dairton Luiz Bassi Filho, Daniel Cukier, Hugo Corbucci, Mariana Vivian Bravo, Paulo Cheque Bernardo.

Objetivos: Através de uma abordagem essencialmente prática, oferecer a oportunidade para desenvolvedores de software e gerentes de TI construirem um pequeno sistema de software de forma colaborativa utilizando XP. O curso será ministrado inteiramente no laboratório Eclipse do IME/USP.

Ferramentas utilizadas: No laboratório serão utilizadas Java, como linguagem de programação; Eclipse, como ambiente de desenvolvimento; Subversion, como repositório de código para controle de versões e integração contínua; JUnit para testes de unidade; Selenium para testes de aceitação e de interface; XPlanner, para gerenciamento, acompanhamento e planejamento do desenvolvimento.

Pré-requisitos: Conhecimentos básicos de Orientação a Objetos, de programação Java e de Programação eXtrema (XP). É altamente recomendável que os participantes deste curso também façam o curso de Introdução a Métodos Ágeis (ou então que já cheguem com um bom conhecimento de XP, por exemplo, lendo o livro inteiro do Kent Beck, eXtreme Programming: Explained).

Carga Horária:

20 horas: 02/02/2009 a 06/02/2009, 2a. a 6a. das 14h00 às 18h00

Investimento:

R$ 600.00
R$ 250,00: taxa especial para professores e estudantes (mediante comprovação) - desconto limitado aos 8 primeiros

Fervens was created by Design Disease for WordPress, brought to you by Smashing Magazine.
Ported to Drupal by Leow Kah Thong - Freelance Drupal Developer.