𝗣𝗿𝗼𝗰𝗲𝘀𝘀𝗼 𝗱𝗲 𝗗𝗲𝘀𝗶𝗴𝗻 𝗟𝗟𝗗 (𝗗𝗼𝘀 𝗥𝗲𝗾𝘂𝗶𝗿𝗶𝘁𝗼𝘀 𝗮𝗼 𝗖ó𝗱𝗶𝗴𝗼)

O Low Level Design não consiste em escrever código imediatamente. Trata-se de seguir um processo estruturado.

Siga estes passos para passar de um enunciado de problema para um código funcional.

  1. Entenda os Requisitos Não pule direto para as classes. Primeiro, descubra o que o sistema deve fazer.
  • Quais funcionalidades ele precisa?
  • Quais ações ele deve suportar?
  • Quais mudanças podem ocorrer futuramente?
  1. Identifique Substantivos para Encontrar Classes Procure por substantivos em seus requisitos. Os substantivos tornam-se suas classes. Exemplo: Um Editor de Documentos
  • Substantivos: Document, Text, Image, Storage, Editor.
  • Classes: Document, TextElement, ImageElement, Storage, DocumentEditor.

Exemplo: Um Estacionamento

  • Substantivos: ParkingLot, Floor, Slot, Vehicle, Ticket.
  • Classes: ParkingLot, Floor, Slot, Vehicle, Ticket.
  1. Use IS-A para Herança Pergunte a si mesmo: "O filho é um tipo do pai?"
  • TextElement É UM (IS-A) DocumentElement.
  • Carro É UM (IS-A) Veículo.
  • Cachorro É UM (IS-A) Animal. Se a resposta for sim, use herança.
  1. Use HAS-A para Composição Pergunte a si mesmo: "Um objeto contém outro?"
  • Um Documento TEM UMA (HAS-A) coleção de elementos.
  • Um ParkingLot TEM UM (HAS-A) conjunto de andares.
  • Um Carro TEM UM (HAS-A) motor. Use composição para vincular esses objetos.
  1. Identifique Verbos para Encontrar Métodos Procure por ações nos requisitos. Os verbos tornam-se seus métodos.
  • Adicionar texto torna-se addText().
  • Salvar documento torna-se save().
  • Estacionar veículo torna-se parkVehicle().
  1. Planeje para Mudanças com Interfaces Pense em atualizações futuras. Se você salvar um documento, poderá usar um Arquivo, um Banco de Dados ou a Nuvem.
  • Crie uma interface chamada Persistence.
  • Crie implementações como FileStorage ou DBStorage. Isso permite que você adicione CloudStorage posteriormente sem alterar seu código existente.
  1. Desenhe o UML e Escreva o Código Assim que tiver as classes, herança, composição e métodos, desenhe um diagrama UML. Ele servirá como seu projeto (blueprint). Por fim, converta esse projeto em código limpo.

Resumo do Fluxo:

  • Requisitos
  • Substantivos para Classes
  • IS-A para Herança
  • HAS-A para Composição
  • Verbos para Métodos
  • Variações para Interfaces
  • Diagrama UML
  • Código Final

Source: https://dev.to/roshan_singh_dd54d52bbaa7/lld-design-process-from-requirements-to-code-594m