Taller Sobre Metodologías de Desarrollo de Software
Taller Sobre Metodologías de Desarrollo de Software
Taller Sobre Metodologías de Desarrollo de Software
30-5-2022 METODOLOGÍAS DE
DESARROLLO DE
SOFTWARE
GA1-220501093-AA1-EV01
Jorge Barrera
Tecnología en análisis y desarrollo de software
INTRODUCCION
El taller a continuación, se hablará sobre las metodologías y los distintos marcos de trabajo para
el desarrollo de software que utilizan las organizaciones, también se resaltaran las
características de cada metodología y cada marco de trabajo.
METODOLOGIA DE DESARROLLO DE SOFTWARE
2.1 CASCADA
Según someville (2005) el modelo en cascada se descompone de cinco etapas principales que
se asocian con actividades fundamentales en el proceso de desarrollo de software, las cuales
son:
Implementación:
Incluye la construcción del software a partir de los diseños del sistema, se verifican todos los
módulos que se vayan construyendo y se valida su funcionamiento.
Funcionamiento y mantenimiento:
En esta fase entra el proyecto una vez el producto o servicio de software es entregado para ser
usado por el cliente, en el mantenimiento se corrigen errores que no se detectaron en fases
anteriores, en la implementación, se realizan mejoras del sistema y se incorporan nuevos
requerimientos.
Verificación:
En esta fase se hace el proceso formal de pruebas, se verifican que los módulos creados
funciones correctamente y se verifica que cumplan con los requerimientos establecidos en la
primera fase.
Análisis:
En esta fase se realiza una especificación muy detallada del sistema, indica los alcances,
servicios a construir y restricciones, también se encarga principalmente en la especificación de
los requisitos.
Diseño:
En esta fase, se establece la arquitectura final del sistema, se describen todas las abstracciones
fundamentales del software y relaciones, generalmente usando un lenguaje de modelado.
El modelo en casada define cuatro grupos de roles típicos los cuales se mencionan a
continuación:
Desarrolladores:
Es el rol más importante en la metodología cascada ya que son los encargados directos de la
creación de código.
Testers:
RUP es una sigla en inglés equivalentes a proceso racional unificado, el cual es un proceso de
desarrollo de software tradicional basado en el modelo cascada y que fue desarrollado por la
empresa rational software qué es propiedad de IBM, esta metodología se centra en la
arquitectura y es guía por casos de usos (requerimientos) (kruchten, 2003)
RUP divide el 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. a continuación, se observan las fases y
disciplinas propuestas por RUP.
Modelado de negocios
Requerimientos
Análisis y diseño
Implementación
Prueba
Desarrollo
Configuración y administración del cambio
Administración del proyecto
Ambiente
FASES
Incepción
Elaboración
Construcción
Transición
Primera fase:
La primera gran fase definida por RUP es la de inicio, en la cual se abordan actividades
principalmente enfocadas en la comprensión del problema y el tipo de tecnología utilizar, por
lo que hay una gran carga en actividades relacionadas con la disciplina de modelado del
negocio y especificación de requisitos.
Segunda fase:
La segunda fase es la elaboración, donde 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.
RUP Generalmente se apoya en el lenguaje de modelado UML para el modelado del negocio y
descripción de la arquitectura.
Tercera fase:
Cuarta fase:
Documento de visión
Documento de especificación de requisitos
Diagrama de casos de uso
Modelos conceptuales (clases y entidad relación)
Diagramas que representan la vista de implementacion como:
Diagrama de secuencia.
Diagrama de estados.
Diagramas de colaboración, entre todos.
Las disciplinas, por otra parte, representan un conjunto de actividades relacionadas con un
área específica del proyecto y están inspiradas en el modelo en cascada. RUP establece las
siguientes disciplinas según Kruchten (2003)
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.
ANALISTAS:
DESARROLLADORES:
Arquitectos de software.
Diseñador de bases de datos.
Desarrollador backend y frontend.
Cualquier otro rol relacionado con procesos de codificación o integración de código.
PROBADORES:
Artistas gráficos.
Administradores de sistemas.
Especialista en herramientas.
Stakeholders.
Cualquier otro rol no especificado anteriormente.
Los marcos de trabajo ágiles o metodologías ágiles para el desarrollo de software nacen como
otra opción para abordar proyectos donde no es posible tener un detalle completo de los
requerimientos y sus estimaciones en la primera fase del proyecto o dónde es necesario para
hacer procesos de adaptabilidad a lo largo del proceso de desarrollo de software (maida y
pacienzia, 2015)
Las metodologías ágiles proveen un conjunto de pautas y principios que buscan facilitar y
priorizar la entrega de productos sobre procesos de documentación exhaustiva, siendo los más
simples, donde interactúa el cliente final desde las primeras etapas del proyecto. el inicio de
las metodologías ágiles nació en el año 2001 a partir del manifiesto ágil de software donde se
establecen cuatro valores fundamentales (manifiesto ágil, 2001)
CORAJE: se refiere al actuar sobre situaciones que pueden ser retadoras para el equipo como,
por ejemplo:
RESPETO: los miembros del equipo deben respetarse entre sí para comunicarse y trabajar en
equipo punto cada persona contribuye un favor de lograr el objetivo del equipo
LOS ROLES FUNDAMENTALES ESTABLECIDOS POR ESTE MARCO DE TRABAJO ÁGIL SON LOS
SIGUIENTES:
Cliente.
Programador.
Coach.
Tester.
Manager.
LOS CLIENTES: son los encargados del establecimiento de las prioridades del proyecto y las
necesidades puntuales.
LOS TESTER: se encargan de la aplicación de rigurosas pruebas para garantizar la calidad de los
productos y servicios desarrollados.
EL COACH: es una figura encargada de brindar asesoría a los miembros del equipo y son los
que definen el rumbo al proyecto.
RAD (Desarrollo rápido aplicaciones) es otra metodología de desarrollo de software ágil que se
centra en el desarrollo rápido aplicaciones mediante la realización de interacciones frecuentes
y realimentación constante y fue inventado por James Martín en 1991.
Los objetivos.
Las expectativas.
Los plazos.
Presupuesto del proyecto.
La segunda fase aborda la construcción de prototipos los cuales son construidos, validados Y
mejorados a partir de la validación con los usuarios y una vez son aprobados pasan a la tercera
fase donde estos prototipos son transformados en modelos funcionales.
En la cuarta fase se enfoca en la realización de pruebas exhaustivas para garantizar que todos
los elementos construidos funcionan bien individualmente y también de forma colectiva.
Finalmente, en la última fase se realizan todas las actividades de lanzamiento del producto lo
que involucra al carga inicial de datos y entrenamiento a los usuarios.
Según HKSAR (2009) los roles mas importantes de la metodologia RAD son:
Facilitador.
Escriba.
Equipo swat.
Administrador del modelo.
Administrador de bases de datos.
Equipos de plaificacion de workshop.
Equipo de diseño de uruario.
Equipo de soporte de construccion.
Equipo de transicion.
3 SCRUM
Scrum es un marco de trabajo ágil de muy amplio uso en la industria del software que se
fundamentan los valores y principios ágiles definidos en manifiesto ágil como 2001 y dónde se
definen tres pilares fundamentales según scrum studio.com a 2013 los cuales se describen a
continuación:
TRANSPARENCIA:
hace referencia a que cualquier proceso de scrum puede ser conocido por cualquiera. Esto es
posible por medio de eventos como:
Inspección:
permite que cualquiera pueda estar enterado de las actividades realizadas por otros y en
general conocer el estado actual de los procesos.
Adaptación:
por medio de la transparencia y la inspección es posible fijar actividades de mejora que
permita modificar todo tipo de procesos en pro de lograr más altos estándares de calidad.
Roles centrales que hacen referencia los requeridos obligatoriamente para la creación de un
producto como están altamente comprometidos y de los cuales depende el éxito o no de un
proyecto.
Los roles no centrales que se refieren a todo el personal interesado en el proyecto pueden
interactuar con el equipo como pero no son los responsables del éxito del mismo, dentro de
esta categoría están los stakeholders, directivos, gerentes, marketing, asesores, etc.
Persona con amplio conocimiento en el negocio del cliente como a sus necesidades y las
tendencias del mercado para el área específica. Este rol está encargado de maximizar el valor
de negocio entregado al cliente y es el único responsable del control del producto y su
priorización. Este también representa al cliente en algunos procesos de demostración de
avances y determina cuando aprobar o no una entrega.
SCRUM MASTER
Es un rol que se encarga de facilitar los procesos al interior del equipo de trabajo removiendo
cualquier impedimento y apoyando procesos de empoderamiento personal, debe velar porque
los elementos propios del marco de trabajo scrum se apliquen de manera correcta.
EQUIPO DE DESARROLLO (DEVELOPER TEAM)
PILA DE SPRINT (SPRINT BACKLOG): lista de requerimientos seleccionados del product backlog
por el equipo de trabajo para ser desarrollados durante un Sprint particular. Este es uno de los
artefactos generados en la reunión de planeación del Sprint.
BURNDOWN CHART: es un gráfico visual de dos ejes que muestra a los equipos la cantidad de
trabajo pendiente por completar (eje y) y el tiempo disponible para hacerlo (eje x). este
generalmente se realiza por cada sprint ubicando la cantidad de trabajo realizar del sprint
backlog (usualmente medid por puntos de historia o de horas de trabajo) en un tiempo 0 y por
cada día finalizado se resta la cantidad de puntos de historia u horas de cada tarea
completada.
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
interacciones, 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.
CONCLUSIONES
Cascada
proceso racional unificado - RUD
Programación extrema – XP
Desarrollo rápido de aplicaciones – RAD
Scrum.