Está en la página 1de 19

202

2
Metodología
desarrollo de Software
Mba. Marcelo Narváez, Ing.
Desarrollo de Software
Introducción
 Es necesario construir un software de
eficiente y de calidad.
 Se deben cumplir los requerimientos
solicitados.
 Tomar en cuenta: costos, planificación,
calidad, dificultades asociadas.
Tipos de metodología
 Tradicionales: Son rígidas, exigen una documentación
exhaustiva y se centran en cumplir con el plan del proyecto
definido totalmente en la fase inicial del desarrollo del mismo
 Ágiles: enfatiza el esfuerzo en la capacidad de respuesta a los
cambios, las habilidades del equipo y mantener una buena
relación con el usuario
 La metodología que elijamos, debe ser adaptada al contexto
del proyecto, teniendo en cuenta los recursos técnicos y
humanos; tiempo de desarrollo y tipo de sistema.
Tradicionales
 Fuerte planificación
 Centran su atención en llevar una documentación
exhaustiva de todo el proceso de desarrollo y en cumplir
con un plan de proyecto, definido en la fase inicial del
mismo.
  MSF (Microsoft Solution Framework), MÉTRICA 3 y RUP
(Rational Unified Process).
RUP (Proceso unificado de
desarrollo)
 Define claramente quien, cómo, cuándo y qué debe hacerse en el
proyecto.
 Características fundamentales:
• Está dirigido por casos de uso, es decir, que en el proyecto se
orientan a la importancia que tiene para el usuario lo que el
producto debe hacer
• Es un proceso centrado en la arquitectura ya que relaciona la
toma de decisiones que indican cómo tiene que ser
constituido el sistema y en qué orden se debe hacer
• Es iterativo e incremental, divide el proyecto en mini
proyectos donde los casos de usos y la arquitectura cumplen
sus objetivos de manera más depurada
RUP (Proceso unificado de

desarrollo)
 RUP se encarga de unificar todo el equipo de desarrollo
de software, además de optimizar su comunicación
 Provee a cada miembro del proyecto una aproximación al
desarrollo de software con una base de conocimiento de
acuerdo con las necesidades específicas del proyecto.
 No es simplemente un proceso, sino que es un marco de
trabajo extensible que puede ser adaptado a
organizaciones o proyectos específicos.
RUP (Proceso unificado de
desarrollo)
  Generalmente aplicado a grandes proyectos de desarrollo
de software
 Gestiona el control de cambios, que permite mantener al
equipo trabajando en los mismos artefactos, en cualquier
momento del desarrollo del producto
 RUP define como sus principales elementos a los
trabajadores, las actividades, los artefactos y los flujos de
actividades
RUP (Proceso unificado de
desarrollo)
 Los trabajadores son los propietarios de elementos o
artefactos y se encargan de realizar las actividades,
 Las actividades es una tarea que es realizada por un
trabajador.
 Los artefactos constituyen los productos tangibles del
proyecto que son producidos, modificados y usados por
las actividades.
 El flujo de actividades se describe cuando estas son
realizadas por trabajadores y produce un resultado de
valor observable.
RUP (Proceso unificado de desarrollo)
 Se recomienda la utilización de RUP como metodología de
desarrollo de software para guiar el proceso de desarrollo
cuándo se está en presencia de proyectos complejos y de
larga duració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.
RUP (Proceso unificado de
desarrollo)
 Basado en 6 procesos:
1. Adaptar el proceso:
• El proceso deberá adaptarse a las necesidades del cliente ya que es muy
importante interactuar con él.
• Las características propias del proyecto u organización.
• El tamaño del mismo, así como su tipo o las regulaciones que lo condicionen,
influirán en su diseño específico. También se deberá tener en cuenta el
alcance del proyecto en un área subformal.
2. Equilibrar prioridades
• Los requisitos de los diversos participantes pueden ser diferentes,
contradictorios o disputarse recursos limitados.
• Debe encontrarse un equilibrio que satisfaga los deseos de todos. Gracias a
este equilibrio se podrán corregir desacuerdos que surjan en el futuro.
RUP (Proceso unificado de
desarrollo)
3. Demostrar valor iterativamente:
• Los proyectos se entregan, aunque sea de un modo interno, en
etapas iteradas. En cada iteración se analiza la opinión de los
inversores, la estabilidad y calidad del producto, y se refina la
dirección del proyecto así como también los riesgos
involucrados
4. Colaboración entre equipos:
• El desarrollo de software no lo hace una única persona sino
múltiples equipos.
• Debe haber una comunicación fluida para coordinar requisitos,
desarrollo, evaluaciones, planes, resultados, etc.
RUP (Proceso unificado de
desarrollo)
5. Elevar el nivel de abstracción:
• Este principio dominante motiva el uso de conceptos reutilizables tales
como patrón del software, lenguajes 4GL o marcos de referencia
(frameworks) por nombrar algunos. Esto evita que los ingenieros de
software vayan directamente de los requisitos a la codificación de software
a la medida del cliente, sin saber con certeza qué codificar para satisfacer
de la mejor manera los requisitos y sin comenzar desde un principio
pensando en la reutilización del código.
6. Enfocarse en la calidad:
• El control de calidad no debe realizarse al final de cada iteración, sino en
todos los aspectos de la producción.
• El aseguramiento de la calidad forma parte del proceso de desarrollo y no
de un grupo independiente.
RUP (Proceso unificado de
desarrollo)
 Ejemplo RUP
 https://www.youtube.com/watch?v=7paA_3VxSrQ
XP (Xtreme programming)
 Busca simplificar el proyecto y ahorrar costos
 Método ligero: No produce demasiado overhead sobre
las actividades de desarrollo, y no impide el avance de
nuestros proyectos
 Reduce el costo del cambio en las etapas de vida del
sistema.
 Se requiere un grupo pequeño de programadores para
trabajar con esta metodología entre 2 – 15 personas y
estas irán aumentando conforme sea necesario.
XP (Xtreme programming)
• Sus programadores pueden ser ordinarios.
• Combina las que han demostrado ser las mejores prácticas
de desarrollo de software, y las lleva al extremo.
• El desarrollo de software es riesgoso y difícil de controlar.
• Se rediseñará todo el tiempo (refactoring), dejando el
código siempre en el estado más simple posible
• Se harán pruebas todo el tiempo, no sólo de cada nueva
clase (pruebas unitarias) sino que también los clientes
comprobarán que el proyecto va satisfaciendo los
requisitos (pruebas funcionales).
XP (Xtreme programming)
• Las pruebas de integración se efectuarán siempre,
antes de añadir cualquier nueva clase al proyecto, o
después de modificar cualquiera existente (integración
continua), utilizando frameworks de testing, como el
xUnit.
• Las iteraciones serán radicalmente más cortas de lo que
es usual en otros métodos, esto permite beneficiarse de
la retroalimentación tan a menudo como sea posible.
XP (Xtreme programming)
• Define 4 variables:
• Costo
• Tiempo
• Calidad
• Alcance.
XP (Xtreme programming)
• Valores:
• Comunicación
• Simplicidad
• Realimentación
• Coraje.
• Este es un conjunto mínimo y consistente de valores que
permitirán hacer la vida más fácil del grupo, la gerencia y los
clientes. Sirve tanto a los fines humanos como a los comerciales.
XP (Xtreme programming)
• XP deriva una docena de Principios Básicos:
• Realimentación rápida
• Asumir la Simplicidad
• El Cambio Incremental,
• Adherirse (Abrazar) al Cambio,
• Trabajo de Alta Calidad (desde ‘trabajo excelente’ hasta ‘trabajo increíblemente
sobresaliente’)
• XP desarrolla 4 actividades que guiarán el desarrollo:
• Codificar
• Testear
• Atender
• Diseñar.

También podría gustarte