Desenvolvimento Web e Web Semântica – 2017/1
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, 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).
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-7, sala 18 (Aquário, 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;
- 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 2 trabalhos práticos (T1 e T2) valendo 10 cada. Os trabalhos devem ser apresentados ao professor, que conduzirá uma entrevista com os alunos sobre o que foi produzido. 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 do PPGI
A avaliação será constituída de 3 trabalhos práticos (T1, T2 e T3) valendo 10 cada. Os trabalhos devem ser apresentados ao professor, que conduzirá uma entrevista com os alunos sobre o que foi produzido. 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 em cada disciplina ou atividade acadêmica, a freqüência mínima de 75% (setenta e cinco por cento) da carga horária prevista para as atividades presenciais.”
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 User’s guide 4.0. 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 2017/1 inicia em 27/03/2017 e termina em 31/07/2017. A semana de provas finais 2017/1 vai de 01 a 07/08/2017. 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 |
---|---|
28/03/2017 | Primeira aula do curso. |
13/04/2017 | Prazo para definição dos grupos para trabalho prático. |
17/05/2017 | Prazo para apresentação do trabalho T1. |
23/05/2017 | Não haverá aula. |
15/06/2017 | Não haverá aula. |
04/07/2017 | Não haverá aula. |
11/07/2017 | Não haverá aula. |
20/07/2017 | Não haverá aula. |
25/07/2017 | Aula 30 (completando 60 horas-aula). |
31/07/2017 | Prazo para apresentação do trabalho T2. |
31/07/2017 | Prazo para apresentação do trabalho T3 (PPGI). |
03/08/2017 | Prova Final. |
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);
- About Stack Overflow Developer Survey 2017;
- 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.
Trabalho prático
O trabalho prático da disciplina consiste em um projeto de desenvolvimento de uma aplicação Web com dados interligados (Web Semântica), dividido em 3 partes, sendo que a terceira parte é obrigatória apenas para alunos do PPGI:
- T1: desenvolvimento de uma aplicação Web em Java;
- T2: inclusão de funcionalidades da Web Semântica na aplicação Web desenvolvida no T1;
- T3: documentação da aplicação Web desenvolvida em T1 e T2 utilizando FrameWeb.
O trabalho deve ser desenvolvido em duplas, havendo penalidade de 2 pontos por nota para alunos que fizerem o trabalho sozinho ou em grupos de mais de 2 pessoas. Caso a turma tenha um número ímpar de alunos, será permitido a um aluno fazer o trabalho sozinho ou formar um trio. Pode-se formar duplas mistas entre alunos da graduação e do PPGI, desde que o(a) aluno(a) do PPGI se lembre que o T3 é obrigatório para ele(a) e não para seu/sua colega da graduação.
Os trabalhos práticos devem observar os seguintes requisitos:
- T1:
- Formar a dupla e definir um assunto para o projeto, discutindo-o com o professor para aprovação do escopo (prazo: 13/04/2017, penalidade de 0,5 pontos por dia de atraso);
- Desenvolver a aplicação Web utilizando frameworks ou arquitetura baseada em containers (Java EE), incluindo as seguintes categorias de framework: decorador (ex.: Facelets), controlador (ex.: JSF), injeção de dependências (ex.: CDI) e mapeamento objeto/relacional (ex.: JPA);
- Utilizar gerenciamento de dependências com Maven, de modo a não ser necessário distribuir os arquivos JAR dos frameworks utilizados juntamente com o projeto;
- Agendar um horário com o professor para apresentação do trabalho, incluindo demonstração em funcionamento e explicação do código-fonte (prazo da apresentação: 17/05/2017, penalidade de 0,5 pontos por dia de atraso);
- Compartilhar o código-fonte da aplicação no GitHub dwws-ufes, incluindo documentação de como implantar a aplicação no arquivo README.md. Para que o repositório e respectiva autorização de acesso sejam criados os alunos devem enviar ao professor um e-mail com: (a) nome dos integrantes do grupo; (b) nome do projeto desenvolvido; (c) login de pelo menos um membro do grupo no GitHub (mesmo prazo da apresentação);
- Avaliação: um projeto que cumprir os requisitos acima, porém apresentando apenas funcionalidades simples demonstradas nos exemplos feitos ao longo do curso (ex.: somente funcionalidades CRUD) obterá nota 7 (média). Para obter uma nota superior, o trabalho deve trazer funcionalidades mais interessantes e/ou utilizar tecnologias que não foram explicitamente demonstradas durante o curso.
- T2:
- Utilizar o mesmo projeto desenvolvido no T1, mantendo o uso do Maven e o compartilhamento no GitHub;
- Implementar ao menos uma funcionalidade de consumo de dados interligados e ao menos uma funcionalidade de publicação de dados interligados;
- Agendar um horário com o professor para apresentação do trabalho, incluindo demonstração em funcionamento e explicação do código-fonte (prazo da apresentação: 31/07/2017, penalidade de 2 pontos por dia de atraso);
- Avaliação: um projeto que cumprir os requisitos acima, porém apresentando apenas funcionalidades simples demonstradas nos exemplos feitos ao longo do curso (ex.: publicação e leitura de dados interligados simples) obterá nota 7 (média). Para obter uma nota superior, o trabalho deve trazer funcionalidades mais interessantes e/ou utilizar tecnologias que não foram explicitamente demonstradas durante o curso.
- T3:
- Entregar relatório em PDF contendo os modelos propostos pelo FrameWeb e FrameWeb-LD, todos relativos ao projeto desenvolvido em T1 e T2.
- Requisitos mínimos: 1 modelo Entity (incluindo FrameWeb-LD, ou seja, O/RM + vocabulários LD), 1 modelo Application, 1 modelo Persistence e ao menos 3 modelos Navigation (3 funcionalidades diferentes);
- Pontos extras para alunos da graduação: por não serem obrigados a fazer o T3, são oferecidos até 5 pontos extras (para recuperar pontos perdidos no T1 ou T2), se cumpridos os requisitos acima estabelecidos (cada modelo vale 1,0);
- Pontos extras para todos os alunos: por não fazer parte da especificação mínima do T3, são oferecidos até 3 pontos extras aos alunos que produzirem os diagramas relacionados à proposta GRALD (modelo iStar, modelo RiskML, modelo iStar-RiskML integrado — cada modelo vale 1,0);