Metodologias de software ISI-311 Trabajo Practico#2
1. METODOLOGIAS DE
DESARROLLO DE SOFTWARE
ANALISIS Y DISEÑO DE SISTEMAS - II
DOCENTE: DAVID ENRIQUE MENDOZA GUTIERREZ . Carrera: INGENIERIA DE SISTEMAS – NM Periodo: I – 2021 Sede: Santa Cruz
● DOCENTE: DAVID ENRIQUE MENDOZA GUTIERREZ
● INTEGRANTES:
- RAEL ZABALA ORELLANA ( 52533 )
-RICARDO ANDRES SAUCEDO QUIROZ (56981)
-VICTOR CANLLAVI JAEN(57443)
2. METODOLOGIAS DE DESAROLLO DE
SOFTWARE
Son un conjunto de técnicas y métodos
organizativos que se aplican para diseñar
soluciones de software informático. El
objetivo de las distintas metodologías es el
de intentar organizar los equipos de trabajo
para que estos desarrollen las funciones de
un programa de la mejor manera posible.
DOCENTE: DAVID ENRIQUE MENDOZA GUTIERREZ . Carrera: INGENIERIA DE SISTEMAS – NM Periodo: I – 2021 Sede: Santa Cruz
3. ¿QUÉ TIPOS DE METODOLOGÍAS DE
DESARROLLO DE SOFTWARE EXISTEN?
En la actualidad se pueden
diferenciar dos grandes grupos de
metodologías de desarrollo de
software:
LAS ÁGILES Y LAS TRADICIONALES.
A continuación, se explican las
características de cada una de ellas.
DOCENTE: DAVID ENRIQUE MENDOZA GUTIERREZ . Carrera: INGENIERIA DE SISTEMAS – NM Periodo: I – 2021 Sede: Santa Cruz
4. 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.
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 son
demasiado adaptables a los constantes cambios debido
a su rigidez, pero siguen siendo efectivas al dia de hoy
para distintos tipos de proyectos.
DOCENTE: DAVID ENRIQUE MENDOZA GUTIERREZ . Carrera: INGENIERIA DE SISTEMAS – NM Periodo: I – 2021 Sede: Santa Cruz
5. 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.
DOCENTE: DAVID ENRIQUE MENDOZA GUTIERREZ . Carrera: INGENIERIA DE SISTEMAS – NM Periodo: I – 2021 Sede: Santa Cruz
6. WATERFALL (CASCADA) -
Los principios básicos son:
El proyecto se divide en fases secuenciales, con algunas
superposiciones y salpicaduras aceptables entre fases.
El énfasis está en la planificación, los horarios, las
fechas objetivo, los presupuestos y la implementación
de todo un sistema a la vez.
Se mantiene un estricto control a lo largo de la vida del
proyecto a través de una extensa documentación
escrita, revisiones formales y aprobación por parte del
usuario, y la administración de la tecnología de la
información que se realiza al final de la mayoría de las
fases antes de comenzar la siguiente fase. La
documentación escrita es un entregable explícito de
cada fase.
DOCENTE: DAVID ENRIQUE MENDOZA GUTIERREZ . Carrera: INGENIERIA DE SISTEMAS – NM Periodo: I – 2021 Sede: Santa Cruz
7. WATERFALL (CASCADA) AL DIA DE HOY
VENTAJAS
-Realiza un buen funcionamiento en equipos
débiles y productos maduros, por lo que se
requiere de menos capital y herramientas
para hacerlo funcionar de manera óptima.
-Es un modelo fácil de implementar y
entender.
-Está orientado a documentos.
-Es un modelo conocido y utilizado con
frecuencia.
-Promueve una metodología de trabajo
efectiva: Definir antes que diseñar, diseñar
antes que codificar.
DOCENTE: DAVID ENRIQUE MENDOZA GUTIERREZ . Carrera: INGENIERIA DE SISTEMAS – NM Periodo: I – 2021 Sede: Santa Cruz
DESVENTAJAS
-En la vida real, un proyecto rara vez
sigue una secuencia lineal, esto crea una
mala implementación del modelo, lo cual
hace que lo lleve al fracaso.
-El proceso de creación del software
tarda mucho tiempo ya que debe pasar
por el proceso de prueba y hasta que el
software no esté completo no se opera.
Esto es la base para que funcione bien.
-Cualquier error de diseño detectado en
la etapa de prueba conduce
necesariamente al rediseño y nueva
programación del código afectado,
aumentando los costos del desarrollo.
-Una etapa determinada del proyecto no
se puede llevar a cabo a menos de que
se haya culminado la etapa anterior.
8. 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.
DOCENTE: DAVID ENRIQUE MENDOZA GUTIERREZ . Carrera: INGENIERIA DE SISTEMAS – NM Periodo: I – 2021 Sede: Santa Cruz
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.
DOCENTE: DAVID ENRIQUE MENDOZA GUTIERREZ . Carrera: INGENIERIA DE SISTEMAS – NM Periodo: I – 2021 Sede: Santa Cruz
10. INCREMENTAL
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.
DOCENTE: DAVID ENRIQUE MENDOZA GUTIERREZ . Carrera: INGENIERIA DE SISTEMAS – NM Periodo: I – 2021 Sede: Santa Cruz
11. DISEÑO RÁPIDO DE APLICACIONES (RAD)
● 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.
DOCENTE: DAVID ENRIQUE MENDOZA GUTIERREZ . Carrera: INGENIERIA DE SISTEMAS – NM Periodo: I – 2021 Sede: Santa Cruz
12. METODOLOGÍAS DE DESARROLLO DE
SOFTWARE ÁGILES Son las más utilizadas hoy en día debido a su alta flexibilidad y
agilidad. Los equipos de trabajo que las utilizan son mucho más
productivos y eficientes, ya que saben lo que tienen que hacer
en cada momento. Además, la metodología permite adaptar el
software a las necesidades que van surgiendo por el camino, lo
que facilita construir aplicaciones más funcionales.
LAS PRINCIPALES
METODOLOGIAS AGILES
SON:
DOCENTE: DAVID ENRIQUE MENDOZA GUTIERREZ . Carrera: INGENIERIA DE SISTEMAS – NM Periodo: I – 2021 Sede: Santa Cruz
13. KANBAN(TARJETA VISUAL)
Consiste en un sistema de tarjetas para la gestión de piezas dentro de un proceso de producción,
identificando al proveedor, la pieza en cuestión y el punto de la fábrica donde se encuentra. Esto
permite reponer las piezas necesarias y en el momento justo para incorporarlas a los pedidos en
producción.
DOCENTE: DAVID ENRIQUE MENDOZA GUTIERREZ . Carrera: INGENIERIA DE SISTEMAS – NM Periodo: I – 2021 Sede: Santa Cruz
14. SCRUM
Es también una metodología incremental que divide los requisitos y tareas de forma
similar a Kanban. Se itera sobre bloques de tiempos cortos y fijos (entre dos y cuatro
semanas) para conseguir un resultado completo en cada iteración. Las etapas son:
planificación de la iteración (planning sprint), ejecución (sprint), reunión diaria (daily
meeting) y demostración de resultados (sprint review). Cada iteración por estas
etapas se denomina también sprint.
DOCENTE: DAVID ENRIQUE MENDOZA GUTIERREZ . Carrera: INGENIERIA DE SISTEMAS – NM Periodo: I – 2021 Sede: Santa Cruz
15. SCRUM -
Scrum permite la creación de equipos auto organizados impulsando
la co-localización de todos los miembros del equipo, y la
comunicación verbal entre todos los miembros y disciplinas
involucrados en el proyecto.
La metodología se basa en:
-El desarrollo incremental de los requisitos del proyecto en bloques
temporales cortos y fijos.
-Se da prioridad a lo que tiene más valor para el cliente.
-El equipo se sincroniza diariamente y se realizan las adaptaciones
necesarias.
-Tras cada iteración (un mes o menos entre cada una) se muestra al
cliente el resultado real obtenido, para que este tome las decisiones
necesarias en relación a lo observado.
-Se le da la autoridad necesaria al equipo para poder cumplir los
requisitos.
-Fijar tiempos máximos para lograr objetivos.
-Equipos pequeños (de 3 a 9 personas cada uno).
DOCENTE: DAVID ENRIQUE MENDOZA GUTIERREZ . Carrera: INGENIERIA DE SISTEMAS – NM Periodo: I – 2021 Sede: Santa Cruz
16. LEAN
Está configurado para que pequeños equipos de
desarrollo muy capacitados elaboren cualquier tarea
en poco tiempo. Los activos más importantes son las
personas y su compromiso, relegando así a un
segundo plano el tiempo y los costes. El aprendizaje,
las reacciones rápidas y potenciar el equipo son
fundamentales.
Inicialmente, originado en el Sistema de Proyección
de Toyota y ahora, apoyado por una corriente que
está surgiendo desde la comunidad Ágil. Este método
ofrece todo un marco teórico sólido y basado en la
experiencia, para las prácticas ágiles de gestión.
DOCENTE: DAVID ENRIQUE MENDOZA GUTIERREZ . Carrera: INGENIERIA DE SISTEMAS – NM Periodo: I – 2021 Sede: Santa Cruz
17. PROGRAMACIÓN EXTREMA (XP)
Es una metodología de desarrollo de
software basada en las relaciones
interpersonales, que se consideran la clave
del éxito. Su principal objetivo es crear un
buen ambiente de trabajo en equipo y que
haya un feedback constante del cliente. El
trabajo se basa en 12 conceptos: diseño
sencillo, testing, refactorización y
codificación con estándares, propiedad
colectiva del código, programación en
parejas, integración continua, entregas
semanales e integridad con el cliente, cliente
in situ, y planificación.
DOCENTE: DAVID ENRIQUE MENDOZA GUTIERREZ . Carrera: INGENIERIA DE SISTEMAS – NM Periodo: I – 2021 Sede: Santa Cruz
18. En Conclusión
A lo largo de los años se han desarrollado
diversos marcos de trabajo, cada uno con sus
propios puntos fuertes y débiles. Un marco
metodológico de desarrollo de software no es
necesariamente adecuado para todos los
proyectos. Cada uno de los marcos
metodológicos disponibles se adapta mejor a
determinados tipos de proyectos, en función
de diversas consideraciones técnicas,
organizativas, de proyecto y de equipo.
DOCENTE: DAVID ENRIQUE MENDOZA GUTIERREZ . Carrera: INGENIERIA DE SISTEMAS – NM Periodo: I – 2021 Sede: Santa Cruz
19. Nota Editorial: Posibles Confusiones
La "Programación estructurada" o la "Programación
Orientada a Objetos" son paradigmas o modelos de
programación. Indican pautas de comportamiento
en los sistemas de programación. No tienen que ver
con el ciclo de vida del software ni la manera en la
que debe realizarse cada tarea para un proyecto
concreto, así pues NO SON METODOLOGÍAS. Los
términos "Ciclo de vida en espiral", "Incremental",
en "Cascada", con "prototipo", etc., indican
esquemas generales de organización en las tareas
del ciclo de vida, unas con respecto a otras y con
respecto a otros aspectos como el tiempo, los
requisitos o el riesgo.
DOCENTE: DAVID ENRIQUE MENDOZA GUTIERREZ - INTEGRANTES: RAEL ZABALA ORELLANA - 52533
Estas “confusiones” Indican ideas estructurales
sencillas en el proceso de desarrollo, y no la manera
en la que debe realizarse cada tarea del ciclo para
un proyecto concreto, así pues, NO SON
METODOLOGÍAS. El lenguaje UML (Unified
Modeling Languaje) es un gran logro de la
ingeniería. Aún con sus carencias, es algo muy
importante: un lenguaje común para que todos los
profesionales del desarrollo de sistemas -de
software o no expresen sus ideas, pero UML no le
indica a nadie la manera de realizar las tareas en un
proyecto concreto: tan solo es una herramienta
para expresar ideas.