Está en la página 1de 7

Diseño de la arquitectura

La arquitectura de software es el diseño de más alto nivel de la estructura de un sistema.


Una arquitectura de software, también denominada arquitectura lógica, consiste en un
conjunto de patrones y abstracciones coherentes que proporcionan un marco definido y claro
para interactuar con el código fuente del software existen varios tipos de arquitectura y con
estos a su vez varios modelos.

Esta parte define la estructura y las funciones o responsabilidades de los componentes que
formarán la arquitectura una vez identificados los requerimientos de esta y las restricciones

Tipos de arquitecturas:
Arquitectura Centrada en Datos:
Se enfoca en el almacenamiento de datos al que tienen acceso otros componentes se basa en
un almacenamiento central y los componentes tienen acceso a él
Arquitectura de Flujo de Datos:
Se utiliza cuando hay transformaciones en secuencia sobre ciertos datos se basa en el
concepto de tuberías, los componentes (filtros) se comunican a través de conectores (pipe) o
tuberías

Arquitecturas de Llamada y Retorno:


Se basa en una comunicación de llamadas y retornos entre módulos, Se divide en arquitectura
de programa principal y sub programas y Llamadas a Procedimientos Remotos (basado en el
modelo Cliente - Servidor)

Arquitecturas Orientadas a Objetos:


Los componentes de un sistema son datos y operaciones encapsulados y se comunican A
través del paso de mensajes
Arquitecturas en Capas:
Se tienen varias capas, cada capa se comunica con las capas inferiores o superiores a través del
paso de información y servicios

Modelos de arquitectura de software:

Las vistas o modelos de una arquitectura de software pueden expresarse mediante uno o
varios lenguajes. El más obvio es el lenguaje natural, pero existen otros lenguajes tales como
los diagramas de estado, los diagramas de flujo de datos, etc. Estos lenguajes son apropiados
únicamente para un modelo o vista.

Modelos estructurales:

Son similares a la vista estructural, pero su énfasis primario radica en la estructura coherente
del sistema completo, en vez de concentrarse en su composición. 

Los modelos de framework:

Estos se refieren a dominios o clases de problemas específicos. El trabajo que ejemplifica esta
variante incluye arquitecturas de software específicas de dominios, como CORBA, o modelos
basados en CORBA, o repositorios de componentes específicos, como PRISM.

Modelos dinámicos:

Enfatizan la cualidad conductual de los sistemas, “Dinámico” puede referirse a los cambios en
la configuración del sistema, o a la dinámica involucrada en el progreso de la computación,
tales como valores cambiantes de datos.

Modelos de proceso:

Se concentran en la construcción de la arquitectura, y en los pasos o procesos involucrados en


esa construcción.
Modelado de la arquitectura:
Cuando se quiere dar a entender mejor lo que se va a construir se crea un modelo idéntico,
pero en menor escala (mas pequeño). Sin embargo cuando aquello que construiremos es un
Software, nuestro modelo debe tomar una forma diferente, deben representar todas las
funciones y subsunciones de un Sistema. Los modelos se concentran en lo que debe hacer el
sistema no en como lo hace, estos modelos pueden incluir notación gráfica, información y
comportamiento del Sistema.  Todos los Sistemas basados en computadoras pueden
modelarse como transformación de la información empleando una arquitectura del tipo
entrada

ESQUEMA DEL MODELADO

ETAPAS DEL PROCESO

1)- Definir los requerimientos: (funcionales y o funcionales) Involucra crear un modelo desde
los requerimientos que guiarán el diseño de la arquitectura basado en los atributos de calidad
esperados.

Requerimientos no Funcionales

Describen como el software debe comportarse, es decir como hacer algo, no que debe hacer

Están relacionados con los requerimientos funcionales porque describen la forma que se
espera se logren dichos requerimientos

En algunos casos tienen restricciones de cómo hacerlo

Se clasifican de acuerdo al atributo de calidad esperado del sistema

2)-Diseño de la Arquitectura: Involucra definir la estructura y las responsabilidades de los


componentes que comprenderán la Arquitectura de Software.
3)- Validación: Significa “probar” la arquitectura, típicamente pasando a través del diseño
contra los requerimientos actuales y cualquier posible requerimiento a futuro.

Restricciones:

 Las restricciones: imponen condiciones sobre la arquitectura que normalmente no son


negociables.
 Limitan el rango de alternativas de decisión del arquitecto
 Algunas veces hace la vida más fácil para el arquitecto, en otras lo complica.
 Se pueden clasificar según su naturaleza: Negocio, Desarrollo, Tiempo, Costo, etc.

Priorización de requerimientos:

Alta: La aplicación debe soportar el requerimiento. Estos requerimientos guían el diseño de la


arquitectura.

Media: Requerimientos que necesitan ser soportados en algún momento o etapa del proyecto
pero no necesariamente en esta siguiente versión.

Baja: Se conoce como parte de la “wish-list”. Se pueden implementar cuando sea posible
hacerlo.

Para el desarrollo de un buen modelo hay que tener en cuenta algunos detalles básicos
como la escogencia de la arquitectura de referencia:
 Discutir los posibles estilos y patrones más apropiados que den el soporte requerido
para alcanzar los atributos de calidad deseados
(ES LA TAREA MÁS CRÍTICA EN TODO EL PROCESO)
 Basarse en Arquitecturas de Referencia reconocidas tanto por la academia como por la
industria
 Implementaciones conocidas, de amplia difusión y uso
 Buena documentación
 Reconocer el tamaño de la aplicación objetivo
 Aplicaciones pequeñas (Pocos patrones requeridos )
 Aplicaciones grandes (Mezcla de varios patrones

Mapeo de patrones a atributos de calidad


La calidad del software se define como el grado en el cual un software posee una
combinación adecuada de atributos. Los atributos de calidad son requisitos adicionales
del sistema, los cuales son características que debe tener el sistema, pero no son
considerados como requisitos funcionales.
Encapsulación del proceso: El coordinador contiene la lógica requerida para alcanzar el
objetivo del proceso de negocio, siendo un solo punto de definición hace más fácil entender y
modificar.

Bajo acoplamiento: Los componentes de servidores no se conscientes de su rol en el proceso


ni su orden de ejecución
Comunicación flexible: La comunicación entre el coordinador y los servidores puede ser
sincrónica o asincrónica

Atributos de calidad

Estos se clasifican en externos e internos (observables y no observables) y en tributos de


calidad por estilo arquitectónico

Atributos observables mediante ejecución:

Funcionabilidad: que funciones y este apto y Disponibilidad para el uso

Confidencialidad: Ausencia de acceso no autorizado a la información

Usabilidad: Realizar el trabajo para el cual fue desarrollado

Eficiencia: Cumplir con sus funciones dentro de restricciones de

Velocidad, exactitud, entre otras

Mantenibilidad: Mantenerse operativo a lo largo del tiempo que sea analizable, confiable,
estabilidad y comprobable

Seguridad: Servir a usuarios legítimos. Restringir los accesos no

Autorizados mediante negación del servicio


Atributos de calidad no observabable:
Configurabilidad: Poder realizar ciertos cambios al sistema

Integralidad: Trabajar correctamente componentes que fueron desarrollados

Por separado al integrarlos

Integridad: Ausencia de alteraciones inapropiadas de la información

Interoperabilidad: Habilidad para trabajar con otros sistemas

Modificabilidad: Poder realizar cambios futuros al sistema

Mantenibilidad: Capacidad para hacer reparaciones y evoluciones

Portabilidad: Poder ser ejecutado en diferentes ambientes

Reusabilidad: Componentes puedan ser usados en otros sistemas

Escalabilidad: Poder ampliar el diseño arquitectónico, datos o procedimental

Prueba: Facilidad para mostrar fallas ante un conjunto de pruebas

Taller de los atributos:

Se definirá QAW como referencia de Quality Attribute Workshop, que significa


Taller/Metodología de Atributos de Calidad. Es una metodología que permite a los interesados
del proyecto determinar los atributos de calidad de un sistema.

También podría gustarte