AULA 07 / 61 · ACESSO GRATUITO

O que significa programar

Graciliano TolentinoEngenharia Caracol · Edição 2.0
Nesta aula
  1. Da intenção ao comportamento
  2. O primeiro contrato do catálogo
  3. Procedimento para começar
  4. Erros que mudam a finalidade
  5. Condição para avançar
  6. Exercício com solução comentada
  7. Referências para aprofundamento

Da intenção ao comportamento

Imagine que você recebeu a encomenda de criar o catálogo da Oficina Caracol. A frase parece simples, mas ainda não permite decidir se uma entrega está correta. Catálogo de quê? Quem pode consultar? Um serviço desativado aparece? O visitante precisa fornecer nome? Essas perguntas já pertencem ao trabalho de programar: elas definem a transformação que o código deverá realizar.

Um programa combina instruções para produzir comportamento a partir de entradas. A entrada pode ser uma lista de serviços; a saída pode ser uma relação visível na página. O comportamento inclui tanto o caminho esperado quanto as respostas a situações excepcionais. Uma tela bonita que apresenta um serviço inativo contradiz a necessidade, mesmo que o navegador não mostre erro.

Na Engenharia Caracol, organizamos essa construção para conseguir explicar o que mudou, por que mudou e como verificar a mudança. Planejar, implementar e verificar são atividades relacionadas. O planejamento não substitui a execução; a execução também não prova, por si, que o problema escolhido foi resolvido.

O primeiro contrato do catálogo

Contrato significa aqui um acordo explícito sobre entradas, resultados e limites. O quadro é um exemplo preenchido de especificação, não um registro de testes já realizados. Os identificadores c01 e c02 representam dados inventados para o estudo.

ElementoDefinição para a Oficina Caracol
Pessoa atendidaVisitante que quer conhecer os serviços disponíveis.
Entrada válidaLista de registros de serviço conforme o formato acordado.
TransformaçãoSelecionar serviços ativos e apresentar seus títulos.
Saída normalSomente os títulos dos serviços ativos aparecem no catálogo.
Lista vaziaA página informa que não há serviços disponíveis.
Entrada inválidaA falha recebe uma resposta explícita e distinta da lista vazia.
LimiteSem cadastro, banco externo ou dados pessoais reais.

A distinção entre vazio e inválido muda a experiência. Vazio significa que recebemos uma lista válida sem serviços para mostrar. Inválido significa que não podemos confiar na entrada. Transformar qualquer erro em uma tela vazia esconderia um defeito de dados e dificultaria sua correção.

Procedimento para começar

  • Escreva a necessidade usando o verbo que descreve a ação do visitante: consultar serviços disponíveis.
  • Liste entradas e resultados antes de escolher ferramentas. Inclua vazio, erro e informação que não deve aparecer.
  • Converta cada resultado em uma observação verificável. Para uma entrada com um serviço ativo e outro inativo, somente o ativo deve aparecer.
  • Escolha a menor entrega que demonstre essa transformação completa. Uma página com dados de exemplo pode ser suficiente para o primeiro ensaio.
  • Registre o que ainda está em aberto. Não trate uma pergunta sem resposta como autorização para inventar uma regra.

Erros que mudam a finalidade

ErroPor que atrapalhaReparo
Começar pela escolha de uma bibliotecaA escolha não define o resultado que o visitante precisa obter.Formular primeiro o comportamento e depois justificar a ferramenta.
Avaliar somente a aparênciaUm serviço indisponível pode continuar exposto.Verificar conteúdo e estados além da apresentação.
Declarar pronto porque abriuAbrir a página não demonstra entradas alternativas.Executar cenários normal, vazio e inválido separadamente.

Condição para avançar

Podemos iniciar a implementação quando conseguimos fornecer uma entrada de exemplo, indicar o resultado esperado e explicar os limites da primeira entrega. Isso autoriza construir; não autoriza declarar o produto terminado. Se ainda não sabemos se serviços inativos podem aparecer, precisamos decidir essa regra antes de aceitar a listagem.

Exercício com solução comentada

Considere três entradas de estudo: A contém c01 ativo e c02 inativo; B é uma lista vazia; C contém um registro sem o campo necessário para indicar sua situação. Escreva o resultado esperado para cada entrada e diga qual evidência não bastaria para aceitar o trabalho.

Ver solução comentada

Solução: A deve apresentar somente c01; B deve informar ausência de serviços; C deve receber tratamento explícito de dado inválido, conforme o contrato. Uma captura de A não comprova B nem C, porque mostra somente uma execução. A resposta está completa quando distingue os três estados e propõe observar cada um. Se sua solução apaga c02 da fonte sem autorização, você alterou o acervo para esconder a regra de apresentação: o exercício pede seleção, não exclusão do registro.

Referências para aprofundamento

Apoio de leitura: S01, SWEBOK, área Software Requirements, para a relação entre necessidade, especificação e validação de requisitos.

Fontes relacionadas

Consulte os limites e as seções de apoio de cada referência.

S01
Conseguiu explicar o que aprendeu?

Tente o exercício antes de consultar a solução. Marque a aula para organizar sua leitura.

A conclusão desta leitura não equivale a certificação ou aceite de um projeto real. Teste os exemplos no escopo indicado e registre as limitações.