Ejemplo SAD
Ejemplo SAD
Ejemplo SAD
@USB
Documento de Arquitectura de Software”
Versión <1.0>
@USB Versión: <1.0>
Documento de Arquitectura de Software Fecha: <14/04/2008>
Arquitectura
Historia de Revisión
Fecha Versión Descripción Autor
14-05-2008 1.0 Primera versión del Documento de Maribel Acosta
Arquitectura para la aplicación Cuaderno
Beatriz Avila
del sistema @USB
Alexander Bustamante
Cristiam Da Silva
Zinahia Querales
Luis Serrano
Alberto Quirós
Tabla de Contenidos
1. Introducción 4
1.1 Propósito 4
1.2 Alcance 4
1.3 Definiciones, Acrónimos y Abreviaturas 4
1.4 Referencias 4
1.5 Visión General 4
2. Representación Arquitectural 5
5. Vista Lógica 7
6. Vista de Implementación 12
6.1 Visión General 12
6.2 Capas 12
6.2.1 Capa de Interfaz 13
6.2.2 Capa de Negocio 14
6.2.3 Capa de Datos y Utilidades 15
7. Vista de Despliegue 16
8. Vista de Procesos 17
9. Vista de Datos 17
11. Calidad 17
1.1 Propósito
El presente documento provee una visión inicial para la arquitectura de la aplicación “Cuaderno” en el
sistema @USB, a través de la utilización de las 4+1 vistas de RUP. De esta manera, se busca capturar y
asentar las decisiones importantes que serán tomadas en el desarrollo de la aplicación.
1.2 Alcance
Se muestra a alto nivel el diseño de la arquitectura por vistas de la aplicación. En cada una, se presentan los
diagramas correspondientes, a saber: modelo conceptual, diagrama de clases, casos de uso, diagramas de
interacción, entre otros.
3. Estudiante Registrado
Término utilizado para referirse a aquellos estudiantes que tienen acceso al sistema y que pueden utilizar su
plataforma y aplicaciones.
4. Grupo
Conjunto de usuarios registrados que se reúnen para compartir información sobre algún tema común de
interés. Posee un cuaderno.
5. Perfil
Sección de la cuenta de cada usuario donde aparecen sus datos personales, foto y el cuaderno.
1.4 Referencias
Se hace referencia a los documento de Visión, de Casos de Uso y de Arquitectura del sistema @USB.
2. Representación Arquitectural
Para esta entrega del documento, se representarán las vistas utilizando los siguientes recursos:
Vista Lógica.
Se realizará el Modelo Conceptual de la aplicación Cuaderno, que permita comprender el dominio
del problema, utilizando la notación UML. Además, se desarrollará la primera versión del
Diagrama de Clases de la aplicación para representar el dominio de la solución, utilizando también
la notación UML y patrones.
Vista de Implementación.
Se explicará la estructura que describe el modelo de implementación de la aplicación, su
composición en capas y cada uno de sus componentes.
Vista de Despliegue
Se muestra la relación de la aplicación a desarrollar con el hardware requerido para el despliegue
del sistema.
Vista de Procesos.
Se habla de los procesos (si existen).
Vista de Datos.
Se mostrará el Diagrama Entidad-Relación, la traducción al Relacional y el Diccionario de Datos
del Relacional.
El desarrollo de la aplicación se enfoca en que llegue a tener características que sean sostenibles, eficientes
y fáciles de usar para cualquier usuario del sistema @USB
Performance: El desempeño de la aplicación debe ser muy eficiente de tal manera el usuario
inmediato y todos los demás observen lo más rápidamente posible los cambios realizados en un
momento determinado.
Usabilidad: El diseño debe ser orientado por y para la comodidad del usuario, de manera que la
interfaz sea intuitiva y fácil de manejar, al mismo tiempo que se fomente altamente la interacción
entre ambos. De la misma forma, el usuario debe tener la capacidad de equivocarse y regresar a un
estado seguro en el que se le permita cumplir con su objetivo original sin que se le haga tedioso o
complicado el proceso para llegar a dicho fin.
a) Restricciones de contenido: debido a que nuestro sistema está basado y propuesto para aquellos
que pertenecen a la institución educativa de la Universidad Simón Bolívar, el mismo debe estar de
acuerdo con el reglamento de la institución, por lo que ciertos contenidos deben ser excluidos en el
uso de la aplicación. Por ejemplo, no se pueden discutir temas de carácter ilícito o de índole
sexual, ya que éstos van en contra de los principios de la institución que está siendo representada.
En esta vista se mostrarán la lista de los Casos de Usos críticos de la aplicación “Cuaderno”.
El usuario debe estar en el perfil del estudiante o el grupo donde desea dejar su comentario. A
continuación, se posiciona en el área predefinida para que pueda escribir su mensaje. Lo escribe y, al finalizar,
presiona el botón “Publicar”. El sistema agregará dicho mensaje a la lista de comentarios perteneciente al dueño del
perfil o al grupo, y luego aparecerá en el tope del Cuaderno.
El usuario debe encontrarse en el Cuaderno de donde quiere borrar su comentario. Allí, selecciona la
opción “Borrar” que se encuentra arriba de mensaje a eliminar (en caso de no estar este botón, el mensaje no le
pertenece, así que no puede borrarlo). El sistema se encarga de suprimirlo de los registros y luego lo desaparece de
la posición en la que se encontraba en el Cuaderno, ajustando los mensajes que quedaron, si existe alguno.
Es posible que un estudiante pueda borrar cualquier comentario hecho en su propio perfil.
5. Vista Lógica
Como propuesta, se tiene el siguiente Modelo Conceptual para cuáles son las asociaciones pertinentes entre
los conceptos más relevantes para la aplicación Cuaderno.
6. Vista de Implementación
Para el desarrollo de la aplicación Cuaderno se definió una estructuración en capas para su implementación
pues se logra independencia entre los distintos componentes. Su definición en capas ofrece numerosas ventajas,
entre ellas:
- Capa de Interfaz.
- Capa de Negocio.
6.2 Capas
A continuación se explican cada una de las capas que conforman la aplicación.
La capa de interfaz del usuario cubre muchas bases. Más que un conjunto de estándares para la ubicación
de las unidades gráficas en la pantalla, se envuelven también aspectos de la selección de la tecnología.
Estilo de Layout y Usabilidad 1. El layout que se presentará para la aplicación presentará un estilo
consistente y será amigable al usuario, de manera que se facilite la
interacción.
2. La aplicación se utilizará a través del sistema @USB mediante un
navegador Web o Browser.
Herramientas de Construcción:
Lenguajes 1. PHP. Es imprescindible para la generación de la interfaz en las
páginas de contenido dinámico.
Ambiente de Desarrollo Integrado 1. Adobe Dreamweaver.
Despliegue de Información 1. Extensible Hypertext Markup Language (XHTML) se empleará
para transmitir la información al usuario.
Componentes:
Presentación de errores a la interfaz 1. Se mostrarán los errores en la página comunicándole al usuario la
del usuario falla ocurrida de una manera entendible para que pueda ser
comunicada fácilmente a un administrador.
En la capa de negocio se deben especificar el lenguaje y las herramientas para la implementación del
sistema. Además, puntualizar patrones y componentes pre-construidos si están disponibles.
Componentes:
Lenguajes 1. Java 1.6.
Ambiente de Desarrollo Integrado 1. Eclipse Classic 3.3.2 con conexión a SVN.
Uso de Patrones:
A tiempo de corrida la aplicación 1. Patrón de Construcción – Este patrón debe ser utilizado por aquellos
no sabe exactamente qué tipo de recursos creados dinámicamente por la aplicación.
instancia debe crear.
Cada Caso de Uso representa 1. Patrón de Fachada – Más específicamente, el patrón de diseño de
varios caminos de trabajo y el casos de uso debe ser utilizado. Cada caso de uso debe tener su
sistema debe ser altamente correspondiente clase fachada para comunicarse con la capa de
cohesivo en su implementación interfaz.
para facilitar la reutilización.
La presentación externa de la 1. Todos los casos de uso deben utilizar una arquitectura para separar
información varía, así que la el formato de la información de la forma en la cual está almacenada
dependencia entre las formas de y en la forma en que se relaciona con los demás objetos.
mostrar la información y de
almacenarla debe ser poca.
Componentes de Servicio:
Enrutamiento de solicitudes desde 1. Cada fachada de los casos de uso se encarga de llamar a los
la interfaz del usuario hasta la capa métodos adecuados de una clase para procesar la solicitud
de negocios proveniente de la interfaz y devolver la información requerida.
Componentes de Acceso a Datos
Procedimientos almacenados 1. Se debe priorizar la ejecución de procedimientos almacenados.
Transporte de datos 1. Tanto los objetos con valores (atributos) como los objetos de acceso
a datos (objetos que realmente ejecutan sentencias de SQL) deben
ser utilizados siempre que sean necesarios.
La capa de datos y utilidades es la última capa, en la que residen todos los datos que deben ser almacenados
de manera persistente.
Componentes:
Lenguajes 1. Java 1.6
2. MySQL.
Conexión 1. Conector JDBC.
Ambiente de Desarrollo Integrado 1. Eclipse Classic 3.3.2 con conexión a servidor Tomcat.
Uso de Patrones:
Cada Caso de Uso representa 1. Patrón de Fachada – Más específicamente, el patrón de diseño de
varios caminos de trabajo y el Fachada de Base de Datos debe ser utilizado. Cada acceso a la Base de
sistema debe ser altamente Datos debe tener un método que funcione como enlace entre la capa de
cohesivo en su implementación Negocios y la Base de Datos.
para facilitar la reutilización.
7. Vista de Despliegue
A continuación se muestra un diagrama de despliegue que modela, a alto nivel, la distribución de las piezas
de software de la aplicación Cuaderno sobre los elementos de hardware que se usarán para ejecutarla, indicando las
asociaciones entre nodos con caminos de comunicación, que indican la tecnología requerida para que ésta se lleve a
cabo exitosamente.
En el diagrama se observa que un cliente visualiza el sitio @USB a través de un navegador en su máquina y
una conexión a Internet. Por consiguiente, la visualización de la aplicación Cuaderno se realiza por la misma vía. El
cliente se conecta con el WebServer, que contiene Cuaderno.jar, un compilado de todos los elementos necesarios
para el despliegue de la aplicación. El servidor se conecta a través de una LAN y usando JDBC al DBServer, que
contiene la base de datos del sistema, manejada con MySQL.
8. Vista de Procesos
Debido a que la aplicación Cuaderno es utilizada por el sistema Web @USB y se cuenta con un servidor
Apache Tomcat. La implementación no requiere de la creación de procesos ni hilo.
La comunicación entre los hilos y procesos para el manejo de concurrencias y sincronía es transparente
para el sistema y será realizada por el servidor Web.
9. Vista de Datos
A continuación se muestra el Diagrama Entidad-Relación para manejar los datos del sistema.
La aplicación no demanda una gran cantidad de espacio, sin embargo, se tiene que tomar en cuenta la
cantidad de usuarios que van a hacer uso de ella. Por defecto, cada usuario dispone de un cuaderno automáticamente
una vez registrado en el sistema. Podría requerirse un máximo de entradas en el Cuaderno de tal manera que se tenga
un límite de almacenamiento.
En cuanto al rendimiento del sistema, los tiempos de carga y descarga de documentos deben mantenerse lo
más bajo posible para incentivar el uso de la página. No debe ocurrir que el tiempo para cargar la página expire.
11. Calidad
La arquitectura del software se ha diseñado para ser independiente de la plataforma en la que el sistema se
utilice. Ya que esto ofrece al sistema la capacidad de ser portable, la aplicación Cuaderno se beneficia por igual de
esta portabilidad.
La aplicación estará desarrollada por capas, de manera tal que las capas más superficiales como la de
interfaz no afectarán a la capa lógica. Cada capa se comunicará con las capas que estén directamente por debajo de
ellas. No existirán saltos de acceso entre capas de manera tal que se mantenga una eficiente comunicación entre
ellas.
En el desarrollo de un sistema es importante crear una buena política de manejo de errores de tal manera
que se cubran la mayoría de los posibles casos de mal funcionamiento durante el uso de todas las funciones que
ofrece el sistema. Además, la información que puede ofrecer una buena política de manejo de excepciones es muy
valiosa a la hora de depurar el sistema y por lo tanto, el mantenimiento puede simplificarse a gran escala.
- Encapsulamiento: en el caso de que una excepción viaje a través de las capas del sistema y se cree alguna
otra a partir de la primera generada, se guarda toda la información del primer error a través del
encapsulamiento en el momento de la creación de la nueva excepción. De esta forma, no se pierde
información debido a la propagación de la excepción o de la sustitución a través de las capas del sistema.
- Lanzar temprano: las excepciones son lanzadas en el preciso instante en el que ocurre el error. Así se tiene
un mejor control a la hora de depurar y de buscar el origen de la falla.
- Atrapar tarde: las excepciones se atraparán cuando se tenga la mayor cantidad de información posible y
cuando se esté en la capa correspondiente del sistema que tenga las herramientas necesarias para manejar
correctamente el error.
- Obtener y desplegar la mayor cantidad de información : a la hora de generar un error, la mayor cantidad de
información debe ser desplegada de tal manera que se pueda ubicar fácilmente el origen y por lo tanto, se
depure rápidamente el sistema
La política de manejo de errores en el sistema @USB se definirá por capas. Para cada capa aplica
una política distinta que permitirá que las excepciones que permitan manejar la mayor cantidad de errores
del sistema en general.
En esta capa se utilizará una política de Propagación y de encapsulado de excepción. Esto tendrá
como consecuencia que la información del error ocurrido no se pierda y se transmita lo más posible a través
de su viaje por las capas del sistema.
Capa Lógica
En la capa de interfaz se aplicará la política de manejo de errores. En esta capa del sistema se
realizará el manejo de todas las excepciones provenientes de las capas inferiores y se desplegará al usuario
la información necesaria al error ocurrido.