Documento de Arquitectura de Software
1. Presentacin
1.1.
Visin General del Documento
En las nueve secciones de este documento se detalla el mtodo aplicado en esta
arquitectura del software a desarrollar. Para ello se presenta de manera clara el
caso de uso que mas representa la arquitectura del sistema, adems de los estilos
arquitectnicos, factores de riesgos, empleando un lenguaje sencillo y directo, as
como grficos y vistas de acuerdo a la metodologa utilizada.
1.2.
Propsito
Este documento proporciona una descripcin de la arquitectura del sistema,
haciendo uso de diversas visiones arquitectnicas para representar diversos
aspectos del sistema. Se realiza con el fin de documentar las decisiones de
arquitectura significativas que se han tomado en el sistema.
1.3.
Alcance
Este documento presenta la arquitectura en la cual estar basado el Sistema para
la evaluacin y seleccin de proyectos de inversin para entidades financieras
definiendo de manera detallada la distribucin de los paquetes del sistema en las
diversas capas que ste presenta, as como una descripcin de las capas a
utilizar.
2. Descripcin de los factores de negocio
2.1 Descripcin del entorno del negocio
2.1.1 Introduccin
Uno de los desarrollos ms importantes dentro de la construccin del software es
el Desarrollo de la Arquitectura de Software, que permite representar una
estructura del sistema, sirviendo de comunicacin entre las personas involucradas
en el desarrollo y ayudando a realizar diversos anlisis que orienten el proceso de
toma de decisiones.
Este documento provee al usuario especializado una vista de la arquitectura
del Sistema para la evaluacin y seleccin de proyectos de inversin para
entidades financieras
La plantilla de este documento se basa en las especificaciones de RUP (Rational
Unified Process) para el documento de arquitectura de software.
2.1.2 Requisitos del negocio
Se emplear un solo servidor centralizado.
La arquitectura se muestra como una serie de vistas, usando la aplicacin
MS Visin y empleando UML.
La arquitectura se basar en el modelo 4+1, que contendr las vistas de
Lgica, Implementacin, Procesos e Implantacin, con la vista central de
caso de uso.
2.2 Necesidades de la clientela y como se pretende satisfacerla
El objetivo principal de la arquitectura del sistema en el entorno del negocio es
mostrar los aspectos principales que influirn en una etapa de desarrollo.
Se tomarn en cuenta las siguientes metas y restricciones para el diseo de la
arquitectura del sistema:
2.2.1. Metas
El Sistema permitir a los usuarios acceder al sistema desde cualquier
Terminal de la empresa de ensamblaje.
Para poder acceder al Sistema, se requiere de un cdigo de usuario vlido
as como de una contrasea. Adems, dependiendo del perfil del usuario se
deshabilitarn opciones de manejo del Sistema para proteger informacin
confidencial.
Los requerimientos de rendimiento estipulados en el Documento de Visin,
deben de ser considerados como parte de la arquitectura del sistema a
implementar
El uso del sistema para los trabajadores de la empresa se limita a dentro de
la organizacin. Afuera de ella no se podr acceder al sistema.
2.2.2. Restricciones Tcnicas del Sistema
Necesariamente el sistema usar como motor de Base de Datos a Oracle
siendo necesario la elaboracin de una copia de rescate de las tablas para
no afectar la informacin almacenada antes de poner en total
funcionamiento al sistema.
Las computadoras que brindarn el servicio cliente del sistema no debern
de presentar potencias menores a las brindadas por una Pentium 4, con al
menos 512 MB de RAM y 200 MB de espacio en el disco, con un Sistema
Operativo Linux.
Todos los nodos que hagan uso del sistema, al estar este desarrollado en
Java, debern de tener instalado el JRE 1.6 o superior
La arquitectura seleccionada apoya los requisitos de latencia y capacidad
en disco en la puesta en prctica de una arquitectura cliente servidor. La
porcin del cliente solo se pone en ejecucin en las PC locales de los
distintos ambientes dentro de la empresa.
Los componentes se han diseado para asegurarse de obtener requisitos
mnimos de disco y memoria en el lado de las PC del cliente.
2.2.3. Tamao y Performance
La arquitectura de software elegida apoya los requisitos dominantes de capacidad
en disco y latencia, segn lo estipulado en el Documento de Visin del Proyecto
del Sistema.
Tiempo de respuesta en el acceso a la Base de Datos
El sistema proveer accesos a la base de datos con un tiempo de
respuesta no mayor a los 5 segundos.
Tiempo de respuesta de transacciones
El programa no demorar ms de 5 minutos en generar una evaluacin
ptima para los proyectos haciendo uso del algoritmo elegido y guardndolo
en base de datos.
Espacio en disco para el cliente
El espacio en disco necesario para la parte del cliente deber tener como
mnimo 500 MB de espacio libre para su correcto funcionamiento, esto
incluye tanto el tamao del software como el JRE 1.6.
Espacio en disco para el servidor de Base de datos
El espacio en disco necesario para la parte del Servidor de Base de datos
deber tener como mnimo 1 GB libres en disco para su correcto
funcionamiento.
2.3 Atributos de Calidad
Para un mejor aprovechamiento de la arquitectura de software se dan los
siguientes requerimientos de calidad:
2.3.1 Usabilidad
El sistema permitir un manejo intuitivo por parte de los usuarios.
2.3.2 Eficiencia
El programa no demorar ms de 5 minutos en generar una evaluacin ptima
para los proyectos haciendo uso del algoritmo elegido.
2.3.3 Seguridad
El sistema permitir el acceso a funcionalidades dependiendo del rol del usuario
que ingresa al sistema, validando su ingreso a travs de una clave.
2.3.4 Confiabilidad
El sistema tendr en cuenta que la informacin ingresada en l sea vlida, para lo
cual mostrar mensajes que expliquen al usuario acerca de los errores que ste
pudiera cometer y de aquellos que pueda cometer el mismo sistema.
2.3.5 Mantenimiento
El sistema ser flexible, facilitando su mantenimiento futuro.
2.3.6 Estndares
Se usar un estndar para todas las ventanas e interfaces con el usuario que
tenga el Sistema, as como los nombres, cdigos, etc.
3. Presentacin de la Arquitectura
3.1
3.1.1
Descripcin de las Diferentes Vistas o Estructuras de la Arquitectura
Vista de Casos de Uso
El diagrama de casos de uso representa la forma de cmo un cliente opera con el
sistema en desarrollo, adems de la forma tipo y orden de los elementos que
interactan y as obtener el conjunto de escenarios que contendr cada iteracin.
Cada caso de uso tiene una descripcin que especifica la funcionalidad que se
incorporar al sistema propuesto.
En este apartado se mostraran los casos de uso ms significativos del Sistema.
Realizaciones de Casos de Uso
Paquete Seguridad
Casos del uso del paquete Seguridad
Realizar el mantenimiento de usuarios
El propsito de este caso de uso es permitir el ingreso de un nuevo usuario al
sistema, la modificacin de la informacin ingresada y tambin la eliminacin del
usuario
Realizar el mantenimiento de perfiles de usuario
El propsito de este caso de uso es permitir el ingreso de un determinado perfil
para los usuarios del sistema. Con estos perfiles se dan las respectivas
restricciones a los usuarios para que estos solo tengan algunas funcionalidades
habilitadas.
Realizar el mantenimiento de roles de usuario
El propsito de este caso de uso es permitir el ingreso de un determinado rol para
los usuarios del sistema. Con estos roles se dan las respectivas restricciones a los
usuarios para que estos solo tengan algunas funcionalidades habilitadas segn los
perfiles asociados a estos roles.
Validar Usuario y Contrasea
El propsito de este caso de uso es permitir el ingreso al sistema a un usuario
registrado, evitando que cualquier persona ajena al sistema pueda acceder a
informacin.
Mantener Contrasea
El propsito de este caso de uso es permitir a los usuarios registrado establecer
su propia contrasea para el ingreso al programa.
Registrar Incidencias de Ingreso
El propsito de este caso de uso es mantener un registro de los intentos de
ingreso al sistema.
Registrar traza del usuario
El propsito de este caso de uso es permitir registrar las tablas que fueron
accedidas, las operaciones realizadas de los usuarios a la Base de Datos, as
como guardar fecha y hora de la accin, y el ip de la mquina.
Importar datos para proyecto
El propsito de este caso de uso es mostrar cmo se pueden importar datos
desde XML para poder procesarlos en el software.
Realizar el mantenimiento de Proyectos
El propsito de este caso de uso es el de tener registrado todos los proyectos en
el sistema. Este caso de uso incluye el registro, la actualizacin y eliminacin de
un proyecto de inversin.
Modificar valores de los parmetros
Este caso de uso permitir modificar los valores de los parmetros usados para la
evaluacin de un proyecto, dentro de los rangos vlidos definidos.
Paquete de Reportes
Generar matriz de flujos proyectada
El propsito de este caso de uso es poder visualizar mejor los flujos que cada
proyecto maneja.
Generar tablas de ingresos y egresos
El propsito de este caso de uso es poder visualizar de una manera adecuada
todos los ingresos y egresos de cierto proyecto.
Generar Tabla de anlisis de sensibilidad
El propsito de este caso de uso es poder visualizar de una manera adecuada el
anlisis de sensibilidad para que as se muestre todo efecto que ocurre sobre el
proyecto.
Generar Tabla de simulacin
El propsito de este caso de uso es poder generar una tabla de simulacin de
monte Carlo para determinar y analizar el riesgo del proyecto de inversin.
Generar Tabla de VAN
El propsito de este caso de uso es poder determinar la VAN con los datos del
anlisis del proyecto de inversin.
Generar reporte de los proyectos existentes
El propsito de este caso de uso es poder visualizar de una manera adecuada
todos los proyectos que han sido ingresados para la simulacin.
Paquete de Ejecucin
Evaluar proyectos
El propsito de este caso de uso es evaluar segn un criterio seleccionado y
parmetros de evaluacin un Proyecto.
Cargar o Guardar resultados de comparacin entre proyectos
El propsito de este caso de uso es poder guardar las comparaciones entre
proyectos del sistema.
Listar proyectos existentes en el sistema
El propsito de este caso de uso es poder listar todos los proyectos existentes
para as poder ver que proyectos hay por evaluar.
Anlisis de sensibilidad de proyectos
El propsito de este caso de uso es permitir el cambio de valores de variables del
proyecto y mostrar los resultados obtenidos haciendo una comparacin entre
evaluaciones de un mismo proyecto modificado.
Generar el anlisis de comparacin con otros proyectos
El propsito de este caso de uso es poder visualizar de una manera adecuada la
diferencia entre diferentes proyectos de inversin y as poder elegir el mas
conveniente.
Establecer que proyectos son viables de acuerdo al presupuesto dado
El propsito de este caso de uso es poder visualizar todos los proyectos para
poder hacer una eleccin adecuada del grupo de proyectos.
Modificar lmites sobre variables o parmetros
El propsito de este caso de uso es establecer lmites de aceptacin de valores
esperados de las variables o parmetros que se obtengan en el resultado de la
evaluacin y valores aceptados en las variables del sistema.
Realizacin de Casos de uso Significativos
Paquete de Seguridad
Se debe destacar por precedencia e importancia el caso de uso Mantener
Usuarios y Validar Usuario y Contrasea. Es el caso de uso en el cual est basado
todo el mdulo y es el que permite que cualquier tipo de usuario pueda ingresar al
sistema
Paquete de Ingreso de Datos
En este paquete se debe resaltar la importancia de los casos de uso de ingreso de
informacin, ya que son el principal mecanismo de entrada.
Paquete de Ejecucin
En este paquete se debe resaltar el principal caso de uso Evaluar Proyecto, donde
se hace uso del algoritmo elegido.
Paquete de Reportes
En este paquete se debe resaltar la importancia de los casos de uso de reportes
de diferente informacin manejada y generada por el Sistema.
3.1.2 Vista Lgica
Descripcin
La vista lgica del sistema est compuesta de cuatro paquetes principales: Interfaz
de usuario (GUI), servicios del negocio (Business Logic), objetos del negocio
(Business Entity) y los objetos de persistencia (Data Access Objects).
El primer paquete, Interfaz de usuario, contiene las clases visuales de la
aplicacin, las cuales crean las ventanas que utiliza el usuario para comunicarse
con el sistema para una adecuada y fcil utilizacin de los paquetes que se
encuentran en las siguientes capas.
El paquete Lgica del Negocio contiene las clases que permiten llevar a cabo los
servicios del negocio, como son: Controlar el mantenimiento de usuarios, ejecutar
el algoritmo de evaluacin y seleccin, etc.
El paquete Entidades del Negocio contiene las clases que utilizar el sistema,
entre las principales clases se tiene: Usuario, Ejecucin, Rol, etc.
El paquete de Objetos de Acceso de Datos contiene las clases que el sistema
utiliza para manejar la persistencia de los objetos con la Base de Datos.
Diseo en Capas
En la siguiente figura podemos observar la distribucin de los paquetes en cada
una de las capas del sistema.
Diagrama de Distribucin de Capas del Sistema
Capa Interfaz de Usuario
Esta capa contiene el paquete Interfaz de Usuario, el cual almacena todas las
clases con las cuales el usuario puede interactuar como lo son las ventanas.
Capa Lgica del Negocio
Esta capa contiene los paquetes de Servicios de Negocio y Entidades de Negocio.
Contiene la lgica para el manejo de las operaciones del negocio.
Capa Persistencia
Esta capa contiene el paquete de Objetos de Acceso de Datos, que brinda una
interfaz transparente para la interaccin con el Framework el cual enviar al Driver
el conjunto de sentencias para interactuar con la Base de Datos.
3.1.3 Vista de Proceso
Diagrama de clases(CAMBIAR POR DIAGRAMA DE CLASES)
Es el diagrama principal para el anlisis y diseo. En este diagrama se presentan
las clases del sistema con sus relaciones estructurales y de herencia. Para
establecer las clases, objetos atributos y operaciones entre clases se tom como
base a los diagramas de casos de uso.
CONTRASEA
IdContrasea
AUDITORIA
Clave
FecCreacion
Duracion
ID
IdUsuario (FK)
IdRegistro
Evento
FecEvento
VENTANA
IdVentana
Acceso
Nombre
IdPerfil (FK)
Modificar
Eliminar
Agregar
IdParametro
IdPerfil
Nombre
Descripcion
Nombre
Valor
ROLXPERFIL
IdRol (FK)
IdPerfil (FK)
USUARIO
SENSIBILIDAD
IdUsuario
IdSensibilidad
DNI
Nombres
Apellidos
FecNacimiento
Direccion
Telefono
Email
IdRol (FK)
FecAnalisis
NumCasos
CONTRASEAXUSUARIO
IdContrasea (FK)
IdUsuario (FK)
FecCreacion
FecVencimiento
PROYECTOXCLIENTE
IdCliente (FK)
IdProyecto (FK)
EJECUCION
PARAMETROS
PERFIL
IdEjecucion
IdFecha
TotalBeneficio
TotalCosto
Saldo
Tiempo
CLIENTE
IdCliente
Nombre
RUC
Direccion
Telefono
Email
Web
ROL
IdRol
CASO
Nombre
Descripcion
PROYECTO
IdProyecto
Nombre
FecInicio
FecFin
Ubicacion
EJECUCIONXPROYECTO
IdProyecto (FK)
IdEjecucion (FK)
TIR
VAN
Beneficio
Estado
VARIABLE
IdVariable
PROYECTOXVARIABLE
IdVariable (FK)
IdProyecto (FK)
TIPODEPARTAMENTO
Nombre
ValorMin
ValorMax
IdCaso
NumTorres
PisosXTorre
DepXPiso
AreaTerreno
Duracion
MontoInversion
Impuesto
CosFijos
CosVariables
NumCaso
CasoOriginal
IdSensibilidad (FK)
IdDepartamento (FK)
IdProyecto (FK)
Valor
IdDepartamento
NumHabitaciones
Vista del Diagrama de Clases Significativo
3.1.4 Vista de despliegue
El presente Diagrama de Despliegue muestra de manera grfica los nodos que
conforman el sistema, adems los describe indicando la localizacin de las tareas
en los nodos fsicos. Cada nodo representa un recurso de ejecucin como una
computadora o servidor y se encuentra conectado con otros mediante un enlace
de comunicacin. En este caso, la red ser de tipo LAN.
Diagrama de Despliegue del Sistema. Servidor (Base de Datos) y Cliente
(Computadora usuario).
Servidor de la Empresa.
El servidor principal de la empresa donde se encuentra la Base de Datos. Los
diferentes usuarios tendrn acceso al servidor va LAN.
Computadora Usuario
Son las computadoras que son utilizadas por cada uno de los usuarios de la
empresa para acceder al sistema. Estn conectadas directamente al servidor
principal va LAN.
3.1.5 Vista de implementacin
Descripcin
La vista de implementacin seguir el patrn de diseo MVC (Model View
Controller). Este patrn plantea la separacin del problema en tres capas: la capa
model, la capa controller y la capa view.
Niveles o Capas
Capa GUI
El componente GUI maneja las clases que permiten la interaccin del usuario con
el sistema.
Capa Lgica del Negocio
Este componente permite manejar la lgica del negocio de todas las reas
involucradas.
Seguridad
Ejecucin
Ingreso de Datos
Reportes
Capa Base de Datos
Este componente contiene toda la informacin que maneja el Sistema.
Diagrama de Implementacin del Sistema.
4. Identificacin de Estilos Arquitectnicos
En este documento de arquitectura se identifican claramente los estilos
arquitectnicos usados en la arquitectura. Dichos estilos representan los medios
mediante los cuales la arquitectura puede alcanzar sus atributos de calidad y
definen la forma en que un sistema puede crecer, modificarse, integrarse con otros
sistemas y responder a estmulos externos.
Representacin
La Arquitectura a utilizar ser Cliente-Servidor.
El cliente es la aplicacin que ser implementada en el lugar donde se
encuentra la empresa.
Se desarrollar una sola aplicacin integrada, en la que solo se permitir el
acceso a los usuarios registrados en el sistema y a las reas a las cuales
tengan acceso autorizado.
Uso de Componentes: Los componentes estn diseados para asegurarse
de obtener requisitos mnimos de disco y memoria en el lado de las PC del
cliente.
5. Generacin de Arbol de Utilidad
Minimizar latencia de almacenamiento en BD
del cliente a 150 ms
Latencia de datos
Rendimiento
acceso a la BD en tiempo real en menos de 5s
Rendimiento
Distribuidor de Datos
Modificabilidad
Maquina Virtual
aadir interfaz web ( < 1 personas-mes)
Utilidad
Fallos SW/HW
Disponiblidad
El fallo en el servidor 1 implica redireccionar las
peticiones al servidor 2
Reinicio despus de fallo del gestor y del disco
en menos de 3 segundos
Un fallo en la red y en el gestor de arranque de
la B.D local debe ser detectado y corregido en
menos de 1.5 seg.
Seguridad e integridad de datos en toda la informacin del sistema al 99.999 % del tiempo
Confidencialidad
Servicio de autentificacin disponible al 99.999
e Integridad de Datos % del tiempo
Seguridad
6. Anlisis de los estilos Arquitectnicos
En este paso se analizan claramente los estilos arquitectnicos usados en esta
arquitectura, asociando los escenarios mas prioritarios delo Arbol de Utilidad con
los estilos arquitectnicos empleados.
6.1 Identificacin de cada uno de los componentes, conectores
configuraciones y restricciones que estn directamente relacionados
con los atributos de calidad mas importantes con respecto al rbol de
utilidad
7.
Estos componentes estn implementados para asegurarse de obtener
espacio mnimos en el disco y la memoria al lado de los servidores del
cliente
Conectores: Uso de una Interfaz de Usuario para el almacenamiento de
datos y de las clases compuesto por un paquete de usuario
Distribuidor de datos: mecanismo intermediario que direcciona datos entre
los productores y consumidores.
Almacn de datos: Tiene como funcin almacenar datos para su posterior
uso.
Mquina virtual: Mecanismo intermediario entre usuarios y suministradores
de una cierta funcionalidad.
Intrprete: Incluye la codificacin de funciones, parmetros y descripciones
abstractas que permiten su modificacin.
Cliente/Servidor: Proporciona una coleccin de servicios que pueden ser
usados por otros componentes segn las reglas definidas en un protocolo
fijo.
Generacin de Escenarios y asignacin de prioridades
7.1 Escenarios ms prioritarios del rbol de utilidad
El Rendimiento y tiempo de acceso a la Base de Datos del servidor en
tiempo real
La disponibilidad del SW debe ser controlada y bien manipulada para evitar
fallos en el sistema y en el gestor de la Base de datos
Deteccin de errores en la Base de Datos del servidor permitiendo la
correccin correspondiente al momento
La Seguridad e Integracin de datos en toda la informacin
7.2 Escenarios de caso de uso
Aqu se especifica la interaccin de los usuarios con el sistema en
ejecucin
7.3 Escenarios de crecimiento
Representa al uso de los diferentes componentes en el sistema
Uso eficiente de los componentes y seguridad en el ingreso de datos
Aspectos importantes como el almacenamiento y gestin de informacin
Aspectos de seguridad e integridad de datos
Ingreso de Datos
8. Anlisis de los estilos arquitectnicos
8.1 En los escenarios ms prioritarios del rbol de utilidad:
Rendimiento: Acceso errneo en el ingreso de datos generando retrasos en
el sistema y prdida de informacin.
El tiempo de ejecucin excesivo en el acceso a la Base de Datos
Modificabilidad: Que la Arquitectura del SW no se acomode con facilidad a
las distintas situaciones o propuestas del negocio
Uso indebido del sistema, ingreso de datos incorrectos puede ocasionar
problemas en los servidores, generando as retraso en la entrega de datos.
El servidor principal de la empresa donde se encuentra la Base de Datos en
los diferentes usuarios que solo tendrn acceso al servidor va LAN.
8.2 En los escenarios de crecimiento:
Sistemas de datos centralizados: Los aspectos fundamentales son el
almacenamiento, representacin, procesamiento y gestin de grandes
cantidades de datos.
9. Reporte
9.1
Conjunto de escenarios y su orden de prioridad
Escenarios de caso de uso
Aqu se especifica la interaccin de los usuarios con el sistema en
ejecucin
Escenarios de crecimiento
El uso de los diferentes componentes en el sistema
Eficiencia en los componentes y seguridad en el ingreso de datos
Aspectos importantes como el almacenamiento y gestin de informacin
Aspectos de seguridad e integridad de datos
9.2
Arbol de utilidad
Minimizar latencia de almacenamiento en BD
del cliente a 150 ms
Latencia de datos
Rendimiento
acceso a la BD en tiempo real en menos de 5s
Rendimiento
Distribuidor de Datos
Modificabilidad
Maquina Virtual
aadir interfaz web ( < 1 personas-mes)
Utilidad
Fallos SW/HW
Disponiblidad
El fallo en el servidor 1 implica redireccionar las
peticiones al servidor 2
Reinicio despus de fallo del gestor y del disco
en menos de 3 segundos
Un fallo en la red y en el gestor de arranque de
la B.D local debe ser detectado y corregido en
menos de 1.5 seg.
Seguridad e integridad de datos en toda la informacin del sistema al 99.999 % del tiempo
Confidencialidad
Servicio de autentificacin disponible al 99.999
e Integridad de Datos % del tiempo
Seguridad
9.3 Determinar Puntos sensibles, puntos de compromiso
Puntos sensibles: Fallos en el SW/HD
Puntos de compromiso: Seguridad, Usabilidad, Portabilidad, Eficiencia
9.4 Significado de Riesgos No Riesgos Arquitectnicos
Mal manejo del sistema por parte de los usuarios
Problemas en los servidores que dificultan el acceso a los programas y a
los gestores de base de datos
Errores por parte de los usuarios en el ingreso de informacin no valida
generan retraso en el sistema
Tiempo de respuesta excesivo en el acceso a la Base de Datos