Subido por Joel Caiza

Marco teórico, metodología y resultados

Anuncio
Marco Teórico
Como consecuencia de la globalización y constante desarrollo y avances tecnológicos,
las empresas dedicadas a la creación, construcción y mantenimiento de Software se ven
obligadas a ofrecer trabajos de calidad que demuestren su competitividad y las mantenga
a flote. Para lograr estos objetivos, las empresas buscan obtener certificaciones de calidad
en la industria que aporte más valor a sus productos, reduzcan costos y tiempos de trabajo
[1].
Con el propósito mejorar la calidad del Software, dentro de la Ingeniería de Software se
han desarrollado modelos y metodologías de procesos de Software que determinan los
pasos a seguir, los posibles inconvenientes y roles del equipo de trabajo que garanticen
un desarrollo óptimo [1].
Estos procesos son un conjunto de técnicas tradicionales, modernas y ágiles de modelado
de sistemas que permiten desarrollar Software con calidad que incluyen aspectos de la
construcción y criterios de comparación de modelos de sistemas [2].
De acuerdo a [2], las metodologías de desarrollo tradicional tienen como objetivo ordenar
el caos del desarrollo de Software que dio como resultado la Crisis del Software. Las
metodologías tradicionales entienden al proyecto en una sola dimensión y con una
estructura definida. Sus procesos son secuenciales y de una sola dirección.
Debido a que el desarrollo de un software no puede estandarizarse por completo, se han
definido múltiples métodos de desarrollo de Software. Estas se clasifican en ágiles y
tradicionales.
Las metodologías de desarrollo ágil responden a las nuevas necesidades del mundo actual
por lo cual, una de las características más importantes de estas metodologías es la
flexibilidad con la que se desarrollan los procesos, la concepción de que los proyectos
pueden ser divididos en proyectos más pequeños, existe una comunicación más directa
con el usuario y sobre todo se adaptan a los cambios [2].
De la misma manera que sucede con los métodos tradicionales, existen múltiples
metodologías ágiles como XP, Scrum, Cristal, FDD, MoProsoft, entre otras.
La metodología XP, Extreme Programming, se caracteriza por la importancia que le da a
las historias, características y funcionalidades que el usuario requiere para el Software.
Esta metodología maneja un proceso conocido como Planning Game en la que el cliente
determina las fechas, características y define las historias de usuario mientras que el
programador establece las características de entrega y el número de iteraciones a realizar.
Una característica que la hace destacar de las demás es que se propone que la
programación sea en parejas y que estas vayan rotando para que el trabajo sea de equipo
y todos tengan el conocimiento de cómo funciona el Software [2].
Además, se menciona que la metodología XP se utiliza de manera dinámica durante el
ciclo de vida del Software. El ciclo de vida de Extreme Programming está compuesta por
seis fases: la exploración en la que los clientes diseñan las historias de usuario, la
planificación de la entrega en la que los programadores establecen los tiempos de entrega
en lo que cumplirán con la historia de cada usuario, las iteraciones en las que se van
mostrando los progresos y requerimientos cumplidos, la producción que trabaja con los
requisitos, pruebas y revisiones de rendimiento, el mantenimiento que se da desde la
primera entrega de la producción y la muerte del proyecto cuando el cliente no tiene más
historias que incluir en el sistema [3].
La metodología Scrum se centra en un trabajo de equipo eficaz, emplea un conjunto de
reglas y define roles que aseguran el correcto funcionamiento del Software [2]. Esta
metodología cuenta con cinco fases: el concepto en que se definen las características del
producto, la especulación en la que se hacen disposiciones con la información obtenida,
se establecen los límites del desarrollo del producto, gastos y agenda, la exploración en
la que se incrementa el producto el que se añaden las funcionalidades, la revisión en la
que el equipo revisa todo lo que se ha construido y el cierre que es la entrega de acuerdo
a la fecha acordada [4].
La metodología Cristal es considerada un conjunto de métodos de desarrollo de Software
que se adecúan a gestionar proyectos y se caracteriza de acuerdo a sus dimensiones,
tamaño, complejidad y criterios de criticidad. La metodología Cristal se caracteriza por
estar orientada a las personas que integran el grupo de trabajo pues son quienes definirán
el éxito o fracaso del proyecto. Las fases de este modelo se adaptan, añade, eliminan o
conjugan pues son una combinación de acuerdo al tipo de Software que se desarrollen.
Además [5] expresa que las fases de la metodología cristal se compone de las
metodologías ágiles y metodologías tradicionales.
De acuerdo a [6], la metodología Crystal cuenta con fases cómo: establecer los
seguimientos imprescindibles del proyecto, verificar las muestras de valor de negocios,
los requerimientos, el modelo del dominio, tecnología, el plan de proyecto y el proceso,
planificación del siguiente incremento, revisiones y monitoreo, aunque desataca que estas
pueden variar.
La metodología FDD, traducida como Desarrollo Basado en Funciones, se enfoca en
dividir un proyecto de software en pequeñas entregas funcionales en cortos periodos de
tiempo [6]. Esta metodología consta de cinco fases: el desarrollo de un modelo general
en el que el equipo de trabajo se divide en grupos más pequeños, construir una lista de
características las cuales son funcionalidad que son evaluadas por el cliente, planear por
características que son ordenadas de acuerdo a su prioridad, diseño por características de
acuerdo a la entrega y la construcción en la que se desarrolla el proyecto por entregas
hasta que se complete [6,7].
La metodología MoProsoft incorpora prácticas que mejoran la gestión e ingeniería de
Software. Está dirigida a al desarrollo y mantenimiento de Software en la pequeña y
mediana industria y a las áreas internas de desarrollo de Software. La metodología
MoProsoft cuenta con nueve procesos que están detallados en tres categorías. La
descripción general que incluye nombre del proceso, categoría, propósito, descripción,
descripción, objetivos, indicadores, metas, responsabilidad y autoridad. La descripción
de prácticas incluye roles y capacitación, actividades, diagramas de flujo, verificaciones,
validaciones, recursos, mediciones y situaciones excepcionales. Y la descripción de guías
de ajuste [8].
La metodología MoProsoft determina el nivel de madurez de la capacidad para cada
proceso verificado en cinco niveles: proceso realizado, administrativo, establecido,
predecible y optimización del proceso [8].Las metodologías tradicionales
Las metodologías de desarrollo de software tradicionales se suelen caracterizan por
definir total y rígidamente los requisitos al inicio de los proyectos de ingeniería de
software.
Los ciclos de desarrollo son poco flexibles y no permiten realizar cambios, al contrario
que las metodologías ágiles; lo que ha propiciado el incremento en el uso de las segundas.
La organización del trabajo de las metodologías tradicionales es lineal, es decir, las etapas
se suceden una tras otra y no se puede empezar la siguiente sin terminar la anterior.
Tampoco se puede volver hacia atrás una vez se ha cambiado de etapa.
Estas metodologías, no se adaptan nada bien a los cambios, y el mundo actual cambia
constantemente.
Las principales metodologías tradicionales o clásicas son:
Waterfall (cascada): es una metodología en la que las etapas se organizan de arriba a
abajo, de ahí el nombre. Se desarrollan las diferentes funciones en etapas diferenciadas y
obedeciendo un riguroso orden. Antes de cada etapa se debe revisar el producto para ver
si está listo para pasar a la siguiente fase. Los requisitos y especificaciones iniciales no
están predispuestos para cambiarse, por lo que no se pueden ver los resultados hasta que
el proyecto ya esté bastante avanzado. [9].
Prototipado: se basa en la construcción de un prototipo de software que se construye
rápidamente para que los usuarios puedan probarlo y aportar feedback. Así, se puede
arreglar lo que está mal e incluir otros requerimientos que puedan surgir. Es un modelo
iterativo que se basa en el método de prueba y error para comprender las especificidades
del producto. [9].
Espiral: es una combinación de los dos modelos anteriores, que añade el concepto de
análisis de riesgo. Se divide en cuatro etapas: planificación, análisis de riesgo, desarrollo
de prototipo y evaluación del cliente. El nombre de esta metodología da nombre a su
funcionamiento, ya que se van procesando las etapas en forma de espiral. Cuanto más
cerca del centro se está, más avanzado está el proyecto. [9].
Incremental: en esta metodología de desarrollo de software se va construyendo el
producto final de manera progresiva. En cada etapa incremental se agrega una nueva
funcionalidad, lo que permite ver resultados de una forma más rápida en comparación
con el modelo en cascada. El software se puede empezar a utilizar incluso antes de que
se complete totalmente y, en general, es mucho más flexible que las demás metodologías.
También tenemos al Diseño rápido de aplicaciones (RAD): esta metodología permite
desarrollar software de alta calidad en un corto periodo de tiempo. Los costes son mucho
más altos y el desarrollo más flexible, aunque requiere una mayor intervención de los
usuarios. Por otro lado, el código puede contener más errores, y sus funciones son
limitadas debido al poco tiempo del que se dispone para desarrollarlas. El objetivo es
iterar el menor número posible de veces para conseguir una aplicación completa de forma
rápida.
Metodología
La metodología se basa en el análisis y comparación de los diferentes métodos de
procesos de Software, destacando sus características, fases, procesos y prioridades de
acuerdo a estudios realizados por otros autores de manera que se puedan resaltar los
diferencias entre cada modelo en el momento de desarrollo de un Software.
Esta investigación es de tipo bibliográfica puesto que recopila información acerca de
distintos trabajos de investigación realizados, para a partir de los mismos generar cuadros
comparativos, tablas y gráficos estadísticos entre los métodos considerados tradicionales
y los métodos ágiles. El tipo de investigación y recopilación de información es cualitativa,
exploratoria y descriptiva puesto que se busca, analiza y describe cada uno de los
métodos.
Este trabajo de investigación recopiló información de fuentes confiables cuyo tema
principal estaba relacionado con los modelos de procesos de Software, principalmente
investigaciones, artículos científicos y monografías debido a su estructura, entendimiento
y desarrollo.
Con este trabajo será posible reconocer las ventajas de un modelo de proceso en
comparación a los otros de su misma categoría, es decir, se podrá identificar la mejor
metodología para poder ponerla en práctica en un futuro proyecto de desarrollo.
El análisis, estudio y recopilación de la información, va dirigido hacia las personas que
encuentran en el entorno del desarrollo de Software. A través de esta investigación se
interesa conocer los parámetros de comparación que mejoren la calidad en el proceso de
desarrollo de Software y así garantizar mejores productos junto a la satisfacción del
cliente.
Para realizar la comparación de los métodos tradicionales y ágiles se van a utilizar las
metodologías tradicionales y ágiles mencionadas en el marco teórico.
Comparación entre métodos ágiles
Los parámetros para la comparación entre los modelos ágiles de desarrollo de Software
están clasificados en categorías a las que corresponden varias variables referentes a las
prioridades, fases y el equipo de trabajo que caracterizan a los modelos señalados en el
marco teórico: XP, Scrum, Cristal FDD y MoProsoft.

Para las prioridades se señalará en si cumple, no cumple o cumple parcialmente.

Para las fases, los datos serán numéricos y cualitativos.

Para el equipo de trabajo se medirá en si cumple, no cumple o cumple
parcialmente y datos numéricos.
Tabla 1. Comparación entre métodos ágiles acerca de sus prioridades
Comparación entre métodos ágiles
Parámetros
Categoría
Métodos
Variable
XP
Participación
del
usuario
final
Iteraciones en
períodos
de
tiempo cortos
Si
cumple
Si
cumple
Scrum
Si cumple
Si cumple
Cristal FDD
Si
Si
cumple cumple
Si
Si
cumple cumple
MoProsoft
No cumple
Si cumple
Prioriza a las
personas
Prioridades (clientes,
Si
Cumple
Si
Si
usuarios) sobre cumple parcialmente cumple cumple
Si cumple
la
documentación
Comunicación
Si
efectiva
cumple
Fácil
adaptación
los cambios
a
Si
cumple
Si cumple
Si cumple
Si
Si
cumple cumple
Si
Si
cumple cumple
Si cumple
Si cumple
Tabla 2. Comparación entre métodos ágiles acerca de sus fases
Comparación entre métodos ágiles
Parámetros
Métodos
Categoría Variable XP
Scrum
Cristal
FDD
MoProsoft
5
5
5
9
Número
de fases- 6
procesos
Fases
Tiempos
máximos 3
por
Determinados Determinados 2
meses por el cliente
por el cliente
Determinados por
semanas el cliente
entrega
Tabla 3. Comparación entre métodos ágiles acerca de sus equipos de trabajo
Comparación entre métodos ágiles
Parámetros
Categoría
Métodos
Variable
Subdivisión
XP
Scrum
Cristal
FDD
Si
Si
Si
cumple
cumple
cumple
No
No
Si
No
cumple
cumple
cumple
cumple
6
3
8
5
en Si
equipos de trabajo cumple
Equipo de
trabajo
Variantes de la
metodología
de
acuerdo al tamaño
Roles en el equipo
de trabajo
MoProsoft
Si cumple
No cumple
5
Comparación entre métodos tradicionales
Cada fase del proceso de desarrollo está debidamente documentada y revisada cuando se
utiliza el enfoque tradicional. [10]
Por otro lado, debido al tiempo de entrega rápido requerido con el método ágil, los
cambios generalmente se realizan directamente en el código, y los desarrolladores solo
agregan comentarios y anotaciones
Realizaremos una tabla demostrando cada método escogido para analizar sus diferencias
desde la descripción de cada método, en qué tipo de proyectos de software podemos
aplicarlo, la interacción con el cliente o el usuario en el desarrollo del programa, viendo
que tan necesario es que el cliente este en cada paso, las etapas que se realizan paso a
paso y las características propias de los mmodelos.[10]
Ítem Cascada
Prototipos
Es el modelo Representa
para
que
Descripción breve
desarrollo
Incremental
el aquellos aspectos proceso evolutivo las
mejores enfatiza
de del SW que serán que desarrolla en funcionalidades
del
una secuencia cliente, el cual lo incrementales
cascada
lógica y cada evalúa, para así
prototipos
etapa
RAD
Es un modelo de Es la unión de Es un MLS pero que
SW que sigue visibles para el versiones
en
un
ciclo
extremadamente corto en
modelo el
es refina y que se
directamente
desarrollo
de
en una versión de alta
velocidad
desarrollará
la anterior
de Web y móviles
reingeniería
Proyectos
compuestos
con
requerimientos
claros
Web y App
Software
empresarial
SW
y siendo una convirtiéndose
dependiente de
Proyecto
Tipo de proyecto de Sw
Espiral
Aplicaciones móviles
Programador
Interactúa con Tiene una relación
Debe
trabajar Trabaja con el No tiene gran relación
el usuario en la con el cliente en la junto al cliente
toma
usuario a medida con el cliente
de fase de diseño
que avanza el
información
Análisis
proyecto
de Investigación
Planificación
Análisis
Modelado de gestión
Análisis de riegos
Diseño
Modelado de datos
Programación
Modelado de procesos
requerimientos
preliminar
Diseño
Diseño
Implementació
construcción
Evaluación por el Pruebas
Generaciones
n
evaluación
cliente
aplicaciones
Pruebas
Modificación
y Ingeniería
de
Pruebas y entrega
Mantenimiento Diseño técnico
Programación
y
prueba
Etapas
Operación
y
mantención
Características propias del modelo
E puede volver Crea una maqueta, Básicamente
Es
una Fácil de aprender
una etapa atrás
la cual muestra la consiste en una aproximación
Sus
interfaz
requerimientos
aplicación,
son específicos
interfaz
de
Gran
impacto
la seria de ciclos que muy parecida a implementación
se
repiten
en la evolutiva. Se modelos de negocios
estática, forma de espiral, desarrolla
no procesa datos
comenzando
sistema
desde el centro
satisfacer
el
para
un
subconjunto de
los
requerimientos
específicos
Resultados y discusión
Métodos ágiles
Para una mejor comprensión de los datos que constan en las diferentes tablas elaboradas
en el apartado anterior acerca de los métodos ágiles.
de
Prioridades
Para los planteamientos se han determinado tres posibles respuestas: cumple, no cumple
o cumple parcialmente.
Prioridades
5
4
3
2
1
0
Participación del
usuario final
Iteraciones en
períodos cortos de
tiempo
Cumple
Prioriza a las
personas
No cumple
Comunicación
efectiva
Fácil adapatación a
los cambios
Cumple Parcialmente
Gráfico 1. Prioridades
Análisis e Interpretación
De los 5 modelos escogidos podemos concluir que:

Cuatro de los modelos priorizan la participación del usuario final dentro de sus
prioridades siendo estos: XP, Scrum, Cristal y FDD. MoProsoft por otro lado no
prioriza este aspecto.

Todos los modelos priorizan las iteraciones en períodos cortos de tiempo.

Cuatro de los modelos, XP, Cristal, FDD y MoProsoft, priorizan a las personas
sobre la documentación mientras que Scrum prioriza de manera parcial pues, a
pasar de que los clientes son parte de esta metodología, uno de los pilares
fundamentales de este modelo es la documentación por lo que entra en la categoría
de Cumple Parcialmente.

Todos los modelos priorizan la comunicación efectiva dentro del equipo de
trabajo.

Todos los modelos priorizan la fácil adaptación a los cambios debido a que son
metodologías ágiles y esta es una de sus principales características.
Fases
Se han determinado dos formas de medir esta categoría comparativa.
Para los números de fases se utilizaron datos numéricos que indican la cantidad de fases
con las que cuenta cada metodología.
Número de fases
MoProsoft
FDD
Cristal
Scrum
XP
0
1
2
3
4
5
6
7
8
9
Número de fases
Gráfico 2. Número de Fases
Análisis e Interpretación
De los 5 modelos escogidos podemos concluir que:

XP cuenta con 6 fases.

Scrum, Cristal y FDD cuentan con 5 fases.

Moprosoft es el modelo que tiene más fases, siendo éstas 9 fases.
Para explicar el tiempo de entrega por cada fase se han utilizado datos cualitativos de
acuerdo a la metodología.
Tiempos
XP
Scrum, Cristal y
MoProsoft
3 meses
2 semanas
FDD
Determinado por el cliente
Gráfico 3. Tiempos de entrega
Análisis e Interpretación
El gráfico muestra que:

Los modelos Scrum, Cristal y MoProsoft, representando al 60%, tienen sus
tiempos de entrega determinados por el cliente.

El modelo XP, representando el 20%, determina que por cada fase no deben pasar
más de 3 meses.

El modelo FDD, representando el 20%, determian que por cada fase el tiempo de
entrega no debe exceder las dos semanas.
Equipo de trabajo
Se han determinado dos formas de medir esta categoría comparativa.
Para los aspectos de subdivisión del equipo y las variantes de la metodología de acuerdo
al tamaño, se han determinado tres posibles respuestas: cumple, no cumple o cumple
parcialmente.
Equipos de Trabajo
100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
Subdivisión en equipos de trabajo
Cumple
No cumple
Variantes de la metodología de acuerdo al tamaño
Cumple Parcialmente
Gráfico 5. Equipos de trabajo
Análisis e Interpretación
De los 5 modelos escogidos podemos concluir que:

Todos los modelos cumplen con la subdivisión en equipos de trabajo más
pequeños, cada uno de ellos con sus propias características indudablemente.

Cuatro de los modelos, tan solo el modelo Cristal presenta variantes de su modelo.
Esto lo mencionan [6, 7] al describir que la metodología Cristal se divide en 5
subgrupos nombrados por colores de acuerdo al número de miembros del equipo
que existan
Para la variable de roles de equipo se han utilizado datos numéricos que señalan la
cantidad de roles que se presentan dentro de cada metodología.
NÚMERO DE ROLES
Número de roles
MOPROSOFT
5
FDD
5
CRISTAL
SCRUM
8
3
XP
6
Gráfico 6. Roles en el equipo de trabajo
Análisis e Interpretación
De los 5 modelos escogidos podemos concluir que:

La metodología Cristal cuenta con el mayor número de roles siendo éste de 8.

La metodología Scrum cuenta con el menor número de roles siendo éste de 3.

La metodología XP cuenta con 6 roles en su equipo de trabajo.

MoProsoft y FDD cuentan con 5 roles en su equipo de trabajo.
Métodos tradicionales
Mediante una graficas vamos mejorar el entendimiento de las diferencias en los métodos
tradicionales.
Etapas
Y
Etapas y Tiempo con el Usuario
8
7
6
5
4
3
2
1
0
Cascada
Prototipos
Espiral
Trabaja con el programador
Incremental
RAD
Etapas
Análisis e Interpretación
Lo más significativo de los modelos ya escogidos podemos concluir que:

El modelo que menos interacción tiene con el usuario o cliente tiene es el modelo
RAD, mientras que los demás casi van a la par ya que tienen que tener una relación
obligatoria a lo largo del desarrollo del programa

Mientras que en las etapas el modelo que más etapas tiene es el de Prototipos ya
que cuenta con siete etapas en total parar dar finiquitado el programa que nos
llevara un poco más de tiempo en realizarlo, y los dos que tienen menos es el
espiral y el incremental ya que cuentan con solo cuatro etapas [11].
Enlaces para la bibliografía
1. https://dialnet.unirioja.es/servlet/articulo?codigo=4701898
2. https://revistaespirales.com/index.php/es/article/view/269/225
3. https://cia.uagraria.edu.ec/Archivos/VILLA%20LOPEZ%20BRYAN%20J%C3
%93SE.pdf
4. http://openaccess.uoc.edu/webapps/o2/bitstream/10609/17885/1/mtrigasTFC061
2memoria.pdf
5. http://repositorio.utc.edu.ec/bitstream/27000/2467/1/T-UTC-00003.pdf
6. http://repositorio.utp.edu.co/dspace/bitstream/handle/11059/8953/T004.22%20C
828.pdf?sequence=1&isAllowed=y.
7. https://repositorio.unan.edu.ni/5294/1/55950.pdf
8. https://ccc.inaoep.mx/~pgomez/publications/congress/PggITP07.pdf
9. https://www.becas-santander.com/es/blog/metodologias-desarrollosoftware.html
10. https://www.scio.com.mx/blog/metodologia-tradicional-o-agil-software/
11. https://repositorio.uca.edu.ar/bitstream/123456789/522/1/metodologiasdesarrollo-software.pdf
Descargar