A redação do programa começa com a análise
Antes de começar a escrever um programa, você precisa entender o que ele deve fazer. Isso geralmente significa entender algo sobre o 'mundo real' e como ele funciona. Esse algo é freqüentemente referido como um 'processo' ou 'regras de negócios'. Para entender o processo, os programadores fazem algo chamado 'análise'. A análise é definida como quebrar algo em seus componentes inter-relacionados, a fim de compreendê-lo. O objeto da análise pode ser dados brutos, um processo de negócios ou aprender a programar.
Quando escrevi o código para a demonstração de fabricação de panquecas que fizemos para Fred, o dono da Pancake House, tive que entender como fazer panquecas antes de poder ensinar meu robô, Foober, a fazê-lo. Minha mãe me ensinou a fazer panquecas quando eu era criança, então foi bastante fácil. Mas, tive que analisar o processo do ponto de vista de um programador, não de um cozinheiro, para que meu programa funcionasse. E a análise é a chave para escrever um código bom e útil.
Mapeando o Processo
Na primeira lição, escrevi uma lista de coisas que Foober teria que saber para se tornar um grill-bot competente. Esse foi o ponto de partida para minha análise. Na verdade, era apenas uma lista de compras de habilidades e conhecimentos.
Para o programa que estou escrevendo para Foober, o futuro robô de grelha Pancake House, a lista é um pouco diferente:
- Como fazer cada tipo de panqueca
- O que é uma grelha
- Onde está tudo
- Como saber quando a grelha está quente o suficiente
- Como saber quando virar as panquecas
- Como virar as panquecas
- Como saber quando tirá-los da grelha
- Como preparar panquecas
- Como enfeitar os pratos
Mas, ainda é apenas uma lista. O que preciso fazer é começar a mapear as etapas exatas que o robô de Fred precisa fazer. Uma ferramenta que você pode usar para isso é um fluxograma.
Fluxogramas
Os fluxogramas foram desenvolvidos originalmente para que os programadores pudessem mapear as etapas que seus programas precisavam realizar para realizar a tarefa programada. Acontece que eles também são úteis para mapear processos do mundo real.
Há um número relativamente grande de símbolos de fluxograma , mas cinco deles são os mais comumente usados:
![]() |
Analisando um Processo Simples
Vamos usar um fluxograma para analisar um processo simples - abrir presentes de aniversário. A regra quando eu cresci era simples: eu só podia abrir meus presentes no meu aniversário. Portanto, todas as manhãs, por cerca de uma semana antes do meu aniversário real, a primeira coisa que me veio à cabeça quando acordei foi: 'É meu aniversário?' Quando eu pudesse responder 'sim', poderia abrir meus presentes.
Então, vamos ver como poderíamos fazer um fluxograma desse processo:
O processo começa quando eu acordo. A certa altura, antes de sair da cama, me pergunto: 'É meu aniversário?' O símbolo de decisão (diamante) mostra que estamos testando uma condição para ver se ela é verdadeira ou falsa. Neste exemplo, estamos procurando ver se a resposta à pergunta, 'É meu aniversário' é sim ('verdadeiro') ou não ('falso'). Essa resposta determinará o que vou fazer a seguir.
Se a resposta for 'não', sigo o caminho da esquerda, vou para 'parar' e me levanto. Mas, se a resposta à pergunta: 'É meu aniversário?' é 'sim', vou direto para a atividade de 'abrir o presente' (woo-hoo!). Depois de abrir meu presente, desço para 'parar' porque acabei.
![]() |
'Mas espere' você diz. - O que acontece quando você ganha mais de um presente de aniversário? Estou feliz que você perguntou. O que fizemos até agora foi documentar o caso mais simples. Nós examinamos isso e estamos bastante confiantes de que acertamos. Agora, estamos prontos para avançar para uma situação mais complexa! Você notará que este gráfico tem muitas semelhanças com o primeiro:
![]() |
Eu começo no 'início' e passo para a decisão. Se não for meu aniversário, sigo o caminho da esquerda para 'parar', como antes. Se for meu aniversário, abro um presente. A grande mudança neste fluxograma é depois que abro um presente. Em vez de descer para parar, agora procuro ver se há mais presentes. Se houver, volto para a caixa de presente aberta e abro outro presente. Finalmente, quando não há mais presentes, paro porque, bem, não há mais presentes.
Análise para a Demonstração
Você deve se lembrar que, usando algumas informações que reuni anteriormente, trabalhei em algumas análises para a primeira tentativa em meu protótipo usando Foober. Você deve se lembrar que trabalhei em algumas análises para a primeira rodada da demonstração de fabricação de panquecas.
Minha meta para aquela corrida era apenas fazer Foober fazer panquecas simples e colocá-las em um prato. Comecei mapeando as tarefas de alto nível que ele precisava realizar. Não havia muitos detalhes, porque primeiro queria ter certeza de que as etapas estavam na ordem certa. Assim que tivesse certeza disso, poderia fazer mais análises para dividir as coisas em muitas etapas mais simples.
Aqui está meu fluxograma de alto nível para o protótipo:
![]() |
Começamos no oval de início e vamos diretamente para verificar a temperatura da grelha. (Lembre-se de que Fred o ligou como parte da nossa preparação, então essa não é uma de nossas atividades.) Se a churrasqueira não estiver quente o suficiente, nossa atividade é verificar novamente em 5 minutos. Se a grelha estivesse realmente fria, poderíamos ter que repetir (passar pelo mesmo loop mais de uma vez).
Quando Foober verificar a grelha e ela estiver na temperatura certa, ele poderá despejar a massa da panqueca e pronto! Foober verificará se as panquecas precisam ser viradas depois de servir. Se não o fizerem, ele os verificará novamente em 30 segundos. Novamente, ele pode iterar por meio desse loop algumas vezes até que esteja pronto para girar.
Quando Foober vê que as panquecas estão prontas para virar, ele as vira. Ele então verifica se eles foram concluídos. Provavelmente não, então ele esperará 15 segundos para verificá-los novamente. Quando ele vê que as panquecas estão prontas, ele as coloca no prato e para. O programa e a demonstração terminaram.
Resumo da lição
Então, para recapitular - depois de ter seus requisitos, você pode começar analisando-os para ter uma boa ideia do que seu programa deve fazer. Você faz a análise para quebrar algo em seus componentes inter-relacionados a fim de entendê-lo. Nossos exemplos simples foram vistos quando eu podia abrir meus presentes de aniversário. Em seguida, demos uma olhada na análise preliminar que fiz para o protótipo que escrevi para Foober. Assim que tiver um bom controle da minha análise, posso começar o design detalhado do meu programa. Veremos isso na próxima lição.
Resultados de Aprendizagem
No final desta lição, você será capaz de:
- Definir análise e iteração
- Descrever fluxogramas e identificar símbolos comuns de fluxogramas