La arquitectura del sistema es un nivel de diseño que pone el foco en aspectos más allá de los algoritmos, del modelado de datos o de los requisitos funcionales. La arquitectura del software establece las bases, los pilares, la estructura, sobre la cual reposará el resto de componentes. Estos “cimientos” deben ayudar a minimizar el esfuerzo de desarrollo, despliegue y mantenimiento del producto software.
El objetivo del diseño del código es imaginar, pensar o esbozar la implementación de los componentes y el software especificados en el análisis condicionado por las decisiones arquitectónicas tomadas. De este modo, en el paradigma de la programación orientada a objetos, el resultado del Diseño será la definición de clases y flujos de colaboración entre ellas. Estas definiciones sustentarán la actividad de codificación.