manual para elegir una metodología de desarrollo de ... - Pirhua
Unidad l. Metodología de Desarrollo de Software
-
Upload
independent -
Category
Documents
-
view
0 -
download
0
Transcript of Unidad l. Metodología de Desarrollo de Software
UNIVERSIDADTECNOLÓGICADEL NORTE DEGUANAJUATO
UNIDAD I.METODOLOGIAS DEDESARROLLO DE
SOFTWAREEnsayo
Jeannette Guadalupe Moreno Hernández
Viernes 4 de Septiembre de 2015
Jeannette Guadalupe Moreno Hernández
Unidad l. Metodología de Desarrollo de Software
Índice
Introducción......................................................................2
Modelo de Prototipo...............................................................3
Características.................................................................3Importancia.....................................................................3Ejemplo:........................................................................4Estadísticas de aplicabilidad y prestigio.......................................4
Modelo Incremental................................................................5
Características.................................................................5Importancia.....................................................................5Ejemplo:........................................................................5Estadísticas de aplicabilidad y prestigio.......................................6
Modelo Evolutivo..................................................................6
Características.................................................................6Ejemplo:........................................................................7................................................................................7Estadísticas de aplicabilidad y prestigio.......................................7
Modelo en espiral.................................................................8
Características.................................................................8Importancia.....................................................................8Ejemplo.........................................................................8Estadísticas de aplicabilidad y prestigio.......................................8Modelo FDD......................................................................9
(Feature Driven Development / Desarrollo Basado en Funciones).....................9
Características.................................................................9Importancia:....................................................................9Ejemplo........................................................................10Estadísticas de aplicabilidad y prestigio......................................10
Conclusión.......................................................................11
Tabla Comparativa..............................................................12Bibliografía.....................................................................13
2
Jeannette Guadalupe Moreno Hernández
Unidad l. Metodología de Desarrollo de Software
IntroducciónEn la elaboración de nuestros proyectos hay varias herramientas que ayudan a la
elaboración de ello, como las metodologías que se explicaran detalladamente en su
contenido. Para comenzar a hablar de la Metodología de Desarrollo de Software es
necesario saber su definición, esta es un marco de trabajo usado para estructurar,
planificar y controlar el proceso de desarrollo en sistemas de información. La
Ingeniería de software, se vale y establece a partir de una serie de modelos que
establecen y muestran las distintas etapas y estados por los que pasa un producto
software, desde su concepción inicial, pasando por su desarrollo, puesta en marcha
y posterior mantenimiento, hasta la retirada del producto. A estos modelos se les
nombra como modelos de ciclo de vida.
A lo largo del tiempo una gran cantidad de métodos han sido desarrollados
diferenciándose por su fortaleza y debilidad, hoy en día existe una gran cantidad
de modelos para la Metodología de Software que ha ido haciendo aparición con el
paso del tiempo. Algunos muy aceptados, otros no tanto, con sus diferentes ventajas
y desventajas, han logrado introducirse dentro de las principales metodologías de
desarrollo de Software actual, y los cuales han sido utilizados por varios
programadores.
Abarcaremos los temas de la ingeniería de software y las distintas metodologías,
así como también los ciclos de vida, veremos la importancia de utilizarlos en base
a proyectos o como lo aplicamos en nuestra vida cotidiana. Los ciclos de vida son
conjuntos de fases por las que pasa un sistema que se comienza a desarrollar desde
que nace la idea inicial hasta que el software es reemplazado o retirado. Los
ciclos de vida deben de tener funciones entre las cuales están: Determinar el orden
de las frases del proceso de software, Establecer los criterios de transición para
pasar de una fase a la siguiente, Definir las entradas y salidas de cada fase,
Describir los estados por los que pasa el producto, Describir actividades a
realizar para transformar el producto, Definir un esquema que sirve como base para
planificar, organizar, coordinar, desarrollar, etc. Cuando hablamos de un ciclo de
vida para un proyecto sabemos que este se compone de fases sucesivas compuestas por
tareas que se pueden planificar. Según el modelo del ciclo de vida, la sucesión de
2
Jeannette Guadalupe Moreno Hernández
Unidad l. Metodología de Desarrollo de Software
fases pude ampliarse con bucles de retroalimentación, de manera que lo que
conceptualmente se considera una fase. Estos y algunos otros conceptos los
explicaremos a lo largo del desarrollo de este tema.
En el presente trabajo se darán a conocer las principales características,
ventajas, desventajas, importancia de algunos de ellos.
2
Jeannette Guadalupe Moreno Hernández
Unidad l. Metodología de Desarrollo de Software
Modelo de Prototipo
El modelo de prototipos permite desarrollar modelos de aplicaciones de software que
permiten ver la funcionalidad básica de la misma, sin necesariamente incluir toda
la lógica o características del modelo terminado, permite al cliente evaluar en
forma temprana el producto, e interactuar con los diseñadores y desarrolladores
para saber si se está cumpliendo con las expectativas y las funcionalidades
acordadas. Los Prototipos no poseen la funcionalidad total del sistema pero si
condensa la idea principal del mismo, Paso a Paso crece su funcionalidad, y maneja
un alto grado de participación del usuario.
Características
Plan rápido. Modelado, diseño rápido Construcción del Prototipo Desarrollo, entrega y retroalimentación Comunicación Entrega del desarrollo final
Importancia
La construcción de prototipos se puede utilizar como un modelo del proceso
independiente, se emplea más comúnmente como una técnica susceptible de
implementarse dentro del contexto de cualquiera de los modelos del proceso
expuestos. Sin importar la forma en que éste se aplique, el paradigma de
construcción de prototipos ayuda al desarrollador de software y al cliente a
entender de mejor manera cuál será el resultado de la construcción cuando los
requisitos estén satisfechos. De esta manera, este ciclo de vida en particular,
involucra al cliente más profundamente para adquirir el producto.
2
Jeannette Guadalupe Moreno Hernández
Unidad l. Metodología de Desarrollo de Software
Ejemplo:
Estadísticas de aplicabilidad y prestigio
El profesional de Sistema por medio de la observación, evaluación y la
retroalimentación, obtendrá cómo reaccionan los usuarios al trabajar con el
prototipo, y que tan conveniente es el acoplamiento entre las necesidades y las
características modeladas en el sistema. A través de la recopilación de tales
reacciones, el profesional, irá descubriendo nuevas perspectivas del prototipo,
incluso si los usuarios se encuentran satisfechos con él, o si habrá dificultades
para vender o implantar el sistema.
La información que se obtiene con el uso de prototipos permite al profesional
establecer prioridades y reorientar sus planes de una manera menos costosas y con
un mínimo de contratiempo.
Una de las peores cosas que le puede pasar a un profesional es diseñar e implantar
un sistema que el usuario no necesita, ni desean.
2
Jeannette Guadalupe Moreno Hernández
Unidad l. Metodología de Desarrollo de Software
Modelo Incremental
El modelo incremental es una evolución del modelo de cascada; viene a suplir el
problema de no poder retroceder en las fases de desarrollo del
software .Por tanto, es un modelo no secuencial. El funcionamiento es sencillo,
comienza con el análisis de los requisitos, tras el cual se prepara un primer
diseño
Características
Permite construir el proyecto en etapas incrementales en donde cada etapa
agrega funcionalidad.
Cada etapa consiste de análisis, diseño, codificación y pruebas.
Permite entregar al cliente un producto más rápido en comparación del modelo
de cascada.
Resulta más sencillo acomodar cambios al acotar el tamaño de los incrementos
Se puede planear en base a la funcionalidad que se quiere entregar primero.
Importancia
La importancia de la metodología incremental es porque provee visibilidad sobre el
progreso a través de sus nuevas versiones, nos provee retroalimentación a través de
la funcionalidad mostrada, las pruebas y la integración son constantes.
En esta metodología se pueden hacer implementaciones parciales si se cuenta con la
suficiente funcionalidad, el progreso se puede medir en periodos de corto tiempo.
Ejemplo:
2
Jeannette Guadalupe Moreno Hernández
Unidad l. Metodología de Desarrollo de Software
Estadísticas de aplicabilidad y prestigio
Este modelo es utilizado por las personas que realizan proyectos pequeños y se evitan los proyectos largos para que se entregue algo de valor a los usuarios con cierta frecuencia
Este modelo es uno de los más reconocidos para la creación de proyectos pequeños yaque reduce el tiempo de desarrollo inicial implementando su funcionalidad, además de que provee muchas ventajas frente al cliente por la entrega temprana del proyecto.
Modelo Evolutivo
Este modelo entrelaza las actividades de especificación, desarrollo y validación.
Un sistema inicial se desarrolla rápidamente a partir de especificaciones
abstractas. Éste se refina basándose en las peticiones del cliente para producir un
sistema que satisfaga sus necesidades.
El desarrollo evolutivo consta del desarrollo de una versión inicial que luego de
exponerse se va refinando de acuerdo de los comentarios o nuevos requerimientos por
parte del cliente o del usuario final. Las fases de especificación, desarrollo y
validación se entrelazan en vez de separarse.
2
Jeannette Guadalupe Moreno Hernández
Unidad l. Metodología de Desarrollo de Software
Características
Sus actividades concurrentes son: especificación, desarrollo y validación y
se realizan durante el desarrollo de las versiones hasta llegar al producto
final.
Su idea es el desarrollo de una implantación del sistema inicial, exponerla a
los comentarios del usuario, refinarla en versiones hasta que se desarrolle
el sistema adecuada
2
Jeannette Guadalupe Moreno Hernández
Unidad l. Metodología de Desarrollo de Software
Ejemplo:
Estadísticas de aplicabilidad y prestigio
EL modelo evolutivo puede ser utilizado para proyectos grandes y pequeños, ya que
se pueden realizar varios cambios en sus diferentes etapas sin afectar el proyecto
final.
Sin duda alguna este modelo es el que cuenta con mayor prestigio, ya que su
capacidad para realizar cambios a un proyecto es mayor a la de los otros modelos,
además de que en este modelo se pueden realizar cambios en cualquier etapa del
proyecto y no solo en la etapa de análisis, esto ofrece un mayor prestigio gracias
a su facilidad de uso.
2
Jeannette Guadalupe Moreno Hernández
Unidad l. Metodología de Desarrollo de Software
Modelo en espiral
Las actividades de este modelo se conforman en una espiral, en la que cada bucle o
iteración representa un conjunto de actividades.
Características
En cada giro se construye un nuevo modelo del sistema completo
Este modelo puede combinarse con otros modelos de proceso de desarrollo
Mejor modelo para el desarrollo de grandes sistemas
El análisis de riesgo requiere la participación de personal con alta
calificación
Más realista que el ciclo de vida clásico
Importancia
Es importante ya que el análisis del riesgo se hace de forma explícita y clara. Nos
ayuda a unir los mejores elementos de los restantes modelos. Nos reduce riesgos del
proyecto e incorpora objetivos de calidad. Además es posible tener en cuenta
mejoras y nuevos requerimientos sin romper con la metodología, ya que este ciclo de
vida no es rígido ni estático.
2
Jeannette Guadalupe Moreno Hernández
Unidad l. Metodología de Desarrollo de Software
Ejemplo
Estadísticas de aplicabilidad y prestigio
El modelo espiral se utiliza lo más a menudo posible en proyectos grandes. Para
proyectos más pequeños, el concepto de desarrollo ágil del software se está
convirtiendo un alternativa viable. Militares de los E.E.U.U. ha adoptado el modelo
espiral para su Sistemas futuros del combate programa.
Este modelo es uno de los de mayor prestigio ya que puede adaptarse y aplicarse a
lo largo de la vida del software de computadora, a diferencia del modelo de proceso
clásico que termina cuando se entrega el software.
Modelo FDD
(Feature Driven Development / Desarrollo Basado en Funciones)
Es una metodología ágil diseñada para el desarrollo de software, basada en la
calidad y el monitoreo constante del proyecto.
Características
Se preocupa por la calidad, por lo que incluye un monitoreo constante del
proyecto.
Ayuda a contrarrestar situaciones como el exceso en el presupuesto, fallas en
el programa o el hecho de entregar menos de lo deseado.2
Jeannette Guadalupe Moreno Hernández
Unidad l. Metodología de Desarrollo de Software
Propone tener etapas de cierre cada dos semanas. Se obtienen resultados
periódicos y tangibles.
Se basa en un proceso iterativo con iteraciones cortas que producen un
software funcional que el cliente y la dirección de la empresa pueden ver y
monitorear.
Define claramente entregas tangibles y formas de evaluación del progreso del
proyecto.
No hace énfasis en la obtención de los requerimientos sino en cómo se
realizan las fases de diseño y construcción.
Importancia:
En este modelo cada componente del producto final ha sido probado y satisface los
requerimientos. Es importante ya que nos da una rápida respuesta a cambios de
requisitos a lo largo del desarrollo, su entrega continua y en plazos cortos de
software funcional. El trabajo es conjunto entre el cliente y el equipo de
desarrollo. Le da importancia de la simplicidad, al eliminar el trabajo
innecesario. Tiene atención continua a la excelencia técnica y al buen diseño y nos
mejora continua de los procesos y el equipo de desarrollo.
Ejemplo
2
Jeannette Guadalupe Moreno Hernández
Unidad l. Metodología de Desarrollo de Software
Estadísticas de aplicabilidad y prestigio
FDD no requiere un modelo específico de proceso y se complementa con otras
Metodologías. Así que puede ser utilizado tanto para proyectos grandes como para
proyectos pequeños.
FDD es un método de desarrollo de ciclos cortos que se concentra en la fase de
diseño y construcción. Esto hace que FDD sea utilizado por gran cantidad de
usuarios para su elaboración de proyectos.
2
Jeannette Guadalupe Moreno Hernández
Unidad l. Metodología de Desarrollo de Software
Conclusión
Con este trabajo sabemos que las metodologías facilitan la planificación, el
control y seguridad de los proyectos, además de mejorar la gestión de los recursos,
tanto materiales como humanos. Las características de las metodologías son muy
amplias a comparación de los ciclos de vida. Después de ver algunos de los modelos
de ciclo de vida más utilizados me doy cuenta de que antes de elegir un ciclo de
vida es necesario saber que ninguno es más que otro, sino que debemos elegir el
modelo que más se adapte al proyecto que desarrollamos. Para poder tomar una buena
elección es necesario conocer la complejidad del problema, el tiempo que disponemos
para hacer la entrega final y saber que certeza tenemos de que los requerimientos
dados por el usuario son correctos y completos. Independientemente del paradigma
que se utilice, del área de aplicación, y del tamaño y la complejidad del proyecto,
el proceso de desarrollo de software contiene siempre una serie de fases genéricas,
existentes en todos los paradigmas. Estas fases son la definición, el desarrollo y
el mantenimiento. Para realizar un proyecto de desarrollo de un Sistema de
Información es necesario conocer varios componentes o pasos llevados a cabo
durante la etapa del análisis, el cual ayuda a traducir las necesidades del cliente
en un modelo de Sistema que utiliza uno más de los componentes: Software, hardware,
personas, base de datos, documentación y procedimientos.
Es por eso que existen varios modelos o métodos para poder realizar el análisis y
diseño de un sistema, lo primero en un trabajo es revisar que es el análisis y
diseño y posteriormente el autor presenta varios modelos que se pueden utilizar
para la realización y elaboración de un proceso y trabajo exhaustivo, para así
poder dar solución o respuesta al problema que se ha generado desde la perspectiva
del programador y analista. Se dice que a pesar de que tal vez surjan problemas, la
construcción de prototipos puede ser un paradigma efectivo para la ingeniería del
software. La clave está en definir las reglas desde el principio; es decir, el
cliente y el desarrollador se deben poner de acuerdo en que prototipo efectuaran
para la definición de requisitos. Es por todo esto que existen metodologías como
las ya mencionadas, que permiten la elaboración de sistemas de las cuales hay una
2
Jeannette Guadalupe Moreno Hernández
Unidad l. Metodología de Desarrollo de Software
que se adapta mejor a las necesidades de cada desarrollador de software, o ya sea
la necesidad que se trata de manejar en un sistema.
Ahora hablando más en general sabemos que la gestión de proyectos de software
requiere de muchas habilidades y técnicas para conseguir con éxito los objetivos
del proyecto. Los conceptos a los que se debe enfrentar el líder del proyecto son
numerosos, por lo que deben de tener habilidades suficientes para poder elegir las
técnicas y métodos más adecuados para cada situación. Con esta información nos
damos cuenta de la gran utilidad de las metodologías y ciclos de vida, estos
esquemas nos facilitan en gran medida la elaboración de proyectos de buena calidad
ya que básicamente es cuestión de seguir los métodos reemplazado su información por
los requerimientos que nos proporciona el cliente.
Para finalizar cabe mencionar que no existe una metodología universal para hacer
frente con éxito a cualquier proyecto de desarrollo de software y que toda
metodología debe ser adaptaba al contexto del proyecto.
Tabla Comparativa
Modelos
Aspectos Prototipo Incremental Evolutivo Espiral FDD
Características
•Plan rápido.
•Modelado, diseño rápido
•Construcción del Prototipo
•Desarrollo,entrega y retroalimentación
•Comunicación
Cada etapa consiste
de análisis, diseño,
codificación y
pruebas.
Permite entregar al
cliente un producto
más rápido en
comparación del
modelo de cascada.
Resulta más sencillo
acomodar cambios al
acotar el tamaño de
Consta de
especificació
n, desarrollo
y validación
En cada
giro se
construy
e un
nuevo
modelo
del
sistema
completo
Se preocupa por la calidad
Ayuda a contrarrestar situaciones como el exceso en el presupuesto, fallas en el programa oel hecho
2
Jeannette Guadalupe Moreno Hernández
Unidad l. Metodología de Desarrollo de Software
•Entrega deldesarrollo final
los incrementos de entregar menos de lo deseado.
Propone tener etapas de cierre cada dos semanas.
Permite cambios en los requerimientos
Si Si Si Si Si
Disponibilidad de proyecto enmenos tiempo
Si Si Si Si Si
Tipo de software que se puede desarrollar
Pequeño,Mediano yGrande
Pequeño y Complejo
Pequeño,Mediano,Grande,Complejo
Muygrande
GrandeMediano
2
Jeannette Guadalupe Moreno Hernández
Unidad l. Metodología de Desarrollo de Software
Bibliografía
José María. (2012). Software. 2015, de UNED Sitio web: http://www.ia.uned.es/
Jorge Ehcnac Uchc . (2014). Metodologías Clásicas. 2015, Sitio
web:https://prezi.com/q_myjbslsn9y/21-metodologias-clasicas/
Pablo Daniel Bazan Carmona. (2014). metodologías de desarrollo DE SOFTWARE.
2015, de . Sitio web: http://es.slideshare.net/zaban88/unidad-2-metodologas-
de-desarrollo-de-software
ITH JOSE leonel. (2013). Metodologías clásicas. 2015, de . Sitio web:
http://ithjlmvu2.blogspot.mx/
Juan Pablo Bustos Thames. (2011). Modelos evolutivos. incremental y espiral.
2015, de UTN Sitio web: http://es.slideshare.net/jpbthames/modelos-
evolutivos-incremental-y-espiral
Valesca. (2012). Metodología FDD – Feature Driven Development / DesarrolloBasado en Funciones. 2015, de Atom Sitio web:http://metodologiafdd.blogspot.mx/
2