unidad desarrollo agil de software (metodologías livianas)

Anuncio
UNIDAD DESARROLLO AGIL DE SOFTWARE (METODOLOGÍAS LIVIANAS)
OBJETIVO:


Conocer las diferentes metodologías modernas que se trabajan en la
ingeniería de software.
Identificar las metodologías mas utilizadas en los diferentes proyectos
realizados en el programa de ingeniería de sistemas.
METODOLOGÍAS: Las metodologías imponen un proceso disciplinado sobre el desarrollo de
software con el fin de hacerlo más predecible y eficiente. Lo hacen desarrollando un proceso
detallado con un fuerte énfasis en planificar inspirado por otras disciplinas de la ingeniería.
Las metodologías ingenieriles han estado presentes durante mucho tiempo. No se han
distinguido precisamente por ser muy exitosas. Aún menos por su popularidad. La crítica más
frecuente a estas metodologías es que son burocráticas. Hay tanto que hacer para seguir la
metodología que el ritmo entero del desarrollo se retarda.
 PROGRAMACIÓN EXTREMA XP:
Es un enfoque de la ingeniería de software formulado por Kent Beck,es el más
destacado de los procesos ágiles de desarrollo de software. Al igual que éstos, la
programación extrema se diferencia de las metodologías tradicionales principalmente
en que pone más énfasis en la adaptabilidad que en la previsibilidad. Los defensores
de XP consideran que los cambios de requisitos sobre la marcha son un aspecto
natural, inevitable e incluso deseable del desarrollo de proyectos. Creen que ser capaz
de adaptarse a los cambios de requisitos en cualquier punto de la vida del proyecto es
una aproximación mejor y más realista que intentar definir todos los requisitos al
comienzo del proyecto e invertir esfuerzos después en controlar los cambios en los
requisitos.
Se puede considerar la programación extrema como la adopción de las mejores
metodologías de desarrollo de acuerdo a lo que se pretende llevar a cabo con el
proyecto, y aplicarlo de manera dinámica durante el ciclo de vida del software.
OBJETIVOS PRINCIPALES DE XP:
Los objetivos de XP son muy simples: la satisfacción del cliente. Esta metodología trata
de dar al cliente el software que él necesita y cuando lo necesita. Por tanto, debemos
Responder muy rápido a las necesidades del cliente, incluso cuando los cambios sean al final
de ciclo de la programación.
El segundo objetivo es potenciar al máximo el trabajo en grupo. Tanto los jefes de
proyecto, los clientes y desarrolladores, son parte del equipo y están involucrados en el
desarrollo del software.
 MÉTODO DE DESARROLLO DE SISTEMAS DINÁMICOS (MDSD): Permite la construcción
de sistemas con restricción de tiempo,realizando prototipos incrementales en un
ambiente de proyecto controlado.
Se compone de dos actividades que se realizan primero y consecuente con ellas se
realizan tres ciclos de vida adicionales, las dos actividades primarias son el estudio de
factibilidad en donde se establecen los requisitos básicos del negocio y las
restricciones asociadas a la metodología de manera de evaluar si la misma puede ser
realizada bajo el esquema MDSD, y la segunda es el estudio del negocio donde se
establecen los requerimientos funcionales y la arquitectura básica de la aplicación.
 MELÉ: Es un modelo agil de proceso desarrollado por Jefff Suterland y su equipo a los
comienzos de la década de los 90, mele proviene de una jugada de rugby. También
conocido con el nombre de Scrum.
 MODELO ÁGIL (AM): Modelado Ágil (AM) es una metodología basada en la práctica
para modelado efectivo de sistemas de software. La metodología AM es una colección
de prácticas, guiadas por principios y valores que pueden ser aplicados por
profesionales de software en el día a día. AM no es un proceso prescriptivo, ni define
procedimientos detallados de como crear un tipo de modelo dado.
OBJETIVOS:
1. Definir y mostrar como poner en práctica una colección de valores, principios y
prácticas que conlleven a un modelado ligero efectivo.
2. Explorar la aplicación de técnicas de modelado en proyectos de software a través
de un enfoque ágil, tal como XP, DSDM o SCRUM.
3. Explorar el como mejorar el modelado bajo procesos prescriptivos, tales como el
Proceso Rational Unificado (RUP)
 DESARROLLO ADAPTATIVO DE SOFTWARE (DAS): fue propuesto por Jim Highsmith
como una metodología para desarrollar software y sistemas muy complejos. El se
centra en la colaboración humana y la organización del equipo.
El ciclo de vida del DAS se conforma de tres fases:
Especulación, colaboración, incremento del software aprendizaje colaboración.

METODOLOGIA METRICA: ofrece a las Organizaciones un instrumento útil para la
sistematización de las actividades que dan soporte al ciclo de vida del software dentro
del marco que permite alcanzar los siguientes objetivos:

Proporcionar o definir Sistemas de Información que ayuden a conseguir los fines de la
Organización mediante la definición de un marco estratégico para el desarrollo de los
mismos.
Dotar a la Organización de productos software que satisfagan las necesidades de los
usuarios dando una mayor importancia al análisis de requisitos.
Mejorar la productividad de los departamentos de Sistemas y Tecnologías de la
Información y las Comunicaciones, permitiendo una mayor capacidad de adaptación a
los cambios y teniendo en cuenta la reutilización en la medida de lo posible.
Facilitar la comunicación y entendimiento entre los distintos participantes en la
producción de software a lo largo del ciclo de vida del proyecto, teniendo en cuenta su
papel y responsabilidad, así como las necesidades de todos y cada uno de ellos.
Facilitar la operación, mantenimiento y uso de los productos software obtenidos.




La nueva versión de MÉTRICA contempla el desarrollo de Sistemas de Información para las
distintas tecnologías que actualmente están conviviendo y los aspectos de gestión que
aseguran que un Proyecto cumple sus objetivos en términos de calidad, coste y plazos.
 RATIONAL UNIFIED PROCESS RUP: El proceso unificado de desarrollo (RUP) es una
metodología para la ingeniería de software que va más allá del mero análisis y diseño
orientado a objetos para proporcionar una familia de técnicas que soportan el ciclo
completo de desarrollo de software. El resultado es un proceso basado en
componentes, dirigido por los casos de uso, centrado en la arquitectura, iterativo e
incremental.
 TABLA COMPARATIVA:
METODOLOGIA
PROGRAMACION EXTREMA (XP)
CARACTERISTICAS








Coste
Tiempo
Calidad
Ámbito
Comunicación
Sencillez
Retroalimentación
Valentía
DESVENTAJAS

En principio escribir pruebas nos lleva
mucho tiempo.
falta de comunicación, por no
comentar un cambio crítico en el
diseño, por no preguntar lo que
pensamos al cliente.

VENTAJAS

XP es más liviana y ágil
 no se retrasa en la planificación:
llegada la fecha de entregar el
software éste no esta disponible.
 Sistemas deteriorados: el software se
ha creado pero después de un par de
año el coste de su mantenimiento es
tan complicado que definitivamente
se abandona su
Producción.
 Tasa de defectos: el software se pone
en producción pero los defectos son
tantos que nadie lo usa.
 Requisitos mal comprendidos: el
software no resuelve los requisitos
planificados inicialmente.
 Cambios de negocio: el problema que
resolvía
nuestro
software
ha
cambiado y nuestro Software no se


FASES
ha adaptado.
Falsa riqueza: el software hace
muchas cosas técnicamente muy
interesantes y divertidas, pero no
resuelven el problema de nuestro
cliente, ni hace que éste gane más
dinero.
Cambios de personal: después de
unos
años
de
trabajo
los
programadores comienzan a odiar el
proyecto y lo abandonan.

Desarrollo iterativo e incremental:
pequeñas mejoras, unas tras otras.

Pruebas
unitarias
continuas,
frecuentemente
repetidas
y
automatizadas, incluyendo pruebas
de regresión. Se aconseja escribir el
código de la prueba antes de la
codificación.

Programación
en
parejas:
se
recomienda que las tareas de
desarrollo se lleven a cabo por dos
personas en un mismo puesto. Se
supone que la mayor calidad del
código escrito de esta manera -el
código es revisado y discutido
mientras se escribe- es más
importante que la posible pérdida de
productividad inmediata.

Frecuente integración del equipo de
programación con el cliente o
usuario. Se recomienda que un
representante del cliente trabaje
junto al equipo de desarrollo.

Corrección de todos los errores antes
de añadir nueva funcionalidad. Hacer
entregas frecuentes.

Refactorización del código, es decir,
reescribir ciertas partes del código
para aumentar su legibilidad y
mantenibilidad pero sin modificar su
comportamiento. Las pruebas han de
garantizar que en la refactorización
no se ha introducido ningún fallo.

EJEMPLO
Propiedad del código compartida: en
vez de dividir la responsabilidad en el
desarrollo de cada módulo en grupos
de trabajo distintos, este método
promueve el que todo el personal
pueda corregir y extender cualquier
parte del proyecto. Las frecuentes
pruebas de regresión garantizan que
los posibles errores serán detectados.
 Simplicidad en el código: es la mejor
manera de que las cosas funcionen.
Cuando todo funcione se podrá
añadir funcionalidad si es necesario.
La programación extrema apuesta
que es más sencillo hacer algo simple
y tener un poco de trabajo extra para
cambiarlo si se requiere, que realizar
algo complicado y quizás nunca
utilizarlo.
El diseño crea una estructura que organiza la
lógica del sistema, un buen diseño
Permite que el sistema crezca con cambios en
un solo lugar. Los diseños deben de ser
Sencillos, si alguna parte del sistema es de
desarrollo complejo, dividirla en varias. Si hay
fallos en el diseño o malos diseños, estos
deben de ser corregidos cuanto antes.
METODOLOGIA
RATIONAL UNIFIED PROCESS RUP
CARACTERISTICAS
Los autores de RUP destacan que el proceso
de software propuesto por RUP tiene tres
características esenciales: está dirigido por
los Casos de Uso, está centrado en la
arquitectura, y es iterativo e incremental.




"Centrado en los modelos: Los diagramas
son un vehículo de comunicación más
expresivo que las descripciones en
lenguaje natural. Se trata de minimizar el
uso de descripciones y especificaciones
textuales del sistema.
"Guiado por los Casos de Uso: Los Casos
de Uso son el instrumento para validar la
arquitectura del software y extraer los
casos de prueba.
"Centrado en la arquitectura: Los modelos

DESVENTAJAS
VENTAJAS





FASES
son proyecciones del análisis y el diseño
constituye la arquitectura del producto a
desarrollar.
"Iterativo e incremental: Durante todo el
proceso de desarrollo se producen
versiones incrementales (que se acercan
al producto terminado) del producto en
desarrollo.

Pesado

Dividido en cuatro fases, que se
dividen en iteraciones

Los artefactos son el objetivo de
cada actividad

Se basa en roles

Muy organizativo

Mucha documentación
Permite desarrollar aplicaciones sacando
el máximo provecho de las nuevas
tecnologías, mejorando la calidad, le
rendimiento, la reutilización, la seguridad
y el mantenimiento del software
mediante una gestión sistemática de los
riesgos.
Permite la producción de software que
cumpla con las necesidades de los
usuarios, a través de la especificación de
los requisitos, con una agenda y costo.
Enriquece la productividad en equipo y
proporciona prácticas óptimas de
software a todos sus miembros..
Permite llevar a cabo el proceso de
desarrollo práctico, brindando amplias
guías, plantillas y ejemplos para todas las
actividades críticas.
Proporciona guías explicitas para áreas
tales como modelado de negocios,
arquitectura Web, pruebas y calidad.
También se proporciona guías para
desarrollar en plataformas IBM .
 Inicio: Durante la fase de inicio se
define el modelo del negocio y el
alcance del proyecto. Se identifican
todos los actores y Casos de Uso, y se
diseñan los Casos de Uso más
esenciales (aproximadamente el 20%
del modelo completo). Se desarrolla,
un plan de negocio para determinar
que recursos deben ser asignados al
proyecto.
 Elaboración: El propósito de la fase
de elaboración es analizar el dominio
del
problema,
establecer
los
cimientos de la arquitectura,
desarrollar el plan del proyecto y
eliminar los mayores riesgos.
METODOLOGIA
CARACTERISTICAS

Construcción: La finalidad principal
de esta fase es alcanzar la capacidad
operacional del producto de forma
incremental a través de las sucesivas
iteraciones. Durante esta fase todos
los componentes, características y
requisitos deben ser implementados,
integrados y probados en su
totalidad, obteniendo una versión
aceptable del producto.

Transición: La finalidad de la fase de
transición es poner el producto en
manos de los usuarios finales, para lo
que se requiere desarrollar nuevas
versiones actualizadas del producto,
completar
la
documentación,
entrenar al usuario en el manejo del
producto, y en general tareas
relacionadas
con
el
ajuste,
configuración, instalación y facilidad
de uso del producto.
MÉTODO DE DESARROLLO DE SISTEMAS
DINÁMICOS (MDSD)
 Involucrar al usuario es la clave para
llevar un proyecto eficiente y efectivo
donde
ambos
usuarios
y
desarrolladores
comparten
un
entorno de trabajo para que las
decisiones puedan ser tomadas con
precisión.
 El equipo del proyecto debe tener el
poder para tomar decisiones que son
importantes para el progreso del
proyecto, sin esperar aprobación de
niveles superiores.
 DSDM se centra en la entrega
frecuente de productos, asumiendo
que entregar algo temprano es
siempre mejor que entregar todo al
final. Al entregar el producto
frecuentemente desde una etapa



VENTAJAS
FASES

temprana del proyecto, el producto
puede ser verificado y revisado allí
donde la documentación de registro
y revisión puede ser tenida en cuenta
en la siguiente fase o iteración.
El principal criterio de aceptación de
entregables en DSDM reside en
entregar un sistema que satisface las
actuales necesidades de negocio. No
está dirigida tanto a proporcionar un
sistema perfecto que resuelva todas
las necesidades posibles del negocio,
sino que centras sus esfuerzos en
aquellas funcionalidades críticas para
alcanzar las metas establecidas en el
proyecto/negocio.
El desarrollo es iterativo e
incremental,
guiado
por
la
realimentación de los usuarios para
converger en una solución de negocio
precisa.
Todos los cambios durante el
desarrollo son reversibles.
La entrega del proyecto debería ser a
tiempo, respetando presupuestos y
con buena calidad.
 DSDM solo requiere que cada paso
del desarrollo se complete lo
suficiente como para que empiece el
siguiente paso. De este modo una
nueva iteración del proyecto puede
comenzar sin tener que esperar a que
la previa se complete enteramente. Y
con cada nueva iteración el sistema
se
mejora
incrementalmente.
Recuérdese que las necesidades del
negocio cambian constantemente y a
cualquier ritmo con el tiempo.
 Ambas técnicas de Desarrollo y
Gestión de los proyectos están
incluidas en DSDM.
 La Evaluación de riesgos debiera
centrarse en entregar función de
negocio, no en el proceso de
construcción.
Fase del pre-proyecto: fase del ciclo de vida
del proyecto, y fase del post-proyecto. La fase
del ciclo de vida del proyecto se subdivide en
5 etapas:
1.
2.
3.
4.
5.
METODOLOGIA
CARACTERISTICAS









VENTAJAS





DESVENTAJAS


estudio de viabilidad,
estudio de la empresa,
iteración del modelo funcional,
diseño e iteración de la estructura
implementación.
MODELO ÁGIL
Proceso iterativo e incremental
Mitigación del riesgo mediante
iteraciones fijas
Mejora continua
Calidad desde el primer día
Priorización de requerimientos de
acuerdo a su valor
Equipos
dedicados
y
autogestionados
Colaboración continua con el cliente
Incorporar al cambio
Prácticas de desarrollo modernas
Entregar con frecuencia software que
funcione, en periodos de un par de
semanas hasta un par de meses, con
preferencia en los periodos breves.
Las personas del negocio y los
desarrolladores deben trabajar juntos
de forma cotidiana a través del
proyecto.
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.
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.
El software que funciona es la
principal medida del progreso.
Dificultad para los requerimientos
que persistirán y cuales cambiaran
El diseño y la construcción están
intercalados y deben realizarse de
manera conjunta de modo que pueda
ser aprobados conforme se crean

METODOLOGIA
CARACTERISTICAS
VENTAJAS
MELÉ (SCRUM)
Scrum es un modelo de referencia que define
un conjunto de prácticas y roles, y que puede
tomarse como punto de partida para definir
el proceso de desarrollo que se ejecutará
durante un proyecto. Los roles principales en
Scrum son el ScrumMaster, que mantiene los
procesos y trabaja de forma similar al
director de proyecto, el ProductOwner, que
representa a los stakeholders (clientes
externos o internos), y el Team que incluye a
los desarrolladores.
Un principio clave de Scrum es el
reconocimiento de que durante un proyecto
los clientes pueden cambiar de idea sobre lo
que quieren y necesitan




FASES
El análisis el diseño y la construcción
no son predecibles.



Equipos auto- dirigidos y autoorganizados.
Una vez eligida una tarea, no se
agrega trabajo extra. En caso de que
se agregue algo se recomiendo quitar
alguna otra cosa.
Demostraciones a participantes
externos una vez culminada cada
iteración
Al principio de cada iteración,
planeamiento adaptivo guiado por el
cliente.
Planeamiento: el propósito es
establecer
la
visión,
definir
expectativas
y
asegurarse
la
financiación. Las actividades son la
escritura de la visión, el presupuesto,
el registro de acumulación o retraso
del producto final y los ítems
estimados, así como a arquitectura
de alto nivel, el diseño explorativo y
los propósitos.
MONTAJE: El propósito es identificar
mas requerimientos y priorizar las
tareas para la primera iteración.
DESARROLLO: El propósito es
implementar un sistema listo para
entregar en una serie de iteraciones

de treinta llamadas “corridas”. Las
actividades son un encuentro de
planeamiento de corridas en cada
interacción, la definición del registro
de acumulación de corridas y los
estimados y encuentros diarios.
Liberación: El propósito es el pliegue
operacional.
Tipos de metodologías utilizados en los diferentes proyectos de grado de la facultad de
ingeniería de sistemas:
1.- DESARROLLO E IMPLEMENTACIÓN DEL MODULO DE INVENTARIOS PARA LA
INTRANET DEL DEPARTAMENTO ADMINISTRATIVO DE CATASTRO DISTRITAL (DACD)
Metodología UML
Diana Paola Montenegro Cruz (2007)
2.- SISTEMA DE INFORMACION PARA LA CARACTERIZACION DE NUEVAS
TECNOLOGIAS DE INFORMACION DE LA REGION DEL SUMAPAZ EN EL SECTOR
COMERCIAL
Metodología Ingenieril.
Avon Andrea Ramírez (2007).
3.- ANALISIS, DISEÑO E IMPLEMENTACION DE UNA BASE DE DATOS Y EL MODULO
ETADISTICO PARA EL OBSERVATORIO INMOVILIARIO CATASTRAL DEL
DEPARTAMENTO ADMINISTRATIVO CATASTRO DISTRITAL.
Metodología Métrica - Metodología Desarrollo
Pablo Rolando Garzón (2007)
4.-SISTEMA DE INFORMACION PARA LA GESTION DE CONVENIOS Y SERVICIOS EN
EL FONDO DE EXTENCION Y PROYECTOS ESPECIALES DE LA UNIVERSIDAD DE
CUNDINAMARCA.
Metodología Ingenieril - XP(Extreming Programming).
Lady Mariana Molano
Edilson Martínez (2007)
5.-SISTEMA DE INFORMACION DE INVENTARIO FORMULACION Y FACTURACION DE
MEDICAMENTOS A LAS EPS ASOCIADOS AL HOSPITAL SAN JOSE DE LA PALMA
(CUNDINAMARCA).
Metodología Orientada a Objetos.
John Alexander Silva (2005).
6.-DISEÑO Y DESARROLLO DEL SOFTWARE PARA EL SEGUIMIENTO DE LA GESTION
PÚBLICA DEL DEPARTAMENTO DE PLANEACION MUNICIPAL DE LA ALCALDIA
MUNICIPAL FUSAGASUGA
Metodología Ingenieril Descriptiva
Integrantes:
Javier Antonio Melo
Adriana Rodríguez Mahecha
Descargar