Marco Mendes´s Blog

Artigos, Comentários e Opiniões sobre Engenharia de Software, SOA e Tecnologias Java

Arquivo da categoria ‘Outros’

Padrões, Tecnologias e Ferramentas Java para Suporte BPMS - Evento Java Developer Day ASSESPRO-MG

Acontece hoje em Belo Horizonte o Java Developer’s Day 2008 da ASSESPRO-MG. Tivemos a oportunidade de abrir o evento com uma palestra que disponibilizo aqui (Tecnologias Java para BPM e SOA).

Discutimos nesta palestra os principais padrões Java (WS-*, JBI e SCA) e tecnologias relacionadas (suítes BPM ou BPMS) para o suporte à implementação de projetos BPM e SOA. Para os iniciantes em BPM, recomendo a leitura dos seguintes posts sobre o assunto:

A Fauna BPMS
Fauna BPMS

Ferramentas BPMS Open-Source

  • Intalio (Conforme discutido na apresentação, talvez a suíte open-source mais robusta para BPMS).

Ferramentas Open-Source BPMS que suportam o padrão JBI

Ferramentas BPMS que suportam o padrão SCA

1 comentário »

Da Eficácia à Grandeza da TI

Esta semana conteceu o evento ExpoManagement da HSM Brasil. Palestrantes de classe mundial como Jim Collins, Philip Kotler, Jimmy “Jimbo” Wales, Muhammad Yunus e Stephen Covey, entre outros monstros, estiveram no Brasil.

Destaco aqui a presença no Brasil do Stephen Covey, autoridade mundial em liderança e gestão do desempenho, que fez uma espetacular apresentação realizada no evento ExpoManagement.. Felizmente as transparências da apresentação estão disponíveis para acesso assim como um podcast. As idéias e práticas de Stephen Covey descrita aqui podem ser aplicadas em nível pessoal, em nível dos times de projetos e também em nível das organizações de TI e são uma inspiração constante para lidar e resolver os problemas, urgências e conflitos que enfrentamos nas nossas empresas no dia a dia.

Sem comentários »

Cercado pelo mega-oceano Pantalassa, nasce o Pangea! http://pangeanet.ning.com/

null

Redes sociais são excelentes. Unem pessoas, ajudam a criar a confiança entre elas e nos inspiram a evoluir tecnicamente. Neste contexto, divulgo aqui a excelente iniciativa sugerida pelo Adriano Tavares (e que tenho a honra de poder contribuir como criador também) de uma rede social para discussão de temas relacionados à arquitetura de software.

A rede se chama Pangea (o super-continente que ligava todos os continentes muitos e muitos anos atrás) e será um fórum permanente para reunir pessoas que tenham interesse em saber mais e trocar experiências sobre arquiteturas de software.

Como uma rede social, diversas comunidades serão criadas, de acordo com os interesses e afinidades dos membros da rede.

Algumas comunidades já foram criadas, mas esperamos que muitas outras sejam criadas.

Para quem gosta de arquitetura de software e quiser trocar experiências, basta seguir o link abaixo.

http://pangeanet.ning.com/


Exibir minha página em Pangea

Sem comentários »

Fábricas de Software - Padrões e Práticas

Fábricas de software têm se tornado cada vez mais populares, seja na esfera governamental ou na esfera privada; para suporte às operações de tecnologias de informação. A organização de uma fábrica de software, entrentanto, é bem diferente da execução de um projeto de software e requer outros papéis e habilidades.

Mas o que é uma fábrica de software? Uma primeira definição poderia ser: “Uma área de uma empresa que organiza um conjunto de sistemas de software intensivos que compartilhem um conjunto de requisitos para um segmento de mercado e que são desenvolvidos a partir de um conjunto de ativos comuns de forma previsível”.

Uma fábrica de software, segundo o SEI, deve operar em três dimensões, colocadas a seguir:

  • Práticas de Engenharia de Software.
  • Práticas de Gerência Técnica.
  • Práticas de Gerência Organizacional.

As práticas de engenharia de software envolvem as seguintes áreas: Definição de Arquitetura, Avaliação de Arquitetura, Desenvolvimento de Componentes, Reuso de Ativos Existentes, Engenharia de Requisitos, Integração de Sistemas de Software, Testes, Entendimento de Domínios Específicos, Uso de Softwares Disponíveis Externamente.

As práticas de gerência técnica envolvem: Gerência de Configuração, Análise Make/Buy, Medições, Engenharia de Processos, Gerência de Escopo, Planejamento Técnico, Gerência de Riscos Técnicos e Suporte de Ferramentas.

As práticas de gerência organizacional envolvem: Organização de Business Case, Gerência de Interface com Clientes, Estratégia de Aquisição, Custeio, Iniciação e Institucionalização, Análise de Mercado, Operações, Planejamento Organizacional, Gerência de Riscos Organizacionais, Estruturação da Organização, Previsão de Uso de Tecnologias, Treinamento.

Felizmente, muitas destas informações já foram compiladas em um rico corpo de conhecimento do SEI chamado A Framework for Software Product Line Practice, que está em sua versão 5.0.

Uma rápida introdução ao conceito de uma fábrica de software é apresentado aqui.

Além disso, o SEI também apresenta documentação para aquisição e governança de fábricas de software, montagem de fábricas de software e até mesmo padrões para fábricas de software (Software Product Lines Patterns). Estas informações são compiladas no portal de fábricas de software da SEI.

Finalmente, recomendo o seguinte livro de referência deste trabalho (Software Product Lines: Practices and Patterns), que compila as principais idéias do framework SEI para organização de fábricas de software e principais padrões para adoção destas na sua organização.

Práticas de Fábrica de Software - Livro do Paul Clements

Sem comentários »

It’s Jazz Time!

Jazz

Imagine mesclar os conceitos Web 2.0 (Wikis, Blogs, Chats/IM, Emails, Fóruns de discussão, WhiteBoards) e os conceitos de metodologias ágeis (XP/SCRUM) dentro de um ambiente de desenvolvimento poderoso como o Eclipse. Esta interessante idéia foi apresentada na ACM em 2003 como um projeto de pesquisa e criou um novo conceito, chamado de ambientes colaborativos de desenvolvimento (CDEs). Um CDE estende uma IDE incorporando conceitos de métodos ágeis como SCRUM e XP e os conceitos de colaboração contexto em tempo real.

O melhor é que isso agora em 2008 é realidade, com uma plataforma aberta de colaboração chamada Jazz (http://jazz.net). O Jazz é um ambiente aberto (assim como o Eclipse) e está sendo usado pela IBM para gerar toda a sua nova linha de produtos. O primeiro produto desta linha se chama IBM Rational Team Concert e possui uma versão gratuita para times de até 3 pessoas.

Realmente a promessa de produtividade no primeiro dia é realizada com o Jazz. Em menos dez minutos já havia instalado o Jazz e disparado o servidor (que opera sobre Middleware Tomcat/Derby na sua instalação default). Rapidamente consegui criar um projeto baseado em um processo SCRUM através de templates pré-definidos, alocar pessoas a estes times, criar tarefas, subir código para o repositório SCM Jazz, gerar um build da minha aplicação de teste através do engine de automação de builds do Jazz e operar o portal Web para examinar métricas diversas tais como Burndown, backlog de atividades, retrospectivas e defeitos em aberto, dentre inúmeras outras

Anexo a este blog uma apresentação realizada esta semana na Squadra sobre a plataforma Jazz e as suas excitantes possibilidades no desenvolvimento ágil e colaborativo entre times.

- A plataforma Jazz

2 comentários »

O avanço do JBOSS AS no mercado de Servidores de Aplicação

É fato notório para a comunidade de TI Brasileira o uso das soluções JBOSS para o desenvolvimento de aplicações corporativas basadas em Java. A ausência de um reconhecimento formal, entretanto, gerava questionamento por diversos decisores sobre a maturidade desta solução. Uma notícia recente, entretanto, lança o devido reconhecimento técnico e mercadológico desta solução.

O JBOSS AS figura no Gartner Magic Quadrant como um membro do quadrante líder, conforme mostrado na figura abaixo.

Quadrante Mágico Gartner - Servidores de Aplicação - 2008.

Vejo esta análise de forma similar as análises realizadas pelo grupos de investimento internacionais, como o Standard and Poors, a respeito da maturidade da economia Brasileira. A análise, por si só, nada muda na solução JBOSS AS, mas traz possibilidade de adoção da solução em contextos onde esta hipótese nao caberia por falta de respaldo de institutos de renome como o Gartner.

Apesar disso, o grupo JBOSS ainda carece de um modelo de serviço e suporte mais presente no Brasil para que possa enfrentar definitivamente os seus grandes concorrentes (BEA, IBM, Oracle e Microsoft) no disputado mercado de servidores de aplicação. Mais informações sobre esta análise podem ser encontradas no relatório do Gartner, disponível aqui.

4 comentários »

Ferramentas e Recursos para Engenheiros e Analistas de Testes

Uma execução saudável de um projeto requer profissionais e recursos de primeira linha para a disciplina de teste. Compilo abaixo algumas informações muito interessantes para analistas e engenheiros de testes nos tópicos de gerência de testes , testes funcionais, testes de desempenho, testes de WebServices/SOA e testes de caixa branca (para desenvolvedores) e sistemas embutidos. Estes excelentes materiais fazem parte do portal do DeveloperWorks da IBM e trazem experiência provada para auxiliar times de testes a serem mais efetivos.

Interessante notar que a plataforma IBM para testes é baseada em uma plataforma *aberta* para testes, que implementa muitas das funcionalidades mostradas nos kits acima, especialmente para as áreas de testes funcionais e desempenho. Esta plataforma se chama Eclipse Test and Peformance Tools Platform. Um passeio rápido por esta plataforma pode ser feito aqui.

Sem comentários »

Voce têm ética?

A ética (palavra originada diretamente do latim ethica, e indiretamente do grego ηθική, ethiké), estuda a natureza do que é considerado adequado e moralmente correto (Ref: Wikipedia). Muito se fala sobre a ética (ou a falta de ética) no Brasil, mas a ética também é muitas vezes violada em TI. Muitas vezes os ofensores da ética não estão em Brasília, mas estão do nosso lado nos projetos de TI. Muitas vezes, nós mesmos violamos preceitos básicos da ética do trabalho de engenharia de software.

A ACM (Associaction for Computing Machinery ) possui um excelente código de ética para profissionais de engenharia de software, baseado em oito princípios. Para quem não conhece a ACM, ela é a primeira sociedade dedicada a computaçào no mundo e mantém, junto com a IEEE, os principais periódicos, jornais e revistas de computação do mundo.

1. PUBLIC - Software engineers shall act consistently with the public interest.

2. CLIENT AND EMPLOYER - Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest.

3. PRODUCT - Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.

4. JUDGMENT - Software engineers shall maintain integrity and independence in their professional judgment.

5. MANAGEMENT - Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.

6. PROFESSION - Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.

7. COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues.

8. SELF - Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.

Uma versão mais extensa deste código pode ser encontrada aqui. Recomendo que você invista quinze ou vinte minutos do seu tempo e leia este código. O primeiro passo que profissionais de TI podem fazer para criar um Brasil mais ético é criar uma TI mais ética, onde desenvolvedores busquem incessamente a qualidade, gerentes sejam mais líderes do que feitores e que diretores evitem negócios excusos pelo simples prazer do dinheiro pelo dinheiro.

Sem comentários »

Sites de Arquitetura de TI, para Arquitetos

Cada vez mais temos bons sites sobre o tema arquietura de software, destinados a arquitetos, líderes técnicos e desenvolvedores sênior. Compilo aqui uma lista de bons sites que mantém excelentes conteúdos sobre temas recentes e interessantes, tais como SOA, BPM, arquiteturas corporativas, padrões arquiteturais, processos e ferramentas.

  • Portal de Arquitetura do SEI: Talvez a melhor fonte de recursos sobre arquitetura de software disponível na Web.
  • Bredemeyer’s Resources for Software Architects: Apresenta uma fantástica coleção de informações para arquitetos de software e arquitetos corporativos.
  • SEI SAT: A iniciativa de tecnologias de arquiteturas de software do SEI, para apoiar empresas na melhoria de suas práticas de engenharia de software.
  • Grady Booch’s Blog: Mais uma excelente coleção de recursos, compilado pelo um dos maiores arquitetos de software de TI.
  • IEEE Std 1471-2000 IEEE Recommended Practice for Architectural Description of Software-Intensive Systems : O padrão IEEE para arquitetura de software.
  • TOGAF: O corpo de conhecimento de arquitetura corporativas (EA) do Open Group.
  • BEA Arch to Arch: Entrevistas, artigos e conteúdo rico de arquitetura da BEA, com foco também nos seus produtos da linha WebLogic e AquaLogic.
  • IBM Architect’s Technical Library: Dezenas de artigos sobre arquiteturas corporativa, arquitetura de integração, arquitetura de software e tecnologias da linha WebSphere.
    4 comentários »
  • A Nova Lua de Júpiter vai aumentar a sua produtividade - Parte 2

    Europa foi uma das várias mulheres de Zeus (Júpíter) na mitologia greco-romana. Em homenagem ao planeta, a segunda maior lua de Júpiter foi batizada de Europa.

    Europa também é o nome do novo projeto Eclipse, assim como Callisto (outra lua de Júpiter e outra de suas mulheres), compilação de uma linha de base com 11 projetos no Eclipse 3.2.

    Seguindo a idéia do projeto Callisto, o Eclipse continua em um processo de coordenação de múltiplos projetos em um linha de base cada vez mais madura e profissional. Neste lançamento, temos 21 projetos compilados em uma linha de base sobre o Eclipse 3.3.

    Os projetos são:

    • AspectJ Development Tools (AJDT) 1.5
    • Business Intelligence and Reporting Tools (BIRT) 2.2.0
    • Buckminster 0.1.0
    • C/C++ Development Tools (CDT) 4.0
    • Data Tools Platform (DTP) 1.5
    • Device Software Development Platform - Device Debugging (DSDP.DD) 0.9
    • Device Software Development Platform - Target Management (DSDP.TM) 2.0
    • Dynamic Languages Toolkit (DLTK) 1.0
    • Dash (Eclipse Monkey) 1.0
    • Eclipse Communication Framework (ECF) 1.0.0
    • Eclipse Platform, JDT, PDE and Equinox 3.3
    • Eclipse Modeling Framework (EMF) 2.3
    • Eclipse Modeling Framework - Query, Transaction, Validation (MQ, MT, VF) 1.1
    • Graphical Editing Framework (GEF) 3.3
    • Graphical Modeling Framework (GMF) 2.0
    • Model Development Tools (MDT) 1.0
    • Model to Text (M2T) - JET 0.8
    • Mylyn 2.0
    • SOA Tools Platform (STP)
    • Test and Performance Tools Platform (TPTP) 4.4
    • Web Tools Platform (WTP) 2.0

    Sem dúvida, a grande vedete deste lançamento é o WTP 2.0 (Web Tools Platform), que traz importantes ferramentas visuais para suporte a JPA , JSF e projetos completos Java EE 5.0. Temos, por exemplo, um editor visual drag and drop para JSF.

    Apesar disto, faço minhas apostas em outros projetos que ainda não tem tanta expressão, mas que prometem bastante.

    • STP - SOA Tools Platform - Embora ainda em processo de maturação (0.6), este projeto irá ofertar uma infra-estrutura para o desenvolvimento de projetos de arquiteturas orientadas por serviço. Esta versão inicial traz já uma amostra do potencial do Eclipse para suporte a SOA.
    • MyLyn - Um projeto simples, mas excepcionalmente interessante. O MyLyn é uma ferramenta para micro-gerência de projetos e sucede o projeto Mylar, do qual escrevi um blog aqui há algum tempo. O MyLyn permite que uma pessoa controle o tempo gasto nas suas tarefas ou nas tarefas do seu time, bem como fazer o controle de ciclo de vida de atividades, defeitos, melhorias e outros tipos de ocorrências, integrado ou não a itens de configuração do Eclipse (códigos, arquivos, modelos e outros elementos de projetos). O MyLyn deve permitir que desenvolvedores, líderes técnicos e mesmo gerentes consigam implementar conceitos de gerência e agile management de forma bastante transparente e não intrusiva.
    • ECF - O Eclipse Communications Framework traz para o Eclipse ferramentas colaborativas, mensagens e comunicação ponto a ponto. Ele segue uma tendência da tecnologia Jazz, que promete revolucionar a forma como times colaboram para desenvolver projetos. Mais informações sobre o ECF podem ser achadas aqui, embora esta tecnologia ainda deve se tornar mais estável (assim como o STP) na versão Eclipse 2008, chamada Ganimedes.

    Mais informações sobre o Europa podem ser achadas aqui:

    • Página principal: http://www.eclipse.org/europa
    • Revisões: http://www.eclipse.org/europa/europareviews.php
    • Personalização do Europa: http://www.eclipse.org/downloads/moreinfo/custom.php

    Quem é Ganimedes? Mais uma mulher de Zeus? Em verdade, Ganimedes era um cara, mas Zeus não perdoava ninguém e se apaixonou por ele (Wiki-Ganimedes). Em tempo, Ganimedes também é mais uma lua de Júpiter. Em 2008 escrevo um blog sobre ele!

    1 comentário »

    Próxima Página »