EV3. Taller Metodologias de Desarrollo de Software

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

SERVICIO NACIONAL DE APRENDIZAJE SENA

REGIONAL VALLE
CENTRO LATINOAMERICANO DE ESPECIES MENORES
FORMACIÓN VIRTUAL
FICHA: 2721413

TALLER: METODOLOGÌAS DE DESARROLLO DE SOFTWARE

APRENDIZ:
VALERIA LÓPEZ CASTAÑO

INSTRUCTOR:
FABIAN ALEXANDER GARCIA MARTINEZ

DUITAMA, BOYACÀ
2023
TABLA DE CONTENIDO
Contenido Pagina
¿Qué es y de que se compone una metodología de desarrollo de software? …. …3
Marco de trabajo tradicional…………………………………………………………..3
Marco de trabajo ágil………………………………………………………………. …3
Características fundamentales de un marco de trabajo tradicional ………………....5
Características fundamentales de un marco de trabajo ágil ……………………........5
Ejemplos de metodologías de desarrollo de software en marcos tradicionales ……5
Ejemplos de metodologías de desarrollo de software en marcos agiles …...……….8
Bibliografía …………………………………………………………………………………14
METODOLOGIAS DE DESARROLLO DE SOFTWARE
Las metodologías de desarrollo de software son un conjunto de procedimientos por
medio de los cuales buscamos alcanzar objetivos (en nuestro caso, en el campo de la
programación y todo lo relacionado con ella), enfocándonos en utilizar un conjunto de
habilidades y procedimientos con los cuales logramos lo planteado al principio del
proyecto o actividad.
Estas metodologías se componen básicamente de dos ramas, la parte teórica en donde
se conoce todo lo relacionado con ella, como se maneja y cuáles son sus beneficios y
la parte práctica, en donde se utilizan técnicas y métodos para alcanzar el objetivo
principal.
Las metodologías de desarrollo de software son realmente importantes ya que nos
ayudan a:
 Reducir la dificultad del proyecto ya que nos ayudan a dividirlo en diferentes
etapas y actividades, bajando así la dificultad de cada una de ellas.
 Organizar las tareas. Cuando tenemos un orden y mecanismo de procesos el
proyecto avanza de mejor manera.
 Agilizar procesos porque con estas se eliminan actividades innecesarias que
optimizan el tiempo
 Mejorar el resultado final del proyecto porque en la mayoría tenemos control
sobre las etapas predispuestas para el proyecto
Las metodologías de desarrollo de software las podríamos dividir en dos tipos. A
continuación, se presentan cada una de ellas:
Marco de trabajo tradicional: La metodología de trabajo tradicional se enfoca más en
la planificación y el control del proyecto. Buscan imponer disciplina al proceso de
desarrollo de software y de esa forma volverlo predecible y por ello eficiente. La
estimación de requisitos se realiza una única vez al principio del proyecto y es
precisamente por eso que nuestra estimación tendrá mucha importancia ya que de ella
dependen todos los recursos que emplearemos en el proyecto. Si queremos adoptar
una metodología tradicional, el desarrollo de un proyecto debe empezar siempre con un
riguroso proceso de captura de requisitos, análisis y diseño.
Marco de trabajo ágil: La metodología de trabajo ágil nació cuando se presento la
necesidad de abordar proyectos en los cuales no se conocía desde el principio
completamente los requerimientos de este. Además, este tipo de metodología se utiliza
cuando se necesita una adaptabilidad a lo largo del proceso de desarrollo de software.
Estas también proveen un conjunto de pautas y principios que buscan facilitar y
priorizar la entrega de producto sobre procesos de documentación exhaustiva,
haciéndolos más simples, donde interactúa el cliente final desde las primeras etapas
del proyecto.
El inicio de estas se dio en 2001 a partir del manifiesto ágil de software donde se
establecen cuatro valores fundamentales, los cuales son:
1. Individuos e interacciones sobre procesos y herramientas.
2. Software funcionando sobre documentación extensiva.
3. Colaboración con el cliente sobre negociación contractual.
4. Respuesta ante el cambio sobre seguir un plan.

El manifiesto ágil también establece 12 principios ágiles para materializar los valores
definidos, que son:
1. Nuestra principal prioridad es satisfacer al cliente a través de la entrega temprana y
continua de software de valor.

2. Son bienvenidos los requisitos cambiantes, incluso si llegan tarde al desarrollo.


Los procesos ágiles se doblegan al cambio como ventaja competitiva para el
cliente.

3. Entregar con frecuencia software que funcione, en periodos de un par de


semanas hasta un par de meses, con preferencia en los períodos breves.

4. Las personas del negocio y los desarrolladores deben trabajar juntos de forma
cotidiana a través del proyecto.

5. Construcción de proyectos en torno a individuos motivados, dándoles la


oportunidad y el respaldo que necesitan y procurándoles confianza para que
realicen la tarea.

6. La forma más eficiente y efectiva de comunicar información de ida y vuelta


dentro de un equipo de desarrollo es mediante la conversación cara a cara.

7. El software que funciona es la principal medida del progreso.

8. Los procesos ágiles promueven el desarrollo sostenido. Los patrocinadores,


desarrolladores y usuarios deben mantener un ritmo constante de forma
indefinida.

9. La atención continua a la excelencia técnica enaltece la agilidad.

10. La simplicidad como arte de maximizar la cantidad de trabajo que se hace es


esencial.

11. Las mejores arquitecturas, requisitos y diseños emergen de equipos que se


auto organizan.

12. En intervalos regulares, el equipo reflexiona sobre la forma de ser más efectivo
y ajusta su conducta en consecuencia”
CARACTERISTICAS FUNDAMENTALES DE UN MARCO DE TRABAJO
TRADICIONAL
Algunas de sus características fundamentales son:
 Van más enfocadas a la planificación y control del proyecto.
 Tienen una documentación exhaustiva y precisa de los artefactos que describen
los requisitos y los modelos del sistema en las etapas iniciales del desarrollo del
proyecto.
 Los requisitos están plenamente identificados y delimitados en el proyecto en
el cual se quiere aplicar.
 Permite el desarrollo de una estructura sencilla.
 Es muy difícil introducir cambios en el transcurso del proyecto.
 No incluyen al cliente desde el principio en el equipo de trabajo.

CARACTERISTICAS FUNDAMENTALES DE UN MARCO DE TRABAJO AGIL


Algunas de sus características fundamentales son:
 Se utilizan en proyectos donde no se tiene en el principio las especificaciones
determinadas.
 Siempre aplica procesos de adaptabilidad.
 Incluyen al cliente desde el principio como parte del equipo.
 Facilita y prevalece la entrega del producto en vez de basarse en mucha
documentación.
 Rápido y efectivo para ofrecer competitividad al cliente.
 Promueve la simplicidad.

EJEMPLOS DE METODOLOGIAS DE DESARROLLO DE SOFTWARE EN MARCOS


DE TRABAJO TRADICIONALES
1. Cascada: Es muy conocido en la ingeniería de software. Este modelo plantea
un proceso lineal donde las actividades de desarrollo de un producto o
servicios de software se agrupan en un conjunto de fases sucesivas donde
estas son desarrolladas una única vez y los resultados de cada fase son la
entrada requerida para cada fase subsiguiente, ninguna fase puede iniciar si la
fase anterior no ha sido finalizada generalmente mediante un formalismo que
puede ser un documento.
Este modelo se compone de cinco etapas principales, las cuales son:
 Requerimientos
 Diseño
 Implementación
 Verificación
 Mantenimiento
Y también se establecen cuatro tipos de roles, los cuales son:
 Desarrolladores
 Testers
 Analista de negocio
 Administrador de proyecto

Fuente: Wikipedia

2. Proceso Racional Unificado – RUP: Es un proceso de desarrollo tradicional


que esta basado en el que mencionamos anteriormente (cascada), se centra
en la arquitectura y es guía por casos de uso.
Este divide su proceso de desarrollo en cuatro grandes fases dentro de las que
se realizan algunas iteraciones donde se desglosan, en mayor o menor
intensidad, un conjunto de disciplinas según la fase que se está abordando.
En la primera fase se abordan se abordan actividades principalmente
enfocadas en la comprensión del problema y el tipo de tecnología a utilizar. En
la segunda fase se centra la mayor parte del esfuerzo en la definición general
de la arquitectura del sistema y el refinamiento de requisitos y modelado del
negocio. La tercera fase se centra en las actividades relacionadas con la
construcción del producto. Y en la cuarta fase se desarrollan principalmente las
disciplinas de pruebas y despliegue.
Otro aspecto importante de esta metodología es que se apoya en un conjunto
de artefactos que son desarrollados con el fin de especificar el proceso de
análisis y diseño que soporta la construcción del software.

RUP establece las siguientes disciplinas:


 Modelado de negocios.
 Requerimientos.
 Análisis y diseño.
 Implementación.
 Pruebas.
 Despliegue.
 Configuración.
 Administración del cambio.
 Administración de proyectos y ambiente.

Y entre sus roles se encuentran:


 Analistas
 Desarrolladores
 Probadores
 Otros

Fuente: blogpost.com

3. MSF (Microsoft Solution Framework): Es un enfoque adaptable para la


entrega de soluciones de tecnología más rápida con menos gente y menos
riesgo, al tiempo que permite resultados de mayor calidad. MSF ayuda a los
equipos a abordar directamente las causas mas comunes del fracaso del
proyecto de tecnología, las mejoras de las tasas de éxito, calidad de la
solución y los negocios de impacto.
MSF se centra en:
 Alinear los objetivos de negocio y tecnología
 El establecimiento de claros objetivos del proyecto, roles y responsabilidades
 La implementación de un proceso iterativo
 La gestión del riesgo en forma proactiva
Fuente:Faveralomaria.com
4. Espirar: En esta metodología el proceso es representado como un espiral en lugar
de una secuencia de actividades con retroceso. Cada giro en la espiral representa una
fase en el proceso, no hay fases fijas tales como especificación o diseño. Aquí, los
riesgos son explícitamente identificados y resueltos durante el proceso.
En esta metodología debemos de tener en cuenta los ciclos, tales como
objetivos, alternativas, características y formas de gestión del sistema.

Fuente: Video explicativo metodologías tradicionales

5. Modelo en V: Es una representación grafica del ciclo de vida del desarrollo del
sistema. Resume pasos que hay que tomar con las correspondientes entregas
de los sistemas de validación. La parte izquierda de la V representa la corriente
en donde se definen las especificaciones del sistema. La parte de la derecha
de la V representa la corriente donde se comprueba el sistema. La parte de
abajo, donde se encuentran ambas partes, representa la corriente de
desarrollo.

Fuente: Video explicativo metodologías tradicionales


EJEMPLOS DE METODOLOGIAS DE DESARROLLO DE SOFTWARE EN MARCOS
DE TRABAJO AGILES
1. Programación Extrema – XP: Busca producir software de alta calidad en
contextos con requisitos altamente cambiantes, riesgos que involucran
tiempos fijo con tecnologías nuevas y equipos de trabajo pequeños
ubicados en un mismo sitio.
En este se definen cinco valores, los cuales son:
 Comunicación
 Simplicidad
 Retroalimentación
 Coraje
 Respeto
Y también se definen roles específicos, como lo son:
 Cliente
 Programador
 Testers
 Coach
 Manager
Además, se caracteriza por un conjunto de prácticas, las cuales son:
 El juego de la planificación
 Pequeños lanzamientos
 Metáfora
 Diseño simple
 Pruebas
 Refactorización

Fuente: Fnegociosyempresas.com
2. Desarrollo rápido de aplicaciones – RAD: se centra en el desarrollo
rápido de aplicaciones mediante la realización de iteraciones frecuentes y
realimentación constante. Se caracteriza por tener mayor flexibilidad y
adaptabilidad a cualquier ajuste que deba realizarse durante el proceso de
desarrollo, además de generar interacciones rápidas que reducen el tiempo
de desarrollo y mantienen un ritmo de entrega acelerado. También fomenta
la reutilización de código y tiene una mejor gestión de riesgo.
También consta de cuatro fases, en las cuales se define y finalizan los
requisitos del proyecto, se aborda la construcción de prototipos, los
prototipos se transforman en modelos funcionales y finalmente se lanza el
producto respectivamente.

En esta metodología, se pueden observar bastantes roles, los cuales son:


 Facilitador
 Equipo Swat
 Administrador de base de datos
 Equipo de diseño de usuario
 Equipo de transición
 Escriba
 Administrador del modelo
 Equipo de planificación de los Workshops
 Equipo de soporte de construcción

Fuente: Ingeniería de software blog

3. Scrum: Se fundamenta en los valores y principios ágiles definidos en


(Manifiesto Ágil, 2001) y donde se definen tres pilares fundamentales, los
cuales son: Transparencia, Inspección y adaptación.
Además, dentro de sus roles podemos definir dos tipos, que son:
Roles centrales: Dueño del producto, Scrum Máster y equipo de
desarrollo.
Roles no centrales: Personal interesado en el proyecto que no son
responsables del éxito de este.

El Scrum define un conjunto de eventos con participantes y objetivos claros


que se desarrollan en momentos particulares del flujo general de Scrum y
se mencionan a continuación:
 Sprint
 Planeación
 Reunión diaria
 Revisión del sprint
 Reunión de retrospectiva

Finalmente, el marco de trabajo Scrum define un conjunto de artefactos que


permiten registrar y gestionar información clave para asegurar los tres
pilares fundamentales y proveen información valiosa durante todo el
proceso de desarrollo de software. Entre los artefactos representativos de
este se encuentran los siguientes:
 Pila de producto (Product Backlog)
 Pila del Sprint (Sprint Backlog)
 Burndown Chart

Adicionalmente es de vital importancia mencionar que entre los principales


beneficios del marco de trabajo Scrum se encuentran los siguientes
elementos:

 Es posible gestionar las expectativas del cliente de manera regular,


ya que, este puede y debe participar en las reuniones de revisión,
por lo que, está enterado todo el tiempo del estado actual del
proyecto.
 El cliente puede obtener resultados importantes y utilizables desde
las primeras iteraciones, ya que, la lista de producto está priorizada
para ofrecer mayor valor en el menor tiempo posible y porque cada
finalización de Sprint debe tener como resultado una versión
totalmente funcional.
 El proyecto puede iniciar con requerimientos de muy alto nivel y es
fácil administrar los cambios.
 La participación constante del cliente permite mitigar riesgos del
proyecto desde sus primeras etapas.
 Los procesos de retrospectiva permiten establecer actividades
permanentes de mejora continua en función de las experiencias del
equipo

Fuente: Business insights


4. Iconix: es una metodología simplificada en comparación a otras más
tradicionales que se halla a medio camino entre RUP (Rational Unified
Process) y XP (eXtreme Programming), , la cual unifica un conjunto de
métodos de orientación a objetos con el objetivo de tener un control estricto
sobre todo el ciclo de vida del producto a realizar, cuenta con una
secuencia de pasos que se deben seguir y determina claramente las
actividades a desarrollar en cada etapa del ciclo de vida del proyecto que la
utilice.
Las fases de Iconix, son las siguientes:

 Análisis de Requisitos:
 Análisis y Diseño Preliminar
 Diseño
 Implementación

Fuente: EcuRed
5. Kanban: se basa en una filosofía centrada en la mejora continua, donde las
tareas se “extraen” de una lista de acciones pendientes en un flujo de
trabajo constante. La metodología Kanban se implementa por medio
de tableros Kanban. Se trata de un método visual de gestión de proyectos
que permite a los equipos visualizar sus flujos de trabajo y la carga de
trabajo. En un tablero Kanban, el trabajo se muestra en un proyecto en
forma de tablero organizado por columnas. Tradicionalmente, cada
columna representa una etapa del trabajo. El tablero Kanban más básico
puede presentar columnas como Trabajo pendiente, En progreso y
Terminado. Las tareas individuales —representadas por tarjetas visuales en
el tablero— avanzan a través de las diferentes columnas hasta que estén
finalizadas. (No se debe confundir este método con el scrum).

Fuente: TecnoSoluciones
BIBLIOGRAFIA
Material de apoyo: Metodologías del desarrollo de software
Blog.becas-santander.com/es/metodologías-desarrollo-software.html
Metodologías... ¿tradicional vs ágil? Para Desarrollo de Software (tribalyte.eu)
https://www.ecured.cu/ICONIX
¿Qué es la metodología Kanban y cómo funciona? [2022] • Asana
https://www.clubensayos.com/Biograf%C3%ADas/Microsoft-Solutions-Framework-MSF-
Informaci%C3%B3n-general
https://youtu.be/J4FY0qB3Gig

También podría gustarte