Please enable JavaScript.
Coggle requires JavaScript to display documents.
Metodologías de desarrollo de software - Coggle Diagram
Metodologías de desarrollo de software
Metodología
es
involucrar el uso de diferentes herramientas, técnicas, métodos y modelos de desarrollo. Por lo general, este tipo de enfoque requiere documentación para que los programadores, al planificar un proyecto.
Metodologías Tradicionales
Metodología en cascada: Framework lineal.
el estilo del modelo en cascada, es que no podrás avanzar a la siguiente fase, si la anterior no se encuentra totalmente terminada, pues no tiene porque haber vuelta atrás
fases de desarrollo de software del modelo en cascada
Análisis de Requisitos. objetivos de lo que el software debe hacer al terminar el desarrollo, sin entrar en detalles de la parte interna, los cuales se verán durante el proceso
Diseño del Sistema. Aquí se elaborará lo que es la estructura del sistema y se determinarán las especificaciones para cada una de las partes del sistema que se planea desarrollar
Diseño del Programa. En este punto, aún no ingresamos a lo que es la escritura de código, sin embargo, ya se realizan los algoritmos que se van a utilizar en la programación.
Codificación. Seguramente como programador, esta es la parte que estabas esperando, pues ahora es momento de empezar a escribir todo el código que será necesario para el desarrollo del software. Para este punto, la velocidad y el tiempo que se requiera, dependerá mucho del lenguaje de programación que vayas a utilizar.
Ejecución de Pruebas. La codificación ha terminado y ahora es momento de verificar que nuestro sistema es realmente funciona, antes de que el cliente empiece a utilizarlo. Aquí es recomendable que intentes mover lo más que se pueda tu software, con el objetivo de dañarlo intencionalmente.
Verificación. Esta fase consiste en la ejecución del Software por parte del usuario final.
Mantenimiento. Se solucionan errores, se quitan algunos bugs, se añaden funcionalidades, todo después de que el usuario final ya lo ha probado y utilizado en su fase final. Esta es posiblemente una de las fases más tediosas del modelo de desarrollo de software, pues debes estar atento a los comentarios de los usuarios, para ver qué cosas son las que no funcionan correctamente y a las cuales hay que darles mantenimiento
Método de Prototipos
Etapas de desarrollo de software del modelo de prototipos
Planeación. A diferencia de otras metodologías, la planeación debe ser muy rápida, en esta fase no puedes demorarte mucho, pues recuerda que solamente será un prototipo por el momento.
Modelado. Hacer el modelado será simple y te sigo recordando que solamente es un prototipo, al menos por ahora.
Elaboración del Prototipo. Ya que contamos con la planeación de lo que vamos a realizar y el modelado rápido, entonces es momento de elaborar el prototipo. Para esta instancia, ya no te diré que lo debes hacer rápido, puesto que te tomará el tiempo que tenga sea necesario elaborarlo, recuerda que este ya se muestra al cliente, así que ya es una fase importante.
Desarrollo. Posterior a contar con el prototipo elaborado y mostrado al cliente, es momento de comenzar el desarrollo. Este te tomará una gran cantidad de tiempo, dependiendo del tamaño del proyecto y el lenguaje de programación que se vaya a utilizar.
Entrega y Retroalimentación. Una de las cosas con las que cuenta el modelo de prototipos, es que una vez entregado el proyecto, debemos darle al cliente cierta retroalimentación.
Comunicación con el Cliente. Es importante que una vez entregado el proyecto, tengamos cierta comunicación con el cliente, básicamente para que nos indique si el proyecto es correcto o si desea agregarle ciertas funciones, nuestra metodología lo permite.
Entrega del Producto Final. Por último, solamente quedará entregar el sistema elaborado mediante esta metodología.
Consiste básicamente en que en base a los requerimientos y necesidades que tiene el cliente, se realiza de forma rápida un prototipo, este no vendrá completo ni mucho menos terminado, pero si permitirá contar con las bases necesarias para que cualquier programador pueda seguir trabajando en el hasta llegar al código final.
Modelo Incremental o Iterativo y Creciente
Es una combinación de modelos lineales e iterativos o modelos de piso y prototipo. Básicamente implica hacer varias iteraciones del modelo en cascada pero no completar ninguna, y con la iteración se crea un desarrollo de producto que le permite agregar componentes adicionales, especificaciones, funciones, opciones, nuevas funciones y usuarios cada vez que lo necesite después de la iteración.
Fases de desarrollo de software del Modelo Incremental
Inicialización. como en todo modelo de desarrollo, debe haber una inicialización, aquí se puede hablar de dar una idea, de tener algunos requisitos que se buscan en el proyecto y ciertas especificaciones que se pueden manejar
Periodos de Iteración. Durante el desarrollo del proyecto, es cuando damos inicio a las iteraciones. La primera iteración se realiza con las características iniciales, básicamente al final de la primera iteración, queda un pequeño prototipo de lo que será el proyecto, pero se puede volver a inicializar la iteración y realizar modificaciones en los procesos, como el análisis y las especificaciones o funciones que el usuario final requiere para su sistema.
Lista de Control. Es importante que conforme se vaya realizando cada iteración, se vaya llevando un control del mismo en una lista. Como si fuera un programa que recibe actualizaciones constantemente. Cada una de las actualizaciones o iteraciones deberá ser.
Metodologías Ágiles
Metodología Scrum
Caracteristicas
Desarrollo Incremental. Una metodología ágil sin desarrollo incremental, no puede ser considerada Scrum. Con una metodología Scrum, el desarrollo se irá incrementando poco a poco, sin importar el orden en el cual se lleven a cabo los procesos.
Calidad de las personas. Básicamente la calidad de un producto, no será analizada en base a la calidad de cada uno de los procesos llevados a cabo. Al contrario, la calidad dependerá de las personas, la auto organización y el conocimiento de los equipos de trabajo.
Adiós al Secuencial y Cascada. Aquí en el modelo Scrum, hay algo a lo que se le denomina, solapamiento. Esto consiste en que no importa en que proceso te encuentres, si un proceso necesita ser trabajado.
La comunicación es Fundamental. Una de las cosas que se realizan, son los equipos de trabajo, sin embargo acá la ventaja que tendrás es que podrás estar en constante comunicación con los otros equipos de trabajo
Procesos con los cuales funciona la metodología Scrum
Product Backlog. El Product Backlog no es más que una lista de las funcionalidades del producto a desarrollar. Este debe ser elaborado por el Product Owner. Digamos que el objetivo base del Product Owner, es que nos de respuesta a la pregunta “¿Qué hay que hacer?”.
Sprint Backlog. Consiste básicamente en seleccionar algunos de los puntos escritos en el Product Backlog, los cuales procederán a ser realizados.
Sprint Planning Meeting. Antes de iniciar un Sprint, el cual es la fase de desarrollo, se realiza lo que es un Sprint Planning Meeting. En este proceso del Scrum, es una reunión que se realiza para definir plazos y procesos a efectuarse para el proyecto establecido en el Product Backlog.
Daily Scrum o Stand-up Meeting. Cuando un Sprint está en proceso, después de haber hecho la planeación del proyecto mediante plazos y procesos, entonces entramos a lo que son los Daily Scrum o Stand-up Meeting. Aquí básicamente lo que se hace son reuniones diarias mientras se está llevando a cabo un Sprint, para responder las siguientes preguntas: ¿Que hice ayer?, ¿Qué voy a hacer hoy, ¿Qué ayuda necesito?
Sprint Review. El Sprint Review, es básicamente una reseña de lo que fue el Sprint. Consiste específicamente en la revisión del Sprint terminado y para este punto ya tendría que haber algo que mostrarle al cliente, algo realmente visual o tangible para que se pueda analizar un cierto avance.
Sprint Retrospective. Para concluir, el Sprint Retrospective, permite al equipo analizar los objetivos cumplidos, si se cometieron errores, visualizarlos y tratar de no cometerlos nuevamente mas adelante. Básicamente también sirve este proceso para lo que son la implementación de mejoras.
Metodología Kanban
Este es un método japonés que consiste en etiquetar cada proceso a realizar, también conocido como el "sistema de producción productiva y eficiente"
Principios Básicos de Kanban
Garantía de Calidad. Algo por lo que destaca Kanban, es que el ser una metodología ágil, no es sinónimo de trabajar a las carreras o de hacer todo de golpe. Kanban promueve la calidad antes que la velocidad.
Desperdicios. Basado en lo que es el principio YAGNI, la metodología kanban trabaja de una forma en la cual, no solamente se ofrece una mayor calidad en el producto, si no que además se optimizan tiempos y costos.
Mejora Continua. Algo interesante de la metodología Kanban, es que no solamente de trata de un sistema diseñado para el proceso de desarrollo de Software, se puede implementar en el desarrollo de cualquier tipo de producto, tal y como lo hizo Toyota.
Es Flexible. Aquí es donde volvemos a hacer comparaciones con las metodologías de antaño, donde la flexibilidad no existía, como si fueran metodologías del abuelo estricto, acá eso no existe.
Configuración una estrategia Kanban?
Definir el Flujo de Trabajo. Una vez que ya tienes el tablero que es requisito para esta metodología, es entonces cuando podrás empezar a seccionarlo dependiendo del número de tareas, fases o proyectos que tengas en puerta. Considera que el tablero debe estar a la vista de todo el equipo de trabajo, pues será necesario estar al pendiente de los procesos y de ir actualizándolos conforme se vaya avanzando en él.
Fases del Ciclo de Producción. Es importante que te des cuenta, de cómo debes seccionar el tablero para ir marcando el flujo de producción. En este caso es realmente necesario que los procesos sean divididos en pequeños segmentos, para que se pueda agilizar y no se quede estancado en uno con demasiada duración.
Stop Starting, start finishing. La filosofía de Kanban, trabaja de esta forma, no te voy a envolver en términos que te puedan confundir pues la idea es obvia: “No se empieza una nueva tarea, hasta terminar la otra”.
Tener un Control. Algo con lo que trabaja Kanban, es con el control del flujo de trabajo. Si bien la idea es que los trabajadores tengan actividad realmente constante y no se detengan aun cuando terminen sus tareas. Kanban permite llevar un control de todo gracias a las notas que se van colocando.
Metodología XP
Características que componen la metodología XP
Tipo de Desarrollo Iterativo e incremental. El método está basado en lo que son las mejoras continuas, a base de iteraciones y por supuesto un desarrollo incremental al estilo espiral.
Pruebas Unitarias. Se utiliza software de codificación eso sí, dependiendo del lenguaje que estemos usando es la herramienta que nos corresponde, pero de este modo se analiza el código y solucionan errores, antes de validarlo y darlo por bueno.
Trabajo en Equipo. Más especifico todavía, es el trabajo en parejas, el objetivo es que el enfoque en parejas sea mayor, las distracciones son menores y el aprendizaje del uno con el otro permite que el avance del proyecto sea mucho más eficiente que cuando una persona es la encargada.
Alguien del equipo trabaja con el cliente. Es fundamental que el cliente intervenga en el desarrollo, pero obviamente el no estará en la sala de desarrollo, se debe asignar a una persona que sea le encargada de tener las reuniones con el cliente de forma constante
Corrección de Errores. Algo importante, el hecho de que la metodología XP sea realmente rápida para el desarrollo.
Reetructuración del Código. La idea es clara una refacturación del código siempre se debe realizar. Con esto lo que haremos es simplificar el código pero no las funciones
El Código es de todos. La idea es que si uno no detecta un error, otro lo podrá hacer, por eso el código fuente es compartido entre todos.
Código simple es la clave. Algo importante con la metodología extrema, es que la simplicidad siempre llevará la ventaja. Si el código fuente es muy complejo, posiblemente lleve muchas horas realizar los cambios e incluso una alternativa seria ya no hacer ningún cambio para no perder tiempo.
Esta metodología es posiblemente la más destacada de las metodologías ágiles y esto se debe a su gran capacidad de adaptación ante cualquier tipo de imprevisto que surja. Pues la idea no es mantener ciertos requisitos desde que se está elaborando el proyecto, sino que, durante el proceso, estos vayan cambiando o vayan evolucionando gradualmente sin complicaciones. Es mejor adaptarte en el proceso a los requisitos que vayan apareciendo, que iniciar con requisitos y desarrollar un proyecto en base a eso.