Você está na página 1de 39

8 PASSOS que voc deve

seguir para criar um


PROGRAMA DE
COMPUTADOR

por Eric Cancellgliere

Ol, eu sou o Eric Cancellgliere,


Sou analista de sistemas, programador e tcnico
em informtica. Atuo na rea de tecnologia

O autor

desde 2007. Gosto de ensinar o que aprendi (e


tambm de aprender o que ensino), afinal,

compartilhar conhecimento no faz com que se


crie concorrncia apenas, mas sim com que
possamos

contar

com

qualificados no mercado.

profissionais

mais

Antes de Comear
Ol programador! timo saber que est acessando
este e-book. Isso demonstra que, assim como eu, voc
tambm se interessa em adquirir conhecimento para

melhorar suas habilidades.


Vou mostrar aqui uma srie de passos que devem ser
utilizados

na

computador.

construo

So

de

tcnicas

um

que

programa

todos

os

de

bons

programadores utilizam e que voc ir aprender a


utilizar agora.
O

passo

fundamental

base

de

todo

desenvolvimento de programas de computador voc


conhecer logo na prxima pgina.
Ento, vamos comear!

O que voc vai encontrar nesse e-book

1 Oua o Problema

5 Cronograma

2 Faa Anotaes

6 Algoritmo

3 Pergunte e Colete
Material

7 Teste de Mesa

4 Organize Tudo
(Briefing)

Programao em Foco

8 Cdigo Fonte

Eric Cancellgliere

1
Oua o
Problema

Ouvir o problema, isto , o que lhe pedido para desenvolver,


a base de tudo, o alicerce da criao de um programa de
computador.

Comercialmente falando, se um cliente entra em contato com


voc para encomendar um sistema, natural que ele lhe
passe algumas informaes sobre como deseja que este seja
construdo, definindo, inclusive, dados, informaes e funes

do sistema j nesta conversa. Assim, voc deve abstrair o que


foi passado para seguir com as prximas etapas.

E isto no serve apenas para o desenvolvimento comercial,

serve tambm para o desenvolvimento em ambiente


acadmico, quando seu (sua) professor (a) est explicando um
problema proposto que voc precisa interpretar para depois
realizar.

Programao em Foco

Eric Cancellgliere

1
Oua o
Problema

Programao em Foco

Entenda que ouvir o problema tambm pode significar ler


uma especificao que lhe passada, seja por seu cliente ou
por seus professores.

Tenha em mente que quando paramos e prestamos ateno


ao que nos solicitado, fica muito mais simples continuar o
processo de desenvolvimento de software.

Eric Cancellgliere

2
Faa
Anotaes

Enquanto conversamos com nosso cliente ou ouvimos nossos


professores sobre o desenvolvimento de um programa,
interessante que faamos anotaes, tanto sobre aquilo que
esto requisitando quanto sobre possveis dvidas e

questionamentos que precisarmos esclarecer.

difcil para pessoas em nossa rea de atuao lembrar tudo


o que conversamos com algum, principalmente se tratando

de entender um problema para poder criar um software para


soluciona-lo, o que pode ser algo totalmente complexo. Isto
acontece porque estamos com nossos pensamentos passando
por nossas cabeas a quilmetros por hora e, com toda essa

confuso, eles podem acabar se chocando, fazendo com que


esqueamos algo. Da a importncia de fazer anotaes.

Programao em Foco

Eric Cancellgliere

2
Faa
Anotaes

Programao em Foco

#Dica: No se preocupe em fazer anotaes


de forma ordenada ou organizada. Nesta
etapa isto no se faz necessrio. Apenas
anote tudo o que considerar importante.
Colocaremos em ordem depois.

Eric Cancellgliere

3
Pergunte
e colete
Material

O pior erro que um programador pode cometer achar que


entendeu um problema logo de primeira e que j capaz de
criar uma soluo. Nunca faa isso!

Claro que h problemas mais simples do que outros. Mas nem


sempre um problema que parece simples o de fato e viceversa. Conforme vamos adquirindo experincia profissional,
aprenderemos a distinguir cada um.

importante tirar as dvidas que temos sobre a criao de


um projeto, inclusive as dvidas do prprio cliente. H uma
frase que os programadores experientes j conhecem bem

que diz:

Programao em Foco

Nem sempre o que o cliente quer o que


ele precisa.
8

Eric Cancellgliere

3
Pergunte
e colete
Material

Eu mesmo j perdi as contas de quantas vezes a frase acima


se aplicou aos meus projetos. Na maioria das vezes meus
clientes eram leigos, no entendiam profundamente suas
necessidades e tampouco como o desenvolvimento de um

programa funcionava. Ento, coube a mim fazer as perguntas


corretas para seguir com o projeto.

E quais so as perguntas corretas?


Bom, isso varia de projeto para projeto. Ainda assim, h
algumas perguntas que so padro. Veja 5 perguntas chave
que se pode fazer:

Programao em Foco

Eric Cancellgliere

3
Pergunte
e colete
Material

Qual o tipo de negcio da sua empresa?


Para qual rea da empresa se destina o programa (RH,
financeiro, estoque, etc.)?
Quem vai utilizar o programa? algum que entende de

informtica/tecnologia?
Quais os dados que o programa deve tratar?
Que tipo de informao o programa deve gerar?

Outras perguntas que voc achar necessrias, de acordo com


a necessidade e o tipo de projeto, podem ser feitas. O que
vale aqui no ficar com dvidas.

Programao em Foco

10

Eric Cancellgliere

3
Pergunte
e colete
Material

Programao em Foco

#Orientao Importante: No confunda


dado com informao! Dado um elemento
ou valor isolado que por si s no transmite
nenhuma mensagem que possibilite o
entendimento sobre determinada situao.
A informao o resultado da organizao
e processamento dos dados de tal maneira
que fornea a quem a v o conhecimento
necessrio sobre uma determinada
perspectiva.

11

Eric Cancellgliere

3
Pergunte
e colete
Material

A coleta de material

Qualquer material que o cliente fornecer (planilha, grfico ou


outro documento) de extrema importncia. Pegue cpias do
que puder.

Tudo isto ir determinar a qualidade do seu projeto e,


obviamente, se ele atender a necessidade do seu cliente.
Portanto, tenha ateno!

Programao em Foco

12

Eric Cancellgliere

4
Organize
Tudo
(Briefing)

Programao em Foco

Agora que voc ouviu, anotou e perguntou, hora de


organizar as coisas.

Basicamente vamos pegar as perguntas que fizemos e as


devidas respostas, todas as anotaes (at mesmo aqueles
rascunhos e palavras que escrevemos e achamos sem sentido)
e materiais fornecidos, lembrar do que ouvimos do nosso
cliente e criar uma espcie de briefing do projeto.

13

Eric Cancellgliere

4
Organize
Tudo
(Briefing)

Briefing (palavra inglesa que significa


resumo em portugus): um conjunto de

informaes, uma coleta de dados para o


desenvolvimento de um projeto. um
documento contendo a descrio da

situao de uma empresa, seus problemas,


objetivos e recursos para atingi-los.
O briefing no o projeto do sistema. um guia para
entendimento

do

problema

exposto.

partir

dele

construiremos o projeto do sistema.

Programao em Foco

14

Eric Cancellgliere

5
Cronograma

Definir prazos a melhor forma de se organizar. Percebemos


isso em nosso dia-a-dia quando precisamos ter hora para
acordar, tomar caf, ir escola ou ao trabalho, almoar, etc. E
tambm um hbito que devemos criar para trabalhar em
nossos projetos, no importa de que tamanho sejam.

Desenvolver o Cronograma um processo iterativo (se repete


diversas vezes) que envolve analisar a sequncia das
atividades, sua durao, seus requerimentos e suas restries,
determinando datas de incio e trmino de cada atividade.

Programao em Foco

15

Eric Cancellgliere

5
Cronograma

Modelo de Cronograma simples

Veja um modelo simples de cronograma que voc pode


utilizar em seus projetos:

Atividade

Programao em Foco

16

Incio

Trmino

Responsvel

Status

Comentrio

Eric Cancellgliere

5
Cronograma

Os itens do cronograma:
Atividade: ao a ser realizada. Exemplo: Ligar para o
cliente;
Incio: data de incio da atividade. Exemplo: 24/09/2015;
Trmino: data de trmino da atividade. Exemplo:
24/09/2015;
Responsvel:

pessoa

responsvel

pela

atividade.

Exemplo: Eric;
Status: situao da atividade. Exemplo: Concludo;
Comentrio: alguma observao sobre a atividade.
Exemplo: Atividade j realizada.

O cronograma tambm pode ser passado para o cliente.


Assim, este pode acompanhar e fazer as cobranas

necessrias sobre o desenvolvimento do projeto.


Programao em Foco

17

Eric Cancellgliere

6
Algoritmo

aqui que a coisa vai comear a tomar forma. Algoritmo


uma forma de representar a execuo de uma tarefa ou a
soluo de um problema. Ns usamos algoritmos em nosso
dia-a-dia sem que sequer notemos. Um bom exemplo este:

Algoritmo Escovar os dentes


Incio
1.

Pegar a escova de dentes;

2.

Pegar o creme dental com a outra mo;

3.

Abrir a tampa do creme dental;

4.

Colocar um pouco de creme dental na escova;

5.

Colocar a escova na boca e escovar os dentes;

6.

Tirar a escova da boca;

7.

Lavar a boca e a escova com gua.

Fim

Programao em Foco

18

Eric Cancellgliere

6
Algoritmo

Perceba que as instrues de um algoritmo devem ser


numeradas, diretas, objetivas, sem redundncia e ordenadas
de forma lgica, hierrquica. Alm disso, os verbos devem
estar sempre no infinitivo (fazer, escrever, imprimir, etc.).
Vamos a outro exemplo de um algoritmo no computacional:

Programao em Foco

19

Eric Cancellgliere

6
Algoritmo

Algoritmo Utilizar um telefone pblico


Incio

1.

Tirar o telefone do gancho;

2.

Escutar o sinal de linha;

3.

Introduzir o carto;

4.

Teclar o nmero desejado;

5.

Se der sinal de chamar

6.

5.1

Conversar;

5.2

Desligar;

5.3

Retirar o carto;

Seno
6.1

Colocar o telefone no gancho;

6.2

Repetir;

Fim

Programao em Foco

20

Eric Cancellgliere

6
Algoritmo

Neste exemplo vemos que h verificaes de condies e


desvios de acordo com o que ocorrer. Tambm possvel
perceber melhor a hierarquia entre as instrues.
exatamente assim que um programa de computador
funciona. Veja:

Programao em Foco

21

Eric Cancellgliere

6
Algoritmo

Algoritmo Somar os nmeros mpares entre 0 e 10


Inicio

1.

contador = 0;

2.

soma = 0;

3.

Enquanto contador < 10 Faa


3.1

Se (contador % 2 != 0)
3.1.1 soma = soma + contador
3.1.2 contador = contador + 1;

3.2

Fim Se

4.

Fim Enquanto

5.

Escrever (soma);

Fim

Programao em Foco

22

Eric Cancellgliere

6
Algoritmo

O algoritmo acima descreve um programa capaz de somar os


nmeros mpares entre 0 e 10. H uma varivel para controlar
o loop que percorrer o intervalo 0-10 (contador) e outra para
armazenar o resultado da soma dos nmeros mpares (soma)
no intervalo. Dentro do loop, realizamos uma verificao para
saber se o valor da varivel contador mpar. Se for,
adicionamos este valor ao contedo j existente na varivel
soma. Ao trmino do loop, exibimos o resultado obtido em
soma.

Ainda que este algoritmo no seja um programa de


computador, conseguimos ver claramente como o programa
propriamente dito dever funcionar. Este o objetivo desta
tcnica.

Programao em Foco

23

Eric Cancellgliere

7
Teste de
Mesa

No basta apenas criar um algoritmo e no ter certeza de que


este ir funcionar, no mesmo? Mas ns no precisamos,
necessariamente,

transcrever

algoritmo

para

uma

linguagem de programao para saber se vai funcionar.


possvel testar seu funcionamento sem sequer precisar estar
prximo a um computador. Este teste chamado de Teste de
Mesa.

O Teste de Mesa tem o objetivo de nos ajudar a verificar se


um algoritmo (ou at mesmo um programa j pronto) nos
levar a um resultado esperado atravs de simulao de
valores. Ns iremos basicamente fazer o que o computador
faria, porm, utilizando apenas papel e caneta.

Programao em Foco

24

Eric Cancellgliere

7
Teste de
Mesa

Como fazer o Teste de Mesa?


Peguemos o exemplo o seguinte algoritmo:

Algoritmo Somar dois nmeros


Inicio
1.

numero1 = 0;

2.

numero2 = 0;

3.

soma = 0;

4.

Ler(numero1);

5.

Ler(numero2);

6.

soma = numero1 + numero2;

7.

Escrever (soma);

Fim

Programao em Foco

25

Eric Cancellgliere

7
Teste de
Mesa

Primeiramente devemos identificar as variveis do nosso


algoritmo. No caso, nossas variveis so numero1, numero2 e
soma.

Agora vamos criar uma tabela, onde:


A primeira coluna: dever identificar os nmeros das
linhas correspondentes s instrues observadas;
As demais colunas: devero identificar as variveis que
sero observadas;
As linhas: correspondero aos valores obtidos em cada
instruo.

Programao em Foco

26

Eric Cancellgliere

7
Teste de
Mesa

Programao em Foco

Olhe como ficaria o teste de mesa do nosso exemplo:

Linha

numero1

numero2

Soma

{0}

{0}

{0}

{0}

{0}

{0}

(5)

{0}

{0}

(5)

(3)

{0}

(5)

(3)

(8)

(5)

(3)

(8)

27

Eric Cancellgliere

7
Teste de
Mesa

No teste de mesa, vamos colocando os valores na tabela


conforme vo aparecendo nas linhas do algoritmo. Veja que
nas linhas 4 e 5 do nosso algoritmo eu coloquei os valores 5
(para a varivel numero1) e 3 (para a varivel numero2). Estes
valores so apenas valores de teste, valores que um usurio
do programa poderia colocar. Poderiam ser quaisquer outros,
pois isto apenas um teste de funcionalidade do algoritmo. E
pelo que podemos observar, o algoritmo funciona, visto que
conseguiu fazer com que a varivel soma recebesse o
resultado da soma dos valores das variveis, isto , o valor 8.

H tambm algumas particularidades no teste de mesa como


o uso de parnteses, chaves e o smbolo de interrogao.
Vamos entend-las:

Programao em Foco

28

Eric Cancellgliere

7
Teste de
Mesa

Chaves {} : indicam um valor que foi escrito por uma


instruo, definido pelo programador;
Parnteses () : indicam um valor que foi lido, dado pelo
usurio;
Interrogao ? : indica um valor que ainda no foi
determinado.

#Dica: Quando for fazer o teste de mesa de um algoritmo


que possua um lao de repetio (loop), faa o teste do
loop separadamente da tabela principal, indicando tal
ao nesta tabela. No teste de mesa de laos de
repetio, a primeira coluna da tabela dever representar
o nmero de vezes que a repetio ser executada ao
invs do nmero da linha.

Programao em Foco

29

Eric Cancellgliere

8
Cdigo
Fonte

Para fechar o ciclo, hora de programar!


H quem prefira vir diretamente para esta etapa, ignorando

completamente

as

anteriores,

imaginando

que

sua

experincia e o conhecimento adquiridos ao longo do tempo


j so suficientes e bastam para realizar esta tarefa. Estes
ainda no conseguem perceber que os problemas que
encontraro durante este processo poderiam ser minimizados
ou at mesmo inexistentes se tivessem seguido esta receita.

Assim como no se constri um edifcio sem pesquisa, sem


planejamento, sem projeto; no se constri programas de
computadores sem seguir estes passos bsicos. Sim, estes so
passos bsicos. Dependendo do tipo de sistema, teremos que
adicionar alguns outros passos para garantir a qualidade no
seu desenvolvimento. Mas por hora, estes nos bastam.

Programao em Foco

30

Eric Cancellgliere

8
Cdigo
Fonte

Vou mostrar nesta etapa como ficariam os algoritmos Somar


dois nmeros e Somar os nmeros mpares entre 0 e 10
transcritos para a linguagem de programao C. Mas antes
disso, preciso fazer algumas consideraes sobre como voc
deve codificar os seus programas. No so imposies, ou
seja, no vou dizer que vocs devem fazer exatamente como
ser explicado. Isto apenas uma sugesto de algum que
conhece o mercado e sabe da importncia de cada palavra
aqui escrita. Portanto, vamos s consideraes.

Um bom cdigo fonte deve ter:


Cabealho: descrevendo o nome do programa e/ou a sua
utilidade, autor do programa, data de criao, verso,
modificaes feitas em cada verso;
Comentrios: explicando o que cada linha, trecho ou

bloco de cdigo faz;


Programao em Foco

31

Eric Cancellgliere

8
Cdigo
Fonte

Indentao: para facilitar a compreenso do cdigo e criar


uma espcie de hierarquia entre vrios blocos que este
pode possuir.

Indentao: esta a forma correta de


escrita da palavra. Vemos em muitos sites

pela internet esta palavra escrita como


identao, que uma forma de escrita
incorreta. A palavra indentao um

neologismo (palavra derivada de outra)


que tem sua origem na palavra inglesa
indentation, tendo um sentido de recuo.

Programao em Foco

32

Eric Cancellgliere

8
Cdigo
Fonte

Programao em Foco

Agora hora de ver os algoritmos se transformarem em


programas:

Programa 1: Somar dois nmeros


Programa 2: Somar os nmeros mpares entre 0 e
10

33

Eric Cancellgliere

Programa 1 - Somar dois nmeros

Programao em Foco

34

Eric Cancellgliere

Programa 2 - Somar os nmeros mpares entre 0 e 10

Programao em Foco

35

Eric Cancellgliere

#Resumo e
#Dicas
Finais

Oua o problema: Escute o que seu cliente ir lhe pedir.

Faa anotaes: Enquanto ouve o cliente (e tambm depois


de ouvi-lo) anote suas dvidas, observaes, palavras-chave,
etc.

Pergunte e colete material: Crie um questionrio com base


no que ouviu do seu cliente e em suas anotaes e colete
qualquer material que considerar necessrio.

#Dica: Pesquisar sobre o negcio para o qual ir construir


um programa tambm pode ser de grande ajuda.

Programao em Foco

36

Eric Cancellgliere

#Resumo e
#Dicas
Finais

Organize tudo (Briefing): Crie uma espcie de guia atravs


do que obteve nos passos anteriores para poder criar o
projeto do sistema.

Cronograma: Organize suas atividades estipulando datas para


realizar cada uma.

Algoritmo: Crie um algoritmo antes de criar o programa


propriamente dito.

Teste de mesa: Teste o algoritmo criado antes de transformalo em cdigo fonte.

Cdigo fonte: Crie o cdigo fonte de forma organizada, com


cabealho, comentrios e indentado.

Programao em Foco

37

Eric Cancellgliere

Agradecimentos
Muito obrigado por ler este e-book. Espero que tenha
lhe sido til e possa aplicar o que viu aqui em sua vida
profissional. Um forte abrao e sucesso sempre!

Agora
com voc!
8 PASSOS que voc deve
seguir para criar um
PROGRAMA DE COMPUTADOR.
http://programacaoemfoco.com.br
por Eric Cancellgliere.