Unidad l. Metodología de Desarrollo de Software

19
UNIVERSIDAD TECNOLÓGICA DEL NORTE DE GUANAJUATO UNIDAD I. METODOLOGIAS DE DESARROLLO DE SOFTWARE Ensayo Jeannette Guadalupe Moreno Hernández Viernes 4 de Septiembre de 2015

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

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