This work discusses the application of generic programming paradigm to clustering algorithms on geographic data. The basic ideas of generic programming: (a) defines the basic steps of the algorithm independently of data structures and (b) identifies a set of requirements that the data structures must satisfy; are applied to implement a K-Means and a "Equal Step" clustering algorithms. This approach leads to a code reuse and flexibility without loss of efficiency.
O paradigma de orientação a objetos tem sido largamente empregado nas arquiteturas de desenvolvimento de software, incluindo a maioria das ferramentas disponíveis para o desenvolvimento de Sistemas de Informações Geográficas (GIS). Este paradigma é baseado no princípio de agrupamento de elementos similares do mundo em classes e por tornar explícitos comportamentos e propriedades comuns por meio do mecanismo de herança. Através desse mecanismo, classes derivadas compartilham propriedades comuns de uma classe base, enquanto mantêm seus comportamentos específicos (Stroustrup, 1997). No desenvolvimento de aplicativos GIS, esse paradigma freqüentemente leva ao estabelecimento de classes, as quais são diretamente relacionadas a diferentes tipos de representações geométricas. Por exemplo, um típico GIS orientado a objeto pode ter classes básicas tais como Imagem, Polígono, Mapa de Polígonos, Grade Regular, TIN (grade irregular triangular), Ponto, e Conjunto de Pontos, contendo tanto a estrutura de dados subjacente quanto o correspondente conjunto de algoritmos. Essa subdivisão de classes possibilita a decomposição do sistema em módulos, auxiliando os desenvolvedores de software e permite uma divisão conveniente do trabalho entre a equipe de desenvolvimento.
Existe, no entanto, uma desvantagem na aplicação direta da orientação a objetos no desenvolvimento de GIS: o acoplamento dos algoritmos às estruturas de dados. Um grande número de algoritmos não dependem da implementação particular de uma estrutura de dados, mas apenas de algumas propriedades semânticas fundamentais destas (Austern, 1999). Tais propriedades podem ser – por exemplo – a capacidade de ir de um elemento da estrutura ao próximo e de comparar dois elementos. Por exemplo, um algoritmo para computar o índice de autocorrelação espacial independe de os elementos estarem organizados como um conjunto de pontos, um conjunto de polígonos, um TIN, uma grade ou uma imagem. O que é necessário é a capacidade de procurar entre uma lista de valores, e obter, para cada elemento da lista, seu valor e os índices dos outros elementos da lista que satisfazem uma certa propriedade (por exemplo, aqueles que estão mais próximos no espaço do que uma determinada distância).
De maneira similar, muitos algoritmos de análise espacial podem ser abstraídos da estrutura de dados em particular e serem descritos apenas em termos de suas propriedades.
Por outro lado, em muitas bibliotecas GIS, o uso dos princípios de orientação a objeto tem resultado em classes que contêm tanto a estrutura de dados subjacente quanto o conjunto de algoritmos correspondente. Os algoritmos estão desnecessariamente acoplados a uma estrutura de dados particular, e o mesmo algoritmo (por exemplo, o cálculo de histograma) está implementado separadamente para cada estrutura de dados.
Página seguinte ![]() |
|
|