• No se han encontrado resultados

CAPÍTULO I. MARCO TEÓRICO

1.3. Valoración crítica de los conceptos principales de las distintas posiciones

1.3.7. Metodología de desarrollo de software

Una Metodología de desarrollo de software, consiste principalmente en hacer uso de diversas herramientas, técnicas, métodos y modelos para el desarrollo. Regularmente este tipo de metodología, tienen la necesidad de venir documentadas, para que los programadores que estarán dentro de la planeación del proyecto, comprendan perfectamente la metodología y en algunos casos el ciclo de vida del software que se pretende seguir. (Gomez, 2017)

Aunque actualmente existen mucha variedad en metodologías de programación. La realidad es que todas están basadas en ciertos enfoques generalistas que se crearon hace muchos años, algunos tipos de metodologías de desarrollo de software que se utilizaron e inventaron al principio de nuestra era tecnológica y son las que veremos a continuación.

Metodologías tradicionales 1.3.7.1. Metodología cascada

También conocido como modelo clásico, modelo tradicional o modelo lineal secuencial. Él método de la cascada es considerado como el enfoque clásico para el ciclo de vida del desarrollo de sistemas, se puede decir que es un método puro que implica un desarrollo rígido. Está es una secuencia de actividades (o etapas) que consisten en el análisis de requerimientos, él diseño, la implementación, la integración y las pruebas. (Fernando Alonso Amo, 2014)

El análisis de requerimientos consiste en reunir las necesidades del producto y casi siempre su salida es texto.

El diseño describe la estructura interna del producto y suele representarse con diagramas y texto.

Figura 3 Fases metodología software

Fuente: https://www.ecured.cu/Metodología_de_cascada

La implementación significa programación. Producto de esta etapa es el código en cualquier nivel, incluido el producido por sistemas de generación automática. La integración es el proceso de ensamblar las partes para completar el producto.

1.3.7.2. Metodología espiral

Este modelo, propuesto por Bohem en 1988 [BOE88], es un modelo de proceso de software evolutivo que acompaña la naturaleza evolutiva de con los aspectos controlados y sistemáticos del ciclo de vida tradicional. Proporciona el potencial para el desarrollo rápido de versiones incrementales del software. En este modelo, el sistema se desarrolla en una serie de versiones incrementales. Durante las primeras iteraciones, la versión incremental podría ser un modelo en papel o un prototipo. (Sonia, 2013) El Modelo en Espiral se divide en un número de actividades estructurales, también llamadas "regiones de tareas”.

Generalmente existen entre tres y seis regiones de tareas:

 Comunicación con el cliente: Las tareas requeridas para establecer comunicación entre el desarrollador y el cliente, sea revisar especificaciones, plantear necesidades, etc.

 Planificación: Las tareas requeridas para definir recursos, tiempos e información relacionada con el proyecto.

 Análisis de riesgos: Las tareas requeridas para evaluar riesgos técnicos y de gestión. Ingeniería: Las tareas requeridas para construir una o más representaciones de la aplicación.

 Construcción y adaptación: Las tareas requeridas para construir, probar, instalar y proporcionar soporte al usuario.

 Evaluación del cliente: Las tareas requeridas para obtener la reacción del cliente, según la evaluación de las representaciones del software creadas durante la etapa de ingeniería e implementada durante la etapa de instalación. (Fernando Alonso Amo, 2015)

Metodologías agiles 1.3.7.3. Metodología XP

Es una metodología ágil centrada en potenciar las relaciones interpersonales como clave para el éxito en desarrollo de software, promoviendo el trabajo en equipo, preocupándose por el aprendizaje de los desarrolladores, y propiciando un buen clima de trabajo. XP se basa en realimentación continua entre el cliente y el equipo de desarrollo, comunicación fluida entre todos los participantes, simplicidad en las soluciones implementadas y coraje para enfrentar los cambios. XP se define como especialmente adecuada para proyectos con requisitos imprecisos y muy cambiantes, y donde existe un alto riesgo técnico. (Mendez, 2013)

La metodología XP tiene varios contextos los cuales son los siguientes:  Cliente bien definido.

 Los requisitos pueden (y van a) cambiar.

 Grupo pequeño y muy integrado (máximo 12 personas).  Equipo con formación elevada y capacidad de aprender.

La definición moderna de desarrollo ágil de software evolucionó a mediados de la década de 1990.

Este tipo de programación es considerado hoy en día una de las más exitosas debido a que es una metodología de desarrollo ágil. Kent Beck autor principal, quien basándose en otras metodologías y tomando lo rescatable de cada una, logro conformar una sola creando la XP. (Fernando Alonso Amo, 2014)

Dentro de los valores fundamentales que deben estar contemplados para realizar una buena metodología están:

 Comunicación: La comunicación que se tenga tanto como con el cliente, así como con el equipo de trabajo es fundamental para que todo se lleve a cabo de manera sencilla y entendible y cumplir con las expectativas del cliente.

 Simplicidad: Esta es una de las características principales de este método, por lo que sin importar que tanto pueda pedir el cliente, desde el diseño debe de ser sencillo y amigable y el código entendible y solo lo necesario.

 Retroalimentación: La comunicación que existen entre el desarrollador y el usuario.  Coraje: Es en el sentido de contar con la capacidad de afrontar pequeños tropiezos, como lo son la modificación de un trabajo hecho con esfuerzo o la eliminación del mismo y comienzo del trabajo, de igual manera a la persistencia que se tiene para resolver errores que surjan en el camino. (Fernando Alonso Amo, 2014)

Ciclo de vida de XP

Figura 4 Ciclo vida XP

Fuente: oness.sourceforge.net/proyecto/html/ch05s02.html 1.3.7.4. Metodología RUP

El Proceso Unificado de Racional. Es un proceso de ingeniería de software que suministra un enfoque para asignar tareas y responsabilidades dentro de una organización de desarrollo. Es una metodología de desarrollo iterativo que es enfocada hacia “diagramas de los casos de uso, y manejo de los riesgos y el manejo de la arquitectura” como tal. (CIMA'S, 2012)

RUP divide el proceso en 4 fases, dentro de las cuales se realizan varias iteraciones en número variable según el proyecto y en las que se hace un mayor o menor hincapié en las distintas actividades.

Fases de la metodología RUP

 Inicio: Esta fase tiene como propósito definir y acordar el alcance del proyecto con los patrocinadores, identificar los riesgos asociados al proyecto, proponer una visión muy general de la arquitectura de software y producir el plan de las fases y el de iteraciones posteriores.

 Elaboración: En la fase de elaboración se seleccionan los casos de uso que permiten definir la arquitectura base del sistema y se desarrollaran en esta fase, se realiza la especificación de los casos de uso seleccionados y el primer análisis del dominio del problema, se diseña la solución preliminar.

 Construcción: El propósito de esta fase es completar la funcionalidad del sistema, para ello se deben clarificar los requisitos pendientes, administrar los cambios de acuerdo con las evaluaciones realizados por los usuarios y se realizan las mejoras para el proyecto.

 Transición: El propósito de esta fase es asegurar que el software esté disponible para los usuarios finales, ajustar los errores y defectos encontrados en las pruebas de aceptación, capacitar a los usuarios y proveer el soporte técnico necesario. Se debe verificar que el producto cumpla con las especificaciones entregadas por las personas involucradas en el proyecto. (CIMA'S, 2012)

Documento similar