softwaredesign! description!pegasus.javeriana.edu.co/~cis1230is01/documentos/... ·...

20
Software Design Description Caracterización de la comunidad 06/07/2012 Fabián García Ariel López

Upload: vandien

Post on 11-Oct-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

 Software  Design  Description  Caracterización  de  la  comunidad      06/07/2012  Fabián  García  Ariel  López    

   

 

 

 

 

PAGINA  DE  FIRMAS  

 

 

 

ALEX  LINARES  CLIENTE    

 

 

 

 

FABIÁN  GARCÍA    

 

 

 

 

ARIEL  LÓPEZ  LESMES    

 

 

 

 

 

 

   

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.  

6. Diseño  de  Interfaces  de  Usuario  

6.1. Árbol  de  navegabilidad    La  siguiente  figura  describe  el  flujo  de  navegación  de  uno  de  los  casos  de  uso  CRUDs  de  la  aplicación  JavaEE:  

Grafica  #  9:  Flujo  de  navegación  caso  de  uso  CRUD.