Transcript

8 PASSOS que você deve seguir para criar um PROGRAMA DE COMPUTADOR

por Eric Cancellgliere

O a

uto

r

Olá, eu sou o Eric Cancellgliere,

Sou analista de sistemas, programador e técnico

em informática. Atuo na área de tecnologia

desde 2007. Gosto de ensinar o que aprendi (e

também de aprender o que ensino), afinal,

compartilhar conhecimento não faz com que se

crie concorrência apenas, mas sim com que

possamos contar com profissionais mais

qualificados no mercado.

Antes de Começar

Olá programador! É ótimo saber que está acessando

este e-book. Isso demonstra que, assim como eu, você

também se interessa em adquirir conhecimento para

melhorar suas habilidades.

Vou mostrar aqui uma série de passos que devem ser

utilizados na construção de um programa de

computador. São técnicas que todos os bons

programadores utilizam e que você irá aprender a

utilizar agora.

O passo fundamental e base de todo o

desenvolvimento de programas de computador você

conhecerá logo na próxima página.

Então, vamos começar!

Programação em Foco Eric Cancellgliere

O que você vai encontrar nesse e-book

1 – Ouça o Problema

2 – Faça Anotações

4 – Organize Tudo

(Briefing)

3 – Pergunte e Colete

Material

5 – Cronograma

6 – Algoritmo

7 – Teste de Mesa

8 – Código Fonte

Programação em Foco Eric Cancellgliere

1 Ouça o Problema

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

é a base de tudo, é o alicerce da criação 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 informações sobre como deseja que este seja

construído, definindo, inclusive, dados, informações e funções

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

foi passado para seguir com as próximas etapas.

E isto não serve apenas para o desenvolvimento comercial,

serve também para o desenvolvimento em ambiente

acadêmico, quando seu (sua) professor (a) está explicando um

problema proposto que você precisa interpretar para depois

realizar.

4

Programação em Foco Eric Cancellgliere

1 Ouça o Problema

Entenda que “ouvir o problema” também pode significar ler

uma especificação que lhe é passada, seja por seu cliente ou

por seus professores.

Tenha em mente que quando paramos e prestamos atenção

ao que nos é solicitado, fica muito mais simples continuar o

processo de desenvolvimento de software.

5

Programação em Foco Eric Cancellgliere

2 Faça Anotações

Enquanto conversamos com nosso cliente ou ouvimos nossos

professores sobre o desenvolvimento de um programa, é

interessante que façamos anotações, tanto sobre aquilo que

estão requisitando quanto sobre possíveis dúvidas e

questionamentos que precisarmos esclarecer.

É difícil para pessoas em nossa área de atuação lembrar tudo

o que conversamos com alguém, 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 cabeças a quilômetros por hora e, com toda essa

confusão, eles podem acabar se chocando, fazendo com que

esqueçamos algo. Daí a importância de fazer anotações.

6

Programação em Foco Eric Cancellgliere

2 Faça Anotações #Dica: Não se preocupe em fazer anotações

de forma ordenada ou organizada. Nesta etapa isto não se faz necessário. Apenas anote tudo o que considerar importante.

Colocaremos em ordem depois.

7

Programação em Foco 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 solução. Nunca faça isso!

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

sempre um problema que parece simples o é de fato e vice-

versa. Conforme vamos adquirindo experiência profissional,

aprenderemos a distinguir cada um.

É importante tirar as dúvidas que temos sobre a criação de

um projeto, inclusive as dúvidas do próprio cliente. Há uma

frase que os programadores experientes já conhecem bem

que diz:

“Nem sempre o que o cliente quer é o que

ele precisa.” “ 8

Programação em Foco 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, não entendiam profundamente suas

necessidades e tampouco como o desenvolvimento de um

programa funcionava. Então, coube a mim fazer as perguntas

corretas para seguir com o projeto.

E quais são as perguntas corretas?

Bom, isso varia de projeto para projeto. Ainda assim, há

algumas perguntas que são padrão. Veja 5 perguntas chave

que se pode fazer:

9

Programação em Foco Eric Cancellgliere

3 Pergunte e colete Material

Qual é o tipo de negócio da sua empresa?

Para qual área da empresa se destina o programa (RH,

financeiro, estoque, etc.)?

Quem vai utilizar o programa? É alguém que entende de

informática/tecnologia?

Quais os dados que o programa deve tratar?

Que tipo de informação o programa deve gerar?

Outras perguntas que você achar necessárias, de acordo com

a necessidade e o tipo de projeto, podem ser feitas. O que

vale aqui é não ficar com dúvidas.

10

Programação em Foco Eric Cancellgliere

3 Pergunte e colete Material

#Orientação Importante: Não confunda dado com informação! Dado é um elemento ou valor isolado que por si só não transmite nenhuma mensagem que possibilite o entendimento sobre determinada situação. A informação é o resultado da organização e processamento dos dados de tal maneira que forneça a quem a vê o conhecimento necessário sobre uma determinada perspectiva.

11

Programação em Foco Eric Cancellgliere

3 Pergunte e colete Material

A coleta de material

Qualquer material que o cliente fornecer (planilha, gráfico ou

outro documento) é de extrema importância. Pegue cópias do

que puder.

Tudo isto irá determinar a qualidade do seu projeto e,

obviamente, se ele atenderá a necessidade do seu cliente.

Portanto, tenha atenção!

12

Programação em Foco Eric Cancellgliere

4 Organize Tudo (Briefing)

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 anotações (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 espécie de briefing do projeto.

13

Programação em Foco Eric Cancellgliere

4 Organize Tudo (Briefing)

“Briefing (palavra inglesa que significa

resumo em português): é um conjunto de

informações, uma coleta de dados para o

desenvolvimento de um projeto. É um

documento contendo a descrição da

situação de uma empresa, seus problemas,

objetivos e recursos para atingi-los.”

O briefing não é o projeto do sistema. É um guia para

entendimento do problema exposto. A partir dele

construiremos o projeto do sistema.

14

Programação em Foco 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, almoçar, etc. E

também é um hábito que devemos criar para trabalhar em

nossos projetos, não importa de que tamanho sejam.

Desenvolver o Cronograma é um processo iterativo (se repete

diversas vezes) que envolve analisar a sequência das

atividades, sua duração, seus requerimentos e suas restrições,

determinando datas de início e término de cada atividade.

15

Programação em Foco Eric Cancellgliere

5 Cronograma

Modelo de Cronograma simples

Veja um modelo simples de cronograma que você pode

utilizar em seus projetos:

Atividade Início Término Responsável Status Comentário

16

Programação em Foco Eric Cancellgliere

5 Cronograma

Os itens do cronograma:

Atividade: ação a ser realizada. Exemplo: Ligar para o

cliente;

Início: data de início da atividade. Exemplo: 24/09/2015;

Término: data de término da atividade. Exemplo:

24/09/2015;

Responsável: pessoa responsável pela atividade.

Exemplo: Eric;

Status: situação da atividade. Exemplo: Concluído;

Comentário: alguma observação sobre a atividade.

Exemplo: Atividade já realizada.

O cronograma também pode ser passado para o cliente.

Assim, este pode acompanhar e fazer as cobranças

necessárias sobre o desenvolvimento do projeto.

17

Programação em Foco Eric Cancellgliere

6 Algoritmo

É aqui que a coisa vai começar a tomar forma. Algoritmo é

uma forma de representar a execução de uma tarefa ou a

solução de um problema. Nós usamos algoritmos em nosso

dia-a-dia sem que sequer notemos. Um bom exemplo é este:

Algoritmo Escovar os dentes

Início

1. Pegar a escova de dentes;

2. Pegar o creme dental com a outra mão;

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

18

Programação em Foco Eric Cancellgliere

6 Algoritmo

Perceba que as instruções de um algoritmo devem ser

numeradas, diretas, objetivas, sem redundância e ordenadas

de forma lógica, hierárquica. Além disso, os verbos devem

estar sempre no infinitivo (fazer, escrever, imprimir, etc.).

Vamos a outro exemplo de um algoritmo não computacional:

19

Programação em Foco Eric Cancellgliere

6 Algoritmo

Algoritmo Utilizar um telefone público

Início

1. Tirar o telefone do gancho;

2. Escutar o sinal de linha;

3. Introduzir o cartão;

4. Teclar o número desejado;

5. Se der sinal de chamar

5.1 Conversar;

5.2 Desligar;

5.3 Retirar o cartão;

6. Senão

6.1 Colocar o telefone no gancho;

6.2 Repetir;

Fim

20

Programação em Foco Eric Cancellgliere

6 Algoritmo

Neste exemplo vemos que há verificações de condições e

desvios de acordo com o que ocorrer. Também é possível

perceber melhor a hierarquia entre as instruções. É

exatamente assim que um programa de computador

funciona. Veja:

21

Programação em Foco Eric Cancellgliere

6 Algoritmo

Algoritmo Somar os números ímpares entre 0 e 10

Inicio

1. contador = 0;

2. soma = 0;

3. Enquanto contador < 10 Faça

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

22

Programação em Foco Eric Cancellgliere

6 Algoritmo

O algoritmo acima descreve um programa capaz de somar os

números ímpares entre 0 e 10. Há uma variável para controlar

o loop que percorrerá o intervalo 0-10 (contador) e outra para

armazenar o resultado da soma dos números ímpares (soma)

no intervalo. Dentro do loop, realizamos uma verificação para

saber se o valor da variável contador é ímpar. Se for,

adicionamos este valor ao conteúdo já existente na variável

soma. Ao término do loop, exibimos o resultado obtido em

soma.

Ainda que este algoritmo não seja um programa de

computador, conseguimos ver claramente como o programa

propriamente dito deverá funcionar. Este é o objetivo desta

técnica.

23

Programação em Foco Eric Cancellgliere

7 Teste de Mesa

Não basta apenas criar um algoritmo e não ter certeza de que

este irá funcionar, não é mesmo? Mas nós não precisamos,

necessariamente, transcrever o algoritmo para uma

linguagem de programação para saber se vai funcionar. É

possível testar seu funcionamento sem sequer precisar estar

próximo 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 através de simulação de

valores. Nós iremos basicamente fazer o que o computador

faria, porém, utilizando apenas “papel e caneta”.

24

Programação em Foco Eric Cancellgliere

7 Teste de Mesa

Como fazer o Teste de Mesa?

Peguemos o exemplo o seguinte algoritmo:

Algoritmo Somar dois números

Inicio

1. numero1 = 0;

2. numero2 = 0;

3. soma = 0;

4. Ler(numero1);

5. Ler(numero2);

6. soma = numero1 + numero2;

7. Escrever (soma);

Fim

25

Programação em Foco Eric Cancellgliere

7 Teste de Mesa

Primeiramente devemos identificar as variáveis do nosso

algoritmo. No caso, nossas variáveis são numero1, numero2 e

soma.

Agora vamos criar uma tabela, onde:

A primeira coluna: deverá identificar os números das

linhas correspondentes às instruções observadas;

As demais colunas: deverão identificar as variáveis que

serão observadas;

As linhas: corresponderão aos valores obtidos em cada

instrução.

26

Programação em Foco Eric Cancellgliere

7 Teste de Mesa

Olhe como ficaria o teste de mesa do nosso exemplo:

Linha numero1 numero2 Soma

1 {0} ? ?

2 {0} {0} ?

3 {0} {0} {0}

4 (5) {0} {0}

5 (5) (3) {0}

6 (5) (3) (8)

7 (5) (3) (8)

27

Programação em Foco Eric Cancellgliere

7 Teste de Mesa

No teste de mesa, vamos colocando os valores na tabela

conforme vão aparecendo nas linhas do algoritmo. Veja que

nas linhas 4 e 5 do nosso algoritmo eu coloquei os valores 5

(para a variável numero1) e 3 (para a variável numero2). Estes

valores são apenas valores de teste, valores que um usuário

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 variável soma recebesse o

resultado da soma dos valores das variáveis, isto é, o valor 8.

Há também algumas particularidades no teste de mesa como

o uso de parênteses, chaves e o símbolo de interrogação.

Vamos entendê-las:

28

Programação em Foco Eric Cancellgliere

7 Teste de Mesa

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

instrução, definido pelo programador;

Parênteses () : indicam um valor que foi lido, dado pelo

usuário;

Interrogação ? : indica um valor que ainda não foi

determinado.

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

que possua um laço de repetição (loop), faça o teste do

loop separadamente da tabela principal, indicando tal

ação nesta tabela. No teste de mesa de laços de

repetição, a primeira coluna da tabela deverá representar

o número de vezes que a repetição será executada ao

invés do número da linha.

29

Programação em Foco Eric Cancellgliere

8 Código Fonte

Para fechar o ciclo, é hora de programar!

Há quem prefira vir diretamente para esta etapa, ignorando

completamente as anteriores, imaginando que sua

experiência e o conhecimento adquiridos ao longo do tempo

já são suficientes e bastam para realizar esta tarefa. Estes

ainda não conseguem perceber que os problemas que

encontrarão durante este processo poderiam ser minimizados

ou até mesmo inexistentes se tivessem seguido esta “receita”.

Assim como não se constrói um edifício sem pesquisa, sem

planejamento, sem projeto; não se constrói programas de

computadores sem seguir estes passos básicos. Sim, estes são

passos básicos. Dependendo do tipo de sistema, teremos que

adicionar alguns outros passos para garantir a qualidade no

seu desenvolvimento. Mas por hora, estes nos bastam.

30

Programação em Foco Eric Cancellgliere

8 Código Fonte

Vou mostrar nesta etapa como ficariam os algoritmos Somar

dois números e Somar os números ímpares entre 0 e 10

transcritos para a linguagem de programação C. Mas antes

disso, preciso fazer algumas considerações sobre como você

deve codificar os seus programas. Não são imposições, ou

seja, não vou dizer que vocês devem fazer exatamente como

será explicado. Isto é apenas uma sugestão de alguém que

conhece o mercado e sabe da importância de cada palavra

aqui escrita. Portanto, vamos às considerações.

Um bom código fonte deve ter:

Cabeçalho: descrevendo o nome do programa e/ou a sua

utilidade, autor do programa, data de criação, versão,

modificações feitas em cada versão;

Comentários: explicando o que cada linha, trecho ou

bloco de código faz;

31

Programação em Foco Eric Cancellgliere

8 Código Fonte

Indentação: para facilitar a compreensão do código e criar

uma espécie de hierarquia entre vários blocos que este

pode possuir.

Indentação: esta é a forma correta de

escrita da palavra. Vemos em muitos sites

pela internet esta palavra escrita como

“identação”, que é uma forma de escrita

incorreta. A palavra indentação é um

neologismo (palavra derivada de outra)

que tem sua origem na palavra inglesa

indentation, tendo um sentido de recuo.

32

Programação em Foco Eric Cancellgliere

8 Código Fonte

Agora é hora de ver os algoritmos se transformarem em

programas:

Programa 1: Somar dois números

Programa 2: Somar os números ímpares entre 0 e

10

33

Programação em Foco Eric Cancellgliere

Programa 2 - Somar os números ímpares entre 0 e 10

35

Programação em Foco Eric Cancellgliere

#Resumo e #Dicas Finais

Ouça o problema: Escute o que seu cliente irá lhe pedir.

Faça anotações: Enquanto ouve o cliente (e também depois

de ouvi-lo) anote suas dúvidas, observações, palavras-chave,

etc.

Pergunte e colete material: Crie um questionário com base

no que ouviu do seu cliente e em suas anotações e colete

qualquer material que considerar necessário.

#Dica: Pesquisar sobre o negócio para o qual irá construir

um programa também pode ser de grande ajuda.

36

Programação em Foco Eric Cancellgliere

#Resumo e #Dicas Finais

Organize tudo (Briefing): Crie uma espécie de “guia” através

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 transforma-

lo em código fonte.

Código fonte: Crie o código fonte de forma organizada, com

cabeçalho, comentários e indentado.

37

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 abraço 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.