next up previous contents index
Next: Gerador de Descrições Up: Ferramentas Previous: Aproximações Simplificativas

Analisador de Relações entre Classes

Os estádios de processamento dos vários geradores precisam, por vezes, de informação sobre a própria hierarquia, i.e., exclusivamente sobre as relações entre classes sem ter em conta a estrutura de cada classe.

A ferramenta é designada hier toma como entrada o código C++ de uma ou mais classes. O processamento detectar classes no código e a lista de superclasses para cada uma delas. Prossegue o processamento ``invertendo'' a informação, i.e., para cada classe encontrada determina a lista de subclasses. O resultado final é um ficheiro com vários troços de hierarquia, cada um começando numa classe indicada pelo programador da aplicação.

Considere-se um exemplo em que se têm as seguintes relações, em que -> representa deriva-de:

    A    B -> A    C -> A    D -> C, B
A primeira passagem da ferramenta iria produzir listas com linearizações do grafo de classes.
    A    B -> A    C -> A    D -> B    D -> C
A segunda passagem produziria as relações abaixo. O símbolo <- representa é-superclasse-de.
    A <- B, C, D   B <- C    D <- C    C

Seguindo a aproximação simplificativa para prototipagem rápida, também esta ferramenta é constituída por ``subferramentas'', nomeadamente uma sucessão de pequenos programas em AWK e PROLOG [Sterling & Shapiro, 1986].

Esta ferramenta gera também as macros de suporte ao controlo de invocação de objectos cujo tipo é modificado em tempo de execução, como é o caso de cartas e representantes criados por envelopes (como foi explicado no ponto 6.2.4), ou o caso dos envelopes criados por SIFs no módulo de distribuição. Este tipo de código pode ser gerado por hier por depender exclusivamente das relações entre classes e não das respectivas estruturas. O mesmo acontece com os DEs, que também são gerados por esta ferramenta.



David M. M. de Matos
Thu Jun 29 14:58:09 MET DST 1995