Propostas de Projectos do gEPL para Laboratórios de Informática 4 Ano Lectivo de 2007/08 1. Identificação do Projecto (Pepl01) Ilustrador de trajectórias em Web 2.0 2. Contexto: Sistema de informação para o Museu da Emigração (SIME) 3. Descrição do Projecto Actualmente existe na web muita informação sobre determinados temas, mas esta encontra-se espalhada por vários locais. Por vezes existe a necessidade de criar uma aplicação web que utilize recursos existentes em diferentes locais, como é o caso do Museu da Emigração, no âmbito do qual há a necessidade de ilustrar o percurso de um indivíduo, que deixa a sua terra para ir trabalhar num pais distante. Concretamente sabendo a localidade de partida, chegada e localidades intermédias onde passou, pretende-se criar uma aplicação web (uma página) que a partir dessa lista de locais, recrie a trajectória seguida pelo emigrante, mostrando para cada localidade, informação (histórica, cultural) recolhida a partir da Wikipédia, e imagens recolhidas a partir de um repositório de imagens existente online (ex. Flickr). Esta aplicação terá que utilizar tecnologias web 2.0 na criação das paginas (ex. mapa de percurso, galeria de imagens) e procurar utilizar serviços já existentes para a recolha da informação (ex. API Flickr). 4. Proponente / Orientador Pedro Rangel Henriques + Flávio Ferreira (+ Alda Lopes) 5. Áreas de trabalho Information Retrieval + Web 2.0 + AJAX _____________________________________________________ 1. Identificação do Projecto (Pepl02) Desenvolvimento de um sistema (processador e interface Web) de interrogação XQuery+SPARQL sobre XML e metadados. 2. Contexto: Sistema de recuperação de informação para o Museu da Emigração (ME) no âmbito do projecto SIME. 3. Descrição do Projecto O ME é um museu virtual cujos espólio é constituído por uma vasta colecção de documentos XML de tipos diferentes. As visitas a essa colecção são suportadas por ontologias que lhes confere um significado (semântica) coeso. Para enriquecer os serviços prestados pelo museu, pretende-se disponibilizar agora uma função de pesquisa semântica que permita aceder à informação desse espólio documental de acordo com os interesses do utilizador. Para isso pensou-se em combinar as facilidades de pesquisa sobre documentos XML com as da pesquisa semântica. XQuery é uma linguagem de interrogação que permite recuperar informação a partir de ficheiros XML (da mesma forma que SQL o permite sobre uma BD). RDF é uma linguagem usada para associar descrições semânticas a fontes de informação (por exemplo documentos XML). A semelhança de XQuery, SPARQL é uma linguagem de interrogação sobre ficheiros RDF. Pretende-se, neste projecto, desenvolver um processador da linguagem composta XQuery+SPARQL que permite o acesso à informação usando as fontes (XML) e os metadados sobre elas (RDF). Pretende-se também desenvolver uma interface Web onde o utilizador especifica as perguntas em XQuery+SPARQL e pode visualizar os resultados. As linguagens e o material tecnológico está em aberto, ficando definida aquando da reunião de lançamento do projecto. 4. Proponente / Orientador Pedro Rangel Henriques + Alda Lopes + Flávio Ferreira 5. Áreas de trabalho XML / XQuery + RDF / SPARQL + Web-Engineering _______________________________________________________________________________________ 1. Identificação do Projecto (Pepl03) Query-by-Example para Recuperação de Documentos em Arquivos XML 2. Contexto: OntXQuery -- Sistema interactivo/incremental para Recuperação de Informação em Documentos XML com recurso a Ontologias 3. Descrição do Projecto O XPath permite especificar perguntas para aceder a determinados elementos de documentos XML. Por exemplo "/artigo[título="Aplicações XML"]" é uma pergunta XPath que acede à lista de artigos de uma colecção XML cujo título é "Aplicações XML". No entanto, a formulação das perguntas implica o conhecimento da sintaxe do XPath e a certeza, a priori, dos elementos desejados. Para facilitar a formulação das perguntas, muitos sistemas de processamento de XPath permitem a "interrogação através de exemplos" ("query by example") que consiste em (1) mostrar ao utilizador um documento exemplo e (2) permitir ao utilizador fazer a escolha dos elementos "clicando" sobre um elemento do tipo desejado. Pretende-se com este projecto desenvolver um sistema de Recuperação de Documentos de arquivos XML (Information Retrieval system) que permita visualizar, num navegador XML ou HTML comum, um documento XML exemplo retirado de uma colecção de modo a que cada elemento desse documento possa ser associado à possibilidade de ser (1) seleccionado como um tipo de elementos desejado e (2) usado numa condição (construída com os operadores =, <>), como p. ex. título="Aplicações XML", de modo a formular a pergunta, ou seja, a escrever a query XPath que específica os documentos pretendidos. As linguagens e o material tecnológico esta' em aberto, ficando definida aquando da reunião de lançamento do projecto. 4. Proponente / Orientador Pedro Rangel Henriques + Alda Lopes 5. Áreas de trabalho Information Retrieval + XML / Xpath _______________________________________________________________________________________ 1. Identificação do Projecto (Pepl04) Visualização de Propriedades Estáticas e Dinâmicas de um Programa usando Grafos 2. Contexto: PCVIA - Program Comprehension by Visual Inspection 3. Descrição do Projecto A compreensão de programas é uma área da Engenharia de software destinada a facilitar o entendimento das aplicações (sistemas de software). Uma das formas mais eficazes de alcançar este objectivo é construir representações de alto nível que permitam analisar só os aspectos de interesse da aplicação. Os grafos são usados vulgarmente para este fim. Para definir uma visualização do programa usando este modelo matemático, é necessário conhecer quanta informação é possível representar e como a representar. Neste trabalho pretende-se construir um ambiente baseado em grafos que utilize as propriedades subjacentes às componentes deste modelo (nodos, arcos, layout) para visualizar propriedades estáticas e dinâmicas de sistemas de software. Concretamente, neste projecto que se insere no PCVIA e se destina a enriquecer a panóplia de ferramentas que nesse contexto têm sido criadas, deve ser desenvolvido um sistema que permita dizer: - como mapear o software a analisar no grafo, isto é, que facetas da aplicação devem ser representadas como nodos, ou como arcos; - como controlar as várias propriedades dos nodos e ramos para formar uma imagem que ilustre conveniente a faceta em análise. Uma possível aproximação à resolução deste problema, baseia-se no recurso ao ProGraph, ou uma ferramenta análoga. 4. Proponente / Orientador Pedro Rangel Henriques + Mario Béron 5. Áreas de trabalho Visualização de SW + Grafos _______________________________________________________________________________________ 1. Identificação do Projecto (Pepl05) Extracção de Componentes Cognitivas do Software 2. Contexto: PCVIA - Program Comprehension by Visual Inspection 3. Descrição do Projecto As Teorias Cognitivas são parte dos componentes fundamentais para o desenvolvimento de ferramentas de Compreensão de Programas. Porém as teorias existentes não pouco sistematizadas e de difícil entendimento e relacionamento. Por esta razão, Mario Béron, no âmbito do seu trabalho de doutoramento “Program Inspection to interconnect Behavioral and Operacional Views for Program Comprehension” estudou e sistematizou todos os conceitos desta área, presentes nas várias abordagens encontradas, com o objectivo de proporcionar uma descrição mais precisa e fácil de integrar nas ferramentas em causa, de modo a que se possam criar especificações de alto nível dos programas em estudo. Concretamente esta proposta de trabalho consiste em implementar os conceitos base que surgem nos Modelos Cognitivos (por exemplo \emph{Chunk}, \emph{Planos}, etc) aplicados à Linguagem C. O objectivo principal é permitir a construção de especificações de alto nível do programa em análise, devendo este novo módulo ser integrado em PICS, uma ferramenta de CP baseada na Inspecção de programas escritos na linguagem C. Mais concretamente, a entrada do novo módulo é um programa C. O sistema deve tomar esse programa C e transforma-lo numa série de patterns onde o utilizador pode realizar comentários. Por exemplo: if (cond) { statement-1; statement-2; .... ..... statement-n } deveria ser transformado em: if (cond) neste ponto o utilizador pode documentar as statement-i 1<=1<=n Outro exemplo 'e for(acc1, acc2, acc3) { statement-1; statement-2; if (cond) { statement-3; statement-4; } else { statement-5; statement-6; } statement-7; } deveria ser transformado en for(acc1; acc2; acc3) ; if (cond) else ; Todos os detalhes para a concretização deste projecto estão descritos no capitulo 3 da tese de Mario Beron, que será fornecido ao grupo de trabalho. 4. Proponente / Orientador Pedro Rangel Henriques + Mario Béron 5. Áreas de trabalho Modelos Cognitivos + Especificação Abstracta de Programas´+ CP _______________________________________________________________________________________ 1. Identificação do Projecto (Pepl06) Integração de Graphviz com a Biblioteca Cairo de GTK 2. Contexto: PCVIA - Program Comprehension by Visual Inspection 3. Descrição do Projecto As bibliotecas fornecidas pelo GTK são rápidas, eficientes e possibilitam a criação de ambientes visuais muito agradáveis. Actualmente foi desenvolvida uma biblioteca que torna possível integrar uma poderosa ferramenta de visualização de grafos, como é o Graphviz, con GTK. Esta biblioteca faz parte do ambiente informático CAIRO. Descobrir, documentar claramente e exemplificar como se faz a interligação supra mencionada, fomenta a utilização de CAIRO em distintas aplicações, como por exemplo a Visualização de Programas, tarefa subjacente ao desenvolvimento de ferramentas para a Compreensão de Programas (CP). Este trabalho tem três objectivos principais: 1- Especificar os passos necessários para integrar CAIRO com Graphviz. 2- Exemplificar a tal integração com formas tradicionais de visualizar programas, como são os grafos de: Funciones, de Interconecção de Módulos, etc. 3- Comparar as bondades de CAIRO-Graphviz com outras poderosas bibliotecas tales como Jung, Prefuse, etc. 4. Proponente / Orientador Pedro Rangel Henriques + Mario Béron 5. Áreas de trabalho Visualização de SW + Grafos _______________________________________________________________________________________ 1. Identificação do Projecto (Pepl07) Análise estatística de dados sobre uma BD de Candidaturas 2. Contexto: SIGON.2 - Sistema de Informação para Gestão e auditoria do programa operacional do norte ON.2. 3. Descrição do Projecto O SIGON.2 é um sistema de informação real, suportado na web, para submissão, avaliação/aprovação, acompanhamento e auditoria de candidaturas a programas de financiamento para o desenvolvimento regional do Norte de Portugal. Preenchidos os formulários e carregados os anexos, as candidaturas são gravadas num base de dados central, que vai servir de suporte a todo o sistema de Back-Office. através do qual os membros da Entidade Gestora do Programa Operacional (EGPO) vão fazer a avaliação e aprovação das candidaturas, bem como acompanhar todas as tarefas ao longo da execução dos projectos e o controlo final, após o encerramento. O sistema está a ser desenvolvido em .NET, usando ASP, C# e SQL-Server2005. Pretende-se, neste projecto, recolher dados estatísticos da BD de modo a mostrar, em quadros e em forma gráfica, indicadores de gestão tais como número de candidaturas submetidas, número de candidaturas aprovadas e recusadas, o total financiado e o financiamento médio por candidatura, número de postos de trabalho criados, etc... Os demais indicadores e as dimensões a considerar na análise dos dados, serão definidos pela equipe de trabalho (que inclui o grupo que seleccionar este projecto, os orientadores e o cliente final (a CCDRN, no Porto). 4. Proponente / Orientador Pedro Rangel Henriques + Daniela da Cruz 5. Áreas de trabalho SI + BDs + Análise multidimensional de Dados _______________________________________________________________________________________ 1. Identificação do Projecto (Pepl08) Geração automática de classes C# a partir de um Dataset 2. Contexto: SIGON.2 - Sistema de Informação para Gestão e auditoria do programa operacional do norte ON.2. 3. Descrição do Projecto O SIGON.2 é um sistema de informação real, suportado na web, para submissão, avaliação/aprovação, acompanhamento e auditoria de candidaturas a programas de financiamento para o desenvolvimento regional do Norte de Portugal. Preenchidos os formulários e carregados os anexos, as candidaturas são gravadas num base de dados central, que vai servir de suporte a todo o sistema de Back-Office. através do qual os membros da Entidade Gestora do Programa Operacional (EGPO) vão fazer a avaliação e aprovação das candidaturas, bem como acompanhar todas as tarefas ao longo da execução dos projectos e o controlo final, após o encerramento. O sistema está a ser desenvolvido em .NET, usando ASP, C# e SQL-Server2005. Pretende-se, neste projecto, criar um Gerador de C# que tome como ponto de partida o Dataset(* ver abaixo a definição de Dataset) que se está a usar numa Aplicação (o SIGON.2 será usado como caso de estudo para testar o Gerador a desenvolver) e gere para cada tabela uma classe C# em que os atributos serão as colunas da tabela e os métodos serão os gets/sets desses atributos. (*)Definição de Dataset segundo os manuais .NET da MicroSoft: "The DataSet, which is an in-memory cache of data retrieved from a data source, is a major component of the ADO.NET architecture. The DataSet consists of a collection of DataTable objects that you can relate to each other with DataRelation objects. You can also enforce data integrity in the DataSet by using the UniqueConstraint and ForeignKeyConstraint objects." 4. Proponente / Orientador Pedro Rangel Henriques + Daniela da Cruz 5. Áreas de trabalho SI + BDs + Geração de Programas + C#/.Net _______________________________________________________________________________________ 1. Identificação do Projecto (Pepl09) Construção do Grafo de Dependências de classes C# usando tecnologia .NET 2. Contexto: SIGON.2 - Sistema de Informação para Gestão e auditoria do programa operacional do norte ON.2. 3. Descrição do Projecto O SIGON.2 é um sistema de informação real, suportado na web, para submissão, avaliação/aprovação, acompanhamento e auditoria de candidaturas a programas de financiamento para o desenvolvimento regional do Norte de Portugal. Preenchidos os formulários e carregados os anexos, as candidaturas são gravadas num base de dados central, que vai servir de suporte a todo o sistema de Back-Office. através do qual os membros da Entidade Gestora do Programa Operacional (EGPO) vão fazer a avaliação e aprovação das candidaturas, bem como acompanhar todas as tarefas ao longo da execução dos projectos e o controlo final, após o encerramento. O sistema está a ser desenvolvido em .NET, usando ASP, C# e SQL-Server2005. Pretende-se, neste projecto, criar um Analisador de C# que tome como entrada um programa formado por várias Classes C# e desenhe, usando ferramentas .NET, o grafo de dependências entre Classes, distinguindo relações do tipo "import", "extends", etc. O SIGON.2 será usado como caso de estudo para testar o Analisador a desenvolver. 4. Proponente / Orientador Pedro Rangel Henriques + Daniela da Cruz 5. Áreas de trabalho SI + BDs + Análise de Programas + C#/.Net _______________________________________________________________________________________ 1. Identificação do Projecto (Pepl10) Recuperação do Modelo de Interacção em aplicações gráficas Java (Swing/SWT) ou C# (Forms) 2. Contexto: Language.Processing@di.um.pt 3. Descrição do Projecto Reusing and modifying legacy systems are complex and expensive tasks, because the required program comprehension is a difficult and time-consuming process. Thus, the need for methods and tools that facilitate program comprehension is urgent and strong. Reverse engineering aims at analyzing the software in order to represent it in an abstract format that makes easier to understand what it does and how it works. Reverse engineering tools provide means to support this task. Nowadays those software systems offer a rich interaction with the user, and their architectures are oriented towards a layered organization, separating at least the interface layer from the business core and data persistence modules. In this context --- system maintenance and comprehension of software with graphical user interfaces --- this project involves the application of strategic and generic programming and the research of new slicing techniques to the reverse engineering of Java applications. This task requires the study of the graphic toolkit used to build Graphical User Interfaces (GUI) for Java --- Swing (or alternatively, SWT), or for C# --- Forms. The tool should be capable of deriving the user interface abstract model for interactive programming by generating the event-flow graph of the application. This graph should be linked with the graphical user interface and over it should be possible to make some questions. As final goal, this tool should de integrated as a plugin in the Eclipse platform, or as an extension to Visual-Studio .NET. 4. Proponente / Orientador Pedro Rangel Henriques + Daniela da Cruz 5. Áreas de trabalho Program Slicing, Reverse Engineering, Interfaces Gráficas, Java, Swing, SWT, Eclipse, C#, .Net. _______________________________________________________________________________________ 1. Identificação do Projecto (Pepl11) Recuperação do Modelo de Interacção em aplicações gráficas Haskell (wxHaskell) 2. Contexto: Language.Processing@di.um.pt 3. Descrição do Projecto Reusing and modifying legacy systems are complex and expensive tasks, because the required program comprehension is a difficult and time-consuming process. Thus, the need for methods and tools that facilitate program comprehension is urgent and strong. Reverse engineering aims at analyzing the software in order to represent it in an abstract format that makes easier to understand what it does and how it works. Reverse engineering tools provide means to support this task. Nowadays those software systems offer a rich interaction with the user, and their architectures are oriented towards a layered organization, separating at least the interface layer from the business core and data persistence modules. In this context --- system maintenance and comprehension of software with graphical user interfaces --- this project involves the application of strategic and generic programming and the research of new slicing techniques to the reverse engineering of Haskell applications. This task requires the study of the graphic toolkit used to build Graphical User Interfaces (GUI) for Haskell --- wxHaskwll. The tool should be capable of deriving the user interface abstract model for interactive functional programming by generating the event-flow graph of the application. This graph should be linked with the graphical user interface and over it should be possible to make some questions. 4. Proponente / Orientador Pedro Rangel Henriques + Daniela da Cruz 5. Áreas de trabalho Program Slicing, Reverse Engineering, Interfaces Gráficas, Haskell, wxHaskell. ______________________________________________________________________________________ 1. Identificação do Projecto (Pepl12) Play Virtual Machines 2. Contexto: Language.Processing@di.um.pt 3. Descrição do Projecto A implementação de jogos de cartas implica a utilização de tipos de dados estruturados tais como stacks e filas. O que varia de jogo para jogo, é o número de stacks e filas e as regras como são usadas. Pretende-se neste projecto desenvolver uma máquina virtual gráfica reconfigurável/reprogramável para cada jogo de cartas que nela se pretenda simular, que antes de mais permita programar a sua arquitectura específica. Para isso deverão ser estabelecidas as instruções da máquina virtual, que permitam configurá-la e programar facilmente uma novo jogo que se pretenda simular. O grupo de trabalho que opte por este projecto deverá escolher a linguagem de programação pretendida, tendo em atenção a eficiência e portabilidade. 4. Proponente / Orientador Pedro Rangel Henriques + Daniela da Cruz 5. Áreas de trabalho Máquinas Virtuais, Engenharia de Software. ______________________________________________________________________________________ 1. Identificação do Projecto (Pepl13) Extensão do WebAppViewer para ASP.Net 2. Contexto: PCVIA - Program Comprehension by Visual Inspection Language 3. Descrição do Projecto O WebAppViewer é um ambiente para Compreensão de Aplicações Web, desenvolvido no contexto do PCVIA, que permite visualizar informação estática e dinâmica sobre Aplicações escritas em PHP, possibilitando relacionar o Domínio do Programa (as linguagens e tecnologias usadas para implementar a Aplicação) com o Domínio do Problema (os resultados produzidos quando a Aplicação corre). o WebAppViewer está implementado em Java e tecnologias associadas. Neste projecto pretende-se estender o sistema para que seja capaz de analisar e mostrar Aplicações Web desenvolvidas em ASP em contexto .Net 4. Proponente / Orientador Pedro Rangel Henriques + Daniela da Cruz 5. Áreas de trabalho Compreensão de Programas Web + Visualização de SW + ASP/.Net. _______________________________________________________________________________________ 1. Identificação do Projecto (Pepl14) Extensão do eXVisXml para suportar XML-Schemas 2. Contexto: PCVIA - Program Comprehension by Visual Inspection Language & Language.Processing@di.um.pt 3. Descrição do Projecto O eXVisXML é uma ferramenta visual que analisa os documentos anotados, a fim de permitir ao Utilizador executar, com facilidade, tarefas relacionadas com a engenharia e a manutenção de documentos XML. Permitindo medir determinados parâmetros e fatiar um documento de acordo com determinado critério, o eXVisXML faz com que se possa explorar a informação do documento anotado e também avaliar a qualidade da anotação concebida. A avaliação de certos parâmetros que estabelecem a comparação entre os elementos e atributos do DTD e os que são efectivamente usados nos documentos permite a consecução de tal objectivo. Neste projecto prende-se estender o sistema já feito de modo a suportar definições do tipo dos documentos escritas em XML-Schema, em vez dos DTDs suportados pela versão actual. 4. Proponente / Orientador Pedro Rangel Henriques + Daniela da Cruz 5. Áreas de trabalho Visualização e Métricas sobre documentos XML e DTD/schema _______________________________________________________________________________________ 1. Identificação do Projecto (Pepl16) Geo-referenciação de Candidaturas e Análise Geográfica da respectiva BD 2. Contexto: SIGON.2 - Sistema de Informação para Gestão e auditoria do programa operacional do norte ON.2. 3. Descrição do Projecto O SIGON.2 é um sistema de informação real, suportado na web, para submissão, avaliação/aprovação, acompanhamento e auditoria de candidaturas a programas de financiamento para o desenvolvimento regional do Norte de Portugal. Preenchidos os formulários e carregados os anexos, as candidaturas são gravadas num base de dados central, que vai servir de suporte a todo o sistema de Back-Office. através do qual os membros da Entidade Gestora do Programa Operacional (EGPO) vão fazer a avaliação e aprovação das candidaturas, bem como acompanhar todas as tarefas ao longo da execução dos projectos e o controlo final, após o encerramento. O sistema está a ser desenvolvido em .NET, usando ASP, C# e SQL-Server2005. Pretende-se, neste projecto, inserir (à posteriori) dados relativamente à \emph{localização geográfica} da obra proposta (localização esta que é distinta da localização da Entidade Promotora ou seus Parceiros) para se proceder, depois, à consulta directa e à análise estatística geo-referênciadas dos dados dessa BD de Candidaturas. Tal deve permitir mostrar, sobre mapas da região, vários indicadores de gestão (tais como número de candidaturas submetidas/aprovadas/reprovadas, por tipo e por aviso, número de postos de trabalho criados, etc.) a definir pela equipe de trabalho (que inclui o grupo que seleccionar este projecto, os orientadores e o cliente final (a CCDRN, no Porto)). Note-se que a primeira tarefa (inserção da localização geográfica dos Projectos) tem uma componente tecnológica a resolver (como marcar o ponto para obter com rigor e segurança as Coordenadas Geográficas (latitude e longitude) do local) e uma componente metodológica (que pontos marcar). 4. Proponente / Orientador Pedro Rangel Henriques + Daniela da Cruz 5. Áreas de trabalho SIGs + BDs + Localização Geográfica (geo-referenciação) + Análise multidimensional de Dados _______________________________________________________________________________________ 1. Identificação do Projecto (Pepl17) Percurso de um emigrante em Web 2.0 2. Contexto: Sistema de informação para o Museu da Emigração (SIME) 3. Descrição do Projecto: Actualmente existe na Web muita informação sobre determinados temas, mas esta encontra-se espalhada por vários locais. Por vezes existe a necessidade de criar uma aplicação web que utilize recursos existentes em diferentes locais, como é o caso do Museu da Emigração, no âmbito do qual há a necessidade de ilustrar o percurso de um indivíduo, que deixa a sua terra para ir trabalhar num pais distante numa determinada época. Concretamente sabendo a localidade de partida, chegada e localidades intermédias onde passou e a época, pretende-se criar uma aplicação web (uma página) que a partir dessa lista de locais, recrie a trajectória seguida pelo emigrante, mostrando para cada localidade, informação (histórica, cultural) recolhida a partir de um conjunto configurável de sites (informação textual e multimédia). Esta aplicação terá que utilizar tecnologias Web 2.0 na criação das páginas (XHTML, CSS2, AJAX, etc.). 4. Proponente / Orientador Pedro Rangel Henriques + Flávio Ferreira (+ Alda Lopes) 5. Áreas de trabalho Information Retrieval + Web 2.0 + AJAX _____________________________________________________