Micro Web Applications
@Copyright José Carlos Ramalho / Pedro Rangel Henriques - DI/UM - Nov. 2015Vivemos tempos difíceis com restrições a todos os níveis e com o tempo super acelerado. Neste contexto, ser-se competitivo é cada vez difícil e exigente.
Quando se pensa no mercado de desenvolvimento de software é cada vez mais difícil descobrir nichos de mercado ainda virgens. No entanto, é sempre possível descobrir nichos de necessidades específicas: muitas vezes as instituições adquirem grandes soluções que estão concebidas para o grande mercado genérico e que descuram as necessidades mais específicas. Ora, se rapidamente fosse possível desenvolver um componente que interoperasse com a grande aplicação e que resolvesse aquelas necessidades específicas poderiam sair daqui alguns pequenos produtos com uma economia de escala associada.
É neste contexto microaplicacional que se vem propôr este projeto.
Para tal fixou-se um tema (estando no entanto os alunos livres de contrapôr outros se o entenderem) que resultou de algumas conversas e vivências de um dos docentes: uma escola de música. Já existem várias aplicações para a gestão de escolas mas nenhuma resolve bem as especificidades de uma escola de música. Assim, depois de uma reunião com a direção de uma escola de música identificaram-se algumas necessidades específicas que poderão ser solucionadas por microaplicações: um gestor de audições/concertos e um gestor de programas específicos.
Praticamente nenhuma das aplicações existentes para gerir escolas tem a funcionalidade de gerir audições ou concertos. Esta é uma necessidade específica de uma escola de música que ao longo de um ano letivo poderá ter que organizar dezenas ou centenas de audições e concertos.
O gestor de audições deverá ter as funcionalidades básicas de um sistema de informação:
A estas funcionalidades básicas acrescem as seguintes relativas à interoperabilidade e disseminação de informação:
Primeiro há que especificar o modelo de dados de uma audição.
Uma audição é composta por:
Do exposto, pode-se concluir que apesar de simples este componente terá de suportar a gestão de alguns subsistemas de informação: gestão de peças, gestão de alunos (já implícita em cima), gestão de professores e gestão de audições.
Comece por especificar o modelo para o problema.
Nesta secção propõe-se um conjunto de campos de informação base para cada entidade. É apenas uma ajuda, poderá acrescentar ou retirar os campos que entender. Esta descrição é feita em bruto, poderá ter que trabalhar a nível da normalização dos dados.
A audição já foi descrita acima vamos descrever um pouco as outras entidades.
Um aluno pode ser constituído por:
Um curso pode ser constituído por:
Um professor pode ser constituído por:
Uma obra pode ser constituída por:
Um compositor pode ser constituído por:
Em projetos semelhantes, a existência de datasets é muito importante podendo ser até determinante para o sucesso do projeto. Nesse sentido, a última aula foi dedicada à geração de datasets.
O objetivo foi criar datasets que se aproximassem da realidade mas que não usassem dados pessoais reais. Assim, fez-se uma colheita a várias fontes de dados, desde pautas de avaliação do curso até à DBpedia. Usaram-se esses dados, aos quais se adicionaram alguns processos aleatórios de geração de datas e de combinação de hipóteses para se obter um conjunto final de informação interessante e com o qual podem desenvolver e testar o projeto.
Colocaram-se online os datasets obtidos pelo aluno Tiago Conceição, que após a aula ainda os trabalhou mais acrescentando mais informação relevante para o projeto. O Tiago disponibilizou para todos, os datasets iniciais, as scripts de transformação e os datasets finais. Aproveitem, alterem a gosto e façam avançar os vossos projetos.