Vous êtes sur la page 1sur 20

CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DA PARAÍBA

Coordenação do Curso Superior em Telemática

RELATÓRIO FINAL DE ESTÁGIO


Desenvolvimento de um software Livro Caixa utilizando C#, Nhibernate,
Dxperience, Handprot e Firebird

Sérgio Ricardo Araújo do Nascimento

João Pessoa – PB
dezembro de 2008
ii

Centro Federal de Educação Tecnológica da Paraíba - CEFETPB


Gerência do Ensino Tecnológico - GEET
Coordenação do Curso Superior em Telemática - CT

Desenvolvimento de um software Livro Caixa utilizando C#, Nhibernate, Dxperience,


Handprot e Firebird

Sérgio Ricardo Araújo do Nascimento

Relatório de Estágio Supervisionado apresentado à


disciplina Estágio Supervisionado da Coordenação
do Curso Superior em Telemática do Centro
Federal de Educação Tecnológica da Paraíba como
requisito parcial para obtenção do grau de
Tecnólogo em Telemática

Orientador: Ricardo Lima e Silva


Supervisor: Rafael Vinagre
Coordenadora do Curso de Telemática: Elionildo Menezes
Presidente da CESUT: Ricardo Lima e Silva
Empresa: CLENILZA DOS SANTOS QUIRINO
Período: 01/04/2008 a 30/09/2008

João Pessoa
2008
RESUMO

Este relatório destina-se a apresentar os resultados do estágio supervisionado na


empresa Clenilza dos Santos Quirino, onde foi desenvolvido o Sistema Livro Caixa for
Windows – CODEX+, utilizando para tanto as ferramentas Visual Studio 2005
(linguagem C#), banco de dados Firebird, Dxperience, Nhibernate e o HandProt. São
apresentadas as técnicas utilizadas assim como as vantagens do novo sistema.
iv

AGRADECIMENTOS

Agradeço à Deus, à minha esposa e filhos, além


de toda a equipe da empresa onde realizei meu
estágio. Não deixando esquecer de toda equipe de
professores do CEFET, em especial ao meu
orientador Ricardo Lima e Silva e ao coordenador
do curso de Redes Elionildo Menezes.
v

LISTA DE FIGURAS
Figura 1: Exemplo de um form (no Visual Studio).
Figura 2: HandProt com um modelo de aplicação.
Figura 3: Exemplos de componentes do Dxperience.
Figura 4: CODEX legado (plataforma DOS)
Figura 5: Diagrama ER do CODEX+.
Figura 6: Exemplo de uma classe.
Figura 7: Exemplo XML de parâmetros para o NHibernate.
vi

SUMÁRIO

RESUMO ..........................................................................................................................................III
AGRADECIMENTOS .........................................................................................................................IV
LISTA DE FIGURAS ...........................................................................................................................V

1. INTRODUÇÃO ......................................................................................................................... 1
1.1 OBJETIVO ......................................................................................................................... 1
1.2 A EMPRESA ...................................................................................................................... 1
1.3 DESCRIÇÃO GERAL DAS ATIVIDADES ............................................................................... 1
1.4 ORGANIZAÇÃO DO RELATÓRIO ........................................................................................ 2
2. EMBASAMENTO TEÓRICO................................................................................................. 3
2.1 FRAMEWORK ..................................................................................................................... 3
2.2 PROGRAMAÇÃO ORIENTADA A OBJETOS .......................................................................... 4
2.3 A LINGUAGEM C# ............................................................................................................ 4
2.4 A PLATAFORMA .NET ...................................................................................................... 5
2.5 O VISUAL STUDIO 2005 ................................................................................................... 6
2.6 O HANDPROT ................................................................................................................... 7
2.7 O FRAMEWORK NHIBERNATE ........................................................................................... 8
2.8 O FRAMEWORK DXPERIENCE ........................................................................................... 9
3. ATIVIDADES DE ESTÁGIO / PROJETO .......................................................................... 10
3.1 O APLICATIVO CODEX (LEGADO)................................................................................ 10
3.2 O APLICATIVO CODEX+............................................................................................... 11
4. CONSIDERAÇÕES FINAIS ................................................................................................. 15

5. REFERÊNCIAS ...................................................................................................................... 16
1

1. Introdução

O presente relatório descreve as atividades realizadas na empresa Clenilza dos Santos


Quirino, situada na cidade de João Pessoa - PB

1.1 Objetivo

O estágio realizado teve como objetivo adquirir maior conhecimento prático e técnico no
desenvolvimento de software utilizando as ferramentas Visual Studio 2005 (linguagem C#),
HandProt e os Frameworks Dxperience e NHibernate, baseados na plataforma .NET.

1.2 A Empresa

A empresa atua no mercado de desenvolvimento de aplicativos desde 1988 e conta com


uma carteira de mais de 1.000 (mil) clientes em todo o Estado da Paraíba.

Desenvolve basicamente software de retaguarda para contadores. Seus principais


produtos são: PACIOLI – Contabilidade Geral, FISCUS – Escrituração Fiscal, CODEX – Livro
Caixa, LABOR – Folha de Pagamento. Todos estes aplicativos existentes foram desenvolvidos
na plataforma DOS, utilizando a linguagem Clipper (com algumas bibliotecas gráficas).

1.3 Descrição Geral das Atividades

As atividades desenvolvidas durante o período de estágio foram as seguintes:

• Estudo das ferramentas de desenvolvimento: Visual Studio 2005 (C#), Handprot,


NHibernate e o framework Dxperience;
• Continuidade no desenvolvimento (codificação e testes) do aplicativo CODEX+ (iniciado
por outro estagiário, com a supervisão de um desenvolvedor da empresa);
2
1.4 Organização do Relatório

Este relatório está divido em três partes principais: a primeira parte consiste de uma breve
introdução, a segunda parte descreve as atividades desenvolvidas no estágio e a terceira e última
parte as considerações finais.
3

2. Embasamento Teórico
Cabem aqui algumas definições que serão necessárias para o entendimento de
explicações dadas na descrição das atividades de estágio.

2.1 Framework

Um framework tem como objetivo apresentar uma melhor solução de um problema já


conhecido, possibilitando uma maior velocidade na criação de aplicativos.

Segundo Fayad, Schmidt e Johnson (1999), frameworks são técnicas orientadas a objetos
que permitem a reutilização de código, através do estabelecimento de um modelo de construção
de aplicações pertencentes a um determinado domínio. Sendo assim, ao utilizar um framework, o
custo de desenvolvimento de aplicações torna-se ameno quando aplicado a uma área específica.

Além disso, um framework reúne boas técnicas de programação, qualidade de software e


padrões de projeto a fim de garantir uma melhor solução para o problema que este está sendo
desenvolvido. Esse desenvolvimento passa a ser complexo a partir do momento em que o
programador elabora uma solução no nível de abstrações.

Os frameworks realçam a modularidade por encapsular detalhes temporários da


implementação por trás das interfaces estáveis. Com isso, a modularidade nos frameworks ajuda
na melhoria da qualidade do software em desenvolvimento e na localização do impacto das
mudanças, seja na arquitetura ou na implementação (FAYAD; SCHMIDT; JOHNSON, 1999).

Segundo Bittencourt e Osório (2001, p. 2), “a modularidade é garantida através da


definição de interfaces e o encapsulamento da implementação de métodos, permitindo um
melhoramento na qualidade”. Esse encapsulamento deve existir, contudo os desenvolvedores
devem estar cientes de como está organizado o framework, a fim de garantir uma possível
melhoria sem perder sua virtude. A estrutura do framework reduz os esforços requeridos para
entender e manter a existência do software (FAYAD; SCHMIDT; JOHNSON, 1999).

Os frameworks apresentam interfaces estáveis e enfatizam a reusabilidade pela definição


de componentes genéricos, que podem ser replicados para que possam ser criadas novas
aplicações. Com isso, é garantida uma maior produtividade na programação, qualidade,
desempenho e confiabilidade do software (BITTENCOURT; OSÓRIO, 2001).

A reusabilidade nos frameworks alavanca o conhecimento do domínio e o esforço prévio


dos desenvolvedores experientes, visando evitar a recriação e revalidação de soluções comuns. O
reuso de componentes de um framework pode render melhorias substanciais na produtividade
dos programadores, bem como alcançar uma melhor confiabilidade e interoperabilidade do
software (FAYAD; SCHMIDT; JOHNSON, 1999).

2.2 Programação Orientada a Objetos

A orientação a objetos, também conhecida como Programação Orientada a Objetos


(POO) ou ainda em inglês Object-Oriented Programming (OOP) é um paradigma de análise,
4
projeto e programação de sistemas de software baseado na composição e interação entre diversas
unidades de software chamadas de objetos.

Em alguns contextos, prefere-se usar modelagem orientada ao objeto, em vez de


programação.

A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de
objetos para descrever um sistema de software. O funcionamento deste sistema se dá através do
relacionamento e troca de mensagens entre estes objetos.

Na programação orientada a objetos, implementa-se um conjunto de classes que definem


os objetos presentes no sistema de software. Cada classe determina o comportamento (definidos
nos métodos) e estados possíveis (atributos) de seus objetos, assim como o relacionamento com
outros objetos. (WIKIPEDIA, 2008)

2.3 A linguagem C#

O C# é uma linguagem de programação com finalidade geral, simples, orientada por


objetos e fortemente tipada. O Visual C# fornece aos desenvolvedores focados no código
ferramentas e suporte a linguagens poderosos para a criação de aplicativos cliente e web
conectados e avançados no .NET Framework (MICROSOFT, 2008)

C# é uma nova linguagem de programação, proposta pela Microsoft, para o


desenvolvimento de aplicações. Juntamente com o C# foi também introduzida a plataforma
.NET, que constitui um ambiente de execução sobre a qual as aplicações executam.

C# é uma linguagem com diversos objetivos em vista. Pretende ser mais simples que o
C++ e, ao mesmo tempo, poderosa em termos das suas características.

Eis as principais características desta nova linguagem, que achamos dignas de referência:

• Orientada a componentes;
• Robusta e moderna;
• Familiar. (MARQUES, PEDROSO, 2007).

2.4 A plataforma .NET

O .NET Framework é um modelo de programação de código gerenciado da Microsoft


para criar aplicativos em clientes, servidores e dispositivos móveis ou incorporados do Windows.
Os desenvolvedores podem usar o .NET para criar aplicativos de vários tipos: aplicativos Web,
aplicativos para servidores, aplicativos de cliente inteligente, aplicativos de console, aplicativos
de banco de dados e muito mais (MICROSOFT, 2008).

De acordo com a Microsoft, “


! ! ! ! " !
! ! # ” (PACHECO, 2005).
5
Todas as aplicações escritas para a .NET executam dentro de uma máquina virtual
chamada Common Language Runtime (CLR). O código que executa aqui dentro chama-se
managed code e beneficia-se de várias características, como:

• Gestão automática de memória;


• Segurança;
• Tradução de código intermediário (IL) para código nativo;
• Carregamento dinâmico de classes. (MARQUES, PEDROSO, 2007).

Certamente, há muitos objetivos na iniciativa .NET, Os objetivos a seguir parecem ser mais
proeminentes na Microsoft:

• Desenvolvimento mais rápido e mais fácil;


• Distribuição simplificada das aplicações;
• Acesso a serviços e dados a qualquer momento e em qualquer lugar;
• Aplicações colaborativas. (PACHECO, 2005)

2.5 O Visual Studio 2005

O Visual Studio é um pacote de programas da Microsoft, para desenvolvimento de


software, especialmente dedicado, ao framework .NET e às linguagens Visual Basic (VB), C ,
C++, C# e J#. Também é um grande produto de desenvolvimento na área web, usando a
plataforma do ASP.NET. As linguagens com maior freqüência nessa plataforma são: VB.NET e
o C#.

Visual Studio 2005 é a última versão da ferramenta da linha de desenvolvimento da


Microsoft. Usa o Framework .NET 2.0 como biblioteca e runtime para aplicações geradas.
(SKIBO, YOUNG, JOHNSON, 2006)
6
Figura 1: Exemplo de um form (no Visual Studio).

2.6 O Handprot

Ferramenta de proteção via PLUG (USB), que protege as aplicações contra cópias ilegais
e engenharia reversa através de criptografia dos executáveis.

Permite também uma instalação fácil dos aplicativos desenvolvidos.

Figura 2: HandProt com um modelo de aplicação.

2.7 O Framework NHibernate

NHibernate é uma parte do Hibernate Core para Java portado para o .NET Framework.
Ele lida com plano de persistência para objetos .NET e de um subjacentes de dados relacionais.
Dando uma descrição XML de suas entidades e relacionamentos, NHibernate gera
automaticamente SQL para carregar e guardar os objectos. Opcionalmente, você pode descrever
o seu mapeamento de metadados com atributos em seu código fonte.

Suporta persistência transparente, o seu objeto classes não têm de seguir um modelo de
programação restritiva. Classes persistentes não precisa implementar nenhuma interface ou
herdar de uma classe especial base. Isto torna possível desenvolver a lógica empresarial
utilizando o plano de objetos .NET (CLR) e Orientação a Objetos.

Originalmente sendo uma parte do Hibernate 2.1, o NHibernate API é muito semelhante
ao do Hibernate. Todo o conhecimento e documentação existente é, portanto, diretamente
aplicável ao NHibernate. (WIKIPEDIA, 2008)
7

2.8 O Framework DXperience

Framework de desenvolvimento especializado em componentes visuais que dão ao


produto final uma qualidade acima da média do mercado.

Figura 3: Exemplos de componentes do Dxperience.

Vê-se nesta figura que a coluna ESTADO está agrupada no grid, o que facilita bastante a
organização dos dados. Este agrupamento é realizado pelo usuário em qualquer coluna do grid.

A linha branca embaixo dos títulos das colunas do grid serve para uma pesquisa rápida na
coluna.
8

3. Atividades de Estágio / Projeto


As atividades desenvolvidas durante o período de estágio, consistiram em estudo do
aplicativo CODEX, e das ferramentas Visual Studio 2005 (C#), Handprot, Nhibernate e
Dxperience e da continuidade no desenvolvimento do aplicativo CODEX+. Tais atividades serão
detalhadas a seguir.

A maior parte do tempo foi usado no aprendizado das ferramentas utilizadas e na


codificação e testes.

A documentação do sistema não foi realizada. Ficando a cargo de algum estagiário ou da


própria equipe de desenvolvimento da empresa.

3.1 O Aplicativo CODEX (Legado)

O aplicativo CODEX é um programa de livro caixa que permite ser lançadas todas as
receitas e despesas de uma entidade, tanto com o fim de controle gerencial quanto o
cumprimento de obrigação fiscal.

Foi desenvolvido na plataforma DOS utilizando a linguagem Clipper.

É composto basicamente de quatro tabelas (Empresas, Tributos, Históricos e


Lançamentos).

A tabela Empresas contém os dados das empresas cadastradas no sistema, a tabela


Tributos é o cadastro dos tributos que são calculados de acordo com o regime de caixa, a tabela
de Históricos contém os históricos padronizados para os lançamentos e a tabela Lançamentos
contém os lançamentos financeiros no caixa.

Figura 4: CODEX legado (plataforma DOS)


9
3.2 O Aplicativo CODEX+

É o aplicativo objeto do estágio, onde encontrava-se no início do desenvolvimento.


Algumas classes/XML e forms estavam feitos e funcionando.

Esta nova versão suprirá a maioria dos requisitos do sistema legado, exceto algumas que
estão em desuso.

As principais vantagens deste novo sistema são:

• Uso de um banco de dados profissional e free (Firebird);


• Interface gráfica (plataforma windows);
• Uso de uma linguagem robusta (C#);
• Uso de componentes poderosos (Dxperience);

Inicialmente criou-se o banco de dados e todas as tabelas necessárias ao sistema, onde


utilizamos a ferramenta EMS SQL Manager 2005.

Além das tabelas, também foram criadas as chaves primárias e os relacionamentos entre
as tabelas.
10

Figura 5: Diagrama ER do CODEX+.

Foram criadas também as classes e os arquivos de configurações (XML) dessas classes


para que o Nhibernate possa fazer os seus mapeamentos.
11

Figura 6: Exemplo de uma classe.

Figura 7: Exemplo XML de parâmetros para o NHibernate.

Observa-se que as propriedades da classe têm o mesmo nome do property name no


arquivo XML. É assim que o Nhibernate faz a persistência dos objetos. Nota-se que na tag
many-to-one faz referência ao campo CMB_UF que é chave estrangeira (UF_CODIGO) da
tabela/classe UF.
12
Cada tabela, classe e arquivo XML para o Nhibernate foi sendo criado à medida que o
desenvolvimento do sistema ia avançando.
13

4. Considerações Finais
O projeto do CODEX+ utiliza técnicas modernas de desenvolvimento, como é o caso da
persistência de dados além do framework DXPerience que permite que o aplicativo final
apresente uma interface moderna e amigável.

Destacam-se em nossas contribuições a melhoria dos forms que já haviam sido criados
por outros desenvolvedores, tornando-as mais amigáveis com o usuário e mais fáceis de se dar
manutenção. Outra contribuição importante foi a normalização de todas as tabelas do sistema
CODEX+, já que na linguagem Clipper isto não muito comum de se fazer.

Foi necessário um estudo mais a fundo o framework DXPerience para uma melhor
aplicação, tais conhecimentos foram passados para a equipe de desenvolvimento da empresa.

A empresa decidiu que todos os projetos futuros irão usar todas as ferramentas usadas no
desenvolvimento do CODEX+, tanto que já está em desenvolvimento o programa FISCUS+ com
base em todos os conhecimentos adquiridos com o desenvolvimento do CODEX+. Isto permitirá
uma total integração dos sistemas/dados.

Antes, por exemplo, os cadastros das empresas que os clientes eram responsáveis pela
escrituração contábil eram individuais, isto é, cada sistema tinha seu cadastro de empresas. Com
a nova metodologia de desenvolvimento, só existirá um cadastro de empresas, o que facilitará a
manutenção dos dados pelos usuários.

Outro avanço é com relação à transferência de dados de um sistema para outro, antes o
usuário em um sistema exportava os dados em arquivos texto e no outro sistema importava esses
dados. Agora, isto pode ser feito de forma automática através de trigers e stored procedures, sem
a necessidade do usuário ter que se preocupar com tais procedimentos.

Dentre os resultados práticos atingidos com o projeto, os principais foram:

• Maior velocidade de acesso aos dados, pois o CODEX+ usa um banco de dados
profissional usando a linguagem SQL;
• Melhor visual para o usuário;
• Maior iteratividade homem-máquina;
• Impressão sem problema algum em qualquer tipo de impressora, seja ela
matricial, jato de tinta, laser, serial, paralela ou USB, estando ela local ou em
rede, sem a necessidade de captura da porta, já que o sistema usa impressoras
cadastradas no Windows, além da possibilidade de impressão nos relatórios de
uma marca d´água com um logotipo da empresa selecionada pelo usuário;
• Uso tanto do teclado quanto do mouse para acesso às funções do sistema;
• Melhor controle dos dados pelos usuários, já que os dados estão armazenados de
normalizada.

Para que o projeto fique completo, está faltando a documentação, tanto a técnica, quanto
a do usuário, além da confecção de uma instalação, o que sugerimos seja feita com alguma
ferramenta do tipo “Installshield”, que permita a instalação, não só do aplicativo e suas DLL´s
quanto dos pacotes do Firebird e da plataforma .NET.
14

5. Referências

BITTENCOURT, João Ricardo; OSÓRIO, Fernando. ANNeF – Artificial neural networks


framework: Uma Solução Software Livre para o Desenvolvimento, Ensino e Pesquisa de
Aplicações de Inteligência Artificial Multiplataforma. In: II WORKSHOP SOBRE
SOFTWARE LIVRE, 2001, Porto Alegre. II Workshop sobre Software Livre - WSL 2001, Porto
Alegre: Sociedade Brasileira de Computação, 2001. Disponível em:
<http://www.inf.unisinos.br/~jrbitt/>. Acesso em: 30 set. 2008.

FAYAD, Mohamed E.; SCHMIDT, Douglas C.; JOHNSON, Ralph E. Building Application
Frameworks: Object-Oriented foundations of frameworks design. Nova York: Wiley, 1999.

MARQUES, Paulo; PEDROSO, Hernani. C# 2.0. Rio de Janeiro, LTC, 2007.

MICROSOFT. .NET Framework. Disponível em <http://msdn.microsoft.com/pt-


br/netframework/default.aspx>. Acesso em: 25 set. 2008.

MICROSOFT. Visual C#. Disponível em <http://msdn.microsoft.com/pt-


br/vcsharp/default.aspx>. Acesso em: 25 set. 2008.

PACHECO, Xavier. Guia do desenvolvedor de delphi for .NET. São Paulo, Pearson Makron
Books, 2005.

SKIBO, Craig; YOUNG, Marc; JOHNSON, Brian. Working with Microsoft Visual Studio
2005. Washington, Microsoft Press, 2006.

WIKIPEDIA. NHibernate for .NET. Disponível em: < http://pt.wikipedia.org/wiki/Nhibernate>.


Acesso em: 27 out. 2008.

WIKIPEDIA. Orientação a objetos. Disponível em:


<http://pt.wikipedia.org/wiki/Programação_orientada_a_objecto>. Acesso em: 20 set. 2008.

Vous aimerez peut-être aussi