Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

MODELOS DE DESARROLLO DE SOFTWARE

No description
by

Keity Michel Perez Martinez

on 7 December 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of MODELOS DE DESARROLLO DE SOFTWARE

Modelo De Procesos
Modelo De Técnicas De 4ta Generación
MODELOS DE DESARROLLO DE SOFTWARE
Gracias
Modelo En Espiral
Modelo En Cascada O Clásico
Es el enfoque metodológico que ordena rigurosamente las etapas del ciclo de vida del software, de forma tal que el inicio de cada etapa debe esperar a la finalización de la inmediatamente anterior.
Modelo De Prototipos
Modelo Incremental
Modelo De Desarrollo Concurrente
La ingeniería de software tiene varios modelos o paradigmas de desarrollo en los cuales se puede apoyar para la realización de software.
Modelo De Desarrollo Por Etapas
Modelo De Desarrollo En V
Modelo De Desarrollo Basado En Componentes
Modelo De Métodos Formales
Modelo RAD
Alejandra Rincon
Keity Perez

Es un modelo de ciclo de vida desarrollado por Barry Boehm en 1985, utilizado generalmente en la Ingeniería de software. Las actividades de este modelo se conforman en una espiral, cada bucle representa un conjunto de actividades. Las actividades no están fijadas a priori, sino que las siguientes se eligen en función del análisis de riesgo, comenzando por el bucle interior.
Se inicia con la definición de los objetivos globales para el software, luego se identifican los requisitos conocidos y las áreas del esquema en donde es necesaria más definición. Entonces se plantea con rapidez una iteración de construcción de prototipos y se presenta el modelado (en forma de un diseño rápido).
El modelo incremental combina elementos del modelo lineal secuencial (aplicados repetidamente) con la filosofía interactiva de construcción de prototipos.
Cuando se utiliza un modelo incremental, el primer incremento a menudo es un producto esencial. Como un resultado de utilización y/o de evaluación, se desarrolla un plan para el incremento siguiente.
La actividad de análisis ahora hace una transición al estado bajo desarrollo. Sin embargo, si el cliente indica que se deben hacer cambios en requisitos, la actividad análisis cambia del estado bajo desarrollo al estado cambios en espera.
El modelo de proceso concurrente define una serie de acontecimientos que dispararán transiciones de estado a estado para cada una de las actividades de la ingeniería del software.
Incorpora muchas de las características del modelo en espiral.Sin embargo, el modelo de desarrollo basado en componentes configura aplicaciones desde componentes preparados de software.
El modelo de desarrollo basado en componentes conduce a la reutilización del software, y la reutilización proporciona beneficios a los ingenieros de software.
Comprende un conjunto de actividades que conducen a la especificación matemática del software de computadora. Los métodos formales permiten que un ingeniero de software especifique, desarrolle y verifique un sistema basado en computadora aplicando una notación rigurosa y matemática.
Cuando se utilizan métodos formales durante el desarrollo, proporcionan un mecanismo para eliminar muchos de los problemas que son difíciles de superar con paradigmas de la ingeniería del software
Abarca un amplio espectro de herramientas de software que tienen algo en común: todas facilitan al ingeniero del software la especificación de algunas características del software a alto nivel. Luego, la herramienta genera automáticamente el código fuente basándose en la especificación del técnico.
Es similar al Modelo de prototipos ya que se muestra al cliente el software en diferentes estados sucesivos de desarrollo, se diferencia en que las especificaciones no son conocidas en detalle al inicio del proyecto y por tanto se van desarrollando simultáneamente con las diferentes versiones del código.
El método comprende el desarrollo iterativo, la construcción de prototipos y el uso de utilidades CASE (Computer Aided Software Engineering). Tradicionalmente, el desarrollo rápido de aplicaciones tiende a englobar también la usabilidad, utilidad y la rapidez de ejecución.
Una reexaminación del modelo del ciclo de vida
desde el punto de vista de aseguramiento de calidad.
Cuando cada proceso termina su producto, las
especificaciones de prueba para los procesos están también completas.
Modelo De Desarrollo En Flor
El propósito del desarrollo de software es el de desarrollar un producto de software.
Los equipos no deben de estar preocupados por el proceso de desarrollo mismo.
Deben de desarrollarse todas las etapas un poco al mismo tiempo hasta que el producto final es alcanzado.
Modelo Basado En Reutilización
-Impulsa un proceso iterativo de desarrollo.
-Cada ciclo es una versión del producto.
-Utiliza metas definidas para marcar la
transición entre las distintas etapas.
-Ofrece mayor poder de decisión a los usuarios.
-Busca mejorar la creatividad y calidad.
Modelo De Procesos
Se basa en el ensamblaje de componentes
Desventajas
En la vida real, un proyecto rara vez sigue una secuencia lineal, esto crea una mala implementación del modelo, lo cual hace que lo lleve al fracaso. Difícilmente un cliente va a establecer al principio todos los requerimientos necesarios, por lo que provoca un gran atraso trabajando en este modelo, ya que este es muy restrictivo y no permite movilizarse entre fases.
Los resultados y/o mejoras no son visibles, el producto se ve recién cuando este esté finalizado, lo cual provoca una gran inseguridad por parte del cliente que anda ansioso de ver avances en el producto. Esto también implica toparse con requerimientos que no se habían tomado en cuenta, y que surgieron al momento de la implementación, lo cual provocara que se regrese nuevamente a la fase de requerimientos.
Ventajas
Se tiene todo bien organizado y no se mezclan las fases.
Es perfecto para proyectos que son rígidos, y además donde se especifiquen muy bien los requerimientos y se conozca muy bien la herramienta a utilizar
Ventajas
-El producto avanza a pasos firmes solucionando riesgos en cada iteración.
-El producto termina con todos los riesgos resueltos.
-Se pueden incluir otros métodos de desarrollo en las iteraciones.
-A medida que el costos aumenta, los riesgos se reducen.
-Se Tienen puntos de control en cada iteración
Desventajas
-Es complicado.
-Requiere de mucha administración.
-Difícil de definir los objetivos, metas que indiquen que podemos avanzar al siguiente ciclo.
-Se puede caer en un desarrollo de nunca acabar.
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 reacio 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 proporcione 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 final.
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.
Ventajas
Velocidad del desarrollo: Los aumentos de la velocidad son debido al uso de la herramienta CASE.
Calidad: según lo definido por el RAD, es el grado al cual un uso entregado resuelve las necesidades de usuarios así como el grado al cual un sistema entregado tiene costes de mantenimiento bajos. El RAD aumenta calidad con la implicación del usuario en las etapas del análisis y del diseño.
Desventajas
Características reducidas.
Escalabilidad reducida: debido a que el RAD se desarrolló como prototipo
Desventajas
Ventajas
Requiere mucha planeación, tanto administrativa como técnica.
Requiere de metas claras para conocer el estado del proyecto
La solución se va mejorando en forma progresiva a través de las múltiples iteraciones.
Incrementa el entendimiento del problema y de la solución por medio de los refinamientos sucesivos.
Ventajas
Desventajas
Excelente para proyectos en los que se conforman grupos de trabajo independientes.
•Proporciona una imagen exacta del estado actual de un proyecto.
Si no se dan las condiciones señaladas no es aplicable.
Si no existen grupos de trabajo no se puede trabajar en este método
Desventajas
No se conoce cuando tengamos un producto aceptable.
Cuando el usuario no se quiere comprometer con los requerimientos no se sabe cuántas iteraciones serán necesarias.
Cuando no se conoce bien la aplicación dan una falsa ilusión al usuario sobre la velocidad del desarrollo.
Ventajas
Útiles cuando los requerimientos son cambiables.
Cuando se quiere probar una arquitectura o tecnología se puede volver al producto aun y cuando no esté con los estándares .
Rapidez en el desarrollo
Ventajas
Desventajas
-Se comprende mejor el sistema.
-La comunicación con el cliente mejora ya que se dispone de una descripción clara y no ambigua de los requisitos del usuario.
-El sistema se describe de manera más precisa.
-El sistema se asegura matemáticamente que es correcto según las especificaciones.
-Mayor calidad software respecto al cumplimiento de las especificaciones.
-Mayor productividad
-El desarrollo de herramientas que apoyen la aplicación de métodos formales es complicado y los programas resultantes son incómodos para los usuarios.
-Los investigadores por lo general no conocen la realidad industrial.
-Es escasa la colaboración entre la industria y el mundo académico, que en ocasiones se muestra demasiado dogmático.
-Se considera que la aplicación de métodos formales encarece los productos y ralentiza su desarrollo.
Desventajas
Ventajas
El principal inconveniente es que no funciona sin una planificación adecuada.
Permite proporcionar una funcionalidad útil, en las manos del cliente, antes de entregar el producto final
Ventajas
Desventajas
-La relación entre las etapas de desarrollo y los distintos tipos de pruebas facilitan la localización de fallos.
-Es un modelo sencillo y de fácil aprendizaje
-Hace explícito parte de la iteración y trabajo que hay que revisar
-Especifica bien los roles de los distintos tipos de pruebas a realizar
-Involucra al usuario en las pruebas
• Es difícil que el cliente exponga explícitamente todos los requisitos
• El cliente debe tener paciencia pues obtendrá el producto al final del ciclo de vida
• Las pruebas pueden ser caras y, a veces, no lo suficientemente efectivas
• El producto final obtenido puede que no refleje todos los requisitos del usuario
Ventajas
Desventajas
Etapas claramente definidas con metas, entregables y responsables.
Se establecen roles asociados al modelo que promueve la participación de todos.
Involucra muy de cerca al usuario.
Dado que la mayoría de las decisiones son en consenso por el equipo en su conjunto, en ocasiones toman más tiempo de lo debido.
Para proyectos pequeños puede resultar poco practico.
El considerar versiones hace que se dejen de lado algunas decisiones.
Ventajas
Desventajas
-Permiten elaborar programas en menor tiempo, lo que conlleva a un aumento de la productividad.
-El personal que elabora software sufre menos agotamiento, ya que generalmente requiere escribir menos.
-El nivel de concentración que se requiere es menor, ya que algunas instrucciones, que le son dadas a las herramientas, a su vez, engloban secuencias de instrucciones a otro nivel dentro de la herramienta.
-Cuando hay que dar mantenimiento a los programas previamente elaborados, es menos complicado por requerir menor nivel de concentración.
-Las herramientas prefabricadas generalmente son menos flexibles que los lenguaje de alto nivel.
-Se crea dependencia de uno o varios proveedores externos, lo que se traduce en pérdida de autonomía. A menudo las herramientas prefabricadas contienen librerías de otros proveedores, que conlleva a instalar opciones adicionales que son consideradas opcionales. Los programas que se elaboran generalmente se ejecutan sólo con la herramienta que lo creó (a menos que existan acuerdos con otros proveedores).
-A menudo no cumplen con estándares internacionales ISO ANSI. Por este motivo invertir tiempo y dinero es un riesgo a futuro, porque no se sabe a ciencia cierta cuanto tiempo permanecerá la herramienta y su fabricante en el mercado.
Ventajas
Desventajas
– Incremento en la fiabilidad
– Reducción en el riesgo
– Utilización efectiva de especialistas
– Conformidad con los estándares
– Desarrollo acelerado, quizás 70% como
indican algunos estudios
– Falta de apoyo de las herramientas
– Síndrome de aquí no se ha inventado
– Costo de encontrar, entender y adaptar componentes reutilizables
Desventajas
Ventajas
El análisis del riesgo se hace de forma explícita y clara. Une los mejores elementos de los restantes modelos. – Reduce riesgos del proyecto – Incorpora objetivos de calidad – Integra el desarrollo con el mantenimiento
Genera mucho tiempo en el desarrollo del sistema – Modelo costoso –Requiere experiencia en la identificación de riesgos.
Full transcript