2. INTRODUCCION
❖ En los 50 no existían metodologías de desarrollo, el
desarrollo estaba a cargo de los propios programadores.
❖ Los resultados eran impredecibles pues no sabían
cuándo concluirán un proyecto de software
❖ La informática aporta herramientas y procedimientos que
se apoyan en la ingeniería de software con el fin de
mejorar la calidad de los productos de software
3. Existen diferente metodos y metodologias para el desarrollo
de software según Sommerville (2005) menciona:
• Modelo de desarrollo de software: es una
representación simplificada del proceso para el desarrollo
de software
• Metodología de desarrollo de software: es un
enfoque estructurado para el desarrollo de software que
incluye modelos de sistemas, notaciones, reglas,etc
4. Definición de un modelo de proceso de software
Un modelo de proceso en una plantilla patrón o marco que
define el proceso a través del cual se crea un software es
decir los procesos son instancias de un modelo de proceso.
● Todo el desarrollo del software se puede caracterizar
como un bucle de resolución de problemas estas cuatro
etapas son:
5. ● Definición de problemas : identifica el
problema específico a resolverse
● Desarrollo técnico : resuelve problemas
a través de la aplicación de alguna
tecnología
● Integración de soluciones : ofrece
resultados a los que solicitan una solución
de primer lugar por ejemplo en
documentos ,programas ,datos,etc.
● Estado actual : es el estado actual de
sucesos
6. MODELOS DE PROCESO ITERATIVOS E INCREMENTALES
•La principal característica de estos modelos es que permite
crear cada vez versiones más completas de software, para
esto construimos versiones sucesivas de un producto. Se
crea una primera versión que es utilizada por el usuario
donde se provee retroalimentación al desarrollador, y según
los requerimientos especificados de éste usuario se crea una
segunda versión.
7. MODELO ITERATIVO
•Consiste en la iteracion de varios ciclos de vida en cascada. Al final
de cada iteracion se entrega una version mejorada
8. MODELO EN V
Modelo en las pruebas necesitan empezarse lo mas pronto posible en el ciclo de
vida
9. Modelo Espiral
Creado por el programador-analista Barry Boehm en 1957.
El MODELO en espiral, es un modelo de proceso de software evolutivo donde se conjuga la naturaleza de
construcción de prototipos con los aspectos controlados y sistemáticos del MODELO LINEAL y
SECUENCIAL.
El modelo espiral tuvo varias modificaciones como ser:
● modelo de Boehm
● modelo típico de seis regiones
● modelo win win
10. Modelo de Boehm, cada vuelta se divide en cuatro sectores: planeacion, analisis de riesgo, ingeniería y
evaluación.
Modelo típico de seis regiones, las regiones que lo componen son: comunicación con el cliente,
planificación, análisis de riesgos, ingeniería, adaptación y construcción, evaluación del cliente.
Modelo winwin, define las siguientes actividades: identificación, determinación y negociación.
Ventajas
El modelo en espiral puede adaptarse y aplicarse
a lo largo de la vida del software de
computadora.
El modelo en espiral permite a quien lo desarrolla
aplicar el enfoque de construcción de prototipos
en cualquier etapa de evolución del producto.
Desventajas
Debido a su elevada complejidad no se aconseja
utilizarlo en pequeños sistemas.
Genera mucho tiempo en el desarrollo del
sistema
Modelo costoso
11. Modelo Prototipo
El Modelo de prototipos, en Ingeniería de software, pertenece a los modelos de
desarrollo evolutivo. El prototipo debe ser construido en poco tiempo, usando los
programas adecuados y no se debe utilizar muchos recursos.
ETAPAS
Plan rápido.
Modelado, diseño rápido
Construcción del Prototipo
Desarrollo, entrega y retroalimentación
Comunicación
Entrega del desarrollo final
12.
13. VENTAJAS
Este modelo es útil cuando el cliente conoce los objetivos generales para el software,
pero no identifica los requisitos detallados de entrada, procesamiento o salida.
También ofrece un mejor enfoque cuando el responsable del desarrollo del software
está inseguro de la eficacia de un algoritmo, de la adaptabilidad de un sistema operativo
o de la forma que debería tomar la interacción humano-máquina
Se puede reutilizar el codigo
La construcción de prototipos se puede utilizar como un modelo del proceso
independiente, se emplea más comúnmente como una técnica susceptible de
implementarse dentro del contexto de cualquiera de los modelos del proceso expuestos.
14. Desventajas
El usuario tiende a crearse unas expectativas cuando ve el prototipo de cara al
sistema final. A causa de la intención de crear un prototipo de forma rápida, se
suelen desatender aspectos importantes, tales como la calidad y el mantenimiento
a largo plazo, lo que obliga en la mayor parte de los casos a reconstruirlo una vez
que el prototipo ha cumplido su función. Es frecuente que el usuario se muestre
reacción a ello y pida que sobre ese prototipo se construya el sistema final, lo que
lo convertiría en un prototipo evolutivo, pero partiendo de un estado poco
recomendado.
En aras de desarrollar rápidamente el prototipo, el desarrollador suele tomar
algunas decisiones de implementación poco convenientes (por ejemplo, elegir un
lenguaje de programación incorrecto porque proporciona un desarrollo más rápido).
Con el paso del tiempo, el desarrollador puede olvidarse de la razón que le llevó a
tomar tales decisiones, con lo que se corre el riesgo de que dichas elecciones
pasen a formar parte del sistema
15. MODELO EVOLUTIVO INCREMENTAL
● El Modelo Incremental combina elementos del Modelo Lineal Secuencial con la filosofía interactiva de Construcción de Prototipos.
● El Modelo Incremental es de naturaleza interactiva brindando al final de cada incremento la entrega de un producto
completamente operacional.
CARACTERÍSTICAS
● Se evitan proyectos largos y se entrega "algo de
valor" a los usuarios con cierta frecuencia.
● El usuario se involucra más.
VENTAJAS:
● Con un paradigma incremental se reduce el tiempo
de desarrollo inicial, ya que se implementa la
funcionalidad parcial.
● El modelo proporciona todas las ventajas del
modelo en Cascada realimentado, reduciendo sus
desventajas sólo al ámbito de cada incremento.
DESVENTAJAS:
● El modelo incremental no es recomendable para
casos de sistemas de tiempo real, de alto nivel de
seguridad, de procesamiento distribuido y/o de
alto índice de riesgos.
● Requiere de mucha planeación, tanto
administrativa como técnica.
16. Metodología de desarrollo ágil SCRUM
Define un marco para la gestión de proyectos, que se ha utilizado con éxito
durante los últimos 10 años.
Está especialmente indicada para proyectos con un rápido cambio de requisitos.
Características
- El desarrollo de software se realiza mediante iteraciones, denominadas
sprints, con una duración de 30 días.
- Las reuniones a lo largo proyecto, entre ellas destaca la reunión diaria de 15
minutos del equipo de desarrollo para coordinación e integración
17.
18. Ventajas y desventajas SCRUM
Ventajas
• Se obtiene software lo más rápido posible y este cumple con los requerimientos
más importantes.
• Se trabaja en iteraciones cortas, de alto enfoque y total transparencia.
Desventajas
• Requiere delegar responsabilidades al equipo, incluso permite fallar si es
necesario.
• Es una metodología que difiere del resto, y esto causa cierta resistencia en su
aplicación para algunas personas.
19. Modelo Ágil
Manifiesto ágil (2001)
Se están poniendo al descubierto mejores métodos para desarrollar software, haciéndolo y
ayudando a otros a que lo hagan. Con este trabajo hemos llegado a valorar:
A los individuos y su interacción por encima de los procesos y las
herramientas
El software que funciona por encima de la
documentación exhaustiva
La colaboración con el cliente por encima de la negociación
contractual
La respuesta al cambio por encima al
seguimiento de un plan
Aunque hay valor en los elementos de la derecha, valoramos mas los de la izquierda.
Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward
Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew
Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve
Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas
20. Modelo Ágil
eXtreme Programming (XP)
Este es el método que más popularidad ha alcanzado entre las metodologías ágiles, y
posiblemente sea también el más transgresor de la ortodoxia basada en procesos.
Su creador, Kent Beck fue el alma mater del Manifiesto Ágil.
Extreme Programming (XP) se basa sobre la suposición de que es posible desarrollar
software de gran calidad a pesar, o incluso como consecuencia del cambio continuo. Su
principal asunción es que con un poco de planificación, un poco de codificación y unas
pocas pruebas se puede decidir si se está siguiendo un camino acertado o equivocado,
evitando así tener que echar marcha atrás demasiado tarde.
Valores que inspiran XP
Simplicidad Feedback Coraje Comunicación
Respeto