2. Análisis Arquitectural
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.
CAL/Fundamentos 2
3. Análisis Arquitectural
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.
CAL/Fundamentos 3
4. Análisis Arquitectural
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.
CAL/Fundamentos 4
5. Particionando El Modelo
Particionando el modelo de análisis:
Explicar el propósito del particionamiento
y los dos tipo de particionamiento.
CAL/Fundamentos 5
6. Particionando El Modelo
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
CAL/Fundamentos 6
7. Particionando El Modelo
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.
CAL/Fundamentos 7
8. Particionando El Modelo
Particiones de Dominio
Matriz de particionamiento
De dominio vs tecnológico
Define perfiles Fija el perfil de
de Seguridad seguridad del Verifica usuario
de la aplicación usuario
Interface de Interface de Interface de
Usuario Usuario Usuario
Capa de Comunicación (interface)
Particiones de Tecnología
Aplicación Aplicación Aplicación
Cliente Cliente Cliente
Aplicación
Servidor
Acceso de Seguridad a Datos
Seguridad del DBMS
CAL/Fundamentos 8
9. Particionando El Modelo
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.
CAL/Fundamentos 9
10. Particionando El Modelo
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.
CAL/Fundamentos 10
11. Particionando El Modelo
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.
CAL/Fundamentos 11
12. 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.
CAL/Fundamentos 12
13. Particionamiento Tecnológico
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.
CAL/Fundamentos 13
14. Objetivo Del Particionamiento
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.
CAL/Fundamentos 14
15. Objetivo Del Particionamiento
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.
CAL/Fundamentos 15
16. Objetivo Del Particionamiento
Estos factores a su vez, afectan
directamente el costo de desarrollo,
prueba y mantenimiento.
CAL/Fundamentos 16
17. Objetivo Del Particionamiento
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.
CAL/Fundamentos 17
18. Objetivo Del Particionamiento
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.
CAL/Fundamentos 18
19. Conclusión Particionamiento
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.
CAL/Fundamentos 19
20. 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).
CAL/Fundamentos 20
21. Resumen
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.
CAL/Fundamentos 21