Acessibilidade

Ambientes Virtuais de Execução - LEIC

Curso Engenharia Informática e de
Computadores
Unidade Curricular

Ambientes Virtuais de Execução

Obrigatória x
Opcional  
Área Científica Engenharia Informática e de
Computadores
Ano: 2º Semestre: 2º ECTS: 6 Total de Horas: 160
Horas de Contacto T: TP: 67,5 PL: S: OT:
Docente

Jorge Manuel Rodrigues Martins Pião

T - Teórica; TP - Teórico-prática; PL - Prática Laboratorial; S - Seminário; OT - Orientação Tutorial.

  • Objetivos da aprendizagem

    Os estudantes que terminam com sucesso esta unidade curricular serão capazes de:

    (1) Identificar os requisitos dos ambientes virtuais de execução no suporte à construção e execução de aplicações e de componentes.

    (2) Realizar componentes e aplicações em mono programação para ambientes virtuais de execução.

    (3) Compreender a necessidade e o funcionamento dos serviços de runtime disponibilizados pelos ambientes virtuais de execução.

  • Programa

    I. Programação orientada aos componentes. Requisitos e soluções. Máquinas virtuais de suporte a linguagens orientadas a objectos: JVM e CLI (VES).

    II. Construção e carregamento dinâmico de componentes (assemblies na CLI). Linguagem intermédia. A linguagem C# como exemplo de linguagens que têm a CLI como máquina alvo.

    III. O sistema de tipos da CLI (CTS). Funções como objectos: delegates e eventos. Código genérico. Exemplos de suporte do paradigma funcional na linguagem C#.

    IV. Serviços de runtime: gestão automática de memória; reflexão; controlo de versões e partilha de componentes; interoperabilidade com código nativo; domínios de aplicação.

  • Demonstração de coerência entre conteúdos programáticos e resultados da aprendizagem

    Os ambientes virtuais de execução (AVE) permitem níveis de produtividade, distribuição e interoperabilidade impossíveis de alcançar nos ambientes de execução nativos. Na unidade curricular são identificados os problemas resolvidos pelos AVE e as soluções usadas e apresentados os principais componentes dos AVE (I e II), dotando os alunos de uma visão geral, mas precisa, dos AVE.

    É analisado o sistema de tipos da CLI, utilizando a linguagem C# como linguagem de referência (III), de forma a dotar os alunos com a capacidade de desenvolver componentes e aplicações mono programadas para este e outros AVE, tirando o máximo partido das construções oferecidas, nomeadamente o suporte à construção de código genérico.

    O estudo dos serviços de runtime, nomeadamente a recolha automática de memória, a reflexão e os mecanismos de controlo de versões e partilha (IV), visam aumentar a capacidade de depurar componentes e aplicações e permitir a sua correta distribuição e configuração

  • Metodologia de ensino e avaliação

    Ensino teórico-prático, estando previstas 30 aulas durante o semestre a que correspondem 67,5 horas de contacto (15 aulas de 3 horas e 15 de 1,5 horas). O tempo total de trabalho do estudante é de 160 horas. As aulas destinam-se à apresentação dos temas e de exemplos práticos de aplicação. Os tópicos principais são ainda explorados através da realização de séries de exercícios e de um trabalho final. Os resultados da aprendizagem (1) e (2) e (3) são avaliados individualmente através do teste escrito e das fichas realizadas durante o semestre, e na discussão do trabalho final.

  • Demonstração de coerência entre metodologias de ensino e resultados de aprendizagem

    O conhecimento relativo aos aspetos teóricos da problemática dos ambientes virtuais de execução é obtido em aulas interativas e através da realização de exercícios. As aulas teóricas complementam-se com aulas práticas em que os alunos terão de resolver problemas utilizando as ferramentas de desenvolvimento que irão ser utilizados na resolução dos trabalhos práticos. O trabalho final consiste no desenvolvimento de uma aplicação que integra os conhecimentos obtidos ao longo do semestre.

  • Bibliografia principal

    Jeffrey Richter, CLR via C#, 3rd edition, Microsoft Press, 2010.

    D. Box, C. Sells, Essential .Net, Addison Wesley, 2002.

    Standard ECMA-335, Common Language Infrastructure (CLI).