DGERT   APCER
Relações de compromisso

Utilização de Arquitecturas de Desenvolvimento Aplicacional


O mercado das tecnologias e sistemas de informação é cada vez mais competitivo. Esta verdade incontestável já se tornou lugar comum no seio das empresas. Cada vez mais o cliente exige produtos de maior complexidade, com tempos de resposta menores e com maior qualidade, sem que isso aumente o custo final do produto a entregar. Essa situação acaba por trazer uma enorme pressão para as equipas de projecto, uma vez que as variáveis referidas são frequentemente antagónicas. Como criar um produto com qualidade superior sem comprometer o tempo de desenvolvimento do mesmo?

A implementação de um processo é fundamental para que o objectivo seja cumprido, mas a existência de um processo, por si só, não resolve a problemática apresentada. Existem outros factores que podem ser tidos em linha de conta quando pretendemos reduzir o esforço necessário para a realização de um projecto.

 

Um dos itens que manifestamente tem um peso substancial no total do projecto é o esforço de desenvolvimento do produto de software. Alguns autores indicam que, num projecto de dimensão média, 50 por cento do esforço total do projecto incide em tarefas directamente relacionadas com a programação. Este valor é demasiado significativo para passar despercebido, sobretudo quando facilmente se conclui que é alocado um esforço considerável de programação ao desenvolvimento de funcionalidades que são comuns em inúmeros projectos. Ou seja, cai-se no erro de reinventar a roda vezes sem conta. O que fazer então para reduzir o esforço nesse desenvolvimento repetitivo?

Desenvolvimento por componentes

O desenvolvimento por componentes é o primeiro passo para esse objectivo de redução do esforço. Sempre que um projecto está na sua fase de análise e desenho, é possível dividir o sistema em componentes e seleccionar quais as funcionalidades que compõem cada um desses componentes.

 

Idealmente, cada um dos componentes do sistema de informação é uma peça bastante independente, substituível e que tem uma responsabilidade bem identificada numa arquitectura igualmente bem definida. Cada um dos componentes pode então ser reutilizado noutros projectos que necessitem das funcionalidades por ele implementadas.

Framework baseada numa arquitectura de desenvolvimento aplicacional

A criação de uma framework é um passo mais ambicioso do que a simples decomposição da arquitectura em componentes reutilizáveis. Uma framework, além de disponibilizar as funcionalidades existentes nos seus componentes, fornece todo um ambiente de desenvolvimento aplicacional, dado que implementa soluções transversais a quase todos os sistemas de informação, como por exemplo:

  • Controlo de acessos;
  • Motor aplicacional;
  • Gestão de módulos e plugins;
  • Gestão de licenciamento;
  • Virtualização de acesso a dados;
  • Gestão de transacções e acessos concorrentes.

 

Qualquer framework funcionará como base para um sistema de informação, sendo que as funcionalidades particulares da aplicação serão desenvolvidas tirando partido de todas as características da framework. Desta forma, é reduzido ou eliminado o tempo de desenvolvimento em funcionalidades genéricas, além da vantagem imediata de se utilizarem componentes já testados e, consequentemente, mais robustos.

Cada sistema de informação deverá parametrizar a framework para o ambiente específico do projecto - por exemplo, o suporte a componentes distribuídos, as regras de layout da camada de apresentação, as regras de licenciamento, etc. Assim, não é necessariamente verdade que todos os sistemas de informação baseados numa mesma framework tenham o mesmo look and feel, podendo representar aplicações bastantes diferentes, inclusive ao nível do ambiente tecnológico.

O que fica por desenvolver são unicamente as funcionalidades de negócio pretendidas para o sistema de informação em causa, e mesmo estas poderão ser reutilizadas. As funcionalidades de negócio serão expostas pela framework através de uma interface conhecida. Como tal, é possível alargar o sistema de informação para uma arquitectura SOA (Service Oriented Architecture), ou mesmo integrá-lo em sistemas baseados no mesmo motor aplicacional.

A utilização em projectos vindouros de uma framework baseada numa arquitectura de desenvolvimento aplicacional, permite amortizar de forma bastante rápida o investimento inicialmente realizado na sua criação.

Produzido em 2005

Topo
Pesquisa
Agenda
Destaques