Vous êtes sur la page 1sur 14

Informtica

Mecanismos de Reutilizao em Sistemas de Informao


Reuse Mechanisms in Information Systems
Jugurta Lisboa Filho Cirano Iochpe

Resumo A idia da reutilizao, que inerente ao desenvolvimento de sistemas computacionais, pode implicar no aumento de produtividade e qualidade em todas as etapas do desenvolvimento de software. Este artigo tem como objetivo identificar os principais mecanismos de reutilizao aplicados nas etapas iniciais do processo de desenvolvimento de sistemas de informao (early reuse). Inicialmente so descritas algumas pesquisas sobre reutilizao de especificao de requisitos desenvolvidas, principalmente, no incio da dcada de 90. Em seguida so descritos novos mecanismos surgidos para auxiliar na reutilizao de projetos orientados a objetos como padres (patterns), com nfase nos padres de anlise e frameworks. O estudo tambm descreve os mecanismos atuais de apoio reutilizao na rea de Sistemas de Informao Geogrfica (SIG). Palavras-chave: Reutilizao, Padres de anlise, Framework, SIG. Abstract The idea of reuse that is inherent to the computation system development can result in productivity and quality increase, in all the software development phases. This paper identifies and presents the mainly reuse mechanisms that may be applied in the early stage of the information system development. Researches about requirement analysis that were developed in the 90s are described. After that, new mechanisms that support reuse in object-oriented software design are investigated. It includes design and analysis patterns as well as frameworks. The paper also describes current mechanisms that support the reuse in Geographic Information Systems (GIS). Key words: Reuse, Analysis Patterns, Framework, GIS. Jugurta Lisboa Filho Professor Assistente Universidade Federal de Viosa, do Departamento de Informtica Campus Universitrio. 36571-000, Viosa, MG, Brasil. Fone/Fax: (31) 891-2397 E-mail: jugurta@dpi.ufv.br Cirano Iochpe Professor Adjunto da Universidade Federal do Rio Grande do Sul - Instituto de Informtica. Caixa Postal 15064 -91501-970, Porto Alegre, RS, Brasil. Fone: (51) 316-6820 Fax: (51) 3191576. E-mail: iochpe@inf.ufrgs.br
Acta Scientiae ACTA SCIENTIAE

Canoas

v.1

n.2

p. 39 - 51

jul./dez. 1999 39

1. Introduo
A idia da reutilizao inerente ao desenvolvimento de sistemas computacionais. Durante as dcadas de 60 e 70, a idia de reutilizao centrava-se, basicamente, na reutilizao de cdigos de programas (ou subprogramas). Bibliotecas de funes, escritas em diversas linguagens de programao, foram criadas e disponibilizadas para que pudessem ser reutilizadas. A busca por mecanismos voltados a facilitar a reutilizao de software teve como resultado uma srie de eventos cientficos dedicados ao tema. Em 1983 ocorreu o primeiro grande congresso na rea, o Workshop on Reusability in Programming (Perlis, 1983 Apud [NEI94]). Como um dos principais instrumentos de aumento da produtividade dos programadores e da qualidade dos sistemas desenvolvidos, a idia de reutilizao sempre esteve associada criao de mecanismos que possibilitem a administrao da complexidade dos sistemas. Por exemplo, o conceito de Tipo Abstrato de Dados (TAD) foi desenvolvido para possibilitar que estruturas de dados pudessem ser reutilizadas [EMB87]. Para usar um TAD, o programador necessita conhecer apenas a interface e a funcionalidade de cada um dos subprogramas disponveis. Outro exemplo de instrumento voltado reutilizao o paradigma da orientao a objetos que tem, como um de seus princpios fundamentais, possibilitar a reutilizao de classes existentes atravs de mecanismos como especializao e polimorfismo. Atualmente, na rea de Engenharia de Software, pesquisas sobre reutilizao exploram conceitos como framework e padres [COL96]. Em cada uma das fases do ciclo de vida de um sistema, existe a possibilidade de se reutilizar resultados obtidos anteriormente. Um exemplo que pode-se citar o emprego de bibliotecas de funes de interface homemmquina, durante a fase de codificao dos programas. O objetivo deste artigo revisar alguns dos principais instrumentos que podem ser aplicados nas tarefas desenvolvidas nas fases iniciais do ciclo de vida. O restante do artigo est organizado como segue. A Seo 2 apresenta os principais avanos obtidos pela pesquisa em reutilizao de especificao de requisitos. Na Seo 3 des40

crito o conceito de padres e relacionados diversos tipos de padres existentes. A Seo 4 descreve a tcnica de reutilizao baseada em frameworks. A Seo 5 descreve as abordagens de reutilizao existentes na rea de Sistemas de Informao Geogrfica (SIG). Por ltimo, a Seo 6 apresenta comentrios, deficincias e vantagens das tcnicas apresentadas.

2. Reutilizao de Especificao de Requisitos


Nesta seo so apresentados alguns resultados de pesquisas sobre reutilizao no campo da Engenharia de Software, pesquisas estas desenvolvidas at meados da dcada de 90. Segundo Neighbors [NEI94], no processo de desenvolvimento de software, quanto mais cedo forem identificados e criados recursos reutilizveis, maior ser o impacto da reutilizao nas fases posteriores. Portanto, a reutilizao de modelos durante a especificao de requisitos o primeiro momento em que o projetista pode empregar algum tipo de recurso reutilizvel, isto , qualquer recurso existente que possa ser til na construo de um sistema computacional. Para Edelweiss [EDE94], o uso de abordagens de reutilizao durante a fase de especificao de requisitos apresenta as seguintes vantagens: reduo do custo do desenvolvimento da especificao; reduo do custo de verificao e validao da especificao; aumento da produtividade no desenvolvimento de especificaes; aumento da qualidade das especificaes; padronizao de especificaes; facilidade de comunicao entre equipes que utilizam a mesma biblioteca. Zirbes [ZIR95] demostrou, atravs de experimentos realizados com diferentes tcnicas de anlise de requisitos, que a modelagem baseada na reutilizao de especificaes de sistemas anlogos, produz resultados mais completos e corretos do que a modelagem sem o apoio da reutilizao sistemtica. Os resultados da experincia desenvolvida por Zirbes mostram que os ganhos obtidos com o empreActa Scientiae

go da reutilizao no esto apenas em ganhos de qualidade, mas tambm em produtividade onde, embora o tempo de desenvolvimento medido durante o experimento no tenha apresentado um ganho muito significativo, o tempo total dedicado ao sistema reduzido por diversos fatores indiretos, dentre eles, a reduo no tempo de conhecimento do domnio e do tempo de manuteno, decorrentes de projetos de melhor qualidade. Os objetivos da pesquisa sobre reutilizao so reunir, organizar e facilitar o acesso a todo o conhecimento sobre o desenvolvimento de software em um determinado domnio [ZIR95]. Desta forma, um fator fundamental em qualquer abordagem baseada em reutilizao a existncia de um conjunto de recursos que possam ser reutilizados. Com isto, pressupe-se a existncia de um repositrio (biblioteca) para disponibilizar esses recursos. Dois dos principais problemas que surgem na abordagem de reutilizao, so: (1) a escolha de um mtodo para classificao e organizao dos recursos disponveis; (2) a existncia de mecanismos que auxiliem o projetista a localizar os possveis recursos reutilizveis em seu projeto.

Uma forma simples de se organizar uma biblioteca de recursos reutilizveis por meio de domnios. Um domnio, no contexto da Engenharia de Software, engloba um conjunto de aplicaes caracterizadas por um conjunto comum de dados e objetivos relacionados [PET91]. A descrio do recurso reutilizvel, adicionada s informaes auxiliares para localiz-lo e manipul-lo, constituem a infraestrutura bsica para o processo de reutilizao. Portanto, o processo de desenvolvimento de software com base em reutilizao deve considerar algumas etapas adicionais, capazes de manter e consultar a infra-estrutura de recursos disponveis. Segundo Zirbes [ZIR95], o processo de reutilizao constituise das seguintes etapas (Figura 1): construo da biblioteca de recursos: esta atividade inclui a identificao, escolha, classificao e armazenamento dos recursos reutilizveis; reutilizao dos recursos da biblioteca: esta atividade inclui a busca, seleo e adaptao dos recursos utilizveis, de acordo com as necessidades do software sendo desenvolvido.

Objetos reutilizveis
decomposio / abstrao

Objeto reutilizvel (genrico)

classificao

Biblioteca de recursos reutilizveis

seleo

Objeto reutilizvel (genrico)


especializao / adaptao

Objeto reutilizvel (especfico)


composio

APLICAO

Construo da biblioteca de recursos

Reutilizao dos recursos da biblioteca

FIGURA 1 - Processo de reutilizao de software O processo de seleo de recursos reutilizveis torna-se cada vez mais complexo, medida em que a biblioteca aumenta de tamanho. Assim, necessrio o uso de mtodos que auxiliem a localizao de recursos reutilizveis. Um deles, o mtodo de seleo
Acta Scientiae

por analogia, foi desenvolvido por Maiden em sua tese de doutorado [MAI92]. O processo de reutilizao usando analogia possui duas etapas. Na primeira etapa identificado um conjunto de domnios abstratos representando famlias de sistemas com caractersticas afins.
41

Na segunda etapa aplicado o raciocnio por analogia para reconhecer a semelhana entre o problema a ser definido e os domnios existentes, compreender esta semelhana e ento, transferir o conhecimento sobre o domnio. Alm do mtodo de seleo por analogia, uma srie de outros mtodos que auxiliam a localizao de recursos reutilizveis so descritos na literatura [GIR90]. Alguns destes mtodos utilizam tcnicas de inteligncia artificial para auxiliar o projetista a identificar e selecionar recursos reutilizveis nos sistemas sendo desenvolvidos (Wood, 1988 Apud [PIM98]). Ferramentas automatizadas so utilizadas para dar apoio ao uso desses mtodos. Entre elas pode-se citar: o sistema Catalog [FRA87] que permite classificar recursos reutilizveis atravs do mtodo de classificao de software baseado em vocabulrio livre; o sistema ROSA - Retrieval Of Software Artifacts [GIR96] prope a classificao e recuperao automtica baseada em vocabulrio extrado de textos escritos em linguagem natural; a ferramenta CART - Computer-Aided Reuse Tool [LIA93] utiliza um mtodo de classificao baseado em facetas, isto , grupos de classes elementares formando um esquema, para organizar uma biblioteca de software orientado a objetos. Devido ao uso crescente do paradigma de orientao a objetos no desenvolvimento de software, novos instrumentos de reutilizao tm sido propostos na literatura. As sees seguintes apresentam as tendncias atuais em termos de abordagens de reutilizao.

3. Padres
A abordagem de padres1 ainda uma idia muito recente no campo da Cincia da Computao. Desta forma, no existe um consenso sobre uma definio para o termo padro neste contexto. Segundo Gamma [GAM94], o uso de padres est diretamente relacionado com a idia de reuso em Engenharia de Software e teve origem no trabalho do arquiteto Christopher Alexander que, em [ALE77], definiu: Cada padro descreve um problema que ocorre diversas vezes em nosso
1

ambiente e, ento, descreve a soluo desse problema de tal forma que voc a reutilize milhares de vezes sem ter que fazer a mesma coisa duas vezes (pag.x). As idias de Alexander deram origem ao desenvolvimento de pesquisas sobre padres de projeto que, posteriormente, foram estendidas para diversos outros tipos de padres. A abordagem de padres comeou a ser conhecida aps a publicao do livro Design patterns: elements of reusable object-oriented software [GAM94], que apresenta um catlogo de solues para problemas recorrentes em projeto de sistemas orientados a objetos. Neste livro, Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides, que se tornaram conhecidos como a gang dos quatro (gang of four ou GoF), definem: Um padro apresenta a essncia de uma soluo para um problema recorrente, em um contexto especfico (pag. 2-3). Esta definio compreende as idias fundamentais de um padro. A expresso uma soluo para um problema significa que cada padro identifica um problema e apresenta uma soluo para ele. O termo essncia de uma soluo significa que somente os elementos essenciais so descritos, deixando os aspectos especficos para serem detalhados pelo projetista, dado que aspectos especficos normalmente no so reutilizados. O termo problema recorrente significa que os padres devem ser descritos para problemas que j ocorreram diversas vezes e iro ocorrer novamente. Por ltimo, em um contexto especfico significa que a soluo completa vlida para um contexto particular. Buschmann [BUS96], classifica os padres em trs categorias: padres de arquitetura; padres de projeto; e idiomas (tambm conhecido por padres de implementao [PRE95]). As duas primeiras categorias incluem os padres relacionados com a fase de projeto do sistema, mas so aplicadas em problemas de diferentes escalas. Os padres de projeto so mais abstratos (e menores) do que os padres de arquitetura, enquanto que idiomas so padres escritos em alguma linguagem de programao.

Do ingls Pattern. Acta Scientiae

42

Uma quarta categoria de padres, introduzida por Fowler [FOW96], inclui os padres de anlise. Estes padres so usados para descrever solues empregadas durante as fases de anlise de requisitos e modelagem conceitual dos dados. Os padres de anlise refletem estruturas conceituais representativas do domnio da aplicao e no solues computacionais. Fowler [FOW97] define um padro de anlise como: Uma idia que se provou til em um contexto prtico e que, provavelmente, ser til em outras situaes similares (pag xv). A maioria dos padres de anlise publicados at o momento foram projetados, principalmente, para solucionar problemas de aplicaes comerciais [COA97, FOW97, HAY95]. No entanto, a idia de padres de anlise pode ser usada para aumentar a qualidade e a produtividade no desenvolvimento de aplicaes no-convencionais como, por exemplo, as aplicaes de SIG. Por exemplo, os padres de anlise podem ser usados para documentar como os projetistas de um determinado domnio de aplicao modelam fenmenos geogrficos e seus relacionamentos. Padres de projeto podem ser usados para documentar como os dados sobre o relevo de uma regio so representados atravs de um Modelo Numrico de Terreno (MNT). Por ltimo, idiomas podem definir como um MNT deve ser implementado em cada software de SIG especfico. As subsees seguintes descrevem, em maiores detalhes, as caractersticas dos padres de anlise e de projeto.

3.1 Padres de Anlise


Devido abordagem de padres ter sido introduzida na rea de Engenharia de Software, por projetistas de sistemas orientados a objetos, a categoria de padres mais conhecida atualmente a dos padres de projeto. No entanto, diversas pesquisas vm sendo realizadas buscando-se padres que auxiliem projetistas de banco de dados a reutilizar solues para problemas de modelagem de dados [COA97, HAY95, FOW97]. Segundo Coad [COA92], as tcnicas tradicionais de reutilizao em anlise orientada a objetos baseiam-se nos mecanismos de herana. Assim, para reutilizar classes pr existenActa Scientiae

tes, o projetista necessita saber como localizar as classes adequadas a seu problema e derivar novas subclasses a partir dessas classes. Dessa forma, durante a modelagem de uma nova aplicao, cada classe funciona como um simples bloco reutilizvel. Um padro de anlise (ou padro conceitual, na terminologia de Riehle [RIE96]) descreve um conjunto de classes, possivelmente pertencentes a diferentes hierarquias de classes, e as associaes existentes entre elas. Padres de anlise podem ser vistos, portanto, como uma forma de descrever subesquemas de projetos mais complexos, os quais ocorrem com freqncia durante o processo de modelagem de muitas aplicaes. O uso de padres melhora, de forma significativa, o tempo de desenvolvimento de novas aplicaes, uma vez que a reutilizao ocorre atravs de subesquemas e no atravs de classes isoladas [HAY96]. Geralmente, um padro de anlise apresenta a soluo do problema de uma forma mais sugestiva do que prescritiva, fornecendo um modelo e a discusso do por que a soluo proposta desta forma, suas vantagens e desvantagens. Segundo Fowler [FOW96], a contribuio realmente importante de um padro no o modelo fornecido como soluo, mas sim, o raciocnio que est por trs desta soluo. Hay [HAY95] descreve um conjunto de padres de anlise, que ele batizou de padres de modelos de dados, que so solues de modelagem conceitual de dados para aplicaes comerciais. Para ilustrar um padro de anlise, a seguir mostrado o padro LocalizaesGeogrficas, extrado de [HAY95], com algumas adaptaes. O padro est descrito segundo a forma proposta por Coplien [COP95], sendo que os diagramas foram convertidos para a notao UML [BOO98]. 3.1.1 Exemplo de um Padro de Anlise NOME: Localizaes Geogrficas PROBLEMA: Descreve uma soluo alternativa para o problema da modelagem de endereos, sendo til tanto para pessoas, como para organizaes. CONTEXTO: O padro descreve uma alternativa de soluo para o problema da modelagem de endere43

os, servindo tanto para pessoas fsicas como para pessoas jurdicas. comum, em muitas situaes da vida real, um mesmo endereo estar associado a mais de uma pessoa (ou organizao) e vice-versa. Nestes casos, quando o endereo modelado simplesmente na forma de atributos, uma srie de problemas conhecidos podem ocorrer como, por exemplo, informao incompleta ou a inconsistncia do banco de dados. FORAS: Frequentemente necessrio ordenar/ selecionar endereos por bairros, cidades ou por outro tipo de diviso onde o endereo est localizado. Assim, cada local tem de estar em uma localizao geogrfica, o que significa que cada localizao geogrfica pode ser a localizao de um ou mais locais. Para emisso de etiquetas de endereamento, o endereo pode ser tratado
Endereo tipoEndereo textoEndereo * 1 LocalizaoGeogrfic a nome tipoLocGeo 1 *

como um nico objeto de informao. Se o propsito do endereo apenas para emisso de etiquetas, a escolha da abordagem de atributos pode ser considerada. SOLUO: A Figura2 mostra o diagrama de classes que compe o padro. A classe PESSOA uma generalizao das classes P E SSOA F SI C A e PESSOAJURDICA. A classe PESSOA possui uma associao LOCALIZA-SE (de cardinalidade m:n) com a classe ENDEREO. Esta associao pode incluir atributos como perodo e tipo de locao. A classe ENDEREO que deve conter os atributos que caracterizam o endereo de uma instncia de PESSOA. A classe LOCALIZAOGEOGRFICA usada para criar uma estrutura hierrquica de localizaes (ex.: Pas, Estado, Municpio, Bairro, etc), sendo que cada instncia de ENDEREO deve estar associada a uma instncia de LOCALIZAOGEOGRFICA.

Localiza-se

Pessoa * name

dataEntrada dataSada tipo PessoaJurdica * ramoAtiv PessoaFsica dataNasc sexo

FIGURA 2 - Padro de anlise LocalizaesGeogrficas

De acordo com Gerth [GER96], a notao grfica dos modelos de dados no so suficientes para a descrio dos padres. A notao grfica somente captura o resultado final da modelagem, representando-a na forma de um grafo de classes e associaes. A descrio de um padro, no entanto, deve tambm incluir a documentao das decises tomadas, escolhas feitas, alternativas identificadas e restries ao uso do padro. Segundo Hay [HAY95], um padro de anlise pode e deve ser customizado para situaes especficas. Por exemplo, o padro LocalizaesGeogrficas mostra uma situao (existem alternativas diferentes para a modelagem de informaes sobre endereo) na qual pode44

se observar que no existe o modelo totalmente correto, mas sim, o mais adequado para um problema em um determinado contexto. Outro ponto a ser observado que a definio de um padro pode estar associada ou incluir outros padres. Por exemplo, a generalizao da classe PESSOA uma soluo definida em outro padro (PARTY), descrito tanto em [HAY95], como em [FOW97]. Por sua vez, o padro Localizaes Geogrficas poder ser reutilizado no projeto de outros padres mais abrangentes.

3.2 Padres de Projeto


Da mesma forma, como no existe uma fronteira distinta, entre as atividades desenvolvidas durante as fases de anlise e de projeActa Scientiae

to do processo de desenvolvimento de software, torna-se difcil definir, exatamente, as diferenas entre os padres de anlise e os padres de projeto. O objetivo desta Seo no apresentar em detalhes as caractersticas dos padres de projeto, mas sim, o de evidenciar as principais diferenas entre um padro de projeto e um padro de anlise. So elas: Um padro de anlise um padro cuja forma descrita atravs de termos e conceitos pertencentes ao domnio da aplicao. J, a forma de um padro de projeto descrita atravs de construtores genricos de projeto de software (ex.: objeto, agregao) [RIE96]. Padres de anlise no so escritos para servirem a um propsito geral. importante encontrar o equilbrio entre obter um padro muito abstrato e um padro muito especializado. Por exemplo, apresentar como soluo para o problema de rede de transportes, que seus componentes podem ser modelados atravs de elementos do tipo conexo e ligao, em uma estrutura de rede apresentar a soluo de forma altamente abstrata, no auxiliando muito o projetista. No entanto, se o padro de anlise identifica os principais tipos de componentes de uma rede de transporte e como estes componentes podem (ou no) se relacionar, este padro torna-se realmente til para ser reutilizado. Um padro de projeto descreve a

estrutura e as dinmicas de seus componentes, esclarecendo suas responsabilidades. Assim, os padres de projeto podem ser vistos como complementares aos padres de anlise. Ao contrrio dos padres de anlise, os padres de projeto existentes so apresentados de forma bem estruturada e organizados separadamente em catlogos. Por exemplo, os padres de Gamma [GAM94] apresentam quatro elementos essenciais: nome do padro, o problema, a soluo e as conseqncias. No entanto, outros itens de descrio podem ser adicionados como motivao, participantes, sinnimos e outros padres relacionados. A classificao dos padres de Gamma feita segundo dois critrios ortogonais: (1) Propsito, incluindo se o padro est relacionado com o processo de criao de objetos, com a composio de classes ou com as interaes comportamentais dos objetos; (2) Escopo, indicando se o padro se aplica a classes ou a objetos. Os padres de anlise, por sua vez, so apresentados de forma mais explicativa, apresentando solues alternativas, vantagens e desvantagens de cada um. A Figura 3 ilustra o diagrama de classes do padro de projeto Composite [GAM94] e a Figura 4 mostra um exemplo de uso desse padro no diagrama de classes do framework conceitual GeoFrame [LIS99].

Client

Component Operation() Add(Component) Remove(Component) GetChild(int)

children Leaf Operation() Composite Operation() Add(Component) Remove(Component) GetChild(int)


forall g in children g.Operation();

Acta Scientiae

45

Representao

* ObjetoEspacial

2..*

Ponto

Linha

Polgono

Clula

ObjEspComplexo

FIGURA 4 - Exemplo de uso do padro de projeto Composite

4. Frameworks
O uso de frameworks2 caracteriza uma tcnica de reutilizao de software orientado a objetos [JOH97]. Segundo Pree [PRE94], framework constitui um avano real em termos de reutilizao de software, uma vez que a reutilizao ocorre no apenas a partir de pequenos blocos de programas, mas sim de todo um sistema (ou parte de um sistema), incluindo a reutilizao do projeto. Souza [SOU98] define um framework como: Um projeto genrico em um domnio que pode ser adaptado a aplicaes especficas, servindo como um molde para a construo de aplicaes. Esta definio fornece uma viso bem mais abrangente sobre a potencialidade de um framework do que as definies apresentadas pelos autores mais ligados programao orientada a objetos. Por exemplo, Wirfs-Brock e Johnson definem framework como sendo: Um esqueleto de implementao de uma aplicao ou de um subsistema de aplicao, em um domnio de problema particular [WIR90]. Um projeto reutilizvel de um programa ou parte de um programa, expresso como um conjunto de classes [JOH92]. Como um instrumento de reutilizao, um framework no necessita estar implementado em uma linguagem de programao para fornecer a soluo parcial a uma famlia de pro-

blemas. A vantagem de se ter o framework parcialmente implementado que a soluo final est bem mais prxima de ser atingida pelo desenvolvedor da nova aplicao. No entanto, o framework fica restrito a uma linguagem de programao especfica ou necessita ser fornecido em diversas outras linguagens. Uma das principais caractersticas de um framework que o fluxo de controle entre o framework e sua aplicao cliente invertido. Normalmente, quando uma biblioteca de classes utilizada, o controle das chamadas s rotinas disponveis feito pelo programa que est utilizando a biblioteca. No caso de um framework, os mtodos desenvolvidos para a aplicao que so chamados pelos mtodos do framework. Isto evidencia que, alm de reutilizar todo um conjunto de classes, o conhecimento sobre o projeto do software tambm reutilizado. Padres de projeto podem ser usados tanto na construo como na documentao de frameworks [JOH92, MEU97]. Um simples framework pode ser construdo a partir de diversos padres de projeto (tambm chamados de micro arquiteturas). Outra forma de distinguir padres de projeto e frameworks que, enquanto um framework pode ser apresentado como um software inacabado, os padres representam o conhecimento sobre como o software foi desenvolvido. Alm disso, a complexidade dos problemas a serem resolvidos pelos frameworks so bem maiores do que os problemas resolvidos pelos

2 O termo framework no ser traduzido, neste texto, devido a seu uso freqente pela comunidade de Engenharia de Software no Brasil. Uma possvel traduo para framework arcabouo. 46 Acta Scientiae

padres. Consequentemente, a construo de um framework um processo bem mais complexo do que a definio de um padro. Silva [SIL96] descreve e compara uma srie de mtodos para construo de frameworks. Um framework composto por um conjunto de classes, muitas das quais abstratas, ou seja, no possuem instncias. As classes de um framework podem ser classificadas como pontos fixos, isto , no podem ser alteradas, ou como pontos adaptveis, onde so feitas as mudanas e extenses necessrias aplicao. Segundo Quadros [QUA97], os pontos fixos determinam a arquitetura da aplicao, definindo sua estrutura geral, as responsabilidades e colaboraes entre as classes e o fluxo de controle do framework, no podendo ser alterados pelo projetista da aplicao. De acordo como as aplicaes so derivadas a partir de um framework, este pode ser classificado em caixa-preta ou caixa-branca. Os pontos adaptveis de um framework caixa-branca fornecem classes incompletas, as quais devem ser estendidas com as especificidades da aplicao. Um framework caixa-preta fornece um conjunto de classes alternativas para cada ponto adaptvel. Neste caso o projetista deve escolher uma das alternativas disponveis, mas no pode alterar suas propriedades. Um framework caixa-branca requer que o projetista tenha um maior conhecimento sobre o funcionamento do framework, enquanto que um framework caixapreta requer do projetista um maior conhecimento sobre o domnio da aplicao. As trs abordagens de reutilizao apresentadas at aqui (de especificao de requisitos, de padres e frameworks) podem ser empregadas no desenvolvimento de aplicaes em geral. A seo seguinte discute as caractersticas das abordagens de reutilizao existentes atualmente na rea de SIG.

5. Abordagens de Reutilizao em SIG


Na rea de Sistemas de Informao Geogrfica (SIG) o conceito de reutilizao tem sido aplicado, basicamente, no compartilhamento de dados. Observa-se, atualmente, um rpido
3 Do ingls standard. Acta Scientiae

crescimento da demanda por dados geoespaciais digitais [WEB98]. Por sua vez, a todo momento, muitos dados geoespaciais esto sendo produzidos, tanto por instituies governamentais como por instituies privadas. Dados geoespaciais, neste caso, incluem os mais variados tipos de colees de dados georreferenciados como, por exemplo, imagens de satlite, fotografias areas, amostragem geolgica, observaes biolgicas, dados de redes de infra-estrutura e dados censitrios. A coleta de dados primrios, ou seja, dados usados na produo de outros dados, tanto para aplicaes ambientais como para aplicaes urbanas, uma tarefa de custo muito elevado. Com o objetivo de reduzir estes custos, as instituies necessitam de mecanismos eficientes para facilitar a reutilizao de dados j existentes, visto que muitos conjuntos de dados georreferenciados podem atender a diversas aplicaes de SIG, implementadas em instituies diversas. Alm da reutilizao de dados, algumas pesquisas sobre mecanismos de reutilizao de modelagem de processos espaciais tm sido realizadas [MAR97, MAR98]. Segundo Marr [MAR97], modelagem do processo espacial o procedimento de delinear como os dados geogrficos devem ser manipulados a fim de se obter resultados desejados. Com relao a reutilizao de projeto de banco de dados geogrficos, porm, muito pouco foi feito at o momento [LIS98]. Alguns padres3 de metadados prevem a documentao sobre informaes semnticas associadas aos dados, mas com o intuito de facilitar o entendimento dos dados a serem reutilizados. Metadados so dados sobre dados [ISO97]. A existncia de conjuntos de dados geoespaciais documentada atravs de conjuntos de metadados. O termo metadados geoespaciais usado para especificar metadados referentes a conjuntos de dados georreferenciados [SHE95]. A importncia dos metadados geoespaciais reside no fato de possibilitarem ao usurio avaliar o grau com que os dados satisfazem s necessidades de uma determinada aplicao. A informao prestada pelos metadados prov uma substancial economia de recursos na pesquisa e busca de dados existentes bem como no monitoramento, controle e aquisio dos mesmos. Metadados expressam informaes

47

sobre o contedo, a qualidade, a atualidade e outras caractersticas dos dados [WEB98]. Para facilitar a busca e o acesso a conjuntos de dados existentes, alguns pases esto especificando e institucionalizando padres para a descrio uniforme dos metadados. Os padres de metadados estabelecem categorias e elementos a serem contemplados para descrever adequadamente os dados. Entre os padres de metadados mais conhecidos, pode-se citar: o padro americano CSDGM [FED97], o padro canadense SAIF [BRI95], o padro CEN-TC287 da comunidade europia [CEN96] e o padro australiano ANZLIC [ANZ97]. Estes padres estabelecem uma terminologia comum aos fenmenos espaciais, classes de dados e seus modelos de informao, alm de regras para produo de metadados. A efetiva reutilizao de dados geoespaciais digitais depende de diversos fatores, entre eles pode-se citar a interoperabilidade dos dados e a vontade de compartilhamento dos dados entre as instituies (de forma comercial ou no). Para que um maior nmero possvel de usurios possa reutilizar dados geoespaciais existentes, necessrio que os catlogos de metadados estejam disponveis para consulta. Alguns padres j esto operacionais (ex.: CSDGM), dispondo inclusive de programas para cadastramento de metadados e esquemas para disponibilizar os metadados atravs da Internet [VIL99]. Uma vez elaborado um conjunto de metadados, necessrio torn-lo acessvel atravs de ferramentas de busca, o que vem suprir o primeiro objetivo dos metadados que a localizao dos dados. Conjuntos de dados geoespaciais so localizados atravs dos metadados. No entanto, estes dados no esto, necessariamente, disponveis para serem obtidos automaticamente (ex.: download via ftp). Pode-se, por exemplo, localizar um conjunto de dados para uma determinada regio geogrfica de interesse. Atravs dos metadados de qualidade, avalia-se a adequabilidade desse conjunto para o uso planejado. Por ltimo, pode ser necessrio, caso o dado no esteja disponvel, fazer o contato direto com o fornecedor do dado a fim de obt-lo.

6. Concluses
As abordagens de reutilizao em sistemas de informao, embora apresentem diversas
48

vantagens quando realmente aplicadas no desenvolvimento de sistemas, na prtica no tm sido muito utilizadas. Alguns fatores podem justificar o pouco uso desses instrumentos: ausncia de uma metodologia de projeto de sistemas que induza o projetista a buscar por possveis recursos reutilizveis; baixa disponibilidade de recursos reutilizveis; dificuldade de localizao dos recursos reutilizveis existentes. Inexistncia de um mecanismo de apoio a busca dos recursos existentes; falta de cultura de trabalho em cooperao. mais fcil para o projetista procurar recursos disponveis para serem reutilizados do que disponibilizar seus prprios recursos para outros projetistas. A abordagem de padres (pattern) ainda muito pouco conhecida. O projetista necessita, no entanto, estudar diversos padres e exemplos de utilizao para que possa identificar possveis aplicaes desses padres. O treinamento dos projetistas sobre o uso de padres pode ser compensado pelo ganho posterior em produtividade e qualidade dos sistemas desenvolvidos. Alm disso, uma vez treinado, o projetista estar apto a aplicar padres em diversos sistemas. Uma outra vantagem decorrente do uso de padres o da unificao de vocabulrio entre os diversos membros de uma equipe de desenvolvimento. Os problemas com o uso de frameworks so semelhantes aos encontrados no uso de padres, porm, em escala diferente. Devido a sua maior abrangncia, o uso de frameworks exige um conhecimento muito maior por parte do projetista, quando comparado ao uso de padres. O alto custo e a complexidade dos processos de aquisio de dados georreferenciados tornam a reutilizao de dados geoespaciais um fator de grande importncia. Toda aplicao de SIG utiliza-se de um conjunto de dados primrios (ex.: hidrografia, vegetao ou divisas municipais). Desta forma, os conjuntos de dados digitais referentes a esses dados primrios podem, na maioria das vezes, ser reutilizados por grupos de usurios trabalhando em aplicaes diversas sobre a mesma regio geogrfica. No Brasil, tm sido realizadas algumas iniciativas isoladas para disponibilizar dados
Acta Scientiae

georreferenciados. Por exemplo, o projeto GeoMinas (http://www.mg.gov.br/ geominas), onde pode-se obter dados primrios sobre o Estado de Minas Gerais. Um segundo exemplo o projeto do grupo de geoprocessamento da Companhia de Desenvolvimento do Planalto Central CODEPLAN (http://www.gdf.gov.br/ codeplan/geopro). Estas iniciativas apenas fornecem os conjuntos de dados que podem ser reutilizados, mas no fornecem nenhum mecanismo que auxilie a busca e localizao dos dados disponveis. Um sistema experimental de busca a metadados geoespaciais disponibilizado pelo Servio Geolgico do Brasil (CPRM) em (http://www.cprm.gov.br) [ALM99]. Estudos no sentido da adoo de um padro internacional para elaborao de metadados geoespaciais, no Brasil, tm sido realizados [RIB96, WEB98, ALM99]. No entanto, para adoo de um padro existente, ou mesmo para a definio de um padro nacional, necessrio o envolvimento de toda a comunidade de usurios e produtores de dados, o que deve ser feito sob a coordenao de algum rgo responsvel.

Referncias Bibliogrficas
[ALE77] ALEXANDER, C. et al. A Pattern Language . New York: Oxford University, 1977. [ALM99] ALMEIDA, L. F. B. Padro CPRMg para intercmbio de dados grficos digitais. In: GISBRASIL99 CONGRESSO E FEIRA PARA USURIOS DE GEOPROCESSAMENTO DA AMRICA LATINA, 5, 1999, Salvador. Anais... Salvador: Fator GIS, 1999. [ANZ97] ANZLIC THE AUSTRALIA NEW ZEALAND LAND INFORMATION COUNCIL. Core Metadata Elements for Land and Geographic Directories in Australia and New Zealand. 1997. Disponvel em <http://www.anzlic.org.au/ metaelem.htm>

[BOO98] BOOCH, G.; JACOBSON, I.; RUMBAUGH, J. The Unified Modeling Language User Guide. Addison-Wesley, 1998. [BUS96] BUSCHMANN, F. et al. PatternOriented Software Architecture : A System of Patterns. New York: John Wiley & Sons, 1996. [CEN96] CEN EUROPEAN COMMITTEE FOR STANDARDIZATION. Geographic Informa tion D ata Description La ngua ge Con ceptual Sche ma Language. Brussels: CEN, 1996. (Report CR 287005). [COA97] COAD, P. Ob ject Model s : Strategies, Patterns, and Applications. 2.ed. New Jersey: Yourdon Press, 1997. [COL96] COLEMAN, D. et al. ObjectOriented Development : the fusion method. New Jersey: Prentice-Hall, 1996. [COP95] COPLIEN, J. O. A generative development-process pattern language. In: COPLIEN J. O. and SCHMIDT D. (Eds.) Pattern Languages of Program Design, Reading: Addison-Wesley, 1995. [EDE94] EDELWEISS, N. Sistemas de Informao de Escritrios: um Modelo para Especificaes Temporais. Porto Alegre: CPGCC da UFRGS, 1994. Tese de Doutorado. [EMB87] EMBLEY, D. W.; WOODFIELD, S.N. A knowledge structure for reusing abstract data types. In: INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 9., 1987, Monterey. Proceedings... New York: IEEE Computer Society Press, 1987. [FED97] FEDERAL GEOGRAPHIC DATA COMMITTEE. Content Standard for Digital Geospatial Metadata. Washinton, D.C.: FGDC, 1997. Disponvel em <http:/ /www.fgdc.gov> [FOW96] FOWLER, M. Analysis patterns and business objects. ACM SIGPLAN Notices, New York, v.31, n.10, 1996. Trabalho apresentado na OOPSLA, 11., 1996, San Jose, US. [FOW97] FOWLER, M. Analysis Patterns: Reusable Object Models. Menlo Park, CA: Addison Wesley Longman, 1997. [FRA87] FRAKES, W. B. et al. Information retrieval and software reuse. In: ANNUAL INTERNATIONAL ACM SIGIR CONFERENCE
49

Acta Scientiae

ON RESEARCH AND DEVELOPMENT IN INFORMATION RETRIEVAL, 1989, Cambridge. Proceedings ... New York: ACM, 1989. [GAM94] GAMMA, E. et al. Design Patterns: Elements of Reusable Object-Oriented Software. Reading, MA: Addison Wesley, 1994. [GER96] GERTH, Th.; SCHACHTSCHABEL, R.; SCHNEFELD, R. Using patterns in design and documentation of software. In: THE WHITE OO NIGHTS -WOON, 1996, St. Petersburg, Russia. Procee dings .. . St.Petersburg: [s.n.], 1997. [GIR90] GIRARDI, M. R. Uma ferramenta de apoio reutilizao de software no desenvolvimento orientado a objetos. Porto Alegre: CPGCC da UFRGS, 1990. Dissertao de Mestrado. [GIR96] GIRARDI, M. R. Classification and re trie val of software and the ir description in natural language. Genve: Universit de Genve, 1996. PhD Thesis. [HAY95] HAY, D. C. Data Model Patterns: Conventions of Thought. New York: Dorset House Publishing, 1995. [HAY96] HAY, D. C. Using data model patterns for rapid application development. In: INTERNATIONAL ORACLE USER WEEK , 1996. Proceedings... [S.l.]: Oracle, 1996. [ISO97] ISO/TC211 TERMINOLOGY PROJECT TEAM. Collection s of terms a nd definitions from ISO/TC211 geographic information/geomatics. Disponvel em <http://www.statkart.no/isotc211/terms/ terms211.html> [JOH92] JOHNSON, R. E. Documenting frameworks using patterns. In: OBJECTORIENTED PROGRAMMING SYSTEMS, L ANGUAGES AND APPLICATIONS CONFERENCE - OOPSLA, 1992, Vancouver. Proceedings ... Vancouver: ACM, 1992. [JOH92] JOHNSON, R. E. Documenting frameworks using patterns. In: OBJECTORIENTED PROGRAMMING SYSTEMS, L ANGUAGES AND APPLICATIONS CONFERENCE - OOPSLA, 1992, Vancouver. Proceedings... Vancouver: ACM, 1992. [JOH97] JOHNSON, R. E. Components, Frameworks, Patterns., [S.l.:s.n], 1997. White paper
50

[LIA93] LIAO, H. C. et al. Software reuse based on a large object oriented library. Software Engineering Notes, New York, v.18, n.1, p.74-80, 1993. [LIS98] LISBOA F., J.; IOCHPE, C.; BEARD, K. Applying Analysis Patterns in the GIS Domain. In: ANNUAL COLLOQUIUM OF THE SPATIAL INFORMATION RESEARCH CENTRE, 10., 1998, Dunedin, NZ. Proceedings... Dunedin: SIRC, University of Otago, 1998. [LIS99] LISBOA F., J.; IOCHPE, C. Specifying analysis patterns for geographic databases on the basis of a conceptual framework. In: ACM SYMPOSIUM ON ADVANCES IN GEOGRAPHIC INFORMATION SYSTEMS, 7., 1999, K ansas City, USA. Proceedings... Kansas City: ACM, 1999. [MAI92] MAIDEN, N. A. An alogical specification reuse during requirements analysis. London: Department of Business Computing, City University, School of Informatics, 1992. PhD Thesis. [MAR97] MARR, A. J.; PASCOE, R. T.; BENWELL, G. Interoperable GIS and spatial process modelling. In: GEOCOMPUTATION, 2., 1997, Dunedin, New Zealand. Proceedings... Dunedin: University of Otago, 1997. [MAR98] MARR, A. J. et al. Towards the development of a documentation structure for modelling spatial process. In: GEOCOMPUTATION, 3., 1998, Bristol-UK. Proceedings ... Bristol: University of Bristol, 1998. [MEU97] MEUSEL, M.; CZARNECKI, K.; KPF, W. A model for str ucturing user documentation of object-oriented framework using patterns and hypertext. In: EUROPEAN CONFERENCE ON OBJECTORIENTED PROGRAMMING ECOOP, 1997, Finland. Proceedings... Finland: Springer-Verlag, 1997. (Lecture Notes in Computer Science, v.1241) [NEI94] NEIGHBORS, J. M. An assessment of reuse technology after ten years. In: INTERNATIONAL CONFERENCE ON SOFTWARE REUSE, 3., 1994, Rio de Janeiro. Proceedings... Los Alamitos, California: IEEE Computer Society Press, 1994. 235p. p.6-13. [PET91] PETTERSON, A. S. Model-based software reuse terminology. Software
Acta Scientiae

Engineering Notes, New York, v.16, n.2, p.45-51, 1991. [PIM98] PIMENTA, A. Especificao formal de uma ferramenta de reutilizao de especificaes de requisitos. Porto Alegre: CPGCC da UFRGS, 1998. Dissertao de Mestrado. [PRE94] PREE, W. Meta patterns - a means for capturing the essentials of reusable object-oriented design. In: EUROPEAN CONFERENCE ON OBJECT-ORIENTED PROGRAMMING ECOOP, 1994. Proceedings... Berlim: Sringer Verlag, 1994. [PRE95] PREE, W. Design Patterns for Object-Oriented Software Development. Reading, MA: Addison-Wesley, 1995. [QUA97] QUADROS, E. M.; RUBIRA, C. M. F. Construo de um framework para sistemas controladores de trens utilizando padres de projeto e metapadres. In: SIMPSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE, 11., 1997, Fortaleza. Anais... Fortaleza: SBC, 1997. [RIB96] RIBEIRO, G. P.; SOUZA, J. M.; FREITAS, A. L. B. Digital geospatial metadata: a brazilian case federal databases. In: IEEE METADATA CONFERENCE, 1., 1996, Maryland. Proceedings... Maryland: IEEE, 1996. [RIE96] RIEHLE, D.; ZLLIGHOVEN, H. Understanding and using patterns in software development. Theory and Practice of Object Systems, [S.l.], v.2, n.1, 1996. [SHE 95] SHELLEY, E. P.; JOHNSON, B. D. Metadata: concepts and models. In: NATIONAL CONFERENCE ON THE MANAGEMENT OF GEOSCIENCE

INFORMATION AND DATA, 3, 1995, Adelaide, Australia. Procee dings .. . Adelaide: [s.n.], 1995. [SIL96] SILVA, R. P .; PRICE, R. T. Em direo a uma metodologia para o desenvolvimento de frameworks de aplicao orientados a objetos. In: SIMPSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE, 10., 1996, So Carlos. Anais... So Carlos: SBC, 1996. [SOU98] SOUZA, C. R. B. Um framework para editores de diagramas cooperativos baseados em anotaes. Campinas: Unicamp, 1998. Dissertao de Mestrado. [VIL99] VILLAVICENCIO, F.; IOCHPE, C; LISBOA F., J. Um servidor de consultas clearinghouse em portugus para distribuio de metadados geogrficos. In: GISBRASIL99 CONGRESSO E FEIRA PARA USURIOS DE GEOPROCESSAMENTO DA AMRICA LATINA, 5, 1999, Salvador. Anais... Salvador: Fator GIS, 1999. [WEB98] WEBER, E. J.; LISBOA F., J.; IOCHPE, C.; HASENACK, H. Geospatial metadata in Brazil: an experience in data documentation of an environmental GIS application. In: INT. CONFERENCE & EXHIBITION ON GEOGRAPHIC INFORMATION - GIS Planet, 1998, Lisbon, Portugal. Proceedings... Lisbon: USIG,1998. [WIR90] WIRFS-BROCK, R.; JOHNSON, R. E. Surveying current research in objectoriented design. Communication of the ACM, New York, v.33, n.9, 1990. [ZIR95] ZIRBES, S. F. A reutilizao de modelos de requisitos de sistemas por analogia: experimentao e concluses. Porto Alegre: CPGCC da UFRGS, 1995. Tese de Doutorado.

Acta Scientiae

51

Vous aimerez peut-être aussi