Frameworks e Componentes

Período: 2000.2

As Pessoas A Disciplina A Avaliação Outros
Professor Objetivos Forma de avaliação Datas Importantes
Monitor Programa Notas dos Alunos Lista de Discussão
Alunos Plano de Aulas   Recursos
  Bibliografia Projeto  
  Material da disciplina (html on-line) Auto Avaliação  
  Material da disciplina (html zipado) Gabaritos  

Professor: Jacques Philippe Sauvé

Horários das Aulas e de Atendimento a Alunos pelo Professor

Monitor: Não há

Alunos

Aluno Observação
Eliane Cristina de Araújo  
Elizabet Maria Spohr de Medeiros (ouvinte?)  
Fabiana Paulino Guedes  
Fábio Roberto Pillatt  
Flávio Gonçalves da Rocha (ouvinte)  
Glaucimar da Silva Aguiar  
José de Castro Neto (ouvinte)  
Ladjane Silva de Arruda  
Raquel Vigolvino Lopes  

Plano de Aulas

Dia Planejado Dia Realizado

Assunto

30/10/2000   Verificar habilidade de programação dos alunos (se sabem OO, se programam muito, em que linguagens)
Anunciar URL da disciplina: http://www.dsc.ufpb.br/~jacques/cursos/2000.2/fw
Pegar lista de alunos com e-mail
Não haverá aula na semana de 20/11/2000
Falar da auto-avaliação
Pedir para não imprimir nas impressoras da Universidade
Avisar para todos olharem as datas importantes
Objetivos da disciplina
Programa da disciplina
Trabalhos e critérios de avaliação
Escolha de datas de apresentação de projetos

1. Facetas da Reusabilidade de Software

31/10  

2. Software Baseado em Componentes

2.1 O que são componentes?
2.2 Aspectos técnicos do desenvolvimento baseado em componentes

06/11  

2.3 Construção de componentes: JavaBeans

07/11   Entrega dos requisitos funcionais e de interface dos programas a desenvolver

2.4 Server components: Enterprise JavaBeans
2.5 A evolução de componentes e comparação de arquiteturas

13/11  

3. Frameworks

3.1 O que é um framework?
3.2 Vantagens e desvantagens no uso de frameworks
3.3 Tipos de frameworks
3.4 Uma lista de frameworks

14/11  

3.5 Detalhamento de um framework horizontal: JUNIT

21/11   Entrega do primeiro e segundo programa
27/11  

3.6 Detalhamento de um framework vertical

28/11  

Entrega do terceiro programa

3.7 Construção de frameworks: Um processo evolutivo. Análise do paper Evolving Frameworks A Pattern Language for Developing Object-Oriented Frameworks

04/12  

4. Apresentação de Frameworks

Apresentação de frameworks pelos alunos: aluno1, aluno2

05/12   Entrega do design do framework

Leitura de papers (papers a escolher ... aguardem)

11/12  

Leitura de papers (papers a escolher ... aguardem)

12/12  

Leitura de papers (papers a escolher ... aguardem)

18/12   Entrega do framework com 3 aplicações

5. Apresentação de Projetos

Apresentação de projetos pelos alunos: Fabiana & Raquel, Fábio & Ladjane

19/12  

Apresentação de projetos pelos alunos: Eliane & Glaucimar

Bibliografia

Atenção! Este é um curso avançado e exige-se que você leia o material associado à disciplina antes das aulas. Por este motivo, as aulas terão um ritmo rápido. Leva suas dúvidas para a aula.

Os exemplos da disciplina são dados em Java. Se você não conhece a linguagem, leia um livro sobre Java agora. Recomendamos Thinking in Java.

Espera-se que você leia os livros recomendados. Quem não fizer isto dificilmente poderá acompanhar a disciplina. Quem o fizer aprenderá muito.

Bibliografia Recomendada

  1. [Componentes] Component Software - Beyond Object-Oriented Programming, Szyperski, Addison Wesley, 1999.
  2. [Frameworks] Framework-Based Software Development in C++, Rogers, Prentice-Hall, 1997.

Bibliografia Adicional

  1. Design Patterns: Elements of Reusable Object-Oriented Software, Gamma, Helm, Johnson e Vlissides, Addison-Wesley, 1995.
  2. Java Application Frameworks, Govoni, John Wiley, 1999.
  3. Analysis Patterns - Reusable Object Models, Fowler, Addison-Wesley,1997.
  4. Software Reuse - Architecture, Process, and Organization for Business Success, Jacobson, Griss e Jonsson, Addison-Wesley,1997.
  5. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design, Larman, Prentice-Hall, 1998.
  6. Objects, Components, and Frameworks with UML - The Catalysis Approach, D'Souza e Wills, Addison-Wesley,1999.
  7. Refactoring : Improving the Design of Existing Code, Fowler, Beck, Brant, Opdyke, Roberts, Addison-Wesley, 1999.

Avaliação

A avaliação será feita através de:

O curso é baseado em grande parte num projeto de desenvolvimento envolvendo os assuntos do curso. Uma alternativa de projeto é dada aqui mas você poderá desenvolver outro projeto se assim desejar (e se assim me convencer!). Caso seja algo associado a seu trabalho de dissertação de mestrado, você deverá trabalhar sozinho. Caso contrário, poderá formar equipe com uma (e apenas uma) pessoa. O projeto é importante e você deverá trabalhar duro para completá-lo. É assim que vai aprender algo.

O projeto será avaliado através de 6 milestones distintos e listados abaixo. Os detalhes do que deve ser entregue para o professor estão aqui.

Os pesos atribuídos aos vários eventos de avaliação são indicados abaixo. Perde-se 5% do valor da nota dada a um milestone do projeto para cada dia de atraso na entrega.

Evento de avaliação

Peso

Discussão de papers 25%
Entrega dos requisitos funcionais e de interface dos programas a desenvolver 10%
Entrega do primeiro programa 15%
Entrega do segundo programa 10%
Entrega do terceiro programa 10%
Entrega do design do framework 15%
Entrega do framework com 3 aplicações 15%

Datas Importantes

Entrega dos requisitos funcionais e de interface dos programas a desenvolver 07/11/2000
Entrega do primeiro e do segundo programas 21/11/2000. Não estarei presente mas devo receber o projeto via e-mail até essa data
Entrega do terceiro programa 28/11/2000
Entrega do design do framework 05/12/2000
Entrega do framework com 3 aplicações 18/12/2000
Apresentações de projetos pelos alunos 18,19/12/2000

Recursos

Outras Disciplinas do Professor Com Assuntos Relacionados

Sobre Orientação a Objetos em Geral

Sobre o Framework de Testes JUNIT (para Java)

Sobre Design Patterns

Sobre Pedagogical Patterns

Sobre Testing Patterns

Sobre Componentes

Sobre Frameworks

Sobre Refactoring