capítulo ii estado del arte. - repositorio.upsin.edu.mx

35
1 Capítulo II Estado del arte. En esta sección se hablará de algunos trabajos o proyectos similares a Eduscore, además de hacer una comparación entre ellos y Eduscore, explicando los principales beneficios que ofrece Eduscore en comparación con los demás. Además se describirán algunas metodologías que pueden ser útiles para el desarrollo de este proyecto. Antes de empezar a describir los trabajos es necesario entender el porqué es importante un sistema que gestione la información de las universidades. En la actualidad las decisiones que se toman en las universidades giran alrededor de asignar diversos recursos como personas, tiempo, capital, etc. para satisfacer distintas necesidades dentro de la organización. Estas decisiones no se suelen tomar por solo una persona, es decir, varias personas intervienen en este proceso de toma de decisiones, por lo tanto para poder tomar de la mejor manera posible estas decisiones es necesario contar con la información necesaria y que además dicha información esté actualizada, sea fácil acceder a ella y sea confiable. Aquí es donde entran los sistemas como Eduscore, ya que gracias a ellos se actualiza en tiempo real la información, además de que la información es guardada en un sitio seguro y permite que haya facilidad al momento de querer acceder a la información en cualquier momento. A continuación se describirán algunos sistemas que son parecidos al sistema Eduscore que en estos momentos está en desarrollo. 2.1 Proyectos similares a Eduscore y su comparación con Eduscore. 2.1.1 Magix ERP [1]El fin de este ERP es ofrecer un sistema de gestión que se adecue a las características y necesidades de los centros educativos. Este sistema está en constante evolución para poder satisfacer las necesidades de los centros educativos, además de integrar todos los sistemas de gestión académica y administrativa del centro educativo lo que permite evitar la duplicación de los datos. El sistema de gestión Magix brinda todas las herramientas necesarias para dar soporte a los procesos de gestión académica, administrativa y de áreas de

Upload: others

Post on 10-Jul-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

1

Capítulo II Estado del arte.

En esta sección se hablará de algunos trabajos o proyectos similares a

Eduscore, además de hacer una comparación entre ellos y Eduscore, explicando

los principales beneficios que ofrece Eduscore en comparación con los demás.

Además se describirán algunas metodologías que pueden ser útiles para el

desarrollo de este proyecto.

Antes de empezar a describir los trabajos es necesario entender el porqué es

importante un sistema que gestione la información de las universidades.

En la actualidad las decisiones que se toman en las universidades giran

alrededor de asignar diversos recursos como personas, tiempo, capital, etc. para

satisfacer distintas necesidades dentro de la organización. Estas decisiones no se

suelen tomar por solo una persona, es decir, varias personas intervienen en este

proceso de toma de decisiones, por lo tanto para poder tomar de la mejor manera

posible estas decisiones es necesario contar con la información necesaria y que

además dicha información esté actualizada, sea fácil acceder a ella y sea confiable.

Aquí es donde entran los sistemas como Eduscore, ya que gracias a ellos se

actualiza en tiempo real la información, además de que la información es guardada

en un sitio seguro y permite que haya facilidad al momento de querer acceder a la

información en cualquier momento.

A continuación se describirán algunos sistemas que son parecidos al sistema

Eduscore que en estos momentos está en desarrollo.

2.1 Proyectos similares a Eduscore y su comparación con

Eduscore.

2.1.1 Magix ERP

[1]El fin de este ERP es ofrecer un sistema de gestión que se adecue a las

características y necesidades de los centros educativos.

Este sistema está en constante evolución para poder satisfacer las

necesidades de los centros educativos, además de integrar todos los sistemas de

gestión académica y administrativa del centro educativo lo que permite evitar la

duplicación de los datos.

El sistema de gestión Magix brinda todas las herramientas necesarias para

dar soporte a los procesos de gestión académica, administrativa y de áreas de

Page 2: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

2

apoyo de la Institución. En la figura 2.1 se pueden observar los módulos que

conforman al sistema de Magix.

Todos los módulos de Magix-SE están totalmente integrados y dialogan entre

sí, por lo cual permite la posibilidad de aplicar controles cruzados entre los mismos.

Magix es un software que utiliza tecnología de última generación, que gracias

a sus posibilidades de parametrización se adapta fácilmente a diferentes realidades

institucionales.

Algunas de las características de este sistema son:

Es un sistema parametrizable y no empaquetado, características que permiten la

adaptación del sistema a la realidad particular de la organización en las diferentes

áreas que la conforman.

Se adapta a diferentes realidades, por lo que los costos de implantación y

adaptación son bajos, al igual que los costos de mantenimiento.

La integración de información y definición de flujos eficientes de trabajo permite

también que la organización reduzca sus costos de operación.

La amigabilidad de sus pantallas permite que los usuarios se adapten fácilmente,

obteniendo altos niveles de satisfacción.

2.1 Módulos de Magix SE

http://www.magix.com.uy/index.php?option=com_content&view=article&id=64&Itemid=28

Page 3: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

3

2.1.2 SOFTAULA

[2]Es una plataforma que está enfocada a la gestión de escuelas y centros

educativos. Ofrece diversas herramientas que permiten a las empresas gestionar

sus procesos de una manera fácil y eficiente.

[3]Una de las herramientas que ofrece es AKAUD la cual está dirigida a las

pequeñas y medianas empresas. Es fácil de aprender y utilizar, además de que

permite un proceso de gestión en la nube. Algunas de las funciones con las que

cuenta son:

Matriculación flexible.

Mensajes automáticos.

Gestión económica.

Informes y estadísticas.

2.2 Vista de aKaud

https://www.akaud.com/#iLightbox[box2]/2

SOFTAULA ofrece otras herramientas como SoftMoodle que sirve para

construir tu propia plataforma de aprendizaje, SoftMailchimp que sirve para crear

campañas de email marketing más efectivas con Mailchimp y sincronizar todas tus

listas de suscriptores,SoftCampus que ofrece diversos servicio a profesores y

alumnos y EstudiPlan que Canaliza y Optimiza la comunicación entre tus alumnos,

familias y docentes, desde tu móvil o tableta.

Page 4: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

4

2.1.3 Sistema Integral de Información Académica y Administrativa (SIIAA)

Universidad Politécnica de Sinaloa

Este ERP es de gran ayuda para el personal de la universidad donde se

utiliza, debido a que proporciona a los alumnos una herramienta en la cual puede

consultar sus horarios, calificaciones, su asesor asignado, solicitar ciertos

documentos, subir ciertos trabajos que les solicitan, observar sus pagos realizados,

descargar fichas de pago, entre otras cosas.

Por otro lado permite a los profesores y demás usuarios que no son alumnos

el realizar ciertos procesos de una manera más sencilla y que la información

necesaria sea guardada correctamente y pueda ser posteriormente consultada

cuando se le necesite. Entre estos procesos por mencionar algunos se encuentran

calificar a los alumnos, escribir reportes sobre las acciones del alumnado, consultar

a los alumnos inscritos, en caso de ser asesor o director proporciona un medio por el

cual poder mandar ciertas notificaciones al alumnado, etc.

El SIIAA es una herramienta confiable, eficiente, fácil de aprender y de utilizar

para sus usuarios. Además de que permite unificar todos los procesos de las

diversas áreas que conforman a la universidad.

Se puede observar en la figura 2.3 un ejemplo de cómo se ve el apartado del

login que maneja el SIIAA.

2.3 Vista del SIIAA

http://www.upsin.edu.mx/siiaa

2.1.4 Eduscore

Este es el ERP que se está desarrollando en el proyecto, al igual que el SIIAA

por el momento su uso está dirigido a la universidad en la que se está desarrollando.

Page 5: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

5

Eduscore cuenta con una interfaz amigable para el usuario, es fácil de

aprender y utilizar, actualmente sigue en desarrollo, pero ya cuenta con diversos

módulos que apoyan a las diversas áreas de la universidad en la que se desarrolla.

Eduscore permite que el alumnado pueda verificar el estado de sus pagos,

que puedan descargar las facturas de sus pagos en cualquier momento, además

que les manda un correo con las facturas en cuanto se verifican sus pagos.

Eduscore ofrece herramientas a la universidad para la gestión del alumnado y

de las finanzas, así como también para la generación horarios y un chat entre sus

usuarios. Esto ayuda a la gestión de los recursos de la universidad.

2.4 Login del sistema Eduscore.

https://www.eduscore.net/

A continuación, se mencionan las diferencias entre los diferentes ERP

mencionados.

Lo principal que diferencia tanto a Magix ERP y SOFTAULA es que su uso es

comercial y no solo están enfocadas en una sola universidad, y por el contrario el

SIIAA y Eduscore se enfocan solo a la universidad donde se desarrolló por el

momento.

SOFTAULA está enfocada en pequeñas y medianas empresas, y permite un

proceso de gestión en la nube.

Lo que diferencia a Eduscore de los demás ERP es que no solo permite un

eficiente manejo de los procesos e información, sino que además permite que los

usuarios sean notificados de las cosas que tienen que ver con ellos, como en el caso

Page 6: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

6

de los alumnos pueden ver sus pagos y descargar sus facturas en cualquier

momento.

En esta sección además se describirán algunos conceptos claves para

entender el contenido del estado de arte.

Estos conceptos son los siguientes:

2.2 Conceptos utilizados en el proyecto.

2.2.1 ERP:

[4]ERP significa Enterprise Resource Planning o Planificación de Recursos

Empresariales en español.

Los ERP son sistemas que ayudan en la gestión de los procesos en las

empresas y ayuda a controlar su inventario o stock. A menos de que hayan sido

diseñados para ello, el uso de un ERP no está limitado a solo una empresa.

Las empresas que cuentan con algún sistema ERP tienen ventaja sobre las

que no cuentan con uno de estos sistemas, debido a que las empresas usuarias de

ERP pueden controlar mejor sus procesos, lo que permite que reduzcan gastos de

operación.

Los ERP pueden ser aplicaciones para escritorio o sistemas en la nube.

En la figura 2.5 se pueden observar palabras que se relacionan con la palabra

ERP.

2.5 Palabras relacionadas con un ERP

http://interselec.blogspot.mx/2015/04/la-historia-del-erp-enterprise-resource.html

Page 7: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

7

2.2.2 Computación en la nube.

[5]El RAD Lab de la Universidad de Berkeley dice que "La computación en la nube

se refiere tanto a las aplicaciones entregadas como servicio a través de Internet,

como el hardware o el software de los centros de datos que proporcionan estos

servicios". Algunos ejemplos de computación en la nube son Google Drive, Dropbox,

Youtube o Netflix.

Las personas pueden acceder fácilmente a la tecnología basada en la nube

debido a que solo se necesita una conexión a internet para poder acceder a ella.

En la figura 2.6 se puede observar como es la composición de la nube.

2.6 Composición de la nube.

https://es.wikipedia.org/wiki/Computaci%C3%B3n_en_la_nube

2.2.3 Metodología

[6] Se define como metodología al conjunto de procedimientos o mecanismos que se

emplean para lograr una meta u objetivo.

La palabra metodología suele estar relacionada con ciencia, pero también es

aplicada otras áreas como en la educativa.

Hay diferentes tipos de metodologías entre ellas se encuentran la didáctica,

jurídica, software, del conocimiento, científica, de la historia, etc.

En desarrollo de software una metodología hace referencia al conjunto de

herramientas y técnicas empleados para el desarrollo de un software de calidad,

algunas metodologías para el desarrollo de software son la metodología XP

(programación extrema) y la metodología Scrum.

Page 8: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

8

En la figura 2.7 se pueden observar conceptos relacionados con la

metodología.

2.7 Conceptos relacionados con la palabra metodología.

http://manualdelinvestigador.blogspot.mx/2015/02/metodologia-de-la-investigacion-los.html

2.2.4 Recursos de la empresa.

El usuario de SlideShare ponceguillermo71 [7] en sus diapositivas dice que los

recursos "Son todos aquellos elementos que se requieren para que una empresa

pueda lograr sus objetivos", además de clasificar estos recursos en humanos,

financieros, materiales y técnicos o tecnológicos.

Los recursos humanos se refieren a todas las personas que desempeñan

alguna función en la empresa sin importar en que jerarquía estén, estos pueden ser

conserjes, directores, secretarias, obreros, técnicos, etc.

Los recursos financieros son los recursos de carácter monetario y económico

que la empresa requiere para el desarrollo de sus actividades, como el dinero en

efectivo.

Los recursos materiales son aquellos que son tangibles y son propiedad de la

empresa como instalaciones y materia prima.

Y por último los recursos técnicos o tecnológicos son las herramientas e

instrumentos que ayudan en la coordinación de los demás recursos.

Page 9: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

9

En la figura 2.8 se puede observar otro tipo de organización de los recursos

de las empresas.

2.8 Tipos de recursos en las empresas

http://proyectoadmonbbc.blogspot.mx/2015/03/los-tipos-de-recursos-de-une-empresa.html

2.2.5 HTML 5

[8]Es un lenguaje markup usado para estructurar y presentar el contenido para la

web lo que lo diferencia de sus predecesores es que HTML 5 cuenta con nuevos

elementos que se adecuan mejor con los tiempos actuales, entre estos elementos se

encuentran aquellos que permiten la inserción de multimedia en los sitios web.

Otra de las ventajas que ofrece HTML 5 es la reducción en el uso de plugins

que son necesarios para ver determinados sitios web un ejemplo de ello es el Adobe

Flash, además de que ofrece la misma funcionalidad que sus predecesores, pero

consumiendo menos recursos.

Una característica que le dio popularidad a HTML 5 es que los usuarios

pueden acceder a sitios web de manera offline, es decir, sin estar conectados a

internet, además de que introdujo nuevas etiquetas como el header, el footer y dos

de las más importantes de HTML 5 audio y video las cuales son las etiquetas que

nos permiten acceder a contenido multimedia de una forma simple y en casi

cualquier dispositivo.

Otra etiqueta importante que trae consigo HTML 5 es la etiqueta canvas que

permite el poder dibujar gráficos por vectores en un sitio web.

Page 10: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

10

En la figura 2.9 se puede observar el logo de HTML 5.

2.9 Logo de HTML 5

https://hipertextual.com/archivo/2013/05/entendiendo-html5-guia-para-principiantes/

2.2.6 Parametrización

[9]Se refiere a la organización y estandarización de la información que se ingresa en

un sistema.

Cuando se habla de un diseño parametrizable, se habla de cualquier tipo de

aplicación que es creada para ser flexible, es decir, que puede modificarse sin

necesidad de reescribirse.

El grado en el que una aplicación se puede parametrizar depende mucho del

entorno en el que se está desarrollando y de la creatividad del desarrollador.

2.2.7 Base de datos

Según el trabajo de Damián Pérez Valdés [10] el término de base de datos se

escuchó por primera vez en 1963 y se puede definir como un conjunto de

información relacionada que se encuentra agrupada o estructurada.

Las bases de datos o BD se componen de una o más tablas que guardan un

grupo de datos, además cada tabla se compone por columnas y filas. Las columnas

guardan información sobre cada elemento que se quiere guardar en una tabla y

cada fila de una tabla representa un registro.

Page 11: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

11

Otra forma de definir a las bases de datos es como una serie de datos

organizados y que están relacionados entre sí, los cuales son recolectados y

utilizados por algún sistema de información de una empresa o negocio.

2.10 Ejemplo de clientes recuperando información de la base de datos

http://queesel.info/que-es-una-base-de-datos-memoria-de-almacenamiento/

Al momento de diseñar una base de datos se hace uso de modelos de bases

de datos, los cuales describen la forma en la que una base de datos almacena y el

cómo recupera la información guardada en ella. Algunos de los modelos más

utilizados son [11]:

2.2.7.1 Bases de datos jerárquicas

Como su nombre lo indica se almacena la información mediante una estructura

jerárquica en forma de árbol visto al revés y que se basa en nodos, en los cuales

siempre hay un nodo raíz el cual tiene nodos hijos que a su vez pueden hijos.

Su mayor desventaja es la incapacidad de representar eficientemente la

redundancia de datos. En la imagen 2.11 se puede observar cómo sería un ejemplo

de este tipo de modelo de base de datos.

Los nodos como regla pueden tener más de un padre esto es lo que causa el

problema de la redundancia de datos.

En este modelo es muy importante definir las relaciones que se tendrán en los

nodos (padre e hijos).

Page 12: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

12

2.11 Ejemplo de una estructura jerárquica en las bases de datos.

http://www.monografias.com/trabajos59/administracion-diseno-db/administracion-diseno-db2.shtml

2.2.7.2 Base de datos de red

Se parece al modelo jerárquico de las bases de datos, pero es ligeramente distinto,

su principal diferencia con el modelo jerárquico es que su manejo de los nodos

permite que los nodos tengan varios padres, este nuevo manejo permite arreglar el

problema del modelo jerárquico con la redundancia de datos.

Pero en este modelo es muy difícil administrar la información por lo cual suele

ser utilizado por programadores en vez de ser utilizado por usuarios finales.

En la figura 2.12 se puede apreciar un ejemplo de la estructura de una base

de datos de red.

2.12 Ejemplo de una base de datos de red.

http://www.monografias.com/trabajos59/administracion-diseno-db/administracion-diseno-db2.shtml

Page 13: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

13

2.2.7.3 Base de datos relacionales

Este modelo es el más usado en la actualidad, ya que es muy útil para modelar

problemas reales y administrar datos de forma dinámica.

Este modulo se basa en el uso de relaciones que desde un punto de vista

lógico son un conjunto de datos llamados tuplas. Las filas de una tabla (registros)

representan a las tuplas y las columnas de la tabla representan los campos.

En este modelo no se toma importancia a la manera en que se almacenan los

datos, a diferencia de otros modelos como el jerárquico y el de red, esto le da como

ventaja el ser mas fácil de entender para la mayoría de los usuarios de la base de

datos. Para poder almacenar o recuperar información se utilizan consultas, las

cuales ofrecen flexibilidad y poder para administrar la información.

El lenguaje más utilizado para la construcción de consultas es el SQL. En la

figura 2.13 se puede observa la estructura de las bases de datos relacionales.

2.13 Ejemplo de la estructura de una base de datos relacional.

http://www.monografias.com/trabajos59/administracion-diseno-db/administracion-diseno-db2.shtml

2.2.8 Sistema de Gestión de Base de Datos (SGBD)

Para poder administrar una base de datos se necesita el uso de un Sistema de

Gestión de Base de Datos o SGBD el cual es un tipo de software que sirve como

interfaz entre la base de datos, los usuarios y las aplicaciones que utilizan la base de

datos. [10]

Algunos ejemplos de SGBD son [12] MySQL, Oracle, Microsoft SQL Server,

Microsoft Access, etc.

2.2.8.1 MySQL

[13]Es un sistema de administración de base de datos y es el más popular entre los

servidores de bases de datos relacionales. Este sistema ofrece alta velocidad al

Page 14: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

14

realizar operaciones y un bajo costo de requerimientos para la elaboración de base

de datos.

[12]Entre sus desventajas podemos encontrar que no es intuitivo como otros

programas como por ejemplo Access y que una gran parte de sus utilidades no

están documentadas.

MySQL es Open Source lo que significa que cualquier persona puede

utilizarlo sin necesidad de pagar por él, aunque también se puede dar el caso en que

una empresa tenga que pagar por el uso de MySQL. Esta desarrollado en su

mayoría en ANSI C.

Usualmente para utilizar MySQL se utiliza la herramienta SQLyog.

En la figura 2.14 se puede observar el logo representativo de MySQL.

2.14 Logo de MySQL

http://www.definicionabc.com/tecnologia/mysql.pp

SQLyog

[14] SQLyog es una herramienta que se usa para la gestión de bases de datos de

MySQL, su interfaz gráfica es muy sencilla de usar y cuenta con un generador de

consultas cuando necesites realizar una consulta básica como viene siendo

recuperar información, insertar nueva información, actualizar la información o

eliminar información.

Además de que te permite copiar tablas completas o solo su estructura entre

bases de datos de una forma sencilla solo dando ciertos clics. También te ofrece una

forma de exportar la información que recuperaste por medio de consultas en

diversos formatos como son xml, xls, csv, sql y html.

Page 15: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

15

SQLyog es gratuito, es decir, que cualquier persona puede descargar y

utilizar esta herramienta sin ningún costo, aunque además existe la posibilidad de

pagar por ciertas licencias que ofrecen mas utilidades dependiendo de la licencia

adquirida, pero es funcional en su versión gratuita.

Una desventaja es que no es multiplataforma y solo puede ser usado por

usuarios de Windows o puede ser emulado en Linux por medio del programa WINE.

En la figura 2.15 se puede observar el logo de SQLyog.

2.15 Logo de SQLyog

https://docenciainformatica2015.wordpress.com/2016/07/16/sqlyog-enterprice/

2.2.8.2 Oracle

[15] Según el David Masip Oracle es básicamente una herramienta cliente/servidor

para la gestión de base de datos. Esta herramienta se vende a nivel mundial, pero a

consecuencia de su elevado precio solo es usado por empresas que son muy

grandes y multinacionales.

Debido a que solo muy grandes empresas usan Oracle en el desarrollo de

páginas web no es tan usado como otros SGBD como por ejemplo Access, MySQL,

SQL Server, etc. Sin embargo Oracle es considerado como uno de los sistemas de

base de datos más completos [12] debido a que tiene un gran soporte de

transacciones, es muy estable y es multiplataforma.

Si se desea utilizar Oracle es necesaria la herramienta servidor Oracle 8i y las

herramientas de desarrollo Oracle Designer y Oracle Developer.

En la figura 2.16 se puede observar el logo de Oracle.

Page 16: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

16

2.16 Logo de Oracle

http://logo-share.blogspot.mx/2013/11/oracle-logo.html

El lenguaje utilizado para desarrollar en Oracle es PL/SQL, el cual es un

lenguaje de 5a generación que es potente para gestionar bases de datos, además

por norma al momento de usar formularios se utiliza el lenguaje SQL.

Oracle Developer

[16]Es una herramienta gratuita que proporciona Oracle que sirve para desarrollar,

generar y ejecutar consultas SQL en bases de datos Oracle para así eliminar la

necesidad de recurrir a herramientas de terceros para poder manipular las bases de

datos de Oracle.

En sus últimas versiones se agregaron varias mejoras entre ellas la

posibilidad de conectarse con bases de datos que no sean de Oracle como es el

caso MySQL, SQL Server o Access.

Para poder conectarse a bases de datos como MySQL y Access se hace la

conexión a través de JDBC. Cuando se establece la conexión es posible explorar los

objetos de estas bases de datos como si fueran de Oracle, como también se puede

ejecutar consultas SQL sobre ellas, pero la desventaja es que ciertas

funcionalidades más avanzadas estarán mucho más limitadas.

[17]Esta herramienta es muy útil, ya que mejora la productividad y simplifica

las tareas de desarrollo para las bases de datos que usan Oracle, algunas de las

funciones que ofrece son navegación, edición y creación de objetos de base de

datos Oracle, ejecutar sentencias SQL, etc.

En la figura 2.17 se puede observar el logo de Oracle Developer.

Page 17: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

17

2.17 Logo de Oracle Developer

http://www.devshed.com/c/a/oracle/how-to-use-the-oracle-sql-developer-tool/

Oracle Designer

[18] Oracle Designer es una herramienta de Oracle para el modelado y se usa para

representar necesidades de negocios, esta herramienta incluye soporte para el

análisis de sistemas, el diseño de software, generación automática de código y la

reingeniería de procesos de negocios.

Esta herramienta también es conocida como Oracle Case u Designer/2000,

esta herramienta proporciona una plataforma de trabajo que cuenta con diversas

herramientas que ayudan a analistas de aplicaciones de computadora y diseñadores

a crear diagramas directamente en la computadora, para después actualizar la

herramienta CASE Dictionary con la cual trabaja en conjunto.

2.18 Vista de la herramienta Oracle Designer o Designer/2000

http://www.prenhall.com/oracle/tutorial/lesson5/page1.html

Page 18: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

18

Case Dictionary

Esta herramienta funciona como un repositorio que se comparte con varios usuarios

el cual contiene los artículos relacionados con el proyecto de desarrollo de

aplicaciones.

Esta herramienta se puede combinar con la herramienta Oracle Designer la

cual actualiza el Case Dictionary cuando una persona realiza algún diagrama para

compartirlo así con las demás personas interesadas con el proyecto en que estén

trabajando.

PL/SQL

Según el sitio web del baúl del programador el PL/SQL o

ProceduralLanguage/Structured Query Language por sus siglas en ingles apareció

por primera vez en la versión 6 de Oracle en 1988, y su función es ampliar el

lenguaje SQL con los elementos característicos de los lenguajes de programación

como viene siendo las variables, sentencias de control de flujo, bucles, etc.

Este lenguaje es proporcionado por Oracle para extender al lenguaje SQL

con otro tipo de instrucciones. PL/SQL permite realizar programas en conjunto con

otras herramientas de Oracle como viene siendo Oracle Forms, Oracle Reports,

Oracle Graphics y Oracle Aplication Server.

Como en todos los lenguajes de programación es necesario conocer los

fundamentos para poder utilizar este lenguaje, algunas de sus características es que

no diferencia mayúsculas y minúsculas.

En la figura 2.19 se puede apreciar el logo del lenguaje PL/SQL.

2.19 Logo de PL/SQL

http://soytaquero.com/2013/05/28/recorrer-plsql-consulta-oracle-cursor/

Page 19: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

19

2.2.9 SQL

[20]Según el sitio web de desarrolloweb.com SQL es un lenguaje común que sirve

para comunicarse con las bases de datos y es un estándar para todas las bases de

datos.

Este lenguaje es muy importante debido a que existe una gran variedad de

lenguajes y tipos de bases de datos (Oracle, MySQL, etc.) por ello es necesario un

lenguaje intermedio entre ellos que pueda ser usado en combinación con cualquier

lenguaje (ASP o PHP) y tipo de base de datos.

Este lenguaje a pesar de ser un estándar en todas las bases de datos no es

idéntico en todas ellas, debido a que ciertas bases de datos tienen sus propias

funciones que no funcionan en las demás bases de datos.

Ofrece diversas funciones útiles para el manejo de bases de datos, entre ellos

están:

-La función SELECT, la cual se encarga de seleccionar determinada información de

las tablas que están en una base de datos.

-La función CREATE, la cual se encargar de crear bases de datos, tablas, vistas y

procedimientos almacenados.

-La función ALTER, modifica tablas, triggers y demás objetos de datos.

-La función DROP elimina tablas, triggers, vistas, bases de datos, etc.

2.20 Logo del lenguaje SQL

http://www.yottahack.net/blog/structured-query-la-what/

Page 20: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

20

2.2.10 Framework

[24]Sebastián Córdoba define a un framework como "un conjunto de herramientas, la

cuales nos permiten trabajar de forma sencilla, y que la mayoría de las veces

podemos reutilizar en otros proyectos".

La traducción literal de framework seria que es un marco de trabajo, esto

quiere decir, que nos brinda la estructura base para trabajar y nosotros solo nos

debemos adecuar a ella.

Es muy útil usar algún framework cuando se desarrolla un proyecto debido a

que para empezar nos brinda la estructura base lo cual nos permite reutilizar código,

y de este modo no hacer tan pesado el proyecto con tantas líneas de código.

Un framework puede estar enfocado tanto en el diseño como también en el

desarrollo web.

Cuando hay más de un programador en un proyecto suele existir la

problemática de que los estilos de codificación de cada programador es diferente y

cuando alguno de ellos trata de interpretar lo que quiere hacer o lo que hizo otro

programador necesitan mucho tiempo para comprenderlo, debido a que en muchas

ocasiones los estilos de programación difieren mucho entre los programadores. Esta

problemática se minimiza con el uso de un framework, ya que a pesar de que sus

estilos de programar sean diferentes ambos deben seguir la misma estructura, lo

cual facilita el proceso de interpretación del código de otro programador.

Existen muchos frameworks en el mundo y algunos de ellos son:

Bootstrap que es un framework para el css.

Angular Js que es un framework de JavaScript.

CodeIgniter que es un framework para el desarrollo web.

2.21 Ejemplos de framework

http://www.emprenderalia.com/deberias-usar-un-framework-para-tu-proyecto-web/

Page 21: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

21

2.2.11 Trello

Luis Carlos define a Trello como [25] "un gestor de tareas que permite el trabajo de

forma colaborativa mediante tableros (board) compuestos de columnas (llamadas

listas) que representan distintos estados".

Trello puede considerarse una herramienta para la administración de las

tareas, ya sea de un proyecto personal o de un proyecto grupal.

Trello se parece a un panel de tareas debido a que se pueden dividir las

tareas en el en pendientes por hacer, en las que se están haciendo actualmente y

las que ya se han completado.

Con Trello se puede visualizar en que están trabajando los miembros de un

proyecto y que tanto avance llevan de sus tareas.

En Trello se puede acrear una tarea principal que está formada por tareas

más pequeñas las cuales contienen un checkbox que se debe marcar una vez

finalizada esa determinada tarea, al marcarlo te muestro un progreso en porciento

de la tarea principal, el cual tiene un aumento variante dependiendo de cuantas sub

tareas la conformen.

La unidad básica de Trello son las tarjetas las cuales están contenidas en

listas, las que a su vez están contenidas en tableros.

2.22 Ejemplo de cómo se ve Trello

https://prezi.com/dfbp0gxdx-b9/que-es-trello/

Page 22: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

22

2.2.12 PHP

El usuario Christian Van Der Henst S. [26] define a PHP como "un lenguaje

interpretado de alto nivel embebido en páginas HTML y ejecutado en el servidor. El

PHP inicio como una modificación a Perl escrita por Rasmus Lerdorf a finales de

1994. Su primer uso fue el de mantener un control sobre quien visitaba su

Curriculum en su web".

El FAQ de php.net define a PHP como "un lenguaje de script incrustado

dentro del HTML. La mayor parte de su sintaxis ha sido tomada de C, Java y Perl

con algunas características específicas de sí mismo. La meta del lenguaje es

permitir rápidamente a los desarrolladores la generación dinámica de paginas".

Uno de los rasgos más importantes del lenguaje PHP es que tiene soporte

para diferentes bases de datos, entre las cuales podemos encontrar a MySQL,

Oracle y PostgreSQL.

PHP cuenta con una basta documentación de sus funciones donde se explica

que hacen y dan ejemplos de cómo usarlas, esta documentación está disponible en

diferentes idiomas aunque no todo el contenido este traducido para todos los

idiomas.

La página oficial para encontrar la documentación de PHP e información

sobre PHP es php.net.

2.23 Logo de PHP

https://programarenphp.wordpress.com/page/2/

Page 23: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

23

2.2.13 CodeIgniter

El usuario Miguel Ángel Álvarez [27] define a CodeIgniter como "un programa o

aplicación web desarrollada en PHP para la creación de cualquier tipo de aplicación

web bajo PHP".

CodeIgniter es de código libre y puede usarse en cualquier aplicación,

además está compuesto por diversas librerías que sirven para el desarrollo de

aplicaciones web.

Este framework implementa el patrón de arquitectura de MVC o Modelo Vista

Controlador, el cual es un estándar para el desarrollo de aplicaciones y que además

funciona no solo para sitios web sino también para programas tradicionales.

2.2.13.1 Características

CodeIngiter tiene diversas características que lo hace popular entre los

desarrolladores, las cuales son:

-Versatilidad

Esta es de las características más importantes de CodeIngiter, debido a que puede

trabajar con la mayor parte de los entornos o servidores, así como también en

sistemas de alojamiento compartido, en los cuales solo se pueden acceder por FTP

para enviar archivos al servidor y no se puede acceder a los archivos de

configuración.

-Compatibilidad

Debido a que CodeIgniter funciones con versiones nuevas y viejas de PHP es

posible usarlo en cualquier servidor, esto incluye algunos de los antiguos.

Este rasgo es importante de resaltar debido a que hay framework que

requieren una versión especifica de PHP para funcionar, por ello no todos los

servidores pueden usar esos framework a menos de que actualicen su PHP a una

versión más nueva que en ciertos casos puede generar problemas con el código ya

escrito, debido a que algunas funciones se quedan obsoletas y se intercambien por

otras.

-Facilidad de instalación

El proceso para instalar este framework es relativamente fácil, lo único que se

necesita es una cuenta de FTP para subir el framework de CodeIgniter al servidor.

Page 24: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

24

Cuando se quiere configurar la cuenta FTP no es necesario utilizar líneas de

comando que no siempre están disponibles, sino que basta con modificar un simple

archivo para hacer la conexión, en este archivo también se encuentra la

configuración para conectarse a un base de datos.

-Flexibilidad

El framework de CodeIgniter es menos rígido que otros frameworks, debido a que

define una manera específica de trabajar, pero es posible seguirlas o no sin que

haya problemas. También tiene ciertas reglas de codificación que en muchos casos

se pueden saltar para buscar la forma más cómoda de trabajar.

Debido a esta característica el aprendizaje de este framework es

relativamente fácil desde el principio.

-Ligereza

El núcleo que conforma al framework de CodeIgniter es bastante ligero esto ayuda a

que el servidor no consuma muchos recursos en interpretar y ejecutar grandes

porciones de código.

Además se cuenta con la ventaja de que los módulos y clases que trae

consigo este framework no se cargan solos, se puede seleccionar cuales se quieren

cargar para ser utilizados y los demás no son cargados hasta que el desarrollador lo

indique.

-Documentación tutorializada

CodeIgniter cuenta con una buena documentación que es relativamente fácil de

entender debido a que fue redactada en forma de tutorial.

2.24 Logo de CodeIgniter

http://programaenlinea.net/codeigniter/

Page 25: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

25

2.3 Metodologías útiles para el proyecto en desarrollo

2.3.1 Metodología XP

[21] En su trabajo el usuario Piskamen de SlideShare explica que "la programación

extrema o Xtreme Programming (XP) es un enfoque de la ingeniería de software

formulado por Kent Beck".

Esta metodología es de los procesos agiles más destacados en el desarrollo

de software, en esta metodología en vez de hacer el proceso de planeación, análisis

y diseño antes de empezar el desarrollo, todo esto se va haciendo un poco a lo largo

del proceso.

Esta metodología se basa en la prueba y error en el proceso de desarrollo de

software para obtener un producto funcional. Además el cliente participa muy

activamente en esta metodología.

Se suele trabajar con grupos pequeños de entre 2 a 12 personas, el grupo

usualmente se trabaja en parejas, es decir, la cantidad de integrantes deben ser

múltiplos de 2 hasta un máximo de 6 parejas. Los requisitos pueden ser cambiados y

se fundamenta en principios los cuales son conocidos también como valores y son 4.

2.3.1.1 Principios de la metodología XP

Los 4 principios de la metodología XP son:

Simplicidad

El cual se refiere a solo desarrollar lo que se necesita, es decir, que el producto

cumpla con las necesidades actuales del cliente.

Feedback:

Se refiere a entregas continuas que reciben una retroalimentación por parte de los

clientes para que se hagan mejoras al producto en desarrollo y detectar problemas o

desviaciones de lo que debe satisfacer el producto.

Decisión

Se refiere a la capacidad de tomar decisiones difíciles, reparar los errores cuando se

detectan y mejorar el código después del feedback.

Comunicación

Se refiere a mantener una comunicación continua y directa entre clientes y

desarrolladores.

Page 26: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

26

2.3.1.2 Practicas derivadas de la metodología XP

Existen diversas prácticas derivadas de esta metodología y en total son 12,

estas prácticas son:

-Equipo completo

Esta práctica propone que todas las personas que tienen algo que ver con el

proyecto en desarrollo forman parte del equipo, esto incluye tanto al cliente como al

responsable del proyecto, no solo a los desarrolladores.

-Planificación

Aquí se define en qué orden se desarrollara cada versión que revisara el cliente para

la retroalimentación, esta práctica se revisa continuamente.

-Test del cliente

En esta práctica el cliente colabora con los desarrolladores del proyecto para

proponer pruebas que sirvan para validar las versiones que se le van entregando a

lo largo del desarrollo.

-Versiones pequeñas

Esta práctica es sobre ir realizando lo que se conoce como mini-versiones, estas

mini-versiones son avances del producto en desarrollo que se van entregando cada

cierto al cliente para que pueda revisar cómo está avanzando el proyecto y así

detectar problemas para que sean corregidos rápidamente. Las mini-versiones

deben ofrecer algo nuevo y funcional al cliente para que pueda inspeccionar el

avance del proyecto.

Un aspecto importante de las mini-versiones es que su tamaño debe ser

regulado lo suficiente para que cada cierto tiempo se le pueda hacer una entrega al

cliente, casi siempre es un periodo de pocas semanas entre cada entrega.

-Diseño simple

Esta práctica es sobre mantener todo simple durante el desarrollo del proyecto,

siempre enfocándose en hacer lo mínimo imprescindible.

-Pareja de programadores

En esta práctica los desarrolladores (programadores) trabajan en parejas en un

mismo ordenador, estas parejas son dinámicas y cambian constantemente.

-Desarrollo guiado por las pruebas automáticas

En esta práctica se necesitan realizar programas que hagan pruebas automáticas al

producto en desarrollo de manera continua. Entre más tipos de pruebas se hagan al

producto mejor.

Page 27: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

27

-Integración continua

En esta práctica es muy importante siempre tener una versión funcional del producto

y en cuanto se termine una nueva funcionalidad se debe integrar a dicha versión y

hacer pruebas. Algo que no se debe de hacer es mantener una versión congelada

durante mucho tiempo, mientras se hacen nuevas funcionalidades y después de

tener varias funcionalidades, tratar de integrarlas todas al mismo tiempo.

-El código es de todos

Según esta práctica cualquier miembro del equipo tiene el derecho y obligación de

modificar y conocer cualquier parte del código, no deben existir problemas debido a

que se deben hacer constantemente pruebas automáticas.

-Normas de codificación

Según esta práctica los programadores que participan en el desarrollo deben usar el

mismo estilo de programación, sin importar cual se elija solo deben coincidir su

forma de programar de tal manera que parezca que solo una persona realizo la

codificación.

-Metáforas

En esta práctica se busca definir las partes que componen al programa por medio de

frases o palabras que con solo verlas den una idea general de que es lo que hace

cada parte del programa.

-Ritmo sostenible

En esta práctica se debe definir un ritmo de trabajo que evite los días muertos que

es cuando no se sabe que hacer o el exceso de horas en ciertos días por falta de

tiempo. Se debe definir el ritmo de tal manera para conseguir la terminación de las

mini-versiones.

Esta metodología ofrece varias ventajas como una baja tasa de errores

debido a las series de pruebas que se realizan constantemente, se puede aplicar a

cualquier lenguaje de programación, el cliente participa bastante en el proyecto y

define cuales serán las prioridades, la programación que se hace es muy

estructurada y facilita que el cliente cambie los requerimientos.

Pero como todo tiene sus inconvenientes como el que se recomiendo usarlo

para proyectos de corto plazo, además de existir casos en que es más fácil usar el

desarrollo tradicional que emplear esta metodología.

Page 28: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

28

2.25 Ejemplo del ciclo de vida de un proyecto con la metodología de XP

http://slideplayer.es/slide/2273638/

En el siguiente esquema se puede observar información sobre la metodología

XP resumida.

2.26 Esquema sobre la metodología XP

http://angelmedina26.blogspot.mx/

2.3.2 Metodología Scrum

Walter Lara en su trabajo en la página Platzi [22] describe a Scrum como "un

framework para trabajar en equipo en una serie de interacciones".

Page 29: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

29

2.3.2.1 Fases de Scrum

La metodología Scrum cuenta con 3 fases las cuales son:

1-El ¿Quien? y el ¿Qué?

En esta fase se definen los roles y responsabilidades de los involucrados en el

proyecto.

Roles de Scrum

Existen 3 roles en esta fase los cuales son:

Product Owner

Conocido como Dueño del producto en español, esta persona es la voz del

cliente y sus responsabilidades son desarrollar, mantener y priorizar las

tareas en el backlog. Un backlog es la lista de pendientes del proyecto.

Scrum Master

Es el responsable de asegurarse que todo el trabajo sigue las bases de la

metodología Scrum, además de buscar y eliminar obstáculos con los que se

encuentre el equipo de trabajo.

Los Development Team Members

También conocidos miembros del equipo de desarrollo, los cuales son los

encargados de la codificación tanto la escritura como las pruebas.

2.27 Roles de Scrum

https://platzi.com/blog/guia-scrum/

Page 30: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

30

2.-El Sprint - ¿Dónde? y ¿Cuándo?

En la metodología Scrum un sprint es la unidad básica de trabajo para el equipo de

trabajo. Un sprint es la principal característica que diferencia a Scrum de otras

metodologías.

Walter Lara define a un sprint como "una simple iteración llevada a cabo por

los miembros del equipo". Un proyecto puede tener diversos sprint durante su

desarrollo, los cuales deben ser completados por los miembros del equipo.

Un sprint empieza desde el momento en que un equipo se compromete con

un trabajo y finaliza con la entrega del objetivo del sprint. El tiempo mínimo para

completar un sprint es una semana y el máximo es de 4 semanas.

Scrum Events

Durante el desarrollo de un sprint ocurren ciertos eventos conocidos como

Scrum Events o Eventos Scrum, estos eventos son 5 en total y son:

1- Planeamiento del Sprint/Sprint Planning

Todos los miembros del equipo de Scrum se reúnen en este evento para planificar el

sprint, esto incluye definir las tareas que deberá hacer cada miembro del equipo.

Para definir el tiempo que debe durar el sprint se le pregunta a cada miembro

cuanto tiempo cree conveniente asignar a sus tareas asignadas.

2- Reunión de Equipo de Scrum/Scrum team meeting

El equipo se reúne todos los días a la misma hora y en el mismo lugar por un tiempo

máximo de 15 minutos, durante este tiempo cada miembro debe decir que fue lo que

hizo el día anterior, que planea hacer hoy y que problemas tuvo al realizar sus

actividades.

Una de las finalidades de estas reuniones diarias es que los miembros del

equipo se apoyen entre ellos cuando se encuentran con alguna dificultad que

provoque que el cumplimiento de la tarea tome más tiempo del esperado.

3- Refinamiento del Backlog/Backlog Refinement

En esta parte el dueño del producto verifica la lista de pendientes, esto con el fin de

aclarar las dudas que el equipo de desarrolladores puedan tener. Esto también sirve

para volver estimar el tiempo asignado para las tareas pendientes y cuanto esfuerzo

se debe enfocar en cada una de las tareas.

Page 31: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

31

4- Revisión del Sprint/Sprint Review

Los clientes y los miembros del equipo se reúnen para poder revisar el avance del

proyecto, es decir, que tareas o pendientes se han completado a ese momento, en

esta reunión no es necesario que los miembros del equipo hablen, debido a que la

reunión está a cargo del dueño del producto y el Scrum master.

5- Retrospectiva del Sprint/Retrospective

En esta parte el dueño del producto se reúne con los miembros del equipo y el

Scrum master para así hablar sobre el desarrollo del sprint, esto incluye que cosas

se hicieron bien, que cosas se hicieron mal y que problemas surgieron que causaron

un retraso en el desarrollo del sprint.

En la figura 2.28 se puede observar el ciclo de vida de un sprint.

2.28 Ciclo de vida de un sprint

https://platzi.com/blog/guia-scrum/

3. Herramientas Scrum – ¿Por qué? ¿Cómo?

Scrum provee herramientas para lograr responder estas preguntas, estas

herramientas son:

-Backlog del producto / Product Backlog

Se refiere a todos los elementos que envuelven al proyecto, entre estos elementos

están los bugs, alguna parte de un requerimiento o alguna referencia.

Page 32: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

32

Los backlogs del producto brindan información muy general sobre el proyecto,

por ello no se consideran como requerimientos oficiales del proyecto. El backlog del

producto también es conocido como product backlog.

-Historias de Usuario / User Stories

Las historias del usuario son elementos del backlog del producto. Se les conoce

como historias, porque brindan información sobre como es el comportamiento del

requerimiento que se trabaja, además de proporcionar información del cliente en

caso de que ocurra algún cambio en los requerimientos. Las historias del usuario

también se les conocen como user stories.

Usualmente las historias de los usuarios son consideradas como

requerimientos oficiales, ya que puede existir un cambio solicitado por el cliente y

dicho cambio debe tomarse en cuenta durante el desarrollo del proyecto.

-Backlog del Sprint /Sprint Backlog

Son los elementos del backlog del producto que fueron examinados durante las

reuniones para el planteamiento del sprint, la exanimación se hace con el propósito

de priorizar y medir cada elemento, y de este modo definir qué se debe hacer en el

sprint que está por comenzar.

Los elementos seleccionados junto con las historias del usuario forman los

requerimientos que se deben elaborar en cada sprint del proyecto.

-El panel de Tareas / The taskboard

El panel de tareas es una tabla que contiene información sobre las tareas asignadas

a cada miembro del equipo. La tabla se compone además de tres columnas que

representan que tareas están en espera, cuales tareas están actualmente en

desarrollo y cuales tareas ya se han completado.

Al comienzo de un sprint todas las tareas están en la primera columna que

representa las que están en espera, en cuanto los miembros del equipo seleccionan

la tarea que empezaran a desarrollar se pasa a la segunda columna que representa

cuales se están haciendo en ese momento, esto sirve como información para el

dueño del producto y el Scrum master, los ayuda a conocer que es lo que se está

desarrollando en ese momento y cuanto tiempo llevan invertido en el desarrollos de

esas tareas.

Page 33: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

33

Cuando algún desarrollador finaliza una tarea se pasa a la última columna lo

cual representa que dicha tarea será sometida a pruebas para verificar su correcta

funcionalidad y en caso de que se necesite realizar un cambio, la tarea es movida de

la última columna a la segunda. En la figura 2.29 se puede observar un ejemplo de

un panel de tareas de Scrum.

2.29 Ejemplo de un panel de tareas usado en la metodología Scrum

https://msdn.microsoft.com/es-es/library/jj161049(v=vs.120).aspx

-Definición de Listo / Definition of Done

Cuando se trabaja con Scrum los miembros del equipo deben cumplir con ciertas

normas para poder dar como finalizado un proyecto. Estas reglas son:

1-Todas las tareas han sido completadas.

2-Todo el código fue revisado.

3-Fueron realizadas pruebas para cada elemento desarrollado por los miembros del

equipo.

4-El cliente ha revisado el producto final y verifico que cumpla con todos los

requerimientos solicitados.

Page 34: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

34

5-Se revisa que es necesario para obtener la aceptación del producto por parte del

dueño del producto.

Las herramientas de Scrum son útiles a lo largo del desarrollo del proyecto y

permiten que los miembros del equipo de trabajo conozcan las razones por las

cuales hacen las cosas. Estas herramientas son visibles tanto para los miembros del

equipo de trabajo como para las personas del exterior.

La metodología Scrum puede aplicarse en cualquier proyecto, pero el hecho

de querer aplicar esta metodología requiere que exista un cambio en la forma que se

trabaja por parte de las personas que formarán al equipo de trabajo.

Podrá parecer algo molesto la forma en que se trabaja esta metodología pero

cuando se vean los frutos del trabajo, los miembros del equipo sabrán que todo el

esfuerzo valió la pena.

2.3.3 Comparación entre Scrum y XP

En su trabajo Ángel Medina hace una comparación entre la metodología Scrum y la

metodología XP (Xtreme Programming) [23], en la cual describe semejanzas y

diferencias entre estas dos metodologías y son las siguientes:

-Semejanzas

-Ambas son metodologías de desarrollo agiles.

-Las dos metodologías usan las historias de los usuarios como herramientas.

-El cliente recibe un avance del proyecto cada cierto tiempo, estas entregas se

hacen en periodos cortos de tiempo.

-En ambas metodologías se hacen reuniones entre los miembros del equipo para

verificar los avances en el proyecto.

-Diferencias

-A pesar de que ambas metodologías hacen iteraciones cortas para entregar

avances al cliente cada una lo hace en periodos diferentes a la otra, en la

metodología Scrum se hacen entregas en un periodo entre dos y cuatro semanas,

mientras que en la metodología XP las entregas son en periodos de entre una a tres

semanas.

-Las iteraciones en la metodología Scrum son conocidas como sprints.

-En la metodología Scrum cuando se finaliza algún sprint las tareas completadas y

que hayan recibido el visto bueno por parte del dueño del producto, no se vuelven a

tocar en ningún otro momento del desarrollo del proyecto.

Page 35: Capítulo II Estado del arte. - repositorio.upsin.edu.mx

35

Por otro lado, en la metodología XP las tareas que hayan sido completadas,

entregadas y recibieran el visto bueno por parte del cliente pueden ser modificadas

durante el desarrollo del trabajo.

-En la metodología Scrum los miembros del equipo trabajan de forma individual,

mientras que en la metodología XP los desarrolladores trabaja en pareja, la cual

cambia constantemente a lo largo del desarrollo del proyecto,

-En la metodología Scrum el orden en el cual se van a ir desarrollando las tareas del

proyecto es escogido por los desarrolladores, quienes pueden modificar ese orden

en cualquier momento.

En la metodología XP el orden en el cual se desarrollan las tareas es elegido

por el cliente y los desarrolladores deben seguir dicho orden en todo momento.

-La metodología Scrum se enfoca en la administración del proyecto, mientras que la

metodología XP se enfoca en la creación del producto final.