fev 072009
 

Blz!

Mais uma vez, tentando retornar do mundo offline,  hoje foi adicionada a nova versão do BoUML[1], e como de costume, gerei mais um pacote da mesma para o slackware 12.2, a qual inclusive já encontra-se disponível no site oficial 😉

BoUML é uma ferramenta de Modelagem UML livre (Software Livre) disponibilizada para MacOS, MS-Windows e Linux (em diversas distribuições).

Referências:

  1. http://bouml.free.fr
  2. http://bouml.dukitan.com
  3. http://fztech.dukitan.com/?tag=bouml
jan 122009
 

Blz!

Depois de muito tempo offline, estou retornando (aos poucos), para inicio, ontem foi adicianda a nova versão do BoUML[1], e como de costume, gerei mais um pacote da mesma para o slackware 12.2, a qual inclusive já encontra-se disponivel no site oficial 😉

BoUML é uma ferramenta de Modelagem UML livre (Software Livre) disponibilizada para MacOS, MS-Windows e Linux (em diversas distribuições).

Referências:

  1. http://bouml.free.fr
  2. http://bouml.dukitan.com
  3. http://fztech.dukitan.com/?tag=bouml
nov 162008
 

Blz! To meio off (doente, com dor de cabeça, febre e etc)

Mas consegui terminar de compilar e disponibilizar o BoUML[1] 4.8.3 para Slackware (12.1) na verdade acabou de ser lançado, ontem eu havia compilado a versão 4.8.2 e quando vou coloca-la no ar, sai a 4.8.3 :\, bem pelo menos deu tempo de colocar a mais atual, saindo do forno sendo uma das primeiras distros a ter a nova versão 😉

BoUML é uma ferramenta de Modelagem UML livre (Software Livre) disponibilizada para MacOS, MS-Windows e Linux (em diversas distribuições).

Observação:
Pode levar alguns dias/horas para que apareça no site do projeto 😉

Referências

  1. http://bouml.free.fr
  2. http://bouml.free.fr/download.html
  3. http://fztech.dukitan.com/?tag=bouml
  4. http://bouml.free.fr/download.html#Slackware
  5. http://downloads.sourceforge.net/pjmoo/bouml-4.8.3-i686-1FZ.tgz
mar 202008
 

Blz!

Mais uma compilação e empacotamento para Slackware 12.

Como já foi mencionado anteriormente fazem parte do meu ambiente de desenvolvimento em C++ a IDE Codeblocks[1] e a ferramenta de modelagem uml BoUML[2].
Com relação ao CodeBlocks, temos a novidade de uma nova versão, depois de anos sem uma versão estável foi lançado em fevereiro a primeira versão “estável” a 8.02, a qual utiliza o mesmo sistema de versionamento do ubuntu[3], ou seja, “ano.mês”, agora temos de fato uma ótima IDE multiplataforma para desenvolvimento em C++.
Ainda este mês tivemos o lançamento do BoUML 4.2 o qual adicionou suporte não somente a java e c++, temos a disponibilidade de php e python (não teste nessas linguagens).As versões para outros sistemas operacionais ou os releases oficiais podem ser encontrados nos respectivos sites, as versões que eu compilei não fazem parte do release oficial.

Observação:
Com relação ao BoUML a versão para Slackware 12 disponível no site do BoUML é a mantida por mim 😉

Downloads em:

T+!
Vida Longa e Próspera!

———————————————-

Referência
[1]http://www.codeblocks.org
[2]http://bouml.free.fr
[3]http://www.ubuntu.com

dez 052007
 
Blz!
Dando continuidade aos post do “GoF[1]”, estou agora publicando o exemplo utilizando o padrão “Abstract Factory[2]”.

Observando o exemplo Abaixo (Veja exemplo anterior[3])

Podemos observar que o modelo proposto tem apenas quatro classes básicas (Verde Claro), e toda a criação do labirinto é feita pela classe “MazeGame”.
O padrão Abstract Factory, permite a criação de uma família de objetos relacionados sem especificar suas classes concretas, ou seja:
Vai definir uma classe base de uma fábrica, que possui os métodos de criação de um conjunto de objetos, os quais são baseados em um ponto genérico(classe base), onde permite assim que tanto a fábrica quanto os objetos a serem construídos sejam de classe que estendam a família de classe raíz.

Observando o diagrama de classe acima, podemos notar que:

  • Foi definida como fábrica base a classe “MazeFactory“, a qual define métodos para criação dos tipos básicos “Room“,”Door“,”Wall“;
  • Foi criada a classe “BombedWall” que estende a classe “Wall“;
  • Foi criada a classe “EnchantedDoor” que estende a classe “Door“;
  • Foram criadas as classe “RoomWithABomb” e “EnchantedRoom” que estendem a classe “Room“;
  • Foram criadas duas fábricas que estendem a classe “MazeFactory“, sendo elas “BombedMazeFactory” e “EnchantedMazeFactory“;
Como podemos observar a classe fábrica base é capaz de construir as peças básicas do labirinto, já a classe fábrica “BombedMazeFactory” é capaz de construir tudo que a classe “MazeFactory” faz, além de pela sobrecarga produzir objetos do tipo “RoomWithABomb” (subclasse de “Room“) e “BombedWall” (subclasse de “Wall“).
Onde para que o usuário desta classe consiga construir labirintos de um dos três tipos “Básicos”, “ComBomba” ou “Encantado” basta ele passar para a classe “MazeGame” um objeto do tipo de fábrica desejado, como podemos ver no exemplo abaixo:

// MazeFactory factory;
// EnchantedMazeFactory factory;
BombedMazeFactory factory;

Maze * aMaze = mazeGame.create(factory);

“Mudando apenas a instância da factory produzimos o que desejamos.”
Por final o resultado produzido é o apresentado na figura abaixo:


A melhor forma de entender os padrões é conhecendo sua finalidade e motivação, além de ver sua implementação, então não se esqueça de baixar o código deste exemplo e consultar os links de referência no final deste post.

Download[4]: http://downloads.sourceforge.net/pjmoo/GoF_AbstractFactory.zip

T+!
Vida Longa e Próspera!

———————————————-

Referência
[1]http://pt.wikipedia.org/wiki/Design_Patterns
[2]http://pt.wikipedia.org/wiki/Abstract_Factory
[3]http://davidferreira-fz.blogspot.com/2007/11/gof-exemplos.html
[4]http://downloads.sourceforge.net/pjmoo/GoF_AbstractFactory.zip
[5]http://pjmoo.wiki.sourceforge.net/GoF

nov 242007
 

Blz!

Amigos a pedido do Bruno Pagès(o criado do BoUML[1]) estarei sempre que possível compilando o BoUML para Slackware.

Venho aqui anunciar mais uma compilação, agora para a versão mais atual a 3.3.3, lançada dia 21 de novembro de 2007.

Veja:

T+!
Vida Longa e Próspera!

———————————————-

Referência
[1]http://bouml.free.fr
[2]http://pjmoo.wiki.sourceforge.net/BoUML
[3]http://bouml.free.fr/historic.html
[4]http://bouml.free.fr/documentation.html

nov 232007
 

Blz!

Na especialização estou começando a disciplina de padrões, e como ficou acertado que para prova o livro base é nada mais nada menos que o do GoF(Padrões de Projeto)[1], então resolvi estudar de uma forma diferente.
Irei implementar os padrões tendo como base o primeiro exemplo apresentado (o labirinto), para isso tive que fazer algumas adaptações nas classes básicas e incluir alguns recursos do framework GBF[2], sendo assim além de apresentar para vocês a implementação dos padrões de quebra ainda vai a utilização do framework GBF[2].
Antes de começar a publicar os padrões, resolvi montar um exemplo base, para termos idéia de como era a implementação inicial e como ela irá evoluir com o uso dos padrões.

Sendo assim pretendo na medida do possível publicar padrão por padrão.

Lembre-se para poder melhor aproveitar o exemplo você necessita:

  1. IDE:
    1. CodeBlocks[3] (Linux e MS-Windows)
  2. Compilador
    1. Linux: GCC
    2. MS-Windows: MinGW[4]
  3. Modelagem UML
    1. BoUML[5]
  4. Bibliotecas:
    1. SDL (SDL_Image, SDL_Mixer)[6];
    2. GBF;
  5. Programar em C++
  6. Exemplo:
    1. Baixe no SourceForge[7]

Podemos observar abaixo o diagrama de classes do exemplo

  • Classes Cinzas: São do Framework GBF[2];
  • Classes Verdes: É o núcleo principal do exemplo, são as classes que dão suporte para implementação de salas, paredes e portas;
  • Classe Vermelha: É a enumeração usada para definir os lados da sala;
  • Classe Laranja: É a responsável por armazenar o labirinto;
  • Classe Amarela: É a classe que monta o labirinto;
A seguir podemos ver as classe da visão de dependência, ou seja, como é o relacionamento de fato com relação aos includes (headers) e a classe que vai executar nosso exemplo:
Essas classes seguem o mesmo código da legenda anterior, a única modificação é a inclusão da Classe Rosa, que contém o método “int main” para executar nosso exemplo.
Pois é, podemos criar uma classe que irá gerar o método main ;), digamos assim quase imitando o principio do método main da linguagem em java 😉

Abaixo podemos ver o resultado da execução do nosso exemplo:

T+!
Vida Longa e Próspera!

———————————————-

Referência
[1]http://pt.wikipedia.org/wiki/Padr%C3%B5es_de_projeto_de_software
[2]http://pjmoo.wiki.sourceforge.net/GBF
[3]http://www.codeblocks.org
[4]http://www.mingw.org/
[5]http://bouml.free.fr
[6]http://www.libsdl.org
[7]http://downloads.sourceforge.net/pjmoo/GoF.zip

out 242007
 

Blz!

Como lancei outro dia o pacote do BoUML para slackware e sempre que vou gerar um novo pacote apanho feito doido, resolvi documentar de forma bem simples os passos que utilizei para o empacotamento.

Sendo assim eles são:

  1. Ir no site do BoUML em http://bouml.free.fr
  2. Baixe o código fonte para linux, algo como “bouml_3.1.tar.gz”
  3. Descompacte o arquivo:

    • tar xvzf bouml_3.1.tar.gz
  4. Entre no diretório criado:
    • cd bouml_3.1
  5. Obtenha acesso como “root”:
    • su
  6. Execute o comando:
    • make
  7. Após a compilação, execute o comando:
    • checkinstall
  8. Preencha com as informações solicitadas. (Ver Figura 1)
  9. Copie o arquivo para um outro diretório:
    • cp bouml-3.1-i386-1FZ.tgz /opt/raiz
  10. Entre no diretório para o qual o arquivo foi copiado:
    • cd /opt/raiz
  11. Execute o comando:
    • explodepkg bouml-3.1-i386-1FZ.tgz
  12. Delete o pacote:
    • rm bouml-3.1-i386-1FZ.tgz
  13. Entre no diretório install:
    • cd /opt/raiz/install
  14. Edite o arquivo “slack-desc”:
    • vim slack-desc (Veja Figura 2)
  15. Retorne para o diretório anterior:
    • cd ..
  16. Execute o comando para empacotar:
    • makepkg bouml-3.1-i386-1FZ.tgz
  17. Responsa “Sim” para a pergunta feita: y
  18. Pronto, um novo arquivo “bouml-3.1-i386-1FZ.tgz”, será criado e estará pronto para o uso em seu slack.
Figuras Anexas

Figura 1: Tela do checkinstall.

Figura 2: Vim com edição da descrição do pacote.

T+!
Vida Longa e Próspera!

———————————————-

Referência
[1] http://davidferreira-fz.blogspot.com/2007/10/bouml-31-para-slackware.html
[2] http://bouml.free.fr
[3] http://pjmoo.wiki.sourceforge.net/BoUML

out 212007
 

Blz!

Faz tempo que não posto nada, então aproveitando a atualização que comecei a fazer no meu ambiente de desenvolvimento, começando pela ferramenta de modelagem UML, chamada “BoUML”, resolvi: compilar, empacotar e disponibilizar mais uma versão da ferramenta de modelagem UML “BoUML”.

O Download está agora disponível no meu novo endereço do projeto PJMOO, em:

Para aqueles que não conhecem o BoUML, irei rápidamente fazer alguns apontamentos:

  • é uma ferramenta livre (Software Livre)
  • disponível para MS-Windows, GNU/Linux(Binários para várias distribuições), Mac.
  • suporta diversas linguagens como: Java, C++, Php
  • customização na geração do código fonte;
  • engenharia reversa (código fonte para o modelo);
  • é possível fazer os principais diagramas da UML
    • Diagrama de Classe;
    • Diagrama de Seqüencia;
    • Diagrama de Caso de Uso com especificação;
    • Diagrama de Colaboração;
    • Diagrama de Objetos;
    • Diagrama de Atividade;
    • Diagrama de Estado;
  • geração de documentação;

E outras características, um ponto que me chamou bastante atenção e fez com que o uso foi o grande suporte a linguagem C++, suportando toda(ou quase toda) suas particularidades como “enum”, “typedefs”, “struct”, “friend” e os tipos STL.

Outro recurso é que você é capaz de controlar a geração do que você modela, por exemplo diversas classes podem ser geradas no mesmo arquivo de header ou você pode informar que não deve ser gerado nenhum arquivo e sim apenas executar o include de algo já definido, como por exemplo quando você usa bibliotecas de terceiros, como no meu caso a SDL.

———————————————-

Referência
[1]http://bouml.free.fr
[2]http://pjmoo.wiki.sourceforge.net
[3]http://bouml.free.fr/screenshots.html
[4]http://sourceforge.net/project/showfiles.php?group_id=198186&package_id=249669&release_id=548582

maio 302007
 

Blz!

Estou novamente voltando as atividades com o projeto PJMOO[1], e o mesmo me gerou duas necessidades especificas, as quais foram preparar as ferramentas para que eu pudesse voltar a programar o GBF[2] e os projetos, no caso o AeroTarget[3], sendo assim vou comentar rapidamente sobre cada uma das ferramentas.

CodeBlocks

CodeBlocks[7], é uma IDE livre (Software Livre) para Linux e Windows, na postagem anterior (CodeBlocks Slackware[4]), comentei no final sobre o pacote não estar instalando a ferramenta no local que deveria ser padrão ou seja, ele instala a ferramenta com base na raíz de diretório “/usr/local”, e pouco depois me avisaram que deveria considerar de fato a raíz do sistema “/”.

Sendo assim, consegui recompilar a IDE passando os parâmetros corretos para que a instalação siga os padrões dos pacotes slackware, abaixo disponibilizo o link para o novo pacote:

http://codigolivre.org.br/frs/download.php/5846/codeblocks-rev_4000-i686-9FZ.tgz

BoUML

BoUML[8], é uma ferramenta livre (Software Livre) para modelagem UML, é multiplataforma e tem uma boa integração com os recursos da Linguagem C++.

Como parece ser de costume, também não tem um pacote oficial para Slackware, e seguindo os moldes do pacote que criei para o CodeBlocks[7], compilei e empacotei dois pacotes sendo eles:
Onde acredito que o primeiro possa ser usado em qualquer sistema linux, pois é apenas um arquivo compacto, e o segundo é de fato um pacote para Slackware, só que desta vez está instalando a ferramenta no local certo 😉

T+!
Vida Longa e Próspera!

———————————————-

Referência
[1] http://pjmoo.codigolivre.org.br/wiki/
[2] http://pjmoo.codigolivre.org.br/wiki/index.php/GBF
[3] http://code.google.com/p/pjmoo-aerotarget
[4] http://davidferreira-fz.blogspot.com/2007/05/codeblocks-slackware.html
[5] http://codigolivre.org.br/frs/download.php/5849/bouml-2.27-i686-3FZ.tgz
[6] http://codigolivre.org.br/frs/download.php/5850/bouml-2.27-i686-FZ.tar.gz
[7] http://pjmoo.codigolivre.org.br/wiki/index.php/CodeBlocks
[8] http://pjmoo.codigolivre.org.br/wiki/index.php/BoUML