Laboratório de Programação Orientada por Objectos
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Programação |
Ocorrência: 2010/2011 - 2S
Ciclos de Estudo/Cursos
Língua de trabalho
Português
Objetivos
Objectivos:
Desenvolver competências de desenvolvimento de programas (desenho, programação e teste) com alguma complexidade, utilizando tecnologias orientadas por objectos, nomeadamente a linguagem de programação Java, a linguagem de modelação Unified Modeling Language (UML), o IDE Eclipse, e o "framework" de testes unitários JUnit.
Resultados de aprendizagem:
No final da unidade curricular, os estudantes deverão:
- saber desenvolver (desenhar, codificar, documentar, analisar, testar e manter) programas orientados por objectos com UML e Java;
- saber utilizar ferramentas de suporte às várias fases do desenvolvimento e manutenção de programas;
- ser capazes de reutilizar padrões e "frameworks".
Programa
A linguagem Java: elementos da linguagem e diferenças em relação a C++.
Testes unitários e "test-driven development" com JUnit.
Bibliotecas do Java (Java API): visão geral, colecções, entrada/saída e interfaces gráficas.
Desenho orientado por objectos com UML (Unified Modeling Language): princípios de desenho orientado por objectos, visão geral de UML, diagramas de classes, diagramas de sequência, diagramas de estados, processo de desenvolvimento guiado por modelos, exemplos.
Padrões de desenho ("design patterns").
Documentação de programas e normas de codificação.
Refabricação de código ("refactoring").
Ferramentas de análise dinâmica de programas ("debugging", "profiling").
Controlo de versões.
Tópicos opcionais a abordar nas últimas aulas teóricas: reflexão e informação dinâmica de tipos; desenho por contractos ("design by contract"); características de outras linguagens orientadas por objectos; concorrência ("multithreading"); programação segura ("secure programming"); meta-programação.
Projecto integrado.
Bibliografia Obrigatória
Bruce Eckel;
Thinking in Java. ISBN: 0-13-027363-5 (4ª edição ou superior)
Russ Miles and Kim Hamilton;
Learning UML 2.0. ISBN: 978-0-596-00982-3
Bibliografia Complementar
Kent Beck;
Test-driven development. ISBN: 978-0-32-114653-3
Erich Gamma... [et al.];
Design patterns. ISBN: 0-201-63361-2
Martin Fowler ; with contributions by kent Beck... [et al.];
Refactoring. ISBN: 0-201-48567-2
Métodos de ensino e atividades de aprendizagem
Aulas teóricas de exposição e discussão dos tópicos programáticos, mais concentradas no início do semestre.
Aulas práticas em laboratório de desenvolvimento iterativo de dois projectos em tecnologias orientada por objectos, em grupos de 2 estudantes:
- um primeiro "projecto guiado", com enunciado idêntico para todos os grupos (a fornecer incrementalmente ao longo das semanas de acordo com os tópicos abordados nas aulas teóricas), a realizar na primeira metade do semestre;
- um segundo "projecto integrado", com enunciados distintos para os diferentes grupos, a realizar na segunda metada do semestre, se possível em coordenação com outras unidades curriculares do mesmo semestre.
Mini-teste individual de programação em computador a meio do semestre.
Software
Eclipse
Enterprise Architect
Tipo de avaliação
Avaliação distribuída sem exame final
Componentes de Avaliação
Descrição |
Tipo |
Tempo (Horas) |
Peso (%) |
Data Conclusão |
Participação presencial (estimativa) |
Participação presencial |
70,00 |
|
|
Projecto guiado - parte fora das aulas (4h * 6 semanas) |
Defesa pública de dissertação, de relatório de projeto ou estágio, ou de tese |
24,00 |
|
2011-04-01 |
Projecto integrado - parte fora das aulas (4h * 8 semanas) |
Defesa pública de dissertação, de relatório de projeto ou estágio, ou de tese |
32,00 |
|
2011-06-03 |
Prova individual de programação em computador |
Exame |
4,00 |
|
2011-03-16 |
Apresentação e discussão do projecto integrado |
Exame |
2,00 |
|
2011-06-10 |
|
Total: |
- |
0,00 |
|
Componentes de Ocupação
Descrição |
Tipo |
Tempo (Horas) |
Data Conclusão |
Estudo individual (2h * 15 semanas) |
Estudo autónomo |
30 |
2011-06-09 |
|
Total: |
30,00 |
|
Fórmula de cálculo da classificação final
Componentes de avaliação e respectivos pesos:
- 15% - prova prática individual de programação em computador;
- 25% - projecto guiado;
- 20% - entrega intermédia do projecto integrado;
- 40% - entrega final do projecto integrado.
Todas as componentes têm uma classificação mínima de 40%.
Avaliação especial (TE, DA, ...)
Todas as componentes são obrigatórias para todos os estudantes.
Os alunos dispensados de frequência às aulas (trabalhadores estudantes, etc.), devem apresentar os trabalhos nas mesmas datas dos restantes estudantes e apresentar regularmente aos docentes a evolução dos trabalhos.
Melhoria de classificação
Frequência da unidade curricular no ano seguinte.