Atenção: esse artigo tem uma palestra complementar. Clique e assista!

Do que trata o artigo

O artigo apresenta três simples etapas que irão te ajudar a criar um grande software orientado a objetos. Descubra por onde começar um novo projeto ou uma nova opção sem atrapalhar todo o resto do processo. Aprenda também alguns conceitos de UML e como ler um diagrama de classe.

Para que serve

Começar um novo projeto ou uma alteração do jeito certo aumenta suas chances de atingir o objetivo proposto pelo software. Dificilmente você conseguirá criar grandes softwares se você não começar por onde deve.

Em que situação o tema é útil

Este artigo ajudará você a aperfeiçoar seu processo de criação dos projetos. Ilustra as dificuldades em implementar tais tarefas, porém exibindo que esta apenas é uma questão de saber o que deve ser feito em cada fase do desenvolvimento.

Resumo do DevMan

Por onde começar um programa? É muito comum começar um novo projeto ou até mesmo uma grande alteração de um projeto do ponto errado e depois perder muito tempo por conta disto. Você já tem experiência com programação, conhece os princípios da orientação a objetos e usa os padrões de projeto, mas mesmo assim você ainda perde muito tempo refazendo partes do seu projeto. Isto acontece, na maioria das vezes, porque você está começando um projeto, ou uma nova opção, de maneira errada. Qual a primeira coisa que você deve fazer em um programa? É sobre isto que você vai ler neste artigo. Através de um exemplo, você vai entender por onde começar e por que é tão importante começar do jeito certo.

Se existe alguma verdade absoluta sobre Softwares é que eles sempre mudam. Não importa o quão perfeito eles estão, sempre muda um requisito aqui e aparece outro ali. Por essa e por outras que o sistema precisa ser o mais flexível possível, pois seu chefe e o cliente não vão esperar dois meses por cada nova alteração que apareça. Pior ainda se depois de dois meses de espera o sistema ainda não funcionar da maneira que deveria funcionar. Mas como criar um projeto flexível? O que você deve fazer para criar um grande software? Por onde começar? É sobre isto que vou falar.

Um grande Software

Todos reconhecem um grande Software e todos querem criar Softwares desta categoria. Acontece que o termo ‘grande Software’ pode ser interpretado de maneiras diferentes por cada pessoa. O que é realmente um grande Software? Cada pessoa pode ter sua ideia do que isto significa. Se você perguntar para o seu patrão, que não entende nada de programação, o que você precisa fazer para criar um grande Software ele provavelmente dirá:

O que é um ‘grande Software’ para o seu chefe

Para criar um grande Software você deve criar um programa que atenda o objetivo do cliente exatamente da maneira como ele esperava que fosse e mesmo quando as coisas mudarem ou não acontecer como era esperado o sistema não deve falhar.

Por outro lado se fizer esta mesma pergunta para um programador apaixonado pela programação orientada a objetos ele poderá responder algo similar a isto:

O que é um ‘grande Software’ para um programador

Você cria um grande Software quando cria um projeto orientado a objetos, fazendo com que cada objeto seja o único responsável por seu estado. Os objetos devem estar levemente interligados para tornar seu projeto aberto para expansão e fechado para modificações além de aplicar princípios e padrões de projetos já comprovados.

Para você qual destas duas respostas está correta? O que é um grande Software para você? As duas respostas estão certas, pois as duas formas de pensar juntas é o que formam um grande Software. Se você fizer o que seu chefe e o programador apaixonado por OO desejam, você terá criado um grande Software. Infelizmente não existe uma fórmula matemática para isto, mas existem algumas dicas que quando seguidas ajudam você a atingir o objetivo, criando um Software apreciado por todos. Três simples etapas é o que você precisa para aumentar suas chances de criar um grande projeto. Veja:

• Garanta que o sistema faz o que cliente espera que ele faça;

• Use princípios da programação orientada a objetos;

• Dedique-se a tornar o projeto reutilizável.

Então, neste momento alguém pode perguntar: “Se eu não seguir estas etapas não criarei um grande Software?”; “Por que exatamente estas etapas?”. As duas perguntas são válidas e muito interessantes. É claro que estas etapas NÃO são uma regra. Na informática pessoas diferentes podem e geralmente encontram soluções diferentes para o mesmo problema. Por isto as três etapas que apresento anteriormente não são uma regra. Você pode encontrar outras maneiras de se criar um grande projeto.

Agora a segunda pergunta: “Por que exatamente estas etapas?”. Se você quer criar um grande projeto, a primeira coisa a ser feita é conquistar seu cliente. Para isto você precisa acima de tudo atingir o objetivo do cliente. Por esta razão o seu patrão estava certo e esta também é a razão da primeira etapa. De nada serve um programa espetacular, cheio de recursos fantásticos, se “aquela pequena parte” que o cliente usa não funciona como ele pediu. Você deve criar programas que façam o que os clientes esperam até mesmo quando algo errado acontecer. Quando as coisas não funcionarem da maneira como esperado, o Software não pode deixar as coisas saírem do controle. Por outro lado o programador apaixonado por orientação a objetos também estava certo. O que justifica as últimas duas etapas. Depois que o Software estiver fazendo o que o cliente deseja que ele faça, é a hora de trabalhar no seu projeto para torná-lo reutilizável e flexível.

Você só irá conquistar seus clientes quando seu Software fizer o que eles desejam. Portanto a primeira etapa para se criar um grande projeto é garantir a satisfação do cliente. Depois de atingido este objetivo você pode dispensar um pouco mais de tempo para aplicar um pouco de princípios de orientação a objetos e por fim usar os padrões de projetos para tornar o mesmo mais flexível, facilitando as mudanças do dia-a-dia. Isto pode parecer complicado agora, mas no decorrer deste artigo você verá como alguns princípios simples podem mudar o ponto de vista dos clientes para com seus Softwares.

Imagine um cliente

A seguir você verá como aplicar as três etapas e como elas podem ajudar você a criar um grande projeto orientado a objetos. Para começar, é preciso que exista um cliente. O nome desta cliente imaginária é Mary. Ela possui uma loja de bicicletas e está a procura de um Software que ajude seus clientes a encontrar a bicicleta que procuram. Uma rápida conversa com Mary foi o suficiente para descobrir o que ela espera do novo Software.

Do que você precisa, Mary?

Preciso de um programa que meus clientes possam usar para encontrar as bicicletas que procuram, sem minha ajuda. Os meus clientes normalmente vêm até a loja sabendo pouquíssimo sobre a bicicleta que desejam. Na maioria das vezes eles sabem apenas o fabricante. Claro que existem aqueles que não sabem nem o fabricante, então eles vêm até minha loja sabendo somente quantas marchas desejam ou a cor e o material do quadro. Neste caso fica mais difícil encontrar o que eles procuram, pois existem muitas bicicletas diferentes que são feitas do mesmo material, mas mesmo assim eu sempre encontro o que eles procuram.

Mary não precisa de nada complicado. O programa fará consultas em um estoque para encontrar as bicicletas que os clientes desejam. Logo, é possível deduzir que existiriam duas classes neste Software. Uma classe para representar as bicicletas e outra para representar o estoque onde estará a lista das bicicletas existentes. As bicicletas possuem poucas características: além das características que Mary citou fabricante, quantidade de marchas, cor e material do quadro, podemos deduzir também que cada bicicleta tem um número de série e um preço. Veja o diagrama de classes na Figura 1.

...

Quer ler esse conteúdo completo? Tenha acesso completo