

































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
metodologia para uso de codigos
Typology: Summaries
1 / 41
This page cannot be seen from the preview
Don't miss anything!
Breve descripción:
Las metodologías de desarrollo de software proponen un conjunto de procesos
y actividades que deben ser desarrolladas por el equipo de desarrollo de software
para realizar un trabajo organizado que sea fácil hacerle seguimiento y de esta forma
establecer planes de mejora en busca de una mejor calidad de los productos y servicios
que se desarrollan.
Mayo 2024
Desde la asignación de recursos hasta la gestión de riesgos y la definición
de cronogramas, la planificación es vital para el éxito y la sostenibilidad de
cualquier proyecto de software.
Con estas bases establecidas, se adentrará en el corazón de cada metodología y
marco de trabajo, buscando no solo entender su propósito y prácticas, sino también
cómo y cuándo implementarlas de manera efectiva en los proyectos de software.
Es importante aclarar que existe un gran número de definiciones sobre lo que es
una metodología, para evitar cualquier confusión en este material se utilizará la
definición dada por Maida y Pacienzia (2015), quienes indican que:
Una metodología hace referencia a un conjunto de procedimientos genéricos y
lógicos que se usan para alcanzar un objetivo particular utilizando un conjunto de
habilidades y conocimientos.
Las metodologías de desarrollo de software siempre parten de un componente
teórico y, cuando son usadas por los equipos de trabajo, conllevan a la utilización de un
conjunto de técnicas y métodos que al final determinarán las tareas generales y
específicas que se deberían realizar para alcanzar un objetivo.
Existen diferentes tipos de metodologías de desarrollo de software que fueron
ideadas pensando en problemas particulares presentados en la industria en contextos
específicos, por lo cual es importante conocer sus diferentes características y
contrastarlas con las necesidades particulares a las que se enfrenta a la hora de
desarrollar un producto o servicio. Es decir, cada una de estas tiene ventajas y enfoques
que pueden ser reutilizados en diferentes momentos.
Existen dos grandes clasificaciones de metodologías de desarrollo de software
que se agrupan generalmente como marcos de trabajo tradicionales o marcos de
trabajo ágiles que se presentan a continuación.
ha sido finalizada, generalmente mediante un formalismo que puede ser un
documento.
Según Sommerville (2005), el modelo en cascada se compone de cinco etapas
principales que se asocian con actividades fundamentales en el proceso de desarrollo
de software, las cuales son:
Se lleva a cabo la recopilación y análisis detallado de las necesidades del
sistema o software. Se definen los objetivos, funciones, interfaces de
usuario y demás necesidades del cliente o mercado.
Se establece cómo será construido el sistema para cumplir con los
requerimientos identificados. Incluye la arquitectura del sistema, la
selección de patrones de diseño, y la planificación de interfaces y
experiencias de usuario.
En esta fase, se escribe el código fuente del software, basado en el diseño
previamente establecido. Cada componente es desarrollado y probado
individualmente antes de ser integrado en el sistema mayor.
Esta etapa implica probar el sistema completo para validar que cumple con
los requerimientos especificados. Incluye pruebas unitarias, de integración,
de sistema y de aceptación del usuario.
Una vez que el software está en operación, esta fase aborda la corrección
de errores, la actualización de funciones y la optimización del rendimiento.
También se pueden incorporar nuevos requerimientos según sea
necesario.
Continuando con el tema, se presenta un comparativo que resume las principales
ventajas y desventajas de este modelo.
Ventaja
que es ideal para proyectos sencillos y cortos.
proceso y es posible definir hitos claros.
actividades de cada fase.
Desventaja
trabajando en paralelo, ya que las fases normalmente se traslapan y es
difícil diferenciarlas.
proceso, lo que impide tener realimentación y ajustes en etapas
tempranas.
RUP divide el proceso de desarrollo en cuatro grandes fases. Dentro de ellas, se
realizan iteraciones donde se desglosan, con mayor o menor intensidad, un conjunto de
disciplinas según la fase en la que se está.
A continuación, se presentarán las fases y disciplinas propuestas por RUP.
Figura 1. Fases y disciplinas de RUP
Nota. Tomada de Man, Hafriz, Nural, Maizura, Noor, Wan, Bakar y Man (2008).
A continuación, se describen las fases y su impacto en el proceso, por lo que se le
invita a revisar el siguiente recurso de aprendizaje.
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 a utilizar, por lo que hay una gran carga en actividades
relacionadas con la disciplina de modelado del negocio y especificación de
requisitos.
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.
La tercera fase corresponde a la construcción, donde se centran en las
actividades relacionadas con la construcción del producto. Normalmente,
esta fase está constituida por varias iteraciones, donde en cada una de
ellas se desarrolla un subconjunto de requerimientos que normalmente
están especificados como casos de uso.
La cuarta fase se desarrolla principalmente las disciplinas de pruebas y
despliegue, es decir, las actividades encaminadas a garantizar que el
producto esté listo para entrega a sus usuarios.
Es importante señalar que, dentro de cada una de las fases del RUP, se
desarrollan varias disciplinas, y el esfuerzo y tiempo invertidos en cada una tendrán un
enfoque diferente dependiendo de la fase del proyecto en la que se esté.
Otro aspecto relevante de esta metodología es que se sustenta en un conjunto de
artefactos que se elaboran con el objetivo de especificar el proceso de análisis y diseño
Figura 2. Fases en el desarrollo de proyectos
A continuación, se describen cada una de las disciplinas mencionadas y cómo
estás aportan en el proceso.
RUP propone una categorización de roles encargados de la realización de
actividades dentro de cada una de las disciplinas que son:
integración de código.
Incluye a todos los roles mencionados anteriormente en las categorías de
Analistas, Desarrolladores y Testers, reflejando su importancia en la
gestión y operación de proyectos.
Existen también metodologías catalogadas dentro de los marcos de trabajo
tradicionales. Sin embargo, el propósito de este texto es resaltar las características
principales de las más destacadas en la industria del software. Para aquellos
interesados en profundizar sobre las ventajas y desventajas de estas y otras
metodologías, se recomienda revisar la sección de materiales complementarios.
b) Son bienvenidos los requisitos cambiantes, incluso si llegan tarde al
desarrollo. Los procesos ágiles se doblegan al cambio como ventaja
competitiva para el cliente.
c) 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.
d) Las personas del negocio y los desarrolladores deben trabajar juntos de
forma cotidiana a través del proyecto.
e) 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.
f) 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.
g) El software que funciona es la principal medida del progreso.
h) Los procesos ágiles promueven el desarrollo sostenido. Los patrocinadores,
desarrolladores y usuarios deben mantener un ritmo constante de forma
indefinida.
i) La atención continua a la excelencia técnica enaltece la agilidad.
j) La simplicidad como arte de maximizar la cantidad de trabajo que se hace
es esencial.
k) Las mejores arquitecturas, requisitos y diseños emergen de equipos que se
autoorganizan.
l) En intervalos regulares, el equipo reflexiona sobre la forma de ser más
efectivo y ajusta su conducta en consecuencia.
XP, abreviatura de Extreme Programming, es un marco de desarrollo de
software ágil diseñado para producir software de alta calidad en entornos con
requisitos muy cambiantes. Se enfoca en contextos que presentan riesgos asociados a
plazos fijos, la implementación de tecnologías emergentes y equipos de trabajo
reducidos localizados en el mismo lugar.
En XP se definen cinco valores según Beck y Andrés (2004):
El desarrollo de software depende del trabajo en equipo, haciendo crucial
la transferencia de conocimientos y el uso de medios de comunicación
adecuados. Se sugiere la discusión cara a cara con herramientas que
faciliten dibujar o escribir, como los tableros.
Se refiere a realizar solo lo estrictamente necesario, evitando desperdicios.
Las tareas deben ser ejecutadas de manera que resulten fáciles de
entender para otros, concentrándose únicamente en los requisitos
conocidos.
Permite identificar áreas de mejora y la revisión constante de las prácticas
actuales, de modo que se puedan establecer procesos de mejora continua.
Implica enfrentarse a situaciones desafiantes para el equipo, como
problemas organizacionales o intentar implementar funcionalidades de
Implica desarrollar un código que solamente haga lo que es necesario en la
forma más sencilla posible, evitando duplicaciones y reduciendo el número
de métodos y clases.
Sugiere el empleo de técnicas de prueba constantes antes de proceder con
la escritura del código, como por ejemplo el TDD (Desarrollo Dirigido por
Pruebas).
Se centra en la eliminación de elementos innecesarios, desacoplando
componentes y reduciendo redundancias para mantener el código limpio,
entendible y fácil de modificar.
Los roles fundamentales establecidos por este marco de trabajo ágil son los
siguientes: cliente, programador, coach, tester y manager.
proyecto y las necesidades puntuales.
bloques de código funcional, son el centro del marco de Extreme
Programming.
calidad de los productos y servicios desarrollados.
equipo y son los que definen el rumbo del proyecto.
aseguramiento de los recursos requeridos para el proyecto y quien tiene la
responsabilidad de la comunicación externa.
RAD (Desarrollo Rápido de Aplicaciones) es una metodología ágil de desarrollo de
software que se enfoca en la rápida creación de aplicaciones a través de iteraciones
frecuentes y retroalimentación constante. Fue propuesta por James Martin en 1991.
Algunas características fundamentales de RAD son:
durante el proceso de desarrollo.
ritmo de entrega acelerado.
cualquier vulnerabilidad mientras se construyen los productos.
A continuación, se describen las fases propuestas en RAD.