You are on page 1of 196

PORTADA ESCUELA SUPERIOR POLICTCNICA DE CHIMBORAZO

FACULTAD DE INFORMTICA Y ELECTRNICA

ESCUELA DE INGENIERA EN SISTEMAS ANLISIS DE PYTHON CON DJANGO FRENTE A RUBY ON RAILS PARA DESARROLLO GIL DE APLICACIONES WEB. CASO PRCTICO: DECH.

TESIS DE GRADO

Previa obtencin del ttulo de:

INGENIERO EN SISTEMAS INFORMTICOS

Presentado por: PAUL DAVID CUMBA ARMIJOS BYRON AUGUSTO BARRENO PILCO

RIOBAMBA ECUADOR 2012

- 2-

AGRADECIMIENTO

La vida es una carrera incesante por alcanzar metas y objetivos, los mismo que son la recompensa del esfuerzo y dedicacin que con el apoyo de las personas que quieres y estimas pueden llegar hacerse una realidad, es por eso que agradezco principalmente a Dios, a mi mami Susana, a mi familia, a mi director Danilo, mi amigo Byron y dems maestros, compaeros y amigos que de una u otra manera me supieron brindar el apoyo y el incentivo para culminar con xito esta etapa de mi vida.

Paul Cumba Armijos

- 3-

DEDICATORIA

Dedico este trabajo a mi Mamita Susana Armijos que ha sido el pilar fundamental en todo el desarrollo de mi vida, que siempre supo extenderme su abrigo cuando ms lo necesite, que gracias a su apoyo, comprensin y constancia me hace poder ser una persona de bien para la sociedad.

Paul Cumba Armijos.

- 4-

FIRMAS RESPONSABILIDAD Y NOTA

NOMBRE Ing. Ivn Menes Camejo DECANO DE LA FACULTAD DE INFORMTICA Y ELECTRONICA Ing. Ral Rosero DIRECTOR DE LA ESCUELA DE INGENIERIA EN SISTEMAS Ing. Danilo Pastor DIRECTOR DE TESIS Ing. Gloria Arcos MIEMBRO DEL TRIBUNAL Tlgo. Carlos Rodrguez DIRECTOR DEL CENTRO DE DOCUMENTACIN

FIRMA ..

FECHA

..

.. .. ..

- 5-

RESPONSABILIDAD DEL AUTOR

Nosotros Paul David Cumba Armijos y Byron Augusto Barreno Pilco, somos los responsables de las ideas, doctrinas y resultados expuestos en esta Tesis de Grado, y el patrimonio intelectual de la misma pertenece a la Escuela Superior Politcnica de Chimborazo.

FIRMAS:

_________________________ Paul David Cumba Armijos

_________________________ Byron Augusto Barreno Pilco

- 6-

ABREVIATURAS

A ABE Ancho de Banda de Entrada ABS Ancho de Banda de Salida ACL Access Control List ACO Acces Control Object - Objetos de control de acceso AM Agile Modeling Modelado Agile AJAX Asynchronus Javascript and XML Javascript y XML Asncrono API Aplication Programming Interface. Interfaz de Programacin de Aplicaciones ARO Acces Request Object Objetos que desean acceder a recursos (usuario o grupos) B BD Base de Datos BSD Berkeley Software Distribution Distribucin de Software Berkeley C CLR. Common Language Runtime Lenguaje Comn de Ejecucin CRC Clase Responsabilidad y Colaboracin CSS Cascading Style Sheets Hoja de Estilo en Cascada CUxP Consumo de Usuarios por Prueba CUxT Consumo de Usuarios por Transaccin D DECH Direccion de Estudios de Chimborazo DJ Django DLL Dynamically Linked Library - Librera de Enlace Dinmico F FAQ Frencuently Asked Question - Preguntas y Respuestas Frecuentes G

- 7-

GPL General Public License - Licencia Pblica General GUI Graphical User Interface- Interfaz grfica de usuario H HTML Hypertext Markup Language - Lenguaje de marcado de hipertexto HTTP Hypertext Transfer Protocol Protocolo de transferencia de Hipertexto HW Hardware I IBM International Business Machines Maquinas de Negocios Internacional IDE Integrated Development Environment - Entorno de Desarrollo Integrado IIS Internet Information Server Servidor de informacin de Internet IDE: (Integrated Development environment Entorno de desarrollo integrado) IMAP: (Internet Message Access protocol Protocolo de acceso a mensajes de internet) ISAPI Internet Server (API) Application Programming Interface - Interfaz de programacin de aplicaciones para Internet Information Server L LOC Line of Code M MABR Mnimo Ancho de Banda Requerido MD5 Message-Digest Algorithm 5 MPL Mozilla Public License MVC Modelo Vista Controlador N NAT Network AddressTranslation O ODBC Open DataBase Connectivity OO Orientados a objetos ORM Object Relational Mapping P

- 8-

P Promedio mximo PHP Personal Home Page PHTML PHP Hypertext Markup Language POO Programacin Orientada a Objetos POP3: (Post Office Protocol protocolo de oficina de correos) R RoR Ruby on Rails RAD: (Rapid Application Development Desarrollo Rpido de Aplicaciones) S SOAP Simple Object Access Protocol Protocolo de Acceso a objetos simples SQL Structure Query Language - Lenguaje de Consulta Estructurado U URI: (Uniform Resource Identifier Identificador uniforme del recurso) URL Uniform Resource Locator - Localizador Uniforme de Recursos UML Unified Modeling Language - Lenguaje de modelado unificado V VR Velocidad de la Red VRTU Velocidad de Red Para el Total de Usuarios X XML Extended Markup Language - Lenguaje de marcado extendido XP Extreme Programming Programacin extrema

- 9-

INDICE GENERAL

PORTADA........................................................................................................................ 1 AGRADECIMIENTO ...................................................................................................... 2 DEDICATORIA ............................................................................................................... 3 FIRMAS RESPONSABILIDAD Y NOTA ...................................................................... 4 RESPONSABILIDAD DEL AUTOR .............................................................................. 5 ABREVIATURAS............................................................................................................ 6 INDICE GENERAL ......................................................................................................... 9 INDICE DE FIGURAS .................................................................................................. 15 INDICE DE TABLAS .................................................................................................... 19 INTRODUCCIN .......................................................................................................... 22 1. CAPTULO I: .......................................................................................................... 24

MARCO REFERENCIAL .............................................................................................. 24 1.1. 1.2. Antecedentes .................................................................................................... 24 Justificacin del Proyecto de Tesis .................................................................. 27 Justificacin Terica ................................................................................. 27 Justificacin Prctica ................................................................................ 27

1.2.1. 1.2.2. 1.3.

Objetivos .......................................................................................................... 28 Objetivo General: ...................................................................................... 28 Objetivos Especficos. .............................................................................. 28

1.3.1. 1.3.2. 1.4. 1.5.

Hiptesis ........................................................................................................... 28 Mtodos y Tcnicas.......................................................................................... 29 Mtodos .................................................................................................... 29 Tcnicas .................................................................................................... 29

1.5.1. 1.5.2. 2.

CAPTULO II:......................................................................................................... 30

MARCO TEORICO ....................................................................................................... 30 2.1. Definiciones ......................................................................................................... 30 Lenguajes de Programacin ......................................................................... 30 Lenguaje de Programacin Python ............................................................... 31 Historia .................................................................................................. 31 Caractersticas y Paradigmas................................................................. 32

2.1.1. 2.1.2.

2.1.2.1. 2.1.2.2.

- 10-

2.1.2.3. 2.1.2.4. 2.1.2.5. 2.1.2.6. 2.1.3.

Filosofa................................................................................................. 33 Modo Interactivo ................................................................................... 34 Elementos del Lenguaje ........................................................................ 35 Frameworks Web para Python .............................................................. 37

Lenguaje de Programacin Ruby ................................................................. 38 Filosofa................................................................................................. 39 Caractersticas ....................................................................................... 41 Semntica .............................................................................................. 42 Sintaxis .................................................................................................. 43 La flexibilidad de Ruby......................................................................... 44 La apariencia visual de Ruby ................................................................ 44

2.1.3.2. 2.1.3.3. 2.1.3.4. 2.1.3.5. 2.1.3.6. 2.1.3.7. 2.1.4. 2.1.5.

Frameworks web para Ruby. ........................................................................ 45 El Patrn de Diseo Modelo Vista Controlador ........................................... 46 Descripcin ........................................................................................... 46 Historia del MVC .................................................................................. 47 Ventajas del MVC [11] ......................................................................... 49 Desventajas del MVC [13] .................................................................... 50

2.1.5.1. 2.1.5.2. 2.1.5.3. 2.1.5.4. 2.1.6. 2.1.7.

Framework Web ........................................................................................... 50 Framework Web Rails para Ruby ................................................................ 50 Filosofa................................................................................................. 51 Ventajas de RoR respecto a otros frameworks ..................................... 52 Arquitectura MVC de Rails .................................................................. 53 Otros mdulos ....................................................................................... 55 Gemas .................................................................................................... 55 Soporte de servidores Web.................................................................... 55 Soporte de Bases de Datos .................................................................... 56 Entornos de trabajo (IDE) ..................................................................... 56

2.1.7.1. 2.1.7.2. 2.1.7.3. 2.1.7.4. 2.1.7.5. 2.1.7.6. 2.1.7.7. 2.1.7.8. 2.1.8.

Framework Web Django para Python .......................................................... 57 Visin General ...................................................................................... 57 Conceptualizacin de Django ............................................................... 57 Caractersticas de Django ...................................................................... 58 Arquitectura de Django ......................................................................... 59

2.1.8.1. 2.1.8.2. 2.1.8.3. 2.1.8.4.

- 11-

2.1.8.5. 2.1.8.6. 2.1.8.7. 2.1.9.

Soporte de Base de Datos ...................................................................... 61 Soporte de Servidores Web ................................................................... 62 Requerimientos ..................................................................................... 63

Desarrollo gil de aplicaciones web ............................................................. 64 Objetivos de las Gestin gil ............................................................... 64 Principales Modelos de Gestin gil .................................................... 64

2.1.9.1. 2.1.9.2.

2.1.10. El Modelo de Gestin SCRUM .................................................................... 65 2.1.10.1. 2.1.10.2. 3. Origen. ................................................................................................... 65 Introduccin al modelo ......................................................................... 65

CAPTULO III: ....................................................................................................... 70

ANALISIS COMPARATIVO DE LOS FRAMEWORKS DJANGO DE PYTHON FRENTE A RUBY ON RAILS ...................................................................................... 70 3.1. Anlisis de los Frameworks ................................................................................. 70 Django de Python ......................................................................................... 70 Ruby on Rails ............................................................................................... 72 Historia .................................................................................................. 72 Licenciamiento ...................................................................................... 73

3.1.1. 3.1.2.

3.1.2.1. 3.1.2.2. 3.2.

Determinacin de parmetros de productividad para la comparacin ................. 73 Manejo del Patrn MVC .............................................................................. 75 Indicador 1: Modelo/Acceso a Datos. ................................................... 75 Indicador 2: Vista .................................................................................. 76 Indicador 3: Controlador ....................................................................... 77

3.2.1.

3.2.1.1. 3.1.2.2. 3.2.3.3. 3.2.4.

Principio DRY (Don`t Repeat Yourself) ...................................................... 77 Indicador 4: Reutilizacin ..................................................................... 78

3.2.4.1. 3.2.5.

Seguridad ...................................................................................................... 78 Indicador 5: Seguridad de aplicacin .................................................... 78

3.2.5.1. 3.2.6.

Producto ........................................................................................................ 79 Indicador 6: Madurez de producto ........................................................ 79 Indicador 7: Instalacin ......................................................................... 80

3.2.6.1. 3.2.6.2. 3.3.

Descripcin de los mdulos de pruebas ............................................................... 80 Mdulo 1 ...................................................................................................... 81 Manejo del patrn MVC ....................................................................... 81

3.3.4.

3.3.4.1.

- 12-

3.3.4.2. 3.3.5. 3.3.6. 3.4.

Principio DRY ....................................................................................... 82

Mdulo 2 ...................................................................................................... 82 Mdulo 3 ...................................................................................................... 82

Desarrollo de los mdulos de pruebas ................................................................. 82 Desarrollo de los mdulos de prueba con la tecnologa Django Framework83 Mdulo 1 ............................................................................................... 84 Mdulo 2 ............................................................................................... 91 Mdulo 3 ............................................................................................... 93

3.4.4.

3.4.4.1. 3.4.4.2. 3.4.4.3.

3.4.5. Desarrollo de los mdulos de prueba con la tecnologa Ruby on Rails Framework .................................................................................................................. 95 3.4.5.1. 3.4.5.2. 3.4.5.3. 3.5. Mdulo 1 ............................................................................................... 95 Mdulo 2 ............................................................................................. 105 Mdulo 3 ............................................................................................. 109

Anlisis Comparativo ........................................................................................ 111 Manejo del patrn MVC ............................................................................. 113 Indicador 1: Modelo/Acceso a datos ................................................... 113 Valoraciones le parmetro Modelo / Acceso a datos .......................... 115 Interpretacin ...................................................................................... 115 Calificacin ......................................................................................... 116 Representacin de Resultados ............................................................. 117

3.5.4.

3.5.4.1. 3.5.4.2. 3.5.4.3. 3.5.4.4. 3.5.4.5. 3.5.5.

Indicador 2: Vista ....................................................................................... 118 Valoraciones ........................................................................................ 119 Interpretacin ...................................................................................... 120 Calificacin ......................................................................................... 120 Representacin de Resultados ............................................................. 122

3.5.5.1. 3.5.5.2. 3.5.5.3. 3.5.5.4. 3.5.6.

Indicador 3: Controlador ............................................................................ 122 Valoraciones ........................................................................................ 124 Interpretacin ...................................................................................... 124 Calificacin ......................................................................................... 125 Representacin de Resultados ............................................................. 126

3.5.6.1. 3.5.6.2. 3.5.6.3. 3.5.6.4. 3.5.7.

Indicador 4: Reutilizacin .......................................................................... 126 Valoraciones ........................................................................................ 128

3.5.7.1.

- 13-

3.5.7.2. 3.5.7.3. 3.5.7.4. 3.5.7.5. 3.5.7.6. 3.5.7.7. 3.5.7.8. 3.5.7.9. 3.5.7.10. 3.5.7.11. 3.5.7.12. 3.5.7.13. 3.5.7.14. 3.5.7.15. 3.5.7.16. 3.6. 3.7. 3.8. 3.9. 3.10. 4.

Interpretacin ...................................................................................... 129 Calificacin ......................................................................................... 130 Representacin de resultados .............................................................. 131 Valoraciones ........................................................................................ 133 Interpretacin ...................................................................................... 134 Calificacin ......................................................................................... 135 Representacin de Resultados ............................................................. 136 Valoraciones ........................................................................................ 138 Interpretacin ...................................................................................... 138 Calificacin ......................................................................................... 139 Representacin de Resultados ............................................................. 140 Valoraciones ........................................................................................ 142 Interpretacin ...................................................................................... 142 Calificacin ......................................................................................... 143 Representacin de Resultados ............................................................. 144

Puntajes Alcanzados .......................................................................................... 144 Diagrama General de Resultados ....................................................................... 146 Interpretacin ..................................................................................................... 147 Anlisis de Resultados ....................................................................................... 148 Comprobacin de Hiptesis ........................................................................... 149

CAPTULO IV: ..................................................................................................... 156

DESARROLLO DEL SISTEMA DE CONTROL DE DOCENTES CONTRATADOS DE LA DIRECCION DE ESTUDIOS CHIMBORAZO ............................................. 156 4.2. Ingeniera de la Informacin .............................................................................. 157 Definicin del mbito ................................................................................ 157 Requerimientos ........................................................................................... 159 Requerimientos Funcionales ............................................................... 159 Requerimientos No Funcionales ......................................................... 160

4.2.4. 4.2.5.

4.2.5.1. 4.2.5.2. 4.2.6.

Estudio de Factibilidad ............................................................................... 161 Factibilidad Tcnica ............................................................................ 161 Factibilidad Operativa ......................................................................... 162 Factibilidad Legal................................................................................ 162

4.2.6.1. 4.2.6.2. 4.2.6.3.

- 14-

4.2.7. 4.3.

Agenda del proyecto segn SCRUM ......................................................... 162

Anlisis del Sistema ........................................................................................... 162 Definir Casos de Uso esenciales en formato extendido ............................. 162 Diagrama de Secuencias ............................................................................. 178

4.3.4. 4.3.5. 4.4.

Diseo ................................................................................................................ 183 Diagrama de Clases .................................................................................... 183 Diagrama de Componentes......................................................................... 183 Diagrama de Nodos .................................................................................... 184

4.4.4. 4.4.5. 4.4.6. 4.5.

Implementacin y Pruebas ................................................................................. 184 Definicin de estndares de Programacin ................................................ 184 Pruebas Unitarias ........................................................................................ 184 Pruebas de Mdulos y del Sistema ............................................................. 185

4.5.4. 4.5.5. 4.5.6.

CONCLUSIONES ........................................................................................................ 186 RECOMENDACIONES ............................................................................................... 189 RESUMEN ................................................................................................................... 190 BIBLIOGRAFIA .......................................................................................................... 191 ANEXOS ...................................................................................................................... 196

- 15-

INDICE DE FIGURAS

CAPTULO II ILUSTRACIN II. 1: LENGUAJES DE PROGRAMACIN........................................................ 31 ILUSTRACIN II. 2: CDIGO PYTHON CON COLOREADO DE SINTAXIS ............................... 32 ILUSTRACIN II. 3: EJEMPLO DEL MODO INTERACTIVO DE PYTHON ................................. 34 ILUSTRACIN II. 4: YUKIHIRO MATSUMOTO, CREADOR DE RUBY .................................... 38 ILUSTRACIN II. 5: LOGO DEL LENGUAJE DE PROGRAMACIN RUBY. .............................. 39 ILUSTRACIN II. 6: MODELO VISTA CONTROLADOR ........................................................ 47 ILUSTRACIN II. 7: LOGO RUBY ON RAILS. ...................................................................... 51 ILUSTRACIN II. 8: LOGO DE DJANGO.............................................................................. 57 ILUSTRACIN II. 9: ESTRUCTURA MVC DJANGO ............................................................. 60 ILUSTRACIN II. 10: PATRN MVC VS PATRN MVT .................................................... 61 ILUSTRACIN II. 11: ARQUITECTURA DJANGO................................................................. 61 ILUSTRACIN II. 12: ESTRUCTURA DEL DESARROLLO GIL. ............................................. 66 ILUSTRACIN II. 13: ESTRUCTURA CENTRAL DE SCRUM .................................................. 66 ILUSTRACIN II. 14: SIN NOMBRE .................................................................................... 68

CAPTULO III ILUSTRACIN III. 1: ESTRUCTURA DETALLADA DE DJANGO MVT................................... 83 ILUSTRACIN III. 2CONFIGURACIN DE LA CONEXIN A LA BD EN SETTINGS.PY ............ 84 ILUSTRACIN III. 3: CREACION DE LOS MODELOS. ........................................................... 85 ILUSTRACIN III. 4: VALIDACIN Y SINCRONIZACIN A LA BASE DE DATOS. ................... 86 ILUSTRACIN III. 5: CREACIN DE NUEVAS INSTITUCIONES UTILIZANDO EL ORM. ......... 86 ILUSTRACIN III. 6: CONSULTA DE INSTITUCIONES A LA BASE DE DATOS A TRAVS DEL ORM ........................................................................................................................ 87 ILUSTRACIN III. 7: CREACIN DEL DOCUMENTO BASE HTML. ...................................... 87 ILUSTRACIN III. 8: USO DE HOJAS DE ESTILO CSS CON DJANGO .................................... 88 ILUSTRACIN III. 9: PAGINA INDEX.HTML CON EL USO DE ETIQUETAS. ............................ 88 ILUSTRACIN III. 10: VISTA DE LA PANTALLA PRINCIPAL INDEX.HTML ........................... 89 ILUSTRACIN III. 11: CREACIN DEL FORMULARIO DOCENTE A PARTIR DEL MODELO. .... 89

- 16-

ILUSTRACIN III. 12: PLANTILLA PARA INGRESAR UN NUEVO DOCENTE. ......................... 90 ILUSTRACIN III. 13: FORMULARIO GENERADO AUTOMTICAMENTE A PARTIR DEL
MODELO.................................................................................................................... 90

ILUSTRACIN III. 14: VALIDACIN EN CASO DE QUE LOS CAMPOS ESTN VACIOS ............ 91 ILUSTRACIN III. 15: VALIDACIN EN CASO QUE LOS DATOS INGRESADOS SEAN
INCORRECTOS. .......................................................................................................... 91

ILUSTRACIN III. 16: USO DE LAS FUNCIONES PROPIAS DE AUTENTICACIN DE DJANGO . 92 ILUSTRACIN III. 17: IMPLEMENTACIN DEL FORMULARIO DE AUTENTICACIN DE
USUARIOS. ................................................................................................................ 92

ILUSTRACIN III. 18: SITIO DE ADMINISTRACIN DE DJANGO ......................................... 92 ILUSTRACIN III. 19: AUTENTICACIN DEL SISTEMA PROTOTIPO DE PRUEBAS. ............... 93 ILUSTRACIN III. 20: VALIDACIN DE USUARIO INCORRECTO. ........................................ 93 ILUSTRACIN III. 21: VERSIN DEL FRAMEWORK DJANGO. ............................................ 94 ILUSTRACIN III. 22: INSTALACIN DE DJANGO .............................................................. 94 ILUSTRACIN III. 23: ENTORNO DE DESARROLLO WEB APTANA STUDIO 3.0 ................... 95 ILUSTRACIN III. 24: CREACIN DE UN PROYECTO CON ROR .......................................... 96 ILUSTRACIN III. 25: ESTRUCTURA DE DIRECTORIOS DE UN PROYECTO CON ROR ........... 96 ILUSTRACIN III. 26: CONFIGURACIN DE LA BASE DE DATOS......................................... 97 ILUSTRACIN III. 27: CREACIN MEDIANTE SCAFFOLD DEL MVC PARA INSTITUCIN. ... 98 ILUSTRACIN III. 28: CREACIN MEDIANTE SCAFFOLD DEL MVC PARA DOCENTE ......... 98 ILUSTRACIN III. 29: CREACIN MEDIANTE SCAFFOLD DEL MVC PARA CONTRATO ....... 99 ILUSTRACIN III. 30: MODELO DE LA CLASE CONTRATO. ................................................ 99 ILUSTRACIN III. 31: MODELO DE LA CLASE DOCENTE. ................................................ 100 ILUSTRACIN III. 32: MODELO DE LA CLASE INSTITUCIN. ........................................... 100 ILUSTRACIN III. 33: ESTRUCTURA DE LAS VISTAS GENERADAS POR SCAFFOLD. .......... 100 ILUSTRACIN III. 34: CDIGO HTML CON CDIGO RUBY EMBEBIDO DEL _FORM.HTML.ERB ................................................................................................... 101 ILUSTRACIN III. 35: CDIGO HTML CON CDIGO RUBY EMBEBIDO DEL INDEX.HTML.ERB ............................................................................................................................... 101 ILUSTRACIN III. 36: CDIGO HTML CON CDIGO RUBY EMBEBIDO DEL SHOW.HTML.ERB ............................................................................................................................... 102

- 17-

ILUSTRACIN III. 37: CDIGO HTML CON CDIGO RUBY EMBEBIDO DEL NEW.HTML.ERB ............................................................................................................................... 102 ILUSTRACIN III. 38: CDIGO HTML CON CDIGO RUBY EMBEBIDO DEL EDIT.HTML.ERB ............................................................................................................................... 102 ILUSTRACIN III. 39: PLANTILLA BASE DE LA APLICACIN PROTOTIPO. ......................... 103 ILUSTRACIN III. 40: PGINA DE INICIO DE LA APLICACIN PROTOTIPO. ....................... 103 ILUSTRACIN III. 41: CONTROLADORES DE LA APLICACIN PROTOTIPO. ....................... 104 ILUSTRACIN III. 42: EJEMPLO DE UN CONTROLADOR ESTNDAR GENERADO POR
SCAFFOLDING. ........................................................................................................ 105

ILUSTRACIN III. 43: EJEMPLO DE UN CONTROLADOR ESTNDAR GENERADO POR


SCAFFOLDING. ........................................................................................................ 105

ILUSTRACIN III. 44: EJEMPLO DE VALIDACIN DE DATOS. ........................................... 105 ILUSTRACIN III. 45: INSTALACIN DE DEVISE. ............................................................. 106 ILUSTRACIN III. 46: CLASE USER QUE SE UTILIZA EN LA AUTENTICACIN CON DEVISE. ............................................................................................................................... 107 ILUSTRACIN III. 47: INTERFAZ PARA REALIZAR EL LOGIN. ........................................... 107 ILUSTRACIN III. 48: ERROR AL INGRESAR UN USUARIO O CONTRASEA INCORRECTOS. ............................................................................................................................... 107 ILUSTRACIN III. 49: AUTENTICACIN CORRECTA ........................................................ 108 ILUSTRACIN III. 50: VERSIN DE RAILS ....................................................................... 110 ILUSTRACIN III. 51: INSTALACIN DE RAILS 3.1.3 ...................................................... 111 ILUSTRACIN III. 52: RESULTADO FINAL DEL INDICADOR 1: MODELO .......................... 117 ILUSTRACIN III. 53: RESULTADO FINAL DEL INDICADOR 2: VISTA .............................. 121 ILUSTRACIN III. 54: RESULTADO FINAL DEL INDICADOR 3: CONTROLADOR ................ 126 ILUSTRACIN III. 55: RESULTADO FINAL DEL INDICADOR 4: REUTILIZACIN ............... 131 ILUSTRACIN III. 56: RESULTADO FINAL DEL INDICADOR 3: SEGURIDAD DE APLICACIN ............................................................................................................................... 136 ILUSTRACIN III. 57: RESULTADO FINAL DEL INDICADOR 6: MADUREZ DEL PRODUCTO140 ILUSTRACIN III. 58: RESULTADO FINAL DEL INDICADOR 7: INSTALACIN................... 144 ILUSTRACIN III. 59: GRAFICA GENERAL DE RESULTADOS ............................................ 146 ILUSTRACIN III. 60: RESULTADO FINAL DEL ANLISIS ................................................ 155

- 18-

CAPITULO IV ILUSTRACIN IV. 1 DIAGRAMA DE CASO DE USO AUTENTICACIN ............................... 174 ILUSTRACIN IV. 2. DIAGRAMA DE CASO DE USO CREACIN DE CUENTA .................... 174 ILUSTRACIN IV. 3. DIAGRAMA DE CASO DE CAMBIAR DATOS DE USUARIO ................ 175 ILUSTRACIN IV. 4. DIAGRAMA DE CASO DE USO DE INGRESOS. .................................. 175 ILUSTRACIN IV. 5. DIAGRAMA DE CASO DE USO EDICIN DE REGISTROS. .................. 176 ILUSTRACIN IV. 6. DIAGRAMA DE CASO DE USO ELIMINACIN DE REGISTROS. .......... 176 ILUSTRACIN IV. 7. DIAGRAMA DE CASO DE USO DE CONTRATACIN.......................... 177 ILUSTRACIN IV. 8. DIAGRAMA DE CASO DE USO UTILIZACIN SISTEMA .................... 178 ILUSTRACIN IV. 9. DIAGRAMA DE SECUENCIAS AUTENTICACIN ............................... 179 ILUSTRACIN IV. 10. DIAGRAMA DE SECUENCIAS CREACIN DE CUENTA .................... 179 ILUSTRACIN IV. 11. DIAGRAMA DE SECUENCIAS CAMBIAR DATOS USUARIO ............. 179 ILUSTRACIN IV. 12. DIAGRAMA DE SECUENCIA DE INGRESOS ..................................... 180 ILUSTRACIN IV. 13. DIAGRAMA DE EDICIN DE REGISTROS........................................ 181 ILUSTRACIN IV. 14. DIAGRAMA DE ELIMINACIN DE REGISTROS ............................... 181 ILUSTRACIN IV. 15. DIAGRAMA DE CONTRATACIN ................................................... 182 ILUSTRACIN IV. 16. DIAGRAMA DE SECUENCIAS UTILIZACIN SISTEMA .................... 182 ILUSTRACIN IV. 17. DIAGRAMA DE CLASES ................................................................ 183 ILUSTRACIN IV. 18. DIAGRAMA DE COMPONENTES ..................................................... 183 ILUSTRACIN IV. 19. DIAGRAMA DE NODOS ................................................................. 184

- 19-

INDICE DE TABLAS

CAPTULO II TABLA II. 1: TIPOS DE DATOS DE PYTHON ....................................................................... 36

CAPTULO III TABLA III. 1: PARMETROS E INDICADORES A VALORAR. ................................................ 74 TABLA III. 2: DESCRIPCIN INDICADOR 1, MODELO/ACCESO A DATOS ........................... 75 TABLA III. 3: DESCRIPCIN INDICADOR 2, VISTA ............................................................ 76 TABLA III. 4: DESCRIPCIN INDICADOR 3, CONTROLADOR .............................................. 77 TABLA III. 5: DESCRIPCIN INDICADOR 4, REUTILIZACIN ............................................. 78 TABLA III. 6: DESCRIPCIN INDICADOR 5, SEGURIDAD DE APLICACIN .......................... 78 TABLA III. 7: DESCRIPCIN INDICADOR 6, MADUREZ DEL PRODUCTO ............................. 79 TABLA III. 8: DESCRIPCIN INDICADOR 7, INSTALACIN................................................. 80 TABLA III. 9: VERSIONES DE ROR ................................................................................. 109 TABLA III. 10: VALORACIN CUALITATIVA Y CUANTITATIVA. ...................................... 111 TABLA III. 11: ESCALA DE VALORACIN CUALITATIVA Y CUANTITATIVA PARA LOS
INDICADORES .......................................................................................................... 112

TABLA III. 12: EQUIVALENCIAS DE LOS VALORES CUANTITATIVOS. .............................. 112 TABLA III. 13: SOPORTE A MLTIPLES BASES DE DATOS ................................................ 113 TABLA III. 14: MANIPULACIN CON LA BASE DE DATOS ................................................ 113 TABLA III. 15: DESEMPEO CON LA BASE DE DATOS...................................................... 114 TABLA III. 16: MAPEADOR DEL OBJETO RELACIONAL .................................................... 114 TABLA III. 17: RESULTADOS DEL INDICADOR 2: VISTA ................................................. 115 TABLA III. 18: MODELO, CON SUS DIFERENTES NDICES ................................................ 117 TABLA III. 19: VALORIZACIN DEL NDICE 2.1: USO DE PLANTILLAS ............................ 118 TABLA III. 20: VALORIZACIN DEL NDICE 2.2: ADAPTACIN CON HOJAS DE ESTILO. ... 119 TABLA III. 21: VALORIZACIN DEL NDICE 2.3: FUSIN DE CDIGO Y DISEO .............. 119 TABLA III. 22: RESULTADOS DEL INDICADOR 2: VISTA ................................................. 119 TABLA III. 23: REPRESENTACIN DEL INDICADOR 2: VISTA, CON SUS DIFERENTES NDICES ............................................................................................................................... 122

- 20-

TABLA III. 24: VALORIZACIN DEL NDICE 3.1: GENERACIN AUTOMTICA DE


FORMULARIOS

........................................................................................................ 123

TABLA III. 25: VALORIZACIN DEL NDICE 3.2: VALIDACIN DE FORMULARIOS ........... 123 TABLA III. 26: VALORIZACIN DEL NDICE 2.3: MANEJO VISUAL DE COMPONENTES DE
FORMULARIO .......................................................................................................... 123

TABLA III. 27: RESULTADOS DEL INDICADOR 3: CONTROLADOR. .................................. 124 TABLA III. 28: REPRESENTACIN DEL INDICADOR 3: CONTROLADOR, CON SUS DIFERENTES NDICES .................................................................................................................. 126 TABLA III. 29: VALORIZACIN DEL NDICE 4.1: HERENCIA DE CLASE BASE................... 127 TABLA III. 30: VALORIZACIN DEL NDICE 4.2: HERENCIA DE PLANTILLAS .................. 127 TABLA III. 31: VALORIZACIN DEL NDICE 4.3: PERSONALIZACIN DE CDIGO HEREDADO. ............................................................................................................................... 128 TABLA III. 32: VALORIZACIN DEL NDICE 4.4: ADAPTACIN A LOS CAMBIOS .............. 128 TABLA III. 33: RESULTADOS DEL INDICADOR 4: REUTILIZACIN .................................. 128 TABLA III. 34: REPRESENTACIN DEL INDICADOR 4: REUTILIZACIN, CON SUS
DIFERENTES NDICES............................................................................................... 131

TABLA III. 35: VALORIZACIN DEL NDICE 5.1: VARIABLE USO DE SESIN ................... 132 TABLA III. 36: VALORIZACIN DEL NDICE 5.2: MANEJO DE COOKIES ........................... 132 TABLA III. 37: VALORIZACIN DEL NDICE 5.3: ENCRIPTACIN DE DATOS .................... 133 TABLA III. 38: VALORIZACIN DEL NDICE 5.4: VALIDACIN DE DATOS ....................... 133 TABLA III. 39: RESULTADOS DEL INDICADOR 5: SEGURIDAD DE LA APLICACIN........... 133 TABLA III. 40: REPRESENTACIN DEL INDICADOR 5: SEGURIDAD DE APLICACIN, CON SUS
DIFERENTES NDICES............................................................................................... 136

TABLA III. 41: VALORIZACIN DEL NDICE 6.1: ESPECIFICACIONES .............................. 137 TABLA III. 42: VALORIZACIN DEL NDICE 6.2: LICENCIAMIENTO ................................ 137 TABLA III. 43: VALORIZACIN DEL NDICE 6.3: COSTO ................................................. 138 TABLA III. 44: RESULTADOS DEL INDICADOR 6: MADUREZ DEL PRODUCTO .................. 138 TABLA III. 45: REPRESENTACIN DEL INDICADOR 6: MADUREZ DEL PRODUCTO, CON SUS
DIFERENTES NDICES............................................................................................... 140

TABLA III. 46: VALORIZACIN DEL NDICE 7.1: ESPECIFICACIONES .............................. 141 TABLA III. 47: VALORIZACIN DEL NDICE 7.2: ENTORNO DE DESARROLLO.................. 141 TABLA III. 48: VALORIZACIN DEL NDICE 7.3: TIEMPO DE INSTALACIN..................... 142

- 21-

TABLA III. 49: RESULTADOS DEL INDICADOR 6: INSTALACIN ...................................... 142 TABLA III. 50: REPRESENTACIN DEL INDICADOR 7: INSTALACIN, CON SUS DIFERENTES NDICES .................................................................................................................. 144 TABLA III. 51: CUADRO RESULTADOS DE INDICADOR E NDICE ..................................... 146 TABLA III. 52: RESULTADOS GENERALES ...................................................................... 146 TABLA III. 53: OPERACIONALIZACIN CONCEPTUAL ..................................................... 150 TABLA III. 54: OPERACIONALIZACIN METODOLGICA ................................................ 153 TABLA III. 55: RESULTADO FINALES ............................................................................. 153 TABLA III. 56: VALORES Y PORCENTAJES FINALES ....................................................... 154

CAPITULO IV TABLA IV. 1 CASO DE USO AUTENTICACIN ................................................................. 162 TABLA IV. 2 CASO DE USO CREAR USUARIO ................................................................. 163 TABLA IV. 3 CASO DE USO CAMBIAR DATOS DE USUARIO ........................................... 164 TABLA IV. 4 CASO DE USO CREACIN DE DOCENTES.................................................... 166 TABLA IV. 5 CASO DE USO EDICIN DE DOCENTES ....................................................... 167 TABLA IV. 6 CASO DE USO CREACIN DE INSTITUCIONES ............................................. 168 TABLA IV. 7 CASO DE USO EDICIN DE INSTITUCIONES ................................................ 169 TABLA IV. 8 CASO DE USO INGRESO DE CONTRATOS .................................................... 170 TABLA IV. 9 CASO DE USO EDICIN DE CONTRATOS .................................................... 171 TABLA IV. 10 CASO DE USO EDICIN DE CONTRATOS .................................................. 172

- 22-

INTRODUCCIN

El presente trabajo de investigacin de tesis previo a la obtencin del ttulo de Ingeniera en Sistemas Informticos, trata sobre el ANLISIS DE PYTHON CON DJANGO FRENTE A RUBY ON RAILS PARA DESARROLLO GIL DE APLICACIONES WEB. CASO PRCTICO: DECH..

Es un estudio y anlisis investigativo de los Frameworks de desarrollo web Python con Django y Ruby on Rails que se ubican como los ms populares en la actualidad a fin de obtener como resultado el Frameworks mas optimo para el desarrollo gil de aplicaciones web. Como precedente al momento de desarrollar aplicaciones resulta muy factible la utilizacin de un framework que facilite el desarrollo gil pero esto puede resultar un poco confuso a la hora de decidirse por una determinada herramienta antes de empezar a desarrollar una aplicacin, ya que nos enfrentamos a dos tipos de tecnologas de muy similares caractersticas, basados en los mismos conceptos, y lo ms importante garantizando, tanto Ruby on Rails, as como tambin Django (Python), la rapidez y la simplicidad en el desarrollo de aplicaciones web, que es el objetivo primordial para los desarrolladores en el mundo.

En la actualidad el desarrollo de aplicaciones web requiere la aplicacin de tecnologas las cuales nos permitan obtener la mayor optimizacin de recursos tanto de hardware como de software y es aqu que la aplicacin de ingeniera en el desarrollo de software permite establecer procesos correctos de desarrollo. El presente trabajo de investigacin contiene los siguientes captulos: El en captulo 1 se presenta el planteamiento de la investigacin, antecedentes, hiptesis, mtodos y tcnicas, es todo el marco referencial para el desarrollo de la tesis.

- 23-

En el captulo 2 se detalla los aspectos tericos motivo de la investigacin, conceptos, terminologas, referenciadas al objeto de estudio. Continuando con el captulo 3 se establecen los parmetros de productividad en el desarrollo de software. El capitulo 3 trata de el desarrollo del anlisis de los Frameworks Python con Django y Ruby on Rails, estableciendo parmetros de productividad en el desarrollo de software. Y as determinar cual brinda una mayor productividad al momento de realizar un desarrollo gil, sometiendo a cada prototipo a diferentes escenarios de pruebas, finalizando con la demostracin de la hiptesis. En el captulo 4 se detalla la parte aplicativa de la tesis, contiene los requisitos de ingeniera de software, desarrollo gil de aplicaciones web, estndares de desarrollo, todo referente al sistema web para la contratacin docente de la Direccin de Estudios de Chimborazo.

- 24-

1. CAPTULO I:

MARCO REFERENCIAL

1.1.

Antecedentes

Debido a la gran exigencia y demanda en la utilizacin de sistemas enfocados a la web y al alto incremento de usuarios del internet, es importante enfocarse al poder desarrollar este tipo aplicaciones web de de manera ms gil y eficiente, sin descuidar ningn aspecto en la calidad de software a desarrollar. Lo cual representa desafos para nosotros como desarrolladores el poder crear aplicaciones ms rpidas, ligeras y robustas que permitan utilizar la web.

Se debe tomar en cuenta la versatilidad que debe poseer una interfaz Web, la cual debe cumplir con la filosofa web (libertad de acceso, universalidad, y rapidez), siendo capaz de ser utilizada en cualquier tipo de browser (internet explorer, mozilla firefox, etc.), en cualquier plataforma (Windows, Linux, Mac), con cualquier conexin a internet, y proporcionando rapidez en el manejo del sitio. Para el desarrollo de este tipo de aplicaciones existen diferentes lenguajes para poder crear Aplicaciones Web entre los cuales se destacan PHP, JSP, ASP, RUBY, PYTHON, entre otros, en los cuales se

- 25-

realizaba un proceso de desarrollo lnea por lnea, teniendo que programar todo lo que sea necesario imposibilitando mejorar los tiempos de desarrollo, es por ello que aparecieron los conocidos Frameworks, los cuales interactan directamente con los lenguajes de programacin.

Los frameworks no son lenguajes de programacin y se pueden definir como una arquitectura de software, que permite una colaboracin directa en el desarrollo, el mismo que utiliza mdulos de software que cuentan con procedimientos, libreras, clases y de mas funciones de un lenguaje en concreto, organizadas para ser reutilizadas en el desarrollo, que facilitan la construccin rpida de aplicaciones web.

En la actualidad con el gran crecimiento del internet como una herramienta necesaria en el acceso y comparticin de la informacin, han venido apareciendo tecnologas y herramientas que permiten crear de manera ms fcil un sitio para internet, y es as que en justamente a finales del ao 2004 y principios del 2005 aparece Ruby on Rails como un completo entorno para desarrollar aplicaciones web, basado en el patrn de diseo MVC (Modelo Vista Controlador), de cdigo abierto escrito en el lenguaje de programacin Ruby. Este framework trata de simplificar el proceso de desarrollar aplicaciones para el mundo real, escribiendo menos cdigo y realizando menos configuraciones, basado en dos principios fundamentales No lo vuelvas a repetir y convencin antes que configuracin. Esto ha permitido lograr desarrollar aplicaciones diez veces ms deprisa con Rails que lo que tardaras con un framework tpico de Java y esto es posible gracias a el lenguaje de programacin Ruby ya que hay muchas cosas que son sencillas de hacer en Ruby pero que ni tan siquiera pueden hacerse en otros lenguajes, y Rails saca provecho de esto.

Por otro lado en el mismo ao siendo casi contemporneos y basados en las mismas ideas de Ruby on Rails, en julio del 2005 es liberado Django, un framework el cual es muy popular para el desarrollo de aplicaciones web. Est basado en el lenguaje de programacin Python y de la misma manera sigue el patrn de diseo MVC, pero este framework incluye y aporta soluciones propias, las mismas que garantizan un desarrollo gil, sencillo y sobre todo rpido de aplicaciones web. El objetivo fundamental de

- 26-

Django es facilitar la creacin de sitios web complejos. Django pone nfasis la reutilizacin de cdigo, la conectividad y extensibilidad de componentes, el desarrollo rpido y el principio de DRY (Don't Repeat Yourself). Python es usado en todas las partes del framework, incluso en configuraciones, archivos, y en los modelos de datos.

Esto puede resultar un poco confuso a la hora de decidirse por una determinada herramienta antes de empezar a desarrollar una aplicacin, ya que nos enfrentamos a dos tipos de tecnologas de muy similares caractersticas, basados en los mismos conceptos, y lo ms importante garantizando, tanto Ruby on Rails, as como tambin Django (Python), la rapidez y la simplicidad en el desarrollo de aplicaciones web, que es de mucho inters para nosotros los programadores.

Entonces como poder determinar que framework permite aprovechar de mejor manera las caractersticas que ofrece Ruby on Rails, o Django, con el nico objetivo de poder enfocarnos a desarrollar aplicaciones web de una manera mucho ms optima, priorizando el tiempo de desarrollo. Y es cuando nos encontramos con el gran problema de poder decidir que herramienta utilizar en la construccin de este tipo de aplicaciones, ya que ambos frameworks son de cdigo abierto, establecen sus ventajas y desventajas de manera muy similar estableciendo primordialmente la facilidad de en la construccin y sobre todo la velocidad en el tiempo de desarrollo de aplicaciones web agiles, sin descuidar la funcionalidad de las aplicaciones.

La Direccin de Educacin de Chimborazo, a travs de la Divisin de Recursos Humanos, se encuentra en proceso de contratacin docente para cubrir los distintos requerimientos de las instituciones educativas de la provincia. El procesamiento de la informacin de los docentes e instituciones educativas se lo realiza de forma manual, mediante la recopilacin de documentos escritos y el manejo de tablas de Excel, enfrentando problemas de dificultad, lentitud, desorganizacin e inconsistencias de datos, los cuales imposibilitan la optimizacin del tiempo al momento de realizar la contratacin de los docentes.

- 27-

1.2.

Justificacin del Proyecto de Tesis

1.2.1. Justificacin Terica

El presente anlisis pretende estudiar las tecnologas ms populares existentes en el mercado en la actualidad, como lo es Ruby on Rails y Django (Python) para el desarrollo de aplicaciones web, enfocndonos principalmente en la agilidad que pueden prestar estos lenguajes y sus respectivos frameworks al momento de construir este tipo de aplicaciones.

Est claro que ambas tecnologas, adems de ser muy similares presentan un gran crecimiento y acogida entre los desarrolladores de aplicaciones web, por lo cual se considera relevante el poder determinar por medio de esta investigacin el comportamiento de estas tecnologas que permitan describir con claridad la mejor opcin para un desarrollo gil y rpido de una aplicacin web.

La investigacin est dirigida a desarrolladores que desean elegir uno de estos dos frameworks de referencia, para su propio desarrollo y as poder determinar los efectos de esta comparacin.

1.2.2. Justificacin Prctica

Con el propsito de determinar la tecnologa ms adecuada se construirn prototipos de desarrollo, en los cuales permitan evaluar mediante parmetros la agilidad en el desarrollo de aplicaciones web. Los prototipos consistirn en pequeas aplicaciones web, las mismas que sern desarrolladas usando Ruby on Rails y Python con Django. Con la situacin actual en la que se encuentra la Divisin de Recursos Humanos de la DECH es necesario implementar una aplicacin web, la misma que permitir automatizar el proceso de contratacin docente, el cual contar con una interfaz amigable con el usuario, estableciendo polticas de acceso para el ingreso al sistema, adems posibilitar tener un control de la informacin de los docentes los cuales estn y sern contratados por la Direccin. La aplicacin web facilitar la realizacin de

- 28-

reportes, los mismos que detallaran informacin de los docentes, las escuelas y la ubicacin geogrfica donde se encuentran laborando. Esto podr facilitar a los analistas de recursos humanos tener un control ms ptimo al momento de ejecutar nuevos contratos, renovaciones, terminaciones y renuncias de los maestros lo cual establecer una mejor administracin del personal docente, y la distribucin hacia las distintas instituciones educativas.

1.3.

Objetivos

1.3.1. Objetivo General:

Realizar un anlisis de las tecnologas Django sobre Python frente a Ruby on Rails para determinar cul es ms adecuada para el desarrollo gil de Aplicaciones Web.

1.3.2. Objetivos Especficos. Estudiar los beneficios y caractersticas que presentan los frameworks RUBY ON RAILS y PYTHON CON DJANGO para el desarrollo de aplicaciones web. Establecer parmetros de comparacin los cuales nos permitan determinar con claridad que lenguaje y framework se adapta mejor a un desarrollo gil de aplicaciones web. Analizar mediante mtodos formales los frameworks, al utilizar RUBY ON RAILS y PYTHON CON DJANGO basados en la construccin de prototipos. Realizar una aplicacin web que cumpla con los requerimientos establecidos por la Divisin de Recursos Humanos de la Direccin de Estudios de Chimborazo, para automatizar el proceso de contratacin docente.

1.4.

Hiptesis

- 29-

La aplicacin de la tecnologa Python con Django mejora la productividad en el desarrollo gil de aplicaciones web que al usar la tecnologa Ruby on Rails.

1.5.

Mtodos y Tcnicas

1.5.1. Mtodos

Para la comprobacin de nuestra hiptesis ser necesaria la aplicacin de un mtodo cientfico, que permitir establecer una secuencia ordenada de acciones que nos llevarn a establecer las conclusiones sobre el uso eficiente de las tecnologas de moda en el mercado para el desarrollo gil de aplicaciones web. Para el desarrollo de la aplicacin web y la implementacin de la aplicacin web para la automatizacin del proceso de contratacin docente de la DECH, se emplear la metodologa gil SCRUM.

1.5.2. Tcnicas

Para lo que tiene que ver en cuanto a fuentes de informacin se utilizarn principalmente lo que se refieran al tema de investigacin como la observacin, libros, revistas, pginas web, etc. adems, se contactar a especialistas en los temas mediante video-llamadas, foros en lnea, etc. Tambin se emplear la observacin y anlisis por parte de los investigadores para hacer deducciones e inducciones sobre el tema de tesis. Para la aplicacin se realizarn entrevistas y encuestas a las personas que utilizarn el sistema y que actualmente realizan los procesos de forma manual, para determinar las necesidades que se deben cubrir.

- 30-

2. CAPTULO II:

MARCO TEORICO

2.1.

Definiciones

2.1.1. Lenguajes de Programacin Un lenguaje de programacin es un lenguaje que puede ser utilizado para controlar el comportamiento de una mquina, particularmente una computadora. Consiste en un conjunto de reglas sintcticas y semnticas que definen su estructura y el significado de sus elementos, respectivamente. Aunque muchas veces se usa lenguaje de programacin y lenguaje informtico como si fuesen sinnimos, no tiene por qu ser as, ya que los lenguajes informticos engloban a los lenguajes de programacin y a otros ms, como, por ejemplo, el HTML. [1]

- 31-

Ilustracin II. 1: Lenguajes de Programacin

2.1.2. Lenguaje de Programacin Python Python, segn Ral Gonzlez Duque, es un lenguaje de programacin creado por Guido van Rossum a principios de los aos 90 cuyo nombre est inspirado en el grupo de cmicos ingleses Monty Python. Es un lenguaje similar a Perl, pero con una sintaxis muy limpia y que favorece un cdigo legible. Se trata de un lenguaje interpretado o de script, con tipado dinmico, fuertemente tipado, multiplataforma y orientado a objetos. [2].

2.1.2.1. Historia

Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemticas y la Informtica (CWI, Centrum Wiskunde & Informatica), en losPases Bajos, como un sucesor del lenguaje de programacin ABC, capaz de manejar excepciones e interactuar con el sistema operativo Amoeba. El nombre del lenguaje proviene de la aficin de su creador original, Guido van Rossum, por los humoristas britnicos Monty Python. Van Rossum es el principal autor de Python, y su continuo rol central en decidir la direccin de Python es reconocido, refirindose a l como Benevolente Dictador Vitalicio(en ingls: Benevolent Dictator for Life, BDFL). En 1991, van Rossum public el cdigo de la versin 0.9.0 en alt.sources. En esta etapa del desarrollo ya estaban presentes clases con herencia, manejo de

excepciones, funciones y los tipos modulares, como: str, list, dict, entre otros. Adems en este lanzamiento inicial apareca un sistema de mdulos adoptado deModula-3; van Rossum describe el mdulo como una de las mayores unidades de programacin de Python. El modelo de excepciones en Python es parecido al de Modula-3, con la adicin de una clusula else. En el ao 1994 se form comp.lang.python, el foro de discusin principal de Python, marcando un hito en el crecimiento del grupo de usuarios de este lenguaje. [3]

- 32-

Ilustracin II. 2: Cdigo Python con coloreado de sintaxis

2.1.2.2. Caractersticas y Paradigmas

Python es un lenguaje de programacin multiparadigma. Esto significa que ms que forzar a los programadores a adoptar un estilo particular de programacin, permite varios estilos: programacin orientada a objetos, programacin imperativa y programacin funcional. Otros paradigmas estn soportados mediante el uso de extensiones. Python usa tipado dinmico y conteo de referencias para la administracin de memoria. Una caracterstica importante de Python es la resolucin dinmica de nombres; es decir, lo que enlaza un mtodo y un nombre de variable durante la ejecucin del programa (tambin llamado ligadura dinmica de mtodos). Otro objetivo del diseo del lenguaje es la facilidad de extensin. Se pueden escribir nuevos mdulos fcilmente en C o C++. Python puede incluirse en aplicaciones que necesitan una interfaz programable. Aunque la programacin en Python podra considerarse en algunas situaciones hostiles a la programacin funcional tradicional del Lisp, existen bastantes analogas entre Python y los lenguajes minimalistas de la familia Lisp como puede ser Scheme. [3]

Algunas Caractersticas de Python [4]

Simple Sencillo de Aprender

- 33-

Libre y Fuente Abierta Lenguaje de Alto Nivel Portable Interpretado Orientado a Objetos Ampliable Incrustable Libreras Extendidas

2.1.2.3. Filosofa

Los usuarios de Python se refieren a menudo a la Filosofa Python que es bastante anloga a la filosofa de Unix. El cdigo que sigue los principios de Python de legibilidad y transparencia se dice que es "pythonico". Contrariamente, el cdigo opaco u ofuscado es bautizado como "no pythonico" ("unpythonic" en ingls). Estos principios fueron famosamente descritos por el desarrollador de Python Tim Peters en El Zen de Python. [3].

Principios de la Filosofa [5]

Hermoso es mejor que feo. Explcito es mejor que implcito. Simple es mejor que complejo. Complejo es mejor que complicado. Plano es mejor que anidado. Ralo es mejor que denso. La legibilidad importa. Los casos especiales no son tan especiales como para romper las reglas. Aunque lo prctico vence a lo puritano. Los errores nunca deben pasar desapercibidos. A menos que sean explcitamente silenciados.

- 34-

Ante la ambigedad, rechaza la tentacin de adivinar. Debe haber una forma (y preferentemente slo una forma) obvia de hacerlo. Aunque esa forma no sea obvia al principio a menos que seas holands. Ahora es mejor que nunca. Aunque nunca es a menudo mejor que ya. Si la implementacin es difcil de explicar, es una mala idea. Si la implementacin es fcil de explicar, puede ser una buena idea. Los espacios de nombre son geniales; hagamos ms de ellos!

2.1.2.4. Modo Interactivo

El intrprete de Python estndar incluye un modo interactivo, en el cual se escriben las instrucciones en una especie de shell: las expresiones pueden ser introducidas una por una, pudiendo verse el resultado de su evaluacin inmediatamente. Esto resulta til tanto para las personas que se estn familiarizando con el lenguaje como tambin para los programadores ms avanzados: se pueden probar porciones de cdigo en el modo interactivo antes de integrarlo como parte de un programa.

Existen otros programas, tales como IDLE e IPython, que aaden funcionalidades extra al modo interactivo, como el auto-completar cdigo y el coloreado de la sintaxis del lenguaje.

Ilustracin II. 3: Ejemplo del modo interactivo de Python

- 35-

2.1.2.5. Elementos del Lenguaje [3] Python fue diseado para ser ledo con facilidad. Entre otras cosas se utilizan palabras en ingls donde otros lenguajes utilizaran smbolos. En vez de delimitar los bloques de cdigo mediante el uso de llaves ({}), Python utiliza la Indentacin. Esto hace que la misma sea obligatoria, ayudando a la claridad y consistencia del cdigo escrito (incluso entre varios desarrolladores. Comentarios Los comentarios se inician con el smbolo #, y se extienden hasta el final de la lnea. Al comentar una lnea, esta no es tenida en cuenta por el interprete lo cual es til si deseamos poner informacin adicional en nuestro cdigo como por ejemplo un explicativo que comente que hacen dichas lneas, que falta o hara falta hacer (muy til para los programadores al momento de leer un cdigo hecho por otro programador).
# -*- coding: utf-8 -*# Comentario en una lnea en Python. print('Hola mundo') # Tambin es posible aadir un comentario despus de una lnea de cdigo

Variables Las variables se definen de forma dinmica. El signo igual (=) se usa para asignar valores a las variables:
x = 1 x = 'texto' # esto es posible porque los tipos son asignados dinmicamente

Tipos de datos

Python soporta implcitamente una gran variedad de tipos de datos.

- 36-

Tabla II. 1: Tipos de Datos de Python

Funciones Las funciones se definen con la palabra clave def, seguida del nombre de la funcin y sus parmetros. Otra forma de escribir funciones, aunque menos utilizada, es con la palabra clave lambda (que aparece en lenguajes funcionales como Lisp).
>>> # Ejemplo de funcin con def. En este ejemplo salvo que se indique la variable 'y' valdr 2. >>> def multiplicacion(x, y): ... ... >>> multiplicacion(10, 3) 30 return x * y

Mdulos Existen muchas propiedades que se pueden agregar al lenguaje importando mdulos, que son minicdigos (la mayora escritos tambin en Python) que llaman a los recursos del sistema. Un ejemplo es el mdulo Tkinter, que permite crear interfaces grficas que incluyan botones, cajas de texto, y muchas cosas que vemos habitualmente en el sistema operativo. Otro ejemplo es el mdulo que permite manejar el sistema operativo desde el lenguaje. Los mdulos se agregan a los cdigos escribiendo import seguida del nombre del mdulo que queramos usar. En este cdigo se muestra como apagar el ordenador desde Windows.

- 37-

apagar = "shutdown /s" import os os.system(apagar)

2.1.2.6. Frameworks Web para Python

Django. Es un framework web de cdigo abierto escrito en Pythonque permite construir aplicaciones web ms rpido y con menos cdigo. Django fue inicialmente desarrollado para gestionar aplicaciones web de pginas orientadas a noticias de World Online, ms tarde se liber bajo licencia BSD. Django se centra en automatizar todo lo posible y se adhiere al

principio DRY (Don't Repeat Yourself). [6].

Grok. Es un framework de aplicaciones web para desarrolladores de Python. Est dirigido a los principiantes y desarrolladores web con mucha experiencia. Grok tiene un nfasis en el desarrollo gil. Grok es fcil y de gran alcance. [7].

Pylons. Es un framework de aplicaciones web open source que implementa el patrn modelo-vista-controlador. Pylons usa intensivamente el estndar Web Server Gateway Interface (WSGI). [8].

TurboGears . Es un megaframework para desarrollo web, basado en el modelo MVC. TurboGears fue creado en el ao 2005 por Kevin Dangoor. Es un stack web completo, que abarca desde el Javascript del cliente hasta un mapper relacionalobjetos para la base de datos. [9].

Web2py. Es un framework empresarial completo libre y de cdigo abierto para desarrollo gil de aplicaciones web rpidas, escalables, seguras y portables basadas en bases de datos. Escrito y programable en Python. [10].

- 38-

2.1.3. Lenguaje de Programacin Ruby Ruby, segn Huw Collingbourne en su libro The book of Ruby menciona que Ruby es un lenguaje multiplataforma interpretado que tiene muchas caractersticas en comn con otros lenguajes de scripting como Perl y Python. A primera vista cuenta con la sintaxis en Idioma Ingls" un estilo que se parece un poco al estilo de Pascal. Es totalmente orientado a objetos, y tiene mucho en comn con el bisabuelo de 'puro' lenguaje orientado a objetos, Smalltalk. Se ha dicho que las lenguas que ms influyeron en el desarrollo de Ruby fueron: Perl, Smalltalk, Eiffel, Ada y Lisp. El lenguaje Ruby fue creado por Yukihiro Matsumoto (comnmente conocido como "Matz") y fue lanzado por primera vez en 1995. [24]

Ilustracin II. 4: Yukihiro Matsumoto, creador de Ruby

2.1.3.1. Historia Ruby fue concebido el 24 de febrero de 1993 por Yukihiro Matsumoto, quien deseaba crear un nuevo leguaje que sea balanceado tanto en programacin funcional con la programacin imperativa. Matsumoto deca, Esperaba un lenguaje de scripting que sea ms poderoso que Perl, y ms orientado a objetos que Python. Por esto decid disear my propio lenguaje [25]. El nombre Ruby fue decidido durante una sesin online de chat entre Matsumoto y Keiu Ishitsuka en febrero de 1993 [26], antes de que el cdigo haya sido escrito para el

- 39-

lenguaje. Inicialmente se tenan dos nombres propuestos: Coral y Ruby, el ltimo fue elegido por Matsumoto en el ltimo email a Ishitsuka. Matsumoto coment que el factor para que escogiera el nombre de Ruby fue porque esta era la piedra de nacimiento de uno de sus colegas.

Ilustracin II. 5: Logo del lenguaje de programacin Ruby.

Primera publicacin La primera versin pblica de Ruby 0.95 se anunci por grupos de noticias nacionales de Japn el 21 de diciembre de 1995. Posteriormente, tres versiones ms de Ruby fueron lanzados en dos das. El lanzamiento coincidi con el lanzamiento del LeguajeJapons ruby-list lista de correo, que fue la primera lista de correo para el nuevo lenguaje. Ya presente en esta etapa de desarrollo eran muchas de las caractersticas conocidas en las ltimas versiones de Ruby, incluyendo diseo orientado a objetos, las clases con herencia, mixins, coleccin de iteradores, cierres, manejo de excepciones, y basura.[28] 2.1.3.2. Filosofa Matsumoto ha dicho que Ruby que ha sido diseado para la productividad y diversin del programador, siguiendo los principios del buen diseo de interfaz de usuario. El hace hincapi en que el diseo de sistemas debe ser enfatizado para los humanos, en lugar de las computadoras: "A menudo la gente, sobre todo ingenieros informticos, se centran en las mquinas. Ellos piensan, "De esta manera, la mquina funcionar ms rpido. De esta manera, la mquina funcionar con mayor eficacia. De esta manera, la mquina algo algo algo". Ellos se centran en las mquinas. Pero, de hecho, tenemos que centrarnos en los seres humanos, sobre cmo los humanos se preocupan por hacer la

- 40-

programacin o explotacin de la aplicacin de las mquinas. Nosotros somos los amos. Ellos son los esclavos. " Se dice que Ruby sigue el principio de la mnima sorpresa (principle of least astonishment, POLA), lo que significa que el lenguaje debe comportarse de tal manera que para minimizar la confusin para los usuarios experimentados. Matsumoto dice que su primer objetivo era hacer un lenguaje en e que utilizando sea divertido, reduciendo al mnimo el trabajo del programador y la posible confusin. El no haba aplicado el principio de mnima sorpresa para el diseo de Ruby, pero sin embargo, la frase ha pasado a estar estrechamente relacionada con el lenguaje de programacin Ruby. La frase ha sido una fuente de sorpresa, ya que los usuarios novatos pueden tomar en el sentido de que las conductas de Ruby traten de asemejarse a los comportamientos familiares de otros idiomas. En mayo de 2005, el debate del grupo de noticias comp.lang.ruby, Matsumoto intent distanciarse Ruby de Pola, y explic que debido a que cualquier opcin de diseo ser extraa a alguien, que utiliza un estndar de personal en la evaluacin de sorpresa. Si ese estndar personal se mantiene constante, no habra sorpresas para aquellos familiarizados con la norma. Matsumoto lo defini de esta manera en una entrevista: "Todo el mundo tiene un fondo individual. Alguien puede venir de Python, alguien ms puede venir de Perl, y que puede ser sorprendido por los diferentes aspectos del lenguaje. Entonces se me acercan y dicen: "Me sorprendi por esta caracterstica del lenguaje, por lo que Ruby viola el principio de mnima sorpresa. Espera. Espera. El principio de mnima sorpresa no es solo para usted. El principio de mnima sorpresa significa principio por lo menos de mi sorpresa. Y esto significa que el principio de mnima sorpresa despus de aprender Ruby muy bien. Por ejemplo, yo era un programador C++ antes de empezar el diseo de Ruby. He programado en C++ en exclusiva para dos o tres aos. Y despus de dos aos de programacin C++, todava me sorprende. [28]. Viendo todo como un objeto

- 41-

Inicialmente, Matz busc en otros lenguajes para encontrar la sintaxis ideal. Recordando su bsqueda, dijo, quera un lenguaje que fuera ms poderoso que Perl, y ms orientado a objetos que Python. En Ruby, todo es un objeto. Se le puede asignar propiedades y acciones a toda informacin y cdigo. La programacin orientada a objetos llama a las propiedades variables de instancia y las acciones son conocidas como mtodos. En muchos lenguajes, los nmeros y otros tipos primitivos no son objetos. Ruby sigue la influencia del lenguaje Smalltalk pudiendo poner mtodos y variables de instancia a todos sus tipos de datos. Esto facilita el uso de Ruby, porque las reglas que se aplican a los objetos son aplicables a todo Ruby. [29] 2.1.3.3. Caractersticas Completamente orientado a objetos Con herencia, y mixins metaclases Tipado dinmico y Duck typing (tipado pato) Todo es una expresin (incluso las declaraciones) y todo lo que se ejecuta obligatoriamente (incluso las declaraciones) Sucinta y la sintaxis flexible que minimiza el ruido sintctico y sirve como base para lenguajes especficos de dominio La reflexin dinmica y la alteracin de los objetos para facilitar la meta programacin Cierres lxicos, iteradores y generadores, con una sintaxis bloque nico Notacin literal de arrays, hashes, expresiones regulares y los smbolos Cdigo de incrustacin en las cadenas (interpolacin) Argumentos por defecto Cuatro niveles de mbito de variable (clase mundial, ejemplo y local), denotado por sellos o sin los mismos Recoleccin de basura

- 42-

Primera clase continuaciones Estrictas reglas de coercin de booleanos (todo es verdad, excepto false y nil). Manejo de excepciones Sobrecarga de operadores Soporte integrado para los nmeros racionales, nmeros complejos y de la aritmtica de precisin arbitraria Comportamiento personalizado de despacho (a travs de method_missing y const_missing) Hilos nativos y las fibras de cooperacin El apoyo inicial para la codificacin de caracteres Unicode y mltiple (an con errores desde la versin 1.9) Plug-in API nativa en C Interactivo de Ruby Shell (un REPL) Paquetes centralizados de gestin a travs de RubyGems Se implementa en todas las principales plataformas Gran biblioteca estndar. [28]

2.1.3.4. Semntica Ruby es orientado a objetos: todos los tipos de datos son un objeto, incluidas las clases y tipos que otros lenguajes definen como primitivas, (como enteros, booleanos, y "nil"). Toda funcin es un mtodo. Las variables siempre son referencias a objetos, no los objetos mismos. Ruby soporta herencia con enlace dinmico, mixins y mtodos singleton (pertenecientes y definidos por un sola instancia ms que definidos por la clase). A pesar de que Ruby no soporta herencia mltiple, la clases pueden importar mdulos como mixins. La sintaxis procedural est soportada, pero todos los mtodos definidos fuera del mbito de un objeto son realmente mtodos de la clase Object. Como esta clase es padre de todas las dems, los cambios son visibles para todas las clases y objetos.

- 43-

Ruby ha sido descrito como un lenguaje de programacin multiparadigma: permite programacin procedural (definiendo funciones y variables fuera de las clases hacindolas parte del objeto raz Object), con orientacin a objetos, (todo es un objeto) o funcionalmente (tiene funciones annimas, clausuras o closures, y continuations; todas las sentencias tiene valores, y las funciones devuelven la ltima evaluacin). Soporta introspeccin, reflexin y metaprogramacin, adems de soporte para hilos de ejecucin gestionados por el intrprete. Ruby tiene tipado dinmico, y soporta polimorfismo de tipos (permite tratar a subclases utilizando la interfaz de la clase padre). Ruby no requiere de polimorfismo de funciones al no ser fuertemente tipado (los parmetros pasados a un mtodo pueden ser de distinta clase en cada llamada a dicho mtodo). De acuerdo con las preguntas frecuentes de Ruby,5 "Si te gusta Perl, te gustar Ruby y su sintaxis. Si te gusta Smalltalk, te gustar Ruby y su semntica. Si te gusta Python, la enorme diferencia de diseo entre Python y Ruby/Perl puede que te convenza o puede que no. [30] 2.1.3.5. Sintaxis La sintaxis de Ruby es similar a la de Perl o Python. La definicin de clases y mtodos est definida por palabras clave. Sin embargo, en Perl, las variables no llevan prefijos. Cuando se usa, un prefijo indica el mbito de las variables. La mayor diferencia con C y Perl es que las palabras clave son usadas para definir bloques de cdigo sin llaves. Los saltos de lnea son significativos y son interpretados como el final de una sentencia; el punto y coma tiene el mismo uso. De forma diferente que Python, la indentacin no es significativa. Una de las diferencias entre Ruby y Python y Perl es que Ruby mantiene todas sus variables de instancia privadas dentro de las clases y solo la expone a travs de mtodos de acceso (attr_writer, attr_reader, etc). A diferencia de los mtodos "getter" y "setter" de otros lenguajes como C++ o Java, los mtodos de acceso en Ruby pueden ser escritos con una sola lnea de cdigo. Como la invocacin de estos mtodos no requiere el uso de parntesis, es trivial cambiar una variable de instancia en una funcin sin tocar una sola lnea de cdigo o refactorizar dicho cdigo. Los descriptores de propiedades de

- 44-

Python son similares pero tienen una desventaja en el proceso de desarrollo. Si uno comienza en Python usando una instancia de variable expuesta pblicamente y despus cambia la implementacin para usar una instancia de variable privada expuesta a travs de un descriptor de propiedades, el cdigo interno de la clase necesitar ser ajustado para usar la variable privada en vez de la propiedad pblica. Ruby elimina est decisin de diseo obligando a todas las variables de instancia a ser privadas, pero tambin proporciona una manera sencilla de declarar mtodos set y get. Esto mantiene el principio de que en Ruby no se puede acceder a los miembros internos de una clase desde fuera de esta; en lugar de esto se pasa un mensaje (se invoca un mtodo) a la clase y recibe una respuesta.. [30] 2.1.3.6. La flexibilidad de Ruby

Ruby es considerado un lenguaje flexible, ya que permite a sus usuarios alterarlo libremente. Las partes esenciales de Ruby pueden ser quitadas o redefinidas a placer. Se puede agregar funcionalidad a partes ya existentes. Ruby intenta no restringir al desarrollador. Por ejemplo, la suma se realiza con el operador suma (+). Pero si prefieres usar la palabra sumar, puedes agregar un mtodo llamadosumar a la clase Numeric que viene incorporada. class Numeric def sumar(x) self.+(x) end end y = 5.sumar 6 # ahora y vale 11 Los operadores de Ruby son simples conveniencias sintcticas para los mtodos. Los puedes redefinir como y cuando quieras. [29] 2.1.3.7. La apariencia visual de Ruby

- 45-

A pesar de que Ruby utiliza la puntuacin muy limitadamente y se prefieren las palabras clave en ingls, se utiliza algo de puntuacin para decorar el cdigo. Ruby no necesita declaraciones de variables. Se utilizan convenciones simples para nombrar y determinar el alcance de las mismas.

var puede ser una variable local. @var es una variable de instancia. $var es una variable global.

Estos detalles mejoran la legibilidad permitiendo que el desarrollador identifique fcilmente los roles de las variables. Tambin se hace innecesario el uso del molesto self. como prefijo de todos los miembros de instancia. 2.1.4. Frameworks web para Ruby.

Ruby on rails

Es un entorno de desarrollo web de cdigo abierto que est optimizado para satisfaccin de los programadores y de la productividad. Te permite escribir un buen cdigo favoreciendo la convencin antes que la configuracin. [32]

Merb

Merb es un mini- framework escrito en Ruby orientado a pginas dinmicas simples y, especialmente, subida de archivos al servidor. Merb naci como una aplicacin especializada en subir archivos, algo donde Rails no brilla especialmente. La idea era usar aplicaciones Merb en conjunto con aplicaciones mayores escritas en Rails. Merb, que es la combinacin de un framework Ruby, el servidor Web Mongrel y el motor de templates ERB (Mongrel + ERB = Merb), toma varias convenciones de Rails (controladores, vistas ERB) y al parecer es excelente para hacer aplicaciones dinmicas simples donde no es necesario el volumen y versatilidad de Rails (por ejemplo, aplicaciones sin bases de datos o utilidades de lnea de comandos para facilitar taras en la oficina). [59]

Ramaze

- 46-

Es un framework de aplicaciones web creado por Michael Fellinger (tambin conocido como manveru) para Ruby. La filosofa del mismo puede ser expresado como una mezcla de KISS y POLS, tratando de hacer las cosas simples de forma simple y las cosas complejas posibles. Esto es por supuesto nada nuevo para las personas que conozcan algo de Ruby, pero a menudo es olvidado entre la persecucin de funcionalidades y caractersticas. Ramaze tiene como objetivo brindar las ultimas herramientas, pero es el usuario quien debe aprovecharlo para lograr ptimos resultados a medida. Otro de los objetivos durante el desarrollo de Ramaze era hacer que todas las partes sean modular y por lo tanto reutilizable como sea posible, no solo para proporcionar una comprensin bsica despus de la primera vista, sino tambin para que sea posible la reutilizacin de partes de cdigo. El propsito original de Ramaze era actuar como un framework para construir web-frameworks; esto quedo obsoleto cuando se introdujo Rack, el cual ofrece esta funcin a un mejor nivel sin tratar de imponer un diseo estructural del framework resultante. [34]

Sinatra

Es un framework para aplicaciones web de software libre y cdigo abierto, y Lenguaje especfico del dominio escrita en Ruby. Es una alternativa a otros frameworks para aplicaciones webs como Ruby on Rails, Merb, Nitro, Camping, and Rango. Sinatra depende de Rack interfaz de servidor web. Diseado y desarrolado por Blake Mizerany, Sinatra es pequeo y flexible. Sinatra no sigue el tpico patrn modelo vista controlador que se ve en otros frameworks, como Ruby on Rails. En su lugar, Sinatra se enfoca en la "rpida creacin de aplicaciones web en Ruby con el mnimo esfuerzo."1 Algunas destacadas companas que usan Sinatra son BBC,2 Engine Yard, Heroku, GitHub, and Songbird.3 Heroku provee la mayor parte del apoyo para el desarrollo de Sinatra. [35] 2.1.5. El Patrn de Diseo Modelo Vista Controlador 2.1.5.1. Descripcin

- 47-

El patrn MVC (Modelo Vista Controlador) fue inventado en el contexto de Smalltak con el objetivo de separar la interface grfica del cdigo que hace que trabaje una aplicacin. Posteriormente esta idea afectara una gran parte del cdigo de Smalltak y sera ampliamente aplicada por otros lenguajes orientados a objetos. En el paradigma MVC las entradas del usuario, los modelos del mundo exterior y la retroalimentacin visual son explcitamente separados y manejados por tres tipos de objetos, cada uno especializado para un conjunto de tareas especficas. [11].

La arquitectura MVC separa la lgica de negocio (el modelo) y la presentacin (la vista) por lo que se consigue un mantenimiento ms sencillo de las aplicaciones. Si por ejemplo una misma aplicacin debe ejecutarse tanto en un navegador estndar como en un navegador de un dispositivo mvil, solamente es necesario crear una vista nueva para cada dispositivo; manteniendo el controlador y el modelo original.

Ilustracin II. 6: Modelo Vista Controlador

2.1.5.2. Historia del MVC

- 48-

La arquitectura MVC (Model/View/Controller) fue introducida como parte de la versin Smalltalk-80 del lenguaje de programacin Smalltalk. Fue diseada para reducir el esfuerzo de programacin necesario en la implementacin de sistemas mltiples y sincronizados de los mismos datos. Inicialmente diseado para Aplicaciones de escritorio cuya idea principal era separar la presentacin del modelo de dominio. En aquel entonces la vista se encargaba del dibujado de mapas de bits, el controlador atenda acciones del mouse y teclado, y el modelo guardaba el estado de la ventana y la informacin mostrada en ella. Cada vista estaba asociada con un controlador y un modelo en su creacin. Cualquier modelo poda ser asociado dbilmente a cualquier vista ya que un modelo poda relacionarse con varias vistas. El controlador no se encargaba de manejar la lgica del negocio en la aplicacin, su propsito era manejar la interaccin del mouse y el teclado, y actualizar la vista acorde, lo cual no era una tarea trivial. [12].

Modelo

Incorpora la capa del dominio y persistencia, es la encargada de guardar los datos en un medio persistente (ya sea una base de datos, un archivo de texto, XML, registro, etc.). En el modelo es donde se hace el levantamiento de todos los objetos que tu sistema debe de utilizar, es el proveedor de tus recursos, es decir, el Modelo Automviles te tiene que dar objetos Automvil. Es muy tpico que las clases del modelo incorporen otro patrn de diseo como Active Record, ya que as es ms fcil guardar en el momento en la base de datos. [11]

Vista

Se encarga de presentar la interfaz al usuario, en sistemas web, esto es tpicamente HTML, aunque pueden existir otro tipo de vistas. En la vista solo se deben de hacer operaciones simples, como ifs, ciclos, formateo, etc. [11]

Controlador

- 49-

Es el que escucha los cambios en la vista y se los enva al modelo, el cual le regresa los datos a la vista, es un ciclo donde cada accin del usuario causa que se inicie de nuevo un nuevo ciclo. El Controller en cierta forma debe tener un registro de la relacin entre ordenes que le pueden llegar y la lgica de negocio que le corresponde (Es como una operadora de telfono que recibe una peticin y une dos lneas). La forma ms sencilla de implementar este patrn es pensando en capas, como regla, los accesos a la base de datos se hacen en el modelo, la vista y el controlador no deben de saber si se usa o no una base de datos. El controlador es el que decide que vista se debe de imprimir y que informacin es la que se enva. [11].

2.1.5.3. Ventajas del MVC [11]

Obviamente una separacin total entre lgica de negocio y presentacin. A esto se le pueden aplicar opciones como el multilenguaje, distintos diseos de presentacin, etc. sin alterar la lgica de negocio. La separacin de capas como presentacin, lgica de negocio, acceso a datos es fundamental para el desarrollo de arquitecturas consistentes, reutilizables y ms fcilmente mantenibles, lo que al final resulta en un ahorro de tiempo en desarrollo en posteriores proyectos. Al existir la separacin de vistas, controladores y modelos es ms sencillo realizar labores de mejora como:

Agregar nuevas vistas. Agregar nuevas formas de recolectar las ordenes del usuario (interpretar sus modelos mentales). Modificar los objetos de negocios bien sea para mejorar el performance o para migrar a otra tecnologa. Las labores de mantenimiento tambin se simplifican y se reduce el tiempo necesario para ellas. Las correcciones solo se deben hacer en un solo lugar y no en varios como sucedera si tuvisemos una mezcla de presentacin e implementacin de la lgica del negocio.

- 50-

Las vistas tambin son susceptibles de modificacin sin necesidad de provocar que todo el sistema se paralice. Adicionalmente el patrn MVC propende a la especializacin de cada rol del equipo, por tanto en cada liberacin de una nueva versin se vern los resultados.

2.1.5.4. Desventajas del MVC [13]

Tener que ceirse a una estructura predefinida, lo que a veces puede incrementar la complejidad del sistema. Hay problemas que son ms difciles de resolver respetando el patrn MVC.

La curva de aprendizaje para los nuevos desarrolladores se estima mayor que la de modelos ms simples como Webforms. La distribucin de componentes obliga a crear y mantener un mayor nmero de ficheros.

2.1.6. Framework Web Segn Javier J. Gutirrez, [14]. El concepto framework es que emplea muchos mbitos del desarrollo de sistemas software, no solo en el mbito de aplicaciones Web. Podemos encontrar frameworks para el desarrollo de aplicaciones mdicas, de visin por computador, para el desarrollo de juegos, y para cualquier mbito que pueda ocurrrsenos.

En general, con el trmino framework, nos estamos refiriendo a una estructura software compuesta de componentes personalizables e intercambiables para el desarrollo de una aplicacin. En otras palabras, un framework se puede considerar como una aplicacin genrica incompleta y configurable a la que podemos aadirle las ltimas piezas para construir una aplicacin concreta

2.1.7. Framework Web Rails para Ruby

- 51-

RoR se origin con una aplicacin de administracin de proyectos conocida como Basecamp desarrollada por el dans David Heinemeier Hansson para la compaa 37signals. Originalmente David intent escribir Rails en PHP pero fracas, hasta que uso Ruby. RoR es un framework para el desarrollo de aplicaciones web, software libre y basado en el patrn de diseo Modelo Vista Controlador (MVC). [62]

Ilustracin II. 7: Logo Ruby on Rails.

2.1.7.1. Filosofa

RoR da muchas ventajas si lo comparamos con otros frameworks. Una de las principales es que es gratis (open source) y otra que posee toda una comunidad de apoyo. Rails est basado en dos principios principales de desarrollo: No te repitas (Dont repeat yourself DRY) Convencin sobre configuracin [62]

No te repitas significa que las definiciones deberan hacerse una sola vez. Dado que Ruby on Rails es un framework de pila completa, los componentes estn integrados de manera que no hace falta establecer puentes entre ellos. Por ejemplo, en ActiveRecord, las definiciones de las clases no necesitan especificar los nombres de las columnas; Ruby puede averiguarlos a partir de la propia base de datos, de forma que definirlos tanto en el cdigo como en el programa sera redundante.

Convencin sobre configuracin significa que el programador slo necesita definir aquella configuracin que no es convencional. Por ejemplo, si hay una clase Historia en

- 52-

el modelo, la tabla correspondiente de la base de datos es historias, pero si la tabla no sigue la convencin (por ejemplo blogposts) debe ser especificada manualmente (set_table_name "blogposts"). As, cuando se disea una aplicacin partiendo de cero sin una base de datos preexistente, el seguir las convenciones de Rails significa usar menos cdigo (aunque el comportamiento puede ser configurado si el sistema debe ser compatible con un sistema heredado anterior). [63]

Ruby in Rails (RoR) se basa en el desarrollo gil y RUP (Proceso Unificado Racional Rational Unified Process en ingls) por lo que segn el contexto no siempre puede ser la mejor opcin de desarrollo. Dependiendo del material humano disponible as como las caractersticas del proyecto a desarrollar depende de que tan til vaya a resultar como opcin.

2.1.7.2. Ventajas de RoR respecto a otros frameworks

Rails usa convenciones, paquetes de programacin integrados y cdigo predefinido, diseado para completar y usar inmediatamente sin necesidad de configuracin. A diferencia de otros ambientes de programacin, como aquellos basados en Java que requieren usar varios frameworks, los cuales deben ser configurados para que funcionen entre s, para obtener todas las capacidades deseadas [62].

Entre los fundamentos de RoR estn los siguientes: DRY (Dont Repeat Yourself) : no te repitas a ti mismo, con esto podemos tener un formulario, y llamarlo las veces que queramos y desde donde queramos, simplemente con una lnea cdigo, o tal vez tener una tabla en nuestra base de datos, y manipular a los registros como un objeto y a sus campos como un atributo, sin necesidad de que declaremos nada. Convencin sobre configuracin: class Auto < ActiveRecord::Base end

- 53-

Con esa declaracin de una clase, mapeamos a una tabla en nuestra base de datos, dicho de otra manera Rails buscara una tabla llamada 'autos', en nuestra base de datos, y porque en plural?, esto es as porque Rails cree conveniente que debe llamarse as (principio de pluralizacin), aunque este comportamiento se puede desactivar de una manera muy sencilla, y si no la encuentra?, pues nos dar un error. Uso de patrones de diseo: Modelo Vista Controlador (MVC) Generacin de cdigo (helpers): permiten la generacin de cdigo xhtml, xml y javascript a partir de cdigo Ruby. Menos cdigo, menos errores. Test integrado (unitario y funcional). [62]

2.1.7.3. Arquitectura MVC de Rails

Las piezas de la arquitectura Modelo Vista Controlador en Ruby on Rails son las siguientes:

Modelo

En las aplicaciones web orientadas a objetos sobre bases de datos, el Modelo consiste en las clases que representan a las tablas de la base de datos. En Ruby on Rails, las clases del Modelo son gestionadas por ActiveRecord. Por lo general, lo nico que tiene que hacer el programador es heredar de la clase ActiveRecord::Base, y el programa averiguar automticamente qu tabla usar y qu columnas tiene.

Las definiciones de las clases tambin detallan las relaciones entre clases con sentencias de mapeo objeto relacional. Por ejemplo, si la clase Imagen tiene una definicin has_many:comentarios, y existe una instancia de Imagen llamada a, entonces a.comentarios devolver un array con todos los objetos Comentario cuya columna imagen_id (en la tabla comentarios) sea igual a a.id.

- 54-

Las rutinas de validacin de datos (p.e. validates_uniqueness_of:checksum) y las rutinas relacionadas con la actualizacin. (p.e.after_destroy:borrar_archivo,before_update:actualizar_detalles). especifican e implementan en la clase del modelo. Tambin se

Vista

En MVC, Vista es la lgica de visualizacin, o cmo se muestran los datos de las clases del Controlador. Con frecuencia en las aplicaciones web la vista consiste en una cantidad mnima de cdigo incluido en HTML.

Existen en la actualidad muchas maneras de gestionar las vistas. El mtodo que se emplea en Rails por defecto es usar Ruby Empotrado (archivos.rhtml, desde la versin 2.x en adelante de RoR archivos.html.erb), que son bsicamente fragmentos de cdigo HTML con algo de cdigo en Ruby, siguiendo una sintaxis similar a JSP. Tambin pueden construirse vistas en HTML y XML con Builder o usando el sistema de plantillas Liquid.

Es necesario escribir un pequeo fragmento de cdigo en HTML para cada mtodo del controlador que necesita mostrar informacin al usuario. El "maquetado" o distribucin de los elementos de la pgina se describe separadamente de la accin del controlador y los fragmentos pueden invocarse unos a otros.

Controlador

En MVC, las clases del Controlador responden a la interaccin del usuario e invocan a la lgica de la aplicacin, que a su vez manipula los datos de las clases del Modelo y muestra los resultados usando las Vistas. En las aplicaciones web basadas en MVC, los mtodos del controlador son invocados por el usuario usando el navegador web. La implementacin del Controlador es manejada por el ActionPack de Rails, que contiene la clase ApplicationController. Una aplicacin Rails simplemente hereda de esta clase y define las acciones necesarias como mtodos, que pueden ser invocados

- 55-

desde la web, por lo general en la forma http://aplicacion/ejemplo/metodo, que invoca a EjemploController#mtodo, y presenta los datos usando el archivo de plantilla /app/views/ejemplo/mtodo.html.erb, a no ser que el mtodo redirija a algn otro lugar. Rails tambin proporciona andamiaje, que puede construir rpidamente la mayor parte de la lgica y vistas necesarias para realizar las operaciones ms frecuentes. [63]

2.1.7.4. Otros mdulos

Adems, Rails ofrece otros mdulos, como Action Mailer (para enviar correo electrnico) o Active Resource que proporciona la infraestructura necesaria para crear de manera sencilla recursos REST, algo por lo que apuesta claramente Rails en sus ltimas versiones desplazando as a otros modelos como SOAP y XML-RPC a los que se les daba soporte en versiones anteriores mediante Action Web Service. [63]

2.1.7.5. Gemas

Las gemas son plugins y/o cdigos aadidos a nuestros proyectos Ruby on Rails, que nos permiten nuevas funcionalidades como nuevos create, nuevas funciones pre-escritas (como login de usuarios) o nuevas herramientas para el desarrollo como puedan ser Haml y SASS (la primera es una nueva forma de template basada en html pero ms sencilla y potente, y la segunda es igual pero para el caso de las CSS). Para encontrar el listado de gemas disponibles puedes ir a RubyForge. [63]

2.1.7.6. Soporte de servidores Web

Para desarrollo y pruebas, se utiliza Mongrel o WEBrick, incluido con Ruby. Para utilizar Rails en servidores en produccin se est extendiendo el uso de Passenger, una suerte de mod_rails para Apache desarrollado en 2008 por la empresa holandesa Phusion. Otras opciones para produccin son Nginx, Mongrel, Apache, Lighttpd con FastCGI o alguna combinacin de ambos(por ejemplo utilizando Apache como proxy para los procesos Mongrel). Sobre Apache, mod ruby puede mejorar considerablemente

- 56-

el rendimiento, aunque su uso no se recomienda porque no es seguro utilizar mltiples aplicaciones RoR sobre Apache. [63]

2.1.7.7. Soporte de Bases de Datos

Dada que la arquitectura Rails favorece el uso de bases de datos se recomienda usar un SGBDR para almacenamiento de datos. Rails soporta la biblioteca SQLite por defecto. El acceso a la base de datos es totalmente abstracto desde el punto de vista del programador, es decir que es agnstico a la base de datos, y Rails gestiona los accesos a la base de datos automticamente (aunque, si se necesita, se pueden hacer consultas directas en SQL) Rails intenta mantener la neutralidad con respecto a la base de datos, la portatibilidad de la aplicacin a diferentes sistemas de base de datos y la reutilizacin de bases de datos preexistentes. Sin embargo, debido a la diferente naturaleza y prestaciones de los SGBDRs el framework no puede garantizar la compatibilidad completa. Se soportan diferentes SGBDRs, incluyendo MySQL, PostgreSQL, SQLite, IBM DB2 y Oracle. [63]

2.1.7.8. Entornos de trabajo (IDE)

Hay muchas alternativas para trabajar con Ruby on Rails, tanto libres y gratuitas como de pago. A continuacin se listan las principales:

Aptana: Multiplataforma. Naci como plugins de eclipse para la edicin y desarrollo web. Actualmente puedes instalarlo como plugins o autnomo de forma independiente. Las ltimas versiones estn muy bien integradas con Ruby on Rails. En este momento Aptana 3 es la versin estable.

Netbeans: Uno de los ms usados, libre y totalmente gratuito. Viene muy bien integrado con JRuby (lo cual es algo lgico pues es un programa de Oracle). TextMate: Slo para Mac. Es el entorno ms usado entre la comunidad Rails. Es pago pero su potencia y forma de trabajo favorece la produccin y desarrollo con Ruby on Rails.

- 57-

Gmate: Un proyecto libre y gratuito para convertir Gedit -el editor de texto de escritorio Gnome de Linux- en un clon muy aproximado de Textmate. Esto se consigue instalando diferentes plugins, temas y retocando algunas opciones. Al ser gratuito es una opcin que est cogiendo muchos adeptos hoy en da.[63]

2.1.8. Framework Web Django para Python

Ilustracin II. 8: Logo de Django

2.1.8.1. Visin General

En el Django Book, Adrian Holovaty y Jacob Kaplan-Moss, definen al desarrollo web como un acto entretenido y creativo; en el peor, puede ser una molestia repetitiva y frustrante. Django te permite enfocarte en la parte divertida (el quid de tus aplicaciones Web) al mismo tiempo que mitiga el esfuerzo de las partes repetitivas. De esta forma, provee un alto nivel de abstraccin de patrones comunes en el desarrollo Web, atajos para tareas frecuentes de programacin y convenciones claras sobre cmo solucionar problemas. Al mismo tiempo, Django intenta no entrometerse, dejndote trabajar fuera del mbito del framework segn sea necesario. [15]

2.1.8.2. Conceptualizacin de Django

Wikipedia [16], define a Django como un framework de desarrollo web de cdigo abierto, escrito en Python, que cumple en cierta medida el paradigma del Modelo Vista Controlador. Fue desarrollado en origen para gestionar varias pginas orientadas a noticias de la World Company de Lawrence, Kansas, y fue liberada al pblico bajo una licencia BSD en julio de 2005; el framework fue nombrado en alusin al guitarrista

- 58-

de jazz gitano Django Reinhardt. En junio del 2008 fue anunciado que la recin formada Django Software Foundation se hara cargo de Django en el futuro.

La meta fundamental de Django es facilitar la creacin de sitios web complejos. Django pone nfasis en el re-uso, la conectividad y extensibilidad de componentes, el desarrollo rpido y el principio No lo repitas (DRY, del ingls Don't Repeat Yourself). Python es usado en todas las partes del framework, incluso en configuraciones, archivos, y en los modelos de datos.

2.1.8.3. Caractersticas de Django

Los orgenes de Django en la administracin de pginas de noticias son evidentes en su diseo, ya que proporciona una serie de caractersticas que facilitan el desarrollo rpido de pginas orientadas a contenidos. Por ejemplo, en lugar de requerir que los desarrolladores escriban controladores y vistas para las reas de administracin de la pgina, Django proporciona una aplicacin incorporada para administrar los contenidos, que puede incluirse como parte de cualquier pgina hecha con Django y que puede administrar varias pginas hechas con Django a partir de una misma instalacin; la aplicacin administrativa permite la creacin, actualizacin y eliminacin de objetos de contenido, llevando un registro de todas las acciones realizadas sobre cada uno, y proporciona una interfaz para administrar los usuarios y los grupos de usuarios (incluyendo una asignacin detallada de permisos). [16]

La distribucin principal de Django tambin aglutina aplicaciones que proporcionan un sistema de comentarios, herramientas para sindicar contenido via RSS y/o Atom, "pginas planas" que permiten gestionar pginas de contenido sin necesidad de escribir controladores o vistas para esas pginas, y un sistema de redireccin de URLs. [16]

Otras caractersticas de Django son:

Un mapeador objeto-relacional. ORM propio. Es un sistema cuya arquitectura es multiplataforma.

- 59-

Aplicaciones "enchufables" que pueden instalarse en cualquier pgina gestionada con Django. Una API de base de datos robusta. Un sistema incorporado de "vistas genricas" que ahorra tener que escribir la lgica de ciertas tareas comunes. Un sistema extensible de plantillas basado en etiquetas, con herencia de plantillas. Un despachador de URLs basado en expresiones regulares. Un sistema "middleware" para desarrollar caractersticas adicionales; por ejemplo, la distribucin principal de Django incluye componentes middleware que proporcionan cacheo, compresin de la salida, normalizacin de URLs, proteccin CSRF y soporte de sesiones.

Soporte de internacionalizacin, incluyendo traducciones incorporadas de la interfaz de administracin. Documentacin incorporada accesible a travs de la aplicacin administrativa (incluyendo documentacin generada automticamente de los modelos y las bibliotecas de plantillas aadidas por las aplicaciones).

Consola de Administracin de Proyectos Django

2.1.8.4. Arquitectura de Django

La Arquitectura de Django se basa en el patrn Modelo Vista Controlador (MVC). Sin embargo, Django define su estructura con una pequea diferencia, llamada modelo vista-template:

Django sigue el patrn MVC tan al pie de la letra que puede ser llamado un framework MVC. Someramente, la M, V y C se separan en Django de la siguiente manera [15]: M: La porcin de acceso a la base de datos, es manejada por la capa de la base de datos de Django, la cual describiremos en este captulo.

- 60-

V: La porcin que selecciona qu datos mostrar y cmo mostrarlos, es manejada por la vista y las plantillas.

C: La porcin que delega a la vista dependiendo de la entrada del usuario, es manejada por el framework mismo siguiendo tu URLconf y llamando a la funcin apropiada de Python para la URL obtenida. Debido a que la C es manejada por el mismo framework y la parte ms emocionante se produce en los modelos, las plantillas y las vistas, Django es conocido como un Framework MTV. En el patrn de diseo MTV, Los modelos de django son los encargados de mapear los datos en una base de datos relacional. Esta parte es exactamente igual que en el MVC. Estos modelos se definen en ficheros con el nombre de models.py. Las url del portal son las encargadas de definir tanto la navegacin como las acciones que se puedan realizar (alteracin en datos). Es un sistema algo lioso pero muy flexible. Las url se definen en los ficheros llamados urls.py El controlador en django se define como las vistas. Son las responsables de alterar los datos y enviarlos a las plantillas para proceder con su presentacin. Las vistas se definen en los ficherosviews.py Las plantillas django son las encargadas de mostrar los datos que se han pedido al usuario. Para ello utilizamos una carpeta llamada templates donde aadiremos ficheros de texto plano (HTML, XML, CSV, etc) con la sintaxis de templates django: variables y marcas propias de django.

Ilustracin II. 9: Estructura MVC Django

- 61-

Ilustracin II. 10: Patrn MVC vs Patrn MVT

Ilustracin II. 11: Arquitectura Django

2.1.8.5. Soporte de Base de Datos

Django es un framework donde cada uno de los modelos de datos utilizados tienen su correspondencia en una tabla de la Base de Datos, por ello Django est preparado para

- 62-

soportar las ms comunes en el mercado simplemente cambiando la variable DATABASE_ENGINE en el settings.py [15].

Django admite cuatro motores de base de datos:

PostgreSQL (http://www.postgresql.org/) SQLite 3 (http://www.sqlite.org/) MySQL (http://www.mysql.com/) Oracle (http://www.oracle.com/)

Adems de estas bases de datos que son oficialmente soportadas, existen backends desarrollados por terceros que permitirn usar otro tipo de Base de Datos con Django:

Sybase SQL Anywhere IBM DB2 Microsoft SQL Server 2005 Firebird ODBC

Se debe tener cuidado porque las versiones de Django y las caractersticas ORM soportadas por estos backends no oficiales varan considerablemente. Cualquier duda especfica sobre estos backends sern redirigidas al soporte del desarrollador correspondiente. [17]. 2.1.8.6. Soporte de Servidores Web Django incluye un servidor web ligero que se puede usar mientras se est desarrollando un sitio web. Este servidor de desarrollo vigila el cdigo a la espera de cambios y se reinicia automticamente, ayudndote a hacer algunos cambios rpidos al proyecto sin necesidad de reiniciar nada. En la etapa de produccin, sin embargo, se recomienda Apache 2 con mod_python. Aunque Django soporta la especificacin WSGI, por lo que puede correr sobre una gran

- 63-

variedad de servidores como FastCGI o SCGI en Apache u otros servidores (particularmente Lighttpd). 2.1.8.7. Requerimientos

Instalar el Lenguaje de Programacin Python

En primer lugar es lgico que deber tener instalado Python, este lenguaje de programacin ya es conocido por mucho de nosotros, recordemos que Django es un Framework para el desarrollo de aplicaciones web giles para Python. Es bueno saber que debemos contar con python 2.3 o superior, a pesar que se encuentran versiones ms actuales con eso es suficiente o compatible.

Instalar Apache

Si bien dijimos en la presentacin que Django cuenta con un servidor propio para realizar las pruebas de las aplicaciones que vamos realizando, es necesario contar con el servidor web Apache, y en especial para poder interpretar las aplicaciones en python necesitamos tambin contar con los modulos para python mod_python, FastCGI o SCGI activado. Con respecto a las versiones de estas herramientas Django requiere Apache 2.x y mod_python 3.x

Instalar un motor de Base de Datos

Este es un tpico bastante general debido a que necesitamos tener instalado nuestro motor de base de datos preferido, entre las opciones podemos escoger PostgreSQL, MySQL, Oracle y SQLite (recordemos que SQLite no requiere un servidor ejecutndose constantemente).

- 64-

2.1.9. Desarrollo gil de aplicaciones web La aparicin de aplicaciones y sitios Web proporciona la explotacin de otros mercados y servicios antes impensables como el comercio electrnico, la enseanza virtual, etc., y esto conlleva un importante crecimiento en el desarrollo del software sobre dicha tecnologa. Ahora bien, desde el punto de vista de la ingeniera del software es importante dotar de los mecanismos adecuados, para que la realizacin de este tipo de aplicaciones satisfaga las necesidades tanto de los usuarios como de los clientes que contratan el desarrollo de este tipo de aplicaciones. Pero actualmente no existe una metodologa universalmente aceptada, que gue en el proceso de desarrollo de aplicaciones Web. [18].

2.1.9.1. Objetivos de las Gestin gil

La gestin gil de proyectos tiene como objetivos dar garantas a las cuatro demandas principales de la industria en la que se ha generado [19]: Valor Reduccin del tiempo de desarrollo Agilidad Fiabilidad.

2.1.9.2. Principales Modelos de Gestin gil

Si hubiera que determinar cul es el origen de la gestin gil de proyectos, a falta de mejor informacin, habra que situarlo en las prcticas adoptadas en los 80 por empresas como Honda, 3M, Canon, Fuji, Nec, Xerox, hp o Epson para el desarrollo de nuevos productos [19]. Tras detectar los patrones comunes, y los buenos resultados que ofrecan en empresas de productos tecnolgicos, fue la industria del software la primera en seguir su adopcin, y en la que adems surgieron profesionales que documentaron y propagaron la forma especfica que cada uno daba a las prcticas giles en sus equipos de trabajo. De esta forma han aparecido en la ltima dcada los nombres [19]:

- 65-

AD - Agile Database Techniques AM - Agile Modeling ASD - Adaptive Software Development AUP - Agile Unified Process Crystal FDD - Feature Driven Development DSDM - Dynamic Systems Development Method Lean Software Development Scrum TDD - Test-Driven Design XBreed XP - eXtreme Programming

2.1.10. El Modelo de Gestin SCRUM 2.1.10.1. Origen.

Scrum es una metodologa gil de desarrollo de proyectos que toma su nombre y principios de los estudios realizados sobre nuevas prcticas de produccin por Hirotaka Takeuchi e Ikujijo Nonaka a mediados de los 80. Aunque surgi como modelo para el desarrollo deproductos tecnolgicos, tambin se emplea en entornos que trabajan con requisitos inestables y que requieren rapidez y flexibilidad; situaciones frecuentes en el desarrollo de determinados sistemas de software. En el desarrollo de software scrum est considerado como modelo gil por la Agile Alliance.

2.1.10.2. Introduccin al modelo

Scrum es una metodologa de desarrollo muy simple, que requiere trabajo duro porque no se basa en el seguimiento de un plan, sino en la adaptacin continua a las circunstancias de la evolucin del proyecto.

- 66-

Scrum es una metodologa gil, y como tal: Es un modo de desarrollo de carcter adaptable ms que predictivo. Orientado a las personas ms que a los procesos. Emplea la estructura de desarrollo gil: incremental basada en iteraciones y revisiones.

Ilustracin II. 12: Estructura del desarrollo gil.

Se comienza con la visin general del producto, especificando y dando detalle a las funcionalidades o partes que tienen mayor prioridad de desarrollo y que pueden llevarse a cabo en un periodo de tiempo breve (normalmente de 30 das). Cada uno de estos periodos de desarrollo es una iteracin que finaliza con la produccin de un incremento operativo del producto. Estas iteraciones son la base del desarrollo gil, y Scrum gestiona su evolucin a travs de reuniones breves diarias en las que todo el equipo revisa el trabajo realizado el da anterior y el previsto para el da siguiente.

Ilustracin II. 13: Estructura central de Scrum

- 67-

Control de la evolucin del proyecto

Scrum controla de forma emprica y adaptable la evolucin del proyecto, empleando las siguientes prcticas de la gestin gil:

Revisin de las Iteraciones

Al finalizar cada iteracin (normalmente 30 das) se lleva a cabo una revisin con todas las personas implicadas en el proyecto. Este es el periodo mximo que se tarda en reconducir una desviacin en el proyecto o en las circunstancias del producto

Desarrollo incremental

Durante el proyecto, las personas implicadas no trabajan con diseos o abstracciones. El desarrollo incremental implica que al final decada iteracin se dispone de una parte del producto operativa que se puede inspeccionar y evaluar.

Desarrollo evolutivo

Los modelos de gestin gil se emplean para trabajar en entornos de incertidumbre e inestabilidad de requisitos.

Intentar predecir en las fases inciales cmo ser el producto final, y sobre dicha prediccin desarrollar el diseo y la arquitectura del producto no es realista, porque las circunstancias obligarn a remodelarlo muchas veces.

Para qu predecir los estados finales de la arquitectura o del diseo si van a estar cambiando. En Scrum se toma a la inestabilidad como una premisa, y se adoptan tcnicas de trabajo para permitir esa evolucin sin degradar la calidad de la arquitectura que se ir generando durante el desarrollo.

El desarrollo Scrum va generando el diseo y la arquitectura final de forma evolutiva durante todo el proyecto. No los considera como productos que deban realizarse en la primera fase del proyecto. (El desarrollo gil no es un desarrollo en fases)

- 68-

Auto-organizacin

Durante el desarrollo de un proyecto son muchos los factores impredecibles que surgen en todas las reas y niveles. La gestin predictiva confa la responsabilidad de su resolucin al gestor de proyectos.

En Scrum los equipos son auto-organizados (no auto-dirigidos), con margen de decisin suficiente para tomar las decisiones que consideren oportunas.

Colaboracin

Las prcticas y el entorno de trabajo giles facilitan la colaboracin del equipo. sta es necesaria, porque para que funcione la auto-organizacin como un control eficaz cada miembro del equipo debe colaborar de forma abierta con los dems, segn sus capacidades y no segn su rol o su puesto.

Visin general del proceso

Scrum denomina sprint a cada iteracin de desarrollo y recomienda realizarlas con duraciones de 30 das. El sprint es por tanto el ncleo central que proporciona la base de desarrollo iterativo e incremental.

Ilustracin II. 14: Sin nombre

- 69-

Los elementos que conforman el desarrollo Scrum son: Las reuniones

Planificacin de sprint: Jornada de trabajo previa al inicio de cada sprint en la que se determina cul va a ser el trabajo y los objetivos que se deben cumplir en esa iteracin.

Reunin diaria: Breve revisin del equipo del trabajo realizado hasta la fecha y la previsin para el da siguiente. Revisin de sprint: Anlisis y revisin del incremento generado.

Los elementos

Pila del producto: lista de requisitos de usuario que se origina con la visin inicial del producto y va creciendo y evolucionando durante el desarrollo. Pila del sprint: Lista de los trabajos que debe realizar el equipo durante el sprint para generar el incremento previsto. Incremento: Resultado de cada sprint

- 70-

3. CAPTULO III:

ANALISIS COMPARATIVO DE LOS FRAMEWORKS DJANGO DE PYTHON FRENTE A RUBY ON RAILS

3.1.

Anlisis de los Frameworks

A continuacin se detalla el anlisis de los frameworks definidos anteriormente.

3.1.1. Django de Python

Es un framework de cdigo abierto, el mismo que se identifica como un paquete de software, que sirve de base para otros proyectos de software en el desarrollo de aplicaciones web. Provee una estructura y metodologa de trabajo propia. Este framework fomenta el desarrollo rpido, limpio y fomenta el diseo pragmtico, el cual sigue el principio DRY (Dont Repeat Yourself). Provee una estructura de trabajo basada en el patrn Model Template View, as como tambin est en la capacidad de mapear los objetos instanciados en Python con la base de datos a travs de su propio ORM.

- 71-

Esta tecnologa permite el diseo amigable de URLs para los buscadores acoplndose ntegramente con un completo sistema de plantillas que es de mucha utilidad para los diseadores y a su vez genera una interfaz de administracin automtica. Django tambin es capaz de gestionar formularios, sesiones de usuarios, autenticacin, cache, almacenamiento, sitemaps, internacionalizacin, etc. [20]

3.1.1.1.

Historia.

Django naci naturalmente de aplicaciones de la vida real escritas por un equipo de desarrolladores Web en Lawrence, Kansas. Naci en el otoo boreal de 2003, cuando los programadores Web del diario Lawrence Journal-World, Adrian Holovaty y Simon Willison, comenzaron a usar Python para crear sus aplicaciones. El equipo de The World Online, responsable de la produccin y mantenimiento de varios sitios locales de noticias, prosperaba en un entorno de desarrollo dictado por las fechas lmite del periodismo. Para los sitios incluidos LJWorld.com, Lawrence.com y KUsports.com, los periodistas (y los directivos) exigan que se agregaran nuevas caractersticas y que aplicaciones enteras se crearan a una velocidad vertiginosa, a menudo con slo das u horas de preaviso. Es as que Adrian y Simon desarrollaron por necesidad un framework de desarrollo Web que les ahorrara tiempo, era la nica forma en que podan crear aplicaciones mantenibles en tan poco tiempo.

En el verano boreal de 2005, luego de haber desarrollado este framework hasta el punto en que estaba haciendo funcionar la mayora de los sitios World Online, el equipo de World Online, que ahora inclua a Jacob Kaplan-Moss, decidi liberar el framework como software de cdigo abierto. Lo liberaron en julio de 2005 y lo llamaron Django, por el guitarrista de jazz Django Reinhardt.

A pesar de que Django ahora es un proyecto de cdigo abierto con colaboradores por todo el mundo, los desarrolladores originales de World Online todava aportan una gua centralizada para el crecimiento del framework, y World Online colabora con otros

- 72-

aspectos importantes tales como tiempo de trabajo, materiales de marketing, y hosting/ancho de banda para el Web site del framework

3.1.1.2.

Licenciamiento

Django fue liberado al pblico bajo una licencia BSD en julio de 2005. La licencia BSD [21], hasta el punto que en muchas ocasiones se refieren a licencias permisivas como \licencias tipo BSD". La licencia BSD (Berkeley Software Distribucin), solo establece la obligacin de dar crdito a los autores, mientras que permite tanto la redistribucin binaria y la del cdigo fuente, aunque no obliga a ninguna de las dos en ningn caso. As mismo se da permiso para realizar modificaciones y ser integrada con otros programas casi sin restricciones. 3.1.2. Ruby on Rails

Ruby on Rails, tambin conocido como RoR o Rails es un framework de aplicaciones web de cdigo abierto escrito en el lenguaje de programacin Ruby, siguiendo el paradigma de la arquitectura Modelo Vista Controlador (MVC). Trata de combinar la simplicidad con la posibilidad de desarrollar aplicaciones del mundo real escribiendo menos cdigo que con otros frameworks y con un mnimo de configuracin. El lenguaje de programacin Ruby permite la metaprogramacin, de la cual Rails hace uso, lo que resulta en una sintaxis que muchos de sus usuarios encuentran muy legible. Rails se distribuye a travs de RubyGems, que es el formato oficial de paquete y canal de distribucin de bibliotecas y aplicaciones Ruby. [63]

3.1.2.1.

Historia

David Heinemeier Hansson extrae de Ruby on Rails de su trabajo en Basecamp, una herramienta de gestin de proyectos por 37signals (ahora una compaa de aplicaciones web). Hansson lanz por primera vez Rails como cdigo abierto en julio de 2004, pero no comparti los derechos del proyecto hasta febrero de 2005. En agosto de 2006, el framework alcanz un hito cuando Apple anunci que el envo de Ruby on Rails en Mac OS X 10.5 "Leopard", que fue lanzado en octubre de 2007. La versin de Rails 2.3 fue lanzado el 15 de marzo de 2009. Principales novedades en Rails incluyen plantillas, motores, Porta y las formas anidadas del modelo. Plantillas

- 73-

permiten a los desarrolladores generar un esqueleto de la aplicacin de gemas y configuraciones. Motores que piezas de una aplicacin de reutilizacin completa con rutas, caminos de vista y modelos.

El 23 de diciembre de 2008, Merb, otro framework de aplicaciones web se puso en marcha, y Ruby on Rails anunci que iba a trabajar con el proyecto Merb para llevar "las mejores ideas de Merb" en Rails 3, terminando la "duplicacin innecesaria" a travs de ambas comunidades. Merb se fusion con Rails como parte del lanzamiento de Rails 3.0.

Rails 3.1 fue lanzado el 31 de agosto de 2011, con las migraciones de bases de datos reversibles, as como la canalizacin de los activos. [64]

3.1.2.2.

Licenciamiento

Rails est liberado bajo la licencia MIT. La licencia MIT es una de tantas licencias de software que ha empleado el Instituto Tecnolgico de Massachusetts (MIT, Massachusetts Institute of Technology) a lo largo de su historia, y quizs debera llamarse ms correctamente licencia X11, ya que es la licencia que llevaba este software de muestra de la informacin de manera grfica X Window System originario del MIT en los aos 1980. Pero ya sea como MIT o X11, su texto es idntico. [63]

El texto de la licencia no tiene copyright, lo que permite su modificacin. No obstante esto, puede no ser recomendable e incluso muchas veces dentro del movimiento del software de cdigo abierto desaconsejan el uso de este texto para una licencia, a no ser que se indique que es una modificacin, y no la versin original.

La licencia MIT es muy parecida a la licencia BSD en cuanto a efectos. [65]

3.2.

Determinacin de parmetros de productividad para la comparacin

Para la comparacin de los Frameworks Django y Ruby on Rails, en su mbito de productividad se ha tomado como referencia el manual de FIM productividad (Fondo

- 74-

para la Investigacin y Mejoramiento de la productividad) adaptado al desarrollo de software y los parmetros seleccionados de ste en la investigacin CALIDAD SISTMICA Y PRODUCTIVIDAD EN EL DESARROLLO DE SISTEMAS DE SOFTWARE [22] desarrollada por Edumilis M. MNDEZ, Mara A. PREZ, Anna C. GRIMN, Luis E. MENDOZA del Departamento de Procesos y Sistemas de la Universidad Simn Bolvar de Venezuela. Esta investigacin se ha seleccionado como gua principal para analizar los parmetros de evaluacin de la productividad.

Y es as que se ha considerado una serie de factores, siendo cada ndice seleccionado es importante para una mejor determinacin de la productividad, se ha dividido en 7 parmetros cada uno con sus sub-parmetros para determinar por separado sus potencialidades y debilidades, Se describe a continuacin los parmetros de comparacin para la determinacin del mejor Framework.

Tabla III. 1: Parmetros e indicadores a valorar.

CLASIFICACION

PARAMETROS Modelo

INDICADORES Soporte para mltiples bases de datos Manipulacin con la base de datos Desempeo con la base de datos Mapeador de Objeto Relacional ORM Uso de plantillas Adaptacin con hojas de estilo Fusin de cdigo y diseo Generacin automtica de formularios Validacin de formularios Manejo visual de componentes de formulario Herencia de clase base

Patrn de Diseo Modelo Vista Controlador

Vista Controlador

Principio DRY

Reutilizacin

- 75-

Don`t repeat yourself

Herencia de plantillas Personalizacin de cdigo heredado Tamao de la aplicacin Variable uso de sesiones Manejo de cookies Encriptacin de datos Validacin de datos Especificaciones Licenciamiento Costo Contenedor de aplicaciones Entorno de desarrollo Tiempo de instalacin

Seguridad

Seguridad de Aplicacin

Madurez de producto Producto Instalacin

3.2.1. Manejo del Patrn MVC

3.2.1.1.

Indicador 1: Modelo/Acceso a Datos.

Describe la capacidad del framework y el anlisis de los aspectos que brinda cada tecnologa para interactuar con un motor de base de datos y la capacidad de manipulacin de los datos.

Tabla III. 2: Descripcin Indicador 1, Modelo/Acceso a datos

Descripcin Indicador 1 Modelo/Acceso a Describe la capacidad del framework y

- 76-

Datos.

el anlisis de los aspectos que brinda cada tecnologa para interactuar con un motor de base de datos y la capacidad de manipulacin de los datos

[ndice 1.1]

Soporte para mltiples bases de datos

Describe

el

comportamiento

del

framework ante los distintos motores de base de datos. Describe la manipulacin de la base de datos y el control de los diferentes elementos que la componen. Describe el desempeo del framework utilizando un motor de base de datos. Describe la efectividad en la utilizacin del lenguaje hacia el modelo relacional.

[ndice 1.2]

Manipulacin con la base de datos Desempeo con la base de datos Mapeador del objeto relacional ORM

[ndice 1.3]

[ndice 1.4]

3.1.2.2.Indicador 2: Vista Describe las potencialidades que presentan los framework para el desarrollo del entorno visual de las aplicaciones web.

Tabla III. 3: Descripcin Indicador 2, Vista

Descripcin Describe las potencialidades que Indicador 2 Vista presentan los framework para el desarrollo del entorno visual de las aplicaciones web. Describe la agilidad con que los [ndice 2.1] Uso de plantillas frameworks permiten utilizar un sistema basado en plantillas.

- 77-

Describe el fcil acoplamiento del [ndice 2.2] Adaptacin con hojas de estilo framework con hojas de estilo en cascada. Describe el fcil engranaje del [ndice 2.3] Fusin de cdigo y diseo cdigo de la aplicacin y el diseo de la vista.

3.2.3.3.Indicador 3: Controlador Describe el desarrollo de los formularios y la capacidad que presenta cada framework para implementarlos.

Tabla III. 4: Descripcin Indicador 3, Controlador

Descripcin Describe el desarrollo de los formularios Indicador 3 Controlador y la capacidad que presenta cada framework para implementarlos. Generacin automtica de formularios Describe la capacidad que presenta la tecnologa en la generacin automtica de formularios. Las ventajas de la validacin de datos errados en un formulario Es la destreza del framework en la manipulacin visual de los componentes de un formulario

[ndice 3.1]

[ndice 3.2]

Validacin de formularios Manipulacin visual de

[ndice 3.3]

componentes de formulario.

3.2.4. Principio DRY (Don`t Repeat Yourself)

- 78-

3.2.4.1.Indicador 4: Reutilizacin Describe la capacidad de utilizar el cdigo que se encuentra ya implementado.

Tabla III. 5: Descripcin Indicador 4, Reutilizacin

Descripcin Describe la capacidad de utilizar el Indicador 4 Reutilizacin cdigo que se encuentra ya

implementado. [ndice 4.1] Herencia de clase base La capacidad de heredar clases hijas desde su clase base. La posibilidad de heredar plantillas desde una plantilla base.

[ndice 4.2]

Herencia de plantillas.

[ndice 4.3]

Personalizacin de cdigo La facilidad en la implementacin del heredado. Tamao de la aplicacin cdigo heredado. Describe el tamao en bits que posee una aplicacin web completa.

[ndice 4.4]

3.2.5. Seguridad

3.2.5.1.Indicador 5: Seguridad de aplicacin

Describe la facilidad que proporciona el framework para generar los principales indicadores de seguridad a nivel de aplicacin tales como sesiones y validaciones de datos.

Tabla III. 6: Descripcin Indicador 5, Seguridad de aplicacin

Descripcin

- 79-

Describe la facilidad que proporciona el framework para generar los principales Indicador 5 Seguridad de aplicacin indicadores de seguridad a nivel de aplicacin tales como sesiones y

validaciones de datos. Describe la administracin en la creacin [ndice 5.1] Variable uso de sesiones de sesiones y la facilidad en su uso y gestin del framework. [ndice 5.2] Manejo de cookies Describe el manejo de cookies al momento de un inicio de sesin Describe la eficacia del mtodo que utiliza el framework para la encriptacin Describe [ndice 5.4] Validacin de datos los distintos mtodos de

[ndice 5.3]

Encriptacin de datos

validacin para el ingreso correcto de datos.

3.2.6. Producto

3.2.6.1.Indicador 6: Madurez de producto

Describe la madurez del producto como herramienta de desarrollo de aplicaciones web de una manera sencilla.

Tabla III. 7: Descripcin Indicador 6, Madurez del producto

Descripcin Describe la madurez del producto como Indicador 6 Madurez del producto herramienta de desarrollo de aplicaciones web de una manera sencilla. Establece las versiones que presenta el [ndice 6.1] Especificaciones framework al momento de desarrollo, describe as la compatibilidad con las

- 80-

dems herramientas. Describe el nivel de licenciamiento que [ndice 6.2] Licenciamiento poseen las herramientas, influyen al

momento de produccin Describe que tecnologa brinda una ventaja respecto al costo de desarrollo.

[ndice 6.3]

Costo

3.2.6.2.Indicador 7: Instalacin

Describe las facilidades que presentan los frameworks al momento de realizar el proceso de instalacin.

Tabla III. 8: Descripcin Indicador 7, Instalacin

Descripcin Describe las facilidades que presentan los Indicador 7 Instalacin frameworks al momento de realizar el proceso de instalacin. [ndice 7.1] Contenedor de aplicaciones Describe el servidor de aplicaciones en el cual se ejecutara la aplicacin. Describe las facilidades que presenta el [ndice 7.2] Entorno de desarrollo framework para adaptarse a un fcil entorno de desarrollo. Describe la complejidad del proceso de [ndice 7.3] Tiempo de instalacin instalacin del framework considerando el tiempo.

3.3.

Descripcin de los mdulos de pruebas

- 81-

Los mdulos de prueba son escenarios prototipos que ayudan a verificar y obtener datos los cuales nos permiten identificar con claridad que framework presenta la mayor productividad.

Los mdulos que se desarrollarn son implementados en los 2 Frameworks definidos. Estos mdulos son desarrollados con las caractersticas particulares y arquitectura que presenta cada uno de los frameworks, es decir aplicando el patrn de diseo que los identifica. En cada Framework se probara los mismos escenarios para la comparacin de los parmetros de productividad definidos con anterioridad y se obtendr los resultados mediante la experiencia en el desarrollo de cada uno de estos mdulos de prueba. . La mayora de resultados se los hace midiendo el tiempo empleado en las actividades de desarrollo. 3.3.4. Mdulo 1

Es el modulo que ser desarrollador para probar los siguientes parmetros de:

Manejo del patrn MVC Principio DRY

3.3.4.1.Manejo del patrn MVC

Modelo: Se refiere a la conectividad a la base de datos, el uso de controladores y configuracin de archivos de conexin. En este sub-modulo se crear una pgina que despliegue un listado de instituciones las cuales pueden ser asignadas a un determinado docente. Esto se lo realizara mediante las respectivas consultas al la base de datos en PostgresSQL.

Vista: Determina la capa de la interfaz de la aplicacin y la manera en la que se muestran los datos. En este sub modulo se desarrollar una pgina del sistema de control docente de la DECH, la cual consta con varios componentes de la interfaz de usuario.

- 82-

Controlador: Este sub modulo lo representa la creacin de una formulario para el ingreso de un nuevo docente y la validacin de sus campos vacios.

3.3.4.2.Principio DRY

Este principio permite conocer las ventajas que presentan los frameworks para la reutilizacin en el cdigo. Estos parmetros sern comparados utilizando los mdulos anteriormente desarrollados enfocados en el DRY.

3.3.5. Mdulo 2

En este modulo implementara para probar los parmetros de seguridad.

En este modulo se desarrollara un login para la autenticacin de los usuarios en una aplicacin web, mediante el uso de sesiones, proteccin de los datos que viajan en la web como las contraseas, el uso de cookies y la validacin de usuarios existentes.

3.3.6. Mdulo 3

En este modulo se probaran los parmetros del Producto, en el cual se realizan cuadros comparativos que reflejan las caractersticas que presenta cada framework al momento de desarrollar aplicaciones web. Esto nos permitir distinguir las ventajas en una produccin final.

3.4.

Desarrollo de los mdulos de pruebas

Los distintos mdulos dentro de la aplicacin web prototipos son realizados utilizando los diferentes lenguajes de programacin con las bondades que presentan sus respectivos frameworks, como lo son Python con Django y Ruby on Rails. Ambos siguiendo la arquitectura MVT (Modelo Vista Template) y MVC (Modelo Vista

- 83-

Controlador) respectivamente, que son patrones que definen la arquitectura que identifica a cada uno de los frameworks.

Las aplicaciones web prototipo sern desarrolladas en cada uno de los Frameworks, los mismos que sern implementados en las mismas condiciones y realizaran idnticas acciones, as como funciones, para probar los escenarios planteados.

3.4.4. Desarrollo de los mdulos de prueba con la tecnologa Django Framework

El desarrollo de la aplicacin web mediante la utilizacin de Django sigue claramente una estructura bien definida, separando a diferentes aplicaciones que pueden existir en un proyecto web, es decir un proyecto web puede tener varias aplicaciones, lo cual nos facilita la proyeccin de crecimiento dentro de la creacin de futuras funcionalidades.

Sigue la arquitectura MVT en lo cual se determinan claramente a los modelos, las vistas y el sistema de plantillas.

Ilustracin III. 1: Estructura detallada de Django MVT

- 84-

3.4.4.1.

Mdulo 1

MODELO

Dentro de este modulo utilizaremos los driver y mtodos que nos permitirn acceder a la base de datos y la manipulacin de los datos. Para lo cual crearemos un nuevo proyecto en Django para posteriormente editar los parmetros de conexin en el archivo de configuracin settinngs.py

En el archivo de configuracin realizaremos la edicin de la variables para la conexin a un motor de base de datos determinado, en este caso la conexin se la realiza ha PostgreSQL.

Ilustracin III. 2Configuracin de la conexin a la BD en settings.py

Los variables de conexin se configuran de la siguiente manera: ENGINE: Se especifica el controlador del motor de base de datos a utilizar, en este caso puede ser: SQLite, PostgreSQL, MySQL y Oracle. NAME: Indica el nombre de la base de datos a la cual nos vamos a conectar.

- 85-

USER: Especifica el usuario con acceso a la base de datos antes indicada. PASSWORD: Se refiere a la contrasea de ingreso para el usuario. HOST: Indica la direccin del host donde se aloja el servidor de base de datos. PORT: Se direcciona hacia el puerto de escucha del motor de base de datos.

Despus de configurar las variables de conexin se procedemos a la creacin de los modelos existentes en la aplicacin que sern las tablas de nuestra base de datos.

Ilustracin III. 3: Creacion de los modelos.

Una vez configurado settings.py podemos validar, generar el codigo SQL para la creacion de los elementos de la base de datos y sincronizar al la aplicacin hacia la base de datos.

- 86-

Ilustracin III. 4: Validacin y sincronizacin a la base de datos.

Los comandos que permiten la validacin, generacin del cdigo SQL y la creacin de las tablas en la base de datos son:

validate: Valida algn error en los modelos especificados en models.py sqlall [Nombre de la aplicacin]: Genera el cdigo SQL para la creacin de la base de datos. syncdb: Permite la sincronizacin de la aplicacin hacia la base de datos creando las tablas necesarias que utilizara la aplicacin.

Django permite la interaccin hacia la base de datos utilizando el propio lenguaje de Python el cual es mapeado hacia el modelo relacional de datos, a travs de su propio ORM. Esto nos permite consultar a nuestra base de datos de una manera sencilla, ya que permite ejecutar cdigo SQL directamente para operaciones especialmente complejas.

Ilustracin III. 5: Creacin de nuevas instituciones utilizando el ORM.

- 87-

Ilustracin III. 6: Consulta de instituciones a la base de datos a travs del ORM

VISTA

EL propsito de desarrollo de este sub modulo es la comprobacin que posee el framework para la fcil realizacin de la interfaz de usuario, verificando as el uso de plantillas HTML y su adaptacin a la utilizacin de hojas de estilo en cascada.

Ilustracin III. 7: Creacin del documento base HTML.

Todas las plantillas para la creacin de la aplicacin web se generan a partir de un documento HTML base, el cual hace uso de estilos.

- 88-

Ilustracin III. 8: Uso de hojas de estilo CSS con Django

La fcil aplicacin y creacin de la dems plantillas se debe al completo uso de un sistema completo de plantillas que posee Django, y es as que los dems documentos HTML heredar sus propiedades a partir de la plantilla base, nicamente con la utilizacin de etiquetas.

Ilustracin III. 9: Pagina index.html con el uso de etiquetas.

Esto permite un gil desarrollo para las dems interfaces de usuario, proporcionando as ventajas en la creacin de las vistas.

- 89-

Ilustracin III. 10: Vista de la pantalla principal index.html

CONTROLADOR

El sub modulo controlador se desarrollado mediante la creacin de un formulario para el ingreso de un nuevo docente, de manera que se pueda notar las ventajas en la creacin automtica del formulario a partir del modelo y la validacin del formulario en caso que sus datos sea errneos.

Ilustracin III. 11: Creacin del formulario docente a partir del modelo.

Django permite la creacin y generacin automtica de los formularios a partir de los atributos creados anteriormente en los modelos.

- 90-

Ilustracin III. 12: Plantilla para ingresar un nuevo docente.

La creacin del formulario ser generado a partir del modelo Docente, a travs de {{ form.as_table}}

Ilustracin III. 13: Formulario generado automticamente a partir del modelo.

- 91-

Ilustracin III. 14: Validacin en caso de que los campos estn vacios

Ilustracin III. 15: Validacin en caso que los datos ingresados sean incorrectos.

3.4.4.2.

Mdulo 2

El desarrollo del modulo de autenticacin utilizaremos el sistema de inicio de sesin propio de Django, puesto que al instalar la aplicacin 'django.contrib.auth', tenemos la posibilidad de utilizar las vistas propias del framework y un propio sistema de autenticacin.

- 92-

Ilustracin III. 16: Uso de las funciones propias de autenticacin de Django

El sistema de autenticacion de Django permite utilizar un completo sitio de administracion de grupos y usuarios en el cual permite gestionar el uso de permisos, sesiones, y el uso de cookies.

Ilustracin III. 17: Implementacin del formulario de autenticacin de usuarios.

Ilustracin III. 18: Sitio de administracin de Django

- 93-

Ilustracin III. 19: Autenticacin del Sistema prototipo de pruebas.

Ilustracin III. 20: Validacin de usuario incorrecto.

3.4.4.3.

Mdulo 3

PRODUCTO

Madurez del producto: Las versiones existentes de la tecnologa Django son: Django 0.9 Django 1.0 Django 1.1 Django 1.2 Django 1.3 y 1.3.1 Se est trabajando en la versin 1.4

- 94-

Ilustracin III. 21: Versin del Framework Django.

Costos: La inversin en el desarrollo respecto al costo es mnima debido a la agilidad y facilidad en la construccin de las aplicaciones, en el momento de produccin.

Licenciamiento: Es relacionado con el costo, ya que Django cuenta con un licenciamiento libre BSD.

INSTALACION

La instalacin del framework es muy sencilla, previamente teniendo instalado Python el paquete se instalara nicamente con una sola lnea de cdigo.

>>> python setup.py install

Ilustracin III. 22: Instalacin de Django

- 95-

Entorno de desarrollo: El entorno de desarrollo seleccionado es Aptana, el cual es un IDE de desarrollo web, el mismo que cumple apropiadamente los requerimientos para un desarrollo ms gil.

Ilustracin III. 23: Entorno de desarrollo web Aptana Studio 3.0

3.4.5. Desarrollo de los mdulos de prueba con la tecnologa Ruby on Rails Framework

3.4.5.1.Mdulo 1 Virtualmente todas las aplicaciones Rails inician de la misma manera, con un comando. Este til comando crea un esqueleto de la aplicacin Rails en un directorio de su eleccin. Para empezar, se debe crear un directorio para los proyectos de Rails y, a continuacin, ejecute el comando Rails para hacer la aplicacin:

- 96-

Ilustracin III. 24: Creacin de un proyecto con RoR

Esto crea una cantidad de archivos y directorios. Esta es una estructura de directorios y ficheros estndar de Rails.

Ilustracin III. 25: Estructura de directorios de un proyecto con RoR

- 97-

Antes de todo se debe modificar el archivo Gemfile, el cual contiene las gemas que indican con que libreras de RoR va a trabajar en la aplicacin, para este caso que estamos utilizando PostgreSQL se debera aadir gem 'pg' a dicho archivo. En Rails se trabaja con 3 entornos de trabajo: desarrollo, prueba y produccin, lo cual indica que se puede trabajar con tres motores de dase de datos diferentes. Se debe configurar los parmetros, en este caso vamos a configurar la conexin a la base de datos PostgreSQL para los tres entornos, lo cual se lo hace en el archivo config/database.yml en el cual se debe configurar:

Ilustracin III. 26: Configuracin de la base de datos.

En donde: adapter: indica con que adaptador de base de base de datos se va a trabajar. encoding: Es un parmetro que indica la codificacin que trabajaremos, de preferencia debemos dejarlo en Unicode, que es el que es el valor por defecto database: Este parmetroes el nombre de la base de datos. pool: su valor por defecto es 5. username: aqu se indica el usuario con permisos para realizar que utilizar la base de datos password: corresponde a la contrasea del usuario anterior.

Scaffolding

- 98-

Ahora que ya se tiene lista la conexin con la base de datos, se puede a comenzar a crear los modelos vistas y controladores, para lo cual se va utilizar el comando scaffold que simplifica estas acciones ya que nos ayuda creando el modelo la vista y el controlador, as como la migracin que creara la tabla en la base de datos.

Ilustracin III. 27: Creacin mediante scaffold del MVC para Institucin.

Ilustracin III. 28: Creacin mediante scaffold del MVC para Docente

- 99-

Ilustracin III. 29: Creacin mediante scaffold del MVC para Contrato

Manejo del patrn MVC

Modelo

En Ruby on Rails, las clases del Modelo son gestionadas por ActiveRecord. Por lo general, lo nico que tiene que hacer el programador es heredar de la clase ActiveRecord::Base, y el programa averigua automticamente qu tabla usar y qu columnas tiene.

Las definiciones de las clases tambin detallan las relaciones entre clases con sentencias de mapeo objeto relacional. En nuestro prototipo, la clase Institucin tiene una definicin has_many:contratos, aqu tambin es en donde se deben realizar las rutinas de validacin de datos:

Ilustracin III. 30: Modelo de la clase Contrato.

- 100-

Ilustracin III. 31: Modelo de la clase Docente.

Ilustracin III. 32: Modelo de la clase Institucin.

Vista En MVC, Vista es la lgica de visualizacin, o cmo se muestran los datos de las clases del Controlador. Con frecuencia en las aplicaciones web la vista consiste en una cantidad mnima de cdigo incluido en HTML.

Ilustracin III. 33: Estructura de las Vistas generadas por scaffold.

Existen en la actualidad muchas maneras de gestionar las vistas. El mtodo que se emplea en Rails por defecto es usar Ruby empotrado (archivos.html.erb), que son bsicamente fragmentos de cdigo HTML con algo de cdigo en Ruby, siguiendo una sintaxis similar a JSP. Las vistas generadas automticamente son 5, claro que esto depende de lo que se necesite y ustedes variar es decir podran ser menos o ms:

- 101-

1._form.html.erb :sirve como plantilla para las dems.

Ilustracin III. 34: Cdigo HTML con cdigo Ruby embebido del _form.html.erb

index.html.erb :muestra una lista de todos los registros de una tabla determinada.

Ilustracin III. 35: Cdigo Html con cdigo Ruby embebido del index.html.erb

show.htm.erb :muestra los detalles de un determinado registro.

- 102-

Ilustracin III. 36: Cdigo Html con cdigo Ruby embebido del show.html.erb

new.html.erb :crea un nuevo registro.

Ilustracin III. 37: Cdigo Html con cdigo Ruby embebido del new.html.erb

edit.htm.erb :edita un registro determinado.

Ilustracin III. 38: Cdigo Html con cdigo Ruby embebido del edit.html.erb

Todas las vistas que anteriormente se han mostradas son dinmicas y modificables, se les pueden aplicar apariencias con hojas de estilo, adems no solo pueden ser dinmicas sino tambin con contenido esttico. La adaptacin con Hojas de estilo se lo hace simplemente cargando las Hojas de estilo al proyecto, y utilizndolas en nuestras vistas en este caso se utiliza como plantilla

- 103-

madre a: app/views/layouts/application.html.erb, la que servir como base y en esta se irn cargando el contenido de las dems vistas a travs de una lnea de cdigo <%= yield %>

Ilustracin III. 39: Plantilla base de la aplicacin prototipo.

Al final aplicando la misma plantilla HTML con su respectivo estilo la pgina de inicio quedara de la siguiente manera:

Ilustracin III. 40: Pgina de inicio de la aplicacin prototipo.

- 104-

Controlador

La implementacin del Controlador es manejada por el ActionPack de Rails, que contiene la clase ApplicationController. Una aplicacin Rails simplemente hereda de esta clase y define las acciones necesarias como mtodos. Como Rails proporciona andamiaje (scaffolding), que nos ayuda a construir rpidamente la mayor parte de la lgica y vistas necesarias para realizar las operaciones ms frecuentes, en este caso los controladores que se generaron son:

Ilustracin III. 41: Controladores de la aplicacin prototipo.

El controlador application_controller.rb no fue generado automticamente, pero este si se cre solo al momento de crear la nueva aplicacin prototipo.

- 105-

Ilustracin III. 42: Ejemplo de un controlador estndar generado por scaffolding.

En la siguiente ilustracin se muestra el formulario de un ingreso de una nueva institucin:

Ilustracin III. 43: Ejemplo de un controlador estndar generado por scaffolding.

Ahora se prueba la validacin de datos del formulario, cabe recalcar que el controlador es el encargado de llevar los datos del formulario (vista) hacia el modelo y este es quien se encarga de validar si los datos son correctos o no caso contrario este le dir al controlador que hay errores, que sern mostrados en la vista.

Ilustracin III. 44: Ejemplo de validacin de datos.

3.4.5.2.Mdulo 2

En este mdulo implementaremos la autenticacin en RoR, para lo cual de varias soluciones hemos tomado la solucin llamada devise, esta solucin de autenticacin es basada en Warden (que est basado en Rack), Warden permite que varias aplicaciones

- 106-

compartan la autenticacin. Tiene autenticacin: va HTTP, POST, single access token u OAuth2, adems permite tener varios tipos de usuario (scopes).

Ilustracin III. 45: Instalacin de devise.

Para utilizar devise primero se debe haber instalado su gema, y haber hecho la generacin del modelo User, que es parecido a cualquier otro modelo ActiveRecord pero tiene una llamada al mtodo devise, que es donde sucede la magia de la autenticacin. El mtodo devise recibe como argumentos una lista de los mdulos que se quiere que sean soportados en el prototipo, en nuestro ejemplo vemos los mdulos que veamos antes: :rememberable y :recoverable. Es fcil aadir o quitar mdulos de esta lista, con lo que personalizaramos la funcionalidad de autenticacin de Devise para ajustarla a las necesidades del prototipo. Por ejemplo se ha quitado :confirmable porque no es necesario que los usuarios tengan que confirmar su correo.

- 107-

Ilustracin III. 46: Clase User que se utiliza en la autenticacin con devise.

Ilustracin III. 47: Interfaz para realizar el login.

Ilustracin III. 48: Error al ingresar un usuario o contrasea incorrectos.

- 108-

Ilustracin III. 49: Autenticacin correcta

- 109-

3.4.5.3.Mdulo 3

Producto

Madurez del producto: RoR posee las siguientes versiones:

Versin 1.0 1.2 2.0 2.1 2.2 2.3 3.0 3.1 3.2

Fecha December 13, 2005 January 19, 2007 December 7, 2007 June 1, 2008 November 21, 2008 March 16, 2009 August 29, 2010 August 31, 2011 January 20, 2012

Tabla III. 9: Versiones de RoR

- 110-

Para el desarrollo del prototipo se est utilizando la versin 3.1.3

Ilustracin III. 50: Versin de Rails

Adems, durante el proceso de desarrollo se puede utilizar el Versionamiento de la aplicacin web utilizando Git, es decir que durante el proceso de desarrollo la aplicacin se puede ir respaldando antes de hacer un cambio, a esto en Rails se le denomina como Versionamiento.

Costos: RoR realmente no tiene costo en el desarrollo, pero en el momento de ponerlo a produccin obviamente intervendrn valores que tendrn que ver con el dominio, el alojamiento de la aplicacin web en un Web hosting.

Licenciamiento: El framework Rails posee un licenciamiento Software libre MIT, mientras que el lenguaje de programacin licenciamiento BSD, que a la final los dos dejan libre su uso, ya que ambos tipos de licenciamiento son Software libre.

Instalacin

La instalacin de esta tecnologa es sencilla pero a la vez un tanto larga, el proceso de instalacin suele durar de 20 a 30 minutos, ya que primero se debe instalar el leguaje Ruby, las gemas para Rubygems, y por ltimo el framework Rails, y lo recomendado para esta versin de Rails es usar RVM (Ruby versin manager), que como su nombre lo indica es un administrador de Ruby. Una vez instalado RVM para la instalacin de Rails 3.1 se realiz lo siguiente:

- 111-

Ilustracin III. 51: Instalacin de Rails 3.1.3

Entorno de desarrollo: el IDE utilizado es Aptana Studio 3.0, debido a que se adapta, a las necesidades en el desarrollo, sobre todo en la navegacin por los directorios de la aplicacin, adems tambin es Software libre.

3.5.

Anlisis Comparativo

Los resultados de los indicadores con sus respectivos ndices se realizan un cuadro comparativo de los Frameworks Django y Ruby on Rails, cuyas pruebas de desarrollo fueron realizadas bajo los mismos escenarios.

La calificacin para cada parmetro se determinara de acuerdo a la escala que se mostrara a continuacin, lo cual nos permitir determinar la tecnologa que se adapta ms a un desarrollo ms productivo y gil de aplicaciones web.

Regular

Bueno

Muy Bueno

Excelente

<70%

>=70% y <80%

>=80% y <95%

>=95%

Tabla III. 10: Valoracin cualitativa y cuantitativa.

La evaluacin para los indicadores es de acuerdo al tiempo y experiencia de desarrollo, para lo cual la valoracin variar entre uno y cuatro.

- 112-

Valor Cualitativo Insuficiente Parcial Suficiente Excelente No Satisfactorio Poco Satisfactorio Satisfactorio Muy Satisfactorio

Valor Cuantitativo 1 2 3 4

Valor Representativo

Tabla III. 11: Escala de valoracin cualitativa y cuantitativa para los indicadores

Valor Cuantitativo Equivalencias

1 0.25

2 0.50

3 0.75

4 1

Tabla III. 12: Equivalencias de los valores cuantitativos.

Para la realizacin de la comparacin se utilizara la siguiente nomenclatura:

X = Representa el puntaje obtenido por la tecnologa Django. Y = Representa el puntaje obtenido por la tecnologa Ruby on Rails. W = Representa el puntaje sobre el cual ser evaluado el parmetro. Cdj = Representa el puntaje alcanzado de Django en el parmetro. Cror = Representa el puntaje alcanzado de Ruby on Rails en el parmetro. Ct = Representa el puntaje por el cual es evaluado el parmetro.

Pdj = Calificacin porcentual obtenida por Django. Pror = Calificacin porcentual obtenida por Ruby on Rails.

Las formulas que se utilizaran en el proceso del anlisis comparativo son las siguientes:

- 113-

( ( ) )

3.5.4. Manejo del patrn MVC

3.5.4.1.Indicador 1: Modelo/Acceso a datos

El acceso a la base de datos es un parmetro muy importante en un desarrollo gil de aplicaciones web, por lo cual se analizara los aspectos necesarios para la manipulacin de los datos y acceso a los mismos.

ndice 1.1: Soporte a mltiples bases de datos: En este ndice se valorizar tomando en consideracin los nmeros de motores de base de datos que soporta el framework.

Tabla III. 13: Soporte a mltiples bases de datos

Valoracin Numero de Bases de datos que soporta Hasta 1 Hasta 2 Hasta 3 >= 4 Valoracin cualitativa No Satisfactorio Poco Satisfactorio Satisfactorio Muy Satisfactorio

ndice 1.2: Manipulacin con la base de datos: En este ndice se valorizar de acuerdo al tiempo en configurar la conexin a la base de datos.

Tabla III. 14: Manipulacin con la base de datos

- 114-

Valoracin Tiempo en minutos 16 a 20 11 a 15 6 a 10 1a5 Valoracin cualitativa No Satisfactorio Poco Satisfactorio Satisfactorio Muy Satisfactorio

ndice 1.3: Desempeo con la base de datos: Este ndice valorizara el tiempo en la creacin de los modelos para las instituciones y docentes que posteriormente sern las tablas en la base de datos.

Tabla III. 15: Desempeo con la base de datos

Valoracin Tiempo en minutos 16 a 20 11 a 15 6 a 10 1a5 Valoracin Cualitativa No Satisfactorio Poco Satisfactorio Satisfactorio Muy Satisfactorio

ndice 1.4: Mapeador del objeto relacional: Este ndice valorizara el tiempo de realizar una insercin de una institucin travs de la utilizacin del ORM en el Modulo 1.

Tabla III. 16: Mapeador del objeto relacional

Valoracin Tiempo en minutos 16 a 20 Valoracin Cualitativa No Satisfactorio

- 115-

11 a 15 6 a 10 1a5

Poco Satisfactorio Satisfactorio Muy Satisfactorio

3.5.4.2.

Valoraciones le parmetro Modelo / Acceso a datos

Tabla III. 17: Resultados del Indicador 2: Vista

Django Indicadores Valor Cualitativo Soporte a mltiples DBMS Manipulacin con la BD Desempeo con la BD Mapeador objeto relacional Muy Satisfactorio Muy Satisfactorio Satisfactorio Muy Satisfactorio

Ruby on Rails

Valor Valor Valor Cualitativo Obtenido/20 Cuantitativo 4 4 3 4 Muy Satisfactorio Muy Satisfactorio Muy Satisfactorio Muy Satisfactorio 4 4 4 4

3.5.4.3.Interpretacin

Soporte para mltiples bases de datos: El soporte desde el framework hacia la administracin de la informacin mediante los distintos motores de base de datos es muy importante, ya que Django, as como Ruby on Rails soportan 4 motores de base de datos, por lo que ambos han obtenido una calificacin de 4 puntos que equivale a Muy satisfactorio.

Manipulacin con la base de datos: Este es un ndice que nos permite identificar la eficiencia que presenta la tecnologa para conectarse a uno u otro motor de base de

- 116-

datos por lo que el tiempo en realizar la conexin a la base de datos describe esta caracterstica. Despus de realizar las pruebas de conexin respecto al tiempo, Django as como Ruby on Rails se lo puede implementar en un tiempo menor a cinco minutos, puesto que ambos frameworks obtienen una calificacin 4 puntos que equivale a Muy satisfactorio.

Desempeo con la base de datos: El desarrollo de los modelos en los respectivos frameworks, nos permiti determinar el desempeo que posee cada tecnologa con la base de datos. Puesto que el tiempo de implementacin de los modelos en Django estuvo en el rango de 6 a 10 minutos obtuvo una calificacin de 3 puntos que equivale a Satisfactorio, no obstante Ruby on Rails presenta una mejor manipulacin y facilidad en la creacin de los modelos siendo estos desarrollados en un rango de 1 a 5 minutos por lo que RoR obtiene una calificacin de 4 puntos que equivale a Muy Satisfactorio.

Mapeador Objeto Relacional: La utilizacin de ORM que presenta cada framework permite interactuar con la base de datos desde el propio lenguaje mediante la creacin de objetos. El tiempo en realizar una insercin de una institucin desde el ORM en el modulo 1, permite establecer que framework presenta un mejor manejo del Mapeador objeto relacional, obteniendo como resultado que Django y Ruby on Rails realizan esta accin en menos de 5 minutos, ambos obtienen una calificacin de 4 puntos, que equivale a Muy Satisfactorio.

3.5.4.4.Calificacin

Calculo de los porcentajes.

( )

- 117-

( (

) )

100 98 96 94 92 90 MODELO Django Ruby on Rails 93,75% 100%

Ilustracin III. 52: Resultado Final del Indicador 1: Modelo

3.5.4.5.

Representacin de Resultados

Tabla III. 18: Modelo, con sus diferentes ndices

Django Indicadores Valor Representativo Valor Calificativo Excelente

Ruby on Rails Valor Cualitativo Valor Cuantitativo Excelente

Soporte a mltiples

- 118-

DBMS Manipulacin con la BD Desempeo con la BD Mapeador objeto relacional Excelente Suficiente Excelente Excelente Excelente Excelente

3.5.5. Indicador 2: Vista

El parmetro Vista posee 3 ndices cada uno de los cuales mediante la facilidad en su implementacin del Modulo 2 de pruebas, se obtuvieron resultados evaluando valores mnimos y mximos para cada ndice, as realizar una escala de valorizacin y determinar los valores no satisfactorio, poco satisfactorio, satisfactorio y muy satisfactorio respectivamente.

ndice 2.1: Uso de plantillas: En este ndice se valorizar la capacidad que tiene el framework en la utilizacin de un sistema de plantillas, de acuerdo a la facilidad en su implementacin, su calificacin ser de 1 a 20.

Valoracin Implementacin/20 1 a 10 11 a 13 15 a 17 18 a 20 Valoracin Cualitativa No Satisfactorio Poco Satisfactorio Satisfactorio Muy Satisfactorio

Tabla III. 19: Valorizacin del ndice 2.1: Uso de plantillas

ndice 2.2: Adaptacin con hojas de estilo: En este ndice se valorizar tomando en consideracin la facilidad en la adaptacin de las paginas creadas

- 119-

con hojas de estilo CSS, permitiendo personalizar varias pginas sin tener que repetir el cdigo.

Valoracin Implementacin/20 1 a 10 11 a 13 15 a 17 18 a 20 Valoracin Cualitativa No Satisfactorio Poco Satisfactorio Satisfactorio Muy Satisfactorio

Tabla III. 20: Valorizacin del ndice 2.2: Adaptacin con hojas de estilo.

ndice 2.3: Fusin de cdigo y diseo: En este ndice tendr valorizaciones basadas en la fusin del cdigo de la aplicacin con el diseo de la misma, estableciendo una mejora adaptacin en el mismo.

Valoracin Implementacin/20 1 a 10 11 a 13 15 a 17 18 a 20 Valoracin Cualitativa No Satisfactorio Poco Satisfactorio Satisfactorio Muy Satisfactorio

Tabla III. 21: Valorizacin del ndice 2.3: Fusin de cdigo y diseo

3.5.5.1.

Valoraciones

Tabla III. 22: Resultados del Indicador 2: Vista

Indicadores

Django

Ruby on Rails

- 120-

Valor Valor Cualitativo Obtenido /20 Uso de plantillas Adaptacin con hojas de estilo Fusin de cdigo y diseo 3.5.5.2. Satisfactorio Muy Satisfactorio 17 18

Valor Cualitativo Satisfactorio Satisfactorio

Valor Obtenido /20 16 17

Satisfactorio

19

Satisfactorio

17

Interpretacin

Uso de plantillas: Django framework presenta un completo sistema de plantillas, el cual su implementacin es de manera muy sencilla, nos permite realizar paginas de manera rpida y gil, pero al ser un sistema de plantillas ideal para diseadores mas no para programadores por lo que la creacin de la plantilla posee un pequeo grado de complejidad es por eso que obtiene una calificacin de 17 que equivale a Satisfactorio. Por otra parte.

Adaptacin con hojas de estilo: La utilizacin de estilos en las paginas HTML es muy importante para un diseo personalizado, Django permite la administracin de los recursos a travs del sistema de plantillas, permite crear estilos para la adaptacin de una sola pgina base de fcil implementacin por lo que obtiene una calificacin de 18 que equivale a Muy Satisfactorio. Por otro lado.

Fusin de cdigo y diseo: Como se dijo anteriormente el sistema de plantillas que utiliza Django es ideal para los diseadores mas no para los programadores por lo que de manera intencional permite la inclusin directa de cdigo en el diseo HTML, permitiendo una correcta fusin por lo que se valora a Django con una calificacin de 19 que equivale a Muy Satisfactorio. Mientras que

3.5.5.3.

Calificacin

- 121-

Calculo de los porcentajes. ( ( ) )

( (

) )

90 88 86 84 82 80 78

90%

83,33%

VISTA Django Ruby on Rails

Ilustracin III. 53: Resultado Final del Indicador 2: Vista

- 122-

3.5.5.4.

Representacin de Resultados

Tabla III. 23: Representacin del Indicador 2: Vista, con sus diferentes ndices

Django Indicadores Valor Representativo Valor Calificativo Suficiente Excelente

Ruby on Rails Valor Cualitativo Valor Cuantitativo Suficiente Suficiente

Uso de plantillas Adaptacin con hojas de estilo Fusin de cdigo y diseo

Excelente

Suficiente

3.5.6. Indicador 3: Controlador

EL parmetro controlador

posee 3 ndices cada uno de los cuales fue evaluado

mediante el desarrollo de un formulario para la insercin de un docente, tomando en consideracin el tiempo en su implementacin, tomando sus valores mnimos, mximos para cada ndice, as realizar una escala de valorizacin y determinar los valores no satisfactorio, poco satisfactorio, satisfactorio y muy satisfactorio respectivamente.

ndice 3.1: Generacin automtica de formularios: En este ndice se valorizar tomando en consideracin la facilidad que presente el framework para generar automticamente un formulario.

Valoracin Implementacin/20 1 a 10 11 a 13 Valoracin Cualitativa No Satisfactorio Poco Satisfactorio

- 123-

15 a 17 18 a 20

Satisfactorio Muy Satisfactorio

Tabla III. 24: Valorizacin del ndice 3.1: Generacin automtica de formularios

ndice 3.2: Validacin de formularios: En este ndice se valorizar la validacin que presenta el formulario en caso de que los datos ingresados sean errneos. Valoracin Implementacin/20 1 a 10 11 a 13 15 a 17 18 a 20 Valoracin Cualitativa No Satisfactorio Poco Satisfactorio Satisfactorio Muy Satisfactorio

Tabla III. 25: Valorizacin del ndice 3.2: Validacin de formularios

ndice 3.3: Manejo visual de componentes de formulario: En este ndice se valorizar el entorno visual que presenta el framework para el desarrollo de los formularios mediante el uso de sus componentes.

Valoracin Implementacin/20 1 a 10 11 a 13 15 a 17 18 a 20 Valoracin Cualitativa No Satisfactorio Poco Satisfactorio Satisfactorio Muy Satisfactorio

Tabla III. 26: Valorizacin del ndice 2.3: Manejo visual de componentes de formulario

- 124-

3.5.6.1.

Valoraciones

Tabla III. 27: Resultados del Indicador 3: Controlador.

Django Indicadores Valor Cualitativo Generacin automtica de Muy Satisfactorio formularios Validacin de Muy Satisfactorio formularios Manejo visual de No Satisfactorio componentes de formulario 3.5.6.2. Interpretacin

Ruby on Rails Valor Obtenido/20 18 19

Valor Valor Cualitativo Obtenido/20 19 20 Muy Satisfactorio Muy Satisfactorio

10

No Satisfactorio

10

Generacin automtica de formularios: Django permite una generacin automtica de formulario a partir de los modelos lo cual brinda un ahorro en el tiempo y facilita la reutilizacin, los formularios se generan creando modelos de tipo formulario y se generan automticamente tomando los atributos de los modelos, es por esto que obtuvo una calificacin de 19 que equivale a Muy Sobresaliente. Por otra parte

Validacin de formularios: La validacin de formularios es muy importante a nivel de aplicacin, Django permite una validacin automtica de la informacin que se ingresa en el formulario debido a que el formulario se maneja como un objeto creado a partir de una clase de tipo FORM, este objeto presenta propiedades y mtodos que permiten validar de una manera sencilla y automtica el formulario de acuerdo a tipo de dato que se requiere que ingrese por lo que Django obtiene una calificacin de 20 que equivale a Muy Satisfactorio. Mientras que

Manejo visual de componentes de formulario: Los componentes de los formularios son manejados como componentes de un objeto, dependiendo de la implementacin del

- 125-

formulario, pero al no contar Django con un entorno que permita gestionar de manera visual los componentes de un formulario obtiene una calificacin de 10 que equivale a No Satisfactorio. Y

3.5.6.3.

Calificacin

Calculo de los porcentajes. ( ( ) )

( (

) )

- 126-

82 81 80 79 78 77 76 CONTROLADOR Django Ruby on Rails 78,33% 81,66%

Ilustracin III. 54: Resultado Final del Indicador 3: Controlador

3.5.6.4.

Representacin de Resultados

Django Indicadores Generacin automtica de formularios Validacin de formularios Manejo visual de componentes de formulario Valor Representativo Valor Calificativo Excelente Excelente

Ruby on Rails Valor Cualitativo Valor Cuantitativo Excelente Excelente

Insuficiente

Insuficiente

Tabla III. 28: Representacin del Indicador 3: Controlador, con sus diferentes ndices

3.5.7. Indicador 4: Reutilizacin

El parmetro Reutilizacin posee 4 ndices, para los cuales se realizo una valoracin de acuerdo al desarrollo del modulo 1, con el objetivo de probar el principio DRY. Sus resultados obtenidos sern evaluados tomando sus valores mnimos, mximos para cada

- 127-

ndice, as realizar una escala de valorizacin y determinar los valores no satisfactorio, poco satisfactorio, satisfactorio y muy satisfactorio respectivamente.

ndice 4.1: Herencia de clase base: En este ndice se valorizar la herencia desde la clase base de la cual se heredan los atributos y caractersticas para los modelos.

Valoracin Implementacin/20 1 a 10 11 a 13 15 a 17 18 a 20 Valoracin Cualitativa No Satisfactorio Poco Satisfactorio Satisfactorio Muy Satisfactorio

Tabla III. 29: Valorizacin del ndice 4.1: Herencia de clase base

ndice 4.2: Herencia de plantillas: En este ndice se valorizar la facilidad en la implementacin de la herencia de plantillas desde una plantilla base.

Valoracin Implementacin/20 1 a 10 11 a 13 15 a 17 18 a 20 Valoracin Cualitativa No Satisfactorio Poco Satisfactorio Satisfactorio Muy Satisfactorio

Tabla III. 30: Valorizacin del ndice 4.2: Herencia de plantillas

ndice 4.3: Personalizacin de cdigo heredado: En este ndice se valorizar la personalizacin del cdigo heredado desde las plantilla base

- 128-

Valoracin Implementacin/20 1 a 10 11 a 13 15 a 17 18 a 20 Valoracin Cualitativa No Satisfactorio Poco Satisfactorio Satisfactorio Muy Satisfactorio

Tabla III. 31: Valorizacin del ndice 4.3: Personalizacin de cdigo heredado.

ndice 4.4: Tamao de la aplicacin: En este ndice se valorizar el tamao en Megabytes que posee la aplicacin web desarrollada en el framework

Valoracin Tamao en MB >3 2a3 1a2 0a1 Implementacin/20 1 a 10 11 a 13 15 a 17 18 a 20 Valoracin Cualitativa No Satisfactorio Poco Satisfactorio Satisfactorio Muy Satisfactorio

Tabla III. 32: Valorizacin del ndice 4.4: Adaptacin a los cambios

3.5.7.1.

Valoraciones

Tabla III. 33: Resultados del Indicador 4: Reutilizacin

Django Indicadores Valor Cualitativo

Ruby on Rails

Valor Valor Valor Cualitativo Obtenido/20 Obtenido/20

- 129-

Herencia de clase base

Muy Satisfactorio

18 20 17 20

Muy Satisfactorio Muy Satisfactorio Satisfactorio No Satisfactorio

19 19 17 10

Herencia de Muy Satisfactorio plantillas Personalizacin de cdigo Satisfactorio heredado Tamao de la Muy Satisfactorio aplicacin 3.5.7.2. Interpretacin

Herencia de clase base: El framework Django en la implementacin de los modelos permite fcilmente heredar las propiedades y atributos desde la clase base MODELS, posibilitando le reutilizacin de objetos, atributos y propiedades que ya se encuentran implementadas por lo que obtiene una calificacin de 18 que equivale a Muy Satisfactorio. En cambio

Herencia de plantillas: El sistema de plantillas de Django permite crear una plantilla base de la cual permite heredar todas los propiedades de la misma hacia sus plantillas hijas, permitiendo incluir archivos HTML y bloques de contenedores, lo cual nos beneficia al momento de crear rpidamente distintas paginas, razones que le permiten obtener una calificacin de 20 puntos que equivale a Muy Satisfactorio. Por otra parte

Personalizacin de cdigo heredado: La versatilidad y el dinamismo que presentan tanto Django as como Ruby on Rails al momento de permitir la personalizacin del cdigo que se hereda da muchas ventajas para que una aplicacin web se adapte con facilidad a los cambios por lo que ambas tecnologas obtienen una calificacin de 17 puntos que equivale a Satisfactorio.

Tamao de la Aplicacin: Este indicador es muy importante ya que permite obtener una clara conjetura de la reutilizacin a la baja utilizacin de Bytes para realizar las mismas funciones con un tamao de aplicacin que se encuentra en el rango de 0 a 1 MB, Django obtiene una calificacin de 20 puntos. Mientras tanto que Ruby on Rails

- 130-

presenta caractersticas en la creacin de la aplicacin que generan archivos los cuales incrementan el tamao de la aplicacin hacindola menos gil, teniendo esta un tamao de aplicacin mayor a 3 MB, por lo que obtiene una calificacin de 10 puntos que equivale a No Satisfactorio.

3.5.7.3.

Calificacin

Calculo de los porcentajes. ( ( ) )

( (

) )

- 131-

95
90 93,75%

85
80 81,25%

75
REUTILIZACION Django Ruby on Rails

Ilustracin III. 55: Resultado Final del Indicador 4: Reutilizacin

3.5.7.4.

Representacin de resultados

Tabla III. 34: Representacin del Indicador 4: Reutilizacin, con sus diferentes ndices

Django Indicadores Valor Representativo Valor Calificativo Excelente Excelente Suficiente Suficiente

Ruby on Rails Valor Cualitativo Valor Cuantitativo Excelente Excelente Suficiente Insuficiente

Herencia de clase base Herencia de plantillas Personalizaci n de cdigo heredado Adaptacin a los cambios

Indicador 5: Seguridad de la aplicacin

La seccin de Seguridad de la aplicacin posee 4 ndices cada uno de los cuales se realiz la valoracin tomando en consideracin la autenticacin de un usuario. Sus resultados obtenidos sern evaluados tomando sus valores mnimos, mximos para cada

- 132-

ndice, as realizar una escala de valorizacin y determinar los valores no satisfactorio, poco satisfactorio, satisfactorio y muy satisfactorio respectivamente.

ndice 5.1: Variable uso de sesiones: En este ndice tendr valorizaciones bajo la consideracin del uso de variables de sesin.

Tabla III. 35: Valorizacin del ndice 5.1: Variable uso de sesin

Valoracin Implementacin/20 1a5 6 a 10 11 a 15 16 a 20 Valoracin Cualitativa No Satisfactorio Poco Satisfactorio Satisfactorio Muy Satisfactorio

ndice 5.2: Manejo de cookies: En este ndice se valorizar la utilizacin de cookies para los controles de acceso a las paginas.

Tabla III. 36: Valorizacin del ndice 5.2: Manejo de cookies

Valoracin Implementacin/20 1a5 6 a 10 11 a 15 16 a 20 Valoracin Cualitativa No Satisfactorio Poco Satisfactorio Satisfactorio Muy Satisfactorio

ndice 5.3: Encriptacin de datos: En este ndice se valorizar la seguridad en el mtodo de encriptacin utilizado por el framework para proteger las contraseas.

- 133-

Tabla III. 37: Valorizacin del ndice 5.3: Encriptacin de datos

Valoracin Implementacin/20 1a5 6 a 10 11 a 15 16 a 20 Valoracin Cualitativa No Satisfactorio Poco Satisfactorio Satisfactorio Muy Satisfactorio

ndice 5.4: Validacin de datos: En este ndice se valorizar la validacin del usuario que se autentica en caso que sus datos sean incorrectos).

Valoracin Implementacin/20 1a5 6 a 10 11 a 15 16 a 20 Valoracin Cualitativa No Satisfactorio Poco Satisfactorio Satisfactorio Muy Satisfactorio

Tabla III. 38: Valorizacin del ndice 5.4: Validacin de datos

3.5.7.5.

Valoraciones

Tabla III. 39: Resultados del Indicador 5: Seguridad de la aplicacin

Django Indicadores Valor Cualitativo

Ruby on Rails

Valor Valor Valor Cualitativo Obtenido/20 Obtenido/20

- 134-

Variable uso de Muy Satisfactorio sesiones Manejo de cookies Muy Satisfactorio

19 18 19 20

Muy Satisfactorio Muy Satisfactorio Muy Satisfactorio Muy Satisfactorio

19 19 19 19

Encriptacin de Muy Satisfactorio datos Validacin de datos 3.5.7.6. Muy Satisfactorio

Interpretacin

Variable uso de sesion: Django permite utilizar un sistema de autenticacin con propiedades generadas por el mismo framework, lo cual al momento de la creacion de usuarios y su respectiva autenticacion permite la utilizacion de variables de uso de secin con la identificacion del usuario autenticado, por lo que obtiene una calificacion de 19 puntos que equivale a Muy Satisfactorio. Sin embargo ..

Manejo de cookies: La manipulacin de las cookies ya son fijadas por el propio framework, lo cual permite a un navegador u otro saber si es el mismo usuario que esta realizando la peticion, en Django es increblemente sencillo ya que cada objeto de peticin tiene un objeto COOKIES que acta como un diccionario lo cual lo podemos usar para leer cualquier cookie desde el navegador por lo que obtiene una calificacion de 18 que equivale a Muy Satisfactorio. Por otro lado..

Encriptacion de datos: Debido a la importancia en la encriptacion de datos al momento de manejar informacion critica como las contraseas, nos damos cuenta en la eficiencia de ambos frameworks, puesto a que ambos utilizan el metodo de encriptacion MD5, tanto Django asi como Ruby on Rails obtienen una valoracion de 19, que equivale a Excelente.

Validacin de datos: Django permite validar sus datos automaticamente mediante la utilizacion de vistas propias del framework sin tener que crearlas de manera manual indicando mediante una plantilla el error en la validacion de los usuarios razones por la

- 135-

cual obtiene una calificacion de 20 puntos que equivale a Muy Satisfactorio. No obstante

3.5.7.7.

Calificacin

Calculo de los porcentajes. ( ( ) )

19+19+19+19=76

( (

) )

- 136-

100 80 60 40 20 0 SEGURIDAD DE APLICACIN Django Ruby on Rails 95% 95 %

Ilustracin III. 56: Resultado Final del Indicador 3: Seguridad de aplicacin

3.5.7.8.

Representacin de Resultados

Tabla III. 40: Representacin del Indicador 5: Seguridad de aplicacin, con sus diferentes ndices

Django Indicadores Valor Representativo Valor Calificativo Excelente Excelente Excelente Excelente

Ruby on Rails Valor Cualitativo Valor Cuantitativo Excelente Excelente Excelente Excelente

Variable uso de sesiones Manejo de cookies Encriptacin de datos Validacin de datos

Indicador 6: Madurez de producto

La Madurez del producto posee 4 ndices cada uno de los cuales se considera la madurez del paquete de desarrollo en si como framework. Sus resultados obtenidos

- 137-

sern evaluados tomando sus valores mnimos, mximos para cada ndice, as realizar una escala de valorizacin y determinar los valores no satisfactorio, poco satisfactorio, satisfactorio y muy satisfactorio respectivamente.

ndice 6.1: Especificaciones: En este ndice tendr valorizaciones consideran la compatibilidad con las dems herramientas.

Tabla III. 41: Valorizacin del ndice 6.1: Especificaciones

Valoracin Implementacin/20 1a5 6 a 10 11 a 15 16 a 20 Valoracin Cualitativa No Satisfactorio Poco Satisfactorio Satisfactorio Muy Satisfactorio

ndice 6.2: Licenciamiento: En este ndice se valorizar la clase de licenciamiento que posee el framework.

Tabla III. 42: Valorizacin del ndice 6.2: Licenciamiento

Valoracin Implementacin/20 1a5 6 a 10 11 a 15 16 a 20 Valoracin Cualitativa No Satisfactorio Poco Satisfactorio Satisfactorio Muy Satisfactorio

ndice 6.3: Costo: En este ndice se valorizar el costo que incurre el desarrollo de una aplicacin web que ser puesta en produccin.

- 138-

Tabla III. 43: Valorizacin del ndice 6.3: Costo

Valoracin Implementacin/20 1a5 6 a 10 11 a 15 16 a 20 Valoracin Cualitativa No Satisfactorio Poco Satisfactorio Satisfactorio Muy Satisfactorio

3.5.7.9.

Valoraciones

Tabla III. 44: Resultados del Indicador 6: Madurez del producto

Django Indicadores Valor Cualitativo Especificaciones Muy Satisfactorio Licenciamiento Costo Muy Satisfactorio Muy Satisfactorio

Ruby on Rails

Valor Valor Valor Cualitativo Obtenido/20 Obtenido/20 17 19 20 Muy Satisfactorio Muy Satisfactorio Muy Satisfactorio 17 19 19

3.5.7.10. Interpretacin

Especificaciones: Tanto el framework Django asi como Ruby on Rails son tecnologias multiplataformas con modulos abiertos lo que me permite obtener de acuerdo a las especificaciones de la tecnologia, una facil compatibilidad con demas herramientas por lo que ambas tecnologias obtienen una calificacion de 17 puntos que equivale a Muy Satisfactorio.

- 139-

Licenciamiento: La tecnologia Django asi como Ruby on Rails son herramientas de desarrollo software libre con licencias BSD y MIT respectivamente lo que nos representa un ahorro economico. Tanto la licencia BSD de Django, como la MIT de Ruby on Rails son de sismilares caracteristicas por lo que ambos obtienen una calificacion de 19 puntos.

Costo: Este indicador es muy importante ya que nos representa la rentabilidad en el desarrollo de un producto de software, Django y Ruby on Rails son herramientas de software libre con similar licenciamiento en lo que se diferencia es en su tiempo de implementacion por lo que Django presenta una ventaja sobre RoR, por lo que obtiene una calificacion de 20 puntos contra 19 puntos de RoR, que equivalen a Muy Satisfactorio.

3.5.7.11. Calificacin

Calculo de los porcentajes. ( ( ) )

( (

) )

- 140-

93,5 93 92,5 92 91,5 91 90,5 SEGURIDAD DE APLICACIN Django Ruby on Rails 91,66% 93.33%

Ilustracin III. 57: Resultado Final del Indicador 6: Madurez del producto

3.5.7.12. Representacin de Resultados

Tabla III. 45:

Representacin del Indicador 6: Madurez del producto, con sus diferentes ndices

Django Indicadores Valor Valor Representativo Calificativo Excelente Excelente Excelente

Ruby on Rails Valor Cualitativo Valor Cuantitativo Excelente Excelente Excelente

Especificaciones Licenciamiento Costo

Indicador 7: Instalacin

La instalacin posee 3 ndices cada uno de los cuales se considera la complejidad en l proceso de instalacin y el entorno de desarrollo del framework. Sus resultados obtenidos sern evaluados tomando sus valores mnimos, mximos para cada ndice, as

- 141-

realizar una escala de valorizacin y determinar los valores no satisfactorio, poco satisfactorio, satisfactorio y muy satisfactorio respectivamente.

ndice 7.1: Contenedor de aplicaciones: En este ndice se refiere a los servidores web en los que se puede levantar nuestra aplicacin.

Tabla III. 46: Valorizacin del ndice 7.1: Especificaciones

Valoracin Implementacin/20 1a5 6 a 10 11 a 15 16 a 20 Valoracin Cualitativa No Satisfactorio Poco Satisfactorio Satisfactorio Muy Satisfactorio

ndice 7.2: Entorno de desarrollo: En este ndice se valorizar las herramientas IDE, como entornos de desarrollos amigables.

Tabla III. 47: Valorizacin del ndice 7.2: Entorno de desarrollo

Valoracin Implementacin/20 1a5 6 a 10 11 a 15 16 a 20 Valoracin Cualitativa No Satisfactorio Poco Satisfactorio Satisfactorio Muy Satisfactorio

ndice 7.3: Tiempo de instalacin: En este ndice se valorizar el tiempo empleado en el proceso de instalacin del framework, definiendo su complejidad en mencionado proceso.

- 142-

Tabla III. 48: Valorizacin del ndice 7.3: Tiempo de instalacin

Valoracin Tiempo en minutos >30 21 a 30 11 a 20 1 a 10 1a5 6 a 10 11 a 15 16 a 20 Implementacin/20 Valoracin Cualitativa No Satisfactorio Poco Satisfactorio Satisfactorio Muy Satisfactorio

3.5.7.13. Valoraciones

Tabla III. 49: Resultados del Indicador 6: Instalacin

Django Indicadores Valor Cualitativo Contenedor de aplicaciones Entorno de desarrollo Tiempo de instalacin Muy Satisfactorio Muy Satisfactorio Muy Satisfactorio

Ruby on Rails

Valor Valor Valor Cualitativo Obtenido/20 Obtenido/20 18 19 20 Muy Satisfactorio Satisfactorio Poco Satisfactorio 18 15 10

3.5.7.14. Interpretacin

Contenedor de Aplicaciones: La eleccin de los servidores web o los contenedores en donde se alojaran las aplicaciones web es muy importante para poner una aplicacin en produccion, ambas tecnologias pueden ser implementadas bajo un servidor apache y sus variantes de acuerdo a que tecnologia sea (apache mod_python, apache mod_rails para cada tecnologia respectivamente, FastCGI, Lighttpd). Razones por las cuales amabas tecnologias obtienen una calificacion de 18 puntos que equivale a Muy Satisfactorio.

- 143-

Entorno de Desarrollo: Existen multimples IDEs como entornos de desarrollo los cuales son muy bien utilizados por Django, debido a esa compatibilidad de entornos Django obtiene una calificacion de 19 puntos que equivale a Muy Satisfactorio. Por otra parte

Tiempo de Instalacion: Este indicador es fundamental debido a la facilidad que presenta cada tecnologia respecto a su instalacion, debido a que el tiempo y facilidad que presta Django siendo esta inferior a los 10 minutos obtiene una calificacion de 20 puntos que equivale a Muy Satisfactorio. Por otro lado Ruby on Rails presenta ciertas complejidades que incrementan el uso del tiempo en su instalacion siendo esta realizada en el rango de 21 a 30 minutos teniendo una calificacion de 10 puntos que equivale a Poco Satisfactorio.

3.5.7.15. Calificacin

Calculo de los porcentajes. ( ( ) )

( (

) )

- 144-

100 80 60 40 20 0 SEGURIDAD DE APLICACIN Django Ruby on Rails 95%

71,66 %

Ilustracin III. 58: Resultado Final del Indicador 7: Instalacin

3.5.7.16. Representacin de Resultados

Tabla III. 50: Representacin del Indicador 7: Instalacin, con sus diferentes ndices

Django Indicadores Valor Valor Representativo Calificativo Excelente Excelente Excelente

Ruby on Rails Valor Cualitativo Valor Cuantitativo Excelente Suficiente Parcial

Contenedor de aplicaciones Entorno de desarrollo Tiempo de instalacin 3.6.

Puntajes Alcanzados

CLASIFICACION Patrn de Diseo Modelo Vista

PARAMETROS Modelo

INDICADORES Soporte para mltiples bases

Django 4

RoR 4

- 145-

Controlador

de datos Manipulacin con la base de datos Desempeo con la base de datos Mapeador de Objeto Relacional ORM Uso de plantillas Adaptacin con hojas de estilo Fusin de cdigo y diseo Generacin automtica de formularios Validacin de formularios Manejo visual de componentes de formulario Herencia de clase base Herencia de plantillas Personalizacin de cdigo heredado Tamao de la aplicacin Variable uso de sesiones Manejo de cookies Encriptacin de datos Validacin de datos Especificaciones Licenciamiento Costo 4 3 4 4

4 17 18 19

4 16 17 17

Vista Principio DRY Don`t repeat yourself Reutilizacin Seguridad Seguridad de Aplicacin Producto Madurez de producto

19 20

18 19

Controlador

10 18 20

10 19 19

17 20 19 18 19 20 17 19 20

17 10 19 19 19 19 17 19 19

- 146-

Instalacin Totales

Contenedor de aplicaciones Entorno de desarrollo Tiempo de instalacin

18 19 20 382

18 15 10 352

Tabla III. 51: Cuadro Resultados de Indicador e ndice

3.7.

Diagrama General de Resultados


100 90 80 70 60 50 40 30 20 10 0

Django Ruby on Rails

Ilustracin III. 59: Grafica general de resultados

Seguridad de

Reutilizacin

Controlador

Madurez de

Django Ruby on Rails

93,75 100

90 83,33

81,66 78,33

93,75 81,25

95 95

93,33 91,66

Tabla III. 52: Resultados generales

Instalacin 95 71,66

aplicacin

producto

Modelo

Vista

- 147-

3.8.

Interpretacin

Con la tabulacin de los resultados obtenidos en la evaluacin de los frameworks, se da a conocer de una manera global el comportamiento de cada tecnologa respecto a la productividad en el desarrollo de aplicaciones.

El Modelo fue el encargado de probar la versatilidad con que cada tecnologa se comporta al momento de actuar con los datos y los motores que gestionan estos datos, en donde se destaca Ruby on Rails mostrando un mejor comportamiento y gil creacin de los modelos.

La Vista fue el parmetro que pudo darnos una mejor perspectiva de la rpida creacin de las interfaces de usuario y su comportamiento con las pginas creadas de manera esttica, mostrando Django una ventaja ante Ruby on Rails manejando tecnologas muy similares.

El controlador nos permite enfocarnos en la fcil y rpida creacin de formularios de una aplicacin, las ventajas que nos brinda determinado framework en el control de los datos que se ingresan en los formularios en donde Django presenta virtudes que hacen que sobresalga ante Ruby on Rails.

La reutilizacin es un parmetro muy importante el mismo que es muy determinante en un desarrollo gil de aplicaciones, mediante la valoracin de los indicadores en la reutilizacin pudimos observar que Django es mejor en cuanto la reutilizacin tanto en la utilizacin de funciones como de cdigo adaptndose de una mejor manera al principio DRY.

La seguridad a nivel de aplicacin est definida por la depuracin de los datos que son ingresados al momento de realizar una autenticacin al sistema, y ya que ambos frameworks presentan caractersticas similares en el manejo de los indicadores de

- 148-

seguridad, tanto como Django as como Ruby on Rails permiten aprovechar las ventajas de una correcto sistema de autenticacin y seguridad en el desarrollo de una aplicacin.

La Madurez del producto nos permite identificar factores muy importantes que son fundamentales al momento de un desarrollo gil, los mismos que al final del desarrollo se traducen en una rentabilidad que genere el desarrollo con una u otra tecnologa presentando Django caractersticas que permiten sobresalir frente a Ruby on Rails.

Un proceso de instalacin define la versatilidad de una herramienta y describe un mejor concepto en la utilizacin e implementacin de la misma. Django presenta una mejor adaptacin con entornos de desarrollo y mas optimo proceso de instalacin destacndose sobre Ruby on Rails.

3.9.

Anlisis de Resultados

Los resultados que presenta cada framework al establecer mismos criterios y escenarios de desarrollo son claros ya que ambas tecnologas presentan caractersticas similares se puede establecer el framework que se adapta de mejor manera a un desarrollo ms gil de aplicaciones web.

Luego de la interpretacin de los resultados realizado anteriormente se destaca el Frameworks Django para realizar un desarrollo ms productivo, ideal para desarrollar el sistema para el control de docentes contratados de la Direccin de Estudios de Chimborazo con los objetivos planteados al principio de la tesis, ya que Django presenta grandes caractersticas en la conexin de base de datos con soporte para varias plataformas. Formularios y validacin de datos, manejo de sesiones y un ms ptimo proceso de instalacin y adaptacin con los entornos de desarrollo.

En conclusin por tener caractersticas que permiten distinguir una ventaja sobre Ruby on Rails, concluimos que el Framework Django es el ms adecuado para un desarrollo ms gil de la aplicacin web.

- 149-

3.10. Comprobacin de Hiptesis

La hiptesis planteada es:

H1: La aplicacin de la tecnologa Python con Django mejora la productividad en el desarrollo gil de aplicaciones web que al usar la tecnologa Ruby on Rails.

3.10.4. Operacionalizacin de variables

Operacionalizacin Conceptual VARIABLE TIPO CONCEPTO Segn Javier J. Gutirrez [14], El concepto Frameworks Dependiente Compleja Cualitativa framework se emplea muchos mbitos del desarrollo de sistemas software, no solo en el mbito de aplicaciones Web. Podemos encontrar frameworks para el desarrollo de aplicaciones mdicas, de visin por

computador, para el desarrollo de juegos, y para cualquier mbito que pueda

ocurrrsenos.

Productividad

Dependiente Compleja Cualitativa

Segn la INES [23], En el terreno de las metodologas de desarrollo de software, se aprecia una necesaria mejora en la puesta en prctica de dichas metodologas de desarrollo, as como la flexibilizacin de stas para potenciar la productividad de las mismas sin renunciar a la calidad de los mismos. La mejora de la efectividad y la

- 150-

productividad en el desarrollo de software est ligada a la utilizacin de buenas prcticas de Ingeniera de Software..
Tabla III. 53: Operacionalizacin conceptual

Operacionalizacin Metodolgica

VARIABLE

CATEGORIA

INDICADORES

TCNICA

FUENTE DE VERIFICACION

FRAMEWORKS

DEPENDIENTE

DJANGO FRAMEWORKS RUBY ON RAILS APLICACIN APLICACIN Web, Aptana, Documentacin, Internet, Modulo 1 de pruebas Web, Aptana Studio, Modulo 1 de pruebas Web, Aptana Studio, Modulo 1 de pruebas Web, Apatana Studio, ORM, Modulo 1 de pruebas Web, Aptana Studio, Modulo 1 Observacin Directa Web, Aptana Studio

VARIABLE

Soporte para mltiples bases de datos VARIABLE DEPENDIENTE Manipulacin PRODUCTIVIDAD con la base de MODELO datos Desempeo con la base de datos

Observacin Experimenta cin Observacin Experimenta cin Observacin Experimenta cin Observacin Experimenta cin Observacin Experimenta

Mapeador de objeto relacional

Uso de plantillas

- 151-

cin Observacin Experimenta cin

de pruebas Web, Aptana, Documentacin, Internet, Modulo 1 de pruebas Web, Aptana, Documentacin, Internet, Modulo 1 de pruebas Web, Aptana, Documentacin, Internet, Modulo 1 de pruebas

Adaptacin con hojas de estilo VISTA

Observacin Fusin de cdigo Experimenta y diseo cin Observacin Experimenta cin

Generacin automtica de formularios

Validacin de
CONTROLADOR

formularios

Observacin Experimenta cin

Web, Aptana, Documentacin, Internet, Modulo 1 de pruebas

Observacin Web, Aptana, Manejo visual de Experimenta Documentacin, cin componentes de Internet, Modulo 1 formulario de pruebas

Observacin Web, Aptana, Herencia de clase Experimenta Documentacin, cin base Internet, Modulo 1 y 2 de pruebas
REUTILIZACION

Herencia de plantillas

Observacin Experimenta cin

Web, Aptana, Documentacin, Internet, Modulo 1 y 2 de pruebas

Personalizacin

Observacin Experimenta

Web, Aptana, Documentacin,

- 152-

de cdigo heredado

cin

Internet, Modulo 1 y 2 de pruebas

Tamao de la aplicacin

Observacin Experimenta cin

Web, Aptana, Documentacin, Internet, Modulo 1 y 2 de pruebas

Variable uso de sesiones

Observacin Experimenta cin

Web, Aptana, Documentacin, Internet, Modulo 2 de pruebas

Manejo de SEGURDAD DE APLICACION cookies

Observacin Experimenta cin

Web, Aptana, Documentacin, Internet, Modulo 2 de pruebas

Encriptacin de datos

Observacin Experimenta cin

Web, Aptana, Documentacin, Internet, Modulo 2 de pruebas

Validacin de datos

Observacin Experimenta cin

Web, Aptana, Documentacin, Internet, Modulo 2 de pruebas

Observacin Experimenta Especificaciones cin

Web, Aptana, Documentacin, Internet, Modulo 3 de pruebas

MADUREZ DE PRODUCTO Licenciamiento

Observacin Experimenta cin

Web, Aptana, Documentacin, Internet, Modulo 3 de pruebas

- 153-

Costo

Observacin Experimenta cin

Web, Aptana, Documentacin, Internet, Modulo 3 de pruebas

Contenedor de aplicaciones

Observacin Experimenta cin

Web, Aptana, Documentacin, Internet, Modulo 3 de pruebas

Entorno de desarrollo

Observacin Experimenta cin

Web, Aptana, Documentacin, Internet, Modulo 3 de pruebas

INSTALACION Tiempo de instalacin

Observacin Experimenta cin

Web, Aptana, Documentacin, Internet, Modulo 3 de pruebas

Tabla III. 54: Operacionalizacin Metodolgica

Tabla III. 55: Resultado Finales

CLASIFICACION

PARAMETROS

INDICADORES Soporte para mltiples bases de datos Manipulacin con la base de datos Desempeo con la base de datos Mapeador de Objeto Relacional ORM Uso de plantillas

Django 4

RoR 4

4 3

4 4

Patrn de Diseo Modelo Vista Controlador

Modelo

4 17

4 16

Vista

- 154-

Principio DRY Don`t repeat yourself Reutilizacin Seguridad Seguridad de Aplicacin Madurez de producto Producto Instalacin Totales

Controlador

Adaptacin con hojas de estilo Fusin de cdigo y diseo Generacin automtica de formularios Validacin de formularios Manejo visual de componentes de formulario Herencia de clase base Herencia de plantillas Personalizacin de cdigo heredado Tamao de la aplicacin Variable uso de sesiones Manejo de cookies Encriptacin de datos Validacin de datos Especificaciones Licenciamiento Costo Contenedor de aplicaciones Entorno de desarrollo Tiempo de instalacin

18 19

17 17

19 20

18 19

10 18 20

10 19 19

17 20 19 18 19 20 17 19 20 18 19 20 382

17 10 19 19 19 19 17 19 19 18 15 10 352

Tabla III. 56: Valores y Porcentajes Finales

- 155-

TOTAL Valor Django Ruby o Rails 382 352 Porcentaje 91,82 84,61

91,82 95 84,61

90
85 80 TOTAL Django

Ruby on Rails

Ilustracin III. 60: Resultado Final del Anlisis

Haciendo referencia a la tabla III.56 y por observacin directa se concluye que en la hiptesis planteada: Django posee el valor ms alto 382 puntos sobre 352, valor mximo posible, superando en un 7,21% a la herramienta Ruby o Rails, Django tiene el nivel de desempeo del 91,82% que equivale a Muy bueno. Por lo tanto se concluye que la hiptesis H1 es verdadera.

- 156-

4.

CAPTULO IV:

DESARROLLO DEL SISTEMA DE CONTROL DE DOCENTES CONTRATADOS DE LA DIRECCION DE ESTUDIOS CHIMBORAZO

En la actualidad en el desarrollo de aplicaciones web no se consideran aspectos como robustez, agilidad y confiabilidad que son indispensables en el momento en que las aplicaciones web se encuentran operativas, por lo que estas aplicaciones son susceptibles a fallos e incluso pueden impedir hacer modificaciones cuando se encuentren en operacin; acarreando como problema final que el sistema sea desechado por el usuario final, para evitar esto se procede a disear la aplicacin web cumpliendo con lo requerido por la DECH a la vez que cumpliendo con el alcance y objetivos planteados.

Para resolver el problema de la contratacin docente, se disea un sitio web, en conjunto con normas e instructivos para el uso de la misma, y as dar facilidad de informacin y registro de docentes y sus contratos.

La funcin principal de la aplicacin web ser registrar los contratos realizados por DECH a los docentes, y dems funciones que se derivan de esta, como registro de

- 157-

docentes, instituciones, etc. Todo esto con una interfaz amigable, con las debidas restricciones de seguridad y privacidad.

4.2.

Ingeniera de la Informacin

La metodologa usada para el desarrollo de la aplicacin web es SCRUM, una metodologa que permite la gestin y desarrollo de software basada en un proceso iterativo e incremental utilizado comnmente en entornos basados en el desarrollo gil de software.

El modelo de desarrollo Scrum es un modelo de referencia que define un conjunto de prcticas y roles, y que puede tomarse como punto de partida para definir el proceso de desarrollo que se ejecutar durante un proyecto.

Scrum, ms que una metodologa de desarrollo software, es una forma de auto-gestin del equipo de programadores. El grupo de programadores decide cmo hacer sus tareas y cunto van a tardar en ello (Sprint). Scrum ayuda a que trabajen todos juntos, en la misma direccin, con un objetivo claro

4.2.4. Definicin del mbito

La Direccin de Educacin de Chimborazo, a travs de la Divisin de Recursos Humanos, se encuentra en proceso de contratacin docente para cubrir los distintos requerimientos de las instituciones educativas de la provincia. El procesamiento de la informacin de los docentes e instituciones educativas se lo realiza de forma manual, mediante la recopilacin de documentos escritos y el manejo de tablas de Excel, enfrentando problemas de dificultad, lentitud, desorganizacin e inconsistencias de datos, los cuales imposibilitan la optimizacin del tiempo al momento de realizar la contratacin de los docentes.

Se necesita crear una solucin informtica que permitir automatizar el proceso de contratacin docente, el que conste con una interfaz amigable con el usuario,

- 158-

estableciendo polticas de acceso para el ingreso al sistema, adems tener un control de la informacin de los docentes los cuales estn y sern contratados por la Direccin. La aplicacin web facilitar la realizacin de reportes, los mismos que detallaran informacin de los docentes, las escuelas y la ubicacin geogrfica donde se encuentran laborando. Esto podr facilitar a los analistas de recursos humanos tener un control ms ptimo al momento de ejecutar nuevos contratos, renovaciones, terminaciones y renuncias de los maestros lo cual establecer una mejor administracin del personal docente, y la distribucin hacia las distintas instituciones educativas.

Los roles implicados para el desarrollo de este sistema siguiendo Scrum sern: Comprometidos:

Propietario del producto: Ing. Walter Meja, responsable de obtener el mayor valor de producto para los usuarios y resto de implicados. Equipo de desarrollo: Paul Cumba, Byron Barreno que es el grupo de trabajo que se encarga del desarrollo del producto. Scrum Manager: Ing. Danilo Pastor, gestor del equipo, es responsable del funcionamiento y de la productividad del equipo de desarrollo.

Implicados: Asesores de contratacin del rea de talento humano de la DECH.

Tipos de Usuarios y Permisos de Acceso: Los Usuarios del sitio web tendr la siguiente categora:

Usuario Administrador. Usuarios de Contratacin

El usuario Administrador, es el encargado de la administracin del sitio con todos los privilegios para realizar cualquier tipo de modificacin de los datos, adems es el nico con acceso al sitio de administracin del sistema.

- 159-

Los usuarios de Contratacin, son los encargados de realizar los contratos, con la posibilidad de ingresar, editar los datos de docentes e instituciones. Mdulos del sistema web: Tendr 4 mdulos principales Mdulo de acceso: permite a los usuarios iniciar sesin, de esta manera restringir el acceso segn los privilegios de usuario. Mdulo de ingresos: en este mdulo se realizan tareas de crear, editar, y eliminar docentes e instituciones as como la asignar los contratos de un docente a una o a varias instituciones. Mdulo de consultas: dispone de las consultas, que se van a realizar hacia la base de datos, en modo de reportes imprimibles. Mdulo de contenido esttico: posee informacin de la aplicacin, tal como el acerca de, etc.

4.2.5. Requerimientos

4.2.5.1.

Requerimientos Funcionales

Req 1. Req 2.

La aplicacin debe permitir su uso mediante la web. El sistema debe permitir la autenticacin de usuarios, diferenciando los permisos sobre los objetos de la aplicacin.

Req 3. Req 4. Req 5. Req 6. Req 7. Req 8. Req 9. Req 10. Req 11. Req 12.

El sistema debe permitir ingresar la informacin de docentes. El sistema debe permitir consultar la informacin de docentes. El sistema debe permitir actualizar la informacin de docentes. El sistema debe permitir ingresar la informacin de instituciones. El sistema debe permitir consultar la informacin de instituciones. El sistema debe permitir actualizar la informacin de instituciones. El sistema debe permitir ingresarla informacin de un nuevo contrato. El sistema debe permitir consultar la informacin de los contratos. El sistema debe permitir actualizar la informacin de los contratos. El sistema debe permitir consultar la informacin de los docentes con contratos vigentes.

- 160-

Req 13.

El sistema debe permitir consultar la informacin de los docentes con contratos finalizados.

Req 14.

El sistema debe permitir consultar la informacin de los docentes contratos por ao.

Req 15.

El sistema debe permitir consultar la informacin de instituciones por ubicacin geogrfica.

Req 16. Req 17.

El sistema debe permitir consultar la informacin de los contratos. El sistema debe permitir consultar la informacin de los contratos vigentes.

Req 18.

El sistema debe permitir consultar la informacin de los contratos inactivos.

Req 19.

El sistema debe permitir consultar la informacin de los contratos finalizados.

4.2.5.2.

Requerimientos No Funcionales

A continuacin se muestran los requerimientos no funcionales ms relevantes del software con sus respectivas caractersticas: Rendimiento

- Tiempos de respuesta al, abrir una pgina web.

Fiabilidad

- Capacidad para tolerar errores en un 90%. - Capacidad para tolerar sobrecargas en el volumen de informacin, de usuarios o de procesos en un 80%.

Disponibilidad

- El sistema estar funcionando 24 horas al da los 365 das del ao.

Seguridad

- El sistema tendr un formulario de autenticacin. - Uso de sesiones de usuario.

- 161-

Mantenibilidad

- Documentacin del diseo y de la codificacin de la solucin.

Escalabilidad

- Diseo de la arquitectura empleando MVC

Reusabilidad

- Uso de estndares en los formatos para los datos.

Interfaces

- Interfaces web para carga de archivos de entrada/salida. - Intuitivas y amigables las interfaces

4.2.6. Estudio de Factibilidad

4.2.6.1.

Factibilidad Tcnica

Recurso Humano

Existe el recurso humano capacitado para realizar la administracin del sistema, obteniendo una operacin garantizada y uso garantizado.

Recurso Hardware

Intel Core 2 Duo 2.1Ghz DVD-RW Teclado, Mouse, Monitor

Recurso Software

Sistema Operativo: Microsoft Windows Seven Ultimate / Linux Ubuntu

- 162-

Base de Datos:Postgresql Servidor Web: Apache Tecnologa de Desarrollo:IDE Aptana Studio 3, framework Django 1.3.1 para

leguaje de programacin Python 2.4.3.

4.2.6.2.

Factibilidad Operativa

Encargado del departamento de Sistemas en la DECH Usuarios del departamento de Recursos humanos.

4.2.6.3.

Factibilidad Legal

Existe la autorizacin de las autoridades respectivas por lo que no existe ningn tipo de impedimento legal para el desarrollo del sistema

4.2.7. Agenda del proyecto segn SCRUM

Ver Anexo 3

4.3.

Anlisis del Sistema

4.3.4. Definir Casos de Uso esenciales en formato extendido

CASO DE USO AUTENTIFICACIN

Tabla IV. 1 Caso de Uso Autenticacin

IDENTIFICAR CASO DE USO: NOMBRE DEL CASO DE USO ACTORES PROPSITO

CU_Autentificacin Autentificacin de Usuarios Personal de RRHH (Usuarios) Realizar el proceso de identificacin de los

- 163-

empleados de RRHH que utilizan el sistema El usuario requiere autenticarse en el sistema; ingresa su nombre de usuario y VISIN GENERAL contrasea y de acuerdo a la funcin que desempee el usuario se abrir la pantalla correspondiente. TIPO REFERENCIAS Primario, real y expandido Requerimientos

CURSO TPICO DE EVENTOS ACCIN DE LOS ACTORES 1. Este caso de uso inicia cuando el usuario desea autenticarse para realizar la funcin que le compete 3. El usuario ingresa su Usuario y Contrasea RESPUESTA DEL SISTEMA 2. Muestra pantalla para que el usuario ingrese los datos respectivos 4. Valida los datos ingresados 5. Presenta una ventana con un men en el cual el usuario podr realizar las funciones asignadas. CURSOS ALTERNATIVOS 2.1.- El sistema no presenta pantalla para ingreso de datos Mensaje de error 4.1.- Usuario o contrasea incorrectos 4.2.- No existe el usuario con esa sesin Mensaje de advertencia 4.3.- Ingrese su sesin 4.4.- Ingresar Clave 4.5.-Clave Incorrecta

CASO DE USO CREAR USUARIOS

Tabla IV. 2 Caso de Uso Crear Usuario

- 164-

IDENTIFICAR CASO DE USO: NOMBRE DEL CASO DE USO: ACTORES: PROPSITO:

CU_Crear_Usuario Crear_Usuario Administrador Cambiar la informacin de algn usuario especifico

VISIN GENERAL:

Se realiza el registro de las personas que podrn tener acceso para ingresar al sistema

TIPO: REFERENCIAS:

Primario, real y expandido Requerimientos CURSO TPICO DE EVENTOS ACCIN DEL ACTOR RESPUESTAS DEL SISTEMA 2.-Muestra pantalla de administracin del sitio.

1.- Se inicia cuando usuario se autentifica en modo Administracin Dango 3.-Ingresa al registro de usuarios 4.- Llena el formulario con informacin del usuario 5.- Asigna los permisos al usuario sobre los objetos. 7.- Guarda cambios

6.- Valida informacin

7.- Crea el nuevo registro en la Base de datos CURSOS ALTERNATIVOS

Mensajes de error : 4.1 Por favor, corrija los siguientes errores. Mensaje de Informacin: 13.1 Usuario creado con xito

CASO DE USO CAMBIAR DATOS USUARIO

Tabla IV. 3 Caso de Uso Cambiar Datos de Usuario

IDENTIFICAR CASO DE USO:

CU_Cambiar_Datos_Usuario

- 165-

NOMBRE DEL CASO DE USO: ACTORES: PROPSITO:

Cambiar _ Datos_Usuario Administrador Cambiar la informacin de algn usuario especifico

VISIN GENERAL:

Los usuarios podrn realiza el cambio de informacin excepto de sus datos principales

TIPO: REFERENCIAS:

Primario, real y expandido Requerimientos CURSO TPICO DE EVENTOS ACCIN DEL ACTOR RESPUESTAS DEL SISTEMA 2.-Muestra pantalla para autentificacin de usuario 4.- Valida datos del usuario 5- Muestra pantalla principal correspondiente a los permisos de dicho usuario

1.- Se inicia cuando usuario se autentifica en modo Administracin Dango 3.-Ingresa sus datos (sesin y clave)

6.- Selecciona la opcin Cambio de datos del usuario 7.- Cambia datos 8.-Registra cambio utilizando un botn de la interfaz asignado. 9.- Actualiza los cambios en la base de datos del sistema. 10. Muestra mensaje confirmando que la actualizacin se ha realizado. CURSOS ALTERNATIVOS Mensajes de error : 4.1 No existe usuario 4.2 Ingrese correctamente los datos. Mensaje de Informacin: 13.1 Los datos fueron actualizados

CASO DE USO CREACION DE DOCENTES

- 166-

Tabla IV. 4 Caso de Uso Creacin de Docentes

IDENTIFICAR CASO DE USO: NOMBRE DEL CASO DE USO: ACTORES: PROPSITO:

CU_Crear_Docente Crear_Docente Administrador, Usuario Realizar el registro de una determinado Docente

VISIN GENERAL:

El

proceso

inicia

cuando

una

nueva

contratacin se va a dar y el docente no se encuentra en la base de datos, entonces se necesita registrar un nuevo docente, para lo cual el usuario debe ingresar a los ingresos de docentes y llenar el formulario. TIPO: REFERENCIAS: Primario, real y expandido Requerimientos CURSO TPICO DE EVENTOS ACCIN DEL ACTOR 1.- Se inicia cuando un nuevo docente va a ser contratado se acerca a Administrador a solicitar el registro de su informacin. 2.- Administrador solicita documentos para poder realizar la respectiva creacin de cuenta. 3.- Docente entrega documentos y entrega el Numero de Cedula, especialidad. 5.- Administrador llena los campos requeridos 7.- Presenta un mensaje que informa que se ha realizado el registro correctamente. CURSOS ALTERNATIVOS 4.-Muestra formulario de ingreso docente 6.- Valida datos del formulario RESPUESTAS DEL SISTEMA

- 167-

Mensajes de error : 6.1 Los campos marcados con asterisco son de ingreso obligatorio 6.2 Ingrese correctamente el nmero de cedula Mensajes de Advertencia: 7.1 No se puede realizar la creacin del docente Mensaje de Informacin: 7.2 Docente ingresado correctamente

CASO DE USO EDICIONDE DOCENTES

Tabla IV. 5 Caso de Uso Edicin de Docentes

IDENTIFICAR CASO DE USO: NOMBRE DEL CASO DE USO: ACTORES: PROPSITO:

CU_Editar_Docente Editar_Docente Administrador, Usuario Realizar la edicin de un registro de un determinado Docente

VISIN GENERAL:

El proceso inicia cuando requiere agregar datos de un docente ya existente, o cambiar datos del mismo

TIPO: REFERENCIAS:

Primario, real y expandido Requerimientos CURSO TPICO DE EVENTOS ACCIN DEL ACTOR RESPUESTAS DEL SISTEMA

1.- Se inicia cuando la informacin de un docente est incompleta o con algn error de tipiado. 2.- Administrador solicita los datos a corregir o completar. 3.- Administrador o usuario ingresa al mdulo de edicin de registros. 5.- Administrador llena y/o cambia los 4.-Muestra formulario con la informacin actual de docente 6.- Valida datos del formulario

- 168-

campos requeridos 7.- Presenta un mensaje que informa que se ha realizado el registro correctamente. CURSOS ALTERNATIVOS Mensajes de error : 6.1 Los campos marcados con asterisco son de ingreso obligatorio 6.2 Ingrese correctamente el nmero de cedula Mensajes de Advertencia: 7.1 No se puede realizar la edicin del docente Mensaje de Informacin: 7.2 Actualizacin exitosa

CASO DE USO CREACION DE INSTITUCIONES

Tabla IV. 6 Caso de Uso Creacin de Instituciones

IDENTIFICAR CASO DE USO: NOMBRE DEL CASO DE USO: ACTORES: PROPSITO:

CU_Crear_Institucion Crear_Institucion Administrador, Usuario Realizar el registro de una determinada Institucin

VISIN GENERAL:

El proceso inicia cuando una Institucin requiere de personal docente, y esa institucin no se encuentra en la Base de Datos.

TIPO: REFERENCIAS:

Primario, real y expandido Requerimientos CURSO TPICO DE EVENTOS ACCIN DEL ACTOR RESPUESTAS DEL SISTEMA

1.- Se inicia cuando una nueva institucin se necesita ingresar al sistema.

- 169-

2.- Administrador solicita datos de la institucin 3.- Administrador o usuario ingresa al mdulo de ingreso de instituciones. 5.- Administrador o usuario llena los campos requeridos 7.- Presenta un mensaje que informa que se ha realizado el registro correctamente. CURSOS ALTERNATIVOS Mensajes de error : 6.1 Los campos marcados con asterisco son de ingreso obligatorio 4.-Muestra formulario de ingreso instituciones. 6.- Valida datos del formulario

Mensajes de Advertencia: 7.1 No se puede realizar la creacin de la institucin Mensaje de Informacin: 7.2 Institucin ingresada correctamente

CASO DE USO EDICIONDE INSTITUCIONES

Tabla IV. 7 Caso de Uso Edicin de Instituciones

IDENTIFICAR CASO DE USO: NOMBRE DEL CASO DE USO: ACTORES: PROPSITO:

CU_Editar_Institucin Editar_Institucin Administrador, Usuario Realizar la edicin de un registro de

determinada Institucin VISIN GENERAL: El proceso inicia cuando se requiere cambiar datos de una institucin determinada. TIPO: REFERENCIAS: Primario, real y expandido Requerimientos

- 170-

CURSO TPICO DE EVENTOS ACCIN DEL ACTOR 1.- Se inicia cuando la informacin de un docente est incompleta o con algn error de tipiado. 2.- Administrador solicita los datos a corregir o completar. 3.- Administrador o usuario ingresa al mdulo de edicin de registros. 5.- Administrador llena y/o cambia los campos requeridos 7.- Presenta un mensaje que informa que se ha realizado el registro correctamente. CURSOS ALTERNATIVOS Mensajes de error : 6.1 Los campos marcados con asterisco son de ingreso obligatorio 4.-Muestra formulario con la informacin actual de instituciones 6.- Valida datos del formulario RESPUESTAS DEL SISTEMA

Mensajes de Advertencia: 7.1 No se puede realizar la edicin de la institucin Mensaje de Informacin: 7.2 Actualizacin exitosa CASO DE USO INGRESO DE CONTRATOS

Tabla IV. 8 Caso de Uso Ingreso de Contratos

IDENTIFICAR CASO DE USO: NOMBRE DEL CASO DE USO: ACTORES: PROPSITO: VISIN GENERAL:

CU_Ingreso_Contrato Crear_ Ingreso_Contrato Administrador, Usuario Realizar el registro de nuevo contrato El proceso inicia cuando se requiere realizar la contratacin de un docente, a una o a varias

- 171-

instituciones. TIPO: REFERENCIAS: Primario, real y expandido Requerimientos CURSO TPICO DE EVENTOS ACCIN DEL ACTOR 1.- Se inicia cuando se requiere realizar una contratacin. 2.- Administrador solicita datos del nuevo contrato. 3.- Administrador o usuario ingresa al mdulo de ingreso de contratacin. 5.- Administrador o usuario llena los campos requeridos 7.- Presenta un mensaje que informa que se ha realizado la contratacin correctamente. CURSOS ALTERNATIVOS Mensajes de error : 6.1 Los campos marcados con asterisco son de ingreso obligatorio. 6.2 Debe ingresar al menos una institucin 6.3 El nombre de la institucin ingresado no existe en la base de datos 6.4 El nombre del docente ingresado no existe en la Base de datos Mensajes de Advertencia: 7.1 No se puede realizar la contratacin Mensaje de Informacin: 7.2 Contratacin exitosa 4.-Muestra formulario de ingreso de contratos. 6.- Valida datos del formulario RESPUESTAS DEL SISTEMA

CASO DE USO EDICINDE CONTRATOS

Tabla IV. 9 Caso de Uso Edicin de Contratos

- 172-

IDENTIFICAR CASO DE USO: NOMBRE DEL CASO DE USO: ACTORES: PROPSITO: VISIN GENERAL:

TIPO: REFERENCIAS: CURSO TPICO DE EVENTOS ACCIN DEL ACTOR 1.- Se inicia cuando se requiere editar una contratacin.

CU_Editar_Contrato Crear_Editar_Contrato Administrador, Usuario Realizar la edicin de un contrato El proceso inicia cuando se requiere modificar un contrato ya se debido a que el docente va a ser asignado a mas instituciones, por correcciones del mismo, o aadir detalles del contratado. Primario, real y expandido Requerimientos RESPUESTAS DEL SISTEMA

2.- Administrador solicita datos a modificar y/o agregar. 3.- Administrador o usuario ingresa al 4.-Muestra formulario de edicin de mdulo de edicin de contratos contratos, con la informacin actual del contrato 5.- Administrador o usuario llena los 6.- Valida datos del formulario campos requeridos 7.- Presenta un mensaje que informa que se ha realizado la actualizacin correctamente. CURSOS ALTERNATIVOS Mensajes de error : 6.1 Los campos marcados con asterisco son de ingreso obligatorio. 6.2 Debe ingresar al menos una institucin 6.3 El nombre de la institucin ingresado no existe en la base de datos Mensajes de Advertencia: 7.1 No se puede realizar la contratacin Mensaje de Informacin: 7.2 Actualizacin exitosa CASO DE USO GENERACIN DE CONTRATO
Tabla IV. 10 Caso de Uso Edicin de Contratos

IDENTIFICAR CASO DE USO: NOMBRE DEL CASO DE USO: ACTORES: PROPSITO: VISIN GENERAL:

CU_Generar_Contrato Generar_Contrato Administrador, Usuario Realizar la impresin del contrato El proceso inicia cuando ya todo el proceso de previo a la contratacin se ha realizado, y tanto

- 173-

TIPO: REFERENCIAS: CURSO TPICO DE EVENTOS ACCIN DEL ACTOR 1.- Se inicia cuando se requiere imprimir el documento para la firma del contrato 2.- Usuario solicita datos del contrato 3.- Usuario ingresa a la seccin de generacin del contrato. 5.- Usuario llena los campos requeridos

autoridades como el/la docente a contratar estn listos para la firma del contrato. Primario, real y expandido Requerimientos RESPUESTAS DEL SISTEMA

4.-Muestra formulario para ingresar el dato del docente. 6.- Busca datos del formulario 7.- Presenta el documento del contrato redactado

8.- Presiona el botn imprimir. CURSOS ALTERNATIVOS Mensajes de error : 6.1 No ha ingresado el dato del docente. 6.2 El docente ingresado no tiene ningn contrato. Mensajes de Advertencia: 7.1 No se puede generar el contrato Mensaje de Informacin: 7.2 Contrato generado con xito Definir los Casos de Uso

Esta actividad nos permite representar los casos de uso a partir de la nomenclatura definida en UML, tanto para la representacin de actores, casos de uso, interacciones y relaciones.

DIAGRAMA DE CASO DE USO AUTENTIFICACIN

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version - 174EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version
Primary Use Cases EA 7.5ucUnregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version
Ingresa al sistema

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version
User

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version
Ilustracin IV. 1 Diagrama de Caso EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version de Uso Autenticacin
Ingresa usuario y contrasea include Validacin

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

DIAGRAMA DE CASOS DE USO Unregistered DE CUENTA EA 7.5 Unregistered Trial EA 7.5 EA 7.5 Unregistered Trial Version EA 7.5 EA 7.5 Unregistered Trial VersionEA 7.5CREACIONTrial Version EA 7.5 Unregistered Trial Version VersionUn Unregistered Trial Version
EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Solicita informacin Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version
Validacin Ingresa Infromacin uc Creacion de Cuenta de usuarios

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Un

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Un

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Un Solicita cuenta

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Un

include EA 7.5 EA 7.5 Unregistered Trial VersionEA 7.5 Unregistered Trial Version 7.5 Unregistered Trial Version VersionUn Unregistered Trial Version EA 7.5 Unregistered Trial Version EA EA 7.5 Unregistered Trial EA 7.5

Usuario EA 7.5 Unregistered Trial Version EA EA 7.5 Unregistered Trial EA 7.5 EA 7.5 EA 7.5 Unregistered Trial VersionEA 7.5 Unregistered Trial Version 7.5 Unregistered Trial Version VersionUn Unregistered Trial Version Proporciona informacion personal Administrador Establece Permisos

EA 7.5 Unregistered Trial Version EA EA 7.5 Unregistered Trial EA 7.5 EA 7.5 EA 7.5 Unregistered Trial VersionEA 7.5 Unregistered Trial Version 7.5 Unregistered Trial Version VersionUn Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Un

Guarda registro EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Un

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Un

EA 7.5 Unregistered Trial Version Uso Creacin de Cuenta Ilustracin IV. 2. Diagrama de Caso de EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Un

EA 7.5 EA 7.5 Unregistered Trial VersionEA 7.5 Unregistered Trial Version 7.5 Unregistered Trial Version VersionUn Unregistered Trial Version EA 7.5 Unregistered Trial Version EA EA 7.5 Unregistered Trial EA 7.5

EA 7.5 EA 7.5 Unregistered Trial VersionEA 7.5 Unregistered Trial Version 7.5 Unregistered Trial Version VersionUn Unregistered Trial Version EA 7.5 Unregistered Trial Version EA EA 7.5 Unregistered Trial EA 7.5

DIAGRAMA DE CASO DE USO CAMBIAR DATOS USUARIO

EA 7.5 Unregistered Trial Version EA EA 7.5 Unregistered Trial EA 7.5 EA 7.5 EA 7.5 Unregistered Trial VersionEA 7.5 Unregistered Trial Version 7.5 Unregistered Trial Version VersionUn Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Un

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Un

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Un

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Un

EA 7.5 EA 7.5 Unregistered Trial VersionEA 7.5 Unregistered Trial Version 7.5 Unregistered Trial Version VersionUn Unregistered Trial Version EA 7.5 Unregistered Trial Version EA EA 7.5 Unregistered Trial EA 7.5

EA 7.5 EA 7.5 Unregistered Trial VersionEA 7.5 Unregistered Trial Version 7.5 Unregistered Trial Version VersionUn Unregistered Trial Version EA 7.5 Unregistered Trial Version EA EA 7.5 Unregistered Trial EA 7.5

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Un

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Un

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Un

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA

- 175EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA
EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA EA 7.5 Unregistered Trial Version Ingresa datos para EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA Buscar Usuario
busqueda include uc Edicin de usuario

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA
Administrador EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA Realiza modificaciones include Validacin

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA
Guarda cambios EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA EA 7.5 Unregistered Trial Version EACambiar Datos de Usuario Version EA 7.5 Unregistered Trial Version EA Ilustracin IV. 3. Diagrama de Caso de 7.5 Unregistered Trial EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA EA 7.5 UnregisteredDE CASOS DE USO Unregistered Trial Version EA 7.5 Unregistered Trial Version EA DIAGRAMA Trial Version EA 7.5 DEINGRESOS

EA 7.5 Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Version EA EA 7.5 Unregistered Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial EA 7.5 Unreg sd Diagramas de Secuencia Ingresos

EA 7.5 Trial Version EA 7.5 Unregistered Trial Version EA SISCONDECH BD EA 7.5 Unregistered Unregistered Trial Version EA 7.5 Unregistered CONTRATACION Unregistered Trial Version EA 7.5 Unreg Trial Version EA 7.5 Unregistered Trial Version EA 7.5
Usuario EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA Ingreso a mdulo de Ingresos() EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg
EA 7.5 Unregistered Presenta Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA Trial Interfaz()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg

EA 7.5 Unregistered Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial EA 7.5 Unreg Trial Version objeto 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Version EA Escoger EA a ingresar() EA 7.5

Presenta 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Version EA EA 7.5 Unregistered Unregistered TrialFormulario() EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial EA 7.5 Unreg EA 7.5 Trial Version EAVersion

EA 7.5 Trial VersionTrial Version EA 7.5 Unregistered UnregisteredLlena Formulario() EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial EA 7.5 Unreg EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Version EA
Valida Informacin() EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA

EA 7.5 Unregistered Trial VersionEnvia Mensaje()Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg EA 7.5
EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA
Inserta en Tabla Correspondiente()

Guarda cambios() EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg
EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA

EA 7.5 Unregistered Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial EA 7.5 Unreg EA 7.5 Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Version EA

Ilustracin IV. 4. Diagrama de Caso de EA 7.5 Trial Version EA 7.5 Unregistered Ingresos. 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA EA 7.5 Unregistered Unregistered Trial Version EAUso de Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg

EA 7.5 Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Version EA EA 7.5 Unregistered Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial EA 7.5 Unreg EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg

- 176-

DIAGRAMA DE CASOS DE EDICION DEREGISTROS EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

uc Ediciones EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis Se dirige al Modulo
de ingresos Editar Docente

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

extend EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis Escoger el obj eto a Usuario Editar Institucin

editar extend EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

extend EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis Editar Especialidad

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis
Llena fomulario extend

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis
include extend

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis
Guardar extend Validacin

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis
Inicia en modo Dj ango Administrador

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis Administracin

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis Ilustracin IV. 5. Diagrama de Caso de Uso Edicin de Registros. EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis
EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 DIAGRAMA DE CASOS DE ELIMINACINVersion EA 7.5 Unregistered Trial Version Unregistered Trial Version EA 7.5 Unregistered Trial DEREGISTROS EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version uc Eliminacin EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Versionen modo 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA Inicia EA 7.5 Unregistered Trial VersionAdministracin Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Eliminar Docente Dj ango EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version extend EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Eliminar Institucin Escoger EA 7.5 Unregistered Trial Versionel obj eto7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA a extend eliminar EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Administrador EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version extend Eliminar EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Especialidad EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Confirmar include EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Eliminar EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregis EA 7.5 Unregis EA 7.5 Unregis EA 7.5 Unregis EA 7.5 Unregis EA 7.5 Unregis EA 7.5 Unregis EA 7.5 Unregis EA 7.5 Unregis EA 7.5 Unregis EA 7.5 Unregis EA 7.5 Unregis EA 7.5 Unregis EA 7.5 Unregis EA 7.5 Unregis EA 7.5 Unregis EA 7.5 Unregis EA 7.5 Unregis EA 7.5 Unregis EA 7.5 Unregis EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis EA 7.5 Ilustracin IV. Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis Unregistered 6. Diagrama de Caso de Uso Eliminacin de Registros.

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA EA 7.5 Unregistered Trial VersionEA 7.5 Unregistered Trial Version EA 7.5 Unregis EA 7.5 Unregistered Trial Version 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

- 177-

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

DIAGRAMA DE CASOS DE USO DE CONTRATACIN


uc Contratacin

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version
Ingreso a seccin de

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Buscar Docente EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version contratacin
extend Buscar Institucin

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version
extend

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version
Ingresar Parametros

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version extend
Asignar Fechas

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version extend
Usuario

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Guardar
Llenar Formulario

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version
Generar Contrato

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

Ilustracin IV. 7. Diagrama de Caso de Uso de Contratacin.

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version DIAGRAMA DE CASO DE USO UTILIZACION SISTEMA

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

- 178-

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis uc Funcionanmiento Sistema
Iniciar en modo Administracin

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis
Iniciar secin Validacin

include include EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis Dj ango

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis
Gestin de docentes Gestin de Usuarios

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

extend EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis Gestionar Ingresos Gestin de Instituciones

extend EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis extend

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis
Gestin de Contratos

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis
Gestion de Ubicacin Geografica

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis Administrador
Consultas de docentes

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis
extend Consultas de Instituciones

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis
Gestion de Reportes extend

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis
extend Contratos

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis Consultas de

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version Cerrar Sesin Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis EA 7.5

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

Ilustracin IV. 8. Diagrama de Caso de Uso Utilizacin Sistema

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

4.3.5. Diagrama de Secuencias

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

DIAGRAMA DE SECUENCIA AUTENTICACIN

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Secuencia Autenticacin 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg sd Diagrama de Trial Version EA

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

BD Table Users EA 7.5 Unregistered Trial Version SISCONDECH EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg

EA 7.5 Unregistered Trial Version EAUsuarioUnregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis 7.5

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis Ingresa al Sistema()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg

EA 7.5 Unregistered Trial Version EA 7.5 EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial VersionUnregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis Muestra formulario Login()
Enva Formulario() Valida formulario()

EA 7.5 Unregistered Trial Version EA 7.5 EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial VersionUnregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis Llena formulario()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial VersionUnregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis EA 7.5 Unregistered Trial Version EA 7.5 EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis Enva credenciales de usuario()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg

Busca usuario en la BD() EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Enva Respuesta() Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg Unregistered

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered de usuario() Carga privilegios Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered de inicio() Muestra pantalla Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg

EA 7.5 Unregistered Trial Version EA 7.5 EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial VersionUnregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial VersionUnregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial VersionUnregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis EA 7.5 Unregistered Trial Version EA 7.5 EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unreg

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

- 179-

Ilustracin IV. 9. Diagrama de Secuencias Autenticacin

DIAGRAMA DE SECUENCIA CREACION DE CUENTA

EAsd Diagramas de Secuencia Creacion Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial V 7.5 Unregistered Trial de Cuenta

SISCONDECH BD Tabla Users EA 7.5 Unregistered Trial Version EA(Administracin 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial V Usuario Administrador Django)

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial V Solicita cuenta()

Solicita informacion Trial Version EA 7.5 Unregistered de cuenta() EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial V Proporciona Informacin()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial V
Ingresa a Gestin de Usuarios() Presenta formulario de creacin de cuenta()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial V
Llena formulario()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial V

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial V
Valida formulario() Inserta en la BD()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial V
Presenta mensaje()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial V

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial V
Ilustracin IV. 10. Diagrama de Secuencias Creacin de Cuenta

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial V

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial V

DIAGRAMA DE SECUENCIA CAMBIAR DATOS USUARIO

EA 7.5 Unregistered de Secuencia Cambia Datos de 7.5 Unregistered Trial VersionEA 7.5 Unregistered Trial Versi Trial Version EA User EA 7.5 Unregistered Trial V EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version sd Diagramas

SISCONDECH BD Version EA 7.5 Unregistered Trial Version (Administracin EA 7.5 Unregistered TrialTabla Users EA 7.5 Unregistered Trial V EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Versi Administrador Django)

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial V EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Versi
Ingresa a gestin de usuarios() Escoge usuario a editar()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial V EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Versi

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Consulta informacin de Usuario() VersionEA 7.5 Unregistered Trial Versi EA 7.5 Unregistered Trial V

Enva Informacin de la EA 7.5 Unregistered Trial Version EA 7.5 Unregisteredconsulta() Version EA 7.5 Unregistered Trial V EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Versi Trial Presenta datos de usuario() Edita datos de usuario()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial V EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Versi

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Versi Valida Datos() EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial V
Guarda Cambios()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Versi EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial V Actualiza tabla()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Versi EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial V EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Versi EA 7.5 Unregistered Trial11. Diagrama de7.5 Unregistered Trial Version EA 7.5 Unregistered Trial V Ilustracin IV. Version EA Secuencias Cambiar Datos Usuario EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Versi EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial V EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Versi EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial V EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Versi EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial V EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Versi

- 180-

DIAGRAMA DE SECUENCIAS DE INGRESOS

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis sd Diagramas de Secuencia Ingresos

SISCONDECH BD EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis CONTRATACION Usuario Ingreso a mdulo de Ingresos()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis
Presenta Interfaz()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version objeto 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis Escoger EA a ingresar()

Presenta Formulario() EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

Llena Formulario() EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis Valida Informacin()

EA 7.5 Unregistered Trial VersionEnvia Mensaje()Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis EA 7.5

Guarda cambios() EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis Inserta en Tabla Correspondiente()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Ilustracin IV. 12. Diagrama de Secuencia de Ingresos Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

- 181-

DIAGRAMA DE SECUENCIA DE EDICIN DE REGISTROS


EA 7.5 Diagramas de Secuencia Edicin de RegistrosEA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version sd Unregistered Trial Version
SISOCNDECH BD EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version (Administracin CONTRATACIN Administrador Django)

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version
Escoge Objeto a Editar()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version
Consulta Tabla seleccionada()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Devuelve registros()
Muestra lista de registros del objeto seleccionado() EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Escoge registro editar() EA 7.5 Unregistered Trial aVersion EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Consulta Informacin del registro()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version
Devuelve informacin del registro()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version
Muestra formulario con informacin del Registro()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Edita formulario() EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Valida formulario()
Enva mensaje()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version
Guarda cambios()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Actualiza Tabla respectiva() EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Ilustracin IV. 13. Diagrama de Edicin de Registros EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version DIAGRAMA DE SECUENCIA DE ELIMINACIN DE REGISTROS EA 7.5sd Diagramas de Secuencia Version de Unregistered Trial Version EA 7.5 Unregistered Trial Version Unregistered Trial Eliminacin EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Registros
SISCONDECH BD EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version (Administracin CONTRATACIN Django) EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Administrador

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version
EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version
Escoge objeto a eliminar (docentes, instituciones, etc) Consulta Tabla()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version
EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Devuelve regstros() EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version
Muestra lista registros() EA 7.5 Unregistered Trial Version deEA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version
Escoge registro a eliminar()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial
Elimina de la Tabla respectiva()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version
Ilustracin Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered IV. 14. Diagrama de Eliminacin de Registros

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version
EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version
EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

- 182-

DIAGRAMA DE SECUENCIA DE CONTRATACIN

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis sd Diagramas de Secuencia contratacin

SISCONDECH EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version CONTRATACIN EA BD Unregistered Trial Version EA 7.5 Unregis 7.5 Docente Usuario

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis
Solicita requisitos() Reune requisitos()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis Ingresa a gestin de ingresos()

EA 7.5 Unregistered Trial Version EA IngresaUnregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis 7.5 a seccin de Contratos()
Muestrao Formulario de Contratacin()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis
Llena parametros del formulario()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis
Valida formulario()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis Mensaje()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis Guarda cambios()

Inserta Registro en la Tabla de BD() EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EAla7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

Ilustracin Unregistered Trial Version EA 7.5 EA 7.5 Unregistered Trial Version EA 7.5 IV. 15. Diagrama de Contratacin Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

DIAGRAMA DE SECUENCIAS UTILIZACION SISTEMA

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered de Secuencia Sistema EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5EA 7.5 Unregis Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Unregistered Tr sd Diagramas

(Administracin CONT 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA RAT ACIN EA 7.5 Unregis Django) Administrador Usuario

SISCONDECH SISCONDECH BD EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Tr

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Tr

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis Ingresa al Sistema en modo administracin()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Tr Valida Credenciales()
Permite interaccion del Administrador de forma directa con los objetos de la BD()

EA 7.5 Unregistered Trial Permite acceso al EA 7.5modo administracin() Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis Version sistema en Unregistered

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Tr
Ingresa al sistema()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5EA 7.5 Unregis EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Unregistered Tr
Permite acceso al sistema()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Unregistered Tr Valida credenciales() EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EAIngresos() EA 7.5 Unregistered Trial Version EA 7.5 Unregis Gestion de 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Tr

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trialcon la BD() EA 7.5 Unregistered Trial Version EA 7.5 Unregis Interactua Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Tr Validaciones()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Tr Respuestas dela BD()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis Gestin de Contratos()
Validaciones()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Tr

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5EA 7.5 Unregis EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Unregistered Tr Interactua con la BD()

Respuesta EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial de la BD() EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5EA 7.5 Unregis Version EA 7.5 Unregistered Trial Version Unregistered Tr Gestin de Consultas()

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Tr

Validaciones() EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Tr

Interactua EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trialcon la BD() Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

Respuestas de la BD() EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Tr

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5EA 7.5 Unregis Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Unregistered Tr EA 7.5 Unregistered Trial

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5EA 7.5 Unregis Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Unregistered Tr EA 7.5 Unregistered

Ilustracin IV. 16. Diagrama de Secuencias Utilizacin Sistema

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Unregistered Tr EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Tr

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Tr

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregis

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Tr

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5EA 7.5 Unregis EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Unregistered Tr

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Tr

- 183-

4.4.

Diseo

4.4.4. Diagrama de Clases

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

class Class Model EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

Docente EA 7.5 Unregistered Trial Version Contrato Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 id: int Cedula: char Nombre: char Direccion: char email: char Especialidades: int Especializacion: char Titulo: char id: int Numero: int Docentes: int Instituciones: int Fecha: char Estado: char Remuneracin: float Vigencia_anios: int Institucion id: int Nombre: char Codigo_amie: char i_canton: int i_parroquia: int nivel: char

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version
Cantn

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version id: int 7.5 Unregistered Trial Version EA Contratos Terminados - Nombre: char Especialidad id: int

EA 7.5 Unregistered Trial Versionfecha_end: char EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version - id: int - numero_end: char Nombre: char motivo: char

EA 7.5 Unregistered Trial Versioncontratos:7.5 Unregistered Trial Version Parroquia Unregistered Trial Version EA int EA 7.5 Comunidad id: int id: int

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Nombre:7.5 Unregistered Trial Version EA char - Parroquias: int Cantonces: int

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

Ilustracin EA 7.5 Unregistered Trial VersionIV. 17. Diagrama de Clases Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA Unregistered Trial Trial Version EA 7.5 Unregistered Tr EA 7.5 7.5 Unregistered

4.4.5. Diagrama de Componentes

EA 7.5 Unregistered Trial Version EA EA Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version 7.5 7.5 Unregistered Trial Version EA 7.5 Unregistered Tr

EA 7.5 Unregistered Trial Version EA EA Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version 7.5 7.5 Unregistered Trial Version EA 7.5 Unregistered Tr cmp Diagramas Compenentes
Actualizaciones Interfaz Web (Modo Administracin Dj ango) Rutinas de conexion

EA 7.5 Unregistered Trial Version EA EA Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version 7.5 7.5 Unregistered Trial Version EA 7.5 Unregistered Tr

EA 7.5 Unregistered Trial Version EA EA Unregistered Trial Version EA 7.5 Unregistered Trial Version Unregistered Trial Version 7.5 7.5 Unregistered Trial Version EA 7.5 Unregistered Tr EA

EA 7.5 Unregistered Trial Version EA EA Unregistered Trial Version EA 7.5 Unregistered Trial Version Unregistered Trial Version 7.5 7.5 Unregistered Trial Version EA 7.5 Unregistered Tr EA
Interfaz Web

Acceso a la Base EA Unregistered Trial Version (Normal) Unregistered Trial VersionDatos 7.5 Unregistered Trial Version EA 7.5 EA EA 7.5Eliminaciones Unregistered Trial Version EA 7.5 Unregistered TrialdeVersion EA 7.5 Unregistered Tr

EA EA 7.5 Unregistered Trial Version EA EA Unregistered Trial Version EA 7.5 Unregistered Trial Version Unregistered Trial Version 7.5 7.5 Unregistered Trial Version EA 7.5 Unregistered Tr

EA EA 7.5 Unregistered Trial Version EA EA Unregistered Trial Version EA 7.5 Unregistered Trial Version Unregistered Trial Version 7.5 7.5 Unregistered Trial Version EA 7.5 Unregistered Tr
Ingresos

EA 7.5 Unregistered Trial Version 7.5 7.5 Unregistered TrialReportes EA 7.5 Unregistered Trial Version EA EA Unregistered Trial Version EA 7.5 Unregistered Trial Version Version EA 7.5 Unregistered Tr

EA 7.5 Unregistered Trial Version 7.5 7.5 Unregistered Trial Version EA 7.5 Unregistered Tr EA 7.5 Unregistered Trial Version EA EA Unregistered Trial Version EA 7.5 Unregistered Trial Version

Ilustracin IV. 18. Diagrama de Componentes EA 7.5 Unregistered Trial Version 7.5 7.5 Unregistered Trial Version EA 7.5 Unregistered Tr EA 7.5 Unregistered Trial Version EA EA Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version 7.5 7.5 Unregistered Trial Version EA 7.5 Unregistered Tr EA 7.5 Unregistered Trial Version EA EA Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 EA 7.5 Unregistered Trial Version EA EA Unregistered Trial Version EA 7.5 Unregistered Trial Version Unregistered Trial Version 7.5 7.5 Unregistered Trial Version EA 7.5 Unregistered Tr

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Tr

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Tr

- 184-

4.4.6. Diagrama de Nodos


EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version
deployment EA 7.5 UnregisteredUse cases Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Aplicacin Web EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Gestion de Usuarios

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version
Ingresos EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version Gestion de

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version
Gestin de Actualizaciones EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version
Interfaz Web

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version
Ilustracin IV. 19. Diagrama de Nodos

Gestion de Consultas

Gestion de Eliminaciones

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

4.5.

Implementacin y Pruebas

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

4.5.4. Definicin de EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version estndares de Programacin
EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

Para realizar la codificacin del sistema se han definido los siguientes estndares:
EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

El nombre de las tablas se encuentra con letras minsculas.

EA 7.5 Unregistered Trial Versionlos campos empieza con una letra minscula, seguido de una lnea El nombre de EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

hacia Version EA 7.5 Unregistered palabra. EA 7.5 Unregistered Trialabajo en el caso de ms de una Trial Version EA 7.5 Unregistered Trial Version
EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

Los mtodos que interactan con la base de datos en el caso de funciones de

insercin, deben devolver como resultado el cdigo del campo que ha sido
EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

insertado.

EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version 4.5.5. Pruebas Unitarias EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

Para asegurar el correcto funcionamiento del Sistema se han probado sus mtodos de

forma independiente, enviando datos de entrada desde el cdigo, para luego obtener los
EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version EA 7.5 Unregistered Trial Version

- 185-

a travs de los diferentes mtodos para realizar consultas. Se han probado especialmente todas las funciones para validaciones de datos.

4.5.6. Pruebas de Mdulos y del Sistema

Las pruebas finales consistieron en verificar que la informacin ingresada se vea inmediatamente reflejada en las consultas del sistema, esto sirve para comprobar que la informacin se est registrando correctamente en la base de datos.

Se provocaron errores intencionales para verificar el correcto funcionamiento del sistema, as como de las funciones de validacin de datos, como por ejemplo: - Realizar consultas a tablas vacas - Ingresar campos incorrectos

Tratar de ingresar informacin diferente al tipo de dato correcto, como tratar de ingresar texto en los campos que son numricos, ingresar formatos de fechas diferentes, tratar de ingresar datos tcnicos en servicios que no admiten esta informacin

CONCLUSIONES 1. El anlisis de las tecnologas Python con Django y Ruby on Rails nos permite obtener una clara visin en el enfoque de un desarrollo ms productivo de aplicaciones web.

2. El estudio y anlisis nos permiti determinar que la tecnologa Django implementada bajo Python es ms eficiente en el desarrollo gil de aplicaciones web. 3. Tanto Django as como Ruby on Rails presentan similares caractersticas las cuales nos brindan un optimo beneficio al momento de desarrollar gilmente aplicaciones web diferenciadas entre s mas no por su conceptualidad sino por su implementacin y estructura. 4. El realizar un estudio de la productividad de desarrollo de software nos permite determinar con claridad las prestaciones que nos brinda una aplicacin como producto final, y debido a su importancia se ha considerado los factores ms importantes entre los cuales destacamos: El patrn MVC, Reutilizacin, la seguridad de aplicacin, madurez de producto e instalacin. 5. Al realizar el estudio del Modelo en los distintos frameworks se puede determinar que de acuerdo a su implementacin en los prototipos de prueba Django presenta 93,75% contra Ruby on Rails con el 100% presentando mejores caractersticas respecto al acceso con los datos. 6. El estudio de la vista es muy importante puesto que nos refleja como una aplicacin web se presenta a los usuarios finales. Al ser implementada en los prototipos de prueba Django presenta un 90% frente al 83,33% que presenta Ruby on Rails demostrando Django una ventaja de 6,67% que permite determinar su ventaja al momento de realizar la capa de presentacin en una aplicacin.

7. El Controlador es un indicador que determina la funcionalidad de las aplicaciones web mediante los mtodos y funciones que son desarrollados en determinado framework. Por su mejor adaptacin entre el lenguaje y el acceso a datos Django muestra un 81,66% de eficiencia frente a Ruby on Rails con un 78,33% con una ventaja de 3,33%. 8. El indicador de reutilizacin demuestra la correcta utilizacin de objetos que pueden ser reutilizados lo cual permite aprovechar el trabajo anterior, economizar tiempo, y reducir la redundancia, posibilitando un ptimo desarrollo de

aplicaciones web. Para lo cual Django con 93,75% de eficiencia mostrando una ventaja de 12,5% frente a 81,25% de Ruby on Rails. 9. El estudio de la seguridad de aplicacin demanda una correcta utilizacin de factores que determinan un correcto cuidado de la informacin de una aplicacin al momento de la autenticacin de usuarios. Ambos frameworks presentan caractersticas similares las que representan un 95% de eficiencia en la seguridad de aplicacin. 10. El anlisis de la madurez del producto permite establecer indicadores que determinan la factibilidad de utilizar una determinada tecnologa, la misma que es traducida en la rentabilidad que genera un producto software. Es as que Django presenta un 93,33% contra el 91,66% de Ruby on Rails de madurez de producto teniendo una ventaja de 1,67%. 11. El indicador de instalacin proporciona una idea clara de la optimizacin en el tiempo y la facilidad en la implementacin del framework lo cual se ve reflejado en un desarrollo ms productivo de aplicaciones web. Django proporciona un 95% frente a 71,66% de Ruby on Rails superndolo con 23,34% del parmetro de instalacin. 12. La investigacin realizada acerca de la productividad en el desarrollo gil de aplicaciones web permite determinar la tecnologa apropiada para el desarrollo del Sistema de Contratacin Docente de la DECH (SISCONDECH), el mismo que de

acuerdo al estudio efectuado se lo ha desarrollado con tecnologa Django bajo Python con PostgreSQL. Este sistema permitir a los analistas de contratacin docente de la Divisin de Recursos Humanos de la DECH, obtener control, supervisin, automatizacin y agilidad en el proceso de contratacin de los docentes.

RECOMENDACIONES

RESUMEN Se realiz el estudio y anlisis de las tecnologas de framework de software libre ms populares hoy en da en el mercado, para el desarrollo de aplicaciones web, con el propsito de determinar que framework permite aprovechar mayormente sus caractersticas enfocado a la productividad de un desarrollo gil de aplicaciones web, posibilitando aprovechar potencialmente funcionalidades en reutilizacin, seguridad, instalacin, madurez de producto y promover buenas prcticas de desarrollo como lo es la utilizacin del Patrn de Diseo Modelo Vista Controlador.

Ambos frameworks fueron adaptados a los mismos ambientes de desarrollo integrndolos al IDE Aptana Studio 3, para el desarrollo de prototipos de pruebas, los mismos que permitieron determinar cual proporciona una mayor productividad en desarrollo gil. Los resultados cuantitativos que se obtuvieron mediante la comparacin de parmetros como: Modelo, Vista, Controlador, Reutilizacin, Seguridad de Aplicacin, Madurez de Producto e Instalacin. Los cuales permitieron evaluar la productividad en el desarrollo, la misma que tuvo un resultado de: Django 91,82% (Muy Bueno) y Ruby on Rails con 84,61% (Muy Bueno).

Los resultados obtenidos en base al anlisis realizado permiten concluir que el framework ideal para un desarrollo productivo de aplicaciones web es Django, con la finalidad de desarrollar el sistema de contratacin docente de la DECH. El anlisis comparativo se baso en el mtodo Cientfico General, con tcnicas de observacin directa, de laboratorio y experimento, para alcanzar los objetivos se utilizo las siguientes herramientas: Django 1.3.1 y Ruby on Rails 3.1, Servidor Web Apache con el modo FastCGI, PostgreSQL 9.1.3, Python 2.7.2 y Ruby 1.9.2. como lenguajes de programacin web y Aptana Studio 3 como IDE de desarrollo.

En conclusin la tecnologa que ofrece la mejor productividad en el desarrollo gil de aplicaciones web es Django con un puntaje de 92,81%/100, que supera a su directo competidor.

BIBLIOGRAFIA

[1]

JORGE A. SAAVEDRA GUTIERREZ. El Mundo Informtico; Lenguajes de Programacin. Retrieved Mayo 5 de 2007 [en lnea], from: http://jorgesaavedra.wordpress.com/2007/05/05/lenguajes-de-programacion/

[2]

RAUL GONZALEZ DUQUE. Python para Todos. Retrieved 2010 [Tutorial en lnea], from: http://mundogeek.net/tutorial-python/

[3]

WIKIPEDIA. Python. Retrieved Abril 13 de 2012 [en lnea], from: http://es.wikipedia.org/wiki/Python

[4]

SWAROOP C H. A byte of Python; Caractersticas. Retrieved Abril de 2004 [Tutorial en lnea], from: http://dev.laptop.org/~edsiper/byteofpython_spanish/ch01s02.html

[5]

JUANJO CONTI. Filosofa del diseo de Python. Retrieved Enero 21 de 2009 [en lnea], from: http://www.juanjoconti.com.ar/2009/01/21/la-historia-de-python-filosofia-dediseno/

[6]

DJANGO ESPAOL. Django Framework. Retrieved 2005 [en lnea], from: http://django.es/

[7]

GROK COMUNITY. Grok Framework. Retrieved 2007-2008 [en lnea], from: http://grok.zope.org/

[8]

TOPO ROJO. Desarrollo Web con Python y Pylons. Retrieved 2010[en lnea], from:

http://toporojo.es/blog/2012/02/11/desarrollo-web-con-python-pylons/

[9]

WIKIPEDIA. TuboGears. Retrieved Junio 12 de 2010 [en lnea], from: http://es.wikipedia.org/wiki/TurboGears

[10]

WEB2PY ESPAOL. Framework Web2py. Retrieved 2007 [en lnea], from: http://www.web2py.com.ar/examples/default/index

[11]

AITOR RIGADA. Model View Controller. Retrieved Octubre 20 de 2008 [en lnea], from: http://blogdeaitor.wordpress.com/2008/10/20/model-view-controller/

[12]

JUAN GUEVARA, MIGUEL FUERTES. Anlisis del patrn modelo vista controlador implementado en lenguajes de software libre para el desarrollo de aplicaciones web. Tesis (Ingeniero en Sistemas Informticos) Retrieved Riobamba, Ecuador. ESPOCH, Facultad de Informtica y Electrnica, 2010. 159h.

[13]

PRESTASHOP. El Patrn MVC. Retrieved Marzo 29 de 2010 [en lnea], from: http://prestashop5estrellas.wordpress.com/2010/03/29/el-patron-mvc-modelovista-controlador/

[14]

JAVIER J GUTIERREZ. Qu es un Framework Web? [en lnea], from: http://www.cssblog.es/guias/Framework.pdf

[15]

ADRIAN HOLOVATY Y JACOB KAPLAN-MOSS. El Libro de Django. Retrieved Diciembre 12 de 2007 [en lnea], from: http://www.djangobook.com/

[16]

WIKIPEDIA. Django. Retrieved Mayo 16 de 2012 [en lnea], from: http://es.wikipedia.org/wiki/Django

[17]

NOWAY. Tutorial de Instalacin de Django. Retrieved 2008 [Tutorial en lnea], from: http://www.noway.es/django-instalacion-tutorial

[18]

PALOMA CCERES, ESPERANZA MARCOS. Procesos Agiles para el Desarrollo de Aplicaciones Web. Retrieved Madrid Espaa, Universidad Rey Juan Carlos, Departamento de Ciencias Experimentales e Ingeniera [en lnea], from: http://www.dlsi.ua.es/webe01/articulos/s112.pdf

[19]

JUAN PALCIO. Gestin de Proyectos gil. Retrieved 2006 [en lnea], from: http://www.navegapolis.net/files/s/NST-003_01.pdf

[20]

ANTONIO MELE, MIGUEL ARAUJO. Taller de Django Betabeers [videograbacin], Barcelona Espaa. Retrieved Octubre 20 de 2011, from: http://django.es/blog/

[21]

BERKELEY SOFTWARE DISTRIBUTION. Licencias de software BSD. Retrieved Abril 30 de 2011 [en lnea], from: http://www.bsd.org/

[22]

EDUMILIS M. MNDEZ, MARA A. PREZ, ANNA C. GRIMN, LUIS E. MENDOZA. Cmo se relacionan la Calidad Sistmica y la Productividad en el Proceso de Desarrollo de Software? Retrieved Caracas Venezuela, Universidad Simn Bolvar, from: http://www.iiisci.org/journal/CV$/risci/pdfs/P799708.pdf

[23]

INICIATIVA ESPAOLA DE SOFTWARE Y SERVICIOS. Productividad en el Desarrollo de Software. Retrieved Espaa 2005 [en lnea], from: http://www.ines.org.es/node/1485

[24]

OBIE FERNANDEZ. The Rails Way. Edicin 2.0. , 2008, 910p

[25]

BRUCE STEWART. An Interview with the Creator of Ruby. Retrieved Noviembre 29 de 2001 [en lnea], from: http://linuxdevcenter.com/pub/a/linux/2001/11/29/ruby.html

[26]

SUGIHARA HIROSHI. The desicive moment of the language name Ruby. Retrieved Diciembre 25 de 2003 [en lnea], from: http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/88819

[27]

JORGE A. SAAVEDRA GUTIERREZ. El Mundo Informtico; Lenguajes de Programacin. Retrieved Mayo 5 de 2007 [en lnea], from: http://en.wikipedia.org/wiki/Ruby

[28]

JORGE A. SAAVEDRA GUTIERREZ. El Mundo Informtico; Lenguajes de Programacin. Retrieved Mayo 5 de 2007 [en lnea], from: http://www.ruby-lang.org/es/about/

[29]

WIKIPEDIA. Ruby. Retrieved Mayo 20 de 2012 [en lnea], from: http://es.wikipedia.org/wiki/Ruby

[30]

MARK SLAGEL. Ruby User Guide. Retrieved 2005 [en lnea], from: http://www.rubyist.net/~slagell/ruby/index.html

[31]

WIKIPEDIA. Ruby on Rails. Retrieved Abril 25 de 2012 [en lnea], from:

http://es.wikipedia.org/wiki/Ruby_on_Rails

[32]

ESTADO BETA ISMAEL. Mini Framework para Ruby. Retrieved Noviembre 13 de 2006 [en lnea], from: http://www.estadobeta.net/2006/11/13/merb-mini-framework-para-

ruby/index.html

[33]

WIKIPEDIA. Ramaze Framework. Retrieved Diciembre 19 de 2011 [en lnea], from: http://es.wikipedia.org/wiki/Ramaze

[34]

WIKIPEDIA. Sinatra Framework. Retrieved Febrero 29 de 2012 [en lnea], from: http://es.wikipedia.org/wiki/Sinatra_(software)

[35]

Roberto Solano Murillo, Ruby onRails, una forma rpida de hacer aplicaciones web. Retrieved, San Jos, Costa Rica Universidad de Costa Rica, Escuela de Ciencias de la Computacin e Informtica.

ANEXOS

You might also like