Make your own free website on Tripod.com

A implementação do sistema

Neste cap�ulo, é abordada a fase de implementação. Para a sua leitura, pressupõe-se que se tenha conhecimento básico de C++ e de programação orientada a objetos. Para mostrar a utilização das ferramentas, foi escolhido um caso de uso para ser implementado e, na descrição do processo, buscou-se colocar o máximo de detalhes possível sobre a implementação do caso de uso escolhido.

Para não correr o risco de ser cansativo, nem alongar demais o texto, foi escolhido um caso de uso simples. mas que contempla boa parte dos conceitos que devem ser utilizados na implementação do sistema. O caso de uso escolhido foi Manter cadastro de formas de pagamento.

O desenvolvimento desse caso de uso será mostrado desde o desenho da interface até o envio dos dados digitados pelo usuário ao banco de dados. Será visto como o KDevelop é integrado ao Designer e como fazer para incluir nos fontes a tela desenhada no Designer. A partir desse exemplo qualquer um dos outros casos de uso poderá ser implementado fazendo-se os devidos ajustes e, logicamente, usando-se widgets[1] apropriados para cada caso.

A criação das classes do sistema pode ser feita de duas formas: geração de código pelo Umbrello ou criação direta no KDevelop. Para demonstrar o potencial das ferramentas, algumas classes serão criadas pelo Umbrello e uma outra será criada diretamente no KDevelop. Assim, o desenvolvedor poderá escolher qual o modo que achar mais conveniente.

O que é necessário para implementar

Após ter modelado o sistema com a UML, o desenvolvedor tem em suas mãos as especificações das classes que deverão ser implementadas no sistema. Nesta seção será mostrada a implementação de um dos casos de uso modelados para mostrar a facilidade com que se pode implementar o sistema no Linux. As ferramentas utilizadas são o Designer para o desenho das telas do sistema e o KDevelop para manipular os códigos fonte.

O fato de dizer que a aplicação é escrita em C++ poderia causar um certo pânico, pois ela possui a fama de ser difícil e que, por ser de baixo nível, nada está pronto para ser utilizado e assim, o programador deve implementar tudo para que o sistema funcione. Um dos objetivos de adotar o C++ neste trabalho é justamente mudar essa visão, pois o C++ pode ser tão simples de usar quanto linguagens de mais alto nível como o VisualBasic da Microsoft.

E o que é preciso saber de C++ para implementar o sistema? A resposta para essa pergunta parece ser complexa, mas os requisitos básicos para implementar um sistema em C++ usando as ferramentas que escolhidas se limitam ao mínimo necessário para implementar as classes criadas na modelagem. Rotinas de baixo nível para manipular janelas, ou acessar o banco de dados, nada disso precisa ser implementado. É preciso saber apenas como usar as bibliotecas que estão prontas para utilização.

Entre os pré-requisitos para implementar o sistema, estão os seguintes:

Orientação a objetos

Desde a modelagem do sistema, feita com auxílio da UML, os conceitos da orientação a objetos vêm sendo utilizados. Na implementação também não é diferente, pois as classes modeladas na fase de análise serão criadas agora na codificação do sistema.

O desenvolvedor deve estar familiarizado com os conceitos de herança e polimorfismo, pois eles são usados extensivamente na implementação da interface com o usuário e no acesso ao banco de dados.

Ponteiros

Talvez esse seja o conceito que mais assusta os programadores, pois a sua manipulação requer alguns cuidados, como alocar o ponteiro antes de utilizá-lo, e destruí-lo quando ele não for mais necessário. Depois de alguma prática, pode-se verificar que a coisa não é complicada e que o cuidado é o mesmo necessário quando se abre ou fecha uma conexão ao banco de dados.

Algoritmo

Em linguagem mais popular: lógica de programação. Qual linguagem não necessita desse conhecimento?

Bibliotecas de desenvolvimento

Como fazer para conectar ao banco de dados? Como usar o Qt para desenhar as janelas? É preciso saber apenas usar as bibliotecas disponibilizadas pela maioria das distribuições Linux do mercado. Conectar ao banco de dados? mysql_connect(). Criar uma nova interface? Deve-se criar uma classe filha de QWidget ou similar. Criar uma linha de edição na janela? Acrescentar um QLineEdit. Nada complicado. O mais difícil é dizer para o compilador onde procurar as bibliotecas. Mas com o auxílio do KDevelop, nem esse trabalho é tão complicado assim.

Criatividade

A criatividade é um requisito importante no desenho da interface com o usuário para elaboração de janelas bem planejadas, com bom apelo visual, que não cansem o usuário e que sejam de fácil utilização. Também é muito importante a criatividade para conseguir resolver problemas de lógica, de linguagem. Mais uma vez: Qual linguagem não necessita desse conhecimento?

A lista apresentada contempla os principais pré-requisitos para implementar um sistema em Linux. O programador com experiência na linguagem C/C++ pode estranhar o fato de não ser citado a capacidade de trabalhar com Makefiles. O programador que tem conhecimento em programação em Linux vai perguntar sobre o script configure usado para gerar Makefiles. Para se ter desenvolvimento rápido, é preciso ocultar o máximo de detalhes básicos para que o programador se concentre na implementação apenas do que foi modelado. A tarefa de criar esses scripts de configuração é deixada para o KDevelop, que sabe o que é necessário para o sistema compilar. Bibliotecas adicionais, que não fazem parte do KDE, podem ser informadas ao KDevelop e ele trata de juntá-las ao projeto.

Notas

[1]

Widget é um elemento visível na interface, como uma linha de texto, um botão e até mesmo a própria janela contendo os elementos. Corresponde ao conceito de controle no jargão Windows.