Anzeige
Anzeige

Más contenido relacionado

Anzeige
Anzeige

Modelos de desarrollo de software

  1. Modelos de Desarrollo de Software
  2. Modelos de Desarrollo de Software Contenido • Información general: Modelos de Desarrollo de Software - Modelo en cascada - Modelo de construcción de prototipos - Modelo incremental - Modelo en espiral - Modelos ágiles • Cuadro Comparativo • Análisis
  3. Modelos de Desarrollo de Software ¿Modelos básicos de procesos? ...modelos de procesos muy generales (algunas veces llamados paradigmas de proceso) ... Esto es, vemos el marco de trabajo del proceso, pero no los detalles de actividades específicas. Estos modelos generales no son descripciones definitivas de los procesos del software. Más bien, son abstracciones de los procesos que se pueden usar para explicar diferentes enfoques del desarrollo de software... Ian Sommerville
  4. Modelos de Desarrollo de Software Modelo en Cascada Este es el más básico de todos los modelos, y sirve como bloque de construcción para los demás modelos de ciclo de vida. La visión del modelo cascada del desarrollo de software es muy simple; dice que el desarrollo de software puede ser a través de una secuencia simple de fases. Cada fase tiene un conjunto de metas bien definidas, y las actividades dentro de una fase contribuyen a la satisfacción de metas de esa fase o quizás a una sub-secuencia de metas de la fase. Las flechas muestran el flujo de información entre las fases. La flecha de avance muestra el flujo normal. Las flechas hacia atrás representan la retroalimentación.
  5. Modelos de Desarrollo de Software Modelo en Cascada En esta fase se analizan las necesidades de los usuarios finales del software para determinar qué objetivos debe cubrir. Descompone y organiza el sistema en elementos que puedan elaborarse por separado, aprovechando las ventajas del desarrollo en equipo.Es la fase en donde se implementa el código fuente, haciendo uso de prototipos así como de pruebas y ensayos para corregir errores. Es la fase en donde el usuario final ejecuta el sistema, para ello el o los programadores ya realizaron exhaustivas pruebas para comprobar que el sistema no falle. MantenimientoMantenimiento Una de las etapas más críticas, ya que se destina un 75 % de los recursos, es el mantenimiento del software ya que al utilizarlo como usuario final puede ser que no cumpla con todas nuestras expectativas.
  6. Modelos de Desarrollo de Software Modelo de Construcción de Prototipos El prototipado de requerimientos es la creación de una implementación parcial de un sistema, para el propósito explícito de aprender sobre los requerimientos del sistema. Un prototipo es construido de una manera rápida tal como sea posible. Esto es dado a los usuarios, clientes o representantes de ellos, posibilitando que ellos experimenten con el prototipo. Estos individuos luego proveen la retroalimentación sobre lo que a ellos les gustó y no les gustó acerca del prototipo proporcionado, quienes capturan en la documentación actual de la especificación de requerimientos la información entregada por los usuarios para el desarrollo del sistema real. El prototipado puede ser usado como parte de la fase de requerimientos (determinar requerimientos) o justo antes de la fase de requerimientos (como predecesor de requerimientos). En otro caso, el prototipado puede servir su papel inmediatamente antes de algún o todo el desarrollo incremental en modelos incremental o evolutivo.
  7. Modelos de Desarrollo de Software Modelo de Construcción de Prototipos 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. El diseño rápido se centra en una representación de aquellos aspectos del software que serán visibles para el cliente o el usuario final. Este diseño conduce a la construcción de un prototipo, el cual es evaluado por el cliente para una retroalimentación; gracias a ésta se refinan los requisitos del software que se desarrollará. La interacción ocurre cuando el prototipo se ajusta para satisfacer las necesidades del cliente. Esto permite que al mismo tiempo el desarrollador entienda mejor lo que se debe hacer y el cliente vea resultados a corto plazo. Etapas Plan rápido. Modelado, diseño rápido Construcción del Prototipo Desarrollo, entrega y retroalimentación Comunicación Entrega del desarrollo final
  8. Modelos de Desarrollo de Software Modelo Incremental Los riesgos asociados con el desarrollo de sistemas largos y complejos son enormes. Una forma de reducir los riesgos es construir sólo una parte del sistema, reservando otros aspectos para niveles posteriores. El desarrollo incremental es el proceso de construcción siempre incrementando subconjuntos de requerimientos del sistema. Típicamente, un documento de requerimientos es escrito al capturar todos los requerimientos para el sistema completo. Note que el desarrollo incremental es 100% compatible con el modelo cascada. El desarrollo incremental no demanda una forma específica de observar el desarrollo de algún otro incremento. Así, el modelo cascada puede ser usado para administrar cada esfuerzo de desarrollo, como se muestra en la figura.
  9. Modelos de Desarrollo de Software Modelo Incremental El modelo de desarrollo incremental provee algunos beneficios significativos para los proyectos: •Construir un sistema pequeño es siempre menos riesgoso que construir un sistema grande. •Al ir desarrollando parte de las funcionalidades, es más fácil determinar si los requerimientos planeados para los niveles subsiguientes son correctos. •Si un error importante es realizado, sólo la última iteración necesita ser descartada. •Reduciendo el tiempo de desarrollo de un sistema (en este caso en incremento del sistema) decrecen las probabilidades que esos requerimientos de usuarios puedan cambiar durante el desarrollo. •Si un error importante es realizado, el incremento previo puede ser usado. •Los errores de desarrollo realizados en un incremento, pueden ser arreglados antes del comienzo del próximo incremento.
  10. Modelos de Desarrollo de Software Modelo en Espiral Este es un modelo de proceso de software evolutivo, el cual enlaza la naturaleza iterativa de la construcción de prototipos, pero conservado aquellas propiedades del modelo en cascada. El modelo en espiral fue desarrollado por Boehm, quien lo describe así: El modelo de desarrollo en espiral es un generador de modelo de proceso guiado por el riesgo que se emplea para conducir sistemas intensivos de ingeniería de software concurrente y a la vez con muchos usuarios.
  11. Modelos de Desarrollo de Software Modelo en Espiral Si el resultado no es el adecuado o se necesita implementar mejoras o funcionalidades: Se planificaran los siguientes pasos y se comienza un nuevo ciclo de la espiral. La espiral tiene una forma de caracola y se dice que mantiene dos dimensiones, la radial y la angular: Angular: Indica el avance del proyecto del software dentro de un ciclo. Radial: Indica el aumento del coste del proyecto, ya que con cada nueva iteración se pasa más tiempo desarrollando. En cada vuelta o iteración hay que tener en cuenta: -Los Objetivos: qué necesidad debe cubrir el producto. -Alternativas: las diferentes formas de conseguir los objetivos de forma exitosa, desde diferentes puntos de vista como pueden ser: -Características: experiencia del personal, requisitos a cumplir, etc. Formas de gestión del sistema. Riesgo asumido con cada alternativa. -Desarrollar y Verificar: Programar y probar el software. Tareas Para cada ciclo habrá cuatro actividades: -Determinar Objetivos. -Análisis del riesgo. -Desarrollar y probar. -Planificación.
  12. Modelos de Desarrollo de Software Modelos Ágiles El desarrollo ágil de software envuelve un enfoque para la toma de decisiones en los proyectos de software, que se refiere a métodos de ingeniería del software basados en el desarrollo iterativo e incremental, donde los requisitos y soluciones evolucionan con el tiempo según la necesidad del proyecto. Así el trabajo es realizado mediante la colaboración de equipos auto-organizados y multidisciplinarios, inmersos en un proceso compartido de toma de decisiones a corto plazo. Cada iteración del ciclo de vida incluye: planificación, análisis de requisitos, diseño, codificación, pruebas y documentación. Teniendo gran importancia el concepto de "Finalizado" (Done), ya que el objetivo de cada iteración no es agregar toda la funcionalidad para justificar el lanzamiento del producto al mercado, sino incrementar el valor por medio de "software que funciona" (sin errores).
  13. Modelos de Desarrollo de Software Características de Modelos Ágiles 1) El desarrollo del plan: Determinar rápidamente el alcance de la siguiente iteración / entrega en base a las prioridades del negocio (cliente) y los estimados técnicos. Estar dispuestos a cambiar el plan a medida que es necesario. 2) Liberar mucho, en incrementos pequeños: Poner el sistema en producción los más rápido posible (el mínimo necesario) y desarrollar las siguientes versiones con el ciclo lo mas corto posible. 3)Diseño simple: Mantener el diseño lo más simple posible (KISS: Keep it Simple Stup$%#id), concentrarse en el presente y no en el futuro (YAGNI: You ain't going to need it) 4) Pruebas unitarias continuas: Sirven para evitar que los programadores se equivoquen, para evitar las “parcelas” de código y para validar constantemente la aplicación. Los clientes también pueden escribir pruebas para validar / demostrar ciertas características del sistema. 5) Programación en parejas: Todo el código a ponerse en producción es escrito en parejas. ¿Sabe usted por que? 6) Propiedad colectiva: Nadie es dueño de ninguna clase, de ningún artefacto, de ninguna parte del código. 7) Integración continua: Las características del sistema se desarrollan y se integran a diario. Luego se corren las pruebas y se verifica que la aplicación corra correctamente. 8) 40 horas a la semana: Nadie. ¡NADIE! Trabaja horas extra. ¿Sabe usted porque? 9) El cliente involucrado en el ambiente de desarrollo: El cliente (o un representante) es un miembro más del equipo de desarrollo. 10)Estándares de codificación: Se definen estándares adecuados de codificación y se respetan. Sobre todo aquellos que enfatizan la “auto-documentación” y adecuada documentación del código.
  14. Modelos de Desarrollo de Software Cuadro Comparativo Modelo en Cascada Modelo Incremental Modelo en Espiral Ventajas Permite a los administradores, avanzar en el desarrollo, aunque en una escala muy bruta. El modelo proporciona todas las ventajas del modelo en cascada realimentado, reduciendo sus desventajas sólo al ámbito de cada incremento. Al ser un modelo de Ciclo de Vida orientado al riesgo se dice que uno de los aspectos fundamentales de su éxito radica en que el equipo que lo aplique sea capaz de detectar y catalogar correctamente dicho riesgo. Desventajas Los cambios introducidos durante el desarrollo pueden confundir al equipo profesional en las etapas tempranas del proyecto. Si los cambios se producen en etapa madura (codificación o prueba) pueden ser catastróficos para un proyecto grande. 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 mucha experiencia y habilidad para la evaluación de los riesgos, lo cual es requisito para el éxito del proyecto. Es difícil convencer a los grandes clientes que se podrá controlar este enfoque evolutivo. Crítica Este es un modelo en el cual se debe usar cuando todos los requerimientos han sido establecidos claramente de entrada. En este modelo se debe especificar con precisión todo lo que el sistema va a hacer antes de desarrollarlo. Lo cual lo hace manejable y disminuiría los costos. Este modelo es útil para grandes proyectos pero no ha sido utilizado tanto como el lineal secuencial o el de prototipos. Características Planear un proyecto antes de embarcarse en él. Definir el comportamiento externo deseado del sistema antes de diseñar su arquitectura interna. Documentar los resultados de cada actividad. Diseñar un sistema antes de codificarlo. Testear un sistema después de construirlo. Construir un sistema pequeño es siempre menos riesgoso. Al ir desarrollando parte de las funcionalidades, es más fácil determinar si los requerimientos para los niveles subsiguientes son correctos. Si un error importante es realizado, sólo la última iteración necesita ser descartada. Un enfoque cíclico para el crecimiento incremental del grado de definición e implementación de un sistema, mientras que disminuye su grado de riesgo. Un conjunto de puntos de fijación para asegurar el compromiso del usuario con soluciones.
  15. Modelos de Desarrollo de Software Análisis Para el desarrollo de software utilizaría preferiblemente el Modelo de Construcción de Prototipos, ya que con este modelo podremos saber de manera mas precisa el producto que necesita el cliente y al obtener la retroalimentación dada por este, se mejorara el software de tal manera que el cliente quede totalmente satisfecho con el producto final. De igual manera también trabajaría con el Modelo Incremental, por la posibilidad de crear software mas complejos y por el hecho de trabajar en sub-categorías que mejoraran el funcionamiento de las mismas. Radel Fuentes C.I.: 20503510

Hinweis der Redaktion

  1. Los alumnos se deben familiarizar con los siguientes principios básicos de Visio antes de realizar el curso: cómo acercar y alejar, agregar formas a la página, mover formas arrastrando el mouse y conectar formas. [Notas para el instructor: Para obtener más detalles sobre la personalización de esta plantilla, vea la última diapositiva. Además, puede buscar texto adicional sobre las lecciones en el panel de notas de algunas diapositivas. Dado que esta presentación contiene animaciones en Macromedia Flash, al guardar la plantilla puede que aparezca un mensaje de advertencia relativo a la información personal. A menos que agregue información a las propiedades del propio archivo Flash, esta advertencia no se aplica a esta presentación. Haga clic en Aceptar en el mensaje.]
  2. Entre los ejemplos de tipos de diagramas, se incluyen los diagramas de flujo, los organigramas, los mapas de carreteras, los calendarios de proyecto y los diseños de oficinas.
  3. Ejemplos de formas con detalles Las formas pueden representar las calles y los edificios de un mapa. Pueden representar simbólicamente el equipo informático de un diagrama de red. Incluso hay formas de mobiliario para planos de plantas de oficina. ¿Parece exagerado? Pues hay muchísimas más.
  4. La imagen muestra algunos ejemplos de formas 1D. Ejemplo de conexión de dos formas: en un diagrama de procesos de negocio, puede conectar dos departamentos con una línea o una flecha.
  5. Lo siguiente: formas 2D.
  6. Las formas que se muestran en esta imagen son todas ellas formas 2D. Muchas formas 2D también tienen un controlador de rotación verde.
  7. Para muchas personas, “1D” describe una forma con una dimensión y “2D”, una forma con dos dimensiones. Estas son definiciones familiares de 1D y 2D. Sin embargo, como puede ver en estos ejemplos, las definiciones de Visio dependen del comportamiento de las formas, no de su aspecto.
  8. Sugerencia: los controladores no son el único indicio de que una forma tenga un comportamiento interactivo especial. Pueden encontrarse algunos comportamientos especiales haciendo clic con el botón secundario en ella.
Anzeige