IBM Rational Rapid Developer
Mais Controlo para os Arquitectos Sobre o Código, Desenho e Desenvolvimento
O desenvolvimento de aplicações nunca foi
fácil. À medida que aumenta a importância do
software, também aumenta a sua
complexidade. Numa tentativa de reduzir essa
complexidade e aumentar a facilidade de
utilização, os fornecedores de ferramentas de
software têm procurado criar ferramentas RAD
(Rapid Application Development) que permitam
criar aplicações rapidamente.
As primeiras iterações não eram verdadeiras
ferramentas, mas antes bibliotecas que forneciam
aos especialistas em desenvolvimento
funcionalidades chave e colocavam o enfoque sobretudo na geração de interfaces com o utilizador.
Em alguns casos, estas propostas foram expandidas para incluir bibliotecas sofisticadas para
comunicações e funções chave. No entanto, apesar de aumentarem a rapidez de desenvolvimento,
estas bibliotecas eram proprietárias e exigiam uma perícia significativa para serem utilizadas
correctamente.
Para tornarem o RAD mais prático e abrir a programação a uma base mais alargada de
programadores, os fornecedores de ferramentas desenvolveram produtos capazes de fornecer um
ambiente completo para os especialistas em desenvolvimento. Como exemplos desses produtos
podemos referir o Microsoft Visual Basic e o Sybase PowerBuilder. As linguagens de suporte eram
fáceis de aprender e as próprias ferramentas forneciam aceleradores, como os desenhadores de
GUIs. Estes permitiam que os utilizadores “desenhassem” a interface com o utilizador através do drag
and drop de controlos numa imagem virtual e da ligação de acções (sob a forma de funções de
código) aos controlos.
Estes ambientes conquistaram rapidamente adeptos e foram criados muitos milhões de linhas de
código utilizando as suas ferramentas. Contudo, persistiam alguns problemas. Apesar destas
ferramentas terem sido utilizadas para criar muitas aplicações críticas, faziam muito pouco para
controlar os métodos utilizados pelos especialistas em desenvolvimento. Na sua maior parte, as
aplicações não eram baseadas em modelos nem em arquitecturas robustas.
As aplicações resultantes caracterizavam-se normalmente por não serem estruturadas, por serem
desenhadas de forma pobre e por serem difíceis de manter. A falta generalizada de práticas de
partilha de código também fazia com que as aplicações disponibilizassem frequentemente os
mesmos conjuntos de funções base de várias formas diferentes (às vezes com conflitos).
Por outro lado, quando as organizações queriam expandir a abrangência de uma aplicação não
estruturada para além de um único departamento, a aplicação era difícil de escalar, dado o conjunto
de ferramentas utilizado para a criar. De igual modo, as tecnologias subjacentes a esses conjuntos de
ferramentas eram proprietárias, pelo que era difícil a sua integração com outras tecnologias.
Para combater este caos, a Rational Software Corporation (actual IBM Rational) procurou
disponibilizar uma abordagem mais baseada em standards para o ciclo de vida do desenvolvimento
de aplicações. Essa abordagem inclui linguagens (UML), ferramentas (Rational Rose, Rational
ClearCase, Rational ClearQuest, ou Rational XDE) e melhores práticas da indústria (através do RUP Rational Unified Process).
Em Maio de 2003, o Rational Rapid Developer veio juntar-se a esta lista de recursos e tecnologias da
Rational. Esta ferramenta fornece uma abordagem RAD orientada à arquitectura, baseada em
standards como o J2EE. A nova abordagem chama-se mesmo “architected RAD” e fornece vários
aceleradores e controlos, além do desenvolvimento de aplicações. Segundo a IBM Rational, o
Rational Rapid Developer permite que os especialistas em desenvolvimento menos experientes
possam conjugar esforços com arquitectos experientes e especialistas em desenvolvimento seniores
para criarem aplicações desenhadas de forma sólida.
O Gartner Group chama a estas ferramentas Architected RAD, ou ferramentas ARAD. Algumas das
características destas ferramentas incluem:
•
•
•
•
O suporte de standards da indústria, como o J2EE, UML, XML, SOAP e MDA.
A utilização de padrões de desenho e de construção que sejam standards da indústria, como
é o caso do MVC2.
Qualidade de engenharia a nível do código criado.
Consistência arquitectural a nível de todas as equipas de especialistas em desenvolvimento.
Ainda de acordo com o Gartner Group, “não existe melhor forma de aumentar a produtividade, reduzir
os custos e assegurar a escalabilidade e o desempenho das aplicações, ao mesmo tempo que se
implementam métodos que são minimamente invasivos”. Por outro lado, considera que, “para a maior
parte das empresas e aplicações, o ARAD poderá provar ser uma abordagem quase ideal para
balancear a rapidez e o custo com uma qualidade e desempenho suficientes das aplicações”.
Architected RAD: importar um modelo de base UML
O coração de qualquer aplicação é o modelo de base que a descreve – um modelo de domínio,
modelo de classe, modelo lógico, modelo entidade, etc. Em todas as instâncias, este modelo de base
fornece uma visão das classes chave e das suas relações. O IBM Rational Rapid Developer suporta
esta visão graficamente com o seu Class Architect baseado em UML (Figura 1).
Figure 1. Modelo de classe UML no IBM Rational Rapid Developer.
Podemos desenvolver este modelo de várias formas. Numa delas, podemos utilizar simplesmente as
ferramentas de desenho para arrastar, largar e ligar classes e pacotes na imagem da funcionalidade
Class Architect dentro do Rational Rapid Developer. No entanto, o mais frequente é que a equipa de
desenvolvimento queira reaproveitar elementos já existentes. Neste caso, o arquitecto e os
especialistas em desenvolvimento seniores podem importar esses elementos para o projecto da
aplicação existente no Rational Rapid Developer. A importação é efectuada principalmente a partir de
uma base de dados existente.
Utilizando o wizard de importação de base de dados a partir do menu Tools, os arquitectos podem
ligar-se à base de dados e importar as definições de tabela e de relação, seleccionando aquilo que
pretendem a partir da lista de tabelas e de views. Isto pode ser feito tantas vezes quantas as
necessárias ao longo do ciclo de desenvolvimento.
Além disso, as alterações que os arquitectos fazem ao modelo no Rational Rapid Developer podem
ser propagadas à base de dados ou aos scripts DLL que podem ser corridos pelo administrador de
base de dados. O Rational Rapid Developer também fornece a possibilidade de importar definições
de elementos herdados, nomeadamente definições de base de dados IMS ou VSAM.
De igual modo, os arquitectos podem criar uma classe ou modelo de informação através da utilização
da funcionalidade de sincronização de modelo disponibilizada pelo IBM Rational Rapid Developer
(Figura 2). Esta funcionalidade estabelece a ligação a modelos existentes, criados nas ferramentas de
modelação Rational Rose ou Rational XDE, destinadas principalmente a especialistas de
desenvolvimento seniores e arquitectos. As duas ferramentas da IBM Rational são ambientes de
modelação ricos baseados no standard UML (Unified Modeling Language).
Graças à utilização da funcionalidade de conectividade para acederem aos modelos existentes no
Rational Rapid Developer, os arquitectos podem disponibilizar aos utilizadores um modelo de classe
completamente desenvolvido, fornecendo-lhes um bom início para o desenvolvimento. Uma vez
importado o modelo inicial, os utilizadores podem começar com as actualizações incrementais. Ou
seja, à medida que os arquitectos modificam o modelo, os utilizadores recebem as alterações sem
terem que voltar a importar todo o modelo. Além disso, os arquitectos podem filtrar facilmente os
elementos que ainda não estão prontos para serem utilizados, ou que não são relevantes para a
aplicação que uma determinada equipa pretende desenvolver.
Figura 2. O IBM Rational Rapid Developer disponibiliza acesso aos modelos de classe UML
existentes no IBM Rational Rose ou no IBM Rational XDE.
Architected RAD: manter a consistência de desenho e de imagem de marca
O IBM Rational Rapid Developer suporta um ambiente de desenho de interfaces de utilizador
bastante rico. Os especialistas em desenvolvimento e os designers gráficos podem assim conceber
uma interface de utilizador de uma aplicação utilizando controlos drag and drop e grelhas especiais
para gerirem e apresentarem conteúdos complexos.
O Rational Rapid Developer também suporta a criação de um repositório de estilos, que pode ajudar
a garantir aspectos de páginas e uma imagem de marca uniformes. Isto é bastante útil quando temos
várias pessoas a criar aplicações e a adicionar conteúdos a um site Web. Um repositório de estilos
contém detalhes sobre esquemas de cores, estilos de fontes, temas (explicados mais abaixo), estilos
de páginas e controlos de edição e de navegação. Um designer gráfico pode criar uma série de
templates que permitam variações de estilo, de cor, de elementos de desenho…, mantendo a
consistência da imagem de marca ao longo do site.
Na Figura 3, o designer gráfico criou um repositório de estilos com especificações para os botões,
tabs, grelhas e labels, bem como algumas templates de documentos. Outra equipa de
desenvolvimento poderá importar este repositório de estilos para outra aplicação que esteja a criar
com o Rational Rapid Developer, sendo possível determinar quais os controlos e estilos que essa
equipa poderá utilizar.
Além disso, o designer pode criar temas para o repositório de estilos utilizando o Theme Architect. Os
temas são conjuntos de cores, de imagens e de fontes, aos quais pode ser dado um nome. Os temas
são depois utilizados especificamente para uma dada página ou carregados de forma dinâmica como
uma opção disponibilizada aos utilizadores.
Figura 3. Com o IBM Rational Rapid Developer, um designer gráfico pode criar um repositório
de estilos que permita a múltiplas pessoas manter a consistência de desenho
e de imagem de marca ao longo das páginas de um site Web.
Architected RAD: manter o controlo sobre o código
O Rational Rapid Developer tem várias funcionalidades que disponibilizam um grande controlo e
consistência a nível do código, além de facilitarem o trabalho de codificação aos especialistas em
desenvolvimento.
Geração de código para múltiplas tecnologias
Através da sua combinação de modelos de base, de interacção e de interface com o utilizador, o
Rational Rapid Developer pode gerar a maior parte do código para todos os ntiers de uma aplicação
J2EE. Actualmente, é capaz de gerar aplicações para uma grande variedade de tecnologias, que o
arquitecto/especialista em desenvolvimento pode seleccionar a partir de um menu.
A migração de uma aplicação da tecnologia de um fornecedor para a de outro – ou de uma versão
mais antiga de uma tecnologia para uma versão mais recente – é tão fácil como seleccionar outra
opção de menu e clicar no botão Construct. Isto significa que os especialistas em desenvolvimento
podem ter um ambiente de desenvolvimento no seu desktop (por exemplo, Tomcat com SQL Server)
e outro ambiente completamente diferente para produção (por exemplo, IBM WebSphere com IBM
DB2), sem se preocuparem com as diferenças entre estas tecnologias.
Se considerarmos a perspectiva da manutenção das aplicações, esta capacidade assegura que as
equipas de desenvolvimento podem investir a maior parte do seu tempo na resolução de problemas
de negócio, adicionando novas funcionalidades e capacidades às aplicações, em vez de o gastarem a
portar o código de uma tecnologia para outra.
Padrões de construção do código
Uma funcionalidade única do Rational Rapid Developer tem a ver com o facto de permitir que os
arquitectos e os especialistas em desenvolvimento seniores definam padrões de desenho para a
construção da aplicação. O Rational Rapid Developer já vem com um conjunto específico de padrões
por defeito para classes, páginas, mensagens e componentes (web services), que são carregados
com cada aplicação (Figura 4). Para cada categoria, os arquitectos e os designers podem escolher
um desses padrões por defeito, ou efectuar misturas e alterações para alcançarem um resultado
específico.
Figura 4. Padrões de construção por defeito no Rational Rapid Developer.
Cada padrão tem um descritor com nome que pode ser atribuído a uma página, mensagem ou
componente. Os padrões também podem ser transaccionais ou não transaccionais e podem suportar
SQL dinâmico ou procedimentos armazenados. De igual modo, podem suportar beans entidade,
JSPs (JSP Model II), ou servlets. Isto permite que os arquitectos seleccionem os padrões que mais se
adeqúem à aplicação e impor a sua utilização a quem faz desenvolvimento.
Templates de código
O Rational Rapid Developer inclui um ambiente de codificação designado por Logic Architect. É aqui
que os programadores escrevem realmente a lógica de negócio. Para facilitar este processo e
garantir a consistência entre a codificação efectuada por diferentes pessoas, o Logic Architect
disponibiliza uma série de templates de código que realizam tarefas comuns de processamento
aplicacional de negócio. Os especialistas em desenvolvimento escolhem uma template e respondem
às questões do wizard para essa template. Seguidamente, o Logic Architect preenche a template com
o código apropriado (Figuras 5 e 6).
Figura 5. Templates de código para o Logic Architect.
Figura 6. O Logic Architect preenche as templates de código automaticamente.
Por exemplo, se o especialista em desenvolvimento seleccionar uma template para chamar um
procedimento armazenado, precisará de inserir o nome do descritor de base de dados e o nome do
procedimento armazenado. A partir daí, o Logic Architect insere o código automaticamente. Como se
trata de um sistema aberto, permite que o arquitecto modifique as templates de código de existentes
e/ou adicione outras novas. Os arquitectos e os especialistas em desenvolvimento seniores podem
manter o controlo sobre o código que é utilizado ao longo do projecto.
Controlo de segurança
O Rational Rapid Developer também disponibiliza funcionalidades avançadas para os especialistas
em desenvolvimento mais sofisticados, permitindo alargar o acesso a componentes e fornecedores
de segurança costumizados. Desta forma, suporta segurança baseada em papéis (role-based), assim
como encriptação de dados. Além disso, permite a adição de mecanismos de segurança
costumizados que sejam conformes com o standard J2EE JCE (Java Cryptography Extender). Isto
permite que os arquitectos criem os seus próprios mecanismos de segurança sob a forma de um
fornecedor JCE, ou que melhorem as implementações JCE já existentes de terceiros.
Controlo via componentes costumizados
Outra forma dos arquitectos poderem controlar o desenvolvimento consiste na utilização de
componentes sob a forma de pacotes Java, ou EJBs. Estes componentes orientados para os serviços
podem representar lógica de negócio comum que os utilizadores do Rational Rapid Developer
poderão chamar a partir dos seus métodos costumizados.
Architected RAD: controlo da implementação
A maior parte das ferramentas de desenvolvimento disponibilizam um ambiente local onde se podem
colocar as aplicações para teste. No entanto, o ambiente de produção real é normalmente bastante
mais complexo, pelo que são necessárias competências especializadas para determinar a forma
como se deve segmentar a aplicação para ser implementada. O Rational Rapid Developer
disponibiliza aos arquitectos e especialistas em desenvolvimento seniores uma ferramenta avançada
– o Partition Architect – para criar definições de partição e de implementação para as aplicações.
O Rational Rapid Developer fornece um modelo “local” que toma como referência o Apache Tomcat –
um motor servlet/JSP open source. De igual modo, suporta a implementação em várias plataformas
J2EE, nomeadamente o IBM WebSphere (versões 3.5, 4.0 e 5.0). O Partition Architect permite a
segmentação da aplicação em diferentes níveis (apresentação, negócio e dados), bem como de
acordo com linhas funcionais (comprador, vendedor, administrador, etc.).
Figura 7. O IBM Rational Rapid Developer tem o Partition Architect, que permite um controlo
avançado sobre a implementação.
Baseado no artigo “IBM Rational Rapid Developer: More control for architects over code, design, and
deployment”, de Joseph G. Noonan, Software Quality Engineering Manager, Rational Software (IBM
Software Group).
Tel: (+351) 239 497 230 / 2 • Fax: (+351) 239 497 231
E-mail: [email protected] • Internet: www.engenharia-software.com
Download

IBM Rational Rapid Developer Mais Controlo