• No se han encontrado resultados

CAPÍTULO II: MARCO TEÓRICO

2.2 TEORÍAS QUE SUSTENTAN EL TRABAJO

2.2.8 Metodologías para el Desarrollo de Software

Según (Sierra Guzmán, 2012), metodología es la rama de la lógica que se encarga del estudio de los diferentes métodos para llegar al conocimiento crítico y reflexivo que permita la fundamentación de la ciencia.

Importancia de la Metodología como elemento fundamental en la investigación del conocimiento:

- Aprender a elaborar un diseño o proyecto correcto de cualquier investigación.

- Facilita la búsqueda de información.

- Ayuda a desarrollar diversas habilidades de análisis y síntesis, así como aplicar el razonamiento.

- Permite la elaboración adecuada de cualquier género (académico o empresarial).

- Estructurar investigaciones de calidad cualitativa y cuantitativa.

- Potenciar los métodos y técnicas de investigación que ya se posea.

- Planear con orden y sistematicidad cualquier actividad.

Tenemos 2 tipos de metodologías: las ágiles y las tradicionales.

Según lo sustentado por (Rodríguez Mesa, 2014), las principales metodologías tradicionales son las conocidas RUP y MSF, que centran su atención en llevar una documentación exhaustiva de todo el proyecto y en cumplir con un plan de proyecto. Las metodologías tradicionales (formales) se focalizan en documentación, planificación y procesos.

A.Metodología RUP

De acuedo a (GrupNADD, 2012), el Proceso Unificado de Rational es un proceso de ingeniería de software que suministra un enfoque para asignar tareas y responsabilidades dentro de una organización de desarrollo. Su objetivo es asegurar la producción de software de alta y de mayor calidad para satisfacer las necesidades de los usuarios que tienen un cumplimiento al final dentro de un límite de tiempo y presupuesto previsible.

Así mismo, el RUP está basado en 6 principios claves que son los siguientes:

- Adaptar el proceso: El proceso deberá adaptarse a las necesidades del cliente

ya que es muy importante interactuar con él. El tamaño del mismo, así como su tipo o las regulaciones que lo condicionen, influirán en su diseño específico.

- Equilibrar prioridades: Los requisitos de los diversos participantes pueden

ser diferentes, contradictorios o disputarse recursos limitados. Debe encontrarse un equilibrio, ya que gracias a este equilibrio se podrán corregir desacuerdos que surjan en el futuro.

- Demostrar valor iterativamente: Los proyectos se entregan, aunque sea de

un modo interno, en etapas iteradas. En cada iteración se analiza la opinión de los inversores, la estabilidad y calidad del producto, y se refina la dirección del proyecto, así como también los riesgos involucrados.

- Colaboración entre equipos: El desarrollo de software no lo hace una única

persona sino múltiples equipos. Debe haber una comunicación fluida para coordinar requisitos, desarrollo, evaluaciones, planes, resultados, etc.

- Elevar el nivel de abstracción: Este principio dominante motiva el uso de

directamente de los requisitos a la codificación de software sin saber con certeza qué codificar para satisfacer al cliente. Un alto nivel de abstracción también permite discusiones sobre diversos niveles y soluciones arquitectónicas. Éstas se pueden acompañar por las representaciones visuales de la arquitectura, por ejemplo, con el lenguaje UML.

- Enfocarse en la calidad: El control de calidad no debe realizarse al final de

cada iteración, sino en todos los aspectos de la producción. El aseguramiento de la calidad forma parte del proceso de desarrollo y no de un grupo independiente.

Principales características de esta metodología son:

- Forma disciplinada de asignar tareas y responsabilidades (quién hace qué, cuándo y cómo)

- Pretende implementar las mejores prácticas en Ingeniería de Software. - Desarrollo interactivo.

- Administración de requisitos.

- Uso de arquitectura basada en componentes. - Control de cambio.

- Modelado visual del software.

- Verificación de la calidad del software.

Fases de la Metodología RUP

- Fase de inicio

Durante esta fase de inicio las iteraciones se centran con mayor énfasis en las actividades de modelamiento de la empresa y en sus requerimientos.

- Fase de elaboración

Durante esta fase de elaboración, se centran al desarrollo de los casos de uso, este lleva una serie de requerimientos y pasos; el modelo de la organización, el análisis y el diseño se van acumulando las actividades y para empezar una parte de implementación mediante desarrollo de la fase de inicio que va a ser orientada a la base de la construcción de todas las especificaciones de la arquitectura del diseño.

- Fase de construcción

Durante la fase de construcción, se lleva a cabo la construcción del producto por medio de una serie de iteraciones las cuales se seleccionan algunos Casos de Uso, se define su análisis y después el diseño y se procede a su implantación y sus respectivas pruebas.

- Fase de transición

Durante esta fase de transición se busca garantizar que el producto este bien preparado para su entrega al usuario.

Beneficios y Ventajas de la Metodología RUP - Promueve la reusabilidad.

- Riqueza semántica.

- Disminuye la brecha semántica entre la visión interna y la visión externa del sistema.

- Facilita la construcción de prototipos.

Figura N° 2.5 Fases y Artefactos (RUP)

Fuente: (Cortés, 2013)

B.Metodología MSF

Según (Rivera, 2010) esta es una metodología flexible e interrelacionada con una serie de conceptos, modelos y prácticas de uso, que controlan la planificación, el desarrollo y la gestión de proyectos tecnológicos. MSF se centra en los modelos de proceso y de equipo dejando en un segundo plano las elecciones tecnológicas.

Más que una metodología rígida de administración de proyectos, MSF es una serie de modelos que puede adaptarse a cualquier proyecto de tecnología de información. Todo proyecto es separado en cinco principales fases:

- Visión y Alcances: Se definen los líderes y responsables del proyecto,

adicionalmente se identifican las metas y objetivos a alcanzar; estas últimas se deben respetar durante la ejecución del proyecto en su totalidad, y se realiza la evaluación inicial de riesgos del proyecto.

- Planificación: Es en esta fase es cuando la mayor parte de la planeación para

el proyecto es terminada. El equipo prepara las especificaciones funcionales, realiza el proceso de diseño de la solución, y prepara los planes de trabajo, estimaciones de costos y cronogramas de los diferentes entregables del proyecto.

- Desarrollo: Durante esta fase el equipo realice la mayor parte de la

construcción de los componentes (tanto documentación como código), sin embargo, se puede realizar algún trabajo de desarrollo durante la etapa de estabilización en respuesta a los resultados de las pruebas. La infraestructura también es desarrollada durante esta fase.

- Estabilización: En esta fase se conducen pruebas sobre la solución, las

pruebas de esta etapa enfatizan el uso y operación bajo condiciones realistas. El equipo se enfoca en priorizar y resolver errores y preparar la solución para el lanzamiento.

- Implantación: Durante esta fase el equipo implanta la tecnología base y los

componentes relacionados, estabiliza la instalación, traspasa el proyecto al personal soporte y operaciones, y obtiene la aprobación final del cliente.

- Metodologías Ágiles

De acuerdo a (Raya, 2014), las metodologías ágiles son una serie de técnicas para la gestión de proyectos que han surgido como contraposición a los métodos clásicos de gestión.

- Los individuos y su interacción, por encima de los procesos y las herramientas. - El software que funciona, frente a la documentación exhaustiva.

- La colaboración con el cliente, por encima de la negociación contractual. - La respuesta al cambio, por encima del seguimiento de un plan.

Inicialmente, mucha gente asocia metodologías ágiles con falta de documentación o control sobre el proyecto, pero esto es falso. Lo que se desea es minimizar el impacto de las tareas que no son totalmente imprescindibles para conseguir el objetivo del proyecto. Se pretende aumentar la eficiencia de las personas involucradas en el

proyecto y, como resultado de ello,minimizar el coste.

Entre los principales métodos ágiles tenemos el XP (eXtreme Programming), Scrum, Iconix, Cristal Methods, AUP.

A.Metodología XP (Extreme Programming)

Según (Méndez, 2013) XP es una metodología liviana de desarrollo de software. Es un conjunto de prácticas y reglas empleadas para desarrollar software. Basada en diferentes ideas de cómo enfrentar ambientes cambiantes.

En vez de planificar, analizar y diseñar para el futuro, XP hace todo esto un poco cada vez, a través de todo el proceso de desarrollo.

- Objetivos

 Establecer las mejores prácticas de Ingeniería de Software en el desarrollo de proyectos.

 Mejorar la productividad de los proyectos.

 Garantizar la calidad de Software desarrollado, haciendo que este supere las expectativas del cliente.

 Asumir que con cierta planificación, codificación y pruebas se puede decidir si se está siguiendo un camino correcto o equivocado, evitando retroceder cuando sea demasiado tarde.

- Características

 Metodología basada en prueba y error para obtener un software que funcione realmente.

 Expresada en forma de 12 prácticas (conjunto completo, complementándose unas a otras), las cuales son conocidas pero su novedad es juntarlas.

 Está orientada hacia quien produce y usa el software (el cliente participa muy activamente).

 Reduce el coste del cambio en todas las etapas del ciclo de vida del sistema.

 Combina las que han demostrado ser las mejores prácticas para desarrollar software, y las lleva al extremo.

 Cliente bien definido.

 Los requisitos pueden cambiar.

 Grupo pequeño y muy integrado (2-12 personas).

 Fundamentalmente se trabaja en parejas.

 Equipo con formación elevada y capacidad de aprender.

- Principios del Método XP

Este método se basa en 4 principios bien definidos:

Simplicidad: La simplicidad consiste en desarrollar sólo el sistema que

realmente se necesita. Implica resolver en cada momento sólo las necesidades actuales.

Feedback: Una metodología basada en el desarrollo iterativo de pequeñas

partes, con entregas y pruebas frecuentes y continuas, proporciona un flujo de retro- información valioso para detectar los problemas o desviaciones.

Decisión: Implica saber tomar decisiones difíciles. Reparar un error cuando

se detecta. Mejorar el código tras el feedback y las sucesivas iteraciones.

Comunicación: XP hace casi imposible la falta de comunicación, ya que

Figura N° 2.6 Ciclo vida XP Fuente: (Méndez, 2013)

- Ventajas e Inconvenientes

Ventajas

 Da lugar a una programación sumamente organizada.

 Cuenta con una tasa de errores muy pequeña.

 Propicia la satisfacción del programador.

 Facilita los cambios.

 Permite ahorrar mucho tiempo y dinero.

 Puede ser aplicada a cualquier lenguaje de programación.

 El cliente tiene el control sobre las prioridades.

 Se hacen pruebas continuas durante el proyecto.

Inconvenientes

 Es recomendable emplearla solo en proyectos a corto plazo.

 En caso de fallar, las comisiones son muy altas.

 Requiere de un rígido ajuste a los principios de XP.

Tabla N° 2.1 MetodologíasTradicionales Vs. Metodologías Ágiles

METODOLOGÍAS TRADICIONALES METODOLOGÍAS ÁGILES

Mayores instrumentos de documentación de modelos, el cual es esencial y se requiere su mantenimiento.

Pocos instrumentos de documentación de modelos. El modelado es prescindible y hasta desechable.

Actores con mayores roles específicos y funcionales.

Actores con pocos roles, más genéricos y flexibles.

El cliente interactúa con el equipo de desarrollo mediante reuniones.

El cliente es parte del equipo de

desarrollo (además in-situ) La arquitectura se define previamente en el

proyecto (análisis-diseño)

La arquitectura de software se va

definiendo y mejorando a lo largo del proyecto.

Énfasis en la definición del proceso: roles, actividades y artefactos.

Énfasis en los aspectos humanos: el individuo y el. trabajo en equipo

Se espera que no ocurran cambios de gran

impacto durante el proyecto. Se esperan cambios durante el proyecto.

Fuente: (Penandes, 2013)

Tabla N° 2.2 Diferencias entre Metodología RUP y SCRUM

RUP SCRUM

Ciclo:

Un ciclo se define en 4 fases, pero algunos flujos de trabajo pueden ser concurrentes.

Ciclo:

Cada sprint (iteración) es un ciclo completo.

Planificación:

Se utiliza un plan de proyecto formal, asociado con múltiples iteraciones. El plan es determinado a una fecha final y también dispone de hitos intermedios.

Planificación:

El plan de proyecto no cuenta con extremos o límites. Con cada iteración del plan, la siguiente iteración se determina en el final de la iteración actual (no se determina una fecha final). El Dueño del Producto (Clave de negocios de usuario) determina cuando el proyecto se realiza.

Alcance:

El alcance está predefinido antes del inicio del proyecto y documentado en el Documento de Alcance.

El ámbito de aplicación puede ser revisado durante el proyecto, ya que se van aclarando los requisitos, pero estas revisiones estarán sujetos a un procedimiento estrictamente controlado.

Alcance:

En vez del alcance, SCRUM utiliza una cartera de proyectos, que se re-evalua al final de cada iteración (Sprint).

Artefactos:

Visión / Documento de alcance, paquete de requerimientos funcionales, la arquitectura del sistema de documentos, el plan de desarrollo, plan de prueba, scripts de prueba, etc.

Artefactos:

El único artefacto formal es el software operativo.

Tipo de Proyecto / Producto:

Recomendado para grandes proyectos a largo plazo, de nivel empresarial con complejidad media-alta.

Tipo de Proyecto / Producto:

Recomendado para mejoras y organizaciones rápidas que no dependen de una fecha límite.

Documento similar