Sunteți pe pagina 1din 6

Os 7 Principios do desenvolvimento de software

http://www.macoratti.net/11/05/sd_prnc1.htm

Padres de Projeto - Os 7 princpios bsicos do desenvolvimento de software


A princpio supe-se que todos desejam construir o melhor software possvel escrevendo o melhor cdigo possvel. Mas desejar uma coisa e por em prtica outra. Neste artigo eu apresento os 7 princpios bsicos do desenvolvimento de software como descritos por David Hooker, a partir do qual realizei uma traduo livre, acrescentei alguns idias baseado-me em minha experincia. O objetivo fornecer um material de consulta e reflexo sobre a arte de desenvolvimento de software, sim , arte, pois programar qualquer um programa mas desenvolver software de qualidade para poucos. No encare estes princpios como absolutos mas medite sobre cada um deles, examine-os, e retenha o que for proveitoso para voc.

Primeiro Princpio - A razo pelo qual tudo existe

Problema : A tomada de decises durante o desenvolvimento de software difcil. Um sistema de software existe por uma razo: para fornecer valor aos seus usurios. Todas as decises devem ser tomadas com isso em mente. Antes de especificar um requisito do sistema, antes de implementar uma nova funcionalidade no sistema, antes de determinar a plataforma de hardware ou o processo de desenvolvimento a ser usado, faa para si mesmo a seguinte pergunta: "Ser que isso acrescenta valor real ao sistema ? " Se a resposta for "no", no faa. Todos os outros princpios se apiam neste princpio. Todas as decises devem ser 'decises corretas' , e, somente aquelas que acrescentam valor ao sistema devero estar presentes no sistema. Obs: A questo de quais ferramentas e metodologias que devem ser usadas, esto afetadas a organizao que vai desenvolver o sistema. Antes de adotar uma ferramenta ou metodologia

1 de 6

02/07/2012 23:53

Os 7 Principios do desenvolvimento de software

http://www.macoratti.net/11/05/sd_prnc1.htm

talvez a pergunta que deve ser feita : "Isso vai me ajudar a acrescentar e manter valor ao sistema ?"

Segundo Princpio - Mantenha as coisas simples (KISS - Keep It Simple ! Stupid)

Problema : Temos dificuldade em entender os sistemas quando eles se tornam mais complexos O desenvolvimento de software no um processo aleatrio ou casual. H muitos fatores a considerar em qualquer esforo de desenvolvimento. Todo o projeto deve ser o mais simples possvel, isso no significa ser desprovido de recursos no sentido de no usar os recursos necessrios. Um projeto simples fcil de compreender e de manter. Isso no quer dizer que os recursos essenciais para que o projeto tenha sucesso sejam descartados em nome da simplicidade. Os modelos mais elegantes so geralmente os mais simples. Simples tambm no significa "rpido e sujo." Na verdade, muitas vezes simplificar implica em muito trabalho que inclui vrias iteraes e muita discusso. A recompensa um software que mais fcil de manter e menos suscetvel a erros.

Terceiro Princpio - Mantenha a viso (Maintain the Vision)

Problema : Um sistema em construo esta se degradando em uma miscelnea de projetos e subsistemas incompatveis, ameaando assim no cumprir o objetivo do projeto. Uma viso clara e bem definida do sistema essencial para o sucesso de um projeto de

2 de 6

02/07/2012 23:53

Os 7 Principios do desenvolvimento de software

http://www.macoratti.net/11/05/sd_prnc1.htm

software. Sem isso, um projeto quase infalivelmente acaba sendo concebido pela iniciativa de uma ou duas mentes restrito sua prpria viso. Se no existir uma integridade conceitual um sistema ameaa tornar-se uma multiplicidade de modelos incompatveis unidas pelo tipo errado de parafusos. Comprometer a viso arquitetnica de um sistema de software enfraquece o projeto e acabar por quebrar mesmo os sistemas mais bem projetados. Ter um arquiteto com poderes que pode manter a viso e garantir o seu cumprimento ajuda a garantir um projeto de software de sucesso.

Quarto Princpio - O que voc produzir algum vai consumir (What you produce they will consume)

Problema: Um monte de software que produzido difcil ou impossvel de usar, compreender, manter, ampliar, etc. De alguma forma ou de outra algum vai usar, manter, documentar ou depender de ser capaz de compreender o seu sistema. Assim, sempre especifique, projete e implemente tendo em mente que algum vai ter que entender o que voc esta fazendo. Especifique pensando nos usurios finais. Projete tendo em mente os desenvolvedores. Ao codificar preocupe-se com aqueles que devem manter e ampliar o sistema. Algum pode ter que depurar o cdigo que voc escreve, e isso faz dele um usurio de seu cdigo. Tornar mais fcil o trabalho de quem vai consumir o que voc produziu agrega valor ao sistema.

Quinto Princpio - Esteja aberto para o futuro (Build for today Design for tomorrow)

3 de 6

02/07/2012 23:53

Os 7 Principios do desenvolvimento de software

http://www.macoratti.net/11/05/sd_prnc1.htm

Problema : Como voc lida com exigncias atuais de forma eficiente em face das necessidades futuras ? Um sistema com uma longa vida tem mais valor. No ambiente de desenvolvimento de software atual onde as especificaes mudam em um piscar de olhos e onde as plataformas de hardware se tornam obsoletas com meses de uso, o tempo de vida de um produto de software geralmente medido em meses ao invs de anos. Porm sistemas de softwares robustos e bem projetadas tendem a durar por mais tempo em produo. Para fazer um produto de software com esse perfil de sucesso um projeto deve estar apto a se adaptar s necessidades em constantes mudanas do usurios. Isso somente possvel para projetos que foram concebidos desde o princpio levando isso em conta. Sempre pergunte : "O que acontece se...?" E prepare-se para todos os tipos de respostas possveis de forma a criar sistemas que resolvam no um problema especfico mas um problema geral. Sempre escreva o cdigo necessrio na implementao e assegure-se sempre de que a arquitetura do projeto seja flexvel e extensvel de modo a ser capaz de envolver cenrios futuros. Adotando essa postura um projeto de software se torna mais reutilizvel.

Sexto Princpio - Planeje com antecedncia para Reutilizao (Plan ahead for Reuse)

A reutilizao economiza tempo e esforo. Alcanar um elevado nvel de reutilizao sem dvida o objetivo mais difcil de alcanar no

4 de 6

02/07/2012 23:53

Os 7 Principios do desenvolvimento de software

http://www.macoratti.net/11/05/sd_prnc1.htm

desenvolvimento de um sistema de software. A reutilizao de cdigo e de projetos, foi proclamada como um dos principais benefcios do uso de tecnologias orientadas a objeto. No entanto, o retorno sobre este investimento no automtico. Para alavancar as possibilidades de reutilizao que oferece a programao Orientada a Objetos necessrio planejamento e premeditao. Existem vrias tcnicas para realizar a reutilizao em todos os nveis do processo de desenvolvimento de sistemas, e , aquelas relacionadas ao projeto detalhado e ao nvel de cdigo so bem conhecidas e documentadas. Embora exista uma grande quantidade de literatura que aborda a reutilizao de projetos na forma de padres de software, preciso mais que isso; preciso comunicar as oportunidades de reuso para outras pessoas na organizao, isso fundamental. Como voc pode reutilizar algo que voc no sabe que existe ? Planejar adiante para reutilizao reduz o custo e aumenta o valor dos componentes e dos sistemas que esto incorporados. Obs: Este princpio precisa ser examinado com cuidado pois segundo Kent Beck ele ignora a fora mais importante no projeto de software: o risco; e ainda sugere: Programe para hoje pois amanh pode nunca chegar. ( Program for Today, for Tomorrow May Never Come.)

Stimo Princpio - Pense ! (Think!)

Este ltimo princpio provavelmente o mais negligenciado. Colocando o pensamento antes da ao quase sempre se produz os melhores resultados. Quando voc pensa sobre algo, esta mais propenso a faz-lo direito. Voc tambm ganha conhecimento sobre como faz-lo. Se voc pensa em algo e ainda assim a coisa sai errado, isso incorporado a sua base de experincia e torna-se experincia valiosa. Alm disso pensar aprender a reconhecer quando voc no sabe algo, e a que ponto voc pode pesquisar a resposta.
5 de 6

02/07/2012 23:53

Os 7 Principios do desenvolvimento de software

http://www.macoratti.net/11/05/sd_prnc1.htm

Quando o pensamento claro entra em um sistema, o valor sai. Aplicar os seis primeiros princpios requer um grande esforo de pensamento, mas as recompensas potenciais so enormes. Com diz o ditado popular : "Bom senso e canja de galinha no fazem mal a ningum..."

"No se turbe o vosso corao;crede em Deus, crede tambm em mim." (Joo 14:1)
Referncias: Padres de Projeto Padres de Projeto - O modelo MVC - Model View Controller O padro Singleton VB.NET - Permitindo uma nica instncia da sua aplicao Design Patterns - o padro Factory Conceitos sobre projetos - Decomposio Usando o padro Strategy SRP - O princpio da responsabilidade nica - Macoratti.net Boas Prticas - O padro inverso de controle (IoC) - Macoratti.net Seo Padres de Projeto do site Macoratti.net Super DVD .NET - A sua porta de entrada na plataforma .NET Super DVD Vdeo Aulas - Vdeo Aula sobre VB .NET, ASP .NET e C#
Jos Carlos Macoratti

6 de 6

02/07/2012 23:53

S-ar putea să vă placă și