Muitas organizações estão percebendo a importância fundamental do design e da modelagem no desenvolvimento de aplicativos. Esses modelos de design servem como uma visão compartilhada de um aplicativo para as equipes de negócio e de desenvolvimento. Os modelos de design também são responsáveis pela geração de código de todo código padrão, permitindo assim um rápido desenvolvimento.
Embora esses modelos capturem com precisão os aspectos do design, eles não apresentam as descrições encontradas em produtos de trabalho de design típicas. Para ajudar a tornar esses produtos de trabalho mais abrangentes, os designers precisam prepará-los manualmente copiando das ferramentas de design e adicionando explicações. Esse esforço é intenso e, além disso, qualquer alteração no design força os designers a criar manualmente o produto de trabalho novamente.
Neste tutorial, mostraremos como gerar dinamicamente os artefatos de design dos modelos RSA usando os relatórios BIRT. Business Intelligence and Reporting Tools (BIRT) é um sistema de relatório de software livre com base em Eclipse para aplicativos da web, especialmente os que têm base em Java e Java EE. O Rational Software Architect inclui BIRT, o que oferece recursos para ajudá-lo a produzir um relatório que inclui conteúdo selecionado de modelos UML.
Ao usar os relatórios para gerar dinamicamente os documentos de design, é possível manter o modelo e os artefatos de design sincronizados sem qualquer esforço extra.
- RSA 7.5.5
- Uma boa compreensão dos modelos UML e do BIRT
- Conhecimento de XML/XPath
O exemplo de projeto, o modelo e o relatório servem para fins ilustrativos e para auxiliar a compreensão da geração de relatórios BIRT a partir de RSA. O exemplo de projeto e o modelo não têm precisão técnica.
O tutorial cobre somente os conceitos importantes sobre os relatórios BIRT e como é possível usá-los para modelos UML.
O exemplo de projeto descreve um site fictício parecido com o IBM developerWorks, que é uma rede profissional e centro de recurso técnico ao qual os autores podem enviar artigos. Os artigos são revisados a fim de estabelecer uma precisão técnica e padronizar o conteúdo do site. Os artigos são identificados em tópicos diferentes por autores e revisores. Os assinantes do website podem ver os artigos e filtrá-los de acordo com os tópicos.
Para ver o projeto dwSubscriptions, importe o archive para o RSA. A Figura 1 representa o modelo do exemplo de projeto:
Figura 1. Modelo de design para o projeto
O modelo de exemplo do projeto contém as seguintes partes:
- Activity diagram
- Um diagrama que descreve o fluxo de eventos de um caso de uso e o que precisa ser feito pelo sistema para fornecer um valor a um ator. Ele é composto por uma sequência de tarefas que juntas produzem algo para o ator. O fluxo de eventos é composto por um fluxo básico e um ou mais fluxos alternativos.
- Component diagram
- Esse diagrama descreve os relacionamentos de uso que existem entre as diversas unidades de implantação. Seu objetivo é mostrar as dependências que o software tem sobre os outros componentes de software no sistema, como bibliotecas de software.
- Domain model
- Esse modelo descreve diversas entidades, seus atributos e relacionamentos. Também descreve as restrições que regem a integridade dos elementos de modelo que formam o domínio do problema.
- Interaction diagram
- Esse diagrama representa o comportamento interno do sistema. Mostra como os objetos colaboram enviando mensagens e retornando respostas uns para os outros.
- State chart diagram
- Esse diagrama representa o comportamento ou ciclo de vida de uma única classe. É uma projeção de todos os diagramas de interação para uma única classe. Descreve os seguintes comportamentos:
- Estados que podem ser alcançados.
- Estímulo externo (eventos, mensagens, repostas) que causa uma mudança no estado.
O arquivo SampleDesignArtifact.pdf no archive é um exemplo de saída que desejamos. Usando essa saída, demonstraremos como o relatório BIRT pode ser gerado a partir de modelos UML. Analise esse exemplo, junto com os modelos de design para entender os requisitos do relatório BIRT.
- Modelo estático para conteúdo do texto
- O artefato é composto por elementos de design do modelo RSA e por conteúdo de texto estático que descreve o modelo.
Para gerenciar facilmente o texto estático, criamos o projeto dwStaticModel e o incluímos no archive do tutorial. O projeto espelha os requisitos para o conteúdo estático.
Figura 2. Modelo de design para conteúdo estático
Revise o projeto, especialmente a documentação para cada pacote.
Figura 3. Seção de documentação do pacote
Visualização maior da Figura 3.
Esta documentação é usada para gerar o conteúdo estático para o relatório.
A primeira coisa que fazemos é criar um projeto de relatório chamado developerWorks e um novo relatório chamado dwReport.rptdesign
A criação de um relatório BIRT é formada pelas seguintes etapas:
- Definição da conexão com as origens de dados.
- Definição das consultas que gerarão os conjuntos de dados para o relatório.
- Definição do layout dos elementos de dados.
Definição das origens de dados
Os dados do relatório estão em dois projetos separados: dwSubscriptions e dwStaticModel; portanto, precisamos criar as origens de dados para cada projeto.
- Abra a visualização Data Explorer .
- Clique com o botão direito do mouse em Data Sources e selecione New Data Source.
Figura 4. Criando uma nova origem de dados
- Escolha uma Origem de dados UML e insira o nome da origem de dados como
StaticDataSourcena caixa de texto Data Source Name - Clique em Next.
A nova Origem de dados UML é exibida.
Figura 5. Especificando o metamodelo UML para o relatório
- Especifique a origem de dados executando as seguintes etapas:
- Escolha Instance Models-> Add
- Selecione Browse Workspace…->dwStaticModel -> dwStaticModel.emx
- Confirme a escolha em Ok -> Ok -> Finish
- O metamodelo padrão da origem de dados é UML 2.1.0 e a notação é 1.0.1.
O UML 2.1.0 ajuda a desenvolver conjuntos de dados para classes, pacotes e nível de propriedade. A notação ajuda a criar conjuntos de dados para componente, interação, atividade e diagramas de estado
Use essas etapas novamente para adicionar outra origem de dados DynamicDataSource e aponte-a para o arquivo dwSubscriptions.emx .
Definição dos conjuntos de dados
A próxima etapa é criar consultas a serem usadas nos relatórios. Primeiro, criaremos um relatório a partir do texto estático.
Conjuntos de dados para o modelo estático
Criaremos conjuntos de dados para cada pacote sob o modelo estático. Começaremos criando um conjunto de dados para os Pacotes Activity Diagrams.
Figura 6. Criando um novo conjunto de dados
- Nesta visualização do Data Explorer, selecione Data Set > New Data Set
- Selecione Static Data Sourcee insira
ActivityStaticDataSetcomo o nome do conjunto de dados. - Clique em Next. A tela Row Mapping é exibida.
O objetivo desta etapa é extrair a documentação que escrevemos para o pacote Activity Diagrams. Sabemos que o arquivo de modelo está em um arquivo XML. O RSA tem um assistente que o ajuda a criar consultas que podem ser usadas com esse XML.
Figura 7. Extraindo as informações de um modelo
- Na seção Browse, escolha o modelo UML. Em seguida, selecione o pacote e clique no botão próximo de Row Query Expression. Digite
uml:Package. - Edite a linha de consulta para
//Package[@name='Activity Diagrams']
A expressão XPath significa "Mostre-me todos os pacotes cujo nome seja Activity Diagrams."
Se você quiser aprender um pouco mais sobre os modelos UML, consulte a seção Recursos deste artigo a fim de obter documentações e o pacote org.eclipse.uml2.uml.
- Clique em Next. A tela Column Mapping é exibida.
Agora precisamos obter os atributos necessários para as linhas que capturamos na etapa anterior. Por padrão, o atributo de primeiro nível do tipo selecionado será exibido (pacote neste cenário).
- Mapeie as seguintes colunas a partir do modelo UML:
- Name with @name
- Documentation with ownedComment/@body
Figura 8. Mapeando as colunas
- Clique em Finish.
- Para ver se o conjunto de dados está correto, selecione Preview Results. Você deve obter resultados como os exibidos na Figura 9.
Figura 9. Resultados da consulta
Repita essas etapas novamente para os seguintes pacotes que restam no modelo estático:
- Domain Model
- Component Relationship
- Introduction
- Interaction
- StateChart
Certifique-se de que o nome do pacote esteja correto na tela Row Mapping consultando o nome do pacote especificado no projeto Static Model dwStaticModel.
Importante: o pacote de introdução no conteúdo estático tem subpacotes. Qual será o Row Query para as subseções como Description, Identification etc.? Deixamos isso como um exercício para o leitor. Também é possível consultar o exemplo de relatório anexado para a resposta dessa consulta.
Complete todos os conjuntos de dados para o conteúdo estático. Na próxima subseção, criaremos o conjunto de dados para os modelos de design.
Conjuntos de dados para modelos de design
Para criar um novo parâmetro de relatório, selecione Outline view ->Report Parameters -> New Parameter. Passaremos o nome do pacote como um parâmetro para o relatório.
Figura 10. Criando parâmetros de relatório
Agora criaremos um novo conjunto de dados chamado DomainModelClassDataSet e o usaremos para obter todas as classes associadas ao nome do pacote que está sendo passado como um parâmetro para o relatório.
- Na primeira tela do assistente Query Parameters, adicione um novo parâmetro chamado packageName.
- Clique em Next.
Figura 11. Especificando parâmetros para o conjunto de dados
O parâmetro de consulta ajuda a externalizar a consulta. Isso ajuda a gerar relatórios personalizados, com base nos parâmetros de entrada passados para o relatório.
- Na tela Row Mapping, navegue por 'UML Model' e selecione Package como expressão
Figura 12. Extraindo informações do modelo
- Mude a expressão de linha de consulta para suportar o seguinte parâmetro de consulta //Package[@name=$packageName]/Class; e selecione Class como o tipo.
Figura 13. Fornecendo expressão para a consulta
- Forneça o seguinte mapeamento de coluna
Figura 14. Mapeamento de coluna para o conjunto de classe dinâmico
Figura 15. Criando parâmetros para a consulta
Para vincular o parâmetro do relatório a esse conjunto de dados, selecione Linked To Report Parameter e atribua o parâmetro packageName .
Figura 16. Vinculando o relatório e os parâmetros de consulta
Estamos terminando a criação do conjunto de dados usando o modelo UML. Na próxima seção, criaremos outro conjunto de dados usando o modelo de notação UML.
Conjunto de dados para os diagramas de interação
Para criar um conjunto de dados para os diagramas de interação, escolha o modelo de notação na guia Row Mapping.
Figura 17. Escolhendo o modelo de notação para o mapeamento de linha
- Na caixa de texto Row Query Expression, insira
getDiagrams(//Collaboration[@name='ArticleInteractions']/Interaction)enotation:Diagram.
Observação: essa expressão significa "Mostre-me todos os diagramas de todas as Colaborações cujo nome seja ArticleInteractions. Além disso, os diagramas estão abaixo de Interaction."
Com o modelo de notação, é possível consultar facilmente as imagens usando a função getDiagrams . Essa linha de consulta nos mostra os diagramas de interação. Estamos interessados nas informações exibidas na Figura 18.
Figura 18. Mapeamento da coluna para notação
Use as etapas anteriores nesta seção para completar o assistente.
O modelo de notação pode ser usado em outros casos em que precisamos de diagramas. Consulte o relatório no exemplo de archive para ver como criamos o restante dos conjuntos de dados.
Agora que temos o conjunto de dados e a origem de dados, podemos criar o relatório, o que envolve a criação do layout, colocar os elementos do relatório no relatório e configurar as origens de dados.
Criação do layout do relatório
Não descrevemos o layout do relatório detalhadamente, pois isso está fora do escopo deste artigo. Consulte o relatório em anexo para obter detalhes do layout.
Para esse exemplo, usamos os conjuntos de dados que criamos neste artigo e o conhecimento básico de BIRT para criar o relatório. Outras considerações de layout do relatório como cabeçalho e rodapé, página principal diferente, imagens, índices podem ser usadas para dar uma aparência mais polida ao relatório.
Nesta seção, descreveremos como podemos executar o relatório e verificar se o relatório de saída corresponde aos nossos requisitos.
Figura 19. Executando o relatório
Crie uma nova configuração e escolha as seguintes opções para gerar o relatório PDF.
Figura 20. Criando as configurações do relatório
Defina os parâmetros para o relatório.
Figura 21. Configurando os parâmetros de tempo de execução para o relatório
Geramos artefatos de design a partir de modelos RSA usando relatórios do BIRT. Além da discussão sobre UML e modelos de Notação, também praticamos as etapas para a criação das fontes de dados e dos conjuntos de dados.
| Descrição | Nome | Tamanho | Método de download |
|---|---|---|---|
| File for article | PI_0612.zip | 37KB | HTTP |
| Sample output design artifact work products | SampleDesignArtifact.pdf | 360KB | HTTP |
Informações sobre métodos de download Obtenha o Adobe® Reader®
Aprender
- Para saber mais sobre o Rational Software Architect, comece pela página do developerWorks . Explore também a visão geral do produto e o centro de informações, onde você encontra instruções de instalação e uso.
- Visite a área do software Rational no developerWorks para visualizar os recursos técnicos e as melhores práticas dos produtos da Rational Software Delivery Platform.
- Fique por dentro dos eventos técnicos e Webcasts do developerWorks com foco em uma variedade de produtos da IBM e tópicos do segmento de mercado de TI.
- Participe de um briefing gratuito do developerWorks Live! para se atualizar rapidamente sobre produtos e ferramentas IBM, bem como tendências do segmento de mercado de TI.
- Acompanhe as demos on demand do developerWorks, variando de demos de instalação e configuração de produtos para iniciantes a funcionalidades avançadas para desenvolvedores experientes.
- Melhore suas qualificações. Consulte o catálogo Treinamento e certificação do Rational que inclui muitos tipos de cursos em uma ampla variedade de tópicos.
É possível realizar alguns deles em qualquer local, a qualquer momento, e muitos dos cursos para iniciantes são gratuitos.
- Documentação UML da Eclipse.org. Para obter mais detalhes sobre UML:Package, escolha o pacote org.eclipse.uml2.uml e selecione a interface Package.
- Artigo: UML basics: An introduction to the Unified Modeling Language
- Tutorial: relatórios do BIRT no Eclipse
Obter produtos e tecnologias
- Faça o download de uma ou de ambas as versões de teste:
- Avalie o software IBM da forma que melhor lhe convier: faça o download da versão de avaliação, experimente-a on-line, use-a em um ambiente de nuvem ou passe algumas horas no SOA Sandbox aprendendo a implementar Arquitetura Orientada a Serviços de forma eficiente.
Discutir
- Participe da discussão no fórum Rational Development Tools.
- Classifique ou revise o software Rational. É rápido e fácil. Realmente.
- Compartilhe seu conhecimento e ajude outros a usar o software Rational, escrevendo um artigo para o developerWorks. Descubra quais são as características de um bom artigo do developerWorks e como realizá-lo.
- Siga o software Rational no Facebook, Twitter (@ibmrational) e no YouTubee adicione seus comentários e solicitações.
- Faça e responda a perguntas e aumente seus conhecimentos participando dos Fóruns do Rational, cafése os wikis.

Shashi Pahwa é arquiteto de J2EE certificado pela Sun com 11 anos de experiência no uso de IBM Rational Software Architect, UML 2, BIRT e desenvolvimento de plug-in. Ele trabalha no Global Business Service, Gurgaon como arquiteto de aplicativos do setor público. É mestre em ciência da computação pela Maharishi Dayanand University, Rohtak Índia.

Shishir Narain é especialista de TI mestre certificado pelo Open Group com qualificações avançadas em produtos de middleware da IBM. Ele trabalha no IBM Lab Services para WebSphere nos Laboratórios de software da Índia, em Gurgaon. Tem 12 anos de experiência com o desenvolvimento de soluções para diversos clientes. Tem um mestrado de tecnologia do Indian Institute of Technology, Kanpur.