3.4 Base Dados IP-XACT
3.4.1 Estrutura das Classes da Base Dados IP-XACT
Para que possa ser feita uma estruturação concisa e simples de cada classe do standard IP-XACT é necessário adotar métricas e templates de modulação para a sua definição. Desta forma as classes são muito semelhantes tanto a nível visual como a nível de implementação. É necessário adotas uma convenção para definição da estrutura de cada classe referente a cada elemento presente no standard. Essa estrutura está definida na figura 3.6.
Figura 3.6: Estrutura geral de uma classe que define um elemento IP-XACT
Cada classe contém métodos acessores e manipuladores, devido a alguns elemen- tos necessitarem de validação no momento de atribuição de valor. Para tornar as classes genéricas adotada esta convenção para todas as classes, mesmo que não necessitem de validações nas atribuições. Todas as classes irão conter três construtores: 1. construtor vazio que iniciará a classe com os valores por defeito definidos no standard; 2. construtor cópia que faz a cópia de outra classe do mesmo tipo; 3. construtor que recebe um nó XML e faz o parsing do elemento IP-XACT presente num documento XML. As classes também irão conter métodos que são responsáveis por fazer o parsing de cada elemento presente no nó XML, assim como uma função de escrita responsável por escrever o elemento no nó XML. Por fim, todas as classes possuem uma função de validação que de acordo com as restrições impostas pelo standard, verificam se a classe cumpre todas os normas impostas pelo mesmo.
Posto isto, a figura 3.7 e a figura 3.8 mostram os fluxogramas templates desenvol- vidos para a modulação e implementação das funções de parsing do nó XML.
Como referido anteriormente, cada classe irá conter um método de leitura res- ponsável por fazer o parsing de um nó XML, sendo que a figura 3.7 representa o fluxograma esse método. Para leitura de um nó é necessário fazer a verificação da
Figura 3.7: Processo de leitura de um elemento IP-XACT a partir de um nó XML
Figura 3.8: Processo de leitura de um ele- mento composto com múltiplas definições
sua validade, sendo o nó válido, irão ser procurados um a um, os elementos perten- centes à classe IP-XACT em questão. Encontrado o elemento de acordo com o seu o tipo, pode ser processado de três maneiras distintas: 1. Caso seja um elemento simples, é feita uma atribuição ao elemento; 2. Caso seja um elemento composto é chamado o método de leitura desse elemento e passado como argumento o nó filho; 3. Caso seja um elemento composto com múltiplas definições será necessário procurar todos elementos desse tipo presentes no ficheiro XML, o fluxograma da figura 3.8 representa o comportamento deste tipo de leitura. Neste caso irão ser procurados todos elementos deste tipo no nó XML. Encontrado um elemento, irá ser criado um elemento temporário do mesmo tipo e chamado o seu método de leitura, onde irá ser passado o nó filho. Feita a leitura o elemento temporário é ve- rificado se cumpre as normas impostas pelo standard IP-XACT. Sendo o elemento válido é inserido na estrutura de elementos. Este processo é repetido para todos os elementos deste tipo nó XML.
Como foi já referido, todas as classes devem ter um método responsável pela valida- ção da mesma que devem seguir o fluxograma template apresentado na figura 3.9.
Todos os campos obrigatórios do elemento devem estar preenchidos para a classe ser considerada válida. Quando a classe contém elementos com múltiplas definições obrigatórias, todos os elementos presentes e definidos devem ser válidos para que
Figura 3.9: Fluxograma template do métodos de validação de uma classe IP-XACT
se considere a classe válida. Para aumentar a robustez dos elementos presentes no repositório algumas classes são sujeitas a outras validações, pois algumas classes possuem elementos que podem referenciar ficheiros, portos ou até mesmo elementos base do standard IP-XACT. É necessário validar essas referências para manter a integridade do elemento IP-XACT. Por exemplo, no caso de uma referência a um porto do IP, é preciso verificar se o porto em questão está descrito no elemento base. O template do método de escrita de um nó XML é representado pelos fluxogramas da figura 3.10 e figura 3.11. O primeiro fluxograma representa o processo de escrita de uma classe num nó, num ficheiro XML. Sempre que a escrita é precedida de um nó XML é verificado se o ficheiro de escrita do nó é válido. Sendo válido é verificado se a classe IP-XACT cumpre as normas definidas no standard IP-XACT através do seu método de validação. Se a classe cumprir estes últimos dois requisitos está pronta para a escrita de um ficheiro XML. Posto isto, irão ser escritos no ficheiro todos elementos válidos presentes na classe que poderão ser representados por três processos de escrita distintos: 1. escrita de um elemento simples, onde será criado um nó com o nome do elemento e escrito o conteúdo desse elemento no ficheiro XML; 2. escrita de um elemento composto, será criado um nó com nome do elemento no ficheiro XML onde de seguida é chamada a função de escrita do elemento que recebe como parâmetro o ficheiro XML, concluída a função de escrita é encerrado o nó XML criado; 3. escrita de um elemento composto com múltiplas definições, o processo é muito semelhante ao anterior, estando representado pelo fluxograma da figura 3.11. A estrutura de dados que contém as várias definições dos elementos é iterada e em cada iteração é verificado se o elemento presente é válido, sendo válido é criado um nó com nome do elemento no ficheiro XML e de seguida é chamada a função de escrita do elemento onde é passado como argumento o ficheiro XML. Concluída a escrita do elemento é encerrado o nó
Figura 3.10: Processo de escrita de um nó de um elemento IP-XACT
Figura 3.11: Processo de escrita de elemento composto com múlti- plas definições
XML. Este método encontra-se explicitado no segundo fluxograma da figura 3.11.