Acessibilidade

Desenvolvimento de Aplicações Web - LEIC

Curso Engenharia Informática e de Computadores
Unidade Curricular

Desenvolvimento
de Aplicações Web

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

Pedro Miguel Henriques dos Santos Félix

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

  • Objetivos de aprendizagem

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

    1. Desenhar, implementar e testar Web APIs para a exposição de um subconjunto das funcionalidades dum sistema de informação, resolvendo aspetos como a sua evolução, facilidade de utilização por diferentes tipos de cliente (e.g. aplicações móveis nativas) e segurança.

    2. Desenhar, implementar e testar, sobre a plataforma browser, aplicações de complexidade média a alta, usando Web APIs e as funcionalidades oferecidas pela norma HTML 5.

    3. Realizar a instalação e operação de aplicações e APIs Web sobre plataformas cloud, nomeadamete PaaS (Platform as a Service), incluindo aspetos de escalabilidade horizontal.

    4. Identificar e resolver problemas de desempenho em aplicações e APIs Web.

    5. Elaborar relatórios técnicos onde justificam as decisões tomadas nas aplicações construídas.

  • Programa

    1. Desenho de APIs Web, incluindo aspetos como seleção e criação de media-types e utilização de hypermedia.

    2. Estudo de uma biblioteca ou framework para o apoio à criação de APIs Web (e.g. ASP.NET ou similar).

    3. Desenho de aplicações sobre a plataforma browser, nomeadamente usando o modelo Single Page Application (SPA).

    4. Estudo das APIs de HTML5 de suporte à construção de aplicações Web cliente ricas.

    5. Comunicação uni e bidirecional entre cliente e servidor.

    6. Composição e minimização de artefactos.

    7. Técnicas de aumento de desempenho com CDN (content delivery network) e balanceamento de carga.

    8. Testes unitários, de desempenho e de integração.

    9. Aspetos de escrita e análise de logs de aplicações.

    10. Alojamento e operação de aplicações em plataformas cloud.

  • Demonstração da coerência dos conteúdos programáticos com os objetivos da unidade curricular

    Esta unidade curricular complementa e consolida os objetivos da unidade de "Programação na Internet", fornecendo competências em três áreas com importância crescente no desenvolvimento de aplicações na Web: desenvolvimento de Web Application Programming Interfaces (API), desenvolvimento de aplicações sobre a plataforma browser e instalação e operação de aplicações sobre plataformas cloud.

    O primeiro objetivo é alcançado através dos itens (1) e (2) do programa.

    O segundo objetivo é alcançado através dos itens (3) a (5) do programa.

    Finalmente, os itens (7), (9) e (10) contribuem para o terceiro objetivo.

    Esta unidade tem também como objetivos secundários a otimização de desempenho e a elaboração de documentação técnica. Para o primeiro contribuem os itens (6) a (8) do programa. O segundo objetivo secundário é obtido de forma transversal em todos os itens do programa.

  • Metodologias de ensino

    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 e explicação dos temas e à demonstração da sua aplicação prática. Os tópicos principais são ainda explorados através da realização de uma ou mais aplicações Web ao longo do semestre, por grupos de 2 ou 3 alunos. Os resultados (1) a (5) e (7) são avaliados individualmente através do teste escrito realizado no final do semestre e na avaliação dos trabalhos práticos durante o semestre. Durante o acompanhamento dos trabalhos de grupo realizados nas aulas práticas são avaliados os resultados (6), (8) e (10). Todos os resultados da aprendizagem são também avaliados na discussão final dos trabalhos de grupo. A classificação final é a média das classificações da prova escrita e dos trabalhos e discussão.

  • Demonstração da coerência das metodologias de ensino com os objetivos de aprendizagem da unidade curricular

    Nas aulas teórico-práticas são apresentados as bases teóricas dos conteúdos programáticos, privilegiando-se uma forma de apresentação interativa e enfatizando-se as competências de compreensão. Nestas aulas, são também desenhados e desenvolvidos pequenos projetos e analisados casos de estudo.O trabalho extra aula é guiado pelos projetos, com o objetivo de consolidar as competências de desenho e desenvolvimento dos conteúdos programáticos.

  • Bibliografia principal

    Glenn Block, Pablo Cibraro, Pedro Felix, Howard Dierking, and Darrel Miller, Designing Evolvable

    Web APIs with ASP.NET, O’Reilly, 2014

    Brad Green, Shyam Seshadri, AngularJS, O’Reilly, 2013

    Ilya Grigorik, High Performance Browser Networking, O’Reilly, 2013