Design é importante?

Queria saber a opinião do pessoal do forum…

Vcs acham que design é importante ? Fazer algum design antes de sair programando é realmente util…

estou aqui sabado trabalhando sem ter recebido nada de design e fico me perguntando será que vale a pena eu tentar fazer algum design antes de sair tentando fazer alguma coisa que não será o esperado na segunda…


spiff
Space is my domain

É sim. Design (bem feito) ajuda a evitar erros na hora de programar, além de servir de guia na hora de desenvolvimento, evitando que sejam criadas coisas que fujam do propósito do software desenvolvido. Mas, convenhamos: não é todo software que precisa passar por um processo de design.

Com certeza é!

Depende da natureza da aplicação q será desenvolvida…
Acho importante definir 1º a Usabilidade do seu projeto p/depois
pensar no design…se o seu projeto irá rodar no interior de algum
servidor sem nenhuma(ou quase) interação c/o usuário acho desnece
ssário pensar em design…o q vale aí é lógica pura de programação.
mas se vc tah fazendo uma pág p/net ou um cadastro q será frequentemente acessado/manipulado/modificado é essencial q o design seja atrativo ao usuário ou q ofereça uma boa interação visual com o mesmo. Pense na comunicabilidade da sua aplicação com o usuário.

Errr, qdo se fala em design de software, fala-se no projeto dele, e não no layout de um GUI, ou qualquer coisa relacionada a HCI.

Errr, qdo se fala em design de software, fala-se no projeto dele, e não no layout de um GUI, ou qualquer coisa relacionada a HCI.

:shock: Sério???
Nossa…atirei longe… :oops:
Meu prof de Multimídia,Interface Homem-Máq é uma m…mesmo…
Isso q vc fala(projetar um soft) eu faço na modelagem …
Desculpa,e esqueçam o post acima!!!Tava falando de aspectos
físicos do sistema e da interação da View c/o usuário…
Nada ver(…) :oops:

ola pessoal,

domingo e eu aqui trabalhando de novo… e o pior é que está muito frio…

uma outra questao sobre o assunto…

se vc é o responsavel pelo desenvolvimento de um modulo do sistema e alguem vem e te entrega uma especificaçao funcional e um prazo para entrega ainda assim vcs acham que eu, papel desenvolvedor, devo tentar algum design antes de sair programando… mesmo que seja o minimo possivel ?
Vale a pena tentar isso ?

Pergunto pois estou tento muitas dificuldades de sair fazendo…

Valeu,


Spiff

Sem um design inicial, aa dificuldades no decorrer do projeto, e consequentemente a perda de tempo refazendo trabalho, serao muito maiores do que se um planejamento inicial tivesse sido feito.
Eh chato? MUITO. Mas eh muito mais chato e desistimulante voce ter que ficar quebrando a cabeca para recosntruir coisas que poderiam ser previstas em tempo de projeto.

Com um design inicial voce ja consegue ter uma nocao muito melhor das necessidades, e consegue programar bem mais focado tambem. Nao precisa fazer detalhamento de tudo, querer prever cada minimo detalhe e classe, pois simplesmente nao tem como saber de antemao tudo o que sera necessario de uma maneira final.

O importante eh voce ter dominio do problema e da tecnologia com a qual esta trabalhando, pois sem isso fica mais complicado fazer analises reais. Depois, sinta-se livre para mudar coisas no decorrer do projeto, para mudar classes ou adicionar novas, desde que de uma maneira consistente ( e ai entra a diferenca entre ter e nao ter dominio do problema ).

Se voce nunca fez algum design/analise de requerimento/diagramas e afins, faca um esforco para pegar bem esta parte, pois com certeza seus sistemas ficarao melhores!!

Nesses casos eu geralmente faco um “mapinha” de como vou desenvolver. Nada formal ou que siga regras, mas sim anotacoes sobre como penso que o processo de desenvolvimento decorrera. Com essas simples anotacoes - lembrando que nao importa se vc faz um monte de desenhos ou anotacoes que parecam sem sentido para os outros; o importante eh voce entender - voce ja consegue ter uma ideia de como programar e caminho a seguir, ao inves de sair codando “na louca”.

Rafael

Ou, quer saber a verdade?? Engenharia de software é um saco. Mas desenhar o sistema nao precisa ser.

Com um papel e um lápis vc consegue fazer um design rápido e sem frescuras (como DRD, DFD, sei lá, esqueci os nomes). Enquanto vc desenha, vc vai falando (recomenda-se fazer em voz alta): “Hum, o cosmonauta Spiff acessa essa página, e aqui vai ter um DB com a informacao que ele precisa. Vai ter x, y, z servicos, e bla bla bla…”

Se ninguém quer ver seu design, entao faz um só pra vc. Como vc nao tem que agradar ninguém além de si mesmo, vc pode fazer do jeito que te faz enxergar bem o que vc precisa ver, com o nivel de detalhes que vc precisa pra pensar.

Claro, se vc é CIO, e vai coordenar varias pessoas, vc precisa de padroes para os rabiscos, pra que um consiga entender o rabisco dos outros. Daí vc inventa nomes bonitos para os padroes para os rabiscos, compra software que faz rabiscos muito mais bonitos nos mesmos padroes, e chama isso de Engenharia. Entendeu??

gostei da definição de engenharia de software :slight_smile:

Rafael,

Eu tambem acho importante termos uma fase de design antes da construção. Porem no projeto em que estou trabalhando isso não é a regra e sim a excessão ! Nos modulos que fiz o levantamento e a parte funcional eu montei algum design pra me guiar e que acabou sendo util pois tive que repassar esse modulos para outras pessoas. Apesar de ter feito algo sem muita rigidez acabou sendo bastante util para que pegou o ‘bonde’ andando e com certeza nos irá poupar trabalho em futuras manutenções.

O que acabou ocorrendo é que acabei sendo ‘presenteado’ com um modulo complicadíssimo do sistema onde só foi feita uma funcional, alias nao muito completa, pois a pessoa que fez é que iria codificar e tal… e agora o tempo já passou e eu tenho perdido muito tempo tentando codificar sem algo para me guiar. Ontem eu parei e resolvi fazer um design bem simples para primeiro levantar as duvidas que tenho e ir me guiando na codificacao.

sair ‘codando’ nunca tinha ouvido :stuck_out_tongue:

Duke,

a minha ideia é fazer algo simples, sem muita formalidade, mas que seja algo que de certa forma possa me ajudar a codificar e que sirva como uma documentação para manutenções futuras…

de uma forma geral seria muito util se isso tivesse sido feito na sua devida fase e de uma forma geral em todo o projeto… mas…

valeu pelos toques pessoal,

Spiff

Spiff Is god ? Are you on !

Acho importante o design, mas tem gente que “designa”, “designa” e nada.
Tem que levar tudo em conta : os prazos, a urgencia da implementação e tal … de repente é melhor cair com a mão na massa de uma vez, você pode até encontrar coisas que nunca iria imaginar, e as vezes é bom fazer um bom planejamento.
Já deparei com ambos os casos, então, acho que o mais importante é você equacionar design e mão-na-massa de acordo com a situação.

Eu acredito que bom design vem da prática, e não tem jeito melhor de desenhar uma aplicação do que metendo a mão na massa e refatorando até ficar bom.

Esse é um dos princípios básicos do TDD (Test-Driven Development), que, apesar de eu não seguir à risca, gosto (e uso) bastante. Refatorar é sempre mais rápido, e eficiente, no fim das contas, do que passar meses na frente de um editor de UML pra depois programar. A idéia é sempre fazer o design enquanto se está programando :wink:

UML é uma besta tão gigante que ainda ta para ser criado um projeto que use todos os 999999999 diagramas.

Por isso que sou adepto do SML, a starfield modeling language.

Até agora, não inventaram linguagem de modelagem melhor que a linguagem de Napkin.

É simples:

Voce vai almocar com o cara que precisa do sistema. Ele te explica tudo, e vc tem a ideia de como fazer na hora. Aí vc pega um guardanapo, rabisca e mostra pra ele, explicando como vc entendeu.

Ele vai falar “naaaaaaaaaaao, nao é assim”. E vc desenha outra coisa, e explica de novo. Até voces chegarem num consenso.

Fim do almoco, vc senta e faz. Fim.

Isso, claro, só funciona se vc tiver features bem pequenas e divididas no seu sistema. Mas funciona que é uma maravilha :smiley:

Galera, descupem a ignorancia, mas o que é refatorar?

Até mais.

Galera, descupem a ignorancia, mas o que é refatorar?

Até mais.[/quote]

Acabei de descobrir que ir no google e fazer uma pesquisa não faz mal a ninguem. Encontrei a seguinte (e clara) explicação para o que é refatorar.

[quote]
É o processo de mudar um software de forma que o comportamento externo do código não seja alterado mesmo que sua estrutura interna seja incrementada. É o processo de reorganizar o projeto de um sistema para torná-lo mais flexível e/ou reusável.[/quote]

Até mais.

Provavelmente a expressao veio da Matemática… vc mexe nos fatores que compoem seu sistema, sem mudar o produto… : ))

[]s!!

Po eu gosto tanto de engenharia de software… Nao sei porque a galera aki no gosta…

Abraços

Pessoal,

Pela definição de Refatorar, será que é melhor alterar um software já pronto ao invés de estudar e planejar a melhor forma de implementar ?
Acho que refatoração vai acabar sendo mais custosa.

Ivan.