¿Cómo deriva un programador la lógica de cualquier programa?

Estos son los pasos a seguir para desarrollar un software

1> recopilar información: inicialmente, quién tiene que configurar claramente la imagen de lo que me ha hecho. Si está desarrollando software para el cliente, debe interactuar con el cliente y descubrir sus necesidades y anotarlo.
2> DISEÑO: después de recopilar información, los diseñadores diseñan varios diagramas, como diagramas de flujo, diagramas de clases, diagramas de objetos, diagramas ER, diagramas de actividad, diagramas de secuencia, etc., a través de los cuales se decide qué clases estarán presentes en el programa y cómo interactuarán las clases entre sí y qué tipo de relación existirá (herencias, asociación, agregación, etc.) entre clases, qué métodos estarán presentes y qué base de datos se requiere.
3> después de este codificador a través de estos diagramas realiza la codificación.
4> después de la codificación prueban el programa.

Los problemas comienzan cuando la gente trata directamente de saltar al paso de codificación, por lo que antes de codificar hay que diseñar qué se requerirá y luego se debe seguir la parte de codificación. y si se trata de descifrar la lógica de programas simples, entonces es más una lógica matemática