Desenvolvimento Web e Web Semântica – 2019/2
Nome oficial:
- Graduação: Tópicos Especiais em Engenharia de Software III (INF 09373);
- PPGI: Desenvolvimento Web e Web Semântica (PINF 6091, PINF 7091).
Ementa: conceitos básicos do desenvolvimento Web; desenvolvimento Web na plataforma Java EE; fundamentos da Web Semântica; projetando, publicando e consumindo dados interligados (linked data), modelando aplicações Web baseadas em frameworks com FrameWeb.
Pré-requisitos: para acompanhar bem o curso, o aluno deve saber Java básico, modelagem orientada a objetos básica com UML, fundamentos de Bancos de Dados e ter noções de XML. Além disso, deve ter boa leitura em inglês (todo o material do curso será em inglês). Vide seção “Links interessantes“.
Metodologia: aulas expositivas, aulas práticas tipo “hands on”, exercícios em laboratório.
Dia/horário das aulas: terças e quintas-feiras, das 15h às 17h.
Local: CT-6, sala 114 (aulas teóricas), CT-9, sala 105 (LabGrad, aulas práticas) – UFES (Av. Fernando Ferrari, 514 – Goiabeiras – Vitória, ES).
Carga horária semestral: 60 horas.
Mais informações:
- Programa detalhado;
- Sistema de avaliação;
- Bibliografia;
- Cronograma / datas importantes;
- Links interessantes;
- Download de material do curso (slides, exercícios, etc.);
- Trabalho prático;
- Agende um horário para atendimento.
Programa detalhado
- Desenvolvimento Web em Java:
- O que são aplicações Web;
- Histórico e evolução das tecnologias Web;
- Visão geral da plataforma Java EE;
- Ferramentas para desenvolvimento Java EE;
- Aprendendo na prática: o exemplo Java Hostel;
- A tecnologia JSF (JavaServer Faces);
- O padrão CDI (Contexts and Dependency Injection);
- Persistência com JPA (Java Persistence API);
- Mais sobre EJBs (Enterprise Java Beans);
- Tecnologias para publicação de dados interligados – linked data:
- Introdução;
- Princípios de Linked Data;
- A Web de Dados;
- Considerações de projeto;
- Publicando dados;
- Consumindo dados;
- Outras tecnologias da Web Semântica:
- Description Logics com OWL;
- A linguagem de consulta SPARQL;
- O framework Jena: consumindo/publicando LD em Java;
- Modelagem de aplicações Web com FrameWeb:
- O método FrameWeb.
Sistema de avaliação – Alunos da Graduação
A avaliação será constituída de 3 trabalhos práticos (T1, T2 e T3) valendo 10 cada. A nota parcial será obtida com a seguinte fórmula:
Alunos que obtiverem nota parcial igual ou superior a 7 não farão prova final, tendo sua nota final igual à nota parcial. Demais alunos terão sua nota final calculada pela média aritmética simples entre a nota parcial e a nota da prova final e deverão obter nota final igual ou superior a 5 para serem aprovados.
Observação: o aluno que tiver mais de 25% (vinte e cinco por cento) de faltas, contadas em relação ao número de horas-aulas previstas para a disciplina, será privado do direito de prestar exame final e estará, independentemente de qualquer outra condição, reprovado. (Art. 51 Regimento CT, art. 104 Regimento Geral Ufes). Além disso, a média final da disciplina será arredondada para valores inteiros ou fração de 0,5, de acordo com o art. 63, parágrafos 1º e 2º do Regimento CT).
Sistema de avaliação – Alunos de Pós-Graduação
A avaliação será constituída de 3 trabalhos práticos (T1, T2 e T3) valendo 10 cada e um seminário (S). A nota final será obtida com a seguinte fórmula:
A nota mínima para aprovação no PPGI é 6 de 10.
Observação: art. 20º do Regimento do PPGI: “Será condição necessária para aprovação e obtenção dos créditos, a frequência mínima de 75% (setenta e cinco por cento) da carga horária prevista para cada disciplina ou atividade acadêmica.”
Bibliografia
Livros:
- T. Heath, C. Bizer Linked Data: Evolving the Web into a Global Data Space. Morgan & Claypool Publishers, 2011;
- P. Hitzler, M. Krötzsch, S. Rudolph Foundations of Semantic Web Technologies. CRC Press, 2009;
- D. Allemang, J. Hendler Semantic Web for the Working Ontologist. Morgan Kaufmann, 2011;
- L. Yu A Developer’s Guide to the Semantic Web. Springer, 2011;
- E. Jendrock, R. Cervera-Navarro, I. Evans, K. Haase, W. Markito, C. Srivathsa The Java EE 7 Tutorial. Oracle;
- C. Çivici PrimeFaces Documentation. PrimeTek.
Sobre o método FrameWeb:
Uma lista completa de publicações e outros materiais disponíveis sobre o método podem ser encontradas no site do NEMO.
Leituras recomendadas:
- The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!), by Joel Spolsky;
- Tutorial: a Java EE Web Profile application with JButler;
- Beginner’s guide to RDF: 6. Querying with SPARQL;
- Tech: A Crash Course in SPARQL;
- SPARQL by Example.
Cronograma / Datas importantes
O período 2019/2 inicia em 12/08/2019 e termina em 16/12/2019. A semana de provas finais 2019/2 vai de 17 a 23/12/2019. A tabela abaixo resume eventos importantes durante o curso. O programa de aulas com o cronograma completo do curso é exibido em seguida.
Data | Descrição |
---|---|
13/08/2019 | Não haverá aula: greve nacional da educação. |
15/08/2019 | Primeira aula do curso. |
27/08/2019 | Não haverá aula: participação em congresso. |
03/09/2019 | Prazo para definição dos grupos para trabalho prático. |
23/09/2019 | Prazo para entrega do trabalho T1. |
16/10/2019 | Prazo para apresentação do trabalho T2. |
05/11/2019 | Não haverá aula – Participação em Congresso. |
07/11/2019 | Não haverá aula – Participação em Congresso. |
10/12/2019 | Aula 30 (completando 60 horas-aula). |
16/12/2019 | Prazo para apresentação do trabalho T3. |
19/12/2019 | Prova Final (graduação). |
Links interessantes
- Caso o aluno ainda não tenha feito disciplina sobre banco de dados, sugiro ler material a respeito para não ficar completamente perdido quando usarmos bancos de dados para armazenar as informações das aplicações Web que desenvolvemos. Encontrei uma apostila de um professor do IME/USP que pode ser uma boa referência;
- Para o aluno que não conhece a linguagem UML (Unified Modeling Language), sugiro a leitura dos capítulos 4 a 6 (o cap. 7 também fala de UML, mas não usamos modelagem dinâmica nesta disciplina) das Notas de Aula de Engenharia de Requisitos do prof. Ricardo Falbo;
- Por fim, para aprender um pouco mais das linguagens utilizadas na Web, sugiro os tutoriais do site W3Schools: HTML, CSS, JavaScript, XML, etc. Eles também possuem tutorial de SQL (linguagem de manipulação de bancos de dados)!
Download de material
- Apresentação do curso;
- Vídeo: Dados abertos para um dia a dia melhor;
- Vídeo: Parceria para Governo Aberto – OGP (Open Government Partnership);
- Vídeo: Linked Data (and the Web of Data);
- Web Development in Java, Part I: slides / live demo instructions / exemplo JavaHostel;
- Web Development in Java, Part II: slides / exemplo CDITravel;
- Web Development in Java, Part III: slides / exemplo ADS;
- JavaHostel com nemo-utils, parcialmente desenvolvido na aula do dia 22/04/2015;
- JavaHostel com nemo-utils, finalizado na aula do dia 27/04/2015;
- Linked Data;
- FrameWeb;
- Exercício FrameWeb (Language School);
- Modelos UML Astah do exercício FrameWeb (Language School);
- Tutorial de Jena (por Paulo Sérgio Santos Junior para o curso de 2014/1): slides / código-fonte dos exemplos;
- Demonstração do uso de Jena em uma aplicação Java EE: instruções / código-fonte resultante;
- Modelo LaTeX para documentação de projeto arquitetural de software usando FrameWeb;
- Palestra sobre Docker.
Trabalhos práticos e seminários
Veja neste link a especificação do trabalho prático.
Veja neste link a especificação dos seminários a serem apresentados pelos alunos do PPGI.