Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Anlisis Arquitectural
El anlisis es presentado aqu como la definicin del problema mientras que el diseo, como la definicin de la solucin. Una solucin que colmar todos los requerimientos funcionales que se deban construir. La solucin debe tomar ventaja de la tecnologa disponible para proporcionar el mejor soporte y rendimiento al menor costo.
2
CAL/Fundamentos
Anlisis Arquitectural
El anlisis arquitectural es el punto en el proceso de desarrollo donde se revisa los tipos de problemas que se trata de resolver para deducir que tecnologa proporcionar la solucin ptima. Si decimos diseo arquitectural estaremos implicando que estamos diseando una nueva arquitectura lo cual no es, al menos no usualmente.
3
CAL/Fundamentos
Anlisis Arquitectural
Existe un nmero limitado de formas de organizar una aplicacin. El anlisis arquitectural es el proceso de emparejar una necesidad con una aproximacin tecnolgica. Para alcanzar esta meta, necesitamos partir, o particionar el problema.
CAL/Fundamentos
Particionando El Modelo
CAL/Fundamentos
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:
CAL/Fundamentos
Particionando El Modelo
El particionamiento de dominio organiza las caractersticas 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 tecnolgico parte cada particin de dominio de acuerdo con las tecnologas que mejor implementar el software. La siguiente figura muestra la matriz que resulta de aplicar estos dos tipos de particionamiento.
7
CAL/Fundamentos
Particionando El Modelo
Particiones de Dominio
Verifica usuario
Interface de Usuario
Interface de Usuario
Interface de Usuario
Aplicacin Cliente
Aplicacin Cliente
Aplicacin Cliente
Aplicacin Servidor
Particiones de Tecnologa
Particionando El Modelo
Particionar el dominio significa organizar los diferentes tipos de funciones que el sistema debe soportar. Estas funciones estn definidas en el modelo de casos de uso. Los casos de uso deberan estar organizador usando los principios de cohesin y acoplamiento de modo que los casos de uso relacionados aparezcan juntos.
9
CAL/Fundamentos
Particionando El Modelo
Cada uno de los grupos resultantes deberan proporcionar todos los recursos de datos que el usuario necesita para completar con xito una unidad de trabajo. Estos recursos estn definidos en los diagrama de clases y de interaccin del dominio del problema.
CAL/Fundamentos
10
Particionando El Modelo
El particionamiento del dominio es algunas veces subjetivo e involucra interaccin 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
Particionamiento Tecnolgico
El particicionamiento tecnolgico identifica y separa las diferentes responsabilidades del software para cada particin del dominio. Cada particin tecnolgica trabajar tpicamente un tipo de funcionalidad de software, tal como el diseo de la interface del usuario, la lgica de la aplicacin, gestin de las transacciones o acceso y persistencia de datos.
12
CAL/Fundamentos
Particionamiento Tecnolgico
A su vez la naturaleza de cada tipo de funcionalidad tecnolgica usualmente necesitar un tipo diferente de programacin y tecnologa. 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 diseo de la interface de usuario implica elementos grficos y manejo de eventos.
13
CAL/Fundamentos
La meta del proceso de particionamiento es proporcionar una matriz de problemas nicos para la fase de diseo de objetos. Cada tipo de problema requiere diferentes patrones de diseo y tecnologas. Aislar cada tipo nico de problema de programacin hace mas fcil identificar las habilidades y recursos necesarios para disear e implementar la solucin.
14
CAL/Fundamentos
El nmero de responsabilidades diferentes que ud. asigna a cada particin afecta la complejidad de la particin. Cada particin ser una unidad de software. Este podra ser un nico programa o un conjunto de programas y otros recursos que cooperan para cumplir una funcin. Las responsabilidades que ud. decida incluir en cada particin influye en la calidad de cohesin de cada unidad y la calidad del acoplamiento entre unidades.
15
CAL/Fundamentos
CAL/Fundamentos
16
Despus que divida el sistema en particiones, las nuevas particiones deben conversar unas con otras como si no estuvieran particionadas. Una capa de comunicacin se debe introducir donde quiera que ud. divida la arquitectura. Estas capas de comunicacin vienen a ser parte del esfuerzo de diseo.
17
CAL/Fundamentos
Por ejemplo, en la matriz anterior la interface de usuario y la aplicacin del cliente deben comunicarse. Igualmente, la aplicacin 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 comunicacin es un producto como CORBA o JDBC, o una aplicacin 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.
18
CAL/Fundamentos
Conclusin Particionamiento
El particionamiento identifica todos los problemas de programacin y diseo necesarios para crear la aplicacin completa. Este vista le permite atacar cada problema aisladamente mientras ve como todo encaja junto.
CAL/Fundamentos
19
Resumen
El particionamiento es una herramienta simple para controlar y comprender el diseo e implementacin del sistema. El particionamiento es el proceso de partir los requerimientos en preparacin para el diseo detallado. El particionamiento del dominio aisla requerimientos en trminos de interfaces de usuario (casos de uso), recursos del dominio del problema (clases), e interacciones con el sistema (diagramas de interaccin).
20
CAL/Fundamentos
Resumen
Las particiones tecnolgicas identifican las responsabilidades de la aplicacin de software y empareja productos y tcnicas de programacin para cubrir estas responsabilidades. El resultado de particionar es una matriz de tareas de diseo especficas que sern trabajadas ya sea por productos existentes o programacin.
21
CAL/Fundamentos