desarrollo de una extensiÓn autoinstalable de un

157
DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN ADMINISTRADOR DE SUBASTAS EN INTERNET PARA EL SISTEMA DE ADMINISTRACIÓN DE CONTENIDOS JOOMLA! Iván Camilo Eduardo Torres Angarita Sebastián Zapata Morales UNIVERSIDAD TECNOLÓGICA DE PEREIRA FACULTAD DE INGENIERÍAS PROGRAMA DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN PEREIRA-COLOMBIA 2011

Upload: others

Post on 13-Jun-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN ADMINISTRADOR DE SUBASTAS EN INTERNET PARA EL SISTEMA DE

ADMINISTRACIÓN DE CONTENIDOS JOOMLA!

Iván Camilo Eduardo Torres Angarita Sebastián Zapata Morales

UNIVERSIDAD TECNOLÓGICA DE PEREIRA FACULTAD DE INGENIERÍAS

PROGRAMA DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN PEREIRA-COLOMBIA

2011

Page 2: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN ADMINISTRADOR DE SUBASTAS EN INTERNET PARA EL SISTEMA DE

ADMINISTRACIÓN DE CONTENIDOS JOOMLA!

Iván Camilo Eduardo Torres Angarita Sebastián Zapata Morales

Proyecto de grado para optar el título de Ingeniero de Sistemas y Computación

Asesor: JOVANNY CASTAÑO

Ingeniero de Sistemas y Computación

UNIVERSIDAD TECNOLÓGICA DE PEREIRA FACULTAD DE INGENIERÍAS

PROGRAMA DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN PEREIRA-COLOMBIA

2011

Page 3: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

3

Nota de aceptación:

_______________________________ _______________________________ _______________________________ _______________________________ _______________________________ _______________________________ _______________________________ _______________________________

_______________________________ Firma del presidente del jurado

_______________________________ Firma del Jurado

_______________________________ Firma del Jurado

Pereira, Junio 16 de 2011

Page 4: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

4

A mi madre Emma, a mi padre Guillermo y a mi luz guía Juliana.

IVÁN CAMILO TORRES ANGARITA A mi amado padre. Requiescat in pace. Gigni de nihilo nihil, in nihilum nil posse reverti.

SEBASTIÁN ZAPATA MORALES

Page 5: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

5

CONTENIDO INTRODUCCIÓN ................................................................................................... 24

1. PLANTEAMIENTO DEL PROBLEMA ................................................................ 25

2. OBJETIVOS ....................................................................................................... 26

2.1. OBJETIVO GENERAL 26

2.2. OBJETIVOS ESPECÍFICOS 26

3. MARCO DE REFERENCIA................................................................................ 27

3.1. ANTECEDENTES 27

3.1.1. AUCTION FACTORY ................................................................................... 27

3.1.2. BF AUCTION ............................................................................................... 27

3.1.3. Otros ............................................................................................................ 27

3.2. MARCO TEÓRICO 28

3.2.1. Teoría de subastas ...................................................................................... 28

3.2.2. Comercio electrónico ................................................................................... 28

3.2.3. Sistema de gestión de contenidos ............................................................... 29

3.2.4. Metodología de diseño UWE ....................................................................... 29

3.2.5. Framework JOOMLA! .................................................................................. 30

3.2.6. Algoritmo de encriptación MD5 .................................................................... 30

3.2.7. XML ............................................................................................................. 30

3.2.8. Pruebas de caja negra ................................................................................. 31

4. REQUERIMIENTOS .......................................................................................... 32

4.1. REQUERIMIENTOS FUNCIONALES 32

4.1.1. Inscripción de usuarios ................................................................................ 32

4.1.2. Publicación de artículos ............................................................................... 32

4.1.3. Oferta en publicaciones ............................................................................... 32

4.1.4. Compra-venta de artículos ........................................................................... 32

4.1.5. Culminación de una publicación .................................................................. 32

4.1.6. Preguntas respecto al artículo publicado ..................................................... 32

Page 6: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

6

4.1.7. Administración de operaciones .................................................................... 32

4.1.8. Seguimiento de publicaciones ..................................................................... 33

4.1.9. Exhibición de la publicación ......................................................................... 33

4.1.10. Administración de las operaciones ............................................................ 33

4.1.11. Administración de las publicaciones .......................................................... 33

4.2. REQUERIMIENTOS NO FUNCIONALES 33

4.2.1. Seguridad ..................................................................................................... 33

4.2.2. Privacidad .................................................................................................... 33

4.2.3. Compatibilidad ............................................................................................. 33

4.2.4. Auto-instalación ........................................................................................... 34

4.2.5. Estandarización ........................................................................................... 34

4.2.6. Reutilización de código de Virtuemart .......................................................... 34

5. ANALISIS DE REQUERIMIENTOS DEL SISTEMA ........................................... 35

5.1. ANÁLISIS DE REQUERIMIENTOS 35

5.1.1. Diagrama de Casos de Uso: Usuarios del Sistema ..................................... 35

5.1.2. Diagrama de Casos de Uso: Vista General del Modelo ............................... 36

5.1.3. Diagrama de Casos de Uso: Administración de Categorías ........................ 37

5.1.4. Diagrama de Casos de Uso: Administración de Módulos ............................ 40

5.1.5. Diagrama de Casos de Uso: Administración de Operaciones ..................... 44

5.1.6. Diagrama de Casos de Uso: Administración de Publicaciones .................... 46

5.1.7. Diagrama de Casos de Uso: Administración Usuarios ................................ 50

5.1.8. Diagrama de Casos de Uso: Gestión de Operaciones ................................ 52

5.1.9. Diagrama de Casos de Uso: Gestión de Preguntas .................................... 56

5.1.10. Diagrama de Casos de Uso: Gestión Publicaciones .................................. 58

5.1.11. Diagrama de Casos de Uso: Gestión Sesión ............................................. 65

5.1.12. Diagrama de Casos de Uso: Visualización Publicaciones ......................... 68

5.2. ANÁLISIS REQUERIMIENTOS NO FUNCIONALES 70

5.2.1. Seguridad ..................................................................................................... 70

5.2.2. Privacidad .................................................................................................... 71

5.2.3. Compatibilidad ............................................................................................. 71

Page 7: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

7

5.2.4. Auto-instalación ........................................................................................... 71

5.2.5. Estandarización ........................................................................................... 71

5.2.6. Reutilización de código de VIRTUEMART ................................................... 71

6. ESTRUCTURA DE JOOMLA! ............................................................................ 72

6.1. ESTRUCTURA 72

6.2. PATRON MVC 72

6.2.1. Modelo ......................................................................................................... 72

6.2.2. Vista ............................................................................................................. 73

6.2.3. Controlador .................................................................................................. 73

7. DISEÑO DE LA EXTENSIÓN ............................................................................ 75

7.1. DIAGRAMA DE CONTENIDO 75

7.1.1. Descripción .................................................................................................. 76

7.2. DIAGRAMAS DE NAVEGACIÓN 77

7.2.1. BackEnd Categoría ...................................................................................... 77

7.2.2. BackEnd General ......................................................................................... 78

7.2.3. BackEnd Oferta ............................................................................................ 78

7.2.4. BackEnd Operación ..................................................................................... 79

7.2.5. BackEnd Parametrización Campos Publicación .......................................... 79

7.2.6. BackEnd Parametrización Campos Usuario ................................................ 80

7.2.7. BackEnd Parametrización Métodos Pago .................................................... 80

7.2.8. BackEnd Parametrización Regional ............................................................. 81

7.2.9. BackEnd Reclamo ....................................................................................... 81

7.2.10. BackEnd Reporte ....................................................................................... 82

7.2.11. FrontEnd Buscar Artículo ........................................................................... 82

7.2.12. FrontEnd Calificar ...................................................................................... 83

7.2.13. FrontEnd General ...................................................................................... 83

7.2.14. FrontEnd Lista Categorías ......................................................................... 84

7.2.15. FrontEnd Mis Artículos ............................................................................... 84

7.2.16. FrontEnd Operación Artículo ...................................................................... 85

7.2.17. FrontEnd Preguntas ................................................................................... 86

Page 8: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

8

7.2.18. FrontEnd Usuarios ..................................................................................... 86

7.3. DIAGRAMAS DE PRESENTACIÓN 87

7.3.1. BackEnd Cambiar Calificación ..................................................................... 87

7.3.2. BackEnd Campos de Usuario ...................................................................... 88

7.3.3. BackEnd Campos Publicación ..................................................................... 88

7.3.4. BackEnd Configuración Regional ................................................................ 89

7.3.5. BackEnd Editar Categoría ............................................................................ 89

7.3.6. BackEnd Editar Método de Pago ................................................................. 90

7.3.7. BackEnd Gestión Categorías ....................................................................... 90

7.3.8. BackEnd Listar Operaciones ........................................................................ 91

7.3.9. BackEnd Listar Publicaciones ...................................................................... 91

7.3.10. BackEnd Menú Principal ............................................................................ 92

7.3.11. BackEnd Métodos de Pago ........................................................................ 93

7.3.12. BackEnd Trámite Reclamos ....................................................................... 93

7.3.13. BackEnd Trámite Reportes ........................................................................ 94

7.3.14. FrontEnd Edición Registro ......................................................................... 94

7.3.15. FrontEnd Editar Artículo ............................................................................. 95

7.3.16. FrontEnd Iniciar Reclamación .................................................................... 95

7.3.17. FrontEnd Listar Artículos ............................................................................ 96

7.3.18. FrontEnd Listar Mis Artículos ..................................................................... 96

7.3.19. FrontEnd Listar Preguntas Pendientes ...................................................... 97

7.3.20. FrontEnd Mis Compras .............................................................................. 97

7.3.21. FrontEnd Mis Ventas ................................................................................. 98

7.3.22. FrontEnd Presentación Artículo ................................................................. 98

7.3.23. FrontEnd Página Principal ......................................................................... 99

7.3.24. FrontEnd Reportar Artículo ........................................................................ 99

7.3.25. FrontEnd Reputación Usuario .................................................................. 100

7.4. DIAGRAMAS DE PROCESOS 100

7.4.1. Diagrama de Estructura de Procesos BackEnd Parte 1 ............................ 101

7.4.2. Diagrama de Estructura de Procesos BackEnd Parte 2 ............................ 101

7.4.3. Diagrama de Estructura de Procesos FrontEnd ......................................... 102

Page 9: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

9

7.4.4. Anular Oferta Workflow .............................................................................. 103

7.4.5. Anular Operación Workflow ....................................................................... 103

7.4.6. Añadir Categoría Workflow ........................................................................ 104

7.4.7. Añadir Método de Pago Workflow .............................................................. 104

7.4.8. Calificar Comprador Workflow ................................................................... 105

7.4.9. Calificar Vendedor Workflow ...................................................................... 105

7.4.10. Cambiar Calificación Workflow ................................................................ 106

7.4.11. Cerrar Articulo Workflow .......................................................................... 106

7.4.12. Cerrar Artículo Irregular Workflow ............................................................ 107

7.4.13. Comprar Artículo Workflow ...................................................................... 107

7.4.14. Despublicar Campo Publicación Workflow ............................................... 108

7.4.15. Despublicar Campo Usuario Workflow..................................................... 108

7.4.16. Despublicar Categoría Workflow .............................................................. 109

7.4.17. Despublicar Método de Pago Workflow ................................................... 109

7.4.18. Eliminar Categoría Workflow .................................................................... 110

7.4.19. Eliminar Método de Pago Workflow ......................................................... 110

7.4.20. Guardar Configuración Regional Workflow .............................................. 111

7.4.21. Hacer Reclamo Workflow ......................................................................... 111

7.4.22. Ofertar Workflow ...................................................................................... 112

7.4.23. Preguntar Workflow ................................................................................. 113

7.4.24. Publicar Campo Publicación Workflow..................................................... 113

7.4.25. Publicar Campo Usuario Workflow .......................................................... 114

7.4.26. Publicar Categoría Workflow .................................................................... 114

7.4.27. Publicar Método de Pago Workflow ......................................................... 115

7.4.28. Publicar Nuevo Artículo Workflow ............................................................ 115

7.4.29. Registrar Usuario Workflow ..................................................................... 116

7.4.30. Reportar Artículo Workflow ...................................................................... 116

7.4.31. Responder Pregunta Workflow ................................................................ 117

7.4.32. Seguir Artículo Workflow .......................................................................... 117

7.4.33. Tramitar Reclamo Workflow ..................................................................... 118

7.4.34. Tramitar Reporte Workflow ...................................................................... 118

Page 10: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

10

8. IMPLEMENTACIÓN ......................................................................................... 119

8.1. JOOMLA! 119

8.2. PHP 119

8.3. MySQL 119

8.4. APACHE 120

8.5. ECLIPSE 120

8.6. ZEND DEBUGGER 120

8.7. WAMPSERVER 120

8.8. FIREFOX 121

9. PRUEBAS ........................................................................................................ 122

9.1. DISEÑO 122

9.2. EJECUCIÓN Y RESULTADOS 122

9.2.1. Registrar usuario ........................................................................................ 122

9.2.2. Agregar categoría ...................................................................................... 123

9.2.3. Publicar subasta ........................................................................................ 123

9.2.4. Exponer publicación ................................................................................... 123

9.2.5. Realizar pregunta ....................................................................................... 124

9.2.6. Responder pregunta .................................................................................. 124

9.2.7. Ofertar en una subasta .............................................................................. 124

9.2.8. Consultar reputación vendedor .................................................................. 125

9.2.9. Cerrar subasta ........................................................................................... 125

9.2.10. Comprar artículo ...................................................................................... 125

9.2.11. Calificar comprador .................................................................................. 126

9.2.12. Calificar vendedor .................................................................................... 126

9.2.13. Listar artículos activos.............................................................................. 126

9.2.14. Listar artículos comprados ....................................................................... 127

9.2.15. Listar artículos vendidos .......................................................................... 127

9.2.16. Listar preguntas pendientes ..................................................................... 127

Page 11: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

11

10. MANUALES ................................................................................................... 128

10.1. MANUAL DE INSTALACIÓN 128

10.1.1. Requerimientos ........................................................................................ 128

10.1.2. Instalación de la extensión ....................................................................... 128

10.2. MANUAL DE USUARIO 136

10.2.1. Registro de usuarios ................................................................................ 136

10.2.2. Acceso al sistema .................................................................................... 137

10.2.3. Como vender ........................................................................................... 138

10.2.4. Listar “Mis artículos” ................................................................................. 139

10.2.5. Listado de publicaciones .......................................................................... 140

10.2.6. Exhibición de los artículos ........................................................................ 140

10.2.7. Formular preguntas .................................................................................. 141

10.2.8. Responder preguntas............................................................................... 142

10.2.9. Ofertar ...................................................................................................... 143

10.2.10. Calificar comprador ................................................................................ 143

10.2.11. Calificar vendedor .................................................................................. 143

11. RECOMENDACIONES .................................................................................. 145

11.1. JOOMLA! 145

11.2. COMPONENTE DE USUARIO 145

11.3. VALIDACIONES 145

11.4. PROCEDIMIENTOS ALMACENADOS 146

11.5. IMPLEMENTACIONES GRAFICAS 146

11.6. LENGUAJE 146

11.7. TRAYECTORIA 146

11.8. CONTROLES 146

11.9. CASOS DE USO 147

12. CONCLUSIONES .......................................................................................... 148

13. BIBLIOGRAFIA .............................................................................................. 149

Page 12: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

12

ANEXOS .............................................................................................................. 152

Page 13: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

13

LISTA DE TABLAS Tabla 1. Especificación Abrir Categorías ............................................................... 37

Tabla 2. Especificación Añadir Categoría .............................................................. 38

Tabla 3. Especificación Despublicar Categoría ..................................................... 39

Tabla 4. Especificación Eliminar Categoría ........................................................... 39

Tabla 5. Especificación Publicar Categoría ........................................................... 40

Tabla 6. Especificación Configurar Campos de Publicación .................................. 41

Tabla 7. Especificación Configurar Campos de Usuario ........................................ 41

Tabla 8. Especificación Configurar Métodos de pago ............................................ 42

Tabla 9. Especificación Configurar Región ............................................................ 43

Tabla 10. Especificación Parametrizar Módulo ...................................................... 43

Tabla 11. Especificación Anular Operación ........................................................... 45

Tabla 12. Especificación Cambiar Calificación ...................................................... 45

Tabla 13. Especificación Listar Operaciones ......................................................... 46

Tabla 14. Especificación Anular Oferta .................................................................. 47

Tabla 15. Especificación Atender Artículos Reportados ........................................ 47

Tabla 16. Especificación Cerrar Artículo Irregular.................................................. 48

Tabla 17. Especificación Listar Artículos Activos ................................................... 49

Tabla 18. Especificación Listar Reclamos ............................................................. 49

Tabla 19. Especificación Resolver Reclamo .......................................................... 50

Tabla 20. Especificación Activar Usuario ............................................................... 51

Tabla 21. Especificación Inactivar Usuario ............................................................ 51

Tabla 22. Especificación Listar Usuarios ............................................................... 52

Tabla 23. Especificación Calificar Comprador ....................................................... 53

Tabla 24. Especificación Calificar Vendedor .......................................................... 53

Tabla 25. Especificación Crear Reclamo ............................................................... 54

Tabla 26. Especificación Dar Calificación .............................................................. 54

Tabla 27. Especificación Listar Artículos Comprados ............................................ 55

Tabla 28. Especificación Listar Artículos Vendidos ................................................ 56

Tabla 29. Especificación Listar Preguntas Pendientes .......................................... 57

Tabla 30. Especificación Responder Pregunta ...................................................... 57

Page 14: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

14

Tabla 31. Especificación Cerrar Artículo ................................................................ 59

Tabla 32. Especificación Comprar Artículo ............................................................ 59

Tabla 33. Especificación Listar Mis Artículos ......................................................... 60

Tabla 34. Especificación Ofertar ............................................................................ 61

Tabla 35. Especificación Publicar Artículo ............................................................. 61

Tabla 36. Especificación Realizar Pregunta .......................................................... 62

Tabla 37. Especificación Reportar Artículo ............................................................ 63

Tabla 38. Especificación Seguir Artículo ................................................................ 63

Tabla 39. Especificación Ver Artículo .................................................................... 64

Tabla 40. Especificación Cerrar Sesión ................................................................. 65

Tabla 41. Especificación Identificarse .................................................................... 66

Tabla 42. Especificación Recuperar Clave ............................................................ 67

Tabla 43. Especificación Registrarse ..................................................................... 67

Tabla 44. Especificación Buscar Artículo ............................................................... 69

Tabla 45. Especificación Consultar Reputación Vendedor .................................... 69

Tabla 46. Especificación Explorar Categorías ....................................................... 70

Page 15: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

15

LISTA DE FIGURAS

Pág. Figura 1: Usuarios del Sistema .............................................................................. 35

Figura 2: Vista General del Modelo ........................................................................ 36

Figura 3: Administración de Categorías ................................................................. 37

Figura 4: Administración de Módulos ..................................................................... 40

Figura 5: Administración de Operaciones .............................................................. 44

Figura 6: Administración de Publicaciones ............................................................ 46

Figura 7: Administración de Usuarios .................................................................... 50

Figura 8: Gestión de Operaciones ......................................................................... 52

Figura 9: Gestión de Preguntas ............................................................................. 56

Figura 10: Gestión de Publicaciones ..................................................................... 58

Figura 11: Gestión de Sesión ................................................................................ 65

Figura 12: Visualización Publicaciones .................................................................. 68

Figura 13: Estructura del sistema Joomla! ............................................................. 72

Figura 14: Modelo Vista Controlador ..................................................................... 73

Figura 15: Estructura General Plataforma Web Joomla! ........................................ 74

Figura 16: Diagrama de Contenido ........................................................................ 75

Figura 17: BackEnd Categoría ............................................................................... 77

Figura 18: BackEnd General .................................................................................. 78

Figura 19: BackEnd Oferta .................................................................................... 78

Figura 20: BackEnd Operación .............................................................................. 79

Figura 21: BackEnd Parametrización Campos Publicación ................................... 79

Figura 22: BackEnd Parametrización Campos Usuario ......................................... 80

Figura 23: BackEnd Parametrización Métodos Pago ............................................. 80

Figura 24: BackEnd Parametrización Regional ..................................................... 81

Figura 25: BackEnd Reclamo ................................................................................ 81

Figura 26: BackEnd Reporte .................................................................................. 82

Figura 27: FrontEnd Buscar Artículo ...................................................................... 82

Figura 28: FrontEnd Calificar ................................................................................. 83

Page 16: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

16

Figura 29: FrontEnd General ................................................................................. 83

Figura 30: FrontEnd Lista Categorías .................................................................... 84

Figura 31: FrontEnd Mis Artículos .......................................................................... 84

Figura 32: FrontEnd Operación Artículo ................................................................ 85

Figura 33: FrontEnd Preguntas .............................................................................. 86

Figura 34: FrontEnd Usuarios ................................................................................ 86

Figura 35: BackEnd Cambiar Calificación .............................................................. 87

Figura 36: BackEnd Campos de Usuario ............................................................... 88

Figura 37: BackEnd Campos Publicación .............................................................. 88

Figura 38: BackEnd Configuración Regional ......................................................... 89

Figura 39: BackEnd Editar Categoría .................................................................... 89

Figura 40: BackEnd Editar Método de Pago .......................................................... 90

Figura 41: BackEnd Gestión Categorías ................................................................ 90

Figura 42: BackEnd Listar Operaciones ................................................................ 91

Figura 43: BackEnd Listar Publicaciones ............................................................... 91

Figura 44: BackEnd Menú Principal ....................................................................... 92

Figura 45: BackEnd Métodos de Pago .................................................................. 93

Figura 46: BackEnd Trámite Reclamos ................................................................. 93

Figura 47: BackEnd Trámite Reportes ................................................................... 94

Figura 48: FrontEnd Edición Registro .................................................................... 94

Figura 49: FrontEnd Editar Artículo ........................................................................ 95

Figura 50: FrontEnd Iniciar Reclamación ............................................................... 95

Figura 51: FrontEnd Listar Artículos ...................................................................... 96

Figura 52: FrontEnd Listar Mis Artículos ................................................................ 96

Figura 53: FrontEnd Listar Preguntas Pendientes ................................................. 97

Figura 54: FrontEnd Mis Compras ......................................................................... 97

Figura 55: FrontEnd Mis Ventas ............................................................................ 98

Figura 56: FrontEnd Presentación Artículo ............................................................ 98

Figura 57: FrontEnd Página Principal .................................................................... 99

Figura 58: FrontEnd Reportar Artículo ................................................................... 99

Figura 59: FrontEnd Reputación Usuario ............................................................. 100

Page 17: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

17

Figura 60: Diagrama de Estructura de Procesos BackEnd Parte 1 ..................... 101

Figura 61: Diagrama de Estructura de Procesos BackEnd Parte 2 ..................... 101

Figura 62: Diagrama de Estructura de Procesos FrontEnd ................................. 102

Figura 63: Anular Oferta Workflow ....................................................................... 103

Figura 64: Anular Operación Workflow ................................................................ 103

Figura 65: Añadir Categoría Workflow ................................................................. 104

Figura 66: Añadir Método de Pago Workflow ...................................................... 104

Figura 67: Calificar Comprador Workflow ............................................................ 105

Figura 68: Calificar Vendedor Workflow ............................................................... 105

Figura 69: Cambiar Calificación Workflow ........................................................... 106

Figura 70: Cerrar Artículo Workflow ..................................................................... 106

Figura 71: Cerrar Artículo Irregular Workflow ...................................................... 107

Figura 72: Comprar Artículo Workflow ................................................................. 107

Figura 73: Despublicar Campo Publicación Workflow ......................................... 108

Figura 74: Despublicar Campo Usuario Workflow ............................................... 108

Figura 75: Despublicar Categoría Workflow ........................................................ 109

Figura 76: Despublicar Método de Pago Workflow .............................................. 109

Figura 77: Eliminar Categoría Workflow .............................................................. 110

Figura 78: Eliminar Método de Pago Workflow .................................................... 110

Figura 79: Guardar Configuración Regional Workflow ......................................... 111

Figura 80: Hacer Reclamo Workflow ................................................................... 111

Figura 81: Ofertar Workflow ................................................................................. 112

Figura 82: Preguntar Workflow ............................................................................ 113

Figura 83: Publicar Campo Publicación Workflow ............................................... 113

Figura 84: Publicar Campo Usuario Workflow ..................................................... 114

Figura 85: Publicar Categoría Workflow .............................................................. 114

Figura 86: Publicar Método de Pago Workflow .................................................... 115

Figura 87: Publicar Nuevo Artículo Workflow ....................................................... 115

Figura 88: Registrar Usuario Workflow ................................................................ 116

Figura 89: Reportar Artículo Workflow ................................................................. 116

Figura 90: Responder Pregunta Workflow ........................................................... 117

Page 18: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

18

Figura 91: Seguir Artículo Workflow ..................................................................... 117

Figura 92: Tramitar Reclamo Workflow ................................................................ 118

Figura 93: Tramitar Reporte Workflow ................................................................. 118

Figura 94: Pantalla de Inicio de Sesión BackEnd ................................................ 128

Figura 95: Panel de Control ................................................................................. 129

Figura 96: Instalación del Componente ............................................................... 129

Figura 97: Archivo de Instalación del Componente .............................................. 130

Figura 98: Instalación Satisfactoria del Componente ........................................... 130

Figura 99: Instalación Satisfactoria del Módulo ................................................... 130

Figura 100: Acceso Gestión de Categorías ......................................................... 131

Figura 101: Gestión de Categorías ...................................................................... 131

Figura 102: Formulario de Creación de Categorías ............................................. 132

Figura 103: Script Post-Instalación ...................................................................... 132

Figura 104: Ejecución del Script .......................................................................... 133

Figura 105: Post-instalación modulo .................................................................... 133

Figura 106: Activación del Modulo ....................................................................... 134

Figura 107: Configuración menú principal ........................................................... 134

Figura 108: Edición del Menú Principal ................................................................ 135

Figura 109: Directorios Requeridos ..................................................................... 135

Figura 110: Post-Instalación Extensión ................................................................ 136

Figura 111: Registro de Usuario .......................................................................... 136

Figura 112: Formulario de Registro ..................................................................... 137

Figura 113: Inicio de Sesión FrontEnd ................................................................. 137

Figura 114: Menú “Vender” .................................................................................. 138

Figura 115: Formulario de Creación de Articulo .................................................. 139

Figura 116: Menú “Mis artículos” ......................................................................... 139

Figura 117: Despliegue de “Mis Artículos” ........................................................... 140

Figura 118: Despliegue de Artículos .................................................................... 140

Figura 119: Exhibición de un Artículo .................................................................. 141

Figura 120: Información del Usuario .................................................................... 141

Figura 121: Formulación de Preguntas ................................................................ 142

Page 19: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

19

Figura 122: Responder una Pregunta .................................................................. 142

Figura 123: Oferta en un Artículo ......................................................................... 143

Figura 124: Calificar Comprador .......................................................................... 143

Figura 125: Calificar Vendedor ............................................................................ 144

Page 20: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

20

LISTA DE ANEXOS

Pág. Anexo A. De la seguridad en Joomla! 152

Page 21: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

21

GLOSARIO AUTOINSTALACION: Acción y efecto de instalar de manera automática. En informática se entiende por auto instalación a la acción de instalar un programa de cómputo o un dispositivo con la mínima intervención del usuario. FRONTEND Y BACKEND: En el diseño de software, front-end es la parte de un sistema de software que interactúa directamente con el usuario; mientras que back-end comprende los componentes que procesan la salida del front-end. La separación de los sistemas de software en "front-end" y "back-end", es una abstracción que sirve para mantener separadas las diferentes partes de un sistema. BACKUP: Una copia de seguridad o backup (su nombre en Inglés) en tecnología de la información o informática es una copia de seguridad - o el proceso de copia de seguridad - con el fin de que estas copias adicionales puedan utilizarse para restaurar el original después de una eventual pérdida de datos. BASE DE DATOS: Una base de datos o banco de datos (en ocasiones abreviada con la sigla BD o con la abreviatura b. d.) es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. BLOG: Un blog, o en español también una bitácora, es un sitio web periódicamente actualizado que recopila cronológicamente textos o artículos de uno o varios autores, apareciendo primero el más reciente, donde el autor conserva siempre la libertad de dejar publicado lo que crea pertinente. CMS: Un sistema de gestión de contenidos (en inglés Content Management System, abreviado CMS) es un programa que permite crear una estructura de soporte (framework) para la creación y administración de contenidos, principalmente en páginas web, por parte de los participantes. COMERCIO ELECTRÓNICO: Es el uso de las tecnologías computacionales y de telecomunicaciones que se realiza entre empresas o bien entre vendedores y compradores, para apoyar el comercio de bienes y servicios.

Page 22: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

22

CSS: Las hojas de estilo en cascada (en inglés Cascading Style Sheets), CSS es un lenguaje usado para definir la presentación de un documento estructurado escrito en HTML o XML (y por extensión en XHTML). DEBUGGER: Un depurador (en inglés, debugger), es un programa usado para probar y depurar (eliminar los errores) de otros programas (el programa "objetivo"). EXPLOIT: Exploit (del inglés to exploit, explotar o aprovechar) es una pieza de software, un fragmento de datos, o una secuencia de comandos con el fin de automatizar el aprovechamiento de un error, fallo o vulnerabilidad, a fin de causar un comportamiento no deseado o imprevisto en los programas informáticos, hardware, o componente electrónico (por lo general computarizado). FRAMEWORK: En el desarrollo de software, un framework es una estructura conceptual y tecnológica de soporte definida, normalmente con artefactos o módulos de software concretos, con base en la cual otro proyecto de software puede ser organizado y desarrollado. HOSTING: El alojamiento web (en inglés web hosting) es el servicio que provee a los usuarios de Internet un sistema para poder almacenar información, imágenes, vídeo, o cualquier contenido accesible vía web. IDE: Un entorno de desarrollo integrado (en inglés integrated development environment) es un programa informático compuesto por un conjunto de herramientas de programación. ISP: Un proveedor de servicios de Internet (o ISP, por la sigla en inglés de Internet Service Provider) es una empresa que brinda conexión a Internet a sus clientes. JOOMLA!: Joomla! es un sistema de gestión de contenidos, y entre sus principales virtudes está la de permitir editar el contenido de un sitio web de manera sencilla. Es una aplicación de código abierto programada mayoritariamente en PHP bajo una licencia GPL. LIBRERÍA: En ciencias de la computación, una biblioteca (del inglés library) es un conjunto de subprogramas utilizados para desarrollar software.

Page 23: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

23

PLUGINS: Un complemento es una aplicación que se relaciona con otra para aportarle una función nueva y generalmente muy específica. Esta aplicación adicional es ejecutada por la aplicación principal e interactúan por medio de la API. También se lo conoce como plug-in (del inglés "enchufable"), add-on (agregado), complemento, conector o extensión. SCRIPT: Un script (cuya traducción literal es 'guion') o archivo de órdenes o archivo de procesamiento por lotes es un programa usualmente simple, que por lo regular se almacena en un archivo de texto plano. SUBASTA: Una subasta o remate es una venta organizada de un producto basado en la competencia directa, y generalmente pública, es decir, a aquel comprador (postor) que pague la mayor cantidad de dinero o de bienes a cambio del producto. TIENDA VIRTUAL: Una tienda en línea (también conocida como tienda online, tienda virtual o tienda electrónica) se refiere a un comercio convencional que usa como medio principal para realizar sus transacciones un sitio web de Internet. UML: Lenguaje Unificado de Modelado (LUM o UML, por sus siglas en inglés, Unified Modeling Language) es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad; está respaldado por el OMG (Object Management Group). WORKFLOW: El flujo de trabajo (workflow en inglés) es el estudio de los aspectos operacionales de una actividad de trabajo: cómo se estructuran las tareas, cómo se realizan, cuál es su orden correlativo, cómo se sincronizan, cómo fluye la información que soporta las tareas y cómo se le hace seguimiento al cumplimiento de las tareas. XML: XML, siglas en inglés de eXtensible Markup Language ('lenguaje de marcas extensible'), es un metalenguaje extensible de etiquetas desarrollado por el World Wide Web Consortium (W3C).

Page 24: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

24

INTRODUCCIÓN La creciente importancia que ha obtenido el comercio electrónico ha obligado a cientos de comerciantes tradicionales a incursionar y explorar nuevos campos electrónicos donde competir con sus semejantes. Una de las herramientas que trae la era de la información en lo que ha comercio electrónico concierne es la subasta en línea, la cual permite la exposición de mercancías de cualquier usuario de internet, y que pueden ser adquiridas por otros usuarios, otorgándole a los propietarios del sitio web el derecho a cobrar una comisión de la venta en pago por la publicidad, exhibición y administración de sus artículos que el usuario posiblemente no hubiese podido alcanzar por sus propios medios. Cabe mencionar que este no es el único uso que pueden tener los sitios de subastas en línea, también se podrían efectuar subastas gubernamentales de adjudicación de contratos, administración de activos del estado, activos recuperados de ilícitos y/o embargos. El costo de creación de un sitio entero, con administración de usuarios, publicación de artículos, manejo de bases de datos, seguridad y demás elementos que un sitio de internet para el comercio electrónico debe tener, puede resultar muy alto para el emprendedor o pequeño empresario. Un alivio que se puede encontrar en la actualidad son los sistemas de administración de contenido, estos permiten crear un sitio con poco esfuerzo y algunos de estos sin costo alguno, además proporcionan soporte, como ayuda de la comunidad de usuarios y actualizaciones; cualidades que hacen muy difícil descartar su uso en la implementación de un sitio web. Este proyecto pretende brindar una noción desde el punto de vista práctico del uso de administradores de contenido y el comercio electrónico; puntualmente las subastas electrónicas vía internet, lo que implica unirlos en una sola idea y necesidad: Un módulo para un sistema de administración de contenido que permita manejar subastas.

Page 25: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

25

1. PLANTEAMIENTO DEL PROBLEMA Uno de los administradores de contenido Web más usados en la actualidad es Joomla!. Este brinda a los administradores las herramientas para adicionar información a sus sitios webs sin mayores conocimientos informáticos. Además la comunidad de usuarios ha aportado una serie de aplicaciones complementarias llamadas extensiones, entre las cuales se encuentran aplicaciones para implementar: foros, tiendas virtuales, blogs, etc. A pesar de haber un número considerable de extensiones para el administrador de contenidos Joomla!, no se encontraron módulos o extensiones de código abierto o comercial en el sitio oficial de Joomla! que permitan a los usuarios crear anuncios de artículos nuevos o usados de su pertenencia, los cuales puedan ser vendidos al mejor postor entre los propios usuarios de la página.1

1Open Source Matters, Inc. Joomla! Extensions Directory. Search. [En línea] [Citado el: 4 de Enero de 2011.] http://extensions.joomla.org/search?q=auction.

Page 26: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

26

2. OBJETIVOS 2.1. OBJETIVO GENERAL Diseñar e implementar una extensión autoinstalable de un administrador de subastas de internet para el sistema de administración de contenidos Joomla!. 2.2. OBJETIVOS ESPECÍFICOS

• Especificar los requerimientos del sistema de subastas. • Analizar el sistema de subastas. • Diseñar la extensión bajo la arquitectura del CMS Joomla. • Analizar la reutilización del código. • Implementar los módulos básicos. • Implementar las herramientas de integración con el CMS. • Diseñar y realizar pruebas. • Documentar el uso del software, manual de instalación y de usuario.

Page 27: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

27

3. MARCO DE REFERENCIA 3.1. ANTECEDENTES Dentro de los sitios de internet que posee Joomla! se encuentra el directorio de extensiones oficial2, dicho directorio se mantiene actualizado por los responsables de Joomla! y provee una guía de las herramientas disponibles para este. A continuación se listan las extensiones similares a la propuesta por los autores. 3.1.1. AUCTION FACTORY Extensión agregada al directorio de extensiones en junio de 2009, es compatible con la versión 1.5 de Joomla! y su licencia es comercial. Esta herramienta tiene costo y entre las funcionalidades ofrecidas están; publicación de varios tipos de subasta, instalación automática, categorización de los ítems entre otros.3 3.1.2. BF AUCTION Herramienta incluida en el directorio de extensiones en abril de 2010 es compatible con la versión 1.5 de Joomla! y su licencia es comercial. BF Auction cuenta dos versiones4, una sin costo y otra que si lo tiene, la limitación que tiene la gratuita según su distribuidor es la presencia de avisos publicitarios. Las funcionalidades incluidas son publicación de artículos, oferta de usuarios inscritos en las publicaciones, instalación automática y el uso de herramientas de pago, su otra limitante es que el responsable del sitio web o usuario administrador es quien debe publicar dichos artículos. 3.1.3. Otros Las demás herramientas que responden al criterio de búsqueda “Auction”, “subasta” en ingles se limitan a desplegar información de sitios de subastas.

2Open Source Matters, Inc. Joomla! Extensions Directory. [En línea] [Citado el: 04 de Enero de 2011.] http://extensions.joomla.org/. 3Skepsis Consult. The Factory. [En línea] [Citado el: 04 de 01 de 2011.] http://www.thefactory.ro/shop/joomla-components/auction-factory.html. 4Tamlyn Creative Software. Tamlyn Creative Software. [En línea] [Citado el: 5 de Enero de 2011.] http://www.tamlyncreative.com.au/software/pricing/purchase-bf-auction-pro.html.

Page 28: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

28

3.2. MARCO TEÓRICO 3.2.1. Teoría de subastas 3.2.1.1. Definición de subasta McAfee and McMillan (1987) definen una subasta como una institución de mercado que cuenta con un conjunto explícito de reglas que determinan la asignación de recursos y los precios basándose en las pujas presentadas por los participantes.5 3.2.1.2. Subasta ascendente o inglesa Este es el tipo de subasta más utilizado. La característica que la define es el hecho de que el precio se va incrementando sucesivamente hasta que queda un único comprador, que es el que se adjudica el bien al precio final. Los sistemas por los que los precios se van incrementando pueden ser diferentes. Quizás el más conocido es aquel en el que los propios postores van “cantando” sus pujas (bien oralmente o bien a través de su introducción en un mecanismo electrónico).6 3.2.2. Comercio electrónico En el artículo de Jesús Reyna V. se presentan tres definiciones del comercio electrónico:7

• “Es la aplicación de la avanzada tecnología de información para incrementar la eficacia de las relaciones empresariales entre socios comerciales" (Automotive Action Group in North America).8

• "La disponibilidad de una visión empresarial apoyada por la avanzada

tecnología de información para mejorar la eficiencia y la eficacia dentro del proceso comercial” (EC Innovation Centre).9

• "Es el uso de las tecnologías computacional y de telecomunicaciones que

se realiza entre empresas o bien entre vendedores y compradores, para apoyar el comercio de bienes y servicios”.10

5Auctions and Bidding. McAfee, P., & McMillan, J. 2, Journal of Economic Literature, Vol. XXV, págs. 699-738. 6Juez, Pedro Dura. 2003. Teoria de subastas y reputación del vendedor. Madrid : Sociedad autónoma de fotocomposición, 2003. 7Comercio móvil. Reyna, Jesús Enrique Vazquez. Cuernavaca : Instituto de la educación básica del estado de Morelos. 8An Introduction to Electronic Commerce. BT Electronic Commerce Innovation Center. Cardiff : Univerity of Cardiff. 9Ibíd. 10Electronic Commerce. Halchmi, Z., Hommel, K., y Avital., O. s.l. : The Technion-Israel Institute of Technology.

Page 29: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

29

3.2.3. Sistema de gestión de contenidos Un sistema de gestión de contenidos (en inglés Content Management System, abreviado CMS) es un programa que permite crear una estructura de soporte (framework) para la creación y administración de contenidos, principalmente en páginas web, por parte de los participantes. Consiste en una interfaz que controla una o varias bases de datos donde se aloja el contenido del sitio. El sistema permite manejar de manera independiente el contenido y el diseño. Así, es posible manejar el contenido y darle en cualquier momento un diseño distinto al sitio sin tener que darle formato al contenido de nuevo, además de permitir la fácil y controlada publicación en el sitio a varios editores.11 3.2.4. Metodología de diseño UWE UWE (UML-Based Web Engineering) es una propuesta basada en UML y en el proceso unificado para modelar aplicaciones web. Esta propuesta está formada por una notación para especificar el dominio (basada en UML) y un modelo para llevar a cabo el desarrollo del proceso de modelado. Los sistemas adaptativos y la sistematización son dos aspectos sobre los que se enfoca UWE. El modelo que propone UWE está compuesto por seis etapas o sub-modelos:

• Modelo de Casos de Uso: Modelo que representa los requisitos del sistema.

• Modelo de Contenido: Es un modelo conceptual para el desarrollo del

contenido.

• Modelo de Usuario: Modelo de navegación en el cual se incluyen modelos estáticos y modelos dinámicos.

• Modelo de estructura: En el cual se encuentra la presentación del sistema

y el modelo de flujo.

• Modelo Abstracto: Incluye el modelo de interfaz de usuario y el modelo de ciclo de vida del objeto.

• Modelo de Adaptación: Adaptación de la información según el contexto.

11Wikipedia. Sistema de gestión de contenidos. Wikipedia, La Enciclopedia Libre. [En línea] [Citado el: 6 de Enero de 2011.] http://es.wikipedia.org/wiki/Cms.

Page 30: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

30

En cuanto a los requisitos, UWE los clasifica dependiendo del carácter de cada uno. Además distingue entre las fases de captura, definición y validación de requisitos.12 3.2.5. Framework JOOMLA! La definición de framework (marco de trabajo), según Cambridge es una estructura de soporte desde la cual, con su sistema de reglas, ideas o filosofía se puede planear o decidir algo, en el caso del framework Joomla! podemos estructurar un proyecto usando las reglas del sistema propuesto por los autores de Joomla!.13 3.2.6. Algoritmo de encriptación MD5 MD5 es uno de los algoritmos de reducción criptográficos diseñados por el profesor Ronald Rivest del MIT (Massachusetts Institute of Technology, Instituto Tecnológico de Massachusetts). Fue desarrollado en 1991 como reemplazo del algoritmo MD4 después de que Hans Dobbertin descubriese su debilidad. Los resúmenes MD5 se utilizan extensamente en el mundo del software para proporcionar la seguridad de que un archivo descargado de Internet no se ha alterado. Comparando una suma MD5 publicada con la suma de comprobación del archivo descargado, un usuario puede tener la confianza suficiente de que el archivo es igual que el publicado por los desarrolladores. Esto protege al usuario contra los 'Caballos de Troya' o 'Troyanos' y virus que algún otro usuario malicioso pudiera incluir en el software. La comprobación de un archivo descargado contra su suma MD5 no detecta solamente los archivos alterados de una manera maliciosa, también reconoce una descarga corrupta o incompleta.14 3.2.7. XML XML, siglas en inglés de extensible Markup Language (lenguaje de marcas extensible), es un metalenguaje extensible de etiquetas desarrollado por el World Wide Web Consortium (W3C). Es una simplificación y adaptación del SGML y permite definir la gramática de lenguajes específicos (de la misma manera que HTML es a su vez un lenguaje definido por SGML). Por lo tanto XML no es realmente un lenguaje en particular, sino una manera de definir lenguajes para

12De la Rosa Escolante, Miguel Javier. 2010. Estudio de UWE. Madrid: Universidad Carlos III. Departamento de Telemática, 2010. pág. 33. 13Cambridge. Cambridge Dictionary Online. Definition of framework. [En línea] [Citado el: 06 de Enero de 2011.] http://dictionary.cambridge.org/dictionary/british/framework. 14Wikipedia. MD5. Wikipedia, La Enciclopedia Libre. [En línea] [Citado el: 06 de Enero de 2011.] http://en.wikipedia.org/wiki/MD5

Page 31: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

31

diferentes necesidades. Algunos de estos lenguajes que usan XML para su definición son XHTML, SVG, MathML.15 3.2.8. Pruebas de caja negra Las pruebas de caja negra son las que se aplican a la interfaz del software. Sin entrar en detalle de los eventos y que ocurren en el interior del sistema, se usan para probar funcionalidades de un sistema ingresando datos de entrada y evaluando su salida.16

15Wikipedia. Extensible Markup Language. Wikipedia, La enciclopedia libre. [En línea] [Citado el: 06 de Enero de 2011.] http://es.wikipedia.org/wiki/Xml. 16Pressman, Roger S. 2007. Ingeniería del Software. s.l. : McGraw-Hill Interamericana, 2007.

Page 32: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

32

4. REQUERIMIENTOS 4.1. REQUERIMIENTOS FUNCIONALES 4.1.1. Inscripción de usuarios Permitir a nuevos usuarios del sistema el registro de sus datos en el sitio web. Nota: Este requerimiento no se modelará ya que es parte de la funcionalidad del framework Joomla!. 4.1.2. Publicación de artículos El usuario debe tener la capacidad de crear sin intervención del administrador del sitio publicaciones de sus artículos a vender y/o subastar. 4.1.3. Oferta en publicaciones Ofrecer al usuario en el rol de comprador la capacidad de realizar ofertas sobre un artículo. 4.1.4. Compra-venta de artículos Los usuarios deben tener la capacidad de adquirir el compromiso de compraventa cuando el usuario comprador realice una oferta y la subasta culmine y su oferta sea la mayor. Además cuando una publicación sea de compra inmediata esta operación se efectúe inmediatamente. 4.1.5. Culminación de una publicación El sistema debe permitir al usuario vendedor la culminación de sus publicaciones por decisión propia antes de que el sistema lo haga automáticamente. Lo anterior so pena que si existen ofertas sobre el artículo la mayor oferta será la ganadora de la subasta. 4.1.6. Preguntas respecto al artículo publicado Los usuarios interesados en adquirir el artículo publicado de manera inmediata o mediante el método de subasta podrán realizar preguntas al usuario vendedor a través de la página web. Así mismo el usuario vendedor puede responderlas usando la herramienta del sistema. 4.1.7. Administración de operaciones El usuario debe poder hacer seguimiento de compras y ventas realizadas, además tener la capacidad de calificar las operaciones realizadas.

Page 33: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

33

4.1.8. Seguimiento de publicaciones El sistema permitirá el seguimiento de las publicaciones que le interesen. 4.1.9. Exhibición de la publicación La aplicación debe mostrar la información necesaria de un artículo publicado, así como una gráfica que permita describir el artículo en venta. 4.1.10. Administración de las operaciones El usuario administración debe tener herramientas para administrar las actividades y operaciones que se efectúen en el sitio. 4.1.11. Administración de las publicaciones El administrador tendrá capacidades superiores sobre una publicación, entre ellas estará el cerrar publicaciones y cambiar su ubicación. 4.2. REQUERIMIENTOS NO FUNCIONALES 4.2.1. Seguridad Requerimiento usual de cualquier aplicación web, ya que esta se encontraría expuesta a cualquier persona en internet.

• Encriptación de las claves de acceso para evitar la suplantación de identidad.

• En el caso particular de un sitio de subastas se requiere que las ofertas sean realizadas por usuarios reales del sitio y no por robots o usuarios autónomos creados con propósitos poco morales.

• Se requiere segregación de usuarios según el acceso que tengan. 4.2.2. Privacidad El sistema debe proporcionar al usuario privacidad sobre sus datos personales salvo la eventual celebración de una compra-venta por el sitio web. 4.2.3. Compatibilidad Se requiere que la aplicación sea compatible con la versión 1.5 del framework Joomla!.

Page 34: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

34

4.2.4. Auto-instalación La instalación del aplicativo debe ser sencilla, permitiendo al usuario usar la característica de auto-instalación que proporciona Joomla!. 4.2.5. Estandarización Se requiere que la extensión se encuentre implementada con los patrones de desarrollo recomendados en la documentación de la plataforma. 4.2.6. Reutilización de código de Virtuemart Reutilizar el código de la extensión de código libre VIRTUEMART.

Page 35: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

35

5. ANALISIS DE REQUERIMIENTOS DEL SISTEMA 5.1. ANÁLISIS DE REQUERIMIENTOS En el presente numeral se plasmara el análisis de requerimientos del sistema mediante el diseño de los casos de uso de los requerimientos mismos expresados en el comportamiento del sistema frente a las acciones de los actores del mismo, funcionalidades del sistema y demás elementos que permiten la abstracción del problema antes de continuar con el desarrollo del software. La presentación de este análisis se ha dividido en diagramas que representan paquetes de casos de usos, dichos paquetes contienen grupos de casos de usos que tienen en común su funcionalidad. 5.1.1. Diagrama de Casos de Uso: Usuarios del Sistema Figura 1: Usuarios del Sistema

Fuente: Autores, 2011. 5.1.1.1. Descripción Los usuarios del sistema se pueden separar en dos clases según si se encuentran o no registrados en el sistema. El Visitante, se entiende como quien está haciendo uso del sistema sin encontrarse identificado en este. Los usuarios Vendedor, comprador y administrador adquieren su rol cuando se encuentran identificados en el sistema. Los usuarios identificados en el sistema pueden realizar como mínimo las mismas acciones que un Visitante.

Page 36: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

36

5.1.2. Diagrama de Casos de Uso: Vista General del Modelo Figura 2: Vista General del Modelo

Fuente: Autores, 2011. 5.1.2.1. Descripción En la vista general del modelo se arman paquetes de casos de usos según su nivel de acceso y en su interior se agrupan según su funcionalidad.

Page 37: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

37

5.1.3. Diagrama de Casos de Uso: Administración de Categorías Figura 3: Administración de Categorías

Fuente: Autores, 2011. 5.1.3.1. Descripción En este grupo de casos de uso, se ilustran las funciones que tiene el usuario administrador sobre la categorización de artículos en el sitio. Puede Agregar, eliminar, publicar y despublicar una o varias categorías. 5.1.3.2. Caso de Uso: Abrir Categorías Tabla 1. Especificación Abrir Categorías Nombre Abrir Categorías ID 1 Descripción Listar todas las categorías de los artículos del sistema para

su gestión Actores • Usuario Administrador Resumen Despliega un listado de todas las categorías de los artículos

del sistema Relaciones

Asociaciones • Actor Usuario Administrador Include Extend Generalización

Page 38: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

38

Tabla 1. (Continuación) Escenarios

Flujo Básico de los Eventos

1. El administrador ingresa a la opción de “Listar Categorías” 2. El sistema despliega todas las categorías de los artículos

Flujo Alternativo 2.a. Administrador desea despublicar categoría 1. Extiende al caso de uso Despublicar Categoría 2.b. Administrador desea publicar categoría 1. Extiende al caso de uso Publicar Categoría 2.c. Administrador desea eliminar categoría 1. Extiende al caso de uso Eliminar Categoría

Fuente: Autores, 2011. 5.1.3.3. Caso de Uso: Añadir Categoría Tabla 2. Especificación Añadir Categoría Nombre Añadir Categoría ID 2 Descripción Se crean categorías para los artículos que van a ser

publicados. Actores • Usuario Administrador Resumen Crear un espacio para los artículos agrupados con sus

semejantes. Relaciones

Asociaciones • Actor Usuario Administrador Include Extend • Caso de uso Abrir Categorías Generalización

Escenarios Flujo Básico de los Eventos

1. Ingresa a la sección administrativa donde puede operar sobre los artículos. 2. Lista opciones de administración. 3. Ingresa a la sección de administración de categorías. 4. Lista las categorías existentes y los botones de adición, eliminación y edición. 5. El usuario da clic en el icono de adición.

Escenarios 6. Abre el formulario de creación de categoría.

7. El usuario llena el formulario y da clic en guardar. 8. Almacena la nueva categoría.

Flujo Alternativo Fuente: Autores, 2011.

Page 39: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

39

5.1.3.4. Caso de Uso: Despublicar Categoría Tabla 3. Especificación Despublicar Categoría Nombre Despublicar Categoría ID 3 Descripción El administrador hace que una categoría de agrupación de

artículos que estaba visible, deje de serlo para los usuarios registrados.

Actores • Usuario Administrador Resumen Desactiva una categoría para que ya no sea visible para los

usuarios registrados Relaciones

Asociaciones • Actor Usuario Administrador Include Extend • Caso de uso Abrir Categorías Generalización

Escenarios Flujo Básico de los Eventos

1. El administrador selecciona una categoría 2. Selecciona la opción de despublicar

Flujo Alternativo Fuente: Autores, 2011. 5.1.3.5. Caso de Uso: Eliminar Categoría Tabla 4. Especificación Eliminar Categoría Nombre Eliminar Categoría ID 5 Descripción Permite borrar físicamente del sistema una categoría que

ya no es necesaria. Actores • Usuario Administrador Resumen Elimina una categoría físicamente del sistema

Relaciones Asociaciones • Actor Usuario Administrador Include Extend • Caso de uso Abrir Categorías Generalización

Escenarios Flujo Básico de los Eventos

1. El administrador selecciona una categoría 2. Selecciona la opción de eliminar 3. El sistema pide confirmación para continuar con la operación 4. Se guardan los cambios en el sistema

Flujo Alternativo Fuente: Autores, 2011.

Page 40: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

40

5.1.3.6. Caso de Uso: Publicar Categoría Tabla 5. Especificación Publicar Categoría Nombre Publicar Categoría ID 4 Descripción El administrador hace visible a los usuarios registrados una

categoría de agrupación de artículos Actores • Usuario Administrador Resumen Activa una categoría para que sea visible para los usuarios

registrados Relaciones

Asociaciones • Actor Usuario Administrador Include Extend • Caso de uso Abrir Categorías Generalización

Escenarios Flujo Básico de los Eventos

1. El administrador selecciona una categoría 2. Selecciona la opción de publicar

Flujo Alternativo Fuente: Autores, 2011. 5.1.4. Diagrama de Casos de Uso: Administración de Módulos Figura 4: Administración de Módulos

Fuente: Autores, 2011.

Page 41: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

41

5.1.4.1. Descripción Agrupación de casos de uso que tiene por propósito configurar el módulo de subastas del sitio. Permiten ajustar parámetros según las necesidades del dueño de la página. 5.1.4.2. Caso de Uso: Configurar Campos de Publicación Tabla 6. Especificación Configurar Campos de Publicación Nombre Configurar Campos de Publicación ID 4 Descripción Permite agregar, editar y eliminar campos para almacenar

información según la necesidad del negocio. Actores Resumen Modificar la información de los artículos.

Relaciones Asociaciones Include Extend • Caso de uso Parametrizar Módulo Generalización

Escenarios Flujo Básico de los Eventos

1. El administrador ingresa a la sección de configuración de campos. 2. Se listan las subcategorías disponibles. 3. El administrador ingresa en la configuración de campos de artículo. 4. Se listan los campos disponibles para su selección y configuración. 5. El administrador selecciona que campos usará el sistema y da clic en guardar. 6. Se almacena la configuración.

Flujo Alternativo Fuente: Autores, 2011. 5.1.4.3. Caso de Uso: Configurar Campos de Usuario Tabla 7. Especificación Configurar Campos de Usuario Nombre Configurar Campos de Usuario ID 5 Descripción El administrador puede agregar, editar y eliminar campos de

datos por usuario según las necesidades del negocio. Actores Resumen Modificar los formatos de inscripción y actualización de

datos al gusto del dueño del sitio.

Page 42: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

42

Tabla 8. (Continuación) Relaciones

Asociaciones Include Extend • Caso de uso Parametrizar Módulo Generalización

Escenarios Flujo Básico de los Eventos

1. Ingresa a la sección de configuración de campos. 2. Se listan las subcategorías disponibles. 3. El administrador ingresa en la configuración de campos de usuario. 4. Se listan los campos disponibles para su selección y configuración.

Escenarios 5. El administrador selecciona que campos usará el sistema

y da clic en guardar. 6. Se almacena la configuración.

Flujo Alternativo Fuente: Autores, 2011. 5.1.4.4. Caso de Uso: Configurar Métodos de pago Tabla 8. Especificación Configurar Métodos de pago Nombre Configurar Métodos de pago ID 1 Descripción Añadir, modificar y/o eliminar métodos de pago disponibles

para el cliente. Actores Resumen Administrar lo referente a los métodos de pago.

Relaciones Asociaciones Include Extend • Caso de uso Parametrizar Módulo Generalización

Escenarios Flujo Básico de los Eventos

1. Ingresa a la sección de configuración de métodos de pago. 2. Lista los módulos disponibles y los botones de acción. 3. Da clic sobre el método de pago. 4. Se abre un formulario de configuración del método. 5. Llena o modifica el formulario y da clic en guardar. 6. El sistema almacena los cambios realizados.

Flujo Alternativo Fuente: Autores, 2011.

Page 43: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

43

5.1.4.5. Caso de Uso: Configurar Región Tabla 9. Especificación Configurar Región Nombre Configurar Región ID 2 Descripción El usuario ingresa los parámetros de la ubicación física de

la tienda. Actores Resumen Parametrizar el sitio según su ubicación geográfica.

Relaciones Asociaciones Include Extend • Caso de uso Parametrizar Módulo Generalización

Escenarios Flujo Básico de los Eventos

1. El administrador ingresa a la sección de configuración regional. 2. Se muestra un formulario con las opciones. 3. Llena el formulario según su situación. 4. El sistema almacena la configuración.

Flujo Alternativo 3.a. El formulario no está lleno del todo. 1. Sistema Verifica la obligatoriedad del campo vacío y

solicita su llenado. Fuente: Autores, 2011. 5.1.4.6. Caso de Uso: Parametrizar Módulo Tabla 10. Especificación Parametrizar Módulo Nombre Parametrizar Módulo ID 3 Descripción El usuario ingresa a las opciones de parametrización. Actores • Usuario Administrador Resumen Parametrizar las secciones de la página.

Relaciones Asociaciones • Actor Usuario Administrador Include Extend Generalización

Escenarios Flujo Básico de los Eventos

1. Lista las categorías de parametrización existentes. 2. Ingresa a la sección de configuración de módulos. 3. Lista los módulos disponibles y los botones de acción.

Page 44: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

44

Tabla 10. (Continuación) 4. El administrador selecciona la acción a tomar en el

módulo. 5. Activa o desactiva el módulo.

Flujo Alternativo

3.a. El Administrador desea modificar los métodos de pago 1. Extiende al caso de uso Configurar Métodos de Pago

3.b. El Administrador desea modificar los campos de usuario 1. Extiende al caso de uso Configurar Campos de

Usuario 3.c. El Administrador desea modificar l configuración de la región

1. Extiende al caso de uso Configurar Región 3.d. El Administrador desea modificar la configuración de los campos de publicación

1. Extiende al caso de uso Configurar Campos de Publicación

5.a. El módulo es principal. 1. Restaura la configuración por defecto.

Fuente: Autores, 2011. 5.1.5. Diagrama de Casos de Uso: Administración de Operaciones Figura 5: Administración de Operaciones

Fuente: Autores, 2011. 5.1.5.1. Descripción En estos casos de uso el usuario administrador ejerce su rol sobre el desenlace de una operación de compra/venta siguiendo en general solicitudes de sus usuarios

Page 45: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

45

5.1.5.2. Caso de Uso: Anular Operación Tabla 11. Especificación Anular Operación Nombre Anular Operación ID 1 Descripción El administrador de la página considera que la venta no debe

concretarse y la anula. Actores Resumen Cancelar un proceso de compra venta.

Relaciones Asociaciones Include Extend • Caso de uso Listar Operaciones Generalización

Escenarios Flujo Básico de los Eventos

1. El administrador selecciona una publicación. 2. Se abre la publicación junto con las opciones administrativas. 3. Selecciona la opción anular compra. 4. El sistema elimina la oferta y anula la compra del artículo.

Flujo Alternativo Fuente: Autores, 2011. 5.1.5.3. Caso de Uso: Cambiar Calificación Tabla 12. Especificación Cambiar Calificación Nombre Cambiar Calificación ID 3 Descripción El administrador considera que se debe modificar la

calificación de una venta realizada por violar políticas del sitio. Actores Resumen Se modifica la calificación como resultado de una venta

Relaciones Asociaciones Include Extend • Caso de uso Listar Operaciones Generalización

Escenarios Flujo Básico de los Eventos

1. El administrador selecciona una venta 2. Accede a la opción de cambiar calificación 3. Se despliegan los campos de la calificación con el valor previo 4. Modifica la nueva calificación

Flujo Alternativo Fuente: Autores, 2011.

Page 46: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

46

5.1.5.4. Caso de Uso: Listar Operaciones Tabla 13. Especificación Listar Operaciones Nombre Listar Operaciones ID 2 Descripción Listar todas las ventas realizadas en sistema para su

gestión Actores • Usuario Administrador Resumen Despliega un listado de todas las ventas del sistema

Relaciones Asociaciones • Actor Usuario Administrador

Include Extend Generalización

Escenarios Flujo Básico de los Eventos

1. El administrador ingresa a la opción de Listar Operaciones 2. El sistema despliega todas las ventas realizadas en el sistema

Flujo Alternativo 2.a. Administrador desea anular la operación 1. Extiende al caso de uso Anular Operación

2.b. Administrador desea cambiar calificación 1. Extiende al caso de uso Cambiar Calificación

Fuente: Autores, 2011. 5.1.6. Diagrama de Casos de Uso: Administración de Publicaciones Figura 6: Administración de Publicaciones

Fuente: Autores, 2011.

Page 47: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

47

5.1.6.1. Descripción Casos de uso para la administración de publicaciones, en estos el usuario administrador atiende los reportes y reclamos entre los usuarios del sitio, y refleja su decisión sobre el artículo en cuestión. 5.1.6.2. Caso de Uso: Anular Oferta Tabla 14. Especificación Anular Oferta Nombre Anular Oferta ID 5 Descripción El administrador anula las ofertas hechas por los

compradores a los usuarios vendedores, en tres casos: • Solicitud del comprador • Solicitud del vendedor • Cierre de la publicación

Actores Resumen Cancelar las ofertas de los usuarios compradores.

Relaciones Asociaciones Include Extend • Caso de uso Listar Artículos Activos Generalización

Escenarios Flujo Básico de los Eventos

1. Lista las categorías existentes. 2. Ingresa el código del artículo en el buscador. 3. Lista los resultados. 4. Selecciona el artículo. 5. Muestra las opciones disponibles 6. Selecciona "cancelar ofertas". 7. Muestra las ofertas disponibles. 8. Selecciona la oferta y escribe la justificación. 9. Cancela la oferta al artículo.

Flujo Alternativo Fuente: Autores, 2011. 5.1.6.3. Caso de Uso: Atender Artículos Reportados Tabla 15. Especificación Atender Artículos Reportados Nombre Atender Artículos Reportados ID 2 Descripción El administrador consulta los reportes hechos sobre los

artículos y da solución a los reportes Actores • Usuario Administrador

Page 48: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

48

Tabla 15. (Continuación) Resumen Desplegar los artículos que han sido reportados por los

usuarios y dar solución a estos Relaciones

Asociaciones • Actor Usuario Administrador Include Extend Generalización

Escenarios Flujo Básico de los Eventos

1. Se accede a la sección “Artículos Reportados” 2. Se despliega lista de los artículos que han sido reportados. Para cada uno de ellos se despliega el usuario que reportó, el comentario dejado y la fecha y si ya fue resuelto o no. 3. Administrador selecciona un reporte y verifica la información suministrada, toma la acción apropiada y marca como solucionado el reporte 4. Se despliega el reporte como atendido

Flujo Alternativo Fuente: Autores, 2011. 5.1.6.4. Caso de Uso: Cerrar Artículo Irregular Tabla 16. Especificación Cerrar Artículo Irregular Nombre Cerrar Artículo Irregular ID 4 Descripción El usuario administrador cancela una publicación vigente de

un usuario según su criterio o un reporte de un usuario. Actores Resumen Permite cancelar una publicación del usuario

Relaciones Asociaciones Include Extend • Caso de uso Listar Artículos Activos Generalización

Escenarios Flujo Básico de los Eventos

1. El usuario selecciona la opción de cerrar artículo 2. Se despliega mensaje de confirmación sobre la acción 3. Usuario acepta la acción 4. La publicación se cierra y establece sin ganadores 5. Sistema despliega la página de usuario autenticado

Flujo Alternativo Fuente: Autores, 2011.

Page 49: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

49

5.1.6.5. Caso de Uso: Listar Artículos Activos Tabla 17. Especificación Listar Artículos Activos Nombre Listar Artículos Activos ID 3 Descripción Listar todos artículos activos actualmente en el sistema para

su gestión Actores • Usuario Administrador Resumen Despliega un listado de todos las artículos activos del

sistema Relaciones

Asociaciones • Actor Usuario Administrador Include Extend Generalización

Escenarios Flujo Básico de los Eventos

1. El administrador ingresa a la opción de Listar Publicaciones 2. El sistema despliega todos los artículos publicados

Flujo Alternativo 2.a. El usuario administrador desea cerrar un artículo 1. Extiende al caso de uso Cerrar Artículo

2.b. El usuario administrador desea anular oferta por un artículo

1. Extiende al caso de uso Anular Oferta Fuente: Autores, 2011. 5.1.6.6. Caso de Uso: Listar Reclamos Tabla 18. Especificación Listar Reclamos Nombre Listar Reclamos ID 6 Descripción Listar todos los reclamos activos del sistema para su

gestión Actores • Usuario Administrador Resumen Despliega un listado de los reclamos activos en el sistema

Relaciones Asociaciones • Actor Usuario Administrador Include Extend Generalización

Escenarios Flujo Básico de los Eventos

1. El administrador ingresa a la opción de Listar Reclamos

Page 50: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

50

Tabla 18. (Continuación) 2. El sistema despliega todos los reclamos activos del

sistema Flujo Alternativo 2.a. El usuario administrador desea resolver reclamo

1. Extiende al caso de uso Resolver Reclamo Fuente: Autores, 2011. 5.1.6.7. Caso de Uso: Resolver Reclamo Tabla 19. Especificación Resolver Reclamo Nombre Resolver Reclamo ID 1 Descripción Aplicar sobre a una venta la conclusión de una querella

entre clientes. Actores Resumen Resolver disputas entre usuarios.

Relaciones Asociaciones Include Extend • Caso de uso Listar Reclamos Generalización

Escenarios Flujo Básico de los Eventos

1. El administrador selecciona el caso a tomar. 2. Se listan las versiones de las partes disponibles. 3. El usuario selecciona la acción a tomar. 4. Se almacena la decisión tomada.

Flujo Alternativo Fuente: Autores, 2011. 5.1.7. Diagrama de Casos de Uso: Administración Usuarios Figura 7: Administración de Usuarios

Fuente: Autores, 2011.

Page 51: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

51

5.1.7.1. Descripción Casos de uso que muestran las actividades de administración que se pueden ejecutar sobre un usuario por parte del administrador. 5.1.7.2. Caso de Uso: Activar Usuario Tabla 20. Especificación Activar Usuario Nombre Activar Usuario ID 3 Descripción El administrador decide permitir el acceso de un usuario

nuevo o desactivado Actores Resumen Activar usuarios clientes del sistema.

Relaciones Asociaciones Include Extend • Caso de uso Listar Usuarios Generalización

Escenarios Flujo Básico de los Eventos

1. El administrador selecciona un usuario desactivado o nuevo. 2. Abre el perfil del usuario y despliega las opciones. 3. Selecciona activar usuario. 4. El sistema cambia el estado del usuario.

Flujo Alternativo Fuente: Autores, 2011. 5.1.7.3. Caso de Uso: Inactivar Usuario Tabla 21. Especificación Inactivar Usuario Nombre Inactivar Usuario ID 2 Descripción El administrador decide no permitir el acceso de un usuario. Actores Resumen Inactivar usuarios clientes del sistema.

Relaciones Asociaciones Include Extend • Caso de uso Listar Usuarios Generalización

Escenarios Flujo Básico de 1. El administrador selecciona un usuario.

Page 52: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

52

Tabla 21. (Continuación) los Eventos 2. Abre el perfil del usuario y despliega las opciones.

3. Selecciona suspender usuario 4. El sistema cambia el estado del usuario.

Flujo Alternativo Fuente: Autores, 2011. 5.1.7.4. Caso de Uso: Listar Usuarios Tabla 22. Especificación Listar Usuarios Nombre Listar Usuarios ID 1 Descripción Listar todos los usuarios del sistema para su gestión Actores • Usuario Administrador Resumen Despliega un listado de todos los usuarios del sistema

Relaciones Asociaciones • Actor Usuario Administrador Include Extend Generalización

Escenarios Flujo Básico de los Eventos

1. El administrador ingresa a la opción de Listar Usuarios 2. El sistema despliega todos los usuarios existentes

Flujo Alternativo 2.a. Administrador desea Activar Usuario 1. Extiende al caso de uso Activar Usuario

2.b. Administrador desea Inactivar Usuario 1. Extiende al caso de uso Inactivar Usuario

Fuente: Autores, 2011. 5.1.8. Diagrama de Casos de Uso: Gestión de Operaciones Figura 8: Gestión de Operaciones

Fuente: Autores, 2011.

Page 53: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

53

5.1.8.1. Descripción En estos casos de uso, se describe la interacción con el sistema entre el Comprador y Vendedor ya sea para dar calificaciones o crear reclamos a operaciones realizadas. 5.1.8.2. Caso de Uso: Calificar Comprador Tabla 23. Especificación Calificar Comprador Nombre Calificar Comprador ID 2 Descripción El usuario califica y deja un comentario Actores Resumen Permite calificar por parte del vendedor al comprado del

artículo vendido en la subasta Relaciones

Asociaciones Include • Caso de uso Dar Calificación Extend • Caso de uso Listar Artículos Vendidos Generalización

Escenarios Flujo Básico de los Eventos

1. Usuario vendedor selecciona una de las subastas 2. El usuario vendedor selecciona la opción de “Calificar Comprador”. ( Ir al caso de uso Dar Calificación)

Flujo Alternativo Fuente: Autores, 2011. 5.1.8.3. Caso de Uso: Calificar Vendedor Tabla 24. Especificación Calificar Vendedor Nombre Calificar Vendedor ID 5 Descripción El usuario califica y deja un comentario Actores Resumen Permite calificar por parte del comprador al vendedor del

artículo adquirido en la subasta Relaciones

Asociaciones Include • Caso de uso Dar Calificación Extend • Caso de uso Listar Artículos Comprados

• Caso de uso Listar Artículos Comprados Generalización

Escenarios Flujo Básico de 1. Usuario comprador selecciona una de las subastas

Page 54: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

54

Tabla 24. (Continuación) los Eventos 2. El usuario comprador selecciona la opción de “Calificar

vendedor” ( Ir al caso de uso Dar Calificación) Flujo Alternativo

Fuente: Autores, 2011. 5.1.8.4. Caso de Uso: Crear Reclamo Tabla 25. Especificación Crear Reclamo Nombre Crear Reclamo ID 6 Descripción Cuando la operación (de compra o venta) no fue realizada

de forma satisfactoria para el usuario, se permite expresar su inconformidad

Actores Resumen Permite expresar una inconformidad hacia una operación

realizada de compra o venta Relaciones

Asociaciones Include Extend • Caso de uso Listar Artículos Comprados

• Caso de uso Listar Artículos Vendidos Generalización

Escenarios Flujo Básico de los Eventos

1. El usuario comprador o el usuario vendedor selecciona un artículo del listado

2. Selecciona la opción Crear Reclamo 3. El sistema despliega la ventana de reclamos 4. Digita un texto expresando su inconformidad y selecciona aceptar 5. Se crea un nuevo registro de reclamo y se almacenan los cambios

Flujo Alternativo Fuente: Autores, 2011. 5.1.8.5. Caso de Uso: Dar Calificación Tabla 26. Especificación Dar Calificación Nombre Dar Calificación ID 4 Descripción Usuario asigna una puntuación que expresa en grado de

satisfacción de la operación de compra o venta Actores

Page 55: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

55

Tabla 26. (Continuación) Resumen Asignar calificación a usuario

Relaciones Asociaciones Include Extend Generalización

Escenarios Flujo Básico de los Eventos

1. Se solicita la calificación a otorgar (positiva, negativa o neutra) y la observación 2. Usuario vendedor o usuario vendedor selecciona la calificación, ingresa la observación y presiona aceptar 3. Se valida que los datos fueron ingresados completamente 4. Se almacena la calificación 5. Se despliega mensaje informando el éxito de la calificación

Flujo Alternativo Fuente: Autores, 2011. 5.1.8.6. Caso de Uso: Listar Artículos Comprados Tabla 27. Especificación Listar Artículos Comprados Nombre Listar Artículos Comprados ID 3 Descripción Permite al usuario visualizar un listado de todos los artículos

que ha comprado en toda su historia Actores • Usuario Comprador Resumen Desplegar el listado de todos los artículos que han sido

comprados por el usuario Relaciones

Asociaciones • Actor Usuario Comprador Include Extend Generalización

Escenarios Flujo Básico de los Eventos

1. El usuario comprador selecciona la opción de listar artículos comprados 2. El sistema despliega el historial de compras del usuario

Flujo Alternativo 2.a. El usuario comprador desea ingresar calificación para un artículo

1. Extiende al caso de uso Calificar Vendedor 2.b. El usuario comprador desea crear un reclamo para un artículo

1. Extiende al caso de uso Crear Reclamo Fuente: Autores, 2011.

Page 56: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

56

5.1.8.7. Caso de Uso: Listar Artículos Vendidos Tabla 28. Especificación Listar Artículos Vendidos Nombre Listar Artículos Vendidos ID 1 Descripción Permite al usuario visualizar un listado de todos los artículos

que ha vendido en toda su historia Actores • Usuario Vendedor Resumen Desplegar el listado de todos los artículos que han sido

vendidos por el usuario Relaciones

Asociaciones • Actor Usuario Vendedor Include Extend Generalización

Escenarios Flujo Básico de los Eventos

1. El usuario vendedor selecciona la opción de listar artículos vendidos 2. El sistema despliega el historial de ventas del usuario

Flujo Alternativo 2.a. El usuario vendedor desea ingresar calificación para un artículo

1. Extiende al caso de uso Calificar Comprador 2.b. El usuario vendedor desea crear un reclamo para un artículo

1. Extiende al caso de uso Crear Reclamo Fuente: Autores, 2011. 5.1.9. Diagrama de Casos de Uso: Gestión de Preguntas Figura 9: Gestión de Preguntas

Fuente: Autores, 2011.

Page 57: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

57

5.1.9.1. Descripción En estos casos de uso, se describe como el usuario vendedor puede gestionar, es decir visualizar y dar respuesta a preguntas que tiene sin responder. 5.1.9.2. Caso de Uso: Listar Preguntas Pendientes Tabla 29. Especificación Listar Preguntas Pendientes Nombre Listar Preguntas Pendientes ID 2 Descripción El usuario consulta el listado de las preguntas que le han

realizado sobre sus artículos en venta y que están en estado pendiente de respuesta

Actores • Usuario Vendedor Resumen Desplegar las preguntas que le han creado a un artículo en

venta del usuario y que está pendiente por responder Relaciones

Asociaciones • Actor Usuario Vendedor Include Extend Generalización

Escenarios Flujo Básico de los Eventos

1. Se accede a la sección de listar preguntas 2. Se despliega la lista de preguntas que han sido realizadas al usuario y no se han respondido aún

Flujo Alternativo 2.a. El usuario vendedor desea responder una pregunta 1. Extiende al caso de uso Responder Pregunta

Fuente: Autores, 2011. 5.1.9.3. Caso de Uso: Responder Pregunta Tabla 30. Especificación Responder Pregunta Nombre Responder Pregunta ID 1 Descripción El usuario selecciona la pregunta a responder e ingresa el

texto con la respuesta Actores Resumen Permite responder las preguntas hechas en los artículos

Relaciones Asociaciones Include Extend • Caso de uso Listar Preguntas Pendientes Generalización

Page 58: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

58

Tabla 30. (Continuación) Escenarios

Flujo Básico de los Eventos

1. El usuario vendedor selecciona la opción de responder preguntas 2. Se despliegan las preguntas que se han realizado al artículo y que no han sido respondidas 3. El usuario vendedor selecciona una de las preguntas realizadas 4. Se despliega campo solicitando el texto con la respuesta 5. Usuario vendedor ingresa el texto con la respuesta y presiona responder 6. Se almacena la respuesta a la pregunta 7. Se despliega la página del artículo

Flujo Alternativo Fuente: Autores, 2011. 5.1.10. Diagrama de Casos de Uso: Gestión Publicaciones Figura 10: Gestión de Publicaciones

Fuente: Autores, 2011. 5.1.10.1. Descripción En estos casos de uso, se describe como el usuario Vendedor puede gestionar sus artículos, entre las operaciones que puede realizar son Publicar y Cerrar Artículo.

Page 59: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

59

El comprador por su lado a partir de un Artículo puede: • Ofertar • Realizar seguimiento • Reportarlo • Realizar pregunta

5.1.10.2. Caso de Uso: Cerrar Artículo Tabla 31. Especificación Cerrar Artículo Nombre Cerrar Artículo ID 4 Descripción El usuario cancela una de sus publicaciones vigentes Actores Resumen Permite cancelar una publicación del usuario

Relaciones Asociaciones Include Extend • Caso de uso Listar Mis Artículos Generalización

Escenarios Flujo Básico de los Eventos

1. El usuario selecciona la opción de cerrar artículo 2. Se despliega mensaje de confirmación sobre la acción 3. Usuario acepta la acción 4. La publicación se cierra y establece ganadores en caso de existir 5. Sistema despliega la página de usuario autenticado

Flujo Alternativo Fuente: Autores, 2011. 5.1.10.3. Caso de Uso: Comprar Artículo Tabla 32. Especificación Comprar Artículo Nombre Comprar Artículo ID 3 Descripción Permite confirmar el proceso de compra de forma inmediata

por parte del usuario o automáticamente en el momento que una subasta se cierre con un ganador.

Actores • Usuario Comprador Resumen Confirma la adquisición por parte del usuario del artículo de

forma inmediata y registra la operación Relaciones

Asociaciones • Actor Usuario Comprador

Page 60: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

60

Tabla 32. (Continuación) Include Extend • Caso de uso Ofertar Generalización

Escenarios Flujo Básico de los Eventos

1. Usuario comprador realiza la acción de adquirir el artículo 2. El sistema crea una operación indicando la venta del artículo 3. El sistema notifica al vendedor la compra del artículo 4. El sistema notifica al comprador la adquisición del artículo

Flujo Alternativo Fuente: Autores, 2011. 5.1.10.4. Caso de Uso: Listar Mis Artículos Tabla 33. Especificación Listar Mis Artículos Nombre Listar Mis Artículos ID 2 Descripción El usuario registrado visualiza la información de las

subastas en las que está ofertando actualmente o los artículos publicados

Actores • Usuario Vendedor Resumen Mostrar al usuario registrado las subastas activas en las que

se está participando. Relaciones

Asociaciones • Actor Usuario Vendedor Include Extend Generalización

Escenarios Flujo Básico de los Eventos

1. Se accede al menú de Mis Artículos 2. Se despliega página con las subastas activas creadas por el usuario.

Flujo Alternativo 2.a. El usuario vendedor desea cerrar un artículo 1. Extiende al caso de uso Cerrar Artículo.

Fuente: Autores, 2011.

Page 61: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

61

5.1.10.5. Caso de Uso: Ofertar Tabla 34. Especificación Ofertar Nombre Ofertar ID 1 Descripción El usuario establece un valor a ofertar y genera su oferta

por el artículo Actores Resumen Permitir asentar una oferta por un valor al artículo que se

ofrece Relaciones

Asociaciones Include Extend • Caso de uso Ver Artículo Generalización

Escenarios Flujo Básico de los Eventos

1. El usuario comprador establece el valor por el que va a ofertar y presiona ofertar 2. Se despliega mensaje de confirmación sobre la acción 3. Usuario comprador acepta la acción 4. Se almacena información de la oferta del usuario 5. Se despliega mensaje informando que la oferta fue ingresada

Flujo Alternativo Fuente: Autores, 2011. 5.1.10.6. Caso de Uso: Publicar Artículo Tabla 35. Especificación Publicar Artículo Nombre Publicar Artículo ID 5 Descripción El usuario crea una nueva subasta ingresando los datos

solicitados Actores • Usuario Vendedor Resumen Permite publicar una nueva subasta de artículos

Relaciones Asociaciones • Actor Usuario Vendedor Include Extend Generalización

Escenarios Flujo Básico de los Eventos

1. El usuario vendedor selecciona Publicar

Page 62: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

62

Tabla 35. (Continuación) 2. Se despliega la siguiente solicitud de información para la

publicación: • Descripción del Artículo • Imagen del Artículo • Categoría • Fecha de cierre • Valor base • Condición (nuevo o usado) • Preferencias de pago • Garantía • Tipo de publicación (compra inmediata o subasta)

3. Se valida que la información ingresada se encuentre completa 4. Se despliega mensaje sobre si desea realizar la publicación 5. Usuario vendedor acepta la acción 6. Se almacena la información creando el artículo

Flujo Alternativo Fuente: Autores, 2011. 5.1.10.7. Caso de Uso: Realizar Pregunta Tabla 36. Especificación Realizar Pregunta Nombre Realizar Pregunta ID 6 Descripción El usuario ingresa pregunta al vendedor Actores Resumen Permite hacer pregunta al vendedor sobre el artículo

Relaciones Asociaciones Include Extend • Caso de uso Ver Artículo Generalización

Escenarios Flujo Básico de los Eventos

1. El usuario comprador selecciona la opción de Realizar Pregunta 2. Se despliega campo solicitando el texto con la pregunta a realizar 3. Usuario comprador ingresa el texto con la pregunta y presiona realizar pregunta 4. Se almacena la pregunta 5. Se despliega la página del artículo

Flujo Alternativo Fuente: Autores, 2011.

Page 63: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

63

5.1.10.8. Caso de Uso: Reportar Artículo Tabla 37. Especificación Reportar Artículo Nombre Reportar Artículo ID 7 Descripción El usuario registrado envía un reporte sobre un artículo al

sistema para que este pueda ser tomado en cuenta por los administradores

Actores Resumen Permitir reportar artículos que se consideren inadecuados

Relaciones Asociaciones Include Extend • Caso de uso Ver Artículo Generalización

Escenarios Flujo Básico de los Eventos

1. El usuario comprador selecciona la opción de reportar artículo 2. Se despliega página solicitando la observación sobre el reporte 3. Usuario comprador ingresa la observación y presiona aceptar 4. Se despliega mensaje de reporte enviado

Flujo Alternativo Fuente: Autores, 2011. 5.1.10.9. Caso de Uso: Seguir Artículo Tabla 38. Especificación Seguir Artículo Nombre Seguir Artículo ID 4 Descripción El usuario establece un artículo como de interés para hacer

seguimiento de este. Actores Resumen Permite hacer seguimiento a un artículo de interés

Relaciones Asociaciones Include Extend • Caso de uso Ver Artículo Generalización

Escenarios Flujo Básico de los Eventos

1. El usuario comprador selecciona a la opción de seguir artículo

Page 64: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

64

Tabla 38. (Continuación) 2. Se almacena información sobre seguimiento del artículo

por el usuario 3. Usuario comprador ingresa a la opción de Identificarse 4. Se despliega mensaje informando que el seguimiento se ingresó con éxito

Flujo Alternativo Fuente: Autores, 2011. 5.1.10.10. Caso de Uso: Ver Artículo Tabla 39. Especificación Ver Artículo Nombre Ver Artículo ID 2 Descripción El usuario selecciona un artículo para realizar Actores • Usuario Comprador Resumen Permitir desplegar la información de un artículo

seleccionado Relaciones

Asociaciones • Actor Usuario Comprador Include Extend • Caso de uso Buscar Artículo

• Caso de uso Explorar Categorías Generalización

Escenarios Flujo Básico de los Eventos

1. El usuario comprador selecciona un artículo 2. Se despliega la siguiente información relacionada al artículo de la publicación de la subasta:

• Descripción del artículo • Imagen del artículo • Información básica del Vendedor • Preguntas y respuestas • Categoría • Fecha de inicio • Fecha de cierre • Valor actual • Condición (nuevo o usado) • Preferencias de pago • Garantía

Flujo Alternativo 2.a. El usuario comprador desea realizar pregunta al vendedor

1. Extiende al caso de uso Realizar Pregunta

Page 65: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

65

Tabla 39. (Continuación) 2.b. El usuario comprador desea reportar el artículo como

inadecuado o que es ofensivo 1. Extiende al caso de uso Reportar Artículo

2.c. El usuario comprador desea realizar seguimiento a un artículo de su interés

1. Extiende al caso de uso Seguir Artículo 2.d. El usuario comprador desea ingresar oferta por un artículo

1. Extiende al caso de uso Ofertar Fuente: Autores, 2011. 5.1.11. Diagrama de Casos de Uso: Gestión Sesión Figura 11: Gestión de Sesión

Fuente: Autores, 2011. 5.1.11.1. Descripción Grupo de casos de uso que ilustra las actividades posibles por parte de los actores en el sitio web respecto a su identificación en el mismo. 5.1.11.2. Caso de Uso: Cerrar Sesión Tabla 40. Especificación Cerrar Sesión Nombre Cerrar Sesión ID 1 Descripción El usuario registrado concluye su interacción como usuario

registrado egresando del sistema. Actores • Usuario Administrador

• Usuario Comprador • Usuario Vendedor

Resumen Salir de manera segura del sistema.

Page 66: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

66

Tabla 40. (Continuación) Relaciones

Asociaciones • Actor Usuario Administrador • Actor Usuario Comprador • Actor Usuario Vendedor

Include Extend Generalización

Escenarios Flujo Básico de los Eventos

1. Da clic sobre el botón salir. 2. Muestra la pantalla principal

Flujo Alternativo Fuente: Autores, 2011. 5.1.11.3. Caso de Uso: Identificarse Tabla 41. Especificación Identificarse Nombre Identificarse ID 4 Descripción El usuario visita la página del sitio web y se autentica en el

mismo. Actores • Visitante Resumen Validar la identidad del usuario

Relaciones Asociaciones • Actor Visitante Include Extend Generalización

Escenarios Flujo Básico de los Eventos

1. El usuario digita la dirección del sitio en el navegador 2. El navegador despliega la página principal 3. Usuario ingresa a la opción de Identificarse 4. El navegador despliega la página de identificación, donde pide usuario y contraseña 5. Usuario digita su usuario y contraseña 6. El sistema corrobora la veracidad de la información 7. Sistema despliega la página de usuario autenticado

Flujo Alternativo 6.a. El usuario erró en la digitación de sus datos de acceso. 1. Sistema solicita de nuevo los datos

Fuente: Autores, 2011.

Page 67: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

67

5.1.11.4. Caso de Uso: Recuperar Clave Tabla 42. Especificación Recuperar Clave Nombre Recuperar Clave ID 3 Descripción El usuario solicita una nueva clave para acceso al sistema

como usuario registrado Actores • Visitante Resumen Obtener una nueva clave para acceso al sistema como

usuario registrado Relaciones

Asociaciones • Actor Visitante Include Extend Generalización

Escenarios Flujo Básico de los Eventos

1. Se despliega página solicitando el correo o acceso 2. Se ingresan datos solicitados 3. El sistema corrobora el ingreso de la información 4. Se muestra mensaje de que la nueva clave ha sido enviada al correo electrónico

Flujo Alternativo 3.a. No se ingresaron los datos solicitados 1. Sistema solicita de nuevo los datos

Fuente: Autores, 2011. 5.1.11.5. Caso de Uso: Registrarse Tabla 43. Especificación Registrarse Nombre Registrarse ID 2 Descripción El usuario visita la página del sitio web y solicita una cuenta

de acceso como usuario registrado Actores • Visitante Resumen Obtener una cuenta de usuario registrado en el sistema

Relaciones Asociaciones • Actor Visitante Include Extend • Caso de uso Identificarse Generalización

Escenarios Flujo Básico de los Eventos

1. Usuario ingresa a la opción de registrarse

Page 68: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

68

Tabla 43. (Continuación) 2. Se despliega la página de registro solicitando datos del

usuario. • Datos de Acceso (Usuario, Contraseña) • Datos personales (Nombre, Apellido, Cédula) • Datos de Ubicación (País, Departamento/Estado,

Ciudad, Dirección) • Datos de Contacto (Correo Electrónico, Teléfono,

Celular) 3. Usuario ingresa datos solicitados 4. Se corrobora información 5. Se despliega mensaje de confirmación de datos almacenados 6. Se envía correo electrónico de confirmación 7. Se despliega página de identificarse

Flujo Alternativo 4.a. Los datos no fueron validados correctamente 1. Se despliega mensaje sobre inconsistencias en los

datos ingresados Fuente: Autores, 2011. 5.1.12. Diagrama de Casos de Uso: Visualización Publicaciones Figura 12: Visualización Publicaciones

Fuente: Autores, 2011. 5.1.12.1. Descripción En estos casos de uso, se describe la interacción con el sistema por parte de un usuario Visitante, en los cuales este puede Consultar reputación de un vendedor o realizar búsqueda de un artículo de su interés.

Page 69: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

69

5.1.12.2. Caso de Uso: Buscar Artículo Tabla 44. Especificación Buscar Artículo Nombre Buscar Artículo ID 3 Descripción El usuario busca artículos de interés a través del buscador Actores • Visitante Resumen Permitir buscar un artículo a través de unos filtros

Relaciones Asociaciones • Actor Visitante Include Extend Generalización

Escenarios Flujo Básico de los Eventos

1. El usuario ingresa a la opción de Buscar 2. Se despliegan los siguientes campos que permiten filtrar:

• Descripción del Articulo • Vendedor • Categoría • Rango de Precios

3. Usuario ingresa los datos con los que desea buscar y presiona botón buscar 4. Se despliegan los artículos que fueron encontrados

Flujo Alternativo Fuente: Autores, 2011. 5.1.12.3. Caso de Uso: Consultar Reputación Vendedor Tabla 45. Especificación Consultar Reputación Vendedor Nombre Consultar Reputación Vendedor ID 1 Descripción El usuario consulta los detalles de la reputación del

vendedor del articulo Actores • Visitante Resumen Permitir informar al interesado sobre las transacciones

completadas por el usuario y las calificaciones y comentarios dados por los usuarios con los que concretó negocio

Relaciones Asociaciones • Actor Visitante Include Extend • Caso de uso Ver Artículo Generalización

Page 70: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

70

Tabla 45. (Continuación) Escenarios

Flujo Básico de los Eventos

1. El usuario selecciona la opción de ver reputación 2. Se despliegan las calificaciones y cometarios dados al vendedor del articulo

Flujo Alternativo Fuente: Autores, 2011. 5.1.12.4. Caso de Uso: Explorar Categorías Tabla 46. Especificación Explorar Categorías Nombre Explorar Categorías ID 2 Descripción El usuario despliega las categorías y navega entre ellas Actores • Visitante Resumen Permitir explorar diferentes las categorías en las que se

encuentran las publicaciones de los artículos Relaciones

Asociaciones • Actor Visitante Include Extend Generalización

Escenarios Flujo Básico de los Eventos

1. El usuario accede a Explorar categorías 2. Se despliegan las categorías configuradas en el sistema 3. Usuario ingresa a una de las categorías 4. Se despliegan las subastas que se encuentran en la categoría

Flujo Alternativo Fuente: Autores, 2011. 5.2. ANÁLISIS REQUERIMIENTOS NO FUNCIONALES 5.2.1. Seguridad Si bien la seguridad de Joomla! ha sido cuestionada en el medio de su especialidad17, es necesario diferenciar las vulnerabilidades que tiene la plataforma de las vulnerabilidades que implica una instalación del CMS sin buenas prácticas de seguridad, malas prácticas de desarrollo por partes de terceros y deficiente mantenimiento a los sitios.

17 Ramos, Alejandro. SecurityByDefault. SecurityByDefault: Comparativa de Seguridad Joomla, Wordpress, Drupal y Movable Type. [En línea] [Citado el: 10 de Enero de 2011.] http://www.somoslibres.org/modules.php?name=News&file=article&sid=3606.

Page 71: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

71

Sobresalen los esfuerzos por parte de los desarrolladores de la plataforma por corregir el estigma provocado en versiones previas, realizando actualizaciones frecuentes a la misma.18 En el anexo A, se hacen algunas recomendaciones para contar con una plataforma segura. La encriptación de códigos de acceso es un estándar de Joomla! y se realiza con el algoritmo MD5 de encriptación. Respecto a la segregación de usuarios; Joomla! limita el acceso por defecto entre administradores y usuarios del sitio. 5.2.2. Privacidad Los datos personales de los compradores y vendedores se deben exhibir limitadamente a sus contrapartes en una transacción. En una eventual compra/venta se enviarán los datos restantes a las partes por correo electrónico. 5.2.3. Compatibilidad Debido a que se usó el patrón MVC y se conservó la estructura de archivos con código según la documentación de Joomla! 1.5.X se considera compatible la aplicación con esta versión de la plataforma. 5.2.4. Auto-instalación Joomla! cuenta con un aplicativo interno para instalación de sus extensiones, para esto es necesario escribir dos archivos en el lenguaje de marcas extendido o XML según la estructura propuesta por ellos para este menester.19 Uno con la instalación la extensión y otro con la instalación de los archivos de los módulos que complementan la extensión. 5.2.5. Estandarización Se usó el patrón de diseño MVC según la documentación de Joomla! 1.5.X. Con el propósito de seguir el esquema de desarrollo propuesto por los propietarios del código. 5.2.6. Reutilización de código de VIRTUEMART Durante la etapa previa a la ejecución del proyecto se contempló la reutilización del código fuente de la extensión Virtuemart; sin embargo no se realizó tal actividad gracias a que Virtuemart probablemente al venir de una plataforma previa a Joomla! llamada Mambo no cumplía con la estructura actual del CMS ni del patrón MVC. 18 Open Source Matters, Inc. Security News. Joomla! Developer Network. [En línea] [Citado el: 08 de Enero de 2011.] http://developer.joomla.org/security/news.html. 19 Open Source Matters, Inc. Joomla! Documentation. Components:xml installfile. [En línea] [Citado el: 6 de Febrero de 2011.] http://docs.joomla.org/Components:xml_installfile.

Page 72: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

72

6. ESTRUCTURA DE JOOMLA! 6.1. ESTRUCTURA La estructura de Joomla! está dividida en tres capas, la capa framework como tal (paquetes y clases), plugins y librerías que se usarán en las capas superiores. Sobre la anterior, se encuentra la capa de aplicación la cual contiene las aplicaciones que ejecutan todo el administrador de contenidos, tanto como el “front-end” (parte cliente) como del “back-end” (administración) así como la instalación del sistema. Finalmente sobre las dos anteriores se encuentra la capa de extensión, donde se ubican los componentes, módulos y plantillas. Figura 13: Estructura del sistema Joomla!

Fuente: Documentación Joomla!, 2011.20 6.2. PATRON MVC MVC (Modelo Vista Controlador) es un patrón de diseño que puede usarse para organizar el código de tal manera que la lógica del negocio y la presentación de datos estén separados. La premisa detrás de este patrón es que la lógica esté agrupada en una sección, luego la interfaz y la interacción que rodean los datos puedan ser revisados y modificados sin alterar la lógica del negocio.21 6.2.1. Modelo El modelo es la parte del componente que encapsula los datos de la aplicación. A menudo proveerá rutinas para manejar y manipular la información, recuperar la información, agregar, remover o actualizar información en la base de datos.22 20Open Source Matters, Inc. Joomla! Documentation. Framework. [En línea] [Citado el: 2011 de Enero de 08.] http://docs.joomla.org/Framework. 21Open Source Matters, Inc. Joomla! Documentation. Developing a Model-View-Controller Component - Part 1. [En línea] [Citado el: 2011 de Enero de 08.] http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_1. 22Ibíd.

Page 73: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

73

6.2.2. Vista La vista es la parte del componente que se usa para mostrar la información del modelo de manera adecuada para su interacción con el usuario.23 6.2.3. Controlador El controlador es responsable de las acciones del usuario. Este básicamente ejecutará las acciones programadas en el modelo para que la vista las muestre al usuario.24 Figura 14: Modelo Vista Controlador

Fuente: Documentación Joomla!, 2011.25 6.1. EJES DE TRABAJO Un sitio web implementado en Joomla! cuenta con tres ejes de trabajo; el primero la unidad técnica la cual abarca la configuración del sitio y sus componentes, la segunda es la estructura usuaria, la cual se divide en dos; el “front-end” y el “back-end”, o parte administrativa y parte usuaria, esta estructura y sus componentes se dividen en roles de usuarios, los cuales segregan a los mismos según su nivel de acceso y privilegios del sistema. La última es la estructura de contenidos la cual organiza el contenido o información del sitio.26

23Ibíd. 24Ibíd. 25Ibíd. 26Laboratorio de Desarrollo, Investigación e Implementación Tecnológica de la Facultad de Arquitectura y Urbanismo de la Universidad de Chile. Plataforma CNC. Estructura General Plataforma web joomla. [En línea] [Citado el: 2011 de Enero de 08.] http://plataformacnc.uchilefau.cl/index.php/proyectos/plataforma-cnc/122-estructura-general-plataforma-web-joomla.

Page 74: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

74

Figura 15: Estructura General Plataforma Web Joomla!

Fuente: Documentación Joomla!, 2011.27

27Ibíd.

Page 75: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

75

7. DISEÑO DE LA EXTENSIÓN 7.1. DIAGRAMA DE CONTENIDO El diagrama de contenido tiene por propósito mostrar las relaciones entre las entidades del sistema, en este se ha diferenciado entre las entidades del núcleo de Joomla! y las que pertenecen a la extensión cambiando su color. Figura 16: Diagrama de Contenido

Fuente: Autores, 2011.

Page 76: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

76

7.1.1. Descripción El modelo muestra la relación entre las entidades del sistema de subastas, pudiéndose destacar la importancia de la entidad usuario y la entidad artículo, que son eje central del proceso. Las entidades que no se encuentran ligadas a otras son aquellas que se utilizarán como datos de configuración y no son directamente responsables del objetivo principal, sin embargo es importante su presencia para el desarrollo del sitio. En la necesidad de manejar información de usuarios del sistema, se establece la entidad Usuario la cual:

• Hereda de Joomla! User, es parte del módulo principal del CMS, la cual permite la autenticación en todo el sistema

• Establece la relación con el módulo de contactos de Joomla! acá representada como Detalles de usuario

• Permite acceder a la reputación, ver caso de uso Dar Calificación con ID 4 el cual es parte de Gestión de Operaciones

De este modo se cubrirían los casos de uso representados en el Diagrama de Casos de Uso: Gestión Sesión, ya que la autenticación y registro es asumida por Joomla!, también permite al Administrador realizar las actividades señaladas en el Diagrama de Casos de Uso: Administración Usuarios. Las Categorías se establecen para agrupar artículos con similares, de esta forma al momento que un usuario vendedor publique un Artículo, este pueda ser asociado a estos agrupadores, se modela la entidad Categoría, que se puede evidenciar en los casos de uso de Administración de Categorías. Dentro de una categoría pueden existir Artículos, cada uno de estos puede tener:

• Operaciones: o Permite el control de las operaciones sobre el artículo o Ver caso de uso “Comprar Artículo” con ID 3 el cual es parte Gestión

de Publicaciones o Ver caso de uso “Anular Operación” con ID 1 el cual es parte

Administración de Operaciones • Ofertas:

o Permitir asentar una oferta por un valor al artículo que se ofrece o Ver caso de uso “Ofertar” con ID 1 el cual es parte de Gestión

Publicaciones o Ver caso de uso “Anular Oferta” con ID 1 el cual es parte de Gestión

Publicaciones

Page 77: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

77

• Seguidos: o Permite hacer seguimiento a un artículo de interés o Ver caso de uso “Seguir Artículo” con ID 4 el cual es parte de

Gestión Publicaciones • Preguntas:

o Permite hacer preguntas y obtener respuestas sobre el artículo o Ver caso de uso “Realizar Pregunta” con ID 6 el cual es parte

Gestión Publicaciones o Ver caso de uso “Responder Pregunta” con ID 1 el cual es parte

Gestión Preguntas • Reportes:

o Permite reportar artículos que se consideren inadecuados o Ver caso de uso “Reportar Artículo” con ID 7 el cual es parte de

“Gestión Publicaciones” Las entidades que se encuentran sin relaciones, se pueden abstraer de lo requerido en los casos de uso de Administración de Módulo. 7.2. DIAGRAMAS DE NAVEGACIÓN Estos tienen por cometido ilustrar los vínculos lógicos y de navegación entre clases, menús, índices y clases de proceso. 7.2.1. BackEnd Categoría Figura 17: BackEnd Categoría

Fuente: Autores, 2011.

Page 78: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

78

7.2.1.1. Descripción En el modelo, se encuentra la navegabilidad desde el menú principal “Auction It! Menu” a la Categoría y a partir de esta al índice para “Gestión de Categorías” en donde se ejecutan los procesos que se pueden llevar a cabo a un categoría. 7.2.2. BackEnd General Figura 18: BackEnd General

Fuente: Autores, 2011. 7.2.2.1. Descripción En la figura 18 se aprecia la navegabilidad en general a partir del menú principal de Auction It! en el BackEnd del sistema para elementos no agrupados en subconjuntos. 7.2.3. BackEnd Oferta Figura 19: BackEnd Oferta

Fuente: Autores, 2011.

Page 79: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

79

7.2.3.1. Descripción En el modelo, se encuentra la navegabilidad a partir de un Artículo, en donde se puede acceder a la oferta y de allí ejecutar el proceso de “Anular Oferta”. 7.2.4. BackEnd Operación Figura 20: BackEnd Operación

Fuente: Autores, 2011. 7.2.4.1. Descripción En la figura 20 se puede apreciar cómo se pueden llegar a ejecutar los procesos de “Anular Operación” y de “Cambiar Calificación” a través de la clase de navegación “Operación”. 7.2.5. BackEnd Parametrización Campos Publicación Figura 21: BackEnd Parametrización Campos Publicación

Fuente: Autores, 2011.

Page 80: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

80

7.2.5.1. Descripción En la figura 21 se puede apreciar que la gestión de los campos en un publicación se realiza a través de los procesos “Publicar” y “Despublicar” que son accedidos desde el menú “Parametrizar Módulo” por medio de los “Campos Publicación”. 7.2.6. BackEnd Parametrización Campos Usuario Figura 22: BackEnd Parametrización Campos Usuario

Fuente: Autores, 2011. 7.2.6.1. Descripción Como parte de la parametrización del módulo se pueden publicar y despublicar campos de usuario. 7.2.7. BackEnd Parametrización Métodos Pago Figura 23: BackEnd Parametrización Métodos Pago

Fuente: Autores, 2011.

Page 81: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

81

7.2.7.1. Descripción Como parte de la parametrización del módulo se encuentra la configuración de los métodos de pago, permitiendo la publicación, despublicación, adición y eliminación de métodos. 7.2.8. BackEnd Parametrización Regional Figura 24: BackEnd Parametrización Regional

Fuente: Autores, 2011. 7.2.8.1. Descripción Parte de la parametrización del módulo se puede realizar a través de la configuración regional cuyo proceso es guardarla. 7.2.9. BackEnd Reclamo Figura 25: BackEnd Reclamo

Fuente: Autores, 2011.

Page 82: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

82

7.2.9.1. Descripción A partir del menú principal “Auction It! Menu” se puede acceder a la lista de reclamos y se puede realizar la acción que se considere pertinente. 7.2.10. BackEnd Reporte Figura 26: BackEnd Reporte

Fuente: Autores, 2011. 7.2.10.1. Descripción A partir del menú principal “Auction It! Menu” se puede acceder a la lista de artículos que se encuentran reportados y realizar sobre estos la acción que se considere pertinente. 7.2.11. FrontEnd Buscar Artículo Figura 27: FrontEnd Buscar Artículo

Fuente: Autores, 2011.

Page 83: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

83

7.2.11.1. Descripción A través del menú principal se pueden realizar búsquedas de artículos y poder acceder a la información de un artículo específico. 7.2.12. FrontEnd Calificar Figura 28: FrontEnd Calificar

Fuente: Autores, 2011. 7.2.12.1. Descripción Desde el “Menú Principal”, se puede acceder a la información de los artículos que han sido objeto de transacción, es decir los artículos vendidos o los comprados, a partir de estos se puede realizar la calificación del otro usuario con el que se realizó la operación, generando así reputación. 7.2.13. FrontEnd General Figura 29: FrontEnd General

Fuente: Autores, 2011.

Page 84: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

84

7.2.13.1. Descripción Se muestra la navegabilidad desde el núcleo de Joomla! al menú principal de la extensión hasta el artículo, y desde una categoría hasta el articulo nuevamente. 7.2.14. FrontEnd Lista Categorías Figura 30: FrontEnd Lista Categorías

Fuente: Autores, 2011. 7.2.14.1. Descripción En la página principal de Joomla! se pueden acceder a las categorías y así desplegar los artículos que esta contenga. 7.2.15. FrontEnd Mis Artículos Figura 31: FrontEnd Mis Artículos

Fuente: Autores, 2011.

Page 85: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

85

7.2.15.1. Descripción El “Menú Principal” provee acceso a la sección “Mis Artículos” y desde allí se podrán cerrar artículos que el usuario vendedor tenga publicados. 7.2.16. FrontEnd Operación Artículo Figura 32: FrontEnd Operación Artículo

Fuente: Autores, 2011. 7.2.16.1. Descripción En la figura 32 se ilustran los vínculos de navegación entre el artículo y el paquete de operaciones del artículo; Las oferta en subastas, compra de artículos, publicación de nuevos artículos desde el “Menú Principal” y las posibles actividades post-operación.

Page 86: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

86

7.2.17. FrontEnd Preguntas Figura 33: FrontEnd Preguntas

Fuente: Autores, 2011. 7.2.17.1. Descripción Desde el “Menú Principal” el usuario vendedor puede navegar a las preguntas pendientes por responder y allí realizar la actividad de dar respuesta a estas. Y desde los “Artículos” el usuario comprador puede realizar la acción de preguntar al vendedor. 7.2.18. FrontEnd Usuarios Figura 34: FrontEnd Usuarios

Fuente: Autores, 2011.

Page 87: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

87

7.2.18.1. Descripción Un usuario no registrado puede realizar su alta en el sistema, es decir registrarse en el sistema para ser reconocido dentro de este y poder vender y comprar artículos. Esta acción la puede realizar accediendo al “Menú Principal”. El proceso generará un nuevo usuario en el sistema y creará los detalles adicionales de este. 7.3. DIAGRAMAS DE PRESENTACIÓN El propósito de estos diagramas es dar una idea de la presentación o apariencia que tendrá el aplicativo. 7.3.1. BackEnd Cambiar Calificación Figura 35: BackEnd Cambiar Calificación

Fuente: Autores, 2011. 7.3.1.1. Descripción En la figura 35 se aprecia la composición de la interfaz que permite al administrador el cambio de una calificación otorgada a un usuario.

Page 88: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

88

7.3.2. BackEnd Campos de Usuario Figura 36: BackEnd Campos de Usuario

Fuente: Autores, 2011. 7.3.2.1. Descripción En la figura 36 se aprecia la composición de la interfaz que permite al administrador mostrar u ocultar los campos que se solicitarán en el registro de los usuarios. 7.3.3. BackEnd Campos Publicación Figura 37: BackEnd Campos Publicación

Fuente: Autores, 2011. 7.3.3.1. Descripción En la figura 37 se aprecia la composición de la interfaz que permite al administrador mostrar u ocultar los campos que se solicitarán en la creación de los artículos por parte de los usuarios vendedores.

Page 89: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

89

7.3.4. BackEnd Configuración Regional Figura 38: BackEnd Configuración Regional

Fuente: Autores, 2011. 7.3.4.1. Descripción En la figura 38 se aprecia la composición de la interfaz que permite al administrador realizar cambios a la zona horaria, país, formato de moneda, crear departamentos y ciudades. 7.3.5. BackEnd Editar Categoría Figura 39: BackEnd Editar Categoría

Fuente: Autores, 2011. 7.3.5.1. Descripción En la figura 39 se aprecia la composición de la interfaz que permite al administrador la creación y eliminación de categorías que agruparán los artículos.

Page 90: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

90

7.3.6. BackEnd Editar Método de Pago Figura 40: BackEnd Editar Método de Pago

Fuente: Autores, 2011. 7.3.6.1. Descripción Representación de los elementos que se encontrarían en la forma de edición de un método de pago usado en el sistema. 7.3.7. BackEnd Gestión Categorías Figura 41: BackEnd Gestión Categorías

Fuente: Autores, 2011.

Page 91: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

91

7.3.7.1. Descripción En la figura 41 se muestran los elementos gráficos que acompañan el gestor de categorías, en este se ven los botones de añadir, eliminar, publicar y despublicar, en la parte inferior se deben desplegar las categorías existentes. 7.3.8. BackEnd Listar Operaciones Figura 42: BackEnd Listar Operaciones

Fuente: Autores, 2011. 7.3.8.1. Descripción En la figura 42 se aprecia la composición de la interfaz que permite al administrador anular operaciones realizadas por los usuarios compradores al ofertar por artículos, además a partir de este se puede acceder a “Cambiar Calificación” (ver BackEnd “Cambiar Calificación”) 7.3.9. BackEnd Listar Publicaciones Figura 43: BackEnd Listar Publicaciones

Fuente: Autores, 2011.

Page 92: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

92

7.3.9.1. Descripción En la figura 43 se aprecia la composición de la interfaz que permite al administrador la visualización de los artículos, permitiendo también el cierre o la anulación de los mismos. 7.3.10. BackEnd Menú Principal Figura 44: BackEnd Menú Principal

Fuente: Autores, 2011. 7.3.10.1. Descripción En la figura 44 se aprecia la composición de la interfaz principal donde se despliegan todas las opciones disponibles para el administrador las cuales serán detalladas posteriormente.

Page 93: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

93

7.3.11. BackEnd Métodos de Pago Figura 45: BackEnd Métodos de Pago

Fuente: Autores, 2011. 7.3.11.1. Descripción En la figura 45 se aprecia la composición de la interfaz que permite al administrador la administración de las opciones desplegadas como forma de pago para las ventas, permitiendo añadir, eliminar, mostrar u ocultarlas. 7.3.12. BackEnd Trámite Reclamos Figura 46: BackEnd Trámite Reclamos

Fuente: Autores, 2011.

Page 94: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

94

7.3.12.1. Descripción En la figura 46 se aprecia la composición de la interfaz que permite al administrador visualizar los reclamos realizados por parte de los usuarios, para que pueda tomar una acción al respecto teniendo en cuenta las versiones de las partes involucradas, y posteriormente finalizarlos. 7.3.13. BackEnd Trámite Reportes Figura 47: BackEnd Trámite Reportes

Fuente: Autores, 2011. 7.3.13.1. Descripción En la figura 47 se aprecia la composición de la interfaz que permite al administrador ver los artículos que han sido reportados por los usuarios para que este pueda tomar la acción apropiada y atenderlos. 7.3.14. FrontEnd Edición Registro Figura 48: FrontEnd Edición Registro

Fuente: Autores, 2011.

Page 95: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

95

7.3.14.1. Descripción En la figura 48 se aprecia la composición de la interfaz que permite a un usuario visitante registrarse en el sistema, para esto debe diligenciar los campos solicitados. 7.3.15. FrontEnd Editar Artículo Figura 49: FrontEnd Editar Artículo

Fuente: Autores, 2011. 7.3.15.1. Descripción En la figura 49 se aprecia la composición de la interfaz que permite a un usuario vendedor publicar o editar un artículo, al diligenciar los datos requeridos. 7.3.16. FrontEnd Iniciar Reclamación Figura 50: FrontEnd Iniciar Reclamación

Fuente: Autores, 2011.

Page 96: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

96

7.3.16.1. Descripción En la figura 50 se aprecia la composición de la interfaz que permite a un usuario vendedor y comprador poder diligenciar una reclamación a una operación sobre un artículo. 7.3.17. FrontEnd Listar Artículos Figura 51: FrontEnd Listar Artículos

Fuente: Autores, 2011. 7.3.17.1. Descripción En la figura 51 se aprecia la composición de la interfaz que permite a un usuario comprador y vendedor listar los Artículos que se encuentran publicados en el sistema, además de la información referente a este. 7.3.18. FrontEnd Listar Mis Artículos Figura 52: FrontEnd Listar Mis Artículos

Fuente: Autores, 2011. 7.3.18.1. Descripción En la figura 52 se aprecia la composición de la interfaz que permite a un usuario vendedor, listar los artículos que tiene publicados y realizar operaciones sobre este.

Page 97: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

97

7.3.19. FrontEnd Listar Preguntas Pendientes Figura 53: FrontEnd Listar Preguntas Pendientes

Fuente: Autores, 2011. 7.3.19.1. Descripción En la figura 53 se aprecia la composición de la interfaz que permite a un usuario vendedor responder las preguntas que tiene pendientes sin dar solución. 7.3.20. FrontEnd Mis Compras Figura 54: FrontEnd Mis Compras

Fuente: Autores, 2011. 7.3.20.1. Descripción En la figura 54 se aprecia la composición de la interfaz que permite a un usuario comprador listar las compras de artículos que ha realizado y poder dar calificación por la compra del artículo a un usuario vendedor.

Page 98: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

98

7.3.21. FrontEnd Mis Ventas Figura 55: FrontEnd Mis Ventas

Fuente: Autores, 2011. 7.3.21.1. Descripción En la figura 55 se aprecia la composición de la interfaz que permite a un usuario vendedor listar los artículos vendidos y poder dar calificación por la venta del artículo a un usuario comprador. 7.3.22. FrontEnd Presentación Artículo Figura 56: FrontEnd Presentación Artículo

Fuente: Autores, 2011.

Page 99: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

99

7.3.22.1. Descripción En la figura 56 se aprecia la interfaz que desplegaría la información referente al artículo que se encuentra publicado. 7.3.23. FrontEnd Página Principal Figura 57: FrontEnd Página Principal

Fuente: Autores, 2011. 7.3.23.1. Descripción En la figura 57 se aprecia la composición de la interfaz principal del FrontEnd donde se despliegan todas las opciones disponibles para los usuarios las cuales serán detalladas posteriormente. 7.3.24. FrontEnd Reportar Artículo Figura 58: FrontEnd Reportar Artículo

Fuente: Autores, 2011.

Page 100: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

100

7.3.24.1. Descripción En la figura 58 se aprecia la composición de la interfaz que permite al usuario comprador realizar el reporte de un artículo inadecuado. 7.3.25. FrontEnd Reputación Usuario Figura 59: FrontEnd Reputación Usuario

Fuente: Autores, 2011. 7.3.25.1. Descripción En la figura 59 se aprecia la composición de la interfaz que permite al usuario visitante consultar la reputación que tiene un usuario del sistema. 7.4. DIAGRAMAS DE PROCESOS Estos están graficados como flujos que pueden tomar los datos, acciones de usuario y condiciones que se encuentran desde el inicio de un proceso hasta su culminación. El diagrama de las clases de proceso se subdivide en dos partes para el BackEnd. El detalle de las clases de proceso se realizará posteriormente con diagramas de flujo, dando así mayor claridad a los mismos.

Page 101: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

101

7.4.1. Diagrama de Estructura de Procesos BackEnd Parte 1 Figura 60: Diagrama de Estructura de Procesos BackEnd Parte 1

Fuente: Autores, 2011. 7.4.1.1. Descripción En la parte 1 del diagrama (Figura 60) se presentan los procesos que intervienen con el administrador en relación con los artículos y sus operaciones. 7.4.2. Diagrama de Estructura de Procesos BackEnd Parte 2 Figura 61: Diagrama de Estructura de Procesos BackEnd Parte 2

Fuente: Autores, 2011.

Page 102: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

102

7.4.2.1. Descripción Las Clases de Proceso relacionadas a la configuración que puede realizar el administrador en el BackEnd del sistema. 7.4.3. Diagrama de Estructura de Procesos FrontEnd Figura 62: Diagrama de Estructura de Procesos FrontEnd

Fuente: Autores, 2011.

Page 103: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

103

7.4.3.1. Descripción En el diagrama (Figura 62) se encuentra la interacción de las clases de proceso que intervienen en el FrontEnd y que pueden ser ejecutadas por los usuarios vendedor y comprador. 7.4.4. Anular Oferta Workflow Figura 63: Anular Oferta Workflow

Fuente: Autores, 2011. 7.4.4.1. Descripción En la figura 63 se aprecia el proceso de anular una oferta, en donde se pide una confirmación al usuario, si este acepta se anula la oferta, y si el proceso de anulación fue satisfactorio termina. 7.4.5. Anular Operación Workflow Figura 64: Anular Operación Workflow

Fuente: Autores, 2011. 7.4.5.1. Descripción En la figura 64 se aprecia el proceso de anular una operación, en donde se pide una confirmación al usuario, si este acepta se anula la operación y si el proceso de anulación fue satisfactorio termina.

Page 104: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

104

7.4.6. Añadir Categoría Workflow Figura 65: Añadir Categoría Workflow

Fuente: Autores, 2011. 7.4.6.1. Descripción En la figura 65 se aprecia el proceso de adicionar una nueva categoría, en donde a partir de los datos ingresados se almacenan creando una nueva categoría, retornando el identificador de esta y si el proceso fue satisfactorio termina. 7.4.7. Añadir Método de Pago Workflow Figura 66: Añadir Método de Pago Workflow

Fuente: Autores, 2011. 7.4.7.1. Descripción En la figura 66 se aprecia el proceso de adicionar un nuevo método de pago, en donde a partir de los datos ingresados se almacenan creando un nuevo método de pago, retornando el identificador de este y si el proceso fue satisfactorio termina.

Page 105: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

105

7.4.8. Calificar Comprador Workflow Figura 67: Calificar Comprador Workflow

Fuente: Autores, 2011. 7.4.8.1. Descripción En la figura 67 se aprecia el proceso de asignar calificación a un Comprador, en donde se solicita confirmación al usuario y realiza la adición de reputación, posteriormente modifica la operación para indicar que la calificación ya fue otorgada y si el proceso fue satisfactorio termina. 7.4.9. Calificar Vendedor Workflow Figura 68: Calificar Vendedor Workflow

Fuente: Autores, 2011. 7.4.9.1. Descripción En la figura 68 se aprecia el proceso otorgar calificación a un vendedor en donde se solicita confirmación al usuario y realiza la adición de

Page 106: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

106

reputación, posteriormente modifica la operación para indicar que la calificación ya fue otorgada y si el proceso fue satisfactorio termina. 7.4.10. Cambiar Calificación Workflow Figura 69: Cambiar Calificación Workflow

Fuente: Autores, 2011. 7.4.10.1. Descripción En la figura 69 se aprecia el proceso de cambiar una calificación otorgada, en donde se solicita confirmación al usuario y realiza la modificación de reputación, posteriormente modifica la operación para indicar que la calificación ya fue otorgada y si el proceso fue satisfactorio termina. 7.4.11. Cerrar Articulo Workflow Figura 70: Cerrar Artículo Workflow

Fuente: Autores, 2011.

Page 107: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

107

7.4.11.1. Descripción En la figura 70 se aprecia el proceso de cerrar artículo publicado, en donde se solicita confirmación al usuario y realiza la modificación del artículo cambiando su estado a cerrado, validando si tiene ofertas, para añadir una nueva operación con la oferta ganadora y si el proceso fue satisfactorio termina. 7.4.12. Cerrar Artículo Irregular Workflow Figura 71: Cerrar Artículo Irregular Workflow

Fuente: Autores, 2011. 7.4.12.1. Descripción En la figura 71 se aprecia el proceso de cerrar artículo irregular publicado, en donde se solicita confirmación al usuario y realiza la modificación del artículo cambiando su estado a cerrado y si el proceso fue satisfactorio termina. 7.4.13. Comprar Artículo Workflow Figura 72: Comprar Artículo Workflow

Fuente: Autores, 2011.

Page 108: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

108

7.4.13.1. Descripción En la figura 72 se aprecia el proceso de “Comprar Artículo”, en donde inicia con la confirmación por parte del usuario, luego se aplica la oferta al artículo en cuestión, continua con la condición de tipo de compra; si el tipo de compra es inmediato se creará una nueva operación de compra, para finalizar el proceso cierra el artículo en caso de no disponer de más unidades y si el proceso fue satisfactorio termina. 7.4.14. Despublicar Campo Publicación Workflow Figura 73: Despublicar Campo Publicación Workflow

Fuente: Autores, 2011. 7.4.14.1. Descripción En la figura 73 se aprecia el proceso de “Despublicar Campo de Publicación”, en donde se realiza el cambio para establecerlo como campo no activo y si el proceso fue satisfactorio termina. 7.4.15. Despublicar Campo Usuario Workflow Figura 74: Despublicar Campo Usuario Workflow

Fuente: Autores, 2011.

Page 109: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

109

7.4.15.1. Descripción En la figura 74 se aprecia el proceso de “Despublicar Campo de Usuario”, en donde se realiza el cambio para establecerlo como campo no activo y si el proceso fue satisfactorio termina. 7.4.16. Despublicar Categoría Workflow Figura 75: Despublicar Categoría Workflow

Fuente: Autores, 2011. 7.4.16.1. Descripción En la figura 75 se aprecia el proceso de “Despublicar Categoría”, en donde se realiza el cambio para establecer la categoría como no visible y si el proceso fue satisfactorio termina. 7.4.17. Despublicar Método de Pago Workflow Figura 76: Despublicar Método de Pago Workflow

Fuente: Autores, 2011.

Page 110: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

110

7.4.17.1. Descripción En la figura 76 se aprecia el proceso de “Despublicar Método de Pago”, en donde se realiza el cambio para establecer el método como no activo y si el proceso fue satisfactorio termina. 7.4.18. Eliminar Categoría Workflow Figura 77: Eliminar Categoría Workflow

Fuente: Autores, 2011. 7.4.18.1. Descripción En la figura 77 se aprecia el proceso de “Eliminar Categoría”, en donde se solicita confirmación al usuario, se valida que no existan datos dependientes como categorías hijas o artículos asociados para proceder a eliminar la categoría y si el proceso fue satisfactorio termina. 7.4.19. Eliminar Método de Pago Workflow Figura 78: Eliminar Método de Pago Workflow

Fuente: Autores, 2011.

Page 111: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

111

7.4.19.1. Descripción En la figura 78 se aprecia el proceso de “Eliminar Método de Pago”, en donde se solicita confirmación al usuario, se valida que no existan operaciones abiertas para proceder a eliminar el método de pago y si el proceso fue satisfactorio termina. 7.4.20. Guardar Configuración Regional Workflow Figura 79: Guardar Configuración Regional Workflow

Fuente: Autores, 2011. 7.4.20.1. Descripción En la figura 79 se aprecia el proceso de “Guardar Configuración Regional”, en donde se almacenan los cambios realizados a los datos de la configuración regional y si el proceso fue satisfactorio termina. 7.4.21. Hacer Reclamo Workflow Figura 80: Hacer Reclamo Workflow

Fuente: Autores, 2011.

Page 112: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

112

7.4.21.1. Descripción En la figura 80 se aprecia el proceso de “Hacer Reclamo”, en donde se guarda la información solicitada para generar el reclamo por parte del usuario y si el proceso fue satisfactorio termina. 7.4.22. Ofertar Workflow Figura 81: Ofertar Workflow

Fuente: Autores, 2011. 7.4.22.1. Descripción En la figura 81 se aprecia el proceso de “Ofertar Artículo”, en donde inicia con la confirmación por parte del usuario, luego se aplica la oferta al artículo, si la compra es inmediata crea una nueva operación de la compra del artículo por parte del usuario comprador, si la existencia fue la última y no hay más existencias disponibles de los artículos procede a realizar el cierre del artículo y si el proceso fue satisfactorio termina.

Page 113: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

113

7.4.23. Preguntar Workflow Figura 82: Preguntar Workflow

Fuente: Autores, 2011. 7.4.23.1. Descripción En la figura 82 se aprecia el proceso de “Preguntar”, en donde se guarda la información solicitada referente a la pregunta que fue suministrada por el usuario y si el proceso fue satisfactorio termina. 7.4.24. Publicar Campo Publicación Workflow Figura 83: Publicar Campo Publicación Workflow

Fuente: Autores, 2011. 7.4.24.1. Descripción En la figura 83 se aprecia el proceso de “Publicar Campo”, en donde se realiza el cambio para establecerlo como campo activo y si el proceso fue satisfactorio termina.

Page 114: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

114

7.4.25. Publicar Campo Usuario Workflow Figura 84: Publicar Campo Usuario Workflow

Fuente: Autores, 2011. 7.4.25.1. Descripción En la figura 84 se aprecia el proceso de “Publicar Campo Usuario”, en donde se realiza el cambio para establecerlo como campo activo y si el proceso fue satisfactorio termina. 7.4.26. Publicar Categoría Workflow Figura 85: Publicar Categoría Workflow

Fuente: Autores, 2011. 7.4.26.1. Descripción En la figura 85 se aprecia el proceso de “Publicar Categoría”, en donde se realiza el cambio para establecer la categoría como visible y si el proceso fue satisfactorio termina.

Page 115: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

115

7.4.27. Publicar Método de Pago Workflow Figura 86: Publicar Método de Pago Workflow

Fuente: Autores, 2011. 7.4.27.1. Descripción En la figura 86 se aprecia el proceso de “Publicar Método de Pago”, en donde se realiza el cambio para establecer el método como activo y si el proceso fue satisfactorio termina. 7.4.28. Publicar Nuevo Artículo Workflow Figura 87: Publicar Nuevo Artículo Workflow

Fuente: Autores, 2011. 7.4.28.1. Descripción En la figura 87 se aprecia el proceso de “Publicar Nuevo Artículo”, en donde se solicita al usuario ingresar los datos requeridos y se realiza la acción de guardar, se almacenan los datos diligenciados, con el fin de cerrar la publicación en la fecha ingresada como de finalización, se crea un evento programado para que realice el cierre en dicha fecha y si el proceso fue satisfactorio termina.

Page 116: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

116

7.4.29. Registrar Usuario Workflow Figura 88: Registrar Usuario Workflow

Fuente: Autores, 2011. 7.4.29.1. Descripción En la figura 88 se aprecia el proceso de “Registrar Nuevo Usuario”, en donde se solicita al usuario invitado ingresar los datos requeridos y se realiza la acción de guardar, se almacenan los datos diligenciados y si el proceso fue satisfactorio termina. 7.4.30. Reportar Artículo Workflow Figura 89: Reportar Artículo Workflow

Fuente: Autores, 2011. 7.4.30.1. Descripción En la figura 89 se aprecia el proceso de “Reportar Artículo”, en donde la información de las observaciones del reporte son guardados en el sistema. La operación termina con éxito si se pudieron almacenar correctamente los datos.

Page 117: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

117

7.4.31. Responder Pregunta Workflow Figura 90: Responder Pregunta Workflow

Fuente: Autores, 2011. 7.4.31.1. Descripción En la figura 90 se aprecia el proceso de “Responder Pregunta”, en donde la información de la respuesta que dio el vendedor a la inquietud registrada, es almacenada en el sistema. La operación termina con éxito, si se pudieron almacenar correctamente los datos. 7.4.32. Seguir Artículo Workflow Figura 91: Seguir Artículo Workflow

Fuente: Autores, 2011. 7.4.32.1. Descripción En la figura 91 se aprecia el proceso de “Seguir Artículo”, en donde se almacena en el sistema la relación entre un usuario comprador y artículo que este ha determinado que es de su interés. La operación termina con éxito si se pudieron almacenar correctamente los datos.

Page 118: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

118

7.4.33. Tramitar Reclamo Workflow Figura 92: Tramitar Reclamo Workflow

Fuente: Autores, 2011. 7.4.33.1. Descripción En la figura 92 se aprecia el proceso de “Tramitar Reclamo”, en donde el usuario administrador, después de tomar una acción dada, da por terminada una disputa entre clientes. En el sistema se marca como atendido el reclamo y la operación se considera exitosa, si se pudieron almacenar correctamente los datos. 7.4.34. Tramitar Reporte Workflow Figura 93: Tramitar Reporte Workflow

Fuente: Autores, 2011. 7.4.34.1. Descripción En la figura 93 se aprecia el proceso de “Tramitar Reporte”, en donde el usuario administrador, después de tomar una acción dada, da por cerrado un reporte a un artículo por un usuario. En el sistema se marca como atendido el reporte y la operación se considera exitosa, si se pudieron almacenar correctamente los datos.

Page 119: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

119

8. IMPLEMENTACIÓN Para la implementación de la extensión se usaron las herramientas descritas a continuación. Salvo Eclipse y Firefox las herramientas utilizadas son requerimientos de la plataforma Joomla!. 8.1. JOOMLA! En la etapa de implementación se usó la versión 1.5.18 ya que era la última versión estable en el inicio del proyecto, durante su ejecución se conocieron nuevas versiones y se usó la 1.5.22 para las pruebas. 8.2. PHP PHP (acrónimo de PHP: Hypertext Preprocessor) es un lenguaje de código abierto muy popular especialmente adecuado para desarrollo web y que puede ser incrustado en HTML.28 Se utilizó la versión 5.2.9-2 debido a que la más reciente y estable (5.3) no es compatible con la versión de Joomla! usada en el desarrollo del proyecto. 8.3. MySQL MySQL es la base de datos de código abierto más popular del mundo con más de 100 millones de copias descargadas y distribuida a lo largo de su historia.29 En la etapa de implementación se usó la versión 5.1.36 incluida en la versión instalada de WAMPSERVER 2. Es de anotarse que no se debe usar versiones previas a la 5.1 ya que a partir de esta versión se soportan funciones y procedimientos almacenados y manejo de eventos por calendario, los cuales son indispensables para el funcionamiento del proyecto.

28 The PHP Group. PHP. Que es PHP? - Manual. [En línea] [Citado el: 11 de Febrero de 2011.] http://www.php.net/manual/es/intro-whatis.php. 29 ORACLE. MySQL. About. [En línea] [Citado el: 11 de Febrero de 2011.] http://www.mysql.com/about/.

Page 120: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

120

8.4. APACHE Apache es el nombre del programa servidor que se encarga del procesamiento HTTP30 (HyperText Transfer Protocol en inglés que significa Protocolo de Transferencia de Hipertexto), esto quiere decir que Apache se encarga de procesar toda la información que entra y sale de un servidor de páginas de internet. En la implementación del proyecto se usó la versión 2.2.1.1 que venía incluida en el paquete de instalación de WAMPSERVER 2. 8.5. ECLIPSE Eclipse es un IDE (integrated development environment) o Entorno integrado de desarrollo, el cual brinda herramientas de desarrollo tales como depuración de errores, seguimiento de código y resaltado de código fuente entre otras. En desarrollo del proyecto se usó la compilación 20100218-1602. La decisión de usar este software se tomó gracias a la documentación de desarrollo de Joomla! la cual recomienda su uso. 8.6. ZEND DEBUGGER Para el seguimiento del código se usó la versión 2.0.0-5.2.2 de esta extensión de PHP para el depurado de errores y seguimiento de código. 8.7. WAMPSERVER Wamp es acrónimo de Windows, Apache, MySql y PHP, Perl o Python.31 WAMPSERVER 2 es un paquete de aplicaciones que tiene por propósito común proveer una instalación sencilla de las herramientas y servicios descritos en su acrónimo WAMP en el sistema operativo Windows.

30 The Apache Software Foundation. Servidor HTTP Apache. Glosario. [En línea] [Citado el: 11 de Febrero de 2011.] http://httpd.apache.org/docs/2.2/glossary.html. 31 Wikipedia. WAMP. Wikipedia, La Enciclopedia Libre. [En línea] [Citado el: 11 de Febrero de 2011.] http://es.wikipedia.org/wiki/WAMP.

Page 121: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

121

8.8. FIREFOX Mozilla Firefox es un navegador web de código abierto descendiente de la Mozilla Application Suite y es manejado por Mozilla Corporation32. En el desarrollo y en las pruebas de utilizó la versión 3 de este en diferentes versiones durante esta etapa.

32 Wikipedia. Firefox. Wikipedia, La Enciclopedia Libre. [En línea] [Citado el: 11 de Febrero de 2011.] http://en.wikipedia.org/wiki/Firefox.

Page 122: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

122

9. PRUEBAS 9.1. DISEÑO Las pruebas realizadas son de tipo caja negra, con datos de prueba se espera una respuesta del sistema sin entrar en detalle de lo ocurrido en el interior del sistema, dado que la implementación de la extensión solo tuvo por propósito responder a la hipótesis del problema “¿Es posible crear una extensión de Joomla! que permita manejar subastas?” este desarrollo se encuentra en una etapa previa al entorno de producción y no es estable. Este capítulo solo tendrá en cuenta los casos de uso del análisis los cuales podrían dar un avance al lector sobre la conclusión de dicha hipótesis.

• Registrar usuario • Agregar categoría • Publicar subasta • Exponer publicación • Realizar Pregunta • Responder Pregunta • Ofertar en una subasta • Consultar Reputación Vendedor • Cerrar subasta • Comprar Artículo • Calificar Comprador • Calificar Vendedor • Listar Artículos Activos • Listar Artículos Comprados • Listar Artículos Vendidos • Listar Preguntas Pendientes

9.2. EJECUCIÓN Y RESULTADOS 9.2.1. Registrar usuario Requerimiento: Inscripción de usuarios. Descripción: Permitir que los usuarios creen un perfil registrado en la página. Resultado Esperado: Gráficamente con una ventana de confirmación y haciendo inspección de la base de datos verificando que existan nuevos registros.

Page 123: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

123

Observaciones: Joomla! incluye esta funcionalidad, sin embargo como se modificó el módulo com_users, este afecta dos tablas en la base de datos xxx_user y xxx_contact_details, donde xxx es el prefijo usado en la instalación de Joomla!. Resultado Obtenido: Gráficamente; se recibe la confirmación esperada. Se utiliza el administrador de bases de datos SQL phpMyAdmin y se verificaron las dos entradas nuevas en sus respectivas tablas. 9.2.2. Agregar categoría Requerimiento: Publicación de artículos. Descripción: Agregar las categorías donde se ubicarán los artículos. Resultado Esperado: Confirmación visual y registro en la base de datos. Observaciones: Se prueba el acceso a la ventana de administración de categorías y el funcionamiento del botón “Nuevo”. Resultado Obtenido: Se recibe mensaje de confirmación en la creación, se verifica con el administrador de bases de datos la presencia del registro. 9.2.3. Publicar subasta Requerimiento: Publicación de artículos. Descripción: Permitir al usuario en su rol de vendedor, empezar el proceso de subasta con la descripción del artículo que desea vender y las condiciones de la eventual venta. Resultado Esperado: Confirmación gráfica y registros en base de datos. Observaciones: En el momento de comenzar cualquier tipo de publicación, subasta o compra inmediata además de crearse el registro en la tabla xxx_ai_items se crea un evento por cada publicación. Este evento finalizará la publicación en el momento estipulado. Resultado Obtenido: Se recibe la confirmación visual y se comprueba la presencia del registro en la base de datos. 9.2.4. Exponer publicación Requerimiento: Exhibición de la publicación. Descripción: Permitir que los usuarios en sus roles de visitantes, compradores y vendedores visualizar la descripción y condiciones de una venta o subasta. Además listar la publicación en la categoría correspondiente. Resultado Esperado: Verificación visual. Observaciones: Ubicado el artículo en el listado según la categoría donde está ubicada una publicación se da clic en el título del mismo para abrir su descripción.

Page 124: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

124

Resultado Obtenido: Se visualiza la información del artículo y condiciones de venta. 9.2.5. Realizar pregunta Requerimiento: Preguntas respecto al artículo publicado Descripción: El usuario en calidad de comprador puede realizar preguntas pertinentes al vendedor. Resultado Esperado: Exposición de la pregunta realizada, pregunta listada en la sección “Preguntas Pendientes” en la vista del vendedor y registró en la base de datos. Observaciones: Las preguntas están almacenadas en la tabla xxx_ai_preguntas y se pueden ver listadas en la sección correspondiente y en la sección inferior de la publicación. Resultado Obtenido: Se verifica de manera visual el registro de la pregunta, se comprueba en la base de datos con éxito y se puede ver en la sección “Preguntas Pendientes”. 9.2.6. Responder pregunta Requerimiento: Preguntas respecto al artículo publicado Descripción: El sistema permite al usuario responder una pregunta formulada por su contraparte. Resultado Esperado: Confirmación visual y modificación del registro de la pregunta en la tabla xxx_ai_preguntas. Observaciones: En la sección “Preguntas Pendientes” se listan todas las preguntas que no tengan respuesta aun y que le hayan formulado al vendedor. Estas preguntas solo le aparecen al usuario responsable al que se le han formulado estas. Resultado Obtenido: Se muestra un mensaje de confirmación y la pregunta es eliminada del listado y se verifica el cambio en el registro de la pregunta en la base de datos. 9.2.7. Ofertar en una subasta Requerimiento: Compra-venta de artículos. Descripción: El usuario en rol de comprador puede hacer una oferta sobre un artículo. Resultado Esperado: Confirmación visual y registro en base de datos. Observaciones: Las ofertas quedan almacenadas en xxx_ai_ofertas y el ítem se vincula a estas con la llave de las ofertas con la mejor oferta.

Page 125: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

125

Resultado Obtenido: Se verifica el comportamiento con la base de datos y en caso de que la oferta sea aceptada con el cambio del valor actual de la subasta. 9.2.8. Consultar reputación vendedor Requerimiento: Compra-venta de artículos. Descripción: El comprador obtiene referencia de operaciones pasadas. Resultado Esperado: Pantalla con los datos del usuario vendedor. Observaciones: La trayectoria del usuario se almacena en la tabla xxx_ai_usuarios. Resultado Obtenido: Cuando el usuario no tiene puntos en su trayectoria esta pantalla muestra la ubicación del usuario únicamente, una vez el usuario haya realizado transacciones en esta pantalla se ven los puntos acumulados. 9.2.9. Cerrar subasta Requerimiento: Culminación de una publicación. Descripción: Existen dos escenarios para este evento, uno que se haya terminado el tiempo de publicación y dos el usuario vendedor y propietario de la subasta cierre la publicación. Resultado Esperado: En el caso del cierre manual confirmación visual, modificación del registro en la base de datos. En el caso del cierre automático modificación del registro en la base de datos. Observaciones: En ambos casos se debe encontrar un nuevo registro en la tabla xxx_ai_ventas siempre y cuando el sistema haya recibido una oferta aceptable. Resultado Obtenido: En ambos casos se comprueba el cambio del estado del registro en la tabla xxx_ai_items de la base de datos. En el caso del cierre manual no se recibe verificación gráfica. 9.2.10. Comprar artículo Requerimiento: Compra-venta de artículos. Descripción: En el caso de que la publicación sea de compra inmediata una vez el usuario comprador presione el botón correspondiente se crea la operación. Resultado Esperado: Confirmación visual y nuevo registro en la base de datos. Observaciones: El estado de la publicación cambia y ya no es posible formular nuevas preguntas ni realizar nuevas ofertas. Resultado Obtenido: Se percibe el cambio de la publicación una vez esta ha recibido una oferta en este tipo de publicación. Se comprueba la presencia del nuevo registro en xxx_ai_ventas.

Page 126: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

126

9.2.11. Calificar comprador Requerimiento: Administración de operaciones. Descripción: El usuario vendedor puede dar una referencia de su experiencia con su contraparte por cada operación concluida. Resultado Esperado: Modificación del registro de usuario en la base de datos. Modificación del registro de la venta en la base de datos. Confirmación gráfica y modificación de la pantalla de reputación del usuario comprador. Observaciones: La trayectoria del usuario o reputación se ve plasmada en la tabla xxx_ai_usuarios y los comentarios de las contrapartes y los puntos de la operación en la tabla xxx_ai_ventas. Resultado Obtenido: Se comprueba la modificación del puntaje del usuario en su tabla. Se verifica que se haya modificado el registro de la venta con el puntaje en la contraparte vendedor y el comentario. 9.2.12. Calificar vendedor Requerimiento: Administración de operaciones. Descripción: El usuario comprador puede dar referencia de la experiencia que tuvo con el vendedor. Resultado Esperado: Modificación del registro de usuario en la base de datos. Modificación del registro de la venta en la base de datos. Confirmación gráfica y modificación de la pantalla de reputación del usuario vendedor. Observaciones: La trayectoria del usuario o reputación se ve plasmada en la tabla xxx_ai_usuarios y los comentarios de las contrapartes y los puntos de la operación en la tabla xxx_ai_ventas. Resultado Obtenido: Se comprueba la modificación del puntaje del usuario en su tabla. Se verifica que se haya modificado el registro de la venta con el puntaje en la contraparte vendedor y el comentario. 9.2.13. Listar artículos activos Requerimiento: Administración de operaciones. Descripción: El usuario en el rol de vendedor puede listar las publicaciones que tenga a su nombre. Resultado Esperado: Listado de artículos activos y herramientas administrativas. Observaciones: Las herramientas administrativas que se muestran son publicar y despublicar y cerrar. Resultado Obtenido: Se observan los títulos de las publicaciones que fueron creados por el usuario identificado.

Page 127: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

127

9.2.14. Listar artículos comprados Requerimiento: Administración de operaciones. Descripción: El usuario en su rol de comprador puede listar las publicaciones en las que esté vinculado como la parte compradora. Resultado Esperado: Listado de artículos comprados. Observaciones: En la pantalla con el listado, por cada publicación o ítem comprado aparece el campo para calificar la contraparte y el espacio para digitar las observaciones o comentarios de la operación. Resultado Obtenido: Se observan los artículos comprados que no han sido marcados como concluidos, están en espera de la calificación del usuario. 9.2.15. Listar artículos vendidos Requerimiento: Administración de operaciones. Descripción: El usuario en su rol de comprador puede listar las publicaciones de las cual es responsable y juega el papel de vendedor. Resultado Esperado: Listado de artículos vendidos (operaciones). Observaciones: En la pantalla se listan los artículos pendientes de calificación por parte del vendedor, así como las opciones por cada ítem de calificar y plasmar un comentario. Resultado Obtenido: Se listan los artículos vendidos por el usuario identificado que no cuentan aún con reseña por parte del usuario. 9.2.16. Listar preguntas pendientes Requerimiento: Preguntas respecto al artículo publicado Descripción: El usuario en el rol de vendedor, tiene la oportunidad de responder las inquietudes de los posibles compradores. Resultado Esperado: Listado de preguntas sin respuesta. Observaciones: El listado muestra el artículo sobre el cual se está interrogando, la fecha en que se formuló la pregunta, la pregunta en cuestión y el espacio para su respuesta. Resultado Obtenido: Listado de preguntas sin respuesta a publicaciones que tienen por responsable el usuario identificado.

Page 128: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

128

10. MANUALES 10.1. MANUAL DE INSTALACIÓN 10.1.1. Requerimientos • Joomla! 1.5.X. Recomendado 1.5.22. • PHP Recomendado 5.2 y mínimo 4.3.10. • MySQL Recomendado 4.1.x y mínimo 3.23. • Apache Recomendado 2.x y mínimo 1.3. 10.1.2. Instalación de la extensión 10.1.2.1. Acceso al BackEnd Para ingresar BackEnd o parte administrativa de Joomla! se debe digitar la dirección de su nuevo sitio Joomla! y agregar “administrator”, por ejemplo: http://www.midominio.com/administrator. Una vez haya cargado el sitio web verá la siguiente pantalla, debe ingresar el usuario y la contraseña de administrador para continuar. Figura 94: Pantalla de Inicio de Sesión BackEnd

Fuente: Autores, 2011. 10.1.2.2. Panel de control Joomla! Una vez tenga acceso a la parte administrativa de Joomla! se encontrará en el panel de control del CMS, desde

Page 129: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

129

aquí usted podrá realizar diversas actividades como su nombre lo indica administrativas, añadir contenido, información para sus usuarios, noticias, etc. En el aplicativo podrá ver las subastas realizadas, los usuarios inscritos. Figura 95: Panel de Control

Fuente: Autores, 2011. 10.1.2.3. Instalación del componente Joomla! cuenta con un aplicativo para la instalación de extensiones, para utilizarlo ubique el menú “Extensiones” en la parte superior este se desplegará automáticamente, de clic en “Instalar/Desinstalar”. Figura 96: Instalación del Componente

Fuente: Autores, 2011.

Page 130: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

130

El gestor de extensiones seleccione el archivo com_auctionit.zip con el botón “Examinar” en la sección Subir el paquete, acto seguido presione el botón “Subir Archivo & Instalar”. Figura 97: Archivo de Instalación del Componente

Fuente: Autores, 2011. Cuando el componente se ha instalado correctamente usted verá una pantalla similar a la siguiente. Figura 98: Instalación Satisfactoria del Componente

Fuente: Autores, 2011. 10.1.2.4. Instalación del módulo Para la instalación del módulo, repita el paso anterior con el archivo mod_ai_categorias.zip, la confirmación de la instalación será similar a la anterior. Figura 99: Instalación Satisfactoria del Módulo

Fuente: Autores, 2011.

Lakrax
Sticky Note
Accepted set by Lakrax
Lakrax
Sticky Note
Accepted set by Lakrax
Lakrax
Sticky Note
Accepted set by Lakrax
Lakrax
Sticky Note
Accepted set by Lakrax
Page 131: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

131

10.1.2.5. Configuración de categorías Para el uso del componente de subastas usted debe agregar al menos una categoría, estas pueden vincularse entre sí con la propiedad “Padre”. En el menú superior encontrará el menú desplegable “Componentes”, en el submenú “Auction It!” de clic en “Categorías” para entrar al gestor de las mismas. Figura 100: Acceso Gestión de Categorías

Fuente: Autores, 2011.

10.1.2.6. Creación nueva categoría En el gestor de categorías usted puede agregar, editar, borrar y publicar o des publicar categorías según se requiera. “Publicar” o “Despublicar” permite al administrador inactivar un elemento de su sitio web sin eliminarlo. A su vez el gesto de categorías le mostrará las categorías creadas, publicadas o no. Figura 101: Gestión de Categorías

Fuente: Autores, 2011.

Presione el botón “Nuevo” para crear una nueva categoría, una vez este en la pantalla de esta actividad digite el nombre de la categoría y seleccione su padre si es necesario, el botón “Guardar” almacenará la nueva categoría.

Page 132: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

132

Figura 102: Formulario de Creación de Categorías

Fuente: Autores, 2011.

10.1.2.7. Ejecución script La instalación del componente requiere la ejecución del script llamado proc_finalizar_publicacion.sql, es imperativo tener acceso a la base de datos para dicha ejecución, si el proveedor de almacenamiento lo restringe, dicha ejecución debe ser realizada por el administrador de estos servicios. Antes de ejecutar el script o enviárselo a su proveedor de almacenamiento debe editarse la línea uno del mismo cambiando la palabra “auctionit” por el nombre de la base de datos en la cual se encuentra instalado Joomla!. Figura 103: Script Post-Instalación

Fuente: Autores, 2011.

Page 133: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

133

Antes de ejecutar el script cerciórese de cambiar el delimitador de código como se ilustra a continuación. Figura 104: Ejecución del Script

Fuente: Autores, 2011.

10.1.2.8. Configuración módulos Por defecto Joomla! marca como inactivo un módulo recién instalado, para activarlo use el menú principal el menú desplegable “Gestor de módulos”. Figura 105: Post-instalación modulo

Fuente: Autores, 2011. En el gestor de Módulos se localiza el modulo “Categorías AuctionIt” y presione el botón rojo con una equis para activar el modulo.

Page 134: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

134

Figura 106: Activación del Modulo

Fuente: Autores, 2011.

10.1.2.9. Configuración menú principal Para configurar la posición de los menús del aplicativo, se debe ingresar al administrador de este. En el menú principal despliegue el menú “Menús” y de clic a “Menú principal”. Figura 107: Configuración menú principal

Fuente: Autores, 2011.

Page 135: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

135

Una vez esté en la pantalla de configuración del menú usted podrá cambiar la posición de cualquier elemento usando la columna “Posición” o las flechas arriba y abajo según su gusto o necesidad. Figura 108: Edición del Menú Principal

Fuente: Autores, 2011.

10.1.2.10. Directorios requeridos En la ruta “…\aplicacion\components\com_auctionit\” se debe crear una carpeta con permisos de lectura y escritura al usuario de apache o del servidor web que esté prestando los servicios web en el servidor, es posible requerir ayuda del administrador de almacenamiento para asignar estos permisos. Figura 109: Directorios Requeridos

Fuente: Autores, 2011.

Page 136: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

136

10.1.2.11. Reemplazo de componentes Finalmente se debe descomprimir el archivo com_user.zip y reemplazar el directorio “com_user” en la ruta “…\components\” de la instalación de Joomla!. Es posible que requiera ayuda del administrador del servicio de almacenamiento. Figura 110: Post-Instalación Extensión

Fuente: Autores, 2011. 10.2. MANUAL DE USUARIO 10.2.1. Registro de usuarios Una vez esté en la pantalla inicial del sitio de subastas, debe ubicar el menú principal, de clic en “Registro”. Figura 111: Registro de Usuario

Fuente: Autores, 2011.

Page 137: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

137

A continuación se debe llenar el formulario de inscripción, los campos marcados con asterisco son de carácter obligatorio. Figura 112: Formulario de Registro

Fuente: Autores, 2011. 10.2.2. Acceso al sistema Dentro de los menús laterales se encuentra el menú de “Acceso”, digite su usuario y contraseña para ingresar al sistema como un usuario autenticado. Es requerido para poder realizar ofertas en las subastas, publicar sus propias subastas y demás actividades del sistema de subastas. Figura 113: Inicio de Sesión FrontEnd

Fuente: Autores, 2011.

Page 138: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

138

10.2.3. Como vender En el menú principal de clic en “Vender” como lo muestra la imagen 114. Figura 114: Menú “Vender”

Fuente: Autores, 2011. Llene el formulario de venta o publicación de artículos así:

• Título: Ingrese el título de la publicación que desea usar, recuerde poner uno llamativo y que destaque su artículo de sus semejantes.

• Categoría: Seleccione la categoría en la que a su criterio mejor se encuentra el artículo que está publicando.

• Duración: Tiempo en días que quiere que la subasta o venta sea expuesta. • Cantidad: Numero de artículos que tiene en inventario. • Tipo: Seleccione entre subasta y venta inmediata. • Precio Inicial: Precio de arranque de la subasta, si el tipo de publicación es

venta inmediata este será el valor de venta. • Reserva: Solo se usa cuando se está publicando una subasta, indica el

monto mínimo en el cual usted desea vender su artículo. • Descripción: En este espacio usted puede describir el artículo en cuestión.

Procure ser específico en la condición del artículo, su estado y las condiciones de entrega.

• Envío: Defina quien asumirá el costo del envío del artículo. • Condición: Indique si el artículo es nuevo o usado. • Pago: Seleccione las preferencias de pago que se ajusten a su necesidad. • Imagen: Seleccione el archivo con la imagen o fotografía que desea

adjuntar a la publicación.

Page 139: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

139

Figura 115: Formulario de Creación de Articulo

Fuente: Autores, 2011.

10.2.4. Listar “Mis artículos” Para listar los artículos publicados por usted debe dar clic en el ítem del menú lateral “Mis Artículos”, como lo ilustra la siguiente imagen. Figura 116: Menú “Mis artículos”

Fuente: Autores, 2011. En el gestor de artículos usted puede editar la publicación, publicarla o des publicarla y cerrar la venta. En el evento que se desee editar la publicación usted será enviado a un formulario similar al que usó para iniciar la venta, la opción de publicar o des publicar un artículo permite limitar la exposición del artículo sin necesidad de cerrar la misma, si la publicación es de tipo venta inmediata al cerrar la publicación se suspende la exposición, mientras que si el tipo de publicación es

Page 140: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

140

subasta este aceptara la oferta más alta como la ganadora siempre y cuando hayan ofertas y estas sean superiores al límite de reserva. Figura 117: Despliegue de “Mis Artículos”

Fuente: Autores, 2011.

10.2.5. Listado de publicaciones En el menú lateral se encuentra el modulo “Categorías”, este listará todas las categorías creadas en el sitio, además podrá listar todos los productos usando la opción “Todas”. Figura 118: Despliegue de Artículos

Fuente: Autores, 2011. 10.2.6. Exhibición de los artículos Una vez haya seleccionado un artículo de su interés usted verá una pantalla similar a la siguiente donde se suministra información del artículo en venta.

Page 141: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

141

Figura 119: Exhibición de un Artículo

Fuente: Autores, 2011. Si da clic sobre el nombre del usuario en el aparato “Vendedor” puede conocer la ubicación del usuario y su reputación en el sitio. Figura 120: Información del Usuario

Fuente: Autores, 2011.

10.2.7. Formular preguntas En la pantalla de exhibición del artículo ubique la zona “Preguntas”, en el campo “Haga una pregunta” escriba la duda que tiene para el vendedor y presione el botón “Preguntar”.

Page 142: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

142

Figura 121: Formulación de Preguntas

Fuente: Autores, 2011.

10.2.8. Responder preguntas La opción “Preguntas Pendientes” le permitirá ver las preguntas que le han formulado sus clientes potenciales, aquí podrá ver la fecha en que se realizó, el artículo en cuestión y la pregunta. Responda cada pregunta usando el campo y presione el botón “Responder”. Figura 122: Responder una Pregunta

Fuente: Autores, 2011.

Page 143: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

143

10.2.9. Ofertar En la pantalla de exhibición del artículo en la sección “Ofertar” ingrese el monto de su oferta, recuerde que esta debe ser superior al precio actual para que sea aceptada por el sistema y presione el botón “Ofertar”, en caso de que la publicación sea de tipo compra inmediata el precio de venta será el que aparece en la publicación. Figura 123: Oferta en un Artículo

Fuente: Autores, 2011.

10.2.10. Calificar comprador En la opción “Mis Ventas” se encuentran las operaciones de venta sin calificación otorgada, Puede asignar una puntuación positiva, neutra o negativa según como haya sido su experiencia con su contraparte, además puede escribir comentarios acerca de la operación. Figura 124: Calificar Comprador

Fuente: Autores, 2011.

10.2.11. Calificar vendedor En la opción “Mis Compras” del menú principal se listan las operaciones pendientes de calificar donde usted jugó el papel de

Page 144: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

144

comprador, en este listado usted puede asignar una puntuación positiva, neutra o negativa según el desarrollo de la operación, además puede escribir comentarios acerca de esta. Figura 125: Calificar Vendedor

Fuente: Autores, 2011.

Page 145: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

145

11. RECOMENDACIONES El fin del presente capítulo es comentar algunas aspectos del sistema que se deben mejorar o investigar en eventuales usos posteriores y/o desarrollos posteriores para la plataforma Joomla!. 11.1. JOOMLA! Al desarrollar sobre Joomla, se debe tener en cuenta que este Framework provee una gran cantidad de métodos que pueden ahorrar mucho tiempo y por lo tanto el desarrollador se debe documentar muy bien para no duplicar funcionalidad. A nivel más técnico, se recomienda usar puntos de entrada a la aplicación con archivos llamados index.html vacíos para que no se permitan accesos por debajo a esta. 11.2. COMPONENTE DE USUARIO El componente de usuario COM_USER se modificó para que el usuario pudiera introducir la información de contacto más completa y la almacenara en la tabla xxx_contact_details. Sería mejor crear un módulo “Nuevo Usuarios” solo para el sistema de subastas ya que este se podría instalar con la herramienta de Joomla! adecuada y no reemplazando el directorio, además el módulo de usuarios puede tener relaciones internas con otros modulo fuera de control del desarrollador sin experiencia. Otra opción es que los usuarios se registren con el modulo original y desarrollar un módulo que complemente la información como parte del proceso de activación. 11.3. VALIDACIONES En una implementación futura apuntando a un entorno de producción se deben validar los datos ingresados por el usuario, cabe anotar que en el presente proyecto no se realizaron muchas, ya que se consideró que en las versiones previas lo importante es que la lógica funcione, para una versión alfa si se podría considerar implementar estos controles.

Page 146: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

146

11.4. PROCEDIMIENTOS ALMACENADOS En la base de datos MySQL es relativamente novedoso el uso de procedimientos almacenados.33 Joomla! no acepta la inyección de este código pasando por su plataforma en la instalación de la extensión, por este motivo se debe hacer la inserción de este por la consola o un aplicativo como un manejador de MySQL. Este punto se debe mejorar en el momento que la plataforma lo permita. 11.5. IMPLEMENTACIONES GRAFICAS Joomla! maneja el aspecto gráfico, colores y tipos de fuente en hojas de estilo o CSS (Cascading Style Sheets). Sería interesante para futuros desarrollos mejorar el aspecto grafico del sistema de subasta utilizando estas. 11.6. LENGUAJE Joomla! permite dinamizar los elementos de su interfaz con diccionarios de lenguaje, en una implementación posterior se deben agregar las palabras claves a los diccionarios y crear además diccionarios específicos para la extensión. 11.7. TRAYECTORIA En la trayectoria del usuario, se deben agregar las operaciones que este ha realizado y los comentarios de sus contrapartes. 11.8. CONTROLES Parte del desarrollo futuro que puede tener el aplicativo es mejorar los controles por anotar un par de ejemplos, se deben implementar listas desplegables con los países disponibles en la hoja de registro, otro ejemplo es la edición del precio en los artículos de compra inmediata, este control debe ser dinámico al tipo de publicación. 33 ORACLE. MySQL. Stored Procedures in MySQL 5.0. [En línea] [Citado el: 11 de Febrero de 2011.] http://dev.mysql.com/tech-resources/articles/mysql-storedproc.html.

Page 147: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

147

11.9. CASOS DE USO La versión previa que se ha implementado no cuenta con varios casos de uso que se encuentran plasmados, es claro que si se quiere entrar a un terreno productivo estos se deberían implementar y probablemente surgirán nuevos casos.

Page 148: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

148

12. CONCLUSIONES

La primera conclusión que se puede sacar de la ejecución del proyecto es que es posible elaborar una extensión para la plataforma Joomla! que permita ejecutar y administrar subastas, siguiendo en gran medida los lineamientos de la plataforma y su arquitectura. La realización de una solución de software para ciertos problemas específicos, como la página de subastas presentada en el proyecto, se puede beneficiar al hacer uso de un gestor de contenido ya que a este se le puede delegar la presentación de información, control de usuarios y acceso a datos, permitiendo enfocarse en el problema inicial a solucionar y no en temas satélites. La metodología de diseño UWE, permite un planteamiento completo, pero especificando solo lo necesario del modelo Web a desarrollar, generando una respuesta acorde a los cambios del Software presentados en el transcurso de la implementación, ya que al ser una extensión ligera de una metodología más amplia como el UML, no requiere de un modelado tan riguroso.

Page 149: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

149

13. BIBLIOGRAFIA

An Introduction to Electronic Commerce. BT Electronic Commerce Innovation Center. Cardiff : Univerity of Cardiff.

Auctions and Bidding. McAfee, P., & McMillan, J. 2, Journal of Economic Literature, Vol. XXV, págs. 699-738.

Cambridge. Cambridge Dictionary Online. Definition of framework. [En línea] [Citado el: 06 de Enero de 2011.] http://dictionary.cambridge.org/dictionary/british/framework.

Comercio móvil. Reyna, Jesús Enrique Vazquez. Cuernavaca : Instituto de la educación básica del estado de Morelos.

De la Rosa Escolante, Miguel Javier. 2010. Estudio de UWE. Madrid : Universidad Carlos III. Departamento de Telemática, 2010. pág. 33.

Electronic Commerce. Halchmi, Z., Hommel, K., y Avital., O. s.l. : The Technion-Israel Institute of Technology.

Joomla! Spanish Group. Centro de Ayuda Joomla! Spanish. Medidas de Seguridad en Joomla. [En línea] [Citado el: 20 de Febrero de 2011.] http://ayuda.joomlaspanish.org/content/view/205/94/.

Juez, Pedro Dura. 2003. Teoria de subastas y reputación del vendedor. Madrid : Sociedad autónoma de fotocomposición, 2003.

Laboratorio de Desarrollo, Investigación e Implementación Tecnológica de la Facultad de Arquitectura y Urbanismo de la Universidad de Chile. Plataforma CNC. Estructura General Plataforma web joomla. [En línea] [Citado el: 2011 de Enero de 08.] http://plataformacnc.uchilefau.cl/index.php/proyectos/plataforma-cnc/122-estructura-general-plataforma-web-joomla.

Open Source Matters, Inc. Joomla! Documentation. Framework. [En línea] [Citado el: 2011 de Enero de 08.] http://docs.joomla.org/Framework.

—. Joomla! Documentation. Components:xml installfile. [En línea] [Citado el: 6 de Febrero de 2011.] http://docs.joomla.org/Components:xml_installfile.

—. Joomla! Documentation. Developing a Model-View-Controller Component - Part 1. [En línea] [Citado el: 2011 de Enero de 08.] http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_1.

Page 150: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

150

—. Joomla! Extensions Directory. [En línea] [Citado el: 04 de Enero de 2011.] http://extensions.joomla.org/.

—. Joomla! Extensions Directory. Search. [En línea] [Citado el: 4 de Enero de 2011.] http://extensions.joomla.org/search?q=auction.

—. Security News. Joomla! Developer Network. [En línea] [Citado el: 08 de Enero de 2011.] http://developer.joomla.org/security/news.html.

ORACLE. MySQL. Stored Procedures in MySQL 5.0. [En línea] [Citado el: 11 de Febrero de 2011.] http://dev.mysql.com/tech-resources/articles/mysql-storedproc.html.

—. MySQL. About. [En línea] [Citado el: 11 de Febrero de 2011.] http://www.mysql.com/about/.

Pressman, Roger S. 2007. Ingeniería del Software. s.l. : McGraw-Hill Interamericana, 2007.

Ramos, Alejandro. SecurityByDefault. SecurityByDefault: Comparativa de Seguridad Joomla, Wordpress, Drupal y Movable Type. [En línea] [Citado el: 10 de Enero de 2011.] http://www.somoslibres.org/modules.php?name=News&file=article&sid=3606.

Skepsis Consult. The Factory. [En línea] [Citado el: 04 de 01 de 2011.] http://www.thefactory.ro/shop/joomla-components/auction-factory.html.

Tamlyn Creative Software. Tamlyn Creative Software. [En línea] [Citado el: 5 de Enero de 2011.] http://www.tamlyncreative.com.au/software/pricing/purchase-bf-auction-pro.html.

The Apache Software Foundation. Servidor HTTP Apache. Glosario. [En línea] [Citado el: 11 de Febrero de 2011.] http://httpd.apache.org/docs/2.2/glossary.html.

The PHP Group. PHP. Que es PHP? - Manual. [En línea] [Citado el: 11 de Febrero de 2011.] http://www.php.net/manual/es/intro-whatis.php.

Wikipedia. Extensible Markup Language. Wikipedia, La enciclopedia libre. [En línea] [Citado el: 06 de Enero de 2011.] http://es.wikipedia.org/wiki/Xml.

—. Firefox. Wikipedia, La Enciclopedia Libre. [En línea] [Citado el: 11 de Febrero de 2011.] http://en.wikipedia.org/wiki/Firefox.

—. MD5. Wikipedia, La Enciclopedia Libre. [En línea] [Citado el: 06 de Enero de 2011.] http://en.wikipedia.org/wiki/MD5.

Page 151: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

151

—. Sistema de gestión de contenidos. Wikipedia, La Enciclopedia Libre. [En línea] [Citado el: 6 de Enero de 2011.] http://es.wikipedia.org/wiki/Cms.

—. WAMP. Wikipedia, La Enciclopedia Libre. [En línea] [Citado el: 11 de Febrero de 2011.] http://es.wikipedia.org/wiki/WAMP.

Page 152: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

152

ANEXOS

A. SEGURIDAD

El presente anexo es en su totalidad tomado de la ayuda del sitio web Joomla! Spanish.34 Y es una traducción del equipo de traducción y documentación de Joomla! Spanish cuyo texto original: "Joomla Administrator's Security Checklist", por rliskey (Moderador de Foros de http://forum.joomla.org). No se profundizará en la terminología, ejecución ni efectividad de los métodos recomendados para no salir de los objetivos del proyecto. a. CONSIDERACIONES GENERALES E ISPS

• Cambie sus contraseñas regularmente y no use siempre las mismas. • Utilice una combinación aleatoria de letras, números, o símbolos y evite

usar nombres o palabras que puedan ser encontradas en un diccionario. • Nunca utilice los nombres de sus parientes, mascotas, etc. • Si usted está usando un servicio compartido de hosting en su proveedor,

asegúrese de que ningún otro usuario en el servidor pueda ver o acceder a los archivos de su sitio, por ejemplo a través de cuentas shell, cpanel, etc.

• Nunca dependa de los backups de otro. Hágase responsable personalmente de respaldar regularmente los archivos de su sitio y su base de datos. Muchos ISPs expresan en sus contratos que usted no puede confiar únicamente en los backups que hace el proveedor de hosting.

• Utilice un sistema de Prevención/Detección de intrusos para bloquear/alertar sobre solicitudes HTTP maliciosas.

b. SERVIDORES DE DESARROLLO

• Configure un servidor local de desarrollo, y realice allí todas las actualizaciones y testeos. Los amigos de Apache proveen a XAMP, un instalador de aplicaciones LAMP fácil de usar y gratuito que trabaja en muchos sistemas operativos, incluyendo GNU/Linux y Windows.

• Algunos ISPs particulares ofertas de servidores de desarrollo y backups. 34 Joomla! Spanish Group. Centro de Ayuda Joomla! Spanish. Medidas de Seguridad en Joomla. [En línea] [Citado el: 20 de Febrero de 2011.] http://ayuda.joomlaspanish.org/content/view/205/94/.

Page 153: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

153

c. HTTP SERVER (APACHE, ETC.)

• PHP, MySQL y muchos otros componentes base fueron originalmente diseñados para Apache, y generalmente funcionan mejor en servidores Apache. Evite usar otros servidores si es posible.

• Utilice archivos .htaccess para bloquear intentos de exploits. • Regularmente revise los registros de acceso en busca de actividad

sospechosa. No confíe en sumarios y gráficas. Revise los "raw logs" (registros en crudo) para detalles más reales.

• Configure los filtros de Apache mod_security y mod_rewrite para que bloqueen ataques PHP.

d. MySQL

• Asegúrese de que la cuenta MySQL de Joomla! está configurada con acceso limitado. Este consciente de que la instalación inicial de MySQL es insegura. Una cuidadosa configuración manual es requerida luego de la instalación.

• En un servidor compartido, si usted puede ver los nombres de las bases de datos de otros usuarios, entonces puede estar bastante seguro de que ellos ven las suyas. Si ellos pueden ver las bases de datos que usted posea, ellos están innecesariamente un paso más cerca de entrar. Un buen ISP limitara estrictamente el acceso de cada usuario a sus propias bases de datos.

e. PHP

• Antes que nada PHP 4 ya no es mantenido activamente, actualice su código PHP a PHP 5.

• Aplique todos los parches necesarios para PHP y para aplicaciones basadas en PHP.

• Se recomienda un frecuente escaneo en ámbitos donde un gran número de aplicaciones PHP están en uso.

• Utilice herramientas como Paros Proxy para realizar pruebas automáticas de SQL Injection en contra de sus aplicaciones PHP.

• Siga el principio de "Least Privilege" (El menor privilegio) para correr PHP usando herramientas como PHPsuExec, php_suexec o suPHP desde suPHP.

Page 154: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

154

f. PHP.INI

• Estudie la lista oficial de directivas php.ini en www.php.net. • Configure register_globals OFF. Esta directiva determina si registrar o no

las variables EGPCS (Environment, GET, POST, Cookie, Server) como variables globales.

• Use disable_functions para desactivar peligrosas funciones PHP que no son necesarias para su sitio.

• Desactive allow_url_fopen. Esta opción activa las URL-aware fopen wrappers que permite el acceso a los objetos URL como archivos. Los wrappers (envolturas) son proveídos para el acceso de archivos remotos usando el ftp o el protocolo http, algunas extensiones como zlib son capaces de registrar wrappers adicionales. Nota: Esto solo puede ser configurado en php.ini por motivos de seguridad.

• Ajuste la directiva magic_gpc_quotes como sea necesario para su sitio. Debería estar en off para usar software bien escrito, y para los pobremente escritos scripts PHP 3 y PHP 4. magic_gpc_quotes configura el estado magic_quotes state para operaciones GPC (Get/Post/Cookie). Cuando magic_quotes esta on, todas las ' (single-quote/comillas-simples), " (double quote/comillas dobles), \ (backslash-barra invertida) y NUL's son evitadas con una barra invertida \ automáticamente.

• Modo Seguro: safe_mode (debería estar activado y configurado correctamente)

• open_basedir (debería estar activado y configurado correctamente). Limite los archivos que pueden ser abiertos por PHP al árbol de directorios especificado, incluyendo el archivo mismo. Esta directiva no es afectada si el Safe Mode esta On u Off. La restricción especificada con open_basedir es en realidad un prefijo, no un nombre de directorio. Esto significa que "open_basedir = /dir/incl" también permite el acceso "/dir/include" y "/dir/incls" si es que existen. Cuando quiere restringir el acceso solamente al directorio especificado, cierre con una barra /.

• Aquí hay directivas de ejemplo para las sugerencias anteriores: register_globals = 0 disable_functions = show_source, system, shell_exec, passthru, exec,

phpinfo, popen, proc_open allow_url_fopen = 0 magic_gpc_quotes = 0 safe_mode = 1 open_basedir = /dir/incl/

Page 155: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

155

g. Núcleo de Joomla! (Core)

• Siempre actualice a la última versión estable. • Descargue Joomla! solo de sitios oficiales, sitios de confianza: • Si usted descubre un problema de seguridad en el core de Joomla!, por

favor repórtelo lo antes posible. • Remueva todas las plantillas (templates) que no sean necesarias en su

sitio. • Edite globals.php para correr register_globals emulation off en Joomla!.

Aunque la emulación Joomla! es mucho más segura que la directiva PHP register_globals, es mejor no permitir para nada register_globals. Comenzando con PHP 6, está ni siquiera será una opción, y es cuestión de tiempo.

• Una vez que su sitio está configurado y es estable, Proteja contra escritura la mayor cantidad de archivos y directorios que pueda cambiando los permisos de directorios a 755, y los permisos de archivos a 644. Existe una característica de sitio --> Global Configuration (configuración global) --> que puede colocar los permisos de forma masiva por usted. Tenga en cuenta de que esta función masiva puede afectar el funcionamiento de los componentes, si lo hace pruebe el funcionamiento de los mismos. También tenga en cuenta de que es posible que no se puedan cambiar los permisos en todos los componentes o extensiones de terceros. Nota: Necesitara resetear los permisos si es que desea instalar extensiones más tarde. Sea consciente de que en algunos servidores, la opción de (Anular la protección contra escritura al guardar) puede que no funcione, aunque el aviso del sistema diga que si, por eso tendrá que cambiar las opciones de la configuración dándole permisos de escritura manualmente a su configuration.php.

h. Extensiones (Componentes, Módulos, y Bots) de Joomla!

• Remover todas las extensiones Joomla! que requieran register_globals ON. • Descargar extensiones solo de sitios de confianza. La definición oficial de

"sitio de confianza" es aquel sitio en el que USTED confía. • Antes de instalar extensiones de terceros, revise que no sea vulnerable. • Tenga cuidado! Las extensiones de terceros vienen en todos los sabores,

tamaños y antigüedad. Aunque existen los estándares de código Joomla! (coding standards), la extensiones listadas en el sitio oficial de Joomla! no son revisadas para ver si cumplen dichos estándares. Pruebe todas las extensiones en un sitio de desarrollo antes de instalarlas en un sitio "real" sitio en producción.

Page 156: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

156

• Respalde su sitio y la base de datos del mismo antes de instalar nuevas extensiones.

• Revise regularmente: Cuestiones de seguridad de terceros a Joomla! • Remueva cualquier extensión no usada, y revise doblemente que los

directorios y archivos relacionados hayan sido borrados. i. Reforzando Joomla!

• Requerido: Contrate a un consultor profesional de seguridad Joomla! para que revise la configuración de su sitio.

• Requerido: No utilice un servidor compartido. Algunos expertos difieren en este item. El punto es, no importa como este configurado su servidor, asegúrese de que usted sea la única organización con acceso.

• Requerido: Utilice un servidor SSL para todos los logins y funciones administrativas, y por supuesto para transacciones confidenciales con los clientes. Asegúrese de tener un muy buen abogado si es que no quiere usar SSL.

• Requerido: Separe los servidores de desarrollo y producción (pruebas y sitio real), y desactive las funciones administrativas en la parte pública del sitio. Utilizar subdominios es una buena forma de hacer esto.

• Recomendado: Mueva archivos básicos que no requieran acceso de escritura por sobre la raíz web (Web root) y modifique las variables de ruta (path variables) o utilice Symlinks. Por ejemplo los archivos de configuración o el directorio de administración.

• Recomendado: Para evitar el acceso URL directo a las extensiones, edite la configuración Apache, .htaccess, o mueva directorios de las extensiones por sobre la raíz web, y modifique las variables de ruta.

• Opcional: Asegúrese de que todos los directorios escribibles (images, galleries, caches, etc.) están por sobre la raíz web y modifique las variables de ruta. Revise los directorios de las extensiones en busca de sus propios directorios de descarga o con permisos de escritura.

• Opcional: Mueva todo el sitio Joomla! por sobre la raíz web excepto por aquellos archivos que requieran acceso http directo, tales como "/index.php", y modifique las variables de ruta.

• Opcional: Para un mejor control de espacios de nombre dentro de PHP, utilice código OO en sus extensiones.

• Opcional: Bloquee accesos cruzados a la base de datos. • Opcional: Cree bases de datos y cuentas MySQL separadas para

extensiones confidenciales. • Opcional: Para el acceso a la base de datos principal para extensiones no

del todo confiables (inicialmente casi todas), utilice una cuenta de MySQL separada con pocos privilegios.

Page 157: DESARROLLO DE UNA EXTENSIÓN AUTOINSTALABLE DE UN

157

• Opcional: Si no quiere anunciarle a los script kiddies cuales URLs necesitan protección del acceso directo, puede tratar de redirigirlos a una página de error 404. Esto les indicara que esa URL no es válida, más que anunciarles que existe pero que necesita protección. (No olvide crear la página de error.) friesengeist apunta a eso, si un cracker usa alguna otra herramienta más que un navegador para acceder a su sitio, el script ignorara el header(), corriendo, y ejecutando el resto del código. Si realmente quiere la redirección, debe añadir exit; después de header().