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

Metodología Cascada

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

UNIVERSIDAD NACIONAL JOSÉ

FAUSTINO S ÁNCHEZ CARRI ÓN

CURSO: Complemento Especializado


CICLO: V
TEMA: Metodología de desarrollo en Cascada
PROFESOR: Flores Flores Ronald Demetrio
ALUMNOS: - Santos Rojas, Rodrigo
-Rodríguez Muñoz, Carlos
-Ramos Pomar, Jeysson
.

1. 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.

2. 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.
3. 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.

4. Características del 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
Fuente: Rojas y Boucchechter (2005)

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.
5. 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.

6. 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.
7. 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.

8. Casos de éxito en el Modelo de Cascada

Dado que existen limitantes para la implementación de este modelo, sobretodo 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 el
14% 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.

9. 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 layout, 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