De Architectura mudou
29/05/2009
Transferimos o nosso blog sobre arquitetura de software para arkhi.com.br.
Aos interessados em arquitetura de software, recomendo fortemente a visita ao blog do Alessandro Kieras no Pangea, onde ele apresenta um excelente estudo de caso. Confesso que fiquei muito satisfeito em ver divulgado um trabalho desta natureza, retratando um projeto no qual, inclusive, tive uma modesta participação.
Parabéns, Mr. K!
Palestra sobre Arquitetura de Software
12/11/2008
Ontem, dia 11/11, a convite do Prof. Leonam Mendes, tive a oportunidade de palestrar sobre Arquitetura de Software no Centro Universitário Newton Paiva.
Conforme combinado com os presentes, seguem os slides da apresentação.
O RUP oferece uma fonte razoável de informações voltadas para a arquitetura de software como fluxo de trabalho (incluindo atividades e tarefas), conceitos, diretrizes, etc. É guia interessante para arquitetos de software. Você pode simpatizar ou não com o RUP; mas, se trabalha com arquitetura de software, é uma leitura obrigatória. Neste texto, citaremos algumas dessas diretrizes, apresentando seus respectivos objetivos e tarefas nas quais se aplicam. Na medida do possível, apresentaremos dicas e referências complementares.
| Diretriz | Descoberta, Análise e Controle Arquitetural (Architectural Discovery, Analysis and Control) |
| Para que serve? | Descreve como realizar descoberta, análise e controle arquitetural com o Rational Software Architect (RSA). Orienta como avaliar a integridade arquitetural e coletar métricas relacionadas à qualidade da arquitetura. Aplicável tanto para o caso de uma nova arquitetura como para um modelo de desenho obtido a partir de engenharia reversa. |
| Em quais tarefas e/ou atividades do RUP se aplica? | Análise Arquitetural, Revisar Arquitetura e Incorporar Elementos de Design Existentes. |
| Alguma dica extra? | Mesmo quem não tem o RSA pode tirar proveito da diretriz. Outros softwares interessantes que permitem fazer a desoberta arquitetural e extrair métricas: JDepend,JavaNCSS, crap4j, CPD, SA4J, SourceMonitor, Metrics. |
| Não tenho acesso ao RUP! Outras fontes? | Exposing design flaws in your code, Part 1: Code review Exposing design flaws in your code: Part 2, Architectural discovery Cyclomatic Number and Cyclomatlc Complexity Cyclomatic Complexity (somente para credenciados da ACM) |
| Diretriz | Integrando os Aplicativos Legados às Arquiteturas Modernas (Integrating Legacy Applications Into Modern Architectures) |
| Para que serve? | Orienta sobre a modernização de sistemas legados e sua integração com novos sistemas. Descreve o conceitos de estratégias invasivas e não-invasivas para integração. |
| Em quais tarefas e/ou atividades do RUP se aplica? | Descrever a Arquitetura em Tempo de Execução. |
| Alguma dica extra? | Para quem tem o RUP 2003, vale a pena instalar o RUP Plug-In for legacy evolution v1.0. |
| Não tenho acesso ao RUP! Outras fontes? | Integrate legacy systems into your SOA initiative Develop a migration strategy from a legacy enterprise IT infrastructure to an SOA-based enterprise architecture |
| Diretriz | Dependência de Manifestação (Manifest Dependency) |
| Para que serve? | Orienta como utilizar dependência de manifesto para mapeamento entre elementos de design e implementação. |
| Em quais tarefas e/ou atividades do RUP se aplica? | Descrever a Distribuição e Estruturar o Modelo de Implementação. |
| Alguma dica extra? | “Dependência de Implementação” agora é chamada “Dependência de Manifestação”. Eu sei, muito ruim… Por quê não “manifesto”? |
| Diretriz | Dependência de Importação na Implementação (Import Dependency in Implementation) |
| Para que serve? | Orienta a organização das dependências do modelo de implementação (<<import>>). |
| Em quais tarefas e/ou atividades do RUP se aplica? | Descrever a Distribuição e Estruturar o Modelo de Implementação. |
| Diretriz | Diagrama de Componentes (Component Diagram) |
| Para que serve? | Aponta utilidades de aplicação de um diagrama de componentes na descrição do modelo de implementação. |
| Em quais tarefas e/ou atividades do RUP se aplica? | Descrever a Distribuição e Estruturar o Modelo de Implementação. |
| Alguma dica extra? | Está relacionada com as duas diretrizes anteriores. Se você não pretende demonstrar uma estrutura muito detalhada do seu modelo de implantação, possivelmente não achará essa diretriz muito útil. |
| Não tenho acesso ao RUP! Outras fontes? | UML basics: The component diagram |
| Diretriz | Análise Arquitetural para os Aplicativos J2EE |
| Para que serve? | Fornece uma noção geral dos mecanimos de design e tecnologias de J2EE. |
| Em quais tarefas e/ou atividades do RUP se aplica? | Análise Arquitetural. |
| Alguma dica extra? | Apesar de um número razóavel de diretrizes voltadas para J2EE, definitivamente o RUP não é uma fonte primária para tecnologias relacionadas a Java Enterprise. |
| Não tenho acesso ao RUP! Outras fontes? | http://java.sun.com/javaee/ |
| Diretrizes |
|
| Para que servem? | Indicam técnicas para modelar sistemas J2EE. Relacionam mecanismos de desenho com as tecnologias, bem como seu melhor uso. |
| Em quais tarefas e/ou atividades do RUP se aplica? | Identificar Mecanismos de Design. |
| Alguma dica extra? | Antes de partir para alguma diretriz específica, não deixe de ler “Aplicativo J2EE” e ” Análise Arquitetural para os Aplicativos J2EE”. |
| Não tenho acesso ao RUP! Outras fontes? | A franca referência para o melhor uso das tecnologias primárias de JEE/J2EE é o livro“Designing Enterprise Applications with the J2EE Platform, Second Edition”. A ebook é gratuito. |
A maior parte das diretrizes se refere a J2EE (infelizmente o RUP ainda não contempla informações especializadas para .NET). Apesar da quantidade modesta de diretrizes e estas não apresentarem uma abordagem muito profunda, podem ser um ponto de partida interessante para o assunto pesquisado. Falando honestamente, as diretrizes do RUP para arquitetura de software não são tão abrangentes e úteis quanto o fluxo de trabalho, as atividades, as tarefas, os conceitos, etc.
Observações:
- Na medida do possível, citei fontes extras predominantemente da IBM para ofertar uma visão mais próxima do RUP.
- Os nomes das diretrizes estão em conformidade com a tradução do RUP 7.2 para português brasileiro – alguns tópicos tiveram traduções nada boas. Se possível, opte pela instalação em inglês.
- Não incluí diretrizes referentes a design. Só foquei em diretrizes diretamente relacionadas com atividades nas quais o arquiteto é o principal responsável.
- Provavelmente, devo ter esquecido várias diretrizes. Fique à vontade para comentar!