O que significa programar
Nesta aula
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.
| Elemento | Definição para a Oficina Caracol |
|---|---|
| Pessoa atendida | Visitante que quer conhecer os serviços disponíveis. |
| Entrada válida | Lista de registros de serviço conforme o formato acordado. |
| Transformação | Selecionar serviços ativos e apresentar seus títulos. |
| Saída normal | Somente os títulos dos serviços ativos aparecem no catálogo. |
| Lista vazia | A página informa que não há serviços disponíveis. |
| Entrada inválida | A falha recebe uma resposta explícita e distinta da lista vazia. |
| Limite | Sem 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
| Erro | Por que atrapalha | Reparo |
|---|---|---|
| Começar pela escolha de uma biblioteca | A escolha não define o resultado que o visitante precisa obter. | Formular primeiro o comportamento e depois justificar a ferramenta. |
| Avaliar somente a aparência | Um serviço indisponível pode continuar exposto. | Verificar conteúdo e estados além da apresentação. |
| Declarar pronto porque abriu | Abrir 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.
S01Tente 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.