Software">
Nothing Special   »   [go: up one dir, main page]

Metodología de Cascada

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 8

Resumen

El presente trabajo expone una revisión teórica, sustentada en un enfoque descriptivo, de un


modelo empleado en la ingeniería de software, el cual nos sirve como herramienta para mejorar
los procesos organizacionales. Dicho modelo es el modelo de cascada o denominado tradicional.
Metodológicamente, se realizó una revisión de artículos académicos junto a algunos libros y
publicaciones, tanto en inglés como en español, que abordan temáticas relacionadas con el
manejo de dichos modelos para el desarrollo de software. Los resultados obtenidos se presentan
en cinco capítulos, los cuales abordan tres objetivos específicos: conocer la historia de los
modelos y sus principales características; conocer las técnicas que se utilizan en cada
uno de los modelos mencionados; identificar el éxito que ha tenido al momento de
implementar software en cada uno de los modelos; igualmente se hace una comparación con el fin
de determinar la eficiencia de los modelos, sus límites y ventajas. Los resultados demuestran que
la forma de evaluar determina la calidad del software.

Introducción
Actualmente, las empresas demandan sistemas de información lo suficientemente
robustos que soporten los procesos misionales de las mismas, permitiéndole satisfacer las
necesidades de sus clientes. Para ello es necesario que los proveedores de dicha solución
tecnológica logren canalizar todos sus requerimientos y desarrollen un software ajustado a sus
necesidades, cumpliendo oportunamente los tiempos de entrega del producto. Sin embargo, la
productividad en el desarrollo de software puede llegar a ser difícil de evaluar y atacar, ya que el
desarrollo de software es una labor creativa que depende en su mayoría de las personas, de
sus habilidades, conocimientos y metodologías. La mayoría de costos de las empresas que se
dedican a esta actividad, están en la mano de obra tan específica que requieren, es por esto que la
mejora de la productividad de sus ingenieros es de gran valor, pues sus ingresos se estiman en
parte por hora/hombre. Por lo anterior resulta importante encontrar una metodología que, sin
sacrificar el alcance funcional y tecnológico de los productos de software, su calidad y el
compromiso de entrega al cliente, permita optimizar los costos de producción (Pardini, 2018)

Actualmente, existen diferentes metodologías que permiten llevar a cabo esta ardua labor de
desarrollo de software

Las más importantes son: entre las más reconocidas figuran la metodología en cascada y la
metodología ágil. La primera sigue un proceso lineal y secuencial, donde una vez se completa una
de las etapas, el equipo de desarrollo continúa con la etapa siguiente. El equipo no puede
devolverse a una etapa anterior a menos que reinicie el proceso. La metodología ágil, en lugar de
segmentar los proyectos por etapas los aborda en su conjunto, logrando manejarlos de manera
más fluida, centrándose en la colaboración y funcionalidad cruzada.

Históricamente, el modelo en cascada ha estado asociado al éxito en procesos de


desarrollo de sistemas altamente complejos, pues destaca por su utilidad a la hora de establecer
compromisos contractuales de tiempo de entrega de un producto de software y el alto grado de
control del alcance funcional que tendrá el producto de software construido.
Orígenes de la metodología de cascada
La ingeniería de software se centra en aplicar enfoques de manera sistemática para la solución de
problemas en distintas áreas, lo que implica un grado de disciplina y de comprobación
cuantificable, aplicado al desarrollo de software, a su operación, su mantenimiento y sus
mejoras. En relación con el diseño en cascada, se debe decir que sus orígenes se remontan al año
de 1970 cuando el ingeniero Winston W. Royce propone una metodología la cual pretendía dar
seguimiento al desarrollo de un software, sin embargo, la idea era detectar los posibles errores
que se presentaban en el diseño, dicho de una manera más científica es “La disciplina tecnológica
y de gestión que concierne a la producción y el mantenimiento sistemático de productos software
desarrollados y modificados dentro de unos plazos estipulados y costes estimados”

Actualmente, existen un gran número de enfoques y métodos que se mezclan para llegar a los
objetivos trazados, ya sea por las organizaciones en general o para un área en especial, la
tendencia a evolucionado de una manera acelerada en los últimos 20 años, tanto en el desarrollo
de hardware como de software, integrando un gran número de herramientas físicas, virtuales y
humanas que configuran un entramado en el cual la información se convierte en el elemento
vital para su correcto funcionamiento, así mismo, cabe resaltar que dicha metodología
es denominada clásica y tiene una tendencia a la planificación, luego mencionan que esta
planeación se da con único fin de alcanzar resultados predecibles dado que “La experiencia
ha mostrado que, como consecuencia de las características del software, los resultados de los
procesos no son siempre predecibles y, sobre todo, es difícil predecir desde el comienzo del
proyecto cada resultado”.

Lo anterior permite ver una evolución corta en el tiempo, pero amplia en alcances pues sólo fue
hasta 1980 que se logró hacer una revisión de las ideas expuestas; igualmente, como sucede en la
ingeniería de sistemas en general, han existido avances relevantes, al tiempo que las nuevas
tecnologías siguen avanzando rápidamente, lo que hace que los conceptos también se impulsen y
se trasformen para explicarse y poder ser aplicados a las necesidades organizacionales.

Características de la modelo cascada


La principal característica del modelo de cascada es que sigue una secuencia lineal, esto permite
identificar unas etapas específicas a las cuales se les debe dar cumplimiento en orden, a medida
tal que se van implementando las adecuaciones pertinentes y las pruebas para mitigar los
errores que se puedan presentar, hay que recordar que es un procesos sistémico, analítico,
disciplinado y técnico para el desarrollo y mantenimiento de softwares, esto implica un
trabajo amplio y enfatizado en la solución de las problemáticas particulares que se
hayan detectado al momento de empezar a desarrollar el software, Dicho proceso se
representa a continuación de manera gráfica, con el fin de exponer de qué se trata y así dar cuenta
de sus características
Cada uno de esos procesos tiene un objetivo específico que son:
Ingeniería y análisis del sistema: todo comienza al establecer qué requisitos tiene el sistema. Para
terminar con la asignación de funciones al software.

Análisis de los requisitos del software: En esta fase se analizan las necesidades de los usuarios
finales del software para determinar qué objetivos debe cubrir. De esta fase surge una memoria
llamada SRD (documento de especificación de requisitos), que contiene la especificación completa
de lo que debe hacer el sistema sin entrar en detalles internos.

Es importante señalar que en esta etapa se debe consensuar todo lo que se requiere del sistema y
será aquello lo que seguirá en las siguientes etapas, no pudiéndose requerir nuevos resultados a
mitad del proceso de elaboración del software de una manera.

Diseño del sistema: Descompone y organiza el sistema en elementos que puedan elaborarse por
separado, aprovechando las ventajas del desarrollo en equipo. Como resultado surge el SDD
(Descripción del diseño del software), que contiene la descripción de la estructura
relacional global del sistema y la especificación de lo que debe hacer cada una de sus partes, así
como la manera en que se combinan unas con otras.

Codificación: Es la fase en donde se implementa el código fuente, haciendo uso de prototipos, así
como de pruebas y ensayos para corregir errores. Dependiendo del lenguaje de programación
y su versión se crean las bibliotecas y componentes reutilizables dentro del mismo
proyecto para hacer que la programación sea un proceso mucho más rápido.

Prueba: Los elementos, ya programados, se ensamblan para componer el sistema y se comprueba


que funciona correctamente. Se buscan sistemáticamente y se corrigen todos los errores antes de
ser entregado al usuario final.

Mantenimiento: Una de las etapas más críticas, ya que se destina un 75 % de los recursos, es el
mantenimiento del software ya que al utilizarlo como usuario final puede ser que no cumpla
con todas nuestras expectativas.

Ese sería el ciclo de vida del software a partir de un diseño implementado desde el modelo de
cascada, como se puede ver es de manera lineal, tiene una estructura rígida, la cual aporta como
ventaja el seguimiento sistemático de la información, en donde la cuantificación del proceso se
encuentra permanentemente relacionada con el desarrollo del programa.

VENTAJAS
-Realiza un buen funcionamiento en equipos débiles y productos maduros, por loque 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.

Técnicas para la administración e implementación y su impacto.


La metodología de cascada presenta un número limitado de técnicas, las cuales no se pueden
integrar en su totalidad; sin embargo, es preciso mencionar que su estructura rígida si permite una
comunicación más directa, lo que posibilita prestar atención a un sólo punto por momento, hay
que tener en cuenta que el modelo cascado es el primer modelo que existió para el diseño
desarrollo e implantación de software al ser una técnica lineal. A riesgo de reiterar lo descrito
anteriormente, se enfatiza en la técnica lineal tal como la menciona Hirsch, (2018) cuando dice
que en el proceso de establecer qué se requiere para un proyecto es necesario
determinar los tiempos de implementación de fases, a fin de alcanzar una predicción
confiable de posibles problemas que deban corregirse, para este autor: Una vez él se establecen
los requisitos, el siguiente paso se mueve hacia la fase de diseño y planificación arquitectónica
en donde la infraestructura técnica se produce en forma de diagramas o modelos. Estos traen a la
superficie el potencial y los problemas que el proyecto puede enfrentar a medida que avanza y
proporciona una hoja de ruta viable para que los desarrolladores puedan implementar.

Así pues, las técnicas utilizadas a partir del modelo de cascada son específicas, en cada uno de
los procesos se puede implementar una técnica diferente. No obstante, es complicado
utilizar diferentes técnicas en los procesos, puesto que no aplican de ninguna manera.
Igualmente, se puede decir que dichas técnicas tienen una rigurosidad alta al momento de
evaluar cada proceso por separado. La metodología permite evidenciar las problemáticas
que se puedan presentar.

El impacto del desarrollo de esta modalidad es intenso, aunque no muy alto, es decir, se puede
mejorar las condiciones, siempre y cuando esté dentro de la estructura de desarrollo
por etapas y cumpliendo los objetivos que se planteen en cada una de ellas

Casos de éxito en el Modelo de Cascada


Dado que existen limitantes para la implementación de este modelo, sobre todo en la poca y
mala comunicación entre los equipos de trabajo y la indisciplina de los
desarrolladores, que en muchos casos acarrean grandes costos a la organización, se ha podido
establecer que son amplios los casos de fracaso o de reestructuración del software, lo
que conlleva a un estado de éxito pobre, “en muchos casos las empresas llegan a destinar hasta
un 60% del presupuesto en cuestiones de mantenimiento y correcciones”

Lo dicho ya da un punto de partida sobre la evaluación del éxito en los modelos


tradicionales. Además, un autor sostiene que en más de 200 casos registrados en
empresas pequeñas, mediana y grandes fue posible encontrar que en la producción de software
“se utilizan metodologías ágiles que proveen de una revisión continua a cada parte del proyecto.
Sin embargo, esto no es suficiente para minimizar en gran parte la cantidad de errores
relacionados al diseño de las interfaces”

Así mismo, un estudio realizado por el Standish Group, enfocado en analizar el


desempeño de proyectos de software en empresas de todo el mundo, demuestra que la modelo
cascada llegó a presentar en 2013 “un desempeño bajo ya que únicamente el14% de los proyectos
llevados con esta metodología tuvieron resultados satisfactorios sin dificultad en el proceso” , lo
que pone de relieve las dificultades que se presentan al momento de desarrollar un software
con un modelo tan rígido como lo es el de cascadas.
CONCLUSIONES
- La ingeniería de sistemas y el diseño de software han evolucionado paulatinamente, de manera
constante y conjuntamente, uno no es sin el otro, tanto el hardware cambia, inmediatamente el
software hace lo correspondiente y viceversa, esto con el objetivo de satisfacer las necesidades
tecnológicas de las empresas y de la sociedad en general

- Al interior de las organizaciones se ha hecho necesario la implementación de software que


mejoren los procesos, ya sean logísticos, contables, administrativos etc., sin embargo, para
poder diseñar un software se debe tener en cuenta las necesidades del área, su interacción con
las otras dependencias y recolectar la mayor información posible.

- El desarrollo de software comprende diferentes momentos, como lo es el diseño, el desarrollo, la


implementación y la evaluación; sin embargo, también existen otros modelos de desarrollo
los que pueden contar o no con dichas etapas, o las contemplan con algunas variaciones.

- El modelo de cascada fue el primero que se desarrolló, sin embargo, cuenta con
múltiples limitaciones, esto debido a que es un sistema que se puede llamar
rudimentario, que utiliza la fuerza para obtener resultado, un ejemplo es la rigidez de sus
operaciones, la poca integración en los procesos, la poca coordinación de las
herramientas y la precaria evaluación de estos, lo que ha hecho que se generen fallas y perdidas
por el proceso de rediseño.

EJEMPLO DE LA METODOLOGÍA CASCADA RESPECTO A NUESTRO PROYECTO


Requisitos del software
Desarrollar un Sistema de Información para Gestionar las ventas y stock de una empresa, pero
debemos estar convencidos que merece el esfuerzo y que servirá no solo para el correcto
funcionamiento de la empresa seleccionada, si no para la satisfacción de mis clientes y usuario en
general, y que además sirva en un futuro no muy lejano como una fuente seria y confiable para
arrojar estadísticas a nivel de la localidad.

Diseño
Descompone y organiza el sistema en elementos que puedan elaborarse por
separado, aprovechando las ventajas del desarrollo en equipo. Se describirá el diseño en
profundidad de la estructura interna de la aplicación con los patrones utilizados, haciendo
hincapié en el patrón modelo, vista y controlador

El diseño junto con la implementación constituye la fase en la que a partir de la especificación de


sistema se obtiene un sistema ejecutable. En concreto el diseño permite obtener la
estructura de un software que realiza la especificación.

Implementación
Ahora abordaremos el diseño final que ven los usuarios de la aplicación, es decir, la capa vista. Se
realiza una introducción a las pantallas con las que los usuarios interactúan. En esta
implementación son necesarios dos archivos por cada página de las que consta
nuestra aplicación.

En primer lugar, hace falta una clase .java que es la que define el comportamiento de la página al
interactuar con ella. En segundo lugar, es necesaria una plantilla, muy similar a un
documento HTML, que sirven como referencias a los valores de variables, funciones y otros
elementos definidos en la clase java.

A excepción de los datos almacenados en la base de datos, todas las cadenas de texto de la
aplicación están almacenadas en estos ficheros de configuración. Por otro lado, todas las
páginas están compuestas de un la yout, que es un componente creado para que todas las páginas
usen una misma apariencia general y para que toda la aplicación tenga dos partes comunes, que
son la cabecera con el menú principal de la tienda y el footer, con información relevante de
nuestra tienda.

Verificación
Es necesario evaluar los objetivos y propósitos que se persiguen. A partir de ello, se define el tipo
de datos o información que se requiere.

Asegúrate de que todas las columnas estén claramente descritas y de que haya suficiente espacio
para registrar los datos. Esta herramienta busca quitar problemas y que tengamos un formato
claro y fácil de usar. Así que no hacen falta florituras ni colorines, mientras más básico, mejor.

Constantemente se debe buscar mejorar los formatos de registro de información para que no
pierdan su utilidad.

El encargado o encargada de recopilar los datos, debe tomarse su tiempo, a veces hay procesos
que son un poco repetitivos.

Instalación y mantenimiento
Se tiene que cuidar que los programas específicos que utiliza la tienda cumplan los objetivos
propuestos. Después de satisfechas las fases de implementación y verificación, lo próximo en
desarrollo de software será adoptar medidas de diferentes tipos para comprobar su rendimiento y
posibles mejoras.

Mantenimiento preventivo: revisar el software para evitar posibles problemas (de


seguridad, operatividad, etc.) que pudieran surgir en el futuro.

Mantenimiento predictivo: nos servirá para saber en qué momento se va a producir un fallo o
congestión, afectando a su desempeño diario en la tienda.

Mantenimiento correctivo: revisión y corrección de problemas de seguridad, estabilidad, errores


en el código, falta de rendimiento a causa del hardware, etc.
Mantenimiento adaptativo: supongamos que se va a cambiar el sistema operativo
(Windows a iOS), o el tipo de hardware (pasamos de PC a Mac), para que siga funcionando
óptimamente la aplicación que utilizamos.

También podría gustarte