Post on 11-Oct-2018
transcript
HISTORIAL DEL CAMBIOS
Versión Fecha Sección del documento
Descripción del cambio
Responsable
1.0.0 04-07-2012 Sección 1 Se crea el documento con
la primera sección
Fabián García
1.0.1 07-07-2012 Sección 2 y 3 Fabián García 1.0.2 09-07-2012 Sección 4,5 y 6 Fabián García
Tabla 1: Historial de cambios
PREFACIO
“El proceso de diseño de software es la actividad dentro del ciclo de vida, en la que se analizan los requerimientos del software, con el fin de producir una descripción de la estructura interna del mismo, que servirá como base para su posterior construcción. Si se quiere ser más preciso, un buen diseño de software; debe describir la arquitectura con la cual funcionará —es decir, cómo el software se descompone y se organiza en los componentes que sean necesario— además de las interfaces usadas entre estos. También debe describir los componentes con un nivel de detalle que permita su construcción.
Este plan está desarrollado según la plantilla SDD de IRONWORK [1] [2] [3], con ligeras adaptaciones. Este documento estará dirigido al Ing. Alex Linares representante de PROSOFI [24] donde se desarrolla el proyecto de caracterización de la comunidad.
Contenido 1. Introducción .............................................................................................................................. 5
1.1 Descripción del Sistema ...................................................................................................... 5
1.2 Referencias y Documentos de Apoyo ................................................................................. 5
1.3 Definiciones, Acrónimos y Abreviaciones ........................................................................... 7
2. Consideraciones de Diseño ....................................................................................................... 8
2.1 Restricciones ....................................................................................................................... 8
2.2 Riesgos ................................................................................................................................ 8
3. Arquitectura .............................................................................................................................. 9
3.1 Apreciación Global .............................................................................................................. 9
3.2 Diagrama de Componentes ................................................................................................. 9
3.2.1 Cliente ................................................................................................................. 11
3.2.2 Servidor ............................................................................................................... 11
3.3 Estrategias de Diseño ........................................................................................................ 12
4. Diseño de Alto Nivel ............................................................................................................... 14
4.1 Diagrama de despliegue .................................................................................................... 14
4.1.1 Nodo 1 “PC Cliente” ............................................................................................ 14
4.1.2 Nodo 1 “Servidor JavaEE” ................................................................................... 15
4.2 Comportamiento e Interacción ......................................................................................... 15
4.2.1.1 Diagrama de Secuencia ........................................................................................... 15
5. Diseño de Bajo Nivel ............................................................................................................... 18
5.1 Modelo entidad – Relación ............................................................................................... 18
6. Diseño de Interfaces de Usuario ............................................................................................. 19
6.1. Árbol de navegabilidad ............................................................................................... 19
1. Introducción
1.1 Descripción del Sistema En este documento se pretende describir el sistema que será diseñado para la
elaboración del proyecto “Caracterización de la comunidad” del grupo Prosofi de la
Pontificia Universidad Javeriana, para apoyo a las comunidades de la localidad de
Usme.
Se construirá el sistema bajo una arquitectura de 3 capas en la cual se separara la
presentación, lógica del negocio y acceso a datos, en diferentes componentes que
serán distribuidos en 2 tiers; en uno estará el cliente con un navegador web que se
encargara de transformar el código de presentación en html y en el otro tier se
encontrara la implementación de la lógica del negocio y la capa de acceso a datos.
La aplicación será generada en el lenguaje Java EE 5 a través del IDE
Sare.m2t.generator [17].
El presente documento servirá como base para el desarrollo de la aplicación, al equipo
de trabajo, quienes son los encargados de implementar las funcionalidades requeridas
por el cliente, las cuales serán modeladas y estructuradas en este documento.
1.2 Referencias y Documentos de Apoyo [1] IronWorks, Plantilla SPMP, Pontificia Universidad Javeriana ed., 2008.
[2] IronWorks, SDD Linea Base.: Pontificia Universidad Javeriana, 2008.
[3] IronWorks, SRS Linea Base., 2008.
[4] William Wake, Extreme Programming Explored.: Addison-‐Wesley, 2002.
[5] Roy K. Clemmons, Project estimation with use case points., 2006.
[6] IEEE, Software Engineering Body of Knowledge SWEBOK., 2004.
[7] ISO 9001:2000, "Quality Management Systems — Requirements, ISO," 2000.
[8] IBM. (2011) Rational Unified Process (RUP). [Online]. "http://www-‐01.ibm.com/software/awdtools/rup/" http://www-‐01.ibm.com/software/awdtools/rup/
[9] RUP. (2011) Configuration Management Plan. [Online]. "http://www.ts.mah.se/RUP/RationalUnifiedProcess/process/artifact/ar_cmpln.htm" http://www.ts.mah.se/RUP/RationalUnifiedProcess/process/artifact/ar_cmpln.htm
[10] Dropbox. (2011) Dropbox. [Online]. "https://www.dropbox.com/" https://www.dropbox.com/
[12] Google. (2011) Google Project. [Online]. "https://plus.google.com/up/start/?et=sw&type=st" https://plus.google.com/up/start/?et=sw&type=st
[13] tigris. (2012) subclipse. [Online]. "http://subclipse.tigris.org/" http://subclipse.tigris.org/
[14] Ian Sommerville, Ingenieria de Software, Pearson, Ed., 2005.
[15] IEEE, Project Management Body of Knowledge (PMBOK), Project Management Institute, Inc, 3rd ed., 2004.
[16] E. Tello. (Diciembre 2008). Monitorización y Control del Proyecto [En Línea]. Disponible:http://www.slideshare.net/sagu559/monitorizacion-‐y-‐control-‐del-‐proyecto
[17] J. A. Pavlich and A. López, “SARE: Security Assurance for Roundtrip Engineering.” [Online]. Available: http://code.google.com/p/sare/. [Accessed: 02-‐May-‐2012].
[18] Sun Microsystems, “The Java EE 5 Tutorial”, Available: http://java.sun.com/javaee/5/docs/tutorial/doc. [Accessed: 18-‐May-‐2012].
[19] JBoss Seam Group, “Reference manuals of JBoss Seam”, Available: http://seamframework.org [Accessed: 18-‐May-‐2012].
[20] IEEE SOFTWARE, What’s Good Software, Anyway? Hakan Erdogmus., 2007.
[21] Sparx Systems, Enterprise Architect [Online]. http://www.sparxsystems.com.au/products/ea/index.html [Accessed: 18-‐Jun-‐2012].
[22] PostgreSQL [Online] http://www.postgresql.org/ [Accessed: 18-‐Jun-‐2012].
[23] B Bruegge, Ingeniería de Software Orientado a Objetos.: Prentice Hall, 2002
[24] Prosofi – Programa Social Facultad de Ingenieria. http://puj-‐portal.javeriana.edu.co/portal/page/portal/Facultad%20de%20Ingenieria/plt_facultad/Prosofi
1.3 Definiciones, Acrónimos y Abreviaciones
TÉRMINO DEFINICIÓN SDD Software Design Description. Sare Security Assurance for Roundtrip Engineering JSF Java Server Faces EJB Enterprise Java Beans
Prosofi Programa Social de la facultad de ingeniería. M2t Model to Text
Tabla # 2: Definiciones y acrónimos
2. Consideraciones de Diseño
2.1 Restricciones
Grafica # 1: Restricciones
2.2 Riesgos Para realizar el diseño y la arquitectura se toman los mismos riesgos que se describieron en el
SPMP (Ver SPMP 5.4 Plan de administración de riesgos).
Caracterisycas de usuario
• Haber leido previamente el manual de usuario de la aplicación.
Hardware
• El equipo en el que se ejecute la aplicacion debera tener por lo menos 2 Gb de memoria principal (RAM) y un procesador de uno o mas nucleos a una velocidad minima de 2.0 Ghz.
So{ware • El motor de base de datos debera ser SQLPostgres en su version 9. • El IDE de desarrollo debera ser Eclipse Indigo; y tendra que estar configurado con Sare M2t.generator [17], servidor de aplicaciones JBoss 5.1 GA y ademas tendra que tener incorporado el generador de codigo Seam 2.0
3. Arquitectura
3.1 Apreciación Global Para la realización de la aplicación hemos decidido usar la plataforma de programación Java EE 5. Java EE tiene definida una arquitectura multi nivel para sus aplicaciones, esto con el objetivo de separar diferentes aspectos del desarrollo en diferentes capas.
Para la realización de la aplicación basada en CRUDs para cada una de las entidades obtenidas a partir del modelo de datos, hemos decidido definir una arquitectura de 3 capas como se muestra en la siguiente figura:
Grafica #2: Arquitectura de la aplicación basada en CRUDS
Además de esto decidimos distribuir estas 3 capas en 2 tiers como se explica a continuación.
• Tier Cliente: La máquina del usuario debe tener un navegador web y éste se responsabilizará de presentar la interfaz de usuario al usuario final y de comunicarlo con el nivel de lógica de negocio.
• Tier Servidor: En esta maquina estará la implementación de la lógica del negocio y se encontrara la capa de acceso a datos con su correspondiente base de datos donde estará almacenada toda la información de las encuestas.
3.2 Diagrama de Componentes
Este diagrama representa la composición que tendrá la aplicación basada en CRUDs, la
arquitectura a usar y las relaciones entre componentes.
En la siguiente grafica se muestra el diagrama de componentes:
Grafica # 3: Diagrama de Componentes
Gráfica # 4: Subsistemas del diagrama de componentes
cmp Componentes
Serv er
Cliente
Interfaz Grafica Cliente (HTML)
Base de Datos Relacional
Logica de Negocio (EJB)
Logica de Presentación
Cliente Este subsistema es un paquete que conyene todos los componentes usados por el Cliente que ejecutara la aplicacion web.
Servidor Este subsistema es un paquete que conyene todos los componentes usados por el Servidor.
La tabla 2 muestra la plantilla que se utilizará para documentar cada uno de los componentes.
COMPONENTE FUNCIÓN RELACIONES
Nombre del componente a
describir
Función que realiza dicho
componente en el
subsistema
Relaciones que tiene con
otros componentes
Tabla # 2: Plantilla de documentación de componentes
3.2.1 Cliente
COMPONENTE FUNCIÓN RELACIONES
Interfaz Grafica Cliente
Este componente permite al
cliente la visualización de la
aplicación. Se encarga de
comunicar al cliente con la
lógica de presentación
ubicada en el servidor.
Une el Cliente y Servidor por
medio del componente
Interface de Entrada.
Tabla # 3: Documentación componentes Subsistema Cliente
3.2.2 Servidor COMPONENTE FUNCIÓN RELACIONES
Lógica de Presentación
Este componente separa
toda la lógica de
presentación; en esta se
encuentran las páginas JSF,
Faces Servlets, etc; para
cada uno de los casos de uso
CRUD.
Se comunica con el
componente de lógica de
negocio. Generalmente cada
uno de los botones de las
páginas invoca un método de
un EJB de sesión.
Lógica de Negocio (EJB)
Este componente se encarga
de separar la
implementación de la lógica
de negocio, en este se
encuentran todos los EJBs
de sesión y las entidades
Se comunica con la base de
datos por de una instancia
del entity manager que esta
asociada con un contexto de
persistencia. Un contexto de
persistencia es un conjunto
persistentes. (Session beans
& entity beans).
de instancias de entidades
persistentes.
Base de Datos Relacional
Este componente
representa la base de datos
relacional en la cual se
encuentran todos los datos
de las encuestas.
Tabla # 4: Documentación componentes Subsistema Servidor
3.3 Estrategias de Diseño Las arquitecturas de aplicaciones empresariales realizadas en java EE que utilizan el framework de generación Seam, tienen un principal elemento el cual es el meta patrón MVC, este se explica en la siguiente figura:
Gráfica # 5: Meta patrón MVC
• Modelo: Maneja las reglas del negocio y estructura de los datos. • Vista: Maneja presentación de los datos del modelo al usuario.
• Controlador: Transforma pedidos del usuario en operaciones sobre los objetos del modelo y selecciona vista para mostrar resultados al usuario.
4. Diseño de Alto Nivel
4.1 Diagrama de despliegue El presente diagrama es la representación física del hardware donde se muestran los nodos,
con su especificación y dentro de ellos elementos de software, con asociaciones entre los
nodos representando como se comunican entre sí.
A continuación, en la gráfica __ se muestra el diagrama de despliegue para la aplicación de
CRUDs, que se realizara en la plataforma Java EE5.
Grafica # 5: Diagrama de Despliegue
Se identificaron dos nodos, los cuales representan al cliente y al servidor, cada nodo con sus
correspondientes componentes. De esta manera se entiende que estas maquinas deben tener
diferentes características y funcionan de manera distinta.
4.1.1 Nodo 1 “PC Cliente”
Este nodo representa el computador del cliente, en el cual se encuentran los siguientes componentes:
Grafica # 6: Componentes del nodo PC Cliente.
• Es una aplicacion que opera a traves de internet, interpretando la informacion enviada por la logica de presentacion del servidor, y combiryendola en html, permiyendo al usuario interactuar con el contenido.
Web Browser
4.1.2 Nodo 1 “Servidor JavaEE”
Este nodo representa el nodo del servidor de la aplicación JavaEE en el cual se encuentran los siguientes componentes:
Grafica # 7: Componentes del nodo Servidor JavaEE.
4.2 Comportamiento e Interacción
4.2.1.1 Diagrama de Secuencia
Ya que todos los casos de uso son de tipo CRUD estos tienen la misma estructura, por tanto solo se mostrara un diagrama de secuencia en este documento. La siguiente grafica muestra el diagrama de secuencia de un caso de uso CRUD:
• Este contenedor aloja el pool de componentes EJB de toda la aplicacion,
EJB Container
• Este componente representa la base de datos relacional en la cual se encuentra alamacenada
toda la informacion de las encuenstas.
Administrador de Datos
Grafica # 8: Diagrama de secuencia caso de uso CRUD.
Se usara la siguiente tabla para realizar la documentación de este diagrama.
ESPECIFICACIÓN
Nombre Nombre de la Diagrama
Descripción Descripción detallada del
diagrama.
Casos de uso Asociados Casos de uso asociados al
diagrama
Entradas Acciones o peticiones que
realiza el actor
Objetivo Meta del diagrama
Tabla #5: Especificación Diagramas de Secuencia
4.2.1.1.1 Diagrama de secuencia caso de uso CRUD.
Nombre Nombre de la Diagrama
Descripción
El diagrama de la gráfica 8 muestra la secuencia que se realiza en cada una de las operaciones de listar, crear,
eliminar y editar de un caso de uso CRUD.
Casos de uso Asociados Todos los casos de uso.
Entradas Ingreso a la aplicación desde un navegador web, la opción login
sd Use Case Model
Usuario pagina JSF Caracterizacion PROSOFI
Session Bean CRUD
Entity Bean Base de datos SQLPostgres
Ingresar()
invoca()
Trabaja sobre()
extraer()
muestra()
Visualizar Resultados()
queda opcional pero para esto se debe insertar una tupla directamente en la base de
datos.
Objetivo
Muestra la interacción de un usuario con la aplicación y la
comunicación que se hace entre las capas.
Tabla #6: Documentación Diagrama de Secuencia caso de uso CRUD.
5. Diseño de Bajo Nivel
5.1 Modelo entidad – Relación Para más información sobre este diagrama, (ver el enlace de google code: https://caracterizacion-‐c-‐p.googlecode.com/svn/trunk/prosofi.caracterizacion.usmeCaracterizacion/Modelo/caracterizacionComunidad.uml ), en base a este diagrama se generó el código de la aplicación.
Para visualizar este diagrama se debe hacer uso de la herramienta eclipse en cualquiera de sus versiones con el plugin UMLtools, además se debe hacer check out del proyecto desde el repositorio https://caracterizacion-‐c-‐p.googlecode.com/svn.