Sunday, June 25, 2006

JBoss Seam

Entrei no no JDJ, e encontrei um artigo interessante sobre o JBoss Seam, esse aqui. Muito legal o autor da um exemplo interessante do uso desse framework, com a utilidade de unificar outras soluções como Faces e EJB 3.0 de uma maneira bem prática. Muito bom!!!

Sunday, June 18, 2006

Caso de Uso

É um assunto que muito já ouvi falar, mas ultimamente tem se tornado mais necessário sua utilização no meu dia-a-dia. Confesso que acho a construção de casos de uso muito chato, descrever os atores e as funcionalidades que software provê, de uma maneira prática e direta, nem sempre é fácil. Devido ao cenário ao qual atuamos, algumas vezes descrever algo uma maneira simples, é complicado! Nos últimos dias, como sempre, tenho buscado literatura sobre o assunto, cheguei a conclusão de 2 guias, um é especificamente para Casos de Uso, o Writting Effective Use Cases (Cockburn) e o segundo: Applying UML and Design Patterns (Larman).

Atualmente estou lendo o segundo, que traz uma visão geral do desenvolvimento (R)UP, da fase de concepção a elaboração (com iterações). Muito bom o conteúdo do livro, no desenrolar dos assuntos são apontadas várias idéias de outros autores, como o próprio tio "Fowler". Vai aqui uma definição interessante de caso de uso (do livro):
Casos de uso são um mecanismo para que visa tornar simples a maneira dos usuários (Clientes finais) enxergarem "seus" objetivos no sistema. A essência é descobrir e registrar requisitos funcionais do sistema, satisfazendo os objetivos dos interessados. Requisitos funcionais indicam o que o sistema fará, em um ponto de vista de negócio.

Friday, June 09, 2006

SOA

Nos últimos dias muito tem se falado sobre SOA, é um + uma sigla do mundo TI - Service Oriented Architecture. A itenção é resolver um "grande tabu" (pelo menos na minha visão) de desenvolvimento modularizado.

A idéia é muito interessante, vc deixa de pensar em software como um todo, e começa a pensar em serviços. O software é "quebrado" em serviços (módulos) com fraco acoplamento, ou seja, os módulos ñ tem dependência estrutural um entre o outro.

Um exemplo (idéia...) seria um sistema Contábil, com serviços de Contas a Pagar, Contas a Receber, Emissão de Faturas, e outros. Tendo um outro software gerenciando esses serviços, para agregar vinculo entre esses módulos.

Uma técnologia que prove isso, é Web Services. No cenário acima poderiamos ter cada módulo implementado com uma Linguagem, ou seja, Contas a Pagar e Receber em Java e Emissão de Faturas em C++, e o "gerenciador" tbém em Java.

Web Service, é muito interessante, mas seu uso deve ser estudado com cautela! Em um cenário aonde serviços pertencentes a empresa, feitos em uma mesma tecnologia, como Java, talvez ñ seja interessante a integração com Web Services. O custo de parsing de XML em Web Services é alto, e deve ser considerado! Talvez a adoção do puro RMI, com EJB (principalmente o 3) seja interessante.