Uncategorized

Pensamentos Sobre UML e desenvolvimento de Software

Posted in Opinião, Programação, UML on June 28th, 2010 by Edipo L Federle – 1 Comment

Motivação

Bom, normalmente eu não escrevo posts no estilo que esse irá(está) ser escrito, minha motivação para escrever tal texto já vem se criando à um certo tempo, mas agora finalmente resolvi escrever mesmo que o que venho à apresentar seja totalmente bobagem para muitos, mas tenho certeza que será correto ou resoavelmente bom para muitos.

Grande parte da motivação para eu escrever esse texto vem de vários lugares, como por exemplo: universidade,…. bom basicamente a universidade encapsula todo o resto, o que inclue professores, alunos e outras n váriaveis. ( ou seriam constantes??)

Bom dito isso vamos começar.

Nota I

Quero deixar bem claro aqui que não sou um conhecedor profundo de NADA, muito menos dos tópicos desse posts. Tudo que for apresentando aqui se refere basiscamente ao que eu penso e idéias das quais simpatizo.

Entregue-me um diagrama e lhe entregarei um Software

A grande maioria das universidade(ou não) ensinam UML, não vamos entrar em questões se isso é bom ou ruim, o fato é que UML não é tudo, você não consegue fazer um software apenas com um(s) diagrama(s) UML, e certamente você não não irá fazer um software seguindo fielmente uma especificação de diagrama de classe por exemplo, é basicamente sobre isso que esse post irá tratar…..

Diagramas, Diagramas, Diagramas

Sejamos sincero com nos mesmo, somente UML não é suficiente, o que muitos pregam por ai parecendo xiitas é que a única coisa que você precisa para fazer um software é uma especificação vinda de algum analista de sistema ou sei la quem vestindo um terno.  Não estou falando aqui que a UML não é boa ou que não resolve alguns problemas, de forma alguma, acho a UML um ótima ferramenta para expor visualmente algumas idéias e fluxos mais complexos de um sistemas,  mas onde eu acredito que realmente reside o bom uso de UML é na comunicação, ou seja fazer realmente o que seja importante, não sair desenhando todas as classes do sistema e em cada classe todos atribuitos e métodos, isso é simplesmente perda de tempo, acredito que o bom uso da UML seja pra coisas realmente importante, algo como “para se ter uma ideia”. Você quer detalhamento? Qual melhor local para isso do que no código?, é nesse que você tem que ser detalhado, cuidadoso e muito especifico, pois é isso que irá fazer seu software funcionar ou não.

Agora vamos ser realistas, na grande parte das vezes os Softwares não passam de um monte de cadastros(CRUDs e mais CRUDs) e não me entra na cabeça fazer meia dúzia de diagramas para fazer especificações sobre como implementar um simples CRUD que em 90% dos casos não tem nada de especial e nem vou entrar no assunto de documentações de casos de uso, ah ia me esquecendo casos de uso de ….. CRUD.

Acredito que grande parte disso tudo venha do modelo de desenvolvimentos tradicional de software o cascata, onde existem níveis bem definidos e funções bem especificadas em cada nível, ou seja:

Finalizada um etapa podemos seguir para a próxima, basicamente aquela história, “toma aí o diagrama peão(programador) codifica essa especificação assim como um pedreiro segue uma planta de um engenheiro, no final você vai ter um software “. Usei a palavra peão para programador pois é assim que se parece, e é assim que muitos pensam. Essa abordagem me sugere dois principal resultados, um, o projeto de software é concluído fora do prazo, do orçamento e em grande parte das funcionalidades não batem com o que o cliente solicitou, o sistema vai para produção e a empresa fica eternamente pagando manutenções para que sejam corrigidos problemas que  deviam ter sido detectados na face de analise ainda( e que passaram despercebidos pelos testes), problemas esses muitas vezes de mal entendimento de requesitos do cliente; segunda, o software não é finalizado.

Então a UML não serve ?

Sou suspeito para falar isso, sou um fã de metodologias agéis, como eXtreme Programming por exemplo, eu realmente nunca ouvi falar de uma equipe XP usar diagramas de UML para nada, e segundo a literatura existente isso é pouco feito, segue um trecho do artigo “O Design Está Morto?” de Martin Fowler, que recomendo a todos ler.

“Há diversos pontos de incompatibilidade. É fato que XP possui muito pouca ênfase em diagramas. Embora a posição oficial é a de “usá-los quando eles forem úteis”, há uma mensagem implícita que diz que “verdadeiros adeptos de XP não fazem diagramas”. Esta conclusão é reforçada pelo fato de que pessoas como Kent não se sentem confortáveis com diagramas; na verdade eu nunca vi Kent voluntariamente desenhar um diagrama de software em uma notação determinada.”

E nem é pelo fato de não se usar de diagramas que não teremos um bom software, existe outras n técnicas para tal função que acredito ser muito mais interessante e mais proxima do cliente também, como os cartões CRC:

Acho isso muito elegante e eficiente, recomendo ler http://www.agilemodeling.com/artifacts/crcModel.htm que foi de onde tirei essas duas imagens acima.

Não estou falando aqui que deve-se substituir UML por cartões CRC, o que eu falo é que existe algumas situações onde cada um tem seu maior valor e praticidade, ou um junção de ambos como o Martin Fowler diz que usa, na realidade o que o que realmente importa é saber medir as coisas e saber usar a coisa mais adequada em cada situação e não tentar forçar o uso de uma única ferramenta para resolver todos os problemas e esperar grandes resultados.

O que realmente queria dizer nesse post todo é que muitas vezes principalmente em universidade e certos professores acabam achando que aquilo que é passado na aula é tudo o que se tem para resolver problemas, e só aquilo que deve ser usado e pronto, me de ótimos resultados com isso, quando as coisas são muito mais complicadas… ou posso simplesmente esta falando bobagem….. quem sabe.


Campanha #SouDev Twitter

Posted in Opinião, Programação on January 29th, 2010 by Edipo L Federle – 5 Comments

Ontem chegou até min no twitter via @felipedeveloper uma mensagem sobre uma campanha #souDev no twitter, realmente não sei quem começou isso(se o fundador ler esse post por favor comente), essa campanha tem como simples objetivo fazer com que os desenvolvedores se “achem” no twitter e com isso fazer com que nossa timeline se torne algo melhor, onde possamos conhecer pessoas que trabalham com tecnologia, trocar informações e tudo mais.

Esse post tem como objetivo que o pessoal que ta participando do #SouDev deixe seu comentário para que eu possa ir adicionando aqui no post e com isso poder compilar opiniões de todos sobre a campanha, e até discutir formas de ampliar ela, quem sabe até um blog :D

Então pessoas, o que vocês pensam do #SouDev ?

Desculpas…

Posted in Uncategorized on September 23rd, 2009 by Edipo Luis Fderle – 2 Comments

Aos poucos que chegam ate esse blog, em especial a quem cai em posts sobre o GIT, queria dizer que o novo post de git, vai sair sim, iria sair essa semana ainda, tava tudo pronto(mias de 9 paginas) e BUUM perdi deu pau aqui e perdi o texto todo…. falha minha, espero que os poucos que frequentam esse blog nao o deixem sozinho :) … logo estarei postando um novo post sobre git…

Abraços.

O Twitter esta fazendo você postar menos?

Posted in Opinião on June 8th, 2009 by Edipo Luis Fderle – Be the first to comment

Ouvi essa pergunta não sei em que lugar esses dias, e fiquei pensando sobre isso alguns minutos (sim minutos isso não merece mais do quem alguns poucos minutos J), e cheguei à conclusão que em alguns casos sim, ele faz com que você não crie um post, eu apenas digite umas palavras e poste um link, na “caixinha” de 140 caracteres.

Eu uso o twitter a menos de três meses, minha escolha de criar um não foi a pela quais infelizmente grandes partes das pessoas fazem que é: Ter o Maximo de seguidores possíveis criei o meu com o intuito de poder compartilhar de forma rápida e fácil algumas coisas que são de meu interesse e que interessam as pessoas que me seguem, claro às vezes posto qualquer merda do tipo “Ai que frio que ta aqui”, mas isso acontece com todo mundo, antes de eu ter um twitter eu já via muitas pessoas usando e falando bem,   mas nunca tive o interesse de criar uma conta, até que um dia criei, e fiquei impressionado com o quão ele é bom quando usado da maneira correta,  apesar do twiiter “fazer” a pergunta “O que você esta fazendo”  ele não é sobre isso,  a partir do momento em que você começa a usar o twitter de forma correta ele é fantástico.

Antes de mais nada, twitter não é microblogging, sim é Wikipédia diz isso, mas não acredite nela nesse assunto ela fala merda.  Bom, Blog e Twitter são coisas diferentes logo não podemos substituir um pelo outro, o que na verdade acontece é que as vezes, por exemplo, você ta lendo algum livro legal, ou ta estudando   alguma coisa X e pensa “Ops, isso é legal merece um post” ai você para e diz – Ah vou logo colocar um link sobre o assunto no twitter e escrever “Olhem que legal isso”, certo, isso funciona é bom sim, mas não é um coisa que se pode equiqualar com um post com algunas paginas no seu blog,  nesse exemplo isolado você esta somente passando a informação que você acabou de ler ou coisa do tipo para frente, no caso no blog é diferente, você está ali no seu espaço escrevendo a sua opinião sobre dado assunto colocando seus exemplo e tudo mais.

Isso é realmente incrível, porque eu vou fazer um post para escrever algo =< que 140 caracteres, não é dignos de um post, o que se deve fazer é realmente separar as coisas, quando você sabe que um dado assunto não irá lhe render um post decente, simplesmente não o faça, claro, isso também não quer dizer que você deve twittar qualquer merda que esteja lendo ou algo assim.

Basicamente eu penso assim, você pode transmitir o que quer com até 140 caracteres? Se sim use o twitter senão, use o seu blog, e logo depois use o twitter para transmitir o link para o post J, acredito que é assim que deve ser vista as coisas quando se trata disso, é e tenho dito Ops, será que eu poderia ter dito isso em 140 caracteres?

Coisas que possam lhe interessar:

http://www.twitter.com/

http://www.twitterbrasil.org/

http://www.twitterportugal.com/