Actividad 1.2 - Reporte de Investigacion

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

INSTITUTO TECNOLOGICO DE

FRONTERA COMALAPA
ASIGNATURA:
FUNDAMENTOS DE INGENIERIA DE
SOFTWARE

PROFESOR:

BERNARDO VELAZQUEZ VELAZCO

TAREA:

ACTIVIDAD 1.2 – REPORTE DE


INVESTIGACION
ALUMNO:
ARELI BRAVO
NUMERO DE
CONTROL:
211260071

SEMESTRE:

CARRERA:

INGENIERA EN SISTEMAS
COMPUTACIONALES.

FRONTERA COMALAPA CHIAPAS


29 DE OCTUBRE DEL 2023
Contenido
Introducción ........................................................................................................................................ 2
¿Qué es una metodología de desarrollo de software? ..................................................................... 3
¿Qué tipos de metodologías de desarrollo de software existen? ..................................................... 3
Metodologías de desarrollo de software tradicionales..................................................................... 3
Waterfall (cascada)....................................................................................................................... 4
Prototipado .................................................................................................................................... 4
Espiral............................................................................................................................................. 4
Incremental .................................................................................................................................... 4
Diseño rápido de aplicaciones (RAD) ....................................................................................... 4
Metodologías de Desarrollo de software Ágiles................................................................................ 5
DEVOPS ........................................................................................................................................ 6
AGILE ............................................................................................................................................. 6
SCRUM .......................................................................................................................................... 7
Extreme Programming o XP ....................................................................................................... 7
Kanban ........................................................................................................................................... 8
Diferencias entre metodología tradicional y ágil............................................................................... 8
Conclusión ......................................................................................................................................... 11
Introducción
En la actualidad la rapidez y el dinamismo en la industria del software han hecho
replantear los cimientos sobre los que se sustenta el desarrollo de software
tradicional. Estudios recientes y el mismo mercado actual está marcando la
tendencia en la ingeniería del software teniendo como características principales
atender a las necesidades de rapidez, flexibilidad y variantes externas que hacen
de nuestro entorno una ventaja más competitiva al aumentar la productividad y
satisfacer las necesidades del cliente en el menor tiempo posible para proporcionar
mayor valor al negocio.

Ante esta situación, el grado de adaptación de las metodologías tradicionales a


estos entornos de trabajo no eran del todo eficientes y no cubrían las necesidades
del mercado actual. En la actualidad existen una gran cantidad de metodologías
para el desarrollo de software, separadas en dos grandes grupos; las metodologías
tradicionales o pesadas y las metodologías agiles.

Las metodologías tradicionales se basan en las buenas prácticas dentro de la


ingeniería del software, siguiendo un marco de disciplina estricto y un riguroso
proceso de aplicación. Las metodologías agiles, en cambio, representan una
solución a los problemas que requieren una respuesta rápida en un ambiente
flexible y con cambios constantes, haciendo caso omiso de la documentación
rigurosa y los métodos formales.

El objetivo de esta investigación es presentar e introducir sobre las existentes


metodologías para el desarrollo de software y los paradigmas que marcan la
diferencia entre un método estructurado y un método ágil para así poder identificar
cual se adapta de manera más eficiente a un proyecto determinado.

El software es ahora la clave del éxito de muchas empresas y negocios, ya que sin
él sería casi imposible el mantenimiento y crecimiento de los mismos. Lo que
diferencia una compañía de otra es la suficiencia, exactitud y oportunidad de la
información dada por el software. El desarrollo de software se ha convertido en una
industria con crecimiento vertical en los últimos años. Hace un par de décadas se
sostenía la teoría de que los países que poseían los mejores recursos naturales
estaban destinados a ser los más ricos y poderosos del mundo. Indudablemente los
recursos naturales tienen un papel importante en la economía de los países, sin
embargo, poco a poco se fue acuñando una nueva ideología que se sintetiza en lo
siguiente: “El que posee la información y el conocimiento y hace mejor uso de él, es
el que tiene el poder”.

¿Qué es una metodología de desarrollo de software?


Una metodología de desarrollo de software es un conjunto de prácticas, técnicas y
herramientas utilizadas por los equipos de desarrollo de software para planificar,
diseñar, construir, probar y entregar software de alta calidad de manera eficiente y
efectiva.

Estas metodologías establecen una estructura para el ciclo de vida del software,
que incluye la definición de requisitos, el diseño, la codificación, la prueba, la
implementación y el mantenimiento. También establecen roles y responsabilidades
para los miembros del equipo, procesos para la gestión de proyectos, la
comunicación y el seguimiento del progreso.

¿Qué tipos de metodologías de desarrollo de software existen?


Existen 2 tipos de metodologías de desarrollo de software: metodologías
tradicionales y metodologías ágiles. A continuación, se explican las características
de cada una de ellas.

Metodologías de desarrollo de software tradicionales


Las metodologías de desarrollo de software tradicionales se 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.

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.

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.

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.

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ías de Desarrollo de software Ágiles


Este enfoque nace como respuesta a los problemas que puedan ocasionar las
metodologías tradicionales y se basa en dos aspectos fundamentales, retrasar las
decisiones y la planificación adaptativa. Basan su fundamento en la adaptabilidad
de los procesos de desarrollo. Un modelo de desarrollo ágil generalmente es un
proceso Incremental (entregas frecuentes con ciclos rápidos), también Cooperativo
(clientes y desarrolladores trabajan constantemente con una comunicación muy fina
y constante), Sencillo (el método es fácil de aprender y modificar para el equipo) y
finalmente Adaptativo (capaz de permitir cambios de último momento). Las
metodologías ágiles proporcionan una serie de pautas y principios junto a técnicas
pragmáticas que hacen que la entrega del proyecto sea menos complicada y más
satisfactoria tanto para los clientes como para los equipos de trabajo, evitando de
esta manera los caminos burocráticos de las metodologías tradicionales, generando
poca documentación y no haciendo uso de métodos formales. Estas metodologías
ponen de relevancia que la capacidad de respuesta a un cambio es más importante
que el seguimiento estricto de un plan.

En la actualidad, las metodologías ágiles de desarrollo de software son ampliamente


utilizadas debido a su alta flexibilidad y capacidad para adaptarse rápidamente a los
cambios.

Estas metodologías permiten a los equipos de trabajo ser más productivos y


eficientes al tener claridad sobre las tareas que deben realizar en cada momento.
Además, proporcionará la flexibilidad necesaria para ajustar el software a medida
que surjan nuevas necesidades, lo que resultará en la construcción de aplicaciones
más funcionales y satisfactorias para los usuarios.

Las metodologías de desarrollo de software ágiles se fundamentan en el enfoque


incremental, en el cual se añaden nuevas funcionalidades a la aplicación final en
cada ciclo de desarrollo.
Sin embargo, a diferencia de los enfoques tradicionales, los ciclos en las
metodologías ágiles son más cortos y rápidos. Esto implica que se realicen cambios
y mejoras de forma gradual, incorporando pequeñas funcionalidades en lugar de
cambios masivos. Este enfoque permite la formación de equipos de trabajo
autosuficientes e independientes, los cuales se reúnen periódicamente para
compartir las novedades y los avances realizados.

De esta manera, se construye y perfecciona progresivamente el producto final.


Además, la metodología ágil permite una interacción cercana con el cliente, quien
puede aportar nuevos requisitos o correcciones a medida que el proyecto avanza,
ya que puede observar en tiempo real el progreso realizado.

DEVOPS

Esta metodología de gestión del trabajo tecnológico permite la integración de las


áreas de Desarrollo, Operaciones y Seguridad para garantizar la efectividad de
aplicación y obtener un mejor resultado. Este enfoque genera la forma óptima de
agilidad y rapidez de reacción en procesos para el desarrollo de software,
integrando estándares de ciberseguridad en el proyecto. Una ventaja de DevOps es
su facilidad de fusión e integración con otras metodologías ágiles que se apliquen
en tu empresa incrementando los beneficios del negocio y por supuesto del cliente
final.

AGILE

Agile o Manifiesto Agile, es un modelo metodológico que permite mejorar la


planificación de proyectos y producción de resultados con la finalidad de evitar la
pérdida de tiempo y recursos en las tareas asignadas. Este método ayuda a
mantener la orientación en las directrices del proyecto sin ser tan rígido como otros
métodos tradicionales tipo Waterfall. Al tener la capacidad de tomar a tiempo las
mejores opciones sin comprometer la integridad del proyecto se incrementa la
productividad del mismo, apuntando correctamente al objetivo final.

Entre algunas ventajas de Agile se destacan:


• Mejora la calidad del producto final al minimizar errores en los procesos.
• Genera satisfacción del empleado y conciencia de equipo.
• Permite acortar los ciclos de producción minimizando los tiempos.
• Posee mejor asignación de recursos incentivando la producción.

SCRUM

SCRUM es un modelo que integra un conjunto de prácticas y roles un marco de


trabajo o Framework, donde el desarrollador busca un único producto o servicio
en un periodo de tiempo determinado. La versatilidad de SCRUM permite que los
proyectos desarrollados con esta metodología sean más adaptables, interactivos,
rápidos, flexibles y eficaces. Una característica de esta metodología es la división
de sus tareas y roles muy bien estructuradas y optimizadas.

• Product Owner/Dueño del producto. Es el responsable del proyecto en


cuanto al desarrollo, mantenimiento y priorización de las tareas.
• El Scrum Master. Es la persona responsable de garantizar que el trabajo del
equipo se realice según las bases de Scrum.
• Development Team Members/Miembros del Equipo de desarrollo. Son los
responsables del desarrollo de cada una de las tareas.

Extreme Programming o XP

Extreme Programming es una metodología que permite mejorar la eficiencia en el


desarrollo de software en las empresas, aplicando prácticas de ingeniería en la
creación de los productos.

XP compite muy de cerca con Scrum en el entorno TI, pero ha perdido un poco de
popularidad en los últimos años sin dejar de ser una metodología exitosa para los
negocios tecnológicos. Para su aplicación debes definir previamente las cuatro
variables que posee el proyecto que son Coste, Tiempo, Calidad y Alcance.

En la versatilidad de este método permite que tres de las variables sean fijadas por
personas externas al equipo de desarrollo como puede ser el cliente o el encargado
del proyecto (no de desarrollo). La otra variable queda bajo la responsabilidad del
departamento de TI quien fija su valor para darle el equilibrio y la mejor toma de
decisión en el proceso.

Esta estructura le da un carácter de flexibilidad y responsabilidad compartida que


permite una mejor acción en el desarrollo del software, ya que todos forman parte
del resultado que se obtenga al final.

Kanban

La metodología Kanban proviene de las técnicas gerenciales empleadas por Toyota


para agilizar la producción en sus fábricas minimizando errores y pérdidas. Por lo
general este método se representa en forma de un tablero donde se refleja el flujo
de los procesos en un trabajo designado, permitiendo a cada responsable mover
sus tareas libremente según los avances, de esta forma se genera mayor confianza
y control a nivel visual. Esta metodología posee una serie de principios que deben
aplicarse para poder cumplir con el máximo rendimiento en el flujo de trabajo.

• Visualizar lo que hace. La visualización por parte de todos los responsables


del proyecto en el flujo de las tareas permite mantenerse atentos y enterados
sobre el desarrollo del proyecto.
• Limitar la cantidad de trabajo en proceso. El establecimiento de metas
alcanzables permite al grupo un equilibrio en el flujo del trabajo y previene el
exceso de procesos centralizados en pocos responsables.
• Realizar seguimiento del tiempo. El manejo del tiempo de forma organizada
permite obtener resultados precisos en el proyecto.
• Lectura fácil de indicadores visuales. La visualización de los tipos de trabajo,
prioridades, fechas y demás detalles empodera al equipo en el desarrollo de
soluciones ajustadas a la realidad.
• Identificar los cuellos de botella y eliminar lo que resulta descartable. El
manejo adecuado de los plazos y ciclos de ejecución, así como el flujo de los
informes, permiten evaluar el rendimiento del proyecto y detectar problemas
eliminando todo aquello que genere obstáculos.

Diferencias entre metodología tradicional y ágil


En las metodologías tradicionales el principal problema es que nunca se logra
planificar bien el esfuerzo requerido para seguir la metodología. Pero entonces, si
logramos definir métricas que apoyen la estimación de las actividades de desarrollo,
muchas prácticas de metodologías tradicionales podrían ser apropiadas.

El no poder predecir siempre los resultados de cada proceso no significa que


estemos frente a una disciplina de azar. Lo que significa es que estamos frente a la
necesidad de adaptación de los procesos de desarrollo que son llevados por parte
de los equipos que desarrollan software.

Tener metodologías diferentes para aplicar de acuerdo con el proyecto que se


desarrolle resulta una idea interesante. Estas metodologías pueden involucrar
prácticas tanto de metodologías ágiles como de metodologías tradicionales. De esta
manera podríamos tener una metodología por cada proyecto, la problemática sería
definir cada una de las prácticas, y en el momento preciso definir parámetros para
saber cuál usar. Es importante tener en cuenta que el uso de un método ágil no vale
para cualquier proyecto.

Sin embargo, una de las principales ventajas de los métodos ágiles es su peso
inicialmente ligero y por eso las personas que no estén acostumbradas a seguir
procesos encuentran estas metodologías bastante agradables.
Conclusión
Hoy en día la comunicación, la tecnología y los sistemas de información avanzan y
evolucionan a una velocidad exponencial generando consigo que la gestión de
proyectos informáticos esté a la altura de la velocidad de los cambios ocasionados
por esta evolución.

El mundo del desarrollo del software ha cambiado drásticamente desde la aparición


de internet y la gran cantidad de herramientas que nos permiten crear ecosistemas
de trabajo mucho más colaborativos en los que el flujo de información es mucho
más rápido que con las estructuras tradicionales.

En esta nueva generación, las metodologías tradicionales de desarrollo de software


fueron quedado obsoletas en determinados sectores, en los que la propia demanda
de los usuarios es más rápida que la capacidad de producción de las empresas
ancladas a las viejas metodologías de gestión de proyectos de sistemas
informáticos.

Este gran impacto en las tecnologías, ha generado la necesidad de encontrar y crear


nuevas metodologías de trabajo y gestión, que aseguren la entrega en tiempo y
forma del producto. Esta necesidad de calidad, eficiencia, flexibilidad y rapidez en
la entrega de un producto informático se volvió prioridad y en conjunto con su
necesidad se crearon las nombradas Metodologías Agiles.

El mundo en general y la vida de las personas, día a día se vuelve más ágil en todos
sus aspectos, siendo prácticamente inevitable la evolución en los sistemas de
información para poder atacar ésta demanda. Los métodos ágiles y los tradicionales
no son competidores directos. Cada uno de ellos tiene su propio segmento de
aplicación o terreno en base a las necesidades del proyecto y de bien saber
distinguir e identificar cual es la más adecuada en base a las características de
nuestro proyecto, necesidades y recursos.

Algunos aspectos del desarrollo de software se beneficiarán del enfoque agilista


mientras otros obtendrán beneficios de un enfoque tradicional-predictivo menos ágil
y más estructurado. Ambos metodologías, pueden fracasar si son mal
implementadas, gestionadas y administradas. No podemos decir que exista una
metodología mejor que otra sino que dependerá de la naturaleza de la empresa y la
forma de organización de sus procesos internos y de la capacidad de los líderes del
proyecto de poder identificar la metodología que más se adecua e implementarla de
manera eficiente. Sin embargo, la tendencia natural actual indica que las
metodologías agiles están ganando terreno muy rápidamente lo que en algunos
años podrían generar la extinción definitiva de las metodologías tradicionales.
Referencias
Innevo. (27 de octubre de 2023). Metodologías de Desarrollo de Software: ¿Cuál Elegir? Obtenido
de Calidad de desarrollo de software: https://blog.innevo.com/metodologias-desarrollo-
software

Soluciones, I. (27 de octubre de 2023). blog. Obtenido de ¿CUÁLES SON LAS METODOLOGÍAS DE
DESARROLLO DE SOFTWARE?: https://www.itesoluciones.com/cuales-son-las-
metodologias-de-desarrollo-de-software/

Wikipedia. (27 de octubre de 2023). Metodología de desarrollo de software. Obtenido de Sistemas:


https://es.wikipedia.org/wiki/Metodolog%C3%ADa_de_desarrollo_de_software

También podría gustarte