Subido por David Ramirez Aguilar

Metodologias

Anuncio
CENTRO DE BACHILLERATO TECNOLOGICO
INDUSTRIAL Y SERVICIOS NOM.180
SUBMODULO 1.- Aplica la metodología espiral con
programación orientada a objetos
SUBMODULO 2.- Aplica la metodología de desarrollo
rápido de aplicaciones con programación orientada a
eventos
Alumno: David Ramírez Aguilar
Profesora: Tania Yosselin Juárez Rodríguez
Semestre: 3°
Grupo: “C”
Especialidad: Programación
Índice
Introducción………………………………………………………………………………. 3
Metodología espiral……………………………………………………………………… 4
Metodología RAD………………………………………………………………………… 6
Metodología de Desarrollo en cascada………………………………………………... 8
Metodología de prototipos…………………………………………………………….. 10
Metodología incremental………………………………………………………………. 12
Bibliografía………………………………………………………………………………. 14
Conclusiones……………………………………………………………………………..14
INTRODUCCION
La razón por la que se llevó a cabo esta investigación sobre los tipos de
metodologías es para dar a entender lo que significa cada uno y sus funciones
sobre la programación orientada a eventos u objetos
CONCEPTO DE METODOLOGIA
La metodología hace referencia al conjunto de procedimientos racionales
utilizados para alcanzar el objetivo o la gama de objetivos que rige una
investigación científica, una exposición doctrinal o tareas que requieran
habilidades, conocimientos o cuidados específicos. Con frecuencia puede definirse
la metodología como el estudio o elección de un método pertinente o
adecuadamente aplicable a determinado objeto.
No debe llamarse metodología a cualquier procedimiento, pues se trata de un
concepto que en la gran mayoría de los casos resulta demasiado amplio, siendo
preferible usar el vocablo método. También es de saber que existe una posición
ametódica e incluso una tendencia de matizado: anarquismo epistemológico
Metodología en espiral
El desarrollo en espiral es un modelo de ciclo de vida del software definido por
primera vez por Barry Boehm en 1986,1 utilizado generalmente en la ingeniería de
software.
Las actividades de este modelo se conforman en una espiral, en la que cada bucle
o iteración representa un conjunto de actividades. Las actividades no están fijadas
a ninguna prioridad, sino que las siguientes se eligen en función del análisis de
riesgo, comenzando por el bucle interior
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, etc.
Añade la posibilidad de 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.
DESVENTAJAS



Genera mucho tiempo en el desarrollo del sistema
Modelo costoso
Requiere experiencia en la identificación de riesgos
CICLOS E ITERACIONES
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:
1. Características: experiencia del personal, requisitos a cumplir, etc.
2. Formas de gestión del sistema.
3. Riesgo asumido con cada alternativa.

Desarrollar y Verificar: Programar y probar el software.
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:
1. Angular: Indica el avance del proyecto del software dentro de un ciclo.
2. Radial: Indica el aumento del coste del proyecto, ya que con cada nueva
iteración se pasa más tiempo desarrollando.
Este sistema es muy utilizado en proyectos grandes y complejos como puede ser,
por ejemplo, la creación de un Sistema Operativo.
Al ser un modelo de Ciclo de Vida orientado a la gestión de riesgo se dice que uno
de los aspectos fundamentales de su éxito radica en que el equipo que lo aplique
tenga la necesaria experiencia y habilidad para detectar y catalogar correctamente
los riesgos.
METODOLOGIA RAD
La metodología RAD o DRA (por sus siglas en inglés Rapid Application
Development y en castellano Desarrollo Rápido de Aplicaciones), se trata de un
modelo de desarrollo de aplicaciones ágil. Es decir, hablamos del proceso de
desarrollo de software.
Este método abarca el desarrollo interactivo, la creación de prototipos y el empleo
de utilidades CASE (Computer Aided Software Engineering). Además, la
metodología RAD suele englobar también la usabilidad, utilidad y la rapidez de
ejecución.
Profundizando en qué es una metodología RAD, tenemos que tener claros cuales
son sus premisas básicas. La primera persona que habló del método RAD fue
James Martin a finales de los 80 y, actualmente, estamos ante uno de los métodos
de desarrollo más populares, dentro de las técnicas de desarrollo ágil. James
Martin consideró que para aplicar de forma correcta la metodología RAD tenemos
que tener en cuenta 4 componentes: Personas, herramientas, metodología y
gestión.
En la actualidad, las empresas invierten gran parte de sus recursos en desarrollar
aplicaciones que les permitan trabajar de forma más eficiente. Con la aparición de
los modelos de desarrollo rápido de aplicaciones, podremos crear softwares de
forma rápida y barata para satisfacer las necesidades empresariales sin invertir
tanto tiempo y dinero.
VENTAJAS

Avances medibles: Al contar con numerosas iteraciones, componentes y
prototipos desplegados cada cierto tiempo, se podrá medir y evaluar de
forma sencilla el desarrollo del proyecto y, así, cumplir con los
presupuestos.

Productivos más pronto: La metodología DRA permitirá a los
desarrolladores adoptar roles multidisciplinares que creen prototipos y
códigos de trabajo de forma rápida, lo que supone ser productivos más
rápido.

Separación de los componentes del sistema: La metodología RAD exige a
los diseñadores y desarrolladores a generar componentes funcionales e
independientes por sí mismos, y así poder usarlos en en una versión o
prototipo iterativo. De esta manera, cada elemento se reparte en
compartimentos y se podrá modificar según evolucionen las necesidades
del software y/o usuario.
DESVENTAJAS

Requiere sistemas modulares: Cuando aplicamos el método RAD, cada
componente del sistema debe ser iterable y constatable por sí mismo, para
poder ser modificados o intercambiados por cualquier miembro del equipo.

Dificultad dentro de proyectos a gran escala: Cuando estemos ante un
proyecto que implique muchas personas y aplicaciones, la flexibilidad
puede llegar a ser un problema puesto que perderemos ligeramente el
control sobre el diseño y el desarrollo.

Exige mucha interactividad del usuario: Conseguir feedback del usuario
desde una etapa temprana es muy útil pero, a la vez, puede ser una espada
de doble filo ya que tendremos que aceptar todo tipo de críticas
constructivas y ser competente a la hora de comunicarse con los usuarios.
Metodología de desarrollo en cascada
En Ingeniería de software el desarrollo en cascada, también llamado secuencial o
ciclo de vida de un programa (denominado así por la posición de las fases en el
desarrollo de esta, que parecen caer en cascada “por gravedad” hacia las
siguientes fases), es el enfoque metodológico que ordena rigurosamente las
etapas del proceso para el desarrollo de software, de tal forma que el inicio de
cada etapa debe esperar a la finalización de la etapa anterior. 1 Al final de cada
etapa, el modelo está diseñado para llevar a cabo una revisión final, que se
encarga de determinar si el proyecto está listo para avanzar a la siguiente fase.
Este modelo fue el primero en originarse y es la base de todos los demás modelos
de ciclo de vida.
La versión original fue propuesta por Winston W. Royce en 1970 y posteriormente
revisada por Barry Boehm en 1980 e Ian Sommerville en 1985.2
Un ejemplo de una metodología de desarrollo en cascada es:
1.
2.
3.
4.
5.
6.
7.
Análisis de requisitos.
Diseño del sistema.
Diseño del programa.
Codificación.
Pruebas.
Despliegue del programa.
Mantenimiento.
De esta forma, cualquier error de diseño detectado en la etapa de prueba conduce
necesariamente al rediseño y nueva programación del código afectado,
aumentando los costos del desarrollo. La palabra cascada sugiere, mediante la
metáfora de la fuerza de la gravedad, el esfuerzo necesario para introducir un
cambio en las fases más avanzadas de un proyecto.
Si bien ha sido ampliamente criticado desde el ámbito académico y la industria,
sigue siendo el paradigma más seguido al día de hoy.
VENTAJAS




Realiza un buen funcionamiento en equipos débiles y productos maduros, por
lo que se requiere de menos capital y herramientas para hacerlo funcionar de
manera óptima.
Es un modelo fácil de implementar y entender.
Está orientado a documentos.
Es un modelo conocido y utilizado con frecuencia.

Promueve una metodología de trabajo efectiva: Definir antes que diseñar,
diseñar antes que codificar.
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.
El proceso de creación del software tarda mucho tiempo ya que debe pasar
por el proceso de prueba y hasta que el software no esté completo no se
opera. Esto es la base para que funcione bien.
Cualquier error de diseño detectado en la etapa de prueba conduce
necesariamente al rediseño y nueva programación del código afectado,
aumentando los costos del desarrollo.
Una etapa determinada del proyecto no se puede llevar a cabo a menos de
que se haya culminado la etapa anterior.
Metodología de modelo de prototipo
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 esta 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







Comunicación
Analogía
Plan rápido.
Modelado, diseño rápido
Construcción del Prototipo
Desarrollo, entrega y retroalimentación
Entrega del 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 humanomáquina
Se puede reutilizar el código..
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 este se aplique, el paradigma de
construcción de prototipos ayuda al desarrollado 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.
Inconvenientes


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.
Metodología de modelo incremental
El modelo incremental de gestión de proyectos tiene como objetivo un crecimiento
progresivo de la funcionalidad. Es decir, el producto va evolucionando con cada
una de las entregas previstas hasta que se amolda a lo requerido por el cliente o
destinatario.
Este enfoque, que se usó inicialmente para proyectos de software aunque más
tarde se aplicó a otros sectores, establece entregas parciales mediante un
calendario de plazos. En cada una de ellas, el producto debe mostrar una
evolución con respecto a la fecha anterior; nunca puede ser igual.
La principal diferencia del modelo incremental con los modelos tradicionales es
que las tareas están divididas en iteraciones, es decir, pequeños lapsos en los
cuales se trabaja para conseguir objetivos específicos. Con los modelos
tradicionales no pasaba esto; era necesario esperar hasta el final del proceso.
Sin embargo, no se trata de iteraciones independientes. Por el contrario,
están vinculadas de forma que cada una suponga un avance con respecto a la
anterior. Otras características esenciales de este modelo son:





Los incrementos son pequeños.
Permite una fácil administración de las tareas en cada iteración.
La inversión se materializa a corto plazo.
Es un modelo propicio a cambios o modificaciones.
Se adapta a las necesidades que surjan.
Para que esto sea posible, se debe tener en cuenta que las iteraciones no pueden
ser demasiado rígidas y que no existan tareas simultáneas. El modelo incremental
exige un encadenamiento progresivo de cada tarea. Scrum y Kanban son las
herramientas más conocidas que emplean este modelo de gestión.
FASES
1. Requerimientos: son los objetivos centrales y específicos que persigue el
proyecto.
2. Definición de las tareas y las iteraciones: teniendo en cuenta lo que se
busca, el siguiente paso es hacer una lista de tareas y agruparlas en las
iteraciones que tendrá el proyecto. Esta agrupación no puede ser aleatoria.
Cada una debe perseguir objetivos específicos que la definan como tal.
3. Diseño de los incrementos: establecidas las iteraciones, es preciso definir
cuál será la evolución del producto en cada una de ellas. Cada iteración
debe superar a la que le ha precedido. Esto es lo que se denomina
incremento.
4. Desarrollo del incremento: posteriormente se realizan las tareas previstas
y se desarrollan los incrementos establecidos en la etapa anterior.
5. Validación de incrementos: al término de cada iteración, los responsables
de la gestión del proyecto deben dar por buenos los incrementos que cada
una de ellas ha arrojado. Si no son los esperados o si ha habido algún
retroceso, es necesario volver la vista atrás y buscar las causas de ello.
6. Integración de incrementos: una vez son validados, los incrementos dan
forma a lo que se denomina línea incremental o evolución del proyecto en
su conjunto. Cada incremento ha contribuido al resultado final.
7. Entrega del producto: cuando el producto en su conjunto ha sido validado
y se confirma su correspondencia con los objetivos iniciales, se procede a
su entrega final.
CONCLUSIONES
La Programación Orientada a Objetos es actualmente el paradigma que más
se utiliza para diseñar aplicaciones y programas informáticos. Son muchas
sus ventajas, principalmente cuando necesitas resolver desafíos de
programación complejos. Permite una mejor estructura de datos y
reutilización del código, lo que facilita el ahorro de tiempo a largo plazo. Eso
sí, para ello se requiere pensar bien en la estructura del programa, planificar
al comienzo de la codificación, así como analizar los requisitos en clases
simples y reutilizables que se pueden usar para diseñar instancias de
objetos.
BIBLIOGRAFIA
https://es.wikipedia.org/wiki/Desarrollo_en_espiral
https://www.incentro.com/es-es/blog/stories/metodologia-rad-desarrollo-rapidoaplicaciones/#:~:text=El%20Desarrollo%20R%C3%A1pido%20de%20Aplicaciones
.&text=Este%20m%C3%A9todo%20abarca%20el%20desarrollo,y%20la%20rapide
z%20de%20ejecuci%C3%B3n.
https://es.wikipedia.org/wiki/Desarrollo_en_cascada
https://es.wikipedia.org/wiki/Modelo_de_prototipos
https://www.obsbusiness.school/blog/caracteristicas-y-fases-del-modeloincremental
https://www.obsbusiness.school/blog/caracteristicas-y-fases-del-modeloincremental#:~:text=El%20modelo%20incremental%20de%20gesti%C3%B3n,por
%20el%20cliente%20o%20destinatario.
Descargar