Princípios gerais

David Hooker [Hoo96] propôs sete princípios que se concentram na prática da engenharia de

software como um todo. Eles são reproduzidos nos parágrafos a seguir:13

Primeiro princípio: a razão de existir

Um sistema de software existe por uma única razão: gerar valor a seus usuários. Todas as

decisões deveriam ser tomadas tendo esse princípio em mente. Antes de especificar uma necessidade

de um sistema, antes de indicar alguma parte da funcionalidade de um sistema, antes

de determinar as plataformas de hardware ou os processos de desenvolvimento, pergunte a si

mesmo: "Isso realmente agrega valor real ao sistema?". Se a resposta for "não", não o faça. Todos

os demais princípios se apoiam neste primeiro.

Segundo princípio: KISS (Keep It Simple, Stupid!, ou seja: Faça de forma simples, tapado!)

O projeto de software não é um processo casual; há muitos fatores a ser considerados em

qualquer esforço de projeto - todo projeto deve ser o mais simples possível, mas não tão simples

assim. Esse princípio contribui para um sistema mais fácil de compreender e manter. Isso

não significa que características, até mesmo as internas, devam ser descartadas em nome da

simplicidade.

De fato, frequentemente os projetos mais elegantes são os mais simples, o que não significa

"rápido e malfeito" - na realidade, simplificar exige muita análise e trabalho durante as iterações,

sendo que o resultado será um software de fácil manutenção e menos propenso a erros.

Terceiro princípio: mantenha a visão

Uma visão clara é essencial para o sucesso. Sem ela, um projeto se torna ambíguo. Sem uma

integridade conceitual, corre-se o risco de transformar o projeto numa colcha de retalhos de

projetos incompatíveis, unidos por parafusos inadequados... Comprometer a visão arquitetônica

de um sistema de software debilita e até poderá destruir sistemas bem projetados. Ter um arquiteto

responsável e capaz de manter a visão clara e de reforçar a adequação ajuda a assegurar o

êxito de um projeto.

Quarto princípio: o que um produz outros consomem

Raramente um sistema de software de força industrial é construído e utilizado de forma

isolada. De uma maneira ou de outra, alguém mais irá usar, manter, documentar ou, de alguma

forma, dependerá da capacidade de entender seu sistema. Portanto, sempre especifique, projete

e implemente ciente de que alguém mais terá de entender o que você está fazendo. O público para

qualquer produto de desenvolvimento de software é potencialmente grande. Especifique tendo

em vista os usuários; projete, tendo em mente os implementadores; e codifique considerando

aqueles que terão de manter e estender o sistema. Alguém terá de depurar o código que você

escreveu e isso o faz um usuário de seu código; facilitando o trabalho de todas essas pessoas

você agrega maior valor ao sistema

Quinto princípio: esteja aberto para o futuro

Um sistema com tempo de vida mais longo tem mais valor. Nos ambientes computacionais

de hoje, em que as especificações mudam de um instante para outro e as plataformas de

hardware se tornam rapidamente obsoletas, a vida de um software, em geral, é medida em meses.

Entretanto, verdadeiros sistemas de software com força industrial devem durar um período

muito maior - e, para isso, devem estar preparados para se adaptar a mudanças. Sistemas que

obtêm sucesso são aqueles que foram projetados dessa forma desde seu princípio.

Jamais faça projetos limitados, sempre pergunte "e se" e prepare-se para todas as possíveis

respostas, criando sistemas que resolvam o problema geral, não apenas aquele específico.14 Isso

muito provavelmente conduziria à reutilização de um sistema inteiro.

Sexto princípio: planeje com antecedência, visando a reutilização

A reutilização economiza tempo e esforço;15 alcançar um alto grau de reúso é indiscutivelmente

a meta mais difícil de ser atingida ao se desenvolver um sistema de software. A reutilização

de código e projetos tem sido proclamada como o maior benefício do uso de tecnologias

orientadas a objetos, entretanto, o retorno desse investimento não é automático. Alavancar as

possibilidades de reutilização (oferecida pela programação orientada a objetos [ou convencional])

requer planejamento e capacidade de fazer previsões. Existem várias técnicas para levar a

cabo a reutilização em cada um dos níveis do processo de desenvolvimento do sistema. Planejar

com antecedência para o reúso reduz o custo e aumenta o valor tanto dos componentes reutilizáveis

quanto dos sistemas aos quais eles serão incorporados.

Sétimo princípio: pense!

Este último princípio é, provavelmente, aquele que é mais menosprezado. Pensar bem e de

forma clara antes de agir quase sempre produz melhores resultados. Quando se analisa alguma

coisa, provavelmente esta sairá correta. Ganha-se também conhecimento de como fazer correto

novamente. Se você realmente analisar algo e mesmo assim o fizer da forma errada, isso se

tornará uma valiosa experiência. Um efeito colateral da análise é aprender a reconhecer quando

não se sabe algo, e até que ponto poderá buscar o conhecimento. Quando a análise clara fez

parte de um sistema, seu valor aflora. Aplicar os seis primeiros princípios requer intensa reflexão,

para a qual as recompensas potenciais são enormes.

Se todo engenheiro de software e toda a equipe de software simplesmente seguissem os sete

princípios de Hooker, muitas das dificuldades enfrentadas no desenvolvimento de complexos

sistemas baseados em computador seriam eliminadas.

.

Tecs.info - Márcio Ruben
Todos os direitos reservados 2021
Desenvolvido por Webnode
Crie seu site grátis! Este site foi criado com Webnode. Crie um grátis para você também! Comece agora