SlideShare ist ein Scribd-Unternehmen logo
1 von 57
15/09/2014 
Metodologías de Desarrollo 
Presentado por: 
o Brenda Soledad Velázquez Jiménez 
o Iván Sánchez Cervantes
15/09/2014 
INTRODUCCIÓN 
¿Qué significa la metodología de desarrollo? 
- Se trata de seguir ciertas pautas predefinidas para lograr 
terminar un software de calidad; es decir, llevar un 
comportamiento metódico.
15/09/2014 
INTRODUCCIÓN 
¿Qué cosas dicen 
niños?... Yo solo 
programo, ese es 
mi único paso. 
¡¡Ese sistema esta bien 
padre!! ¿Qué pasos 
siguió para hacerlo? 
¿Cuántos de los programadores modernos, antes de comenzar 
a escribir código de un sistema, se dedican a diseñar antes el 
mismo? ¿A realizar la documentación de los requerimientos? ¿A 
pensar en los diagramas UML? ¿Cuántos?
15/09/2014 
METODOLOGÍAS CLÁSICAS 
 Hay una serie de metodologías 
considerados como tradicionales o 
clásicas. Algunos lo consideran un 
tanto burocráticas, y con mucha 
ambiguedad; y no es para más. Estas 
metodologías «Clásicas» fueron 
creados por los años 70’s-80’s 
pensando en los negocios de los 50’s. 
 No hay de otra que reconocer que la 
mayor parte de estas metodologías 
ya no funcionan para proyectos muy 
innovadores. 
Desarrollo en Cascada 
Desarrollo Incremental 
Desarrollo Evolutivo 
Desarrollo en Espiral 
Basado en Prototipos 
Basado en componentes
15/09/2014 
METODOLOGIAS CLÁSICAS 
Las metodologías surgidas en los años 90 a la actualidad son las que responden 
a las necesidades modernas. Varios especialistas llaman a estas metodologías 
«ágiles»… entonces, 
¿Cómo saber que metodología usar y quien lo debe elegir? 
La mayoría de las veces, el trabajo es en equipo, 
siendo así, se tiene que hacer un estudio de las 
metodologías sin dejar fuera a las clásicas (por 
muy engorroso que sea). De esta forma se 
deben tener las siguientes consideraciones:
15/09/2014 
METODOLOGÍAS CLÁSICAS 
- Si eres el que tiene el puesto con mayor 
responsabilidad, decide ya. 
- Si no tienes un puesto de alta responsabilidad, y el 
que sí lo tiene no toma una metodología, el proyecto 
está destinado al fracaso. 
- Cuando se forma parte de un pequeño equipo de 
trabajo, lo mejor es conversar sobre cuál será la 
metodología correcta a aplicar, incluso puede llegar el 
momento en que se tomen ideas de diferentes 
metodologías.
15/09/2014 
- Desarrollo en Cascada 
Enfoque metodológico que ordena rigurosamente el proceso de desarrollo de 
software. De manera general la metodología sería la siguiente: 
Ingeniería de 
Requisitos 
Análisis 
Requerimientos del sistema 
Requerimientos del Software 
Diseño 
Diseño Preliminar y detallado 
Implementación 
Codificación y depuración 
Pruebas y 
Mantenimiento 
Test y pruebas previas a la 
implantación
15/09/2014 
- Desarrollo en Cascada 
Ventajas: 
o Es un modelo sencillo y disciplinado. 
o Es fácil aprender a utilizarlo y comprender su 
funcionamiento. 
o Ha sido muy usado y, por tanto, está ampliamente 
contrastado.
15/09/2014 
- Desarrollo en Cascada 
Desventajas: 
o Los proyectos raramente siguen el proceso lineal tal 
como se definía originalmente el ciclo de vida. 
o Es difícil que el cliente exponga explícitamente 
todos los requisitos al principio. 
o Puede resultar complicado regresar a etapas 
anteriores (ya acabadas) para realizar correcciones. 
o El producto final obtenido puede que no refleje 
todos los requisitos del usuario.
15/09/2014 
- Desarrollo Incremental 
Por supuesto, en esta metodología también se emplea el ciclo de vida del 
software. 
Requerimi 
entos 
Análisis Diseño 
Implemen 
tación 
Pruebas 
Requerimi 
entos 
Análisis Diseño 
Implemen 
tación 
Pruebas 
Requerimi 
entos 
Análisis Diseño 
Implemen 
tación 
Pruebas 
Incremento 1 
Incremento 2 
Incremento 3 
Entrega del 
Incremento 1 
Entrega del 
Incremento 2 
Entrega del 
Incremento 3 
Tiempo en el calendario
15/09/2014 
- Desarrollo Incremental 
Ventajas: 
o Impacto ventajoso frente al cliente, que es la entrega 
temprana de partes operativas del Software. 
o El usuario de involucra más. 
o Permite entregar al cliente un producto más rápido 
en comparación del modelo de cascada. 
o Resulta más sencillo acomodar cambios al acotar el 
tamaño de los incrementos.
15/09/2014 
- Desarrollo Incremental 
Desventajas: 
o Los errores en los requisitos se detectan tarde. 
o Difícil de evaluar el costo total. 
o 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. 
o Requiere de mucha planeación, tanto administrativa 
como técnica.
15/09/2014 
- Desarrollo Evolutivo 
El desarrollo evolutivo busca reemplazar el viejo sistema con uno nuevo que 
tendría la propiedad de satisfacer los nuevos requerimientos lo más rápido 
posible. El desarrollo evolutivo asume que los requerimientos están sujetos a 
cambios continuos y que la estrategia para enfrentar aquello pasa por un 
reflejo, también continuo de aquellos cambios. 
Existen dos tipos de desarrollo evolutivo: 
o Desarrollo Exploratorio. 
o Prototipos Desechables.
15/09/2014 
- Desarrollo Evolutivo 
Especificación Inicial 
Desarrollo del 
Producto 
Implementación, uso y 
evaluación 
Re-specificación 
Definición del problema y especificación inicial 
en base a los requerimientos definidos. 
Definición del software en base a un proceso 
con énfasis en la rapidez de la liberación. 
Implantación y uso del software en ambiente 
de explotación, monitoreo de los nuevos 
requerimientos 
Versiones del Software 
Redefinición del problema en base a los nuevos 
requerimientos.
15/09/2014 
- Desarrollo en Espiral 
Los principios básicos son: 
La atención se centra en la evaluación y reducción del riesgo del proyecto 
dividiendo el proyecto en segmentos más pequeños y proporcionar más 
facilidad de cambio durante el proceso de desarrollo, así como ofrecer la 
oportunidad de evaluar los riesgos y con un peso de la consideración de la 
continuación del proyecto durante todo el ciclo de vida.
15/09/2014 
- Desarrollo en Espiral 
Cada viaje alrededor de la espiral atraviesa cuatro cuadrantes básicos: (1) 
determinar objetivos, alternativas, y desencadenantes de la iteración; (2) 
Evaluar alternativas; Identificar y resolver los riesgos; (3) desarrollar y 
verificar los resultados de la iteración, y (4) plan de la próxima iteración. 
Cada ciclo comienza con la identificación de los interesados y sus 
condiciones de ganancia, y termina con la revisión y examinación.
15/09/2014 
- Desarrollo en Espiral 
En términos generales, el modelo en espiral se representa como sigue: 
Análisis de Riesgos Objetivos 
Desarrollar y Probar Planificación
15/09/2014 
- Desarrollo en Espiral 
Entendiendo que el 
desarrollo en espiral 
es un modelo del 
ciclo de vida del 
software, la figura 
anterior se vería así:
15/09/2014 
- Desarrollo en Espiral 
Ventajas: 
o Reduce riesgos del proyecto 
o Incorpora objetivos de calidad 
o Integra el desarrollo con el mantenimiento
15/09/2014 
- Desarrollo en Espiral 
Desventajas: 
o Genera mucho tiempo en el desarrollo del 
sistema 
o Modelo costoso 
o Requiere experiencia en la identificación de 
riesgos
15/09/2014 
- Desarrollo en Espiral 
Inconvenientes: 
Planificar un proyecto con esta metodología es a menudo imposible, debido a 
la incertidumbre en el número de iteraciones que serán necesarias. En este 
contexto la evaluación de riesgos es de la mayor importancia y, para grandes 
proyectos, dicha evaluación requiere la intervención de profesionales de gran 
experiencia.
15/09/2014 
- Desarrollo de Prototipos 
Pertenece a los modelos de desarrollo evolutivo. Pone 
énfasis en la etapa de especificación de 
requerimientos a través de la construcción de 
prototipos que aproximan al usuario a la idea final del 
sistema. 
En palabras más sencillas: «Es un conjunto 
estandarizado de actividades dedicada al desarrollo de 
versiones incompletas a desarrollar.» 
En la parte derecha de la diapositiva se listan las 
etapas. 
Plan Rápido 
Diseño Rápido 
Construcción del prototipo 
Desarrollo, entrega y 
retroalimentación 
Comunicación
15/09/2014 
- Desarrollo de Prototipos 
Esquema de la Metodología de Prototipos 
Usuario Define su Requerimiento 
Construye Prototipo 
Sirve 
Construcción, 
Implementación 
No 
Sí 
Analista
15/09/2014 
- Desarrollo de Prototipos 
Ventajas: 
o Este modelo es útil cuando el cliente conoce 
los objetivos generales para el software. 
o 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.
15/09/2014 
- Desarrollo de Prototipos 
Desventajas: 
o 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.
15/09/2014 
- Desarrollo Basado en Componentes 
o La complejidad de los sistemas computacionales actuales nos ha llevado a 
buscar la reutilización del software existente. 
o En esencia, un componente es una pieza de código pre elaborado que 
encapsula alguna funcionalidad expuesta a través de interfaces estándar. 
o El paradigma de ensamblar componentes y escribir código para hacer que 
estos componentes funcionen se conoce como Desarrollo de Software 
Basado en Componentes.
15/09/2014 
- Desarrollo Basado en Componentes 
El uso de este paradigma posee algunas ventajas: 
Reutilización del software. 
Simplifica las pruebas. 
Simplifica el mantenimiento del sistema. 
Mayor calidad. 
De la misma manera, el optar por comprar componentes de terceros 
en lugar de desarrollarlos, posee algunas ventajas: 
Ciclos de desarrollo más cortos. 
Mejor ROI. 
Funcionalidad mejorada.
15/09/2014 
OTRAS METODOLOGÍAS 
A partir de los años noventa surgieron nuevas metodologías, algunos las 
llaman «Metodologías Modernas». 
A decir verdad, las ideas que se expondrán resultan ser las más 
aceptadas y valoradas por los programadores modernos; tal vez sea por 
la combinación de las ideas tradicionales con las actuales.
15/09/2014 
- Ganar-Ganar (Win & Win) 
Este Modelo sugiere la comunicación con el cliente para 
fijar los requisitos, en que simplemente se pregunta al 
cliente qué necesita y él proporciona la información para 
continuar; pero esto es en un contexto ideal que rara vez 
ocurre. Normalmente cliente y desarrollador entran en 
una negociación, se negocia coste frente a funcionalidad, 
rendimiento, calidad, etc. 
«Es así que la obtención de requisitos requiere una negociación, que tiene éxito 
cuando ambas partes ganan».
15/09/2014 
- Proceso Unificado 
El Proceso Unificado es un marco de desarrollo de software que se 
caracteriza por estar dirigido por casos de uso, centrado en la 
arquitectura y por ser iterativo e incremental. 
Inicio Elaboración 
Transición 
Construcción 
Producción
15/09/2014 
- Ingeniería Web 
¿Qué es la ingeniería web? Es el proceso 
utilizado para crear, implantar y mantener 
aplicaciones y sistemas web de alta calidad. 
La ingeniería de la Web no es un clon o subconjunto de la ingeniería de 
software aunque ambas incluyen desarrollo de software y programación, 
pues a pesar de que la ingeniería de la Web utiliza principios de ingeniería de 
software, incluye nuevos enfoques, metodologías, herramientas, técnicas, 
guías y patrones para cubrir los requisitos únicos de las aplicaciones web.
15/09/2014 
- Ingeniería Web 
De manera general, las etapas con las que cuenta la Ingeniería de Software son 
las siguientes: Formulación, Planificación, Análisis, Modelización, generación 
de páginas, el Test, Evaluación del cliente. 
Formulación.- Identifica objetivos y 
establece el alcance de la primera 
entrega.
15/09/2014 
- Ingeniería Web 
Planificación. Genera la estimación 
del coste general del proyecto, la 
evaluación de riesgos y el calendario 
del desarrollo y fechas de entrega. 
Análisis. Especifica los requerimientos 
e identifica el contenido.
15/09/2014 
- Ingeniería Web 
Modelización. Se compone de dos secuencias paralelas de tareas. Una 
consiste en el diseño y producción del contenido que forma parte de la 
aplicación. La otra, en el diseño de la arquitectura, navegación e interfaz de 
usuario. Es conveniente resaltar la importancia del diseño de la interfaz. 
Independientemente del valor del contenido y servicios prestados, una 
buena interfaz mejora la percepción que el usuario tiene de estos.
15/09/2014 
- Ingeniería Web 
Generación de páginas. Se integra contenido, 
arquitectura, navegación e interfaz para crear 
estática o dinámicamente el aspecto más visible de 
las aplicaciones, las páginas. 
El Test. Busca errores a todos los niveles: contenido, 
funcional, navegacional, rendimiento, etc. El hecho 
de que las aplicaciones residan en la red, y que inter-operen 
en plataformas muy distintas, hace que el 
proceso de test sea especialmente difícil.
15/09/2014 
- Ingeniería Web 
Evaluación del cliente. El resultado 
final es sometido a la evaluación del 
cliente y aceptación por el mismo.
15/09/2014 
- Metodologías Ágiles 
Por lo pronto, surgen metodologías a petición de las problemas actuales, 
tomando algunas de las ideas de las metodologías tradicionales.
15/09/2014 
- Metodologías Ágiles 
Como resultado de esta nueva teoría se crea un Manifiesto Ágil cuyas 
principales ideas son: 
o Los individuos y las interacciones entre ellos son más importantes que 
las herramientas y los procesos empleados. 
o Es más importante crear un producto software que funcione que escribir 
documentación exhaustiva. 
o La colaboración con el cliente debe prevalecer sobre la negociación de 
contratos. 
o La capacidad de respuesta ante un cambio es más importante que el 
seguimiento estricto de un plan.
15/09/2014 
- Metodologías Ágiles 
Entre los principales métodos ágiles tenemos las siguientes: 
o El XP (Extreme Programming). 
o Scrum. 
o Iconix. 
o Cristal Methods. 
o AUP, entre otros.
15/09/2014 
- Metodologías Ágiles 
Extreme Programming (XP). 
Es la más destacada de los procesos agiles de desarrollo de software 
formulada por Kent Beck. 
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.
15/09/2014 
- Metodologías Ágiles 
Desarrollo 
iterativo 
incremental 
XP 
Programación 
por parejas 
Frecuente 
interacción 
Corrección 
Simplicidad en 
el código 
Propiedad del 
código 
compartido
15/09/2014 
- Metodologías Ágiles 
Ventajas: 
o Apropiado para entornos volátiles. 
o Planificación más transparente para nuestros clientes, 
conocen las fechas de entrega de funcionalidades. 
Vital para su negocio. 
o Permitirá definir en cada iteración cuales son los 
objetivos de la siguiente 
o Permite tener realimentación de los usuarios muy útil. 
o La presión está a lo largo de todo el proyecto y no en 
una entrega final.
15/09/2014 
- Metodologías Ágiles 
Desventajas 
o Delimitar el alcance del proyecto con 
nuestro cliente 
o Para mitigar esta desventaja se 
plantea definir un alcance a alto nivel 
basado en la experiencia.
15/09/2014 
- Metodologías Ágiles 
Iconix: 
El proceso ICONIX se define como un proceso de desarrollo de software práctico. 
Está entre la complejidad de RUP y la simplicidad y pragmatismo de XP, sin 
eliminar las tareas de análisis y diseño que XP no contempla. 
Es un proceso simplificado en comparación con otros procesos más tradicionales. 
ICONIX presenta claramente las actividades de cada fase y exhibe una secuencia 
de pasos que deben ser seguidos. Además, está adaptado a patrones y ofrece el 
soporte UML, dirigido por Casos de Uso y es un proceso iterativo e incremental.
15/09/2014 
- Metodologías Ágiles 
Características de Iconix. 
o Iterativo e incremental: varias interacciones ocurren entre el modelo del 
dominio y la identificación de los casos de uso. El modelo estático es 
incrementalmente refinado por los modelos dinámicos. 
o Trazabilidad: cada paso está referenciado por algún requisito. Se define la 
trazabilidad como la capacidad de seguir una relación entre los diferentes 
artefactos producidos. 
o Dinámica del UML: la metodología ofrece un uso dinámico del UML como 
los diagramas del caso de uso, diagramas de secuencia y de colaboración.
15/09/2014 
REINGENIERÍA 
¿Qué es? 
Considere cualquier producto tecnológico que le haya servido bien. Usted lo 
utiliza regularmente, pero se está volviendo obsoleto. Se rompe con 
frecuencia, su reparación toma más tiempo del que usted quisiera, y ya no 
representa más la nueva tecnología. ¿Qué hacer? 
- Si el producto es hardware. 
- Si el producto es software.
15/09/2014 
REINGENIERÍA 
¿Quién la hace? 
En el ámbito de las organizaciones, la reingeniería lo llevan a cabo especialistas 
en negocios (con frecuencias compañías consultoras). En el ámbito del software 
la reingeniería la realizan los ingenieros de software.
15/09/2014 
REINGENIERÍA 
¿Por qué es importante? 
Se vive en un mundo en cambio constante. Las demandas acerca de las 
funciones de negocios y la tecnología de la información que las soportan están 
cambiando a un ritmo que impone una enorme presión competitiva en las 
organizaciones comerciales.
15/09/2014 
REINGENIERÍA 
¿Cuáles son los pasos? 
El proceso de reingeniería de software incluye análisis 
de inventarios, ingeniería inversa, reestructuración de 
programas y datos, e ingeniería avanzada. La finalidad 
de estas actividades es crear versiones de programas 
existentes que muestren mayor calidad y mejor 
facilidad de mantenimiento. 
La reingeniería es una actividad de reconstrucción, y la 
reingeniería de los sistemas de información se 
comprende mejor si se considera una actividad 
análoga: la reconstrucción de una casa en otro estado.
15/09/2014 
REINGENIERÍA 
Análisis de 
Inventarios 
Reestructuración de 
documentos 
Ingeniería 
Inversa 
Reestructuración 
de código 
Reestructuración 
de datos 
Ingeniería 
directa 
La reingeniería de 
software consta de 
seis actividades.
15/09/2014 
REINGENIERÍA 
1. Análisis de Inventarios. 
Las organizaciones de software deberían 
tener un inventario de todas sus 
aplicaciones. El inventario tal vez no sea 
más que un modelo en una hoja de 
cálculo que contenga información que 
proporcione una descripción detallada 
de las aplicaciones activas.
15/09/2014 
REINGENIERÍA 
2. Reestructuración de documentos. 
La documentación débil es la marca de muchos sistemas 
heredados. 
3. Ingeniería Inversa. 
Ayudar a los ingenieros de software a comprender la 
estructura de diseño interno de los programas complejos. 
Herramientas representativas. Imagix 4D, desarrollado por 
Imagix (www.imagix.com). 
JdGui es otra herramienta para estos usos.
15/09/2014 
REINGENIERÍA 
4. Reestructuración de código. 
El objetivo de las herramientas de reestructuración es transformar el antiguo 
software de computadoras carente de estructura en lenguajes de programación 
y estructuras de diseño modernos. 
Mecánica. En general, el código fuente se ingresa y transforma en un mejor 
programa estructurado. 
Herramientas representativas. 
DMS Software Reengineering Toolkit, desarrollada por Semantic Design. 
Function EncapsulationTool, desarrollada en la Wayne State University.
15/09/2014 
REINGENIERÍA 
5. Reestructuración de datos. 
Esta actividad a veces se denomina análisis de datos. 
Antes de comenzar la reestructuración de datos se debe llevar a cabo una 
actividad de ingeniería inversa denominada análisis del código fuente. 
Una vez completado el análisis de datos comienza el rediseño de datos.
15/09/2014 
REINGENIERÍA 
6. Ingeniería directa. 
También llamada renovación o reclamación, no solo recupera la 
información de diseño a partir del software existente, también utiliza esta 
información para alterar o reconstruir el sistema existente con la finalidad 
de mejorar su calidad global. En la mayoría de los casos el software 
sometido a reingeniería vuelve a implementar la función del sistema 
existente y también añade nuevas funciones o mejora el desempeño 
global.
15/09/2014 
Fuentes Bibliográficas 
 http://wiki.monagas.udo.edu.ve/index.php/Metodolog%C 
3%ADas_para_el_desarrollo_de_software 
 http://profvanessaborjas.wordpress.com/2012/05/10/meto 
dologia-de-desarrollo-de-software/ 
 http://fgaith2.blogspot.mx/ 
 http://ithjlmvu2.blogspot.mx/ 
 http://msdn.microsoft.com/es-es/library/bb972268.aspx 
 Ian Sommerville, Ingeniería de Software, Pág. 10. 
 http://ingenieriadesoftware.mex.tl/59189_Metodologia- 
Crystal.html 
 Ingeniería de Software, un enfoque práctico, Roger 
Pressman, 6ta Ed., Pág. 902-9224
15/09/2014 
FIN DE LA PRESENTACIÓN

Weitere ähnliche Inhalte

Was ist angesagt?

Modelos de desarrollo del software
Modelos de desarrollo del softwareModelos de desarrollo del software
Modelos de desarrollo del softwareRenny Batista
 
Modelo en cascada
Modelo en cascadaModelo en cascada
Modelo en cascadahome
 
Metodologia rup
Metodologia rupMetodologia rup
Metodologia rupmireya2022
 
Mobile D (programacion dispositivos moviles)
Mobile D (programacion dispositivos moviles)Mobile D (programacion dispositivos moviles)
Mobile D (programacion dispositivos moviles)David Hernandez
 
Modelos de proceso de desarrollo de software
Modelos de proceso de desarrollo de softwareModelos de proceso de desarrollo de software
Modelos de proceso de desarrollo de softwareUriel Ramos
 
INGENIERÍA DE REQUISITOS E INGENIERÍA DE REQUERIMIENTOS
INGENIERÍA DE REQUISITOS E INGENIERÍA DE REQUERIMIENTOSINGENIERÍA DE REQUISITOS E INGENIERÍA DE REQUERIMIENTOS
INGENIERÍA DE REQUISITOS E INGENIERÍA DE REQUERIMIENTOSLenin Acosta Mata
 
Modelo de desarrollo de software espiral
Modelo de desarrollo de software espiralModelo de desarrollo de software espiral
Modelo de desarrollo de software espiralMarco Tinajero
 
Requerimientos en Ingenieria de Software
Requerimientos en Ingenieria de SoftwareRequerimientos en Ingenieria de Software
Requerimientos en Ingenieria de SoftwareKelvin Abdiel Alvarado
 
Metodologia incremental
Metodologia incrementalMetodologia incremental
Metodologia incrementalAnel Sosa
 
Modelo de desarrollo de software
Modelo de desarrollo de softwareModelo de desarrollo de software
Modelo de desarrollo de softwareYaskelly Yedra
 
Procesos de software Unidad 2 - Software Enginnering - Ian sommerville
Procesos de software  Unidad 2 - Software Enginnering - Ian sommervilleProcesos de software  Unidad 2 - Software Enginnering - Ian sommerville
Procesos de software Unidad 2 - Software Enginnering - Ian sommervilleMatias Gonzalo Acosta
 
Planificacion de proyecto de software
Planificacion de proyecto de softwarePlanificacion de proyecto de software
Planificacion de proyecto de softwareGeorgy Jose Sanchez
 
Modelos o Ciclos de vida de software
Modelos o Ciclos de vida de softwareModelos o Ciclos de vida de software
Modelos o Ciclos de vida de softwareWilliam Matamoros
 
Metodología Incremental
Metodología IncrementalMetodología Incremental
Metodología Incrementalandreilouis
 

Was ist angesagt? (20)

Modelos de desarrollo del software
Modelos de desarrollo del softwareModelos de desarrollo del software
Modelos de desarrollo del software
 
Estimación de Proyectos de Software
Estimación de Proyectos de SoftwareEstimación de Proyectos de Software
Estimación de Proyectos de Software
 
Modelo incremental
Modelo incrementalModelo incremental
Modelo incremental
 
Modelo en cascada
Modelo en cascadaModelo en cascada
Modelo en cascada
 
Fases del rup
Fases del rupFases del rup
Fases del rup
 
Metodologia rup
Metodologia rupMetodologia rup
Metodologia rup
 
Mobile D (programacion dispositivos moviles)
Mobile D (programacion dispositivos moviles)Mobile D (programacion dispositivos moviles)
Mobile D (programacion dispositivos moviles)
 
Modelos de proceso de desarrollo de software
Modelos de proceso de desarrollo de softwareModelos de proceso de desarrollo de software
Modelos de proceso de desarrollo de software
 
Metodología RUP
Metodología RUPMetodología RUP
Metodología RUP
 
LÍNEAS DE PRODUCTOS DE SOFTWARE
LÍNEAS DE PRODUCTOS DE SOFTWARELÍNEAS DE PRODUCTOS DE SOFTWARE
LÍNEAS DE PRODUCTOS DE SOFTWARE
 
INGENIERÍA DE REQUISITOS E INGENIERÍA DE REQUERIMIENTOS
INGENIERÍA DE REQUISITOS E INGENIERÍA DE REQUERIMIENTOSINGENIERÍA DE REQUISITOS E INGENIERÍA DE REQUERIMIENTOS
INGENIERÍA DE REQUISITOS E INGENIERÍA DE REQUERIMIENTOS
 
Modelo de desarrollo de software espiral
Modelo de desarrollo de software espiralModelo de desarrollo de software espiral
Modelo de desarrollo de software espiral
 
Modelo cascada
Modelo cascadaModelo cascada
Modelo cascada
 
Requerimientos en Ingenieria de Software
Requerimientos en Ingenieria de SoftwareRequerimientos en Ingenieria de Software
Requerimientos en Ingenieria de Software
 
Metodologia incremental
Metodologia incrementalMetodologia incremental
Metodologia incremental
 
Modelo de desarrollo de software
Modelo de desarrollo de softwareModelo de desarrollo de software
Modelo de desarrollo de software
 
Procesos de software Unidad 2 - Software Enginnering - Ian sommerville
Procesos de software  Unidad 2 - Software Enginnering - Ian sommervilleProcesos de software  Unidad 2 - Software Enginnering - Ian sommerville
Procesos de software Unidad 2 - Software Enginnering - Ian sommerville
 
Planificacion de proyecto de software
Planificacion de proyecto de softwarePlanificacion de proyecto de software
Planificacion de proyecto de software
 
Modelos o Ciclos de vida de software
Modelos o Ciclos de vida de softwareModelos o Ciclos de vida de software
Modelos o Ciclos de vida de software
 
Metodología Incremental
Metodología IncrementalMetodología Incremental
Metodología Incremental
 

Andere mochten auch

Metodología de la Investigación - Unidad 2
Metodología de la Investigación - Unidad 2Metodología de la Investigación - Unidad 2
Metodología de la Investigación - Unidad 2Ricardo Cuberos Mejía
 
Mantenimiento de software
Mantenimiento de softwareMantenimiento de software
Mantenimiento de softwareDaniela Ortiz
 
Mantenimiento De Software
Mantenimiento De SoftwareMantenimiento De Software
Mantenimiento De Softwarecharly13
 
Residuos y ciclo de vida de los objetos
Residuos y ciclo de vida de los objetosResiduos y ciclo de vida de los objetos
Residuos y ciclo de vida de los objetosiesMola
 
Construccion de prototipos_de_software
Construccion de prototipos_de_softwareConstruccion de prototipos_de_software
Construccion de prototipos_de_softwareLorraine Cuesta
 
Ingeniería Inversa: Mando teledirigido
Ingeniería Inversa: Mando teledirigido Ingeniería Inversa: Mando teledirigido
Ingeniería Inversa: Mando teledirigido Juanfritan
 
Ingeniería inversa
Ingeniería inversaIngeniería inversa
Ingeniería inversakarin0902
 
Analisis diseño de sistemas ciclo de vida
Analisis diseño de sistemas ciclo de vidaAnalisis diseño de sistemas ciclo de vida
Analisis diseño de sistemas ciclo de vidaYovana Connie Roca Avila
 
Modelo espiral win win
Modelo espiral win winModelo espiral win win
Modelo espiral win winkhinkhe
 
Ingeniería inversa y reingeniería de software
Ingeniería inversa y reingeniería de softwareIngeniería inversa y reingeniería de software
Ingeniería inversa y reingeniería de softwareMoises Medina
 

Andere mochten auch (20)

Metodología de la Investigación - Unidad 2
Metodología de la Investigación - Unidad 2Metodología de la Investigación - Unidad 2
Metodología de la Investigación - Unidad 2
 
Mantenimiento de software
Mantenimiento de softwareMantenimiento de software
Mantenimiento de software
 
Mantenimiento De Software
Mantenimiento De SoftwareMantenimiento De Software
Mantenimiento De Software
 
Reingenieria inversa
Reingenieria inversaReingenieria inversa
Reingenieria inversa
 
Residuos y ciclo de vida de los objetos
Residuos y ciclo de vida de los objetosResiduos y ciclo de vida de los objetos
Residuos y ciclo de vida de los objetos
 
Construccion de prototipos_de_software
Construccion de prototipos_de_softwareConstruccion de prototipos_de_software
Construccion de prototipos_de_software
 
Reingeniería
ReingenieríaReingeniería
Reingeniería
 
Ingeniería Inversa: Mando teledirigido
Ingeniería Inversa: Mando teledirigido Ingeniería Inversa: Mando teledirigido
Ingeniería Inversa: Mando teledirigido
 
Ingenieria inversa
Ingenieria  inversaIngenieria  inversa
Ingenieria inversa
 
Ingeniería inversa de sistemas de información
Ingeniería inversa de sistemas de informaciónIngeniería inversa de sistemas de información
Ingeniería inversa de sistemas de información
 
Ingeniería inversa
Ingeniería inversaIngeniería inversa
Ingeniería inversa
 
Analisis diseño de sistemas ciclo de vida
Analisis diseño de sistemas ciclo de vidaAnalisis diseño de sistemas ciclo de vida
Analisis diseño de sistemas ciclo de vida
 
Reingenieria
ReingenieriaReingenieria
Reingenieria
 
Prototipo evolutivo
Prototipo evolutivoPrototipo evolutivo
Prototipo evolutivo
 
Proyecto de reingenieria de software
Proyecto de reingenieria  de softwareProyecto de reingenieria  de software
Proyecto de reingenieria de software
 
Modelo espiral win win
Modelo espiral win winModelo espiral win win
Modelo espiral win win
 
Reingenieria
ReingenieriaReingenieria
Reingenieria
 
Ingeniería inversa y reingeniería de software
Ingeniería inversa y reingeniería de softwareIngeniería inversa y reingeniería de software
Ingeniería inversa y reingeniería de software
 
Modelos evolutivos. incremental y espiral
Modelos evolutivos. incremental y espiralModelos evolutivos. incremental y espiral
Modelos evolutivos. incremental y espiral
 
Dispositivos de Redes
Dispositivos de RedesDispositivos de Redes
Dispositivos de Redes
 

Ähnlich wie Unidad 2. Metodologías de Desarrollo

Trabajo de sistemas de software
Trabajo de sistemas de softwareTrabajo de sistemas de software
Trabajo de sistemas de softwareJhonJairoPerez
 
Modelos de Ing de soft
Modelos de Ing de softModelos de Ing de soft
Modelos de Ing de softJazmin Cr
 
Investigación de modelos
Investigación de modelos Investigación de modelos
Investigación de modelos bren1995
 
Modelo Descrptivos Del Proceso Del Sofware
Modelo Descrptivos  Del  Proceso Del SofwareModelo Descrptivos  Del  Proceso Del Sofware
Modelo Descrptivos Del Proceso Del Sofwareluisfe
 
Modelos de desarrollo de software
Modelos de desarrollo de softwareModelos de desarrollo de software
Modelos de desarrollo de softwareAlejandro Silva
 
Metodos del desarrollo de sistema de informacion
Metodos del desarrollo de sistema de informacionMetodos del desarrollo de sistema de informacion
Metodos del desarrollo de sistema de informacioncaroyu
 
Modelos de desarrollo de software
Modelos de desarrollo de softwareModelos de desarrollo de software
Modelos de desarrollo de softwareRadel Fuentes
 
1 ingeniería de software
1 ingeniería de software1 ingeniería de software
1 ingeniería de softwareUVM
 
Metodología tradicional
Metodología tradicionalMetodología tradicional
Metodología tradicionalJesenia Escobar
 
Métodos de la ingeniería
Métodos de la ingenieríaMétodos de la ingeniería
Métodos de la ingenieríaSam Stgo
 
Gestión de proyectos
Gestión de proyectosGestión de proyectos
Gestión de proyectosaaahhhhaaa
 
Proceso y diseño de un software
Proceso y diseño  de un   softwareProceso y diseño  de un   software
Proceso y diseño de un softwarejafigueroa26
 
Proceso y diseño de un software
Proceso y diseño  de un   softwareProceso y diseño  de un   software
Proceso y diseño de un softwareCESARCONTRERAS009
 
Proceso y diseño de un software
Proceso y diseño  de un   softwareProceso y diseño  de un   software
Proceso y diseño de un softwareCESARCONTRERAS009
 

Ähnlich wie Unidad 2. Metodologías de Desarrollo (20)

Trabajo de sistemas de software
Trabajo de sistemas de softwareTrabajo de sistemas de software
Trabajo de sistemas de software
 
Modelos del software
Modelos del softwareModelos del software
Modelos del software
 
Modelos de Ing de soft
Modelos de Ing de softModelos de Ing de soft
Modelos de Ing de soft
 
Investigación de modelos
Investigación de modelos Investigación de modelos
Investigación de modelos
 
CICLO_DE_VIDA_DEL_SOFTWARE.pptx
CICLO_DE_VIDA_DEL_SOFTWARE.pptxCICLO_DE_VIDA_DEL_SOFTWARE.pptx
CICLO_DE_VIDA_DEL_SOFTWARE.pptx
 
MODELOS DE SOFTWARE
MODELOS DE SOFTWAREMODELOS DE SOFTWARE
MODELOS DE SOFTWARE
 
Modelo Descrptivos Del Proceso Del Sofware
Modelo Descrptivos  Del  Proceso Del SofwareModelo Descrptivos  Del  Proceso Del Sofware
Modelo Descrptivos Del Proceso Del Sofware
 
Modelos de desarrollo de software
Modelos de desarrollo de softwareModelos de desarrollo de software
Modelos de desarrollo de software
 
Metodos del desarrollo de sistema de informacion
Metodos del desarrollo de sistema de informacionMetodos del desarrollo de sistema de informacion
Metodos del desarrollo de sistema de informacion
 
Tarea nayeli
Tarea nayeliTarea nayeli
Tarea nayeli
 
Doc grupo2-webquest
Doc grupo2-webquestDoc grupo2-webquest
Doc grupo2-webquest
 
Modelos de desarrollo de software
Modelos de desarrollo de softwareModelos de desarrollo de software
Modelos de desarrollo de software
 
1 ingeniería de software
1 ingeniería de software1 ingeniería de software
1 ingeniería de software
 
Metodología tradicional
Metodología tradicionalMetodología tradicional
Metodología tradicional
 
Métodos de la ingeniería
Métodos de la ingenieríaMétodos de la ingeniería
Métodos de la ingeniería
 
Metodología de desarrollo de software
Metodología de desarrollo de softwareMetodología de desarrollo de software
Metodología de desarrollo de software
 
Gestión de proyectos
Gestión de proyectosGestión de proyectos
Gestión de proyectos
 
Proceso y diseño de un software
Proceso y diseño  de un   softwareProceso y diseño  de un   software
Proceso y diseño de un software
 
Proceso y diseño de un software
Proceso y diseño  de un   softwareProceso y diseño  de un   software
Proceso y diseño de un software
 
Proceso y diseño de un software
Proceso y diseño  de un   softwareProceso y diseño  de un   software
Proceso y diseño de un software
 

Kürzlich hochgeladen

Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 

Kürzlich hochgeladen (10)

Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 

Unidad 2. Metodologías de Desarrollo

  • 1. 15/09/2014 Metodologías de Desarrollo Presentado por: o Brenda Soledad Velázquez Jiménez o Iván Sánchez Cervantes
  • 2. 15/09/2014 INTRODUCCIÓN ¿Qué significa la metodología de desarrollo? - Se trata de seguir ciertas pautas predefinidas para lograr terminar un software de calidad; es decir, llevar un comportamiento metódico.
  • 3. 15/09/2014 INTRODUCCIÓN ¿Qué cosas dicen niños?... Yo solo programo, ese es mi único paso. ¡¡Ese sistema esta bien padre!! ¿Qué pasos siguió para hacerlo? ¿Cuántos de los programadores modernos, antes de comenzar a escribir código de un sistema, se dedican a diseñar antes el mismo? ¿A realizar la documentación de los requerimientos? ¿A pensar en los diagramas UML? ¿Cuántos?
  • 4. 15/09/2014 METODOLOGÍAS CLÁSICAS  Hay una serie de metodologías considerados como tradicionales o clásicas. Algunos lo consideran un tanto burocráticas, y con mucha ambiguedad; y no es para más. Estas metodologías «Clásicas» fueron creados por los años 70’s-80’s pensando en los negocios de los 50’s.  No hay de otra que reconocer que la mayor parte de estas metodologías ya no funcionan para proyectos muy innovadores. Desarrollo en Cascada Desarrollo Incremental Desarrollo Evolutivo Desarrollo en Espiral Basado en Prototipos Basado en componentes
  • 5. 15/09/2014 METODOLOGIAS CLÁSICAS Las metodologías surgidas en los años 90 a la actualidad son las que responden a las necesidades modernas. Varios especialistas llaman a estas metodologías «ágiles»… entonces, ¿Cómo saber que metodología usar y quien lo debe elegir? La mayoría de las veces, el trabajo es en equipo, siendo así, se tiene que hacer un estudio de las metodologías sin dejar fuera a las clásicas (por muy engorroso que sea). De esta forma se deben tener las siguientes consideraciones:
  • 6. 15/09/2014 METODOLOGÍAS CLÁSICAS - Si eres el que tiene el puesto con mayor responsabilidad, decide ya. - Si no tienes un puesto de alta responsabilidad, y el que sí lo tiene no toma una metodología, el proyecto está destinado al fracaso. - Cuando se forma parte de un pequeño equipo de trabajo, lo mejor es conversar sobre cuál será la metodología correcta a aplicar, incluso puede llegar el momento en que se tomen ideas de diferentes metodologías.
  • 7. 15/09/2014 - Desarrollo en Cascada Enfoque metodológico que ordena rigurosamente el proceso de desarrollo de software. De manera general la metodología sería la siguiente: Ingeniería de Requisitos Análisis Requerimientos del sistema Requerimientos del Software Diseño Diseño Preliminar y detallado Implementación Codificación y depuración Pruebas y Mantenimiento Test y pruebas previas a la implantación
  • 8. 15/09/2014 - Desarrollo en Cascada Ventajas: o Es un modelo sencillo y disciplinado. o Es fácil aprender a utilizarlo y comprender su funcionamiento. o Ha sido muy usado y, por tanto, está ampliamente contrastado.
  • 9. 15/09/2014 - Desarrollo en Cascada Desventajas: o Los proyectos raramente siguen el proceso lineal tal como se definía originalmente el ciclo de vida. o Es difícil que el cliente exponga explícitamente todos los requisitos al principio. o Puede resultar complicado regresar a etapas anteriores (ya acabadas) para realizar correcciones. o El producto final obtenido puede que no refleje todos los requisitos del usuario.
  • 10. 15/09/2014 - Desarrollo Incremental Por supuesto, en esta metodología también se emplea el ciclo de vida del software. Requerimi entos Análisis Diseño Implemen tación Pruebas Requerimi entos Análisis Diseño Implemen tación Pruebas Requerimi entos Análisis Diseño Implemen tación Pruebas Incremento 1 Incremento 2 Incremento 3 Entrega del Incremento 1 Entrega del Incremento 2 Entrega del Incremento 3 Tiempo en el calendario
  • 11. 15/09/2014 - Desarrollo Incremental Ventajas: o Impacto ventajoso frente al cliente, que es la entrega temprana de partes operativas del Software. o El usuario de involucra más. o Permite entregar al cliente un producto más rápido en comparación del modelo de cascada. o Resulta más sencillo acomodar cambios al acotar el tamaño de los incrementos.
  • 12. 15/09/2014 - Desarrollo Incremental Desventajas: o Los errores en los requisitos se detectan tarde. o Difícil de evaluar el costo total. o 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. o Requiere de mucha planeación, tanto administrativa como técnica.
  • 13. 15/09/2014 - Desarrollo Evolutivo El desarrollo evolutivo busca reemplazar el viejo sistema con uno nuevo que tendría la propiedad de satisfacer los nuevos requerimientos lo más rápido posible. El desarrollo evolutivo asume que los requerimientos están sujetos a cambios continuos y que la estrategia para enfrentar aquello pasa por un reflejo, también continuo de aquellos cambios. Existen dos tipos de desarrollo evolutivo: o Desarrollo Exploratorio. o Prototipos Desechables.
  • 14. 15/09/2014 - Desarrollo Evolutivo Especificación Inicial Desarrollo del Producto Implementación, uso y evaluación Re-specificación Definición del problema y especificación inicial en base a los requerimientos definidos. Definición del software en base a un proceso con énfasis en la rapidez de la liberación. Implantación y uso del software en ambiente de explotación, monitoreo de los nuevos requerimientos Versiones del Software Redefinición del problema en base a los nuevos requerimientos.
  • 15. 15/09/2014 - Desarrollo en Espiral Los principios básicos son: La atención se centra en la evaluación y reducción del riesgo del proyecto dividiendo el proyecto en segmentos más pequeños y proporcionar más facilidad de cambio durante el proceso de desarrollo, así como ofrecer la oportunidad de evaluar los riesgos y con un peso de la consideración de la continuación del proyecto durante todo el ciclo de vida.
  • 16. 15/09/2014 - Desarrollo en Espiral Cada viaje alrededor de la espiral atraviesa cuatro cuadrantes básicos: (1) determinar objetivos, alternativas, y desencadenantes de la iteración; (2) Evaluar alternativas; Identificar y resolver los riesgos; (3) desarrollar y verificar los resultados de la iteración, y (4) plan de la próxima iteración. Cada ciclo comienza con la identificación de los interesados y sus condiciones de ganancia, y termina con la revisión y examinación.
  • 17. 15/09/2014 - Desarrollo en Espiral En términos generales, el modelo en espiral se representa como sigue: Análisis de Riesgos Objetivos Desarrollar y Probar Planificación
  • 18. 15/09/2014 - Desarrollo en Espiral Entendiendo que el desarrollo en espiral es un modelo del ciclo de vida del software, la figura anterior se vería así:
  • 19. 15/09/2014 - Desarrollo en Espiral Ventajas: o Reduce riesgos del proyecto o Incorpora objetivos de calidad o Integra el desarrollo con el mantenimiento
  • 20. 15/09/2014 - Desarrollo en Espiral Desventajas: o Genera mucho tiempo en el desarrollo del sistema o Modelo costoso o Requiere experiencia en la identificación de riesgos
  • 21. 15/09/2014 - Desarrollo en Espiral Inconvenientes: Planificar un proyecto con esta metodología es a menudo imposible, debido a la incertidumbre en el número de iteraciones que serán necesarias. En este contexto la evaluación de riesgos es de la mayor importancia y, para grandes proyectos, dicha evaluación requiere la intervención de profesionales de gran experiencia.
  • 22. 15/09/2014 - Desarrollo de Prototipos Pertenece a los modelos de desarrollo evolutivo. Pone énfasis en la etapa de especificación de requerimientos a través de la construcción de prototipos que aproximan al usuario a la idea final del sistema. En palabras más sencillas: «Es un conjunto estandarizado de actividades dedicada al desarrollo de versiones incompletas a desarrollar.» En la parte derecha de la diapositiva se listan las etapas. Plan Rápido Diseño Rápido Construcción del prototipo Desarrollo, entrega y retroalimentación Comunicación
  • 23. 15/09/2014 - Desarrollo de Prototipos Esquema de la Metodología de Prototipos Usuario Define su Requerimiento Construye Prototipo Sirve Construcción, Implementación No Sí Analista
  • 24. 15/09/2014 - Desarrollo de Prototipos Ventajas: o Este modelo es útil cuando el cliente conoce los objetivos generales para el software. o 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.
  • 25. 15/09/2014 - Desarrollo de Prototipos Desventajas: o 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.
  • 26. 15/09/2014 - Desarrollo Basado en Componentes o La complejidad de los sistemas computacionales actuales nos ha llevado a buscar la reutilización del software existente. o En esencia, un componente es una pieza de código pre elaborado que encapsula alguna funcionalidad expuesta a través de interfaces estándar. o El paradigma de ensamblar componentes y escribir código para hacer que estos componentes funcionen se conoce como Desarrollo de Software Basado en Componentes.
  • 27. 15/09/2014 - Desarrollo Basado en Componentes El uso de este paradigma posee algunas ventajas: Reutilización del software. Simplifica las pruebas. Simplifica el mantenimiento del sistema. Mayor calidad. De la misma manera, el optar por comprar componentes de terceros en lugar de desarrollarlos, posee algunas ventajas: Ciclos de desarrollo más cortos. Mejor ROI. Funcionalidad mejorada.
  • 28. 15/09/2014 OTRAS METODOLOGÍAS A partir de los años noventa surgieron nuevas metodologías, algunos las llaman «Metodologías Modernas». A decir verdad, las ideas que se expondrán resultan ser las más aceptadas y valoradas por los programadores modernos; tal vez sea por la combinación de las ideas tradicionales con las actuales.
  • 29. 15/09/2014 - Ganar-Ganar (Win & Win) Este Modelo sugiere la comunicación con el cliente para fijar los requisitos, en que simplemente se pregunta al cliente qué necesita y él proporciona la información para continuar; pero esto es en un contexto ideal que rara vez ocurre. Normalmente cliente y desarrollador entran en una negociación, se negocia coste frente a funcionalidad, rendimiento, calidad, etc. «Es así que la obtención de requisitos requiere una negociación, que tiene éxito cuando ambas partes ganan».
  • 30. 15/09/2014 - Proceso Unificado El Proceso Unificado es un marco de desarrollo de software que se caracteriza por estar dirigido por casos de uso, centrado en la arquitectura y por ser iterativo e incremental. Inicio Elaboración Transición Construcción Producción
  • 31. 15/09/2014 - Ingeniería Web ¿Qué es la ingeniería web? Es el proceso utilizado para crear, implantar y mantener aplicaciones y sistemas web de alta calidad. La ingeniería de la Web no es un clon o subconjunto de la ingeniería de software aunque ambas incluyen desarrollo de software y programación, pues a pesar de que la ingeniería de la Web utiliza principios de ingeniería de software, incluye nuevos enfoques, metodologías, herramientas, técnicas, guías y patrones para cubrir los requisitos únicos de las aplicaciones web.
  • 32. 15/09/2014 - Ingeniería Web De manera general, las etapas con las que cuenta la Ingeniería de Software son las siguientes: Formulación, Planificación, Análisis, Modelización, generación de páginas, el Test, Evaluación del cliente. Formulación.- Identifica objetivos y establece el alcance de la primera entrega.
  • 33. 15/09/2014 - Ingeniería Web Planificación. Genera la estimación del coste general del proyecto, la evaluación de riesgos y el calendario del desarrollo y fechas de entrega. Análisis. Especifica los requerimientos e identifica el contenido.
  • 34. 15/09/2014 - Ingeniería Web Modelización. Se compone de dos secuencias paralelas de tareas. Una consiste en el diseño y producción del contenido que forma parte de la aplicación. La otra, en el diseño de la arquitectura, navegación e interfaz de usuario. Es conveniente resaltar la importancia del diseño de la interfaz. Independientemente del valor del contenido y servicios prestados, una buena interfaz mejora la percepción que el usuario tiene de estos.
  • 35. 15/09/2014 - Ingeniería Web Generación de páginas. Se integra contenido, arquitectura, navegación e interfaz para crear estática o dinámicamente el aspecto más visible de las aplicaciones, las páginas. El Test. Busca errores a todos los niveles: contenido, funcional, navegacional, rendimiento, etc. El hecho de que las aplicaciones residan en la red, y que inter-operen en plataformas muy distintas, hace que el proceso de test sea especialmente difícil.
  • 36. 15/09/2014 - Ingeniería Web Evaluación del cliente. El resultado final es sometido a la evaluación del cliente y aceptación por el mismo.
  • 37. 15/09/2014 - Metodologías Ágiles Por lo pronto, surgen metodologías a petición de las problemas actuales, tomando algunas de las ideas de las metodologías tradicionales.
  • 38. 15/09/2014 - Metodologías Ágiles Como resultado de esta nueva teoría se crea un Manifiesto Ágil cuyas principales ideas son: o Los individuos y las interacciones entre ellos son más importantes que las herramientas y los procesos empleados. o Es más importante crear un producto software que funcione que escribir documentación exhaustiva. o La colaboración con el cliente debe prevalecer sobre la negociación de contratos. o La capacidad de respuesta ante un cambio es más importante que el seguimiento estricto de un plan.
  • 39. 15/09/2014 - Metodologías Ágiles Entre los principales métodos ágiles tenemos las siguientes: o El XP (Extreme Programming). o Scrum. o Iconix. o Cristal Methods. o AUP, entre otros.
  • 40. 15/09/2014 - Metodologías Ágiles Extreme Programming (XP). Es la más destacada de los procesos agiles de desarrollo de software formulada por Kent Beck. 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.
  • 41. 15/09/2014 - Metodologías Ágiles Desarrollo iterativo incremental XP Programación por parejas Frecuente interacción Corrección Simplicidad en el código Propiedad del código compartido
  • 42. 15/09/2014 - Metodologías Ágiles Ventajas: o Apropiado para entornos volátiles. o Planificación más transparente para nuestros clientes, conocen las fechas de entrega de funcionalidades. Vital para su negocio. o Permitirá definir en cada iteración cuales son los objetivos de la siguiente o Permite tener realimentación de los usuarios muy útil. o La presión está a lo largo de todo el proyecto y no en una entrega final.
  • 43. 15/09/2014 - Metodologías Ágiles Desventajas o Delimitar el alcance del proyecto con nuestro cliente o Para mitigar esta desventaja se plantea definir un alcance a alto nivel basado en la experiencia.
  • 44. 15/09/2014 - Metodologías Ágiles Iconix: El proceso ICONIX se define como un proceso de desarrollo de software práctico. Está entre la complejidad de RUP y la simplicidad y pragmatismo de XP, sin eliminar las tareas de análisis y diseño que XP no contempla. Es un proceso simplificado en comparación con otros procesos más tradicionales. ICONIX presenta claramente las actividades de cada fase y exhibe una secuencia de pasos que deben ser seguidos. Además, está adaptado a patrones y ofrece el soporte UML, dirigido por Casos de Uso y es un proceso iterativo e incremental.
  • 45. 15/09/2014 - Metodologías Ágiles Características de Iconix. o Iterativo e incremental: varias interacciones ocurren entre el modelo del dominio y la identificación de los casos de uso. El modelo estático es incrementalmente refinado por los modelos dinámicos. o Trazabilidad: cada paso está referenciado por algún requisito. Se define la trazabilidad como la capacidad de seguir una relación entre los diferentes artefactos producidos. o Dinámica del UML: la metodología ofrece un uso dinámico del UML como los diagramas del caso de uso, diagramas de secuencia y de colaboración.
  • 46. 15/09/2014 REINGENIERÍA ¿Qué es? Considere cualquier producto tecnológico que le haya servido bien. Usted lo utiliza regularmente, pero se está volviendo obsoleto. Se rompe con frecuencia, su reparación toma más tiempo del que usted quisiera, y ya no representa más la nueva tecnología. ¿Qué hacer? - Si el producto es hardware. - Si el producto es software.
  • 47. 15/09/2014 REINGENIERÍA ¿Quién la hace? En el ámbito de las organizaciones, la reingeniería lo llevan a cabo especialistas en negocios (con frecuencias compañías consultoras). En el ámbito del software la reingeniería la realizan los ingenieros de software.
  • 48. 15/09/2014 REINGENIERÍA ¿Por qué es importante? Se vive en un mundo en cambio constante. Las demandas acerca de las funciones de negocios y la tecnología de la información que las soportan están cambiando a un ritmo que impone una enorme presión competitiva en las organizaciones comerciales.
  • 49. 15/09/2014 REINGENIERÍA ¿Cuáles son los pasos? El proceso de reingeniería de software incluye análisis de inventarios, ingeniería inversa, reestructuración de programas y datos, e ingeniería avanzada. La finalidad de estas actividades es crear versiones de programas existentes que muestren mayor calidad y mejor facilidad de mantenimiento. La reingeniería es una actividad de reconstrucción, y la reingeniería de los sistemas de información se comprende mejor si se considera una actividad análoga: la reconstrucción de una casa en otro estado.
  • 50. 15/09/2014 REINGENIERÍA Análisis de Inventarios Reestructuración de documentos Ingeniería Inversa Reestructuración de código Reestructuración de datos Ingeniería directa La reingeniería de software consta de seis actividades.
  • 51. 15/09/2014 REINGENIERÍA 1. Análisis de Inventarios. Las organizaciones de software deberían tener un inventario de todas sus aplicaciones. El inventario tal vez no sea más que un modelo en una hoja de cálculo que contenga información que proporcione una descripción detallada de las aplicaciones activas.
  • 52. 15/09/2014 REINGENIERÍA 2. Reestructuración de documentos. La documentación débil es la marca de muchos sistemas heredados. 3. Ingeniería Inversa. Ayudar a los ingenieros de software a comprender la estructura de diseño interno de los programas complejos. Herramientas representativas. Imagix 4D, desarrollado por Imagix (www.imagix.com). JdGui es otra herramienta para estos usos.
  • 53. 15/09/2014 REINGENIERÍA 4. Reestructuración de código. El objetivo de las herramientas de reestructuración es transformar el antiguo software de computadoras carente de estructura en lenguajes de programación y estructuras de diseño modernos. Mecánica. En general, el código fuente se ingresa y transforma en un mejor programa estructurado. Herramientas representativas. DMS Software Reengineering Toolkit, desarrollada por Semantic Design. Function EncapsulationTool, desarrollada en la Wayne State University.
  • 54. 15/09/2014 REINGENIERÍA 5. Reestructuración de datos. Esta actividad a veces se denomina análisis de datos. Antes de comenzar la reestructuración de datos se debe llevar a cabo una actividad de ingeniería inversa denominada análisis del código fuente. Una vez completado el análisis de datos comienza el rediseño de datos.
  • 55. 15/09/2014 REINGENIERÍA 6. Ingeniería directa. También llamada renovación o reclamación, no solo recupera la información de diseño a partir del software existente, también utiliza esta información para alterar o reconstruir el sistema existente con la finalidad de mejorar su calidad global. En la mayoría de los casos el software sometido a reingeniería vuelve a implementar la función del sistema existente y también añade nuevas funciones o mejora el desempeño global.
  • 56. 15/09/2014 Fuentes Bibliográficas  http://wiki.monagas.udo.edu.ve/index.php/Metodolog%C 3%ADas_para_el_desarrollo_de_software  http://profvanessaborjas.wordpress.com/2012/05/10/meto dologia-de-desarrollo-de-software/  http://fgaith2.blogspot.mx/  http://ithjlmvu2.blogspot.mx/  http://msdn.microsoft.com/es-es/library/bb972268.aspx  Ian Sommerville, Ingeniería de Software, Pág. 10.  http://ingenieriadesoftware.mex.tl/59189_Metodologia- Crystal.html  Ingeniería de Software, un enfoque práctico, Roger Pressman, 6ta Ed., Pág. 902-9224
  • 57. 15/09/2014 FIN DE LA PRESENTACIÓN