Sesion 6 2 diseño análisis arquitectural

21
Diseño: Análisis Arquitectural Lic. César Alcántara Loayza

Transcript of Sesion 6 2 diseño análisis arquitectural

Page 1: Sesion 6 2 diseño   análisis arquitectural

Diseño:Análisis Arquitectural

Lic. César Alcántara Loayza

Page 2: Sesion 6 2 diseño   análisis arquitectural

2CAL/Fundamentos

El análisis es presentado aquí como la definición del problema mientras que el diseño, como la definición de la solución. Una solución que colmará todos los requerimientos funcionales que se deban construir. La solución debe tomar ventaja de la tecnología disponible para proporcionar el mejor soporte y rendimiento al menor costo.

Análisis Arquitectural

Page 3: Sesion 6 2 diseño   análisis arquitectural

3CAL/Fundamentos

El análisis arquitectural es el punto en el proceso de desarrollo donde se revisa los tipos de problemas que se trata de resolver para deducir que tecnología proporcionará la solución óptima.

Si decimos diseño arquitectural estaremos implicando que estamos diseñando una nueva arquitectura – lo cual no es, al menos no usualmente.

Análisis Arquitectural

Page 4: Sesion 6 2 diseño   análisis arquitectural

4CAL/Fundamentos

Existe un número limitado de formas de organizar una aplicación. El análisis arquitectural es el proceso de emparejar una necesidad con una aproximación tecnológica. Para alcanzar esta meta, necesitamos partir, o particionar el problema.

Análisis Arquitectural

Page 5: Sesion 6 2 diseño   análisis arquitectural

5CAL/Fundamentos

Particionando El Modelo Particionando el modelo de análisis:

Explicar el propósito del particionamiento y los dos tipo de particionamiento.

Page 6: Sesion 6 2 diseño   análisis arquitectural

6CAL/Fundamentos

El particionamiento organiza el problema que desea resolver en unidades discretas para crear un sistema de software exitoso. Dos tipos de particionamiento: Particionamiento de dominio Particionamiento tecnológico

Particionando El Modelo

Page 7: Sesion 6 2 diseño   análisis arquitectural

7CAL/Fundamentos

El particionamiento de dominio organiza las características del sistema en unidades cohesivas de trabajo basadas en las espectativas del usuario, las que se definen en las dos primeras fases del proyecto. El particionamiento tecnológico parte cada partición de dominio de acuerdo con las tecnologías que mejor implementará el software. La siguiente figura muestra la matriz que resulta de aplicar estos dos tipos de particionamiento.

Particionando El Modelo

Page 8: Sesion 6 2 diseño   análisis arquitectural

8CAL/Fundamentos

Particionando El ModeloParticiones de Dominio

Par

tici

on

es

de

Tec

no

log

ía

Cap

a d

e C

om

un

icac

ión

(in

terf

ace

)

Define perfilesde Seguridad

de la aplicación

Fija el perfil deseguridad del

usuarioVerifica usuario

Interface deUsuario

Interface deUsuario

Interface deUsuario

AplicaciónCliente

AplicaciónCliente

AplicaciónCliente

AplicaciónServidor

Acceso de Seguridad a Datos

Seguridad del DBMS

Matriz de particionamientoDe dominio vs tecnológico

Page 9: Sesion 6 2 diseño   análisis arquitectural

9CAL/Fundamentos

Particionar el dominio significa organizar los diferentes tipos de funciones que el sistema debe soportar. Estas funciones están definidas en el modelo de casos de uso. Los casos de uso deberían estar organizador usando los principios de cohesión y acoplamiento de modo que los casos de uso relacionados aparezcan juntos.

Particionando El Modelo

Page 10: Sesion 6 2 diseño   análisis arquitectural

10CAL/Fundamentos

Cada uno de los grupos resultantes deberían proporcionar todos los recursos de datos que el usuario necesita para completar con éxito una unidad de trabajo. Estos recursos están definidos en los diagrama de clases y de interacción del dominio del problema.

Particionando El Modelo

Page 11: Sesion 6 2 diseño   análisis arquitectural

11CAL/Fundamentos

El particionamiento del dominio es algunas veces subjetivo e involucra interacción significativa con los usuarios. Sin embargo a medida que aprenda el proceso, desarrollará tecnicas para medir la calidad de los agrupamientos mas objetivamente.

Particionando El Modelo

Page 12: Sesion 6 2 diseño   análisis arquitectural

12CAL/Fundamentos

Particionamiento Tecnológico El particicionamiento tecnológico identifica y

separa las diferentes responsabilidades del software para cada partición del dominio. Cada partición tecnológica trabajará típicamente un tipo de funcionalidad de software, tal como el diseño de la interface del usuario, la lógica de la aplicación, gestión de las transacciones o acceso y persistencia de datos.

Page 13: Sesion 6 2 diseño   análisis arquitectural

13CAL/Fundamentos

A su vez la naturaleza de cada tipo de funcionalidad tecnológica usualmente necesitará un tipo diferente de programación y tecnología. Por ejem. El acceso a datos implica la capacidad de comunicar con archivos o bases de datos y la necesidad de seleccionar una base de datos adecuada. El diseño de la interface de usuario implica elementos gráficos y manejo de eventos.

Particionamiento Tecnológico

Page 14: Sesion 6 2 diseño   análisis arquitectural

14CAL/Fundamentos

La meta del proceso de particionamiento es proporcionar una matriz de problemas únicos para la fase de diseño de objetos. Cada tipo de problema requiere diferentes patrones de diseño y tecnologías. Aislar cada tipo único de problema de programación hace mas fácil identificar las habilidades y recursos necesarios para diseñar e implementar la solución.

Objetivo Del Particionamiento

Page 15: Sesion 6 2 diseño   análisis arquitectural

15CAL/Fundamentos

El número de responsabilidades diferentes que ud. asigna a cada partición afecta la complejidad de la partición. Cada partición será una unidad de software. Este podría ser un único programa o un conjunto de programas y otros recursos que cooperan para cumplir una función. Las responsabilidades que ud. decida incluir en cada partición influye en la calidad de cohesión de cada unidad y la calidad del acoplamiento entre unidades.

Objetivo Del Particionamiento

Page 16: Sesion 6 2 diseño   análisis arquitectural

16CAL/Fundamentos

Estos factores a su vez, afectan directamente el costo de desarrollo, prueba y mantenimiento.

Objetivo Del Particionamiento

Page 17: Sesion 6 2 diseño   análisis arquitectural

17CAL/Fundamentos

Después que divida el sistema en particiones, las nuevas particiones deben conversar unas con otras como si no estuvieran particionadas. Una capa de comunicación se debe introducir donde quiera que ud. divida la arquitectura. Estas capas de comunicación vienen a ser parte del esfuerzo de diseño.

Objetivo Del Particionamiento

Page 18: Sesion 6 2 diseño   análisis arquitectural

18CAL/Fundamentos

Por ejemplo, en la matriz anterior la interface de usuario y la aplicación del cliente deben comunicarse. Igualmente, la aplicación cliente debe comunicarse con una o mas bases de datos. En algunos casos la interface es tan simple como un protocolo. En otros casos, la capa de comunicación es un producto como CORBA o JDBC, o una aplicación que está separada de las dos particiones que la usan. Un ejemplo es la capa de acceso de seguridad de datos incluida en la matriz anterior.

Objetivo Del Particionamiento

Page 19: Sesion 6 2 diseño   análisis arquitectural

19CAL/Fundamentos

El particionamiento identifica todos los problemas de programación y diseño necesarios para crear la aplicación completa. Este vista le permite atacar cada problema aisladamente mientras ve como todo encaja junto.

Conclusión Particionamiento

Page 20: Sesion 6 2 diseño   análisis arquitectural

20CAL/Fundamentos

Resumen El particionamiento es una herramienta simple

para controlar y comprender el diseño e implementación del sistema.

El particionamiento es el proceso de partir los requerimientos en preparación para el diseño detallado.

El particionamiento del dominio aisla requerimientos en términos de interfaces de usuario (casos de uso), recursos del dominio del problema (clases), e interacciones con el sistema (diagramas de interacción).

Page 21: Sesion 6 2 diseño   análisis arquitectural

21CAL/Fundamentos

Las particiones tecnológicas identifican las responsabilidades de la aplicación de software y empareja productos y técnicas de programación para cubrir estas responsabilidades.

El resultado de particionar es una matriz de tareas de diseño específicas que serán trabajadas ya sea por productos existentes o programación.

Resumen