Herança
No Departamento de Informática da Universidade do Minho, utiliza-se
um sistema interessante para gerir o software que é instalado e
utilizado nas máquinas laboratoriais. Há um servidor para cada
laboratório onde são instaladas várias imagens de possíveis sistemas
(uma imagem é constituída por um sistema operativo base e vários
pacotes de software). No início de cada utilização, o utilizador
escolhe a imagem que quer carregar. No fim da sua sessão, quando o
utilizador desliga a sua máquina, o conteúdo desta é apagado para na
sessão seguinte carregar uma nova imagem. Desta maneira, garante-se
que quando um utilizador selecciona uma dada imagem esta é-lhe
oferecida tal como foi criada originalmente.
Com a adopção desta tecnologia por parte de quase todo o corpo
docente, o número de imagens proliferou tornando necessária a criação
de uma ferramenta de gestão das várias imagens. Pretende-se que a
informação sobre as imagens seja mantida num formato XML.
Para o efeito, pretende-se que seja realizado o seguinte conjunto de
tarefas:
- Especificação de um Schema para o registo de imagens, atendendo às seguintes considerações:
- As várias imagens formam uma ou mais hierarquias em árvore.
- Uma imagem é constituída por uma descrição onde poderão constar vários atributos
como por exemplo o espaço ocupado pela imagem ou o autor da imagem, a
indicação do sistema operativo de base, a indicação dos vários
pacotes de software instalados (cada um pode ter a ele
associadas uma ou mais notas -- versão instalada, acessórios, ...), e
as imagens filhas.
- Uma imagem filha difere da imagem pai por ter mais uns pacotes de software instalados a sua estrutura é, portanto, igual.
- Esta estrutura hierárquica de imagens pressupõe um mecanismo de herança relativamente aos
pacotes de software instalados, i. e., se quiser saber qual o
software instalado na imagem X, terei de juntar à lista de
componentes dessa imagem os componentes da sua imagem pai, da sua
imagem avô, ...
- Especificação de uma stylesheet XSL que recebendo uma instância do tipo de documento
definido, produz uma página HTML com o seguinte conteúdo:
- No início a página contém um índice remissivo de imagens.
- Cada imagem aparece individualizada das restantes (linhas horizontais, tipo de
letra diferente, ...).
- Para cada imagem, é mostrada a descrição com os vários atributos e a lista de componentes de
\ti{software} que a compõem dividida em duas partes: os componentes
próprios e os herdados.
- Cada componente deverá apresentar uma sublista com as notas que lhe estão associadas.
- Cada componente herdado deverá ter a ele associado a sua origem (numa segunda
versão poderia conter um link para o seu owner).