Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 14

Instituto Tecnológico de Tepic

Departamento de Sistemas y Computación


Ingeniería en Sistemas Computacionales

1.3 Metodologías de
desarrollo de software
Fundamentos de Ingeniería de Software

Alumno: Rosas Flores Cesar Elías


No. Control: 20400818
Docente: Lic. Rocío Gabriela Barrientos Luján

6 de septiembre de 2022
Tepic, Nayarit. México
1.3 Metodologías de desarrollo de software | Cesar Elías Rosas Flores

Introducción ................................................................................................................................... 3
Metodologías de desarrollo de software .............................................................................. 4
Metodologías Clásicas............................................................................................................. 4
Tipos de metodologías ....................................................................................................... 4
Waterfall (Cascada) .......................................................................................................... 4
Ventajas ........................................................................................................................... 5
Desventajas .................................................................................................................... 5
Prototyping (Prototipo) .................................................................................................. 6
Ventajas ........................................................................................................................... 7
Desventajas .................................................................................................................... 7
Spiral (Espiral) .................................................................................................................... 7
Ventajas ........................................................................................................................... 8
Desventajas .................................................................................................................... 8
Metodologías Ágiles ................................................................................................................ 9
Tipos de metodologías ....................................................................................................... 9
Extreme Programming (Programación Extrema)................................................ 9
Ventajas ......................................................................................................................... 10
Desventajas .................................................................................................................. 11
Kanban ............................................................................................................................... 11
Ventajas ......................................................................................................................... 12
Desventajas .................................................................................................................. 12
Feature Driven Development (FDD)........................................................................ 13
Características a cumplir ......................................................................................... 13
Ventajas ......................................................................................................................... 13
Desventajas .................................................................................................................. 13
Bibliografía .................................................................................................................................... 14

2|Página
1.3 Metodologías de desarrollo de software | Cesar Elías Rosas Flores

Introducción

Las metodologías de desarrollo de software son una base esencial para el


desarrollo y ejecución de proyectos profesionales y logran que los
mismos sean efectivos y eficientes. Lo más importante en la primera
etapa de desarrollo de software es poder identificar que metodología es
la más apropiada para la optimización de tiempos y cuál se acomoda a
las necesidades del proyecto para así alcanzar un resultado deseado en
tiempo y forma. El seguir una metodología nos ayuda a generar
documentación al proyecto y ayuda a rendir cuentas de los resultados
obtenidos.

El propósito de esta investigación es el de descubrir y conocer el uso,


desarrollo, ventajas y limitaciones de las distintas metodologías para el
desarrollo de software, necesarias para la formulación de proyectos
estructurados.
Para conseguir el objetivo de generar productos profesionales y
planificados, las distintas metodologías emplean prácticas en común, las
cuales serán explicadas en el documento y son las siguientes:

• Entienden el problema
• Diseñan una solución
• Implementan la solución
• Prueban la solución
• Gestionan las actividades anteriores para conseguir el proyecto
profesional.

La utilización de la metodología adecuada, representa un proceso formal


que incorpora una serie de métodos definidos para el análisis, diseño,
implementación y pruebas de software.

3|Página
1.3 Metodologías de desarrollo de software | Cesar Elías Rosas Flores

Metodologías de desarrollo de software


El desarrollo de metodologías para desarrollo de software (o proyectos)
es una tarea bastante amplia y compleja, prueba de ello es la existencia
de múltiples metodologías las cuales se adaptan a las distintas
necesidades de los proyectos. En general se puede decir que existen dos
tipos de metodologías que siguen el flujo común, las clásicas y las ágiles.

Metodologías Clásicas

Las metodologías clásicas (también llamadas metodologías pesadas)


presentan propuestas más tradicionales que se centran especialmente
en el control del proceso, estableciendo rigurosamente las actividades
involucradas, los resultados (de cada etapa) que se deben producir, y las
herramientas que se usarán. Estas metodologías presentan un
inconveniente y es la falta de adaptabilidad a los cambios, por lo que no
son métodos adecuados cuando se trabaja en un entorno donde los
requisitos no pueden predecirse o bien pueden variar.
Estas metodologías presentan las siguientes características generales:

• Centran su atención en llevar una documentación exhaustiva del


proyecto.
• Imponen una disciplina rigurosa de trabajo sobre el proceso de
desarrollo de software.
• Gran énfasis en la planificación total de todo el trabajo a realizar.

Tipos de metodologías

Waterfall (Cascada)

Esta metodología fue la primera en originarse (Casi de manera orgánica)


y es nombrada de esta manera por la posición de las fases en el
desarrollo de esta. Este enfoque metodológico ordena rigurosamente las
etapas del proceso para el desarrollo de software, de tal forma que el
inicio de cada etapa debe esperar a la finalización de la etapa anterior. Al
final de cada etapa, el modelo está diseñado para llevar a cabo una
revisión final, que se encarga de determinar si el proyecto está listo para
avanzar a la siguiente fase.

4|Página
1.3 Metodologías de desarrollo de software | Cesar Elías Rosas Flores

Uno de los principales problemas que se presenta al ser solo un modelo


teórico, es el que los resultados no se pueden ver hasta muy avanzado el
proyecto, por lo que cualquier cambio que nos haga volver hacia atrás en
el ciclo de vida puede suponer un gran retraso además de un alto coste
de desarrollo.

Ventajas
• Es una metodología simple y fácil de entender.
• Fácil manejo de proyecto por la rigidez del modelo. Cada etapa
cuenta con tiempos específicos de entrega y revisión de procesos.
• Es aplicable a proyectos pequeños

Desventajas
• No es aplicable a proyectos que demanden mantenimiento
continuo.
• Una vez el proyecto alcance la etapa de prueba y validación es
complicado volver a etapas anteriores.

5|Página
1.3 Metodologías de desarrollo de software | Cesar Elías Rosas Flores

• La documentación consume gran parte del tiempo del


desarrollador y validador.
• El proyecto necesita estar bien definido.

Prototyping (Prototipo)

La metodología de prototipo permite al desarrollador crear solo el


prototipo de la solución para demostrar su funcionalidad al cliente y
hacer las modificaciones necesarias antes del desarrollo. Crea una
implementación parcial de un sistema, con el propósito explícito de
aprender sobre los requerimientos del sistema. El prototipo puede ser
utilizado como parte de la fase de requerimientos o justo antes de la fase
de requerimientos. Este es un método menos formal de desarrollo y es
más una técnica para comprender las especificaciones.

6|Página
1.3 Metodologías de desarrollo de software | Cesar Elías Rosas Flores

Ventajas
• Reduce significativamente los riesgos de fracaso e identifica los
peligros potenciales en una etapa temprana en pasos moderados y
rápidos.
• Ayuda a la recopilación de los requerimientos cuando hay poca
información documentada.
• Adaptables a requerimientos cambiantes.

Desventajas
• El desarrollo del prototipo es a expensas del desarrollador, así que
es desarrollado usando el mínimo de recursos.
• Da una falsa ilusión al usuario sobre la velocidad del desarrollo.
• Puede llegar a dar una idea inicial fantasiosa del proyecto
desapegada de la realidad del mismo.

Spiral (Espiral)

La metodología de espiral es un modelo sofisticado que se enfoca en la


identificación temprana y la reducción de riesgos dentro del proyecto. En
esta metodología de desarrollo los desarrolladores empiezan en una
pequeña escala la exploración de los riegos que involucra el proyecto y
planifica el manejo de los mismos, al final de cada etapa se decide si se
da el siguiente paso de la espiral. El éxito del ciclo de vida de esta
metodología depende de la rentabilidad, atención y conocimiento del
administrador del proyecto.
Este modelo toma las ventajas del desarrollo en cascada y el de prototipo
añadiéndole el concepto de análisis de riesgo.
Esta metodología define 4 actividades principales:

• Planificación: En la cual se recolectan los requisitos iniciales o


nuevos requisitos a añadir a esta iteración.
• Análisis de riesgo: Basándonos en los requisitos decidimos si
somos capaces o no de desarrollar el software y se toma la decisión
de continuar o no continuar.
• Ingeniería: En el que se desarrolla un prototipo basado en los
requerimientos obtenidos en la fase de planificación.

7|Página
1.3 Metodologías de desarrollo de software | Cesar Elías Rosas Flores

• Evaluación del cliente: El cliente comenta el prototipo. Si está


conforme con el se acaba el proceso, si no, se añaden nuevos
requisitos en la siguiente iteración.

Ventajas
• El análisis de riesgo inicial reduce la posibilidad de riesgos.
• Es adecuado para proyectos grandes y/o críticos.
• Adaptable a requerimientos variables.

Desventajas
• El éxito del proyecto depende de la fase de análisis de riesgo por lo
que un error en tal fase pondría en riesgo todo el proyecto
• Los extensos análisis de riesgo lo hacen costoso.
• El mayor riesgo de esta metodología es su mismo modelo de
espiral, el proyecto puede nunca verse finalizado.

8|Página
1.3 Metodologías de desarrollo de software | Cesar Elías Rosas Flores

Metodologías Ágiles

Las metodologías ágiles surgen para cubrir las deficiencias que las
metodologías clásicas, efectivas en un esquema tradicional de proyectos
de gran tamaño, en contraparte, sufrían el ser inadecuadas e ineficientes
para muchos proyectos actuales, donde el entorno del sistema era muy
cambiante y en donde se exige reducir los tiempos de desarrollo
manteniendo una alta calidad. De nada sirven buenas notaciones y
herramientas, si no se proveen directivas eficientes para su aplicación.

Tipos de metodologías

Extreme Programming (Programación Extrema)

La programación extrema (también nombrada XP) es la más destacada


de los métodos ágiles, esta pone más énfasis en la adaptabilidad que en
la previsibilidad. Considera que los cambios de requisitos sobre la marcha
son aspecto natural, inevitable e incluso deseable del desarrollo de
proyectos, el ser capaz de adaptarse a los cambios de requisitos en
cualquier punto de la vida del proyecto es una aproximación mejor y más
realista que intentar definir todos los requisitos al comienzo e invertir
esfuerzos después en controlar los cambios en los requisitos.
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, con 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.

9|Página
1.3 Metodologías de desarrollo de software | Cesar Elías Rosas Flores

Para alcanzar el objetivo de software como solución ágil, la metodología


XP se estructura en tres capas que agrupan las doce prácticas básicas de
XP:

• Metodología de programación: Diseño sencillo, testing,


refactorización y codificación con estándares.
• Metodología de equipo: Propiedad colectiva del código,
programación en parejas, integración continua, entregas
semanales e integridad con el cliente.
• Metodología de proceso: Cliente in situ, entregas frecuentes y
planificación

Ventajas
• Esta metodología involucra al cliente, lo que le da confianza del
producto.
• Es consistente con métodos modernos de desarrollo.
• Ahorro de dinero y tiempo ya que la documentación es menor.

10 | P á g i n a
1.3 Metodologías de desarrollo de software | Cesar Elías Rosas Flores

Desventajas
• La metodología solo es efectiva si los participantes del proyecto se
involucran.
• Requiere reuniones frecuentes a (normalmente) expensas del
cliente.
• Las personalidades chocantes pueden debilitar la estructura del
proyecto.

Kanban

Esta metodología se basa en la idea de que el trabajo en curso debería


limitarse, y sólo deberíamos empezar con algo nuevo cuando un bloque
de trabajo anterior haya sido entregado o ha pasado a otra función
posterior de la cadena. La metodología Kanban utiliza un mecanismo de
control visual para hacer seguimiento del trabajo conforme este viaja a
través del flujo de valor. Normalmente, se emplea un panel o pizarra con
notas adhesivas o un panel electrónico de tarjetas para gestionar el flujo
de trabajo y las asignaciones. Las mejores prácticas apuntan al uso de
ambos métodos.

El aporte principal de Kanban a las metodologías agiles es que, a través


de la implementación de tarjetas visuales, proporciona transparencia al
proceso, ya que su flujo de trabajo expone los cuellos de botella, colas,
variabilidad y desperdicios a lo largo del tiempo y todas las cosas que
impactan al rendimiento de la organización en términos de la cantidad
de trabajo entregado y el ciclo de tiempo requerido para entregarlo.

11 | P á g i n a
1.3 Metodologías de desarrollo de software | Cesar Elías Rosas Flores

La cantidad y nombre de las columnas, varía de acuerdo a las


necesidades de cada equipo y en la mayoría de los casos, éstas, son
subdivididas en dos columnas: cola de espera y en curso.

Ventajas
• Calidad garantizada todo lo que se hace debe salir bien en la
primera instancia, no hay margen de error. Para lograr esto no se
premia la rapidez, sino la calidad final de las tareas realizadas.
• Reducción del desperdicio: se basa en hacer solamente lo justo y
necesario, para garantizar que se haga bien.
• Flexibilidad: es necesario poder priorizar aquellas tareas entrantes
según las necesidades del momento y tener la capacidad de dar
respuesta a estas tareas imprevistas.

Desventajas
• Los costos pueden verse elevados por la prioridad de calidad.
• Tiempos alargados de etapa, ya que no se cambia de etapa hasta
que la calidad del resultado cuente con lo esperado.

12 | P á g i n a
1.3 Metodologías de desarrollo de software | Cesar Elías Rosas Flores

Feature Driven Development (FDD)

Como las otras metodologías adaptables, se enfoca en iteraciones cortas


que entregan funcionalidad tangible. Dicho enfoque no hace énfasis en
la obtención de los requerimientos sino en cómo se realizan las fases de
diseño y construcción. Sin embargo, fue diseñado para trabajar con otras
actividades de desarrollo de software y no requiere la utilización de
ningún modelo de proceso específico. Hace énfasis en aspectos de
calidad durante todo el proceso e incluye un monitoreo permanente del
avance del proyecto.

FDD se basa en un ciclo muy corto de iteración, nunca superior a dos


semanas, y en el que el análisis y los desarrollos están orientados a
cumplir una lista de características que tiene que tener el software a
desarrollar.

Características a cumplir
• Debe ser simple y poco costoso de desarrollar.
• Debe aportar valor al cliente y ser relevante para su negocio.
• Debe poderse expresar en términos de acción, resultado y objeto.

Ventajas
• Importancia de la simplicidad, al eliminar el trabajo innecesario.
• Mejora continua de los procesos y el equipo de desarrollo.
• Evita malentendidos de requerimientos entre el cliente y el equipo.
• Atención continua a la excelencia técnica y al buen diseño.

Desventajas
• Falta de documentación del diseño. El código no puede tomarse
como una documentación. En sistemas de tamaño grande se
necesita leer los cientos o miles de páginas del listado de código
fuente.
• Fuerte dependencia de las personas. Como se evita en lo posible la
documentación y los diseños convencionales, los proyectos ágiles
dependen críticamente de las personas.
• Falta de reusabilidad. La falta de documentación hace difícil que
pueda reutilizarse el código

13 | P á g i n a
1.3 Metodologías de desarrollo de software | Cesar Elías Rosas Flores

Bibliografía

• Kent Beck, Martin Fowler, “Planning Extreme Programming”.


2000.
• Ron Burback, “Software Engineering Methodology”. 1998.
• Cronin, G. “Extreme Solo: A Case Study in Single Developer
extreme Programming”. University of Auckland. 2003.
• Letelier P., Penadés C., “Metodologías ágiles para el desarrollo de
Software: eXtreme Programming (XP)”, Universidad Politécnica
de Valencia.
• https://www.tatvasoft.com/blog/top-12-software-development-
methodologies-and-its-advantages-disadvantages/

14 | P á g i n a

También podría gustarte