Aviso: Se está a ler esta mensagem, provavelmente, o browser que utiliza não é compatível com os "standards" recomendados pela W3C. Sugerimos vivamente que actualize o seu browser para ter uma melhor experiência de utilização deste "website". Mais informações em webstandards.org.

Warning: If you are reading this message, probably, your browser is not compliant with the standards recommended by the W3C. We suggest that you upgrade your browser to enjoy a better user experience of this website. More informations on webstandards.org.

Sub Menu
ISCTE-IUL  >  Ensino  >  MEI , MIG

Programação Avançada (1 º Sem 2018/2019)

Código: M4310
Acrónimo: M4310
Nível: 2º Ciclo
Estruturante: Não
Língua(s) de Ensino: Português
Língua(s) amigável(is):
Ser English-friendly ou qualquer outra língua-friendly, significa que a UC é leccionada numa língua mas que se pode verificar qualquer uma das seguintes condições:
1. Existem materiais de apoio em língua inglesa/outra língua;
2. Existem exercícios, testes e exames em língua inglesa/outra língua;
3. Existe a possibilidade de se apresentar trabalhos escritos ou orais em língua inglesa/outra língua.
1 6.0 18.0 h/sem 18.0 h/sem 0.0 h/sem 0.0 h/sem 0.0 h/sem 0.0 h/sem 1.0 h/sem 37.0 h/sem 113.0 h/sem 0.0 h/sem 150.0 h/sem
Em vigor desde o ano letivo 2018/2019
Pré-requisitos Programação Orientada por Objetos
Objectivos Desenvolvimento de sistemas de software com boas propriedades relativas à sua manutenção e evolução requer o domínio de conceitos e tecnologias de programação avançada, em articulação com desenho de software. Nesta Unidade Curricular os alunos são expostos a matérias avançadas que assentam em noções prévias de programação orientada por objetos, com uma forte componente prática. A aplicação prática de conceitos é feita com base na linguagem e plataformas baseadas em Java.
Programa CP1. Primitivas de reflexão (Java)
CP2. Definição de anotações (Java)
CP3. Primitivas de programação orientada por aspetos (AspectJ)
CP4. Orientações para desenho de APIs (application programming interface)
CP5. Sistemas baseados em componentes (OSGi, open services gateway initiative)
CP6. Plataformas para desenvolvimento de sistemas extensíveis baseados em plugins (Equinox/Eclipse)
Processo de avaliação Avaliação Contínua:
- Quizzes sobre leituras ou visionamento de palestras exigidas (20%)
- Projeto de individual (80%)

Sempre que possível, será proposto um projeto colaborativo, significando isto que o resultado final é um sistema de componentes composto pelas contribuições dos vários alunos. Há abertura para propostas alternativas de projetos que envolvam as matérias abordadas.

Aprovação à UC requer um mínimo de 75% de presenças nas aulas.
Processo de ensino-aprendizagem Serão utilizadas as seguintes metodologias de ensino-aprendizagem(MEA):
MEA1: Expositivas, para apresentação da motivação para as matérias abordadas e demonstração de aplicações práticas
MEA2: Participativas, através da resolução de exercícios práticos
MEA3: Argumentativas, através de um acompanhamento próximo e discussão das opções seguidas no projeto
Observações
Bibliografia básica Joshua Bloch, Effective Java (Second Edition), 2008.
Ramnivas Laddad,  AspectJ in Action, Manning, Greenwich, Connecticut, 2003.
Erich Gamma, Kent Beck, Contributing to Eclipse: Principles, Patterns, and Plug-Ins, Addison-Wesley, 2003.

Jeff McAffer, Paul VanderLei, Simon Archer, OSGi and Equinox: Creating Highly Modular Java Systems, Addison-Wesley Professional, 2010.
Bibliografia complementar Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995.
Martin Fowler, Patterns of Enterprise Application Architecture, Addison-Wesley, 2002.