redirecionando...

O endereco deste blog mudou. Você está sendo redirecionado...

domingo, 24 de dezembro de 2006

Feliz Natal

Desejo a todos aqueles que leram, comentaram, acessaram ou simplesmente ouviram falar deste blog um ótimo natal, cheio de paz, família, comida, bebida e tudo mais, cada um na sua crença, cada um na sua casa e todos com o mesmo espírito de final de ano.

Que 2007 seja repleto de planos, realizações, trabalho, dinheiro, amor e o que mais cada um desejar!!

quinta-feira, 14 de dezembro de 2006

1ª Reunião do Grupo de Usuários Java do MS

Local: DígithoBrasil - Rua Spipe Calarge, 271 - Bairro TV Morena (3ª quadra entrando pela Av. Zahran)
Data e Horário: 16/12/2006 (sábado) das 9:00 as 11:00 hs
Pauta:

  • Nome do grupo;
  • Votação para JUG Leader;
  • Parcerias (universidades, sucesu, senac, etc.);
  • Site, logomarca, blog, etc.;
  • Sugestões de Projetos.
A reunião é aberta e todos que tiverem interesse em participar da fundação do Grupo de Usuários, cadastre-se no grupo de discussão, troque idéias e fique por dentro das agendas.

15 Boas Práticas de ANT

Para quem (ainda) não conhece, o framework ANT foi desenvolvido pela Apache Foundation para automatização de tarefas referentes ao desenvolvimento de software como compilação, deploy, geração de código, configuração, etc.

Recentemente, Eric M. Burke, co-autor do livro Java Extreme Programming Cookbook escreveu um artigo no site ONJava relacionando 15 boas práticas para a ANT. São Elas:

  1. Adotar convenções consistentes;
  2. Colocar o build.xml na raiz do projeto;
  3. Preferir um único arquivo de build;
  4. Fornecer boa documentação;
  5. Fornecer uma target "clean";
  6. Gerenciar dependências usando ANT;
  7. Definir Paths reutilizáveis
  8. Definir as dependências entre targets corretamente;
  9. Usar propriedades (property) para configurações;
  10. Manter o processo de build auto-contido;
  11. Usar controle de versão;
  12. Usar ANT como o menor denominador comum;
  13. Usar zipfileset;
  14. Executar clean build test;
  15. Evitar recursos específicos da plataforma;

Recomendo a leitura do artigo e das discussões relacionadas para um melhor entendimento. Com certeza quem já utilizou ANT aprenderá muito com isso!

Referências:

quarta-feira, 13 de dezembro de 2006

Annotation X Compiler

Hoje presenciei uma "experiência" nova... O Eclipse tem um recurso muito legal chamado "Clean Up" que faz correções no seu código fonte como remover variáveis locais não utilizadas, colocar o modificador final quando possível, transformar comandos for para a sintaxe do java 5 (foreach), entre outras... Porém, nem tudo são flores. Eu executei o comando em um código e aconteceu o seguinte:

// O código originalmente era:
for (int i=0; i<query.getResults().length; i++) {
  ...
}

// Após a execução do Clean-up ficou assim:
for (@SuppressWarnings("unused")
  final String element : query.getResults()) {
  ...
  // A variável element não foi usada neste código
}

Legal! O problema é que existe um bug no javac da Sun que não reconhece a annotation @SuppressWarnings("unused") dentro do código do método gerando um erro um tanto medonho:
An exception has occurred in the compiler (1.5.0_08). Please file a bug at the Java Developer Connection (http://java.sun.com/webapps/bugreport) after checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report. Thank you..

No final das contas foi só retirar a annotation @SuppressWarnings("unused") do código que o problema foi resolvido.

Espero que esta dica seja útil para outras pessoas!

terça-feira, 12 de dezembro de 2006

Gestão de ativos de software

Esta semana li um artigo no blog finito com o título "Gerenciando Ativos de Software" que trata de forma muito clara o assunto do reuso na nossa atividade do dia-a-dia. O artigo fala sobre o Tabu de reutilizar ativos de software e explica a viabilidade do reuso através de comparações e pesquisas. Como sempre um artigo muito bem escrito que se tornará uma série maior. Vamos esperar!

Java 6 oficialmente lançado

Foi lançado oficialmente o Java SE 6 ou Mustang com a JVM já sob licença GPLv2 e várias novidades como linguagem de scripting, JavaDb e WebServices nativos. JDBC 4.0, melhorias na performance, etc.

Mais informações:

http://www.javafree.org/content/view.jf?idContent=88
http://www.guj.com.br/posts/list/47897.java
http://java.sun.com/javase/6/

Download:

http://java.sun.com/javase/downloads/index.jsp

sexta-feira, 8 de dezembro de 2006

Desenvolvimento Ágil

Essa semana acessei uma sugestão de artigo no blog do José Papo e fui conferir. O artigo fala sobre experiências do mundo real usando Scrum e XP. Chama-se Scrum and XP from the Trenches. O artigo tem 90 páginas e o autor (Henrik Kniberg) explica basicamente como ele utilizou metodologia ágil no desenvolvimento de software com uma equipe de 40 pessoas e vários projetos. As experiências relatadas são muito legais, recomendo fortemente a leitura.

Links para o artigo:

terça-feira, 5 de dezembro de 2006

Fundação do Grupo de Usuários Java do Mato Grosso do Sul

Este mês estive conversando com várias pessoas e surgiu no meio das conversas a possibilidade de abrir um Grupo de Usuários Java (GUJ) em Campo Grande. Como alguns já sabem, essa é uma idéia que tenho há pelo menos uns 2 anos mas nunca tivemos uma comunidade disposta a fundar um GUJ.

Porém agora, vejo que as pessoas estão bastante motivadas com o projeto e creio que desta vez a iniciativa será um sucesso. Já iniciei a divulgação por e-mail e criei o grupo de discussão. Agora é só discutirmos o que será realizado e botar a mão na massa!!

Sucesso a todos nós!

segunda-feira, 4 de dezembro de 2006

Resumo da minha participação no JustJava

O JustJava é o maior evento sobre Java promovido pela comunidade no Brasil. O evento conta com cerca de 70 atividades entre palestras, tutoriais, painéis e cases. O evento aconteceu de 30 de Novembro a 02 de Dezembro em São Paulo, no SENAC Santo Amaro. Eu vou relatar neste post as atividades das quais eu participei.

No dia 30 aconteceu a solenidade de abertura com um pequeno atraso por causa da chuva seguido do Keynote do SouJava que, comandado por Bruno Souza (o javaman) e convidados, falou sobre a tecnologia Java no Brasil, sobre Java 6 e 7, grupos de usuários, e anunciou a abertura de 160 vagas para desenvolvedor Java na IBM, inclusive com opotunidade de trabalho no modelo home office (em casa!). Logo após aconteceu o Keynote da IBM com a palestra "Enterprise Mash-up" por Flávio Bergamaschi. Essa palestra foi demais. O cara falou sobre sistemas situacionais e deu o link de um projeto que é uma proposta para criação de sistemas deste tipo relacionando dados de fontes e formatos diferentes (RSS, WebServices, Database, etc.), muito interessante. Logo após assisti "Conhecendo a nova versão das ferramentas Rational application developer" com Fernando Galdino. Essa palestra focou bastante em mostrar os recursos da ferramenta, que apesar de ser bastante parecida com o Eclipse + WTP, tem alguns recursos interessantes da Rational para modelagem UML e tudo mais. A tarde assisti "Transações de A a Z" com Felipe Leme que sempre fala com muita propriedade e explicou muito bem os conceitos de JTA e relacionados. Depois disso, assisti o tutorial da Yara Senger e do Kleber Xavier, ambos da Globalcode, sobre "Exemplos práticos de diagramas de classes, atividade, seqüência e casos de uso". O início da palestra foi bom, mas depois do coffee break tornou-se muito cansativo e então fui embora.

No dia 01 assisti "Padrões de Design em Java" com Helder Rocha. Foi muito legal, apesar de ficar um pouco corrido explicar todos os padrões do GoF em 60 minutos, mas o Helder conseguiu priorizar legal e dar uma ótima noção sobre todos. Depois eu fiquei conversando com o pessoal da IBM e não assisti nenhuma palestra. Logo após, meu colega de especialização Givanildo do Nascimento deu o balão e acabei assistindo "JMX, JConsole no NetBeans 5.5 - Uma visão de profile" com Carlos Santiago. Ele falou de uma maneira bem simples sobre JMX e apresentou o uso do JConsole no Netbeans 5.5, o público fez várias perguntas, foi bacana. Depois do cofee break eu assisti a palestra "Desktop em minutos com genesis, Matisse, Java WebStart e JSR-296" com Allan Jones, Michael Nascimento e Raphael Winckler. Sem comentários, vou deixar pela opinião do Michael, e ele cumpre o que promete (mesmo que demore um pouquinho... ;). Depois vi a palestra do pessoal da telefônica "Java para sistemas de missão crítica: mito ou realidade?" com Alberione Braz e Marcelo Martins. Essa palestra foi um case muito legal, os caras tinham que desenvolver um sistema para processar 500 milhões de CRs/dia e isso levou a um esforço enorme de otimização que eles apresentaram na palestra. Muito interessante e infelizmente não anotei nenhum link, se alguém tiver, deixe um comentário. Logo após assisti a palestra "Modelagem Ágil e Java" com Fábio Petrillo. Ele falou de uma forma bem informal sobre modelagem ágil de verdade usando ferramentas simples como quadro branco, papel e caneta. Ótimo case, também apresentou experiências de desenvolvimento usando XP e matou a pau, principalmente com as fotos do slide! Parabéns. Para terminar, assisti "Plataforma de Desenvolvimento IBM" com Giseli Consoline. Essa palestra foi meio sem foco, mas valeu pela simpatia, no final tudo fica mais difícil.

No último dia cheguei atrasado e infelizmente perdi boa parte da palestra que mais gostaria de ver, "Java finalmente livre, e agora?" com Sérgio Amadeu, Mario Teza e Bruno Souza. Foi uma bola muito fora mesmo. Por fim não vi nada direito nesse dia pois estava bastante cansado e fui embora antes do fim do evento :(.

Mas posso dizer que o evento foi muito proveitoso, recomento a participação de todos, independente do nível de conhecimento da tecnologia Java, existem palestras mais básicas e mais avançadas, fica a gosto do freguês! Fico, por aqui. Os slides do JustJava 2006 estão sendo publicados no fórum do GUJ, confiram!

terça-feira, 28 de novembro de 2006

Palestra no Install Fest do DebianMS

Dias 2 e 3 de Dezembro vai acontecer o 1º Install Fest do grupo DebianMS na UFMS (Universidade Federal de Mato Grosso do Sul). O evento contará com diversas palestras, instalação de Linux e mini-curso de PHP+Ajax (com vagas limitadas).

Estarei ministrando a palestra "Java é Software Livre, e Agora" no dia 3 (Domingo) as 16:00. Quem não estiver fazendo nada e estiver animado para muita informação vemo-nos lá.

segunda-feira, 27 de novembro de 2006

ISO/IEC 12207 Processos Fundamentais

Introdução

Atualmente, cada vez mais sistemas são controlados por software, desde o aparelho celular até armamentos de guerra. O desenvolvimento de software representa o maior custo para a maioria dos produtos, superando os custos de produção do hardware e até mesmo do transporte.

Com isso, a indústria do software vem tentando superar a grande demanda por produtos de qualidade, visto que o processo de software nas empresas em geral ainda se apresenta bastante imaturo e de baixa capacidade. Organizações globais como ISO (Institute of Organization for Standardization), IEEE (Institute of Electrical and Electronics Engineers), PMI (Project Management Institute), SEI (Software Engineering Institute), entre outros vêm propondo uma série de modelos e padrões visando a melhoria do processo de produção de software.

Norma ISO/IEC 12207

A Norma ISO/IEC NBR 12207 foi criada pela ISO (Institute of Organization for Standardization) e o IEC (International Electrotechnical Commission) dentro de um esforço conjunto dessas organizações. A ISO/IEC 12207 teve seu desenvolvimento proposto em 1988 e a primeira versão foi publicada em agosto de 1995 e em 1998 foi publicada a versão brasileira. Em 2002 e 2004 foram feitas atualizações na norma gerando as ementas 1 e 2 respectivamente [Machado, 2006].

O objetivo da ISO/IEC 12207 é estabelecer uma estrutura comum para os processos de ciclo de vida de software, com uma terminologia bem definida, que pode ser referenciada pela indústria de software. A estrutura contém processos, atividades e tarefas que servem para ser aplicadas durante a aquisição de um sistema que contém software, de um produto de software independente ou de um serviço de software, e durante o fornecimento, desenvolvimento, operação e manutenção de produtos de software [NBR ISO/IEC 12207, 1998].

O escopo da ISO/IEC 12207 abrange todo o ciclo de vida de software, desde sua concepção até a descontinuidade do projeto de software, e por todos os envolvidos com produção, manutenção e operação do software. A norma pode ser aplicada para toda a organização, mas existem casos de aplicação em projetos específicos por imposição contratual ou nas fases iniciais de implantação [NBR ISO/IEC 12207, 1998].

Os processos da ISO/IEC 12207 são agrupados de acordo com sua natureza, ou seja, o seu objetivo principal no ciclo de vida de software. Este agrupamento resultou nas 3 classes de processos a seguir: Processos Fundamentais, Processos de Apoio e Processos Organizacionais. A figura 1 apresenta os processos de cada classe. Este artigo aborda apenas os Processos Fundamentais.


Figura 1. Processos da ISO/IEC 12207 [Machado, 2006]

Processos Fundamentais

Os Processos Fundamentais são basicamente todas as atividades que a empresa executa nos serviços de desenvolvimento, manutenção ou operação de software. Esses processos comandam a execução de todos os outros processos. Os cinco processos fundamentais de ciclo de vida são:

  • Aquisição;
  • Fornecimento;
  • Desenvolvimento;
  • Operação; e
  • Manutenção.

Na prática, o processo de Aquisição inicia o ciclo de vida de software. O processo de Fornecimento responde sobre a execução dos processos de Desenvolvimento, Operação e/ou Manutenção [Machado, 2006].

Aquisição

O Processo de Aquisição define as atividades a serem executadas pela organização de adquire ou sub-contrata um produto ou serviço de software. O propósito do Processo de Aquisição é obter um produto e/ou serviço que satisfaça a necessidade expressa pelo cliente. O processo inicia com a identificação de uma necessidade do cliente e termina com a aceitação do produto e/ou serviço [NBR ISO/IEC 12207, 1998].

A ISO/IEC 12207 define o propósito e os resultados para os sub-processos de Preparação para Aquisição, Seleção de Fornecedor, Monitoração do Fornecedor e Aceitação pelo Cliente.

Fornecimento

O Processo de Fornecimento é a sustentação para a execução dos processos de desenvolvimento, manutenção e/ou operação do produto ou serviço de software. O processo se inicia na preparação de uma proposta para atendimento de um pedido de proposta de um adquirente e encerra-se com a entrega do produto ou serviço de software. O propósito do Processo de Fornecimento é estabelecer um produto ou serviço para o cliente que atenda os requisitos acordados [NBR ISO/IEC 12207, 1998].

A ISO/IEC 12207 define o propósito e os resultados para os sub-processos de Proposta do Fornecedor, Acordo Contratual, Liberação do Produto e Suporte à Aceitação do Produto.

Desenvolvimento

O Processo de Desenvolvimento contém as atividades e tarefas para o desenvolvimento do software, dentre elas: Elicitação de requisitos, análise de requisitos, projeto, construção, integração, testes e instalação.

O propósito do Processo de Desenvolvimento é transformar um conjunto de requisitos em um produto de software ou um sistema baseado em software que atenda às necessidades explicitadas pelo cliente [NBR ISO/IEC 12207, 1998].

A ISO/IEC 12207 define o propósito e os resultados para os sub-processos de Elicitação de Requisitos, Análise dos Requisitos do Sistema, Projeto da Arquitetura do Sistema, Análise dos Requisitos do Software, Projeto do Software, Construção do Software, Integração do Software, Teste do Software, Integração do Sistema, Teste de Sistema e Instalação do Software

Operação

O Processo de Operação contém as atividades e tarefas para a operação do software e suporte operacional aos usuários. O propósito do Processo de Operação é operar o produto de software no seu ambiente e fornecer suporte aos clientes desse produto [NBR ISO/IEC 12207, 1998].

A ISO/IEC 12207 define o propósito e os resultados para os sub-processos de Uso Operacional e Suporte ao Cliente.

Manutenção

O Processo de Manutenção é ativado quando o produto de software é submetido a modificações no código e na documentação associada devido a um problema ou a uma necessidade de melhoria ou adaptação. Seu objetivo é modificar o produto de software garantindo sua integridade. Este processo ainda inclui as possibilidades de migração e descontinuidade do produto de software.

O propósito do Processo de Manutenção é modificar um produto de software ou sistema após a sua entrega apara corrigir falhas, melhorar o desempenho ou outros atributos, ou adaptá-lo a mudanças do ambiente [NBR ISO/IEC 12207, 1998].

Conclusão

A Norma ISO/IEC 12207 tem sido muito utilizada para apoiar as organizações a definirem seus processos de ciclo de vida de desenvolvimento, operação e manutenção de software. Um dos pontos fortes da norma é a alta granularidade dos processos permitindo a definição de vários processos pequenos que serão integrados na sua execução.

Além disso, a ISO/IEC 12207 foi utilizada como base para a elaboração da norma ISO/IEC 15504-5:2006 que define um modelo para a avaliação de processos de software baseado no framework da norma ISO/IEC 15504.

Referências

[NBR ISO/IEC 12207, 1998] ABNT – ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. ISO/IEC 12207 – Tecnologia da Informação – Processos de ciclo de vida de software. Rio de Janeiro: ABNT, 1996.

[Machado, 2006] MACHADO, Cristina F. Definindo Processos do Ciclo de Vida de Software Usando a Norma NBR ISO/IEC 12207 e Suas Ementas 1 e 2. Lavras: UFLA/FAEPE, 2006.

domingo, 5 de novembro de 2006

Microsoft Office 2007

Esse fim de semana terminei de baixar e instalar a nova versão do Microsoft Office. Tenho lido alguns comentários de que as mudanças da versão não agradaram e tal... Eu achei realmente ótimo, como (quase) tudo que a Microsoft lança, temos de admitir.

O que eu achei mais legal é o recurso de citação no Microsoft Word, onde você organiza suas referências bibliográficas e organiza as citações. Eu estou escrevendo um artigo para a pós-graduação e realmente isso ajuda bastante. Não tive tempo de experimentar as outras ferramentas (excel, access, outook e power point).

A Microsoft até alguns dias atrás estava liberando o download da versão pelo seu site, porém devido ao grande sucesso, eles acabaram liberando uma versão "on line". É legal, mas é necessário uma conexão muito boa para usufruir de alguma coisa, o que não é o caso da minha conexão caseira de 300 Kbps (vamos resolver isso...).

O link para acesso é: http://www.microsoft.com/office/preview/beta/getthebeta.mspx

Bom proveito!

terça-feira, 31 de outubro de 2006

ZK Framework

Semana passada foi lançada a versão 2.1.3 do framework ZK. Por várias vezes, este projeto foi considerado o melhor na categoria AJAX no sourceforge e seu lema é: AJAX, mas não JavaScript. O que esse framework é capaz de fazer é difícil dizer, acesse o Live Demo e veja com seus próprios olhos.

Aparentemente o framework é muito legal, porém ainda não tive a oportunidade de desenvolver algo de verdade utilizando. Foi o Sr. Anderson Paulino que me indicou o framework, ele está fazendo alguns exemplos e disse que é bem simples e prático. Provavelmente logo farei o mesmo.

Por enquanto deixo os links:

terça-feira, 24 de outubro de 2006

Firefox 2.0

Recentemente a Mozilla Foundation lançou a versão 2.0 do mais popular browser "não Microsoft", o Firefox. Eu mesmo já utilizo o Firefox a alguns anos e estive sempre satisfeito, pois existe a possibilidade da instalação de extensões para estender funcionalidades.

A versão 2.0 agregou várias funcionalidades, antes disponíveis através do uso de extensões. Entre elas, gosto de destacar a Restauração da sessão, que é um recurso que já existe há bastante tempo no Opera e Botão "x" nas tabs, que na versão anterior era muito chato ter que clicar no botão no final das tags. Além disso, o layout foi revisto ficando mais agradável.

Mas o mais legal dessa versão é o recurso de correção ortográfica, com direito a dicionário em vários idiomas (inclusive "brasileiro"). O Firefox sublinha de vermelho seus erros de ortografia em campos textarea, input e até mesmo em iframes.

Acesse:

sábado, 21 de outubro de 2006

Office 2.0

Esta semana li um artigo no Webinsider publicado por Gilberto Ales Jr. com o título Office 2.0 é um conceito para resumir uma idéia. Segundo o texto:

Office 2.0 é o nome dado à utilização de uma série de serviços online através de um navegador. Serviços que facilitam a colaboração e a mobilidade através do armazenamento dos dados na web e da utilização de aplicativos que funcionam através da internet, sem a necessidade de instalação na máquina local. Estes programas são focados no usuário e trazem grande inovação e ganho de produtividade.

Outras características interessantes que percebi desta nova "onda" chamada Office 2.0 é que a maioria das aplicações são gratuitas (pelo menos por enquanto) e apresentam um avanço tecnológico imenso com relação a aplicações web "tradicionais". O artigo também fornece links muito úteis para quem quer saber mais sobre o assunto (como eu, por exemplo). São eles:

  • Bugs do Office 2.0: Nem tudo são flores...
  • Aplicativos Office 2.0: Esta lista apresenta vários aplicativos que simpatizam com o conceito de Office 2.0. Realmente vale a pena dar uma olhada, tem muita coisa boa!

Inclusive, este artigo foi escrito utilizando o Google Docs & Spreadsheets, que é a evolução do Writely agora com visual google. Para mim, a vantagem disso é estar usando um editor de texto "rico" muito melhor que o editor do blogger para postar.

Ficamos por aqui, e até a próxima.