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

  1. Desenvolvimento Web em Java:
    1. O que são aplicações Web;
    2. Histórico e evolução das tecnologias Web;
    3. Visão geral da plataforma Java EE;
    4. Ferramentas para desenvolvimento Java EE;
    5. Aprendendo na prática: o exemplo Java Hostel;
    6. A tecnologia JSF (JavaServer Faces);
    7. O padrão CDI (Contexts and Dependency Injection);
    8. Persistência com JPA (Java Persistence API);
    9. Mais sobre EJBs (Enterprise Java Beans);
  2. Tecnologias para publicação de dados interligados – linked data:
    1. Introdução;
    2. Princípios de Linked Data;
    3. A Web de Dados;
    4. Considerações de projeto;
    5. Publicando dados;
    6. Consumindo dados;
  3. Outras tecnologias da Web Semântica:
    1. Description Logics com OWL;
    2. A linguagem de consulta SPARQL;
    3. O framework Jena: consumindo/publicando LD em Java;
  4. Modelagem de aplicações Web com FrameWeb:
    1. 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:

NOTA PARCIAL = (T1 + T2) / 2

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:

NOTA FINAL = (T1 + T2 + T3) / 3

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:

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:

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

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);