quinta-feira, outubro 27, 2005

Treinamento no ITA

Realizei um treinamento no Instituto Tecnológico de Aeronáutica(ITA) que fica em São José dos Campos. O ITA é vinculado ao Centro Técnico Aeroespacial que por sua vez é vinculado ao Ministério da Defesa.

O treinamento foi acerca de uma ferramenta da IBM Rational chamada Rational Rose RealTime. Seu foco principal é auxiliar no desenvolvimento de sistemas embarcados de tempo real. Participaram doutores, mestres, profissionais vinculados à Embraer, ao Instituto Nacional de Pesqueisas Espacias(INPE) e oficiais da Força Áerea.

Gostei do treinamento pois conheci uma ferramenta que já existe há um bom tempo e que possui uma grande dose de Model Driven Architecture(MDA). Foi a partir dos conceitos dessa ferramenta que surgiram os principais diagramas novos da UML 2.0. Nessa aula fez mais sentido a utilidade dos diagramas de estrutura com suas portas e relays! Foi muito interessante também verificar como funciona um diagrama de Estados executável e que permite inserir código C++ nas transições de estados e em suas entradas e saídas(inclusive com sub-estados). Uma interessante funcionalidade do software é que ele permite simular visualmente a modelagem e a codificação feita.

Marcadores:

Leituras da Semana II

Agile Development with ICONIX Process de Doug Rosenberg et. al. - uma interessante leitura acerca de uma metodologia que existia já há algum tempo(vide o livro Use Case Driven Object Modeling with UML: A Practical Approach) e que se adaptou ao mundo ágil. O que gostei: ela busca ser uma intermediária entre processos muito leves em termos de documentação e design e metodologias pesadas com BDUF(Big Design Up Front). A crítica ao refactoring extremo tem uma certa lógica. O que não gostei: os diagramas de robustez do exemplo estão muito detalhados, chegando ao design. A simplificação feita pode acabar confundindo pessoas novas na análise e design OO. Os diagramas da análise mais parecem diagramas de design. Tirando esse pequeno problema é um bom livro para usar um processo ágil com modelagem. Outro bom exemplo disso é o Feature-Driven Development.


Integrating Agile Development in the Real World de Peter Schuh - Livro excelente. Faz uma análise das principais práticas do desenvolvimento ágil e explica como aplicá-las no mundo real do desenvolvimento de software. É uma visão pragmática de que toda metodologia precisa de uma transição incremental na equipe. Ótima referência para equipes que procuram inovar em seus processos de trabalho e com isso aumentar a qualidade e produtividade dos projetos.

Marcadores:

segunda-feira, outubro 24, 2005

Ambientes de desenvolvimento de software - Parte III

Neste terceiro artigo trataremos das configurações necessárias no seu ambiente para permitir a geração e recebimento de e-mails pelas ferramentas (especialmente o dotProject e o Eventum em nosso caso). Só para lembrar que no artigo anterior detalhou-se a necessidade de uma infra-estrutura com PHP e MySQL e foi adotada uma arquitetura WAMP com o uso da distribuição Apache2Triad.

O primeiro teste que você pode fazer para testar sua instalação é apontar o seu browser (recomendo sempre a utilização do Firefox!!!) para a URL http://localhost/apache2triadcp . Este é um site contendo todas as informações relevantes da instalação do Apache2Triad. Seu browser irá requisitar o login (usar ‘root’) e a senha que você escolheu durante sua instalação.



No lado direito, na aba “Servers” você verá uma figura de um X ao lado do XMAIL(logo abaixo da peninha do Apache!). Clicando na figura você será levado ao PHPXMail. Este é um site Web que facilita a configuração dos arquivos do servidor de e-mail XMail.



O usuário root e a senha que você deve usar para configurar o servidor de e-mail são os mesmos usados para se logar no site do Apache2Triad. Ao se logar você deverá ter uma série de opções para configurar o servidor de e-mail. No nosso caso só precisaremos no momento utilizar a opção ‘server domains’.



Clique no domínio localhost e você encontrará as contas de e-mail já existentes na sua configuração. Provavelmente admin. Modifique um usuário clicando nele (recomendo mudar a senha do admin para usá-la posteriormente).





Para criar um novo usuário basta clicar em ‘new user’ e colocar seu nome(não coloque o @localhost pois o sufixo é automático) e senha. Crie um usuário teste1 e teste2 para realizar o teste inicial. Confira se seus uauários foram criados com sucesso.



Para testar sua configuração aponte seu browser para: http://localhost/uebimiau/ . Faça o login com o usuário teste1. Note que você pode mudar o idioma para português. Caso você queira que o default seja o idioma português vá no diretório htdocs\uebimiau\inc do local onde foi instalado o Apache2Triad (no meu caso: C:\apache2triad\htdocs\uebimiau\inc). Edite o arquivo config.languages.php. Lá você encontrará o seguinte código na linha 9:
$default_language= 5; //index of language, starting with zero
Na minha configuração eu mudei para 14 para habilitar o português. Para achar a língua é só contar (a partir do zero como está descrito!) a posição no array onde ela se encontra.



Faça um teste e escreva uma mensagem para o usuário teste2.





Saia e se logue com o usuário teste2 e você deverá ver o email recebido pelo usuário!





Para quem quiser maiores informações ou configurações avançadas recomendo entrar no site das ferramentas:

http://www.xmailserver.org/ - Página do servidor XMail
http://phpxmail.sourceforge.net/ - Página do configurador via web do servidor XMail

Até nosso próximo artigo, que tratará da instalação do Subversion e do TortoiseSVN!!!

Marcadores:

sexta-feira, outubro 21, 2005

Ambientes de desenvolvimento de software - parte II

O primeiro passo fundamental para criar o ambiente integrado de engenharia de software é a fundação, a infra-estrutura necessária para as ferramentas.

Para realizar a minha avaliação utilizei meu equipamento pessoal instalado com o Windows XP Professional (desculpem-me fãs do Linux, mas é a máquina que eu tinha disponível em casa!).

A arquitetura fundamental necessária parao ambiente é o LAMP(Linux + Apache + MySQL + PHP) ou o WAMP(Windows + Apache + MySQL + PHP). Também deve funcionar em WIMP(Windows + IIS + MySQL + PHP). O requisito mais importante é a existência de um servidor Web que suporte PHP e um banco de dados MySQL.

Uma coisa devo reconhecer quando utilizei o Windows (apesar de eu também ser fã do Linux): a facilidade de instalação de uma solução completa AMP(Apache + MySQL + PHP) entre outros!

O Alex Mancini da Romênia criou um bundle com diversas ferramentas necessárias para gerar o WAMP. O mais impressionante de tudo isso é que você instala no esquema "Next, Next" de wizards de instalação rápida! Como um colega meu da Universidade São Judas Tadeu comentou quando eu instalei o software em dez minutos: "Você devia ter chegado antes!!! Perdi um fim de semana instalando cada um desses programas no Windows e no Linux e ainda não possuo todas essas funcionalidades!". O bundle se encontra no Apache2Triad.

Essa ferramenta já instala e configura de uma única vez os seguintes softwares: Apache2, PHP, MySQL, Perl, Python, SSL, AWStats, MySQL, winMySQLAdmin, PHPmyAdmin, PostGreSQL, pgAdmin, phpPgAdmin, XMail, PHPXMail, UebiMiau, SLIMFTPD, PHPSFTPD, PHP, PEAR, SMARTY. Impressionado? Eu também fiquei :-) !!! Porque além disso vocÊ gera inicialmente uma senha única para acessar o Apache, o MySQL, o PostGreSQL e o XMail facilitando assim a nossa vida de configuração posterior dos ambientes!

Portanto você ganha um ambiente contendo um servidor Web, 2 bancos de dados open source robustos, Ferramentas de desenvolvimento PHP, Perl e Python, Um servidor SMTP/ POP3/IMAP(XMail) e uma ferramenta WebMail(UebiMiau, que é um produto open source feito por brasileiros! Avante Brasil :-)!!! ).

Para o ambiente de desenvolvimento recomendo a utilização do Apache2Triad versão 1.4.3. Testei também com a versão 1.5.3 mas ela usa o PHP5 e MySQL5 e ainda é uma versão "Edge" e não "stable" como a versão 1.4.3 que usa PHP4 com MySQL4. Além disso as ferramentas do ambiente integrado foram testadas e desenvolvidas usando o PHP4 e MySQL4 e algumas delas ainda não possuem suporte ao PHP5 e ao MySQL5(apesar de que podem rodar... mas é por sua própria conta e risco!!!).

Creio que já falei demais neste artigo. A instalação é tão simples que não colocarei nenhum screenshot e explicação adicional. Quem tiver interesse pode entrar em contato caso tenha tido problemas com o Apache2Triad.

No próximo artigo trataremos do uso e configuração das aplicações Web Apache2Triad, PHPMyAdmin, PHPXMail e UebiMiau. Passo importante para testarmos nossa configuração de "issue/bug tracking" com disparos de emails aos envolvidos!!!

Marcadores:

Citações em blogs de desenvolvimento de software

Descobri, através do analisador de estatísticas gratuito que coloquei em meu site, que já fui citado em dois blogs de desenvolvedores de software da nossa América Latina!!!

Obrigado a vocês pela citação e podem ficar tranquilos que creio fortemente que todos irão apreciar a série de artigos sobre ferramentas integradas open source para criação de ambiente de desenvolvimento de software!

Os blogs são:

Navegapolis
Planetacodigo

A página para o artigo é:

http://www.navegapolis.net/content/view/189/

Atualização em 24/10/2005:

Os artigos sobre ambientes de desenvolvimento de software também foram citados no Weblog do André Franciosi.

Outro blog com a tradução do Planetacodigo é http://www.zenitservices.com/PlanetaCodigo/Oct2005/21-Oct-2005.html

Marcadores:

quinta-feira, outubro 20, 2005

Leituras da Semana

A partir de hoje farei a lista de livros que comecei a ler durante a semana. As resenhas de livros que eu terminar vou colocar em artigos separados!


A Náusea de Jean Paul Sartre - O personagem Roquentin se horroriza com sua própria existência. O impacto inicial desse livro é impressionante, o mesmo que tive quando li o Estrangeiro de Camus. Faz realmente pensar em como podemos viver racionalmente dentro de um Universo irracional.

Managing the Design Factory de Donald Reinertsen - Leitura obrigatória para aqueles que trabalham com desenvolvimento de produtos. É uma excelente também para o desenvolvimento de softwares e sistemas bem como implantação de fábricas de software. Estou relendo-o!!! Esta é a terceira vez e a cada leitura eu continuo me surpreendendo!

O Mito de Sísifo de Albert Camus - É o ensaio que detalha a noção existencialista do absurdo e debate de maneira magistral a questão do suicídio.

Practical Development Environments de Matthew Doar - Um excelente livro introdutório sobre ambientes para desenvolvimento de software para equipes. O livro que eu gostaria de ter escrito!

Star Wars D20 Revised Core Rulebook - A pedidos dos amigos da turma de RPG, estou relendo este e algumas seções de outros livros de Star Wars D20. No dia 22 de outubro de 2005 serei o mestre de uma nova campanha de Star Wars, agora que a campanha de Living Force da RPGA está terminando.

Marcadores:

Ambientes de desenvolvimento de software

Após uma análise e testes de diversas ferramentas open source para automatizar e auxiliar o processo de desenvolvimento de software finalmente cheguei a algumas conclusões interessantes!

Consegui realizar a integração das ferrramentas dotProject, Eventum, Subversion, WebSVN, TortoiseSVN, Ant e CruiseControl para gerar um excelente ambiente para desenvolvimento em equipes colocadas e/ou distribuídas geograficamente.

Irei escrever outros artigos específicos sobre cada uma delas, esclarecendo os benefícios de cada funcionalidade e da integração completa.

Abaixo a descrição do foco de cada ferramenta:

dotProject - uma ferramenta para gestão de projetos totalmente baseada na Web. Posso dizer que é uma excelente substituta para o Project Server! E o melhor de tudo: você recebe o código-fonte(escrito em PHP) permitindo assim uma flexibilidade nas customizações!

Eventum - uma ferramenta para gerenciamento de 'issues' e 'bugs'. Ela é extremamente poderosa e na minha análise concorre frente a frente com ferramentas comerciais como FogBugz, JIRA e Rational ClearQuest. Foi desenvolvida e é utilizada pela equipe de desenvolvedores do MySQL no seu processo de desenvolvimento desse excelente banco de dados!

Subversion - O substituto para o CVS. Atualmente a melhor ferramenta de SCM(Software Configuration Management) open source. Concorre de frente com produtos comerciais como ClearCase, Perforce e outras. Suas funcionalidades estão a anos-luz do Visual SourceSafe da Microsoft(apesar de que em novembro ocorrerá o lançamento do Visual Studio Team System que conterá um produto de SCM mais robusto da MS).

WebSVN - Um produto escrito em PHP que permite a visualização de seus repositórios do Subversion via Web. É excelente especialmente para controle do projeto e para sua visibilidade.

TortoiseSVN - Ferramenta client que deve ser instalada nas máquinas dos desenvolvedores e membros da equipe que precisam ter acesso de check-in e check-out aos repositórios do Subversion.

Ant - Ferramenta para geração de builds automatizados

CruiseControl - Ferramenta para Integração Contínua. Ela monitora o status dos repositórios das ferramentas de SCM. No momento que detecta novas alterações dispara todo o processo de build da aplicação e pode ainda executar os testes de unidade e smoke tests. Ainda por cima gera um web site contendo todos os relatórios do build e de seus testes!

Fiquem ligados para outros artigos onde irei descrever cada uma das ferramentas, realizar comparativos e também uma demonstração com screenshots da integração entre elas, com o intuito de criar um ambiente de desenvolvimento de software que tem altos níveis de disciplina e gestão. Pode ser usado tanto para metodologias ágeis como para ajudar a atingir níveis de maturidade do CMMI !!!

Marcadores:

Apresentação sobre metodologias ágeis e XP

Fiz uma apresentação no SPIN(Software Process Improvement Network)-SP em 2003, juntamente com o Klaus Wuestefeld, acerca das metodologias ágeis e Extreme Programming.

Foi um evento muito interessante e que gerou diversos feedbacks positivos.

O link da apresentação se encontra aqui.

Comentários sobre a apresentação são bem-vindos!!!

Marcadores:


Veja as Estatísticas