Se necesita algo de experiencia, pero el proceso general consiste en modelar su sistema, identificar sus componentes / objetos, implementar estos objetos de forma independiente y asegurarse de que existan interfaces para que funcionen juntas. Divide y conquistaras. Si descompone el problema en partes, luego atornille las partes, es mucho más accesible.
Puede ser más fácil ver esto por analogía. Considera un auto. Cuando piensa en construir algo como un automóvil, identifica sus componentes (motor, carrocería, ruedas, frenos, transmisión). Cada uno de estos se puede construir de forma independiente. De hecho, cada uno puede descomponerse en partes más pequeñas (un motor tiene muchas partes independientes). El diseño general incluye una especificación de cómo se atornillan todas estas partes, las mangueras que unen una parte con otra, etc.
Es así en el software. Los ingenieros siempre están pensando en el caso general. ¿Cómo hago que esto sea útil en múltiples aplicaciones / contextos? ¿Qué interfaces con estos objetos son lo suficientemente generales como para que lo que construyo pueda usarse en múltiples contextos? El resultado son API / interfaces, componentes reutilizables y bibliotecas y archivos de encabezado que permiten a otros usar lo que construiste.
- ¿Cuáles son los software más famosos escritos en Haskell y por qué no hay más? Sé de xmonad y que Standard Chartered lo usó en la producción. ¿Hay otros?
- Cómo desarrollar una aplicación
- ¿Cuáles son algunas opciones para que un brasileño sin pasaporte de la UE pueda vivir y trabajar en Berlín?
- Herramienta de gestión de recursos - UK Call Center - ¿Necesita un sistema para organizar al personal, alguna idea?
- ¿Para qué se utiliza el software Microstation v8i?
Los arquitectos de software piensan en cajas negras que hacen bien una o dos cosas, y cómo unirlas. Esto sucede idealmente antes de que comience la codificación, y la especificación de los componentes se puede dividir entre los miembros del equipo para implementar.