You are on page 1of 6

XV Simpsio Brasileiro de Engenharia de Software

UMA FERRAMENTA DE APOIO AO DESENVOLVIMENTO DE SOFTWARE BASEADO EM COMPONENTES


Moiss Pfaffenseller
moises@logycware.com.br Universidade de Sta. Cruz do Sul Av. Independncia, 2293 Sta. Cruz do Sul/RS - 96815.290

Matheus Pfaffenseller
matheus@logycware.com.br Universidade de Sta. Cruz do Sul Av. Independncia, 2293 Sta. Cruz do Sul/RS - 96815.290

Eduardo Kroth
kroth@dinf.unisc.br Universidade de Sta. Cruz do Sul Av. Independncia, 2293 Sta. Cruz do Sul/RS - 96815.290

RESUMO
A programao orientada a objetos e as novas geraes de linguagens para desenvolvimento propiciam um alto grau de modularizao e grande flexibilidade, destacando-se conceitos como componentes e reuso de software. Contudo, observa-se que estas ferramentas de modelagem de dados e de processos no possuem uma tcnica especfica para o gerenciamento de componentes, cuja utilizao tende a agilizar o processo de construo de software, uma vez que propicia tcnicas seguras de trabalho em grupo para o desenvolvimento de software baseado em componentes, com polticas de manuteno e ferramentas de auxlio ao reuso de software, facilitando tambm a visualizao de hierarquias entre as classes e suas caractersticas. O presente trabalho apresenta uma ferramenta que engloba estas funcionalidades, provendo aos usurios da tecnologia de componentes, um gerenciador capaz de suprir as principais deficincias desta tcnica de desenvolvimento. Palavras-chave: gerenciamento de componentes, polticas de manuteno, reuso de software, verses.

1. Introduo O desenvolvimento de software um processo intrinsecamente difcil e consumidor de recursos pessoais e financeiros. Como os sistemas tm se tornado cada vez maiores, h um grande trabalho a ser feito no sentido de buscar mecanismos para reduzir sua complexidade. Existem diversas ferramentas para modelagem de dados e de processos, e algumas de auxlio ao controle de verses de componentes e desenvolvimento de softwares em grupo. Contudo, observa-se que estas ferramentas apresentam uma falta de interoperabilidade entre si, e entre as linguagens de desenvolvimento, ou seja, no h nenhuma ferramenta que integre opes de modelagem, controle de verses, trabalho em grupo e polticas de manuteno com a abrangncia de novos conceitos, como componentes e reuso de software. O problema enfocado neste trabalho o gerenciamento de componentes, objetivando a organizao dos mesmos e conseqentemente a otimizao do processo de construo de software, propiciando tcnicas seguras para desenvolvimento de sistemas em grupos de trabalhos, com polticas de manuteno e ferramentas de auxlio ao reuso de software, facilitando tambm a visualizao de hierarquias entre classes de componentes, suas funes, caractersticas e fundamentaes de cada item. Baseando-se nestas necessidades, foi desenvolvida uma ferramenta de apoio ao desenvolvimento de software baseado em componentes, tendo como principais caractersticas:  implementar tcnicas de armazenamento e busca aprimorando o reuso;  apresentar a cadeia de dependncias entre componentes;  armazenar informaes sobre os componentes, como histrico de manutenes, funes e especificaes;  prover um gerenciamento de verses dos componentes;  definir polticas de manuteno, controlando os acessos aos componentes com nveis de permisses aos desenvolvedores.

- 428 -

XV Simpsio Brasileiro de Engenharia de Software

2. Repositrio de componentes O repositrio de componentes armazena algumas informaes tcnicas sobre os componentes, como: classes, hierarquia, mtodos, propriedades e eventos; e algumas analticas como: a funo do componente, qual o seu contexto, abrangncia, etc. Os desenvolvedores ligados ao repositrio tm acesso aos componentes e s suas informaes, permitindo a sua utilizao e mtodos para pesquisa de componentes, objetivando o seu reuso. 2.1 Informaes armazenadas no repositrio Para uma fcil visualizao da funcionalidade de cada componente, o repositrio contm algumas informaes, que alm de prover um eficiente mecanismo para indexao e recuperao de componentes, armazena dados importantes, que garantem uma boa manuteno dos mesmos [KRO99]. Caractersticas: Conforme [GAM95] fica evidenciado como as principais caractersticas acerca de componentes as seguintes especificaes: (i) contexto, procura dar uma idia geral do contexto em que se aplicam; (ii) problema, expe informaes sobre o problema que se prope a resolver; (iii) soluo, sintetiza a soluo implementada para o problema exposto; Informaes tcnicas: So informaes teis para manutenes e anlise dos componentes, como: nome, propriedades do arquivo, classificao, criador, etc. Informaes adicionais: informaes estruturais dos componentes como eventos, mtodos, e propriedades (atributos), alm de suas dependncias (relao dos arquivos utilizados). Palavras-chave: Um dos mtodos utilizados para a busca e recuperao de componentes a utilizao de palavras-chave associadas a cada componente.

Figura 1 Interface do software (propriedades do componente)

- 429 -

XV Simpsio Brasileiro de Engenharia de Software

Exemplo de utilizao: Para facilitar a compreenso das funcionalidades dos componentes por parte dos desenvolvedores, criou-se esta propriedade. Cdigo fonte: Para cada verso, atual ou obsoleta, do componente criada no repositrio, armazenam-se os respectivos arquivos do componente. Seu armazenamento se torna necessrio para que seja possvel a atualizao dos componentes nas mquinas dos desenvolvedores e tambm para que se possa restaurar verses antigas. Classificao de Componentes: Uma boa forma para organizar a base de pesquisa separar os componentes conforme o tipo de funes a que ele se destina. Dessa forma, baseada em um estudo sobre Patterns [MAR98], inicialmente pode-se identificar alguns padres como: componentes de estrutura, banco de dados, interface, para desenvolvimento distribudo e de domnio do problema. Contudo, para no restringir a classificao dos componentes s citadas acima, o sistema permite um cadastro de classificaes. 2.2 Representao da Hierarquia Outra funcionalidade oferecida pelo repositrio a representao dos componentes existentes, sua identificao e a exibio da sua cadeia hierrquica, atributos e funes. Uma m escolha da tcnica de diagramao inibe o raciocnio enquanto uma boa escolha agiliza o trabalho e melhora os resultados [MAR95]. Quando vrias pessoas trabalham no desenvolvimento de um sistema, uma tcnica de diagramao formal uma ferramenta essencial para a troca de informaes e idias entre os desenvolvedores.

Figura 2 Interface do software (representao hierrquica)

A diagramao do problema envolve a parte da estrutura hierrquica dos componentes e quais as propriedades, mtodos e eventos que esse componente est herdando do seu pai. Cada componente representado como um n da rvore e cada nvel da rvore como uma descendncia hierrquica de suas classes, conforme pode ser visualizado na figura 2.

- 430 -

XV Simpsio Brasileiro de Engenharia de Software

Um fator importante a ser citado a relao de dependncia que pode ocorrer entre os componentes, o que implica em demonstrar ao desenvolvedor quais os componentes que podem afetar o seu funcionamento, e tambm quais podem ser afetadas por utilizarem-no, prevenindo desta forma eventuais mudanas que afetem o funcionamento de um sistema. 3. Controle de verso Para conseguir trabalhar em uma equipe de desenvolvimento de aplicaes baseadas em componentes necessrio que se tenha um controle sobre as verses dos componentes. No utilizar um controle de verses ou ainda utilizar-se de forma incorreta, pode criar problemas que prejudiquem o cronograma do projeto e a qualidade do trabalho [HAV99]. Existem hoje no mercado diversas ferramentas que implementam o controle de verso, automatizando o processo de forma a agilizar e facilitar o trabalho do desenvolvedor. Dentre elas pode-se citar Borland TeamSource, Intersolv PVCS Version Manager, Microsoft Visual SourceSafe, Rational Clear Case e Concurrent Version System. Ao analisar as duas primeiras ferramentas, o PVCS e o TeamSource, pode-se verificar que so ferramentas com finalidades bastante genricas, tratando os dados em nvel de arquivos, sem a preocupao com qual a sua utilidade e suas ligaes. Neste trabalho implementou-se o controle de verses de uma forma mais direcionada ao estudo de componentes, proporcionando assim um enriquecimento da ferramenta para este objetivo especfico. 3.1 Modelos de gerenciamento do controle de verses De uma maneira geral, a atividade principal do controle de verses fica a cargo do trabalho em grupo. Visualizado este problema, verifica-se a necessidade de uma tcnica que vislumbre uma soluo adequada para o processo. Uma das dificuldades encontradas no controle de verses de componentes em comparao aos tradicionais, que num nico arquivo podem ser encontrados vrios componentes. A idia ento tratar todas as operaes relacionadas ao seu arquivo, como no caso de bloqueios (lock e unlock) 1 e atualizaes (check-in e check-out) 1. A contribuio para um bom funcionamento deste mtodo, que normalmente se encontram no mesmo arquivo, componentes que possuem referncias entre si.

Figura 3 Diagrama de estado do controle de verses

Os termos Lock, Unlock, Get, Check-in e Check-out foram extrados de [HAV99]

- 431 -

XV Simpsio Brasileiro de Engenharia de Software

3.2 Anlise do modelo proposto Analisando os modelos para controle de verses encontrados [INP99], conclui-se que o modelo serial mais vivel para o controle de verses de componentes, uma vez que ele proporciona uma maior segurana no gerenciamento das atualizaes dos componentes entre o repositrio e a cpia local do desenvolvedor. A operao de incluso de componentes no controle de verso feita atravs da indicao do arquivo onde est o cdigo fonte dos componentes, atravs deste so identificados as classes nele contidos, bem como suas propriedades, mtodos e eventos, entre outras informaes citadas na seo 2. Armazenada tambm a informao da localizao dos arquivos no disco local do desenvolvedor, para futuras atualizaes. A Figura 3 mostra o diagrama de estado do controle de verses adotado. Para atualizar a base de componentes local executa-se uma operao de Get, que busca as ltimas verses existentes no repositrio. Para modificar um componente, este deve ser bloqueado atravs da operao de lock, que marca o arquivo a que pertence o componente com o estado de em trabalho. A operao de get e lock pode ser simplificada atravs de outra, o check-out. Ao trmino do trabalho executada a operao de check-in, que atualiza o componente no repositrio, dando-lhe uma nova verso, ou mantm-se a mesma verso. 3.3 Propriedades das verses As verses de um mesmo componente esto ligadas atravs de um relacionamento de derivao linear. Cada verso criada como sucessora de outra, e esta considerada sua antecessora [NOR96]. Para cada verso tambm estabelecido um atributo de status, que identifica o seu estado, e partir do seu valor, quais operaes podero ser realizadas sobre este componente. As determinaes dos valores para o atributo status de cada verso foram identificadas como: em trabalho, estvel ou obsoleto. Um componente pode ser alterado freqentemente com um mesmo objetivo, o que acaba gerando muitas verses praticamente iguais, obtendo-se assim uma replicao de dados desnecessria. Para solucionar este problema foi implantado o conceito de Etiquetas, com o qual vrias alteraes so armazenadas em uma nica etiqueta, mantendo sempre as informaes da ltima atualizao como a verso atual [HAV99]. 4. Polticas de manuteno O princpio das polticas de manuteno a definio de dois atores, com papis distintos no relacionamento com o repositrio: o administrador e o desenvolvedor. O administrador do repositrio tem como funo principal gerenciar o trabalho dos desenvolvedores, definindo regras, direitos e permisses que possibilitem controlar as atividades pr-definidas conforme o diagrama de use-case da Figura 4. Conforme mostrado no diagrama, o desenvolvedor pode executar as tarefas de get, lock, unlock, check-out, check-in, adio Figura 4 Diagrama de use-case do controle de verses de componente, voltar verso ante-

- 432 -

XV Simpsio Brasileiro de Engenharia de Software

rior e atribuir etiqueta privada. J o administrador do repositrio pode efetuar todas as operaes do desenvolvedor, alm de remover componentes, voltar qualquer verso e atribuir etiquetas globais. A definio de regras permite ao administrador do repositrio, estabelecer o tempo que o desenvolvedor pode ficar com um componente bloqueado, automatizando o processo de envio de mensagens para este, avisando-o quando ultrapassar o tempo determinado e obrigando-o a uma renovao do bloqueio, conforme o caso. 5. Concluses A inspirao para elaborao deste projeto surgiu das dificuldades encontradas por grupos de trabalho na utilizao do desenvolvimento baseado em componentes (DBC), que proporciona muitos benefcios aos seus usurios em relao s demais tcnicas, mas que deve ser bem elaborada e executada, tendo como apoio ferramentas gerenciais que solucionem suas deficincias, do contrrio pode tornar-se complicada sem fornecer bons resultados. O trabalho prope-se a apresentar solues para o controle de verses e polticas de manuteno, promovendo restries de acesso em diversos nveis de usurios, bloqueio de componentes que estejam sendo modificados, objetivando o aumento do grau de reuso de componentes, com informaes importantes sobre cada um deles, facilitando o trabalho de busca e manuteno. Como sugesto para trabalhos futuros pode-se indicar a possibilidade de se criar mecanismos para a interligao entre os componentes e os sistemas nos quais eles esto sendo utilizados, alm uma ampliao das polticas de manuteno, criando-se mecanismos de controle adaptveis a cada equipe de trabalho, como tempo de bloqueio, prazos de atualizao a serem cumpridos, entre outros. Referncias Bibliogrficas
[GAM95] GAMMA, E., HELM, R., JOHNSON, R., VLISSIDES, J. Design Patterns elements of reusable object-oriented software. Addison-Wesley, 1995. 395p. [HAI97] HAINES, G. CARNEY, D., FOREMAN, J. Component-Based Software Development / COTS Integration. Acessado em 21 abr. 2000. Disponvel na Internet http://www.sei.cmu.edu/str/descriptions. [HAV99] HAVEWALA, Aspi. The version control process. Dr. Dobbs Journal, So Francisco, n. 299, p 100-111, mai. 1999. [INP99] INPRISE Corporation. Arquivo de Ajuda Borland TeamSource. Verso 1.0.5.38, 1999. [KRO99] KROTH, E. et al. Software Assistente no Uso de Componentes. Proceeding of the XIISimpsio Brasileiro de Engenharia de Software - Sesso de Ferramentas, outubro, 1999. [MAR95] MARTIN, J., ODELL, J. Anlise e Projeto Orientados a Objeto. Makron Books do Brasil Edit. Ltda., So Paulo, 1995. [MAR98] MARTIN, ROBERT C. Pattern Languages of Program Design 3. Addison-Wesley, 1998. 632p. [NOR96] NORONHA, MARILENE A. Um mecanismo para controle de verses num sistema de documentos. Acessado em 16 mai. 2000. Disponibilizado na Internet http://www.inf.ufrgs.br/gdoc/versoes.html. [POS92] POSTON R., SEXTON M. Evaluating and Selecting Testing Tools. IEEE Software, 1992. [VAL95] VALETTO, G., KAISER, G.E. "Enveloping Sophisticated Tools intoComputer-Aided Software Engineering Environments," 40-48. Proceedings of 7th IEEE International Workshop on CASE. Toronto, Ontario, Canad, Julho, 1995. Los Alamitos, CA: IEEE Computer Society Press, 1995.

- 433 -

You might also like