(1) PRIMEIRA ETAPA: análise da situação-problema
Uma biblioteca escolar quer reduzir atrasos na devolução de livros. Hoje, o controle é feito em planilhas; quando um empréstimo vence, o aluno só descobre no balcão ou quando recebe uma cobrança escrita. A direção decidiu criar um recurso simples no aplicativo da escola: enviar lembretes de devolução com data e título do livro, e permitir que o aluno visualize seus prazos em uma tela única.
Para que esse recurso funcione, é preciso organizar informações básicas: quem é o aluno, qual livro está emprestado, qual é a data de devolução, e como avisá-lo (notificação no app e e-mail).
A solução deve ser clara e direta, sem programação nesta atividade — o objetivo é descrever as entradas, saídas e regras de negócio de forma que qualquer pessoa entenda.
No desenvolvimento de software, a disciplina mostra que sistemas ficam mais compreensíveis quando se nomeiam as “coisas do domínio” (por exemplo: Aluno, Livro, Empréstimo) e se explica o papel de cada uma. Essa forma de pensar está ligada aos conceitos de classes e objetos (o que a coisa “é” e o que ela “faz”), além da ideia de regras para decidir o que pode ou não pode acontecer. Esses fundamentos aparecem no material base quando diferencia classes (modelo) e objetos (instâncias) e apresenta elementos como atributos e métodos.
Outro ponto é que, mesmo num recurso pequeno, precisamos de regras simples e de decisões (ex.: “se a data de hoje for maior que a data de devolução, marcar como ‘em atraso’”). No livro de Programação Avançada, as decisões e repetições são apresentadas como estruturas que dão fluxos diferentes a um programa — aqui, vamos apenas descrevê-las em linguagem natural, sem código nem pseudocódigo. Por fim, o livro de Programação para Dispositivos Móveis reforça que entender objetos, classes, atributos e métodos ajuda a manter o sistema organizado e evolutivo. Para esta atividade, basta nomear as entidades e explicar o papel de cada uma em uma frase.