¿Qué necesito explicar si alguien me pide que explique la arquitectura de mi aplicación?

Depende de qué aplicación sea esa.

Si se trata de una aplicación de escritorio o móvil independiente, es simple. Cuénteles sobre la elección del lenguaje de programación y las herramientas. Explique sobre los componentes en los que divide la aplicación. Qué componentes cumplen con la funcionalidad de la interfaz de usuario, qué componentes procesan la lógica, qué componentes están a cargo del almacenamiento y la obtención de datos (si corresponde).

Si se trata de una aplicación basada en web o distribuida, es más complicado.

Debe definir las pilas de aplicaciones: servidor web, servidor de aplicaciones, lenguaje / marco de programación, base de datos, API remotas.

Debe definir niveles (capas) de su aplicación: nivel de IU, nivel de servicios empresariales, nivel de servicios del sistema, nivel de acceso a la base de datos, nivel de acceso remoto.

Debe definir componentes para cada nivel. Debe definir las comunicaciones de datos y las invocaciones de funcionalidad entre componentes y entre niveles.

Debe definir las decisiones de diseño para garantizar la seguridad, la fiabilidad, la capacidad de mantenimiento, la capacidad de ampliación, el rendimiento y la escalabilidad.

Si preguntan más sobre detalles, probablemente necesite hablar sobre patrones de diseño, diseños de estructuras de datos, algoritmos de procesamiento … etc.

Si es más formal, debe tener algunos diagramas, por ejemplo, diagrama de implementación, diagrama de componentes, diagrama de clase, diagrama de caso de uso, diagrama de secuencia, diagrama de actividad. Pero ve fácil en el diagrama. La gente necesita un código que se ejecute en las computadoras, no imágenes hermosas inútiles. A menos que sea de una compañía estúpida como Oracle, SAP, Deloitte, Accenture. No tienen software real, por lo que muestran diagramas.

Puede que esta no sea la mejor respuesta, pero déjame intentarlo.

La aplicación tiene ciertos bloques de alto nivel como:

  1. Negocio
  1. Proceso
  2. Lógica
  • Operacional (back end)
    1. Plataforma
    2. Bases de datos
    3. Interfaces
    4. Flujos de datos
  • Interfaz de usuario (front end)
    1. GUI
    2. Hospedaje

    Además de todos estos componentes, podemos tener bloques subyacentes sobre:

    1. Seguridad
    2. Cumplimiento normativo (específico de la industria)
    3. Hardware utilizado para la implementación
    4. Clasificación general de la aplicación (específica de la organización)