Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
Metodologías por Mind Map: Metodologías

1. Proceso unificado de desarrollo

1.1. Fue puesta en el mercado en 1998.

1.2. Es una metodología de desarrollo de software que está basado en componentes e interfaces bien definidas, y junto con el Lenguaje Unificado de Modelado (UML), constituye la metodología estándar más utilizada para el análisis, implementación y documentación de sistemas orientados a objetos.

1.3. Principales Elementos

1.3.1. Trabajadores (“quién”): Define el comportamiento y responsabilidades (rol) de un individuo, grupo de individuos, sistema automatizado o máquina, que trabajan en conjunto como un equipo. Ellos realizan las actividades y son propietarios de elementos.

1.3.2. Actividades (“cómo”): Es una tarea que tiene un propósito claro, es realizada por un trabajador y manipula elementos.

1.3.3. Artefactos (“qué”): Productos tangibles del proyecto que son producidos, modificados y usados por las actividades. Pueden ser modelos, elementos dentro del modelo, código fuente y ejecutables.

1.3.4. Flujo de actividades (“cuándo”): Secuencia de actividades realizadas por trabajadores y que produce un resultado de valor observable.

1.4. Características

1.4.1. o Unifica los mejores elementos de metodologías anteriores.

1.4.2. o Preparado para desarrollar grandes y complejos proyectos.

1.4.3. o Orientado a Objetos.

1.4.4. o Utiliza el UML como lenguaje de representación visual.

1.5. Ventajas

1.5.1. o Coste del riesgo a un solo incremento.

1.5.2. o Reduce el riesgo de no sacar el producto en el calendario previsto.

1.5.3. o Acelera el ritmo de desarrollo.

1.5.4. o Se adapta mejor a las necesidades del cliente.

2. Programación extrema

2.1. Nace en el verano de 1996.

2.2. Sus principales características son:

2.2.1. Desarrollo iterativo e incremental

2.2.2. Pruebas unitarias continuas,

2.2.3. Programación en parejas

2.2.4. Corrección de todos los errores

2.2.5. Refactorización del código

2.2.6. Propiedad del código compartida

2.2.7. Simplicidad en el código

2.3. Ventajas

2.3.1. Da lugar a una programación sumamente organizada.

2.3.2. Ocasiona eficiencias en el proceso de planificación y pruebas.

2.3.3. Cuenta con una tasa de errores muy pequeña.

2.3.4. Propicia la satisfacción del programador.

2.3.5. Fomenta la comunicación entre los clientes y los desarrolladores.

2.3.6. Facilita los cambios.

2.3.7. Permite ahorrar mucho tiempo y dinero.

2.3.8. Puede ser aplicada a cualquier lenguaje de programación.

2.3.9. El cliente tiene el control sobre las prioridades.

2.3.10. Se hacen pruebas continuas durante el proyecto.

2.3.11. La XP es mejor utilizada en la implementación de nuevas tecnologías.

2.4. Desventajas

2.4.1. En caso de fallar, las comisiones son muy altas.

2.4.2. Requiere de un rígido ajuste a los principios de XP.

2.4.3. Puede no siempre ser más fácil que el desarrollo tradicional.

2.4.4. Es recomendable emplearla solo en proyectos a corto plazo.

2.4.5. Requiere de un rígido ajuste a los principios de XP.

2.4.6. Puede no siempre ser más fácil que el desarrollo tradicional.

3. Herramientas Case

3.1. En 1984 sale la primera herramienta case

3.2. Características:

3.2.1. Producto de calidad

3.2.2. Se integra con las siguientes herramientas Java: Eclipse/IBM WebSphere. Jbuilder. NetBeans IDE. Oracle Jdeveloper. BEA Weblogic.

3.2.3. Soporta aplicaciones Web.

3.2.4. Varios idiomas.

3.2.5. Generación de código para Java y exportación como HTML.

3.2.6. Fácil de instalar y actualizar.

3.3. Ventajas

3.3.1. Facilidad para la revisión de aplicaciones

3.3.2. Soporte para el desarrollo de prototipos de sistemas

3.3.3. Generación de código

3.3.4. Mejora en la habilidad para satisfacer los requerimientos del usuario

3.3.5. Soporte interactivo para el proceso de desarrollo

3.4. Desventajas

3.4.1. Confiabilidad en los métodos estructurados

3.4.2. Falta de niveles estándar para el soporte de la metodología

3.4.3. Conflictos en el uso de los diagramas

3.4.4. Diagramas no utilizados

3.4.5. Función limitada

3.4.6. Alcance limitado

4. Modelos de proceso especializado

4.1. Los modelos de proceso especializado tienen muchas de las características de uno o más de los modelos tradicionales que se presentaron en las secciones anteriores. Sin embargo, dichos modelos tienden a aplicarse cuando se elige un enfoque de ingeniería de software especializado o definido muy específicamente.

5. Modelo de proceso prescriptivo

5.1. Se reconoce oficialmente en 1968 por la comisión de ciencias de la OTAN.

5.2. MODELO DE LA CASCADA

5.2.1. El modelo de la cascada, a veces llamado ciclo de vida clásico, sugiere un enfoque sistemático y secuencial para el desarrollo del software, que comienza con la especificación de los requerimientos por parte del cliente y avanza a través de planificación, modelado, construcción y despliegue, para concluir con el apoyo del software terminado.

5.2.2. Ventajas

5.2.2.1. El modelo de cascada es el modelo más antiguo y más ampliamente utilizado en el campo de desarrollo de software.

5.2.2.2. Una gran ventaja del modelo de cascada es que la documentación se produce en cada etapa del desarrollo del modelo de cascada. Esto hace que la comprensión del producto diseñar procedimiento más sencillo.

5.2.2.3. Después de cada etapa importante de la codificación de software, las pruebas se realizan para comprobar el correcto funcionamiento del código

5.2.3. Desventajas

5.2.3.1. Cualquier cambio que se menciona en el medio puede causar mucha confusión

5.2.3.2. Los pequeños cambios o errores que surgen en el software completo pueden causar mucho problema

5.2.3.3. La mayor desventaja del modelo de cascada es que hasta la etapa final del ciclo de desarrollo se ha completado, un modelo de trabajo del software no está en las manos del cliente.

5.3. MODELOS DE PROCESO INCREMENTAL

5.3.1. El modelo incremental combina elementos de los flujos de proceso lineal y paralelo estudiados. El modelo incremental aplica secuencias lineales en forma escalonada a medida que avanza el calendario de actividades.

5.3.2. ventajas:

5.3.2.1. Con un paradigma incremental se reduce el tiempo de desarrollo inicial, ya que se implementa la funcionalidad parcial.

5.3.2.2. También provee un impacto ventajoso frente al cliente, que es la entrega temprana de partes operativas del software.

5.3.2.3. El modelo proporciona todas las ventajas del modelo en Cascada realimentado, reduciendo sus desventajas sólo al ámbito de cada incremento.

5.3.2.4. Resulta más sencillo acomodar cambios al acotar el tamaño de los incrementos.

5.3.3. Desventajas:

5.3.3.1. 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.

5.3.3.2. Requiere de mucha planeación, tanto administrativa como técnica.

5.3.3.3. Requiere de metas claras para conocer el estado del proyecto.

5.4. MODELOS DE PROCESO EVOLUTIVO

5.4.1. Los modelos evolutivos son iterativos. Se caracterizan por la manera en la que permiten desarrollar versiones cada vez más completas del software.

5.5. EL MODELO ESPIRAL

5.5.1. Modelo espiral es un modelo evolutivo del proceso del software y se acopla con la naturaleza iterativa de hacer prototipos con los aspectos controlados y sistémicos del modelo de cascada. Tiene el potencial para hacer un desarrollo rápido de versiones cada vez más completas. Con el empleo del modelo espiral, el software se desarrolla en una serie de entregas evolutivas. Durante las primeras iteraciones, lo que se entrega puede ser un modelo o prototipo. En las iteraciones posteriores se producen versiones cada vez más completas del sistema cuya ingeniería se está haciendo.

6. Metodologías ágiles

6.1. Nace en 1990

6.2. Características

6.2.1. Aspecto humano del equipo. Tamaño de un equipo. Comunicación entre los desarrolladores. Políticas a seguir. Espacio físico de trabajo.

6.3. Crystal

6.3.1. Crystal Clear no es una metodología en si misma sino una familia de metodologías con un “código genético” común. El nombre Crystal deriva de la caracterización de los proyectos según 2 dimensiones, tamaño y complejidad (como en los minerales, color y dureza).

6.3.2. Ventajas

6.3.2.1. Son apropiadas para entornos ligeros Al estar diseñada para el cambio experimenta reducción de costo. Presenta una planificación más transparente para los clientes. Se definen en cada iteración cuales son los objetivos de la siguiente. Permite tener una muy útil realimentación de los usuarios.

6.3.2.2. Desventajas

6.3.2.2.1. Delimita el alcance del proyecto con el cliente.

6.4. Scrum

6.4.1. Scrum es un proceso en el que se aplican de manera regular un conjunto de buenas prácticas para trabajar colaborativamente, en equipo, y obtener el mejor resultado posible de un proyecto. Estas prácticas se apoyan unas a otras y su selección tiene origen en un estudio de la manera de trabajar de equipos altamente productivos.

6.4.2. Ventajas

6.4.2.1. Gestión de las expectativas del usuario. Los usuarios pueden participar en cada una de las etapas del proceso y proponer soluciones. De hecho, el proceso en su conjunto está pensado para un tipo de evaluación conjunta.

6.4.2.2. Resultados anticipados. Cada etapa del proceso arroja una serie de resultados. No es necesario, por tanto, que el cliente espere hasta el final para ver el resultado.

6.4.2.3. Flexibilidad y adaptación a los contextos. Se adapta a cualquier contexto, área o sector de la gestión. Es decir, no es una técnica exclusiva de ninguna disciplina.

6.4.2.4. Gestión sistemática de riesgos. Del mismo modo, los problemas que aparecen durante los procesos de gestión que pueden afectar a un proyecto son gestionados en el mismo momento de su aparición. Esto es posible debido a que la intervención de los equipos de trabajo puede ser inmediata.

6.4.2.5. Desventajas

6.4.2.5.1. Funciona más que nada con equipos reducidos. Las empresas grandes, por ejemplo, deben estar sectorizadas o divididas en grupos que tengan objetivos concretos. De lo contrario, en la práctica, el efecto de la técnica se perderá.

6.4.2.5.2. Requiere una exhaustiva definición de las tareas y sus plazos. Cuando estos dos aspectos no se definen adecuadamente, Scrum se desvanece. Recuerda que la división del trabajo en cada etapa (y de éstas en tareas específicas) son la esencia de esta metodología.

6.4.2.5.3. Exige que quienes la utilicen cuenten con una alta cualificación o formación. No es una modalidad de gestión propia de grupos junior o que apenas estén en proceso de formación. Gran parte del éxito de Scrum radica en la experiencia que aportan los profesionales de los equipos, quienes por lo general acumulan años de experiencia.

6.5. Scrum