Servicios - Diseño y arquitectura
El diseño de la Arquitectura de un Software es el proceso por el cual se define una solución para los requisitos técnicos y operacionales del mismo. Este proceso NAVEGO.ES define qué componentes forman el software, cómo se relacionan entre ellos, y cómo mediante su interacción llevan a cabo la funcionalidad especificada, cumpliendo con los criterios previamente establecidos; como seguridad, disponibilidad, eficiencia o usabilidad.
Esta estructuración representa un diseño de alto nivel del sistema que tiene dos propósitos primarios: satisfacer los atributos de calidad (desempeño, seguridad, modificabilidad), y servir como guía en el desarrollo. Al igual que en la ingeniería civil, las decisiones críticas relativas al diseño general de un sistema de software complejo deben de hacerse desde un principio. El no crear este diseño desde etapas tempranas del desarrollo puede limitar severamente el que el producto final satisfaga las necesidades de los clientes. Además, el costo de las correcciones relacionadas con problemas en la arquitectura es muy elevado. Es así que la arquitectura de software juega un papel fundamental dentro del desarrollo.
Para diseñar la arquitectura de un software es de vital importancia tomar en cuenta los intereses de los distintos agentes que participan. Estos, son los usuarios del software, el propio software y los objetivos del negocio. Cada uno de ellos establece requisitos y restricciones que deben tomarse en cuenta para el diseño de la arquitectura, los que en algún momento podrían entrar en conflicto.
Para los usuarios es importante que el software responda a la interacción de una forma fluida, mientras que para los objetivos del negocio es importante que el software cueste poco. Los usuarios pueden querer que se implemente primero una funcionalidad útil para su trabajo del día a día, mientras que el software puede tener prioridad en que se implemente la funcionalidad que permita definir su estructura.
He aquí, por lo que NAVEGO.ES se esfuerza para delinear los escenarios y requisitos de calidad importantes para cada agente así como los puntos clave que debe cumplir y las acciones o circunstancias que no deben ocurrir.
El objetivo final de NAVEGO.ES es identificar los requisitos que producen un impacto en la estructura del software y reducir los riesgos asociados con la construcción del mismo. La arquitectura del software debe soportar los cambios futuros tanto del software, del hardware, como de funcionalidad demandada por los clientes (que ocurren muy a menudo). Del mismo modo, es responsabilidad de NAVEGO.ES analizar el impacto de sus decisiones de diseño y establecer un compromiso entre los diferentes requisitos de calidad así como entre los compromisos necesarios para satisfacer a los usuarios, al software y los objetivos del negocio.
2. Concebir y diseñar todos los casos de uso.
3. Satisfacer en la medida de lo posible los intereses de los agentes.
4. Ocuparse de los requisitos funcionales y de calidad.
5. Determinar el tipo de software a desarrollar.
6. Determinar los estilos arquitecturales que se usarán.
7. Tratar las principales cuestiones transversales.