Metodologias e Padrões de Desenvolvimento de Software

Este artigo tenta descrever as principais metodologias de desenvolvimento de software utilizadas atualmente.

Desenvolvimento Cliente-Servidor

Numa aplicação cliente-servidor o cliente (aquele que instancia a interface do aplicativo) liga-se a um sistema de base de dados. Características comuns de sistemas cliente-servidor:

Vantagens:

Desvantagens:

Especificação por linguagem de desenvolvimento

Desenvolvimento cliente/servidor com Delphi - A maior parte das aplicações construídas em Delphi seguem o padrão cliente-servidor;

Um cenário típico de aplicação Delphi cliente-servidor segue a estrutura abaixo:

Camada Banco de Dados (Servidor)

Firebird e InterBase são os bancos mais utilizados com Delphi;

Uma parte das regras de negócio da aplicação é codificada dentro do banco de dados, através de stored procedures e triggers

Camada Cliente – Aplicação desktop Win32

O acesso a dados é feito através de bridges de acesso, tais como: BDE, dbExpress, IBX, ADO.

Uma parte das regras de negócio é codificada na aplicação Win32.

Desenvolvimento em camadas com orientação a objetos e ECO - Este cenário de desenvolvimento Delphi segue o padrão DAO (data access objects) onde temos um modelo multicamadas, contendo: banco de dados, servidor web (contendo classes de domínio e classes de negócio), camada de persistência e interface (browser). O ECO gerencia automaticamente a criação e manutenção da camada de persistência.

Vantagens:

Desvantagens:

procedure TWebForm1.btnSalvar_Click( sender: System.Object; e: System.EventArgs); var obj: Usuario; begin obj := Usuario.Create(EcoSpace); obj.Nome := txtUsuario.Text; obj.Endereco := txtEndereco.Text; obj.Email := txtEmail.Text; obj.Senha := txtSenha.Text; UpdateDatabase; Response.Redirect('Home.aspx'); end;
Listagem 1. Veja um exemplo de persistência de um objeto chamado ‘Usuario’
Nota: Quando criamos um ECO ASP.NET Page, o assistente do Delphi cria a implementação do método UpdateDatabase automaticamente.

Metodologia

A aplicação desenvolvida sobre um modelo multicamadas, temos: banco de dados, aplicação web (o servidor), camada de persistência e interface (browser). O Modelo no entanto não segue o padrão MVC. Existe uma camada de negócio (Business Logic que é gerada pelo modelo UML construído pelo ECO. De fato, o ECO gera a maioria do código de negócio, com com classes e regras de acordo com a definição do modelo.

Devido a utilização do ECO, a programação utilizada será completamente orientada a objetos (OO). As vantagens dessa abordagem são muitas:

Desvantagens:

A lógica de negócio representada no modelo UML garante a independência de interface de usuário podendo ser exposta através de um webform, de um WebService ou até mesmo de um Windows Form. Nesse caso as interfaces utilizariam as classes definidas no modelo UML criando uma maneira do usuário interagir com elas. Esta é a função de uma camada de apresentação, apenas permitir a interação do usuário com a lógica do sistema.

Para desenvolver utilizando essa metodologia é preciso tem em mente o conceito de camadas lógicas. Cada camada é responsável por uma área e elas trocam informações entre si. As áreas de uma aplicação são divididas de acordo com o entendimento de cada um, porém quanto ao ECO podemos relacionar as seguintes:

  1. Banco de dados – O Banco de Dados é utilizado para armazenamento dos objetos. O próprio ECO se responsabiliza pela adequação da estrutura do banco de dados em relação ao modelo de objetos.
  2. Domínio – As classes são armazenadas em um “pacote UML”, um arquivo PAS que contém além das classes de domínio, classes e atributos que definem o modelo UML da regra de negócio, como relacionamentos e constraints.
  3. Persistência – O ECO oferece um conjunto de classes para realização da persistência dos objetos no banco de dados, se encarregando da mesma, retirando assim do desenvolvedor essa obrigação. Veja um exemplo de como persistir um objeto “Usuario”.

Desenvolvimento Multicamadas

No Delphi, o desenvolvimento multicamadas é feito através da tecnologia DataSnap. A principal característica de uma arquitetura multitier, se comparada a client/Server, é o surgimento de uma camada intermediária, também conhecida como middlewareou servidor de aplicação.

Como banco de dados, podemos ter Interbase, Firebird, Oracle, DB2, ou qualquer outro banco suportado pelas tecnologias de acesso com o Delphi. Quem se encarrega da comunicação com o banco de dados é a camada intermediária, a camada lógica de negócio. As aplicações cliente, também conhecidas como thin-clients (clientes leves), não enxergam o banco de dados diretamente.

Para programar de forma multicamadas como DataSnap (antes do Delphi 6 conhecido também como MIDAS), precisamos fazer uso de um protocolo de comunicação. Os protocolos atualmente suportados pelo DataSnap são:

A figura abaixo demonstra um exemplo de arquitetura multicamadas com o Delphi, usando Interbase como banco de dados e COM+ como tecnologia de transporte. Essa arquitetura é recomendada para ambientes intranet, com ganho enorme de desempenho e escalabilidade.

A figura abaixo mostra um arquitetura multicamadas utilizando SOAP e Firebird.

As vantagens do desenvolvimento multicamadas com Delphi e DataSnap são muitas:

Confira também

Artigos relacionados