You are on page 1of 8

Ingeniería del Software

Métodos de desarrollo Software

Metodología de desarrollo de software
Es el conjunto de métodos utilizados en la creación de software, estos
métodos son los llamados “frameworks” que no son más que marcos
de trabajos definidos por actividades que definen las acciones de la
planificación, estructura y control de procesos en un sistema. Estos
proporcionan una guía útil para ingenieros del software y demás
integrantes de un equipo de desarrollo que se organizan en un flujo
de proceso. Los distintos modelos de desarrollo de software
comúnmente estudiados son: los modelos prescriptivos de procesos,
los evolutivos, los especializados en procesos y los procesos
unificados.

Métodos prescriptivos de procesos:
Cuando se requiere, por parte del equipo de desarrollo de software,
crear un marco de trabajo organizado, de estabilidad y control en las
distintas actividades que realizan dentro del proyecto, se adopta un
método prescriptivo puesto que las actividades genéricas del marco
de trabajo permanecen razonablemente consistentes a lo largo del
desarrollo del software, son modelos rigurosos sin embargo se pueden
adaptar para usarlos de manera efectiva.
Métodos evolutivos:
A diferencia del anterior este metodología es ideal para proyectos de
naturaleza cambiante ajustándose más a la realidad de la mayoría de
los proyectos, es muy útil cuando existen fechas de presentación de
resultados al cliente muy cortas, los proyectos bajo esta filosofía
funcionan con mapas de procesos de evolución iterativa que sugieren
crear versiones limitadas pero funcionales capaz de ser mostradas al
cliente en un plazo corto de tiempo, aunado a la posibilidad de definir
con estas versiones detalles que quizás no se tengan claro en un
principio, hasta llegar a versiones cada vez más completas del
software.

Realizado por Jefferson Valero
21.077.909

este se basa en la “gravedad de la cascada”. la receta en sí de las soluciones específicas para darle paso a la cuarta fase. en esta etapa se presume la solución como un conjunto de módulos con el fin de manejar fragmentos para mayor manejabilidad y comprensión. la fase de codificación. acá se analiza la necesidad del usuario final y se crea el primer documento llamado documento de especificación de requisitos (SRD. cada etapa sea consecuencia de la etapa inmediata anterior pero para iniciar la siguiente se debe dar por culminada la actual. fue propuesto por Winston Royce en 1970. haciendo más entendible el todo descomponiéndolo y estudiando las relaciones creando así la estructura quedando registrado en el documento de Diseño de Software (SDD). La cuarta etapa es la codificación esta etapa el desarrollador crea el código fuente de la solución. para poder plantearse la solución de un problema. se debe conocer el mismo y lo que requerimos para encontrarlo. de manera general sin entrar en detalles. La tercera etapa es el diseño del programa. con la utilización del sistema. siguiere diseñar un proyecto en secuencia lineal donde cada etapa sea impulsada por la anterior.909 .077.Ingeniería del Software Métodos de desarrollo Software Desarrollo en cascada Es el método más antiguo de todos. es decir. aquí se materializa los algoritmos creado Realizado por Jefferson Valero 21. Son siete etapas o fases que inicia con: El análisis de los requisitos. una vez creada la estructura del programa se debe diseñar los algoritmos. La segunda etapa es el diseño del sistema. por sus siglas en inglés) que no es más que registrar todas las necesidades que el usuario final verá por solventada.

hacia el resultado más optimo en Realizado por Jefferson Valero 21. Modelo de prototipos Se trata de crear modelos que permitan darle un vistazo del resultado final al cliente. En la etapa inicial se plantea una completa recolección de los requisitos del problema. permite a los desarrolladores realizar pruebas reales uniendo todos los componentes del sistema y detectar fallos que. Otra desventaja planteada por Bradac son los estados de bloqueo. los frameworks que podrían ser de utilidad y se establece todos los parámetros para lograr compatibilidad de lenguajes. inicia la etapa sexta. las pruebas. la verificación por parte del usuario final y con ella se descubre si el software cumple con los objetivos.909 . caso que no están dentro de esta metodología de desarrollo. permitiendo al desarrollador orientarse. existen actividades dependientes dentro de este método por lo cual miembros del equipo de trabajo podrían estar convirtiendo su tiempo productivo en tiempo de espera mientras pueden iniciar actividades “bloqueadas” por las de su compañero. La última etapa es la de mantenimiento que es brindar soporte una vez implementado el sistema. Una vez aprobado la etapa de pruebas por los desarrolladores. Como desventajas tiene:     Su naturaleza sugiere que este método es útil cuando los requerimientos son fijos y lineales y es muy raro encontrarse proyectos que cumplan con estas características. aquí se estudia los lenguajes de programación a utilizar.077. de haber. además que el cliente solo puede observar resultados solo a una etapa muy avanzada de desarrollo. la mayoría de los clientes desconocen por completo el problema propuesto lo que implicaría nuevos requisitos a lo largo del proyecto.Ingeniería del Software Métodos de desarrollo Software en la fase anterior. redireccionaría el proyecto a las etapas anteriores provocando pérdidas de tiempo y monetarias. herramientas de desarrollo con las plataformas en las que se operarían. La quinta etapa. sin embargo. luego del feedback por parte del usuario final.

Como desventaja se tiene que:   Como se muestra una versión funcional el cliente ajusta el tiempo de la próxima entrega a muy corto plazo por pensar que solo se realizaran ajustes.077. donde una vez mostrado el prototipo al usuario final o cliente. En la tercera etapa. puede que no se tome en cuenta la interoperabilidad o la solución más optima en las plataformas donde se utilizaría el software. No existe comprensión de que un prototipo es solo una presentación que tiende a no tomar la calidad y la facilidad de mantenimiento como premisas de construcción. el mismo lo evalúa para entonces solventar inquietudes del desarrollador y en conjunto definir requisitos más específicos del proyecto que puedan dar como resultado un producto final que genere satisfacción al cliente con un ritmo acertado de trabajo por parte del ingeniero del software por tener conocimiento de lo que se quiere. se codifica las ideas planteadas en la fase de diseño o planificación rápida. En la última fase. puede que el tiempo de desarrollo del software sea muy lento. se completa la fase de comunicación. el plan rápido y modelado de diseño rápido es la etapa donde se construye un algoritmo lógico que pueda solventar el problema general sin entrar en detalle de cada actividad que hará el software sino más al diseño de interfaces que serán visibles al usuario final o al cliente. La segunda fase. es la fase de presentación de resultados con el desarrollo de entrega y retroalimentación. la construcción del prototipo. Por ser el prototipo una versión de planificación y diseño rápido. por tanto se pueden aplicar algoritmos ineficientes Realizado por Jefferson Valero 21. pero la realidad es que un prototipo no tiene la calidad de un producto final por lo cual este primer sistema puede que sea desechado en su totalidad para entonces lograr una versión que cumpla con los estándares de calidad que se quiere. Por la reconstrucción del software continua.Ingeniería del Software Métodos de desarrollo Software poco tiempo puesto que puede entender mejor los requerimientos del cliente Etapas de construcción de un prototipo: La primera esta es la comunicación donde generalmente se obtiene una idea general de los objetivos del software.909 . el ingeniero de software o el usuario no tienen definidos los detalles pero mediante de una compresión general de información.

la evaluación del cliente que al dar una retroalimentación se obtiene los detalles para un próximo incremento que pueda satisfacer mejor las necesidades del cliente. es que combina elementos del modelo de cascada por ser este secuencial sin dejar a un lado la posibilidad que la entrega de un incremento puede ser prototipo. lo suficiente como para mostrar avances que sean base completa para un próximo incremento sin desperdicio de código. Tiene las etapas del modelo de cascada pero aplicadas en incrementos lo que reduce la complejidad del software a mostrar y por ende el tiempo de presentación de resultados Como desventaja se tiene que   El software puede lucir simple ante el cliente o usuario final por poco cambio en las interfaces así haya diferencia en el algoritmo y código significativo Se debe tomar en consideración que los incrementos no sean solo basados en las retroalimentaciones del cliente sino ver Realizado por Jefferson Valero 21.077. Es sumamente útil cuando existe una fecha de presentación de resultado próxima sin embargo. Desarrollo incremental Tomando en consideración el cambio de opinión del cliente y los cambios que ocurren en el desarrollo de un software. con cada iteración ir evolucionando hasta llegar al resultado final En ocasiones se encuentran definidos los requisitos del proyecto.Ingeniería del Software Métodos de desarrollo Software que no puedan ser reconocidos así sino al tiempo de haberse aplicado y forme estos partes de la solución integral. es de naturaleza iterativa pero la diferencia es que se enfoca en incrementos completamente operativos. la diferencia con el método evolutivo.909 . sin embargo es necesario hacer una entrega de limitada funcionalidad que luego de ser requisada. codificación y prueba para concretar entregables al usuario final y de allí. es necesaria expandirla en forma de incrementos. nace este método el cual se basa en bloques temporales que agrupan varias tareas del método en cascada como diseño de software. El modelo de proceso incremental tiene como otras similitudes al de prototipo.

mucho de ellos no pueden o quieren invertir gran parte de tiempo a la colaboración del proyecto Desarrollo en espiral Está basado en el “riesgo” que es presentado en la ejecución de un proyecto entendiéndose por riesgo aquello que puede resultar un impedimento para la culminación exitosa del proyecto. se toma el mas asumible y comienza el ciclo nuevamente para llegar al objetivo final. se toma entonces un conjunto de actividades no fijadas por prioridad. Una característica de este método. Este se puede adoptar y aplicarlo a través de ciclo de vida completo de una aplicación. una vez solventado este riesgo se vuelve a analizar los riesgos.Ingeniería del Software Métodos de desarrollo Software  cuáles son necesarios por cuenta del ingeniero de software. se toma el riesgo para definir el paso evolutivo y tomando el circuito anterior se genera las especificaciones del producto que no se tomaron en cuenta en ese momento. proporciona el material para el desarrollo rápido de versiones incrementales. es que puede adoptarse esta filosofía una vez entregado el proyecto y usarse en todo el ciclo de vida de este en la computadora como paso a mejoras continuas. Tiene como similitud al modelo incremental por la conjugación que existe en la naturaleza iterativa de los modelos evolutivos y los aspectos controlados de los modelos prescriptivos de procesos. ya que se tiende a dirigir el trabajo del desarrollador a los puntos que destaca el cliente Requiere una presencia constante del cliente. Las etapas del método son las mismas que el método de cascada con la diferencia de que este proceso no define el proceso evolutivo en cada etapa. Como desventaja tiene: Genera mucho tiempo en eltiempo de desarrollo del sistema Por el cambio continuo genera un costo mayor Realizado por Jefferson Valero 21. cuando comienza el proceso evolutivo este pasa por todas las etapas y una vez inicie el segundo circuito con movimiento de sentido de reloj.909 . es decir.077. se toma el riesgo más asumible teniendo en cuenta el objetivo y se codifica realizando sus pruebas correspondientes. desde el desarrollo del concepto hasta el mantenimiento.

pero rescatando aspectos fundamentales de los otros métodos como la primera etapa de levantamiento de información y la retroalimentación como base a un producto final capaz de satisfacer las necesidades de ese cliente o usuario final.909 . Son 5 fases las que conforman este marco de trabajo. Diseño orientado a objetos Se cambia el paradigma tradicional a uno distinto donde los datos toman formas de objetos. tiempo malgastado en código que no tiende a aplicarse en las mejoras. de entidades que agrupan procedimientos y datos para ser tratados como uno y de eso forma interactuar con el mismo.Ingeniería del Software Métodos de desarrollo Software Si un riesgo importante no se descubre y administra. las cuales son: Realizado por Jefferson Valero 21. este tiene un desarrollo lineal secuencial muy corto que genera componentes completamente funcionales lo que permite un rápido desarrollo del proyecto. será un descontrol en los futuros circuitos Desarrollo rápido de aplicaciones Toma conceptos de los modelos mencionados anteriores. Se basa en tener información clara con un buen levantamiento de información. Basados en objetos e interacciones se logra la resolución de los problemas Lenguaje unificado de modelado El proceso unificado busca unir los diferentes métodos o procesos desarrollados para de alguna forma reunir los mejores aspectos basándose en el desarrollo agil de software como base. se cree que se obtiene un más rápido desarrollo de un software involucrando al usuario final para que este de feedbacks continuos. se construye rápidos modelos prototipos y el uso de software de ingeniería asistida por computadores. adaptación al cambio entendiéndose la naturaleza no lineal de la mayoría de los proyectos en el mundo real y la reutilización para evitar costes innecesarios.077.

modelo de análisis. la cuarta no desvaría a las anteriores. UML es considerado un estándar por la ISO. fue definida como tal en el 2005. la etapa de despliegue. modelo de implementación y modelo de despliegue que son 5 visiones distintas del proyecto y conformándose como la tercera fase. incluso en 1997 este se convirtió en un estándar de la industria para el desarrollo de software orientado a objetos. por tanto es secuencial a ella. modelo de diseño. realizadas las pruebas en la fase beta y logrado una aceptación del mismo que lo transforma en un lanzamiento de software utilizable inicia entonces un monitoreo de uso pos entrega que entonces define la fase de despliegue.909 . que es la segunda fase para crear un modelado que consta de un modelo de caso de uso. que abarca el contacto con el cliente y la idea general en un modelo genérico para dar cabida a una solución de objetivo general. acá se realiza el código fuente que logre ensamblar todos los componentes obtenidos de la fase ya finalizada de elaboración.Ingeniería del Software Métodos de desarrollo Software La fase de elaboración. El UML no es considerado como un paradigma de programación pues es un diagrama de la realidad que tiene mucho parecido a la programación orientada a objetos y de hecho.077. se basa en los trabajos dados en esta area. Realizado por Jefferson Valero 21. no es más que tomar el modelado que se hizo en la fase anterior y hacerlo funcionar. La fase de construcción. La elaboración refina y expande los casos de uso preliminares que se desarrollaron como una parte de la fase de inicio y se elabora un plan. abarca las últimas etapas de la actividad genérica de construcción una vez dado el producto por los usuarios finales. se diseña y ejecuta pruebas de cada unidad para luego de una aceptación dar lugar a la última etapa.