lunes, 5 de noviembre de 2018

PROPÓSITO DE ESTE BLOG

La finalidad de este blog es que encuentras la mayor cantidad de información acerca del método de cascada el cual consiste en una serie de etapas que se relacionan con las áreas del conocimiento del software al igual de como es que intervienen estas etapas en los roles de un ingeniero en software.

¿Que es el modelo de cascada?


El modelo en cascada es un proceso de desarrollo secuencial, en el que el desarrollo de software se concibe como  un conjunto de etapas que  se ejecutan una tras otra. Se le denomina así por las posiciones que ocupan las diferentes fases que componen el proyecto, colocadas una encima de otra, y siguiendo un flujo de ejecución de arriba hacia abajo, como una cascada. El modelo de cascada fue uno de los primeros modelos de ciclo de vida que formalizó un conjunto de procesos de desarrollo de software. Este modelo describe un orden secuencial en la ejecución de los procesos asociados..

Las fases del modelo en cascada


El modelo de desarrollo en cascada se originó en la industria y la construcción, donde los cambios a posteriormente son caros y difíciles de implementar. Cuando estás creando un producto material, realizar cambios en lo ya construido es mucho más difícil que en un programa informático. En el mundo del software, todavía no se habían implantado otras metodologías de desarrollo por lo que se adaptó el modelo en cascada que se utilizaba en otros sectores. 

Requisitos del software
En esta fase se hace un análisis de las necesidades del cliente para determinar las características del software a desarrollar, y se especifica todo lo que debe hacer el sistema sin entrar en detalles técnicos. Hay que ser especialmente cuidadoso en esta primera fase, ya que en este modelo no se pueden añadir nuevos requisitos en mitad del proceso de desarrollo.
Por lo tanto, esta es la etapa en la que se lleva a cabo una descripción de los requisitos del software, y se acuerda entre el cliente y la empresa desarrolladora lo que el producto deberá hacer. Disponer de una especificación de los requisitos permite estimar de forma rigurosa las necesidades del software antes de su diseño. Además, permite tener una base a partir de la cual estimar el coste del producto, los riesgos y los plazos.
En el documento en el que se especifican los requisitos, se establece una lista de los requerimientos acordados. Los desarrolladores deben comprender de forma clara el producto que van a desarrollar. Esto se consigue teniendo una lista detallada de los requisitos, y con una comunicación fluida con el cliente hasta que termine el el tiempo de desarrollo.
Diseño
En esta etapa se describe la estructura interna del software, y las relaciones entre las entidades que lo componen.
Descompone y organiza el sistema en elementos que puedan elaborarse por separado, aprovechando las ventajas del desarrollo en equipo. Como resultado surge el SDD (Documento de 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.
Es conveniente distinguir entre diseño de alto nivel o arquitectónico y diseño detallado. El primero de ellos tiene como objetivo definir la estructura de la solución (una vez que la fase de análisis ha descrito el problema) identificando grandes módulos (conjuntos de funciones que van a estar asociadas) y sus relaciones. Con ello se define la arquitectura de la solución elegida. El segundo define los algoritmos empleados y la organización del código para comenzar la implementación.
Implementación
En esta fase se programan los requisitos especificados haciendo uso de las estructuras de datos diseñadas en la fase anterior.La programación es el proceso que lleva de la formulación de un problema de computación, a un programa que se ejecute produciendo los pasos necesarios para resolver dicho problema.
Al programar, tenemos que realizar actividades como el análisis de las condiciones, la creación de algoritmos,  y la implementación de éstos en un lenguaje de programación específico.
Un algoritmo es un conjunto de instrucciones o reglas bien definidas y ordenadas que permiten llevar a cabo una actividad mediante pasos sucesivos.

Verificación
Como su propio nombre indica, una vez se termina la fase de implementación se verifica que todos los componentes del sistema funcionen correctamente y cumplen con los requisitos. El objetivo de las pruebas es el de obtener información de la calidad del software, y sirven para: encontrar defectos o bugs, aumentar la calidad del software, refinar el código previamente escrito sin miedo a romperlo o introducir nuevos bugs, etc.
Instalación y mantenimiento 
Una vez se han desarrollado todas las funcionalidades del software y se ha comprobado que funcionan correctamente, se inicia la fase de instalación y mantenimiento. Se instala la aplicación en el sistema y se comprueba que funcione correctamente en el entorno en que se va a utilizar.
A partir de ahora hay que asegurarse de que el software funcione y hay que destinar recursos a mantenerlo. El mantenimiento del software consiste en la modificación del producto después de haber sido entregado al cliente, ya sea para corregir errores o para mejorar el rendimiento o las características. El propósito de esta fase es mantener el valor del software a través del tiempo. Esto puede hacerse añadiendo nuevos requisitos, corrigiendo errores, renovando el aspecto visual, mejorando la eficiencia o añadiendo nueva tecnología. El periodo de mantenimiento puede durar años, por lo que es una fase clave del modelo en cascada.
Para llevar a cabo correctamente la fase de mantenimiento, se necesita trazar un plan de antemano que nos prepare para todos los escenarios que puedan producirse durante esta fase. Para evitar futuros conflictos con el cliente, en el plan hay que especificar cómo los usuarios solicitarán las modificaciones o la corrección de errores, hacer una estimación del coste de la modificación de funcionalidades o corrección de errores, quién se encargará del mantenimiento, durante cuanto tiempo se dará soporte al software, etc.

Explicación y Ejemplo de la aplicación del modelo de cascada


Relación entre el Modelo de cascada y Las Áreas del conocimiento del software

REQUERIMIENTOS DEL SOFTWARE

Fundamentos de los requerimientos de software: es la encargada de describir la importancia de los requerimientos cuantificables y también es la encargada de distinguir entre sistemas y requerimientos software
Requerimientos del proceso: describe los modelos de proceso actores de proceso, procesos de soporte y gestión, y la calidad en cuanto a la mejora del proceso.
Captura de requisitos: en donde vienen los requerimientos  y como se centra  el ingeniero de software en cómo puede obtenerlos,  todo esto engloba lo que son las técnicas de capturas.
Especificación de requerimientos: se refiere a la producción de un documento o su equivalente electrónico, que puede ser sistemáticamente revisado evaluado, y aprobado.

DISEÑO DEL SOFTWARE

Fundamentos del diseño del software: son conceptos generales del software, el contexto en el que se está diseñando, o el proceso que se está llevando a cabo para su creación.
Temas claves en el diseño del software: el encargado de la distribución de componentes, control y manejo de  eventos  el manejo de errores y la tolerancia en los fallos.
Calidad evaluación de las del diseño del software: centra en los aspectos específicos del diseño, análisis de calidad  y técnicas de evaluación y medición.

CONSTRUCCIÓN DEL SOFTWARE
Fundamentos de la construcción en software: se trata de los principios básicos de la construcción estos son  minimización de la complejidad, anticipación al cambio, y la construcción y verificación.
Gestión de la construcción: planeación de la construcción y la medición de la construcción.
Consideraciones prácticas: los temas son los diseños de la construcción de lenguajes por medio de la codificación y las pruebas de construcción.

PRUEBAS DE SOFTWARE
Fundamentos de la pruebas de software: se presenta la terminología relacionada con las pruebas, después se presentaba los aspectos fundamentales de las pruebas.
Niveles de pruebas: están divididos entre los objetos de la prueba y los objetos de las pruebas.
Técnicas para las pruebas: incluye a las pruebas basadas en la intuición del probador/a y la experiencia. El segundo grupo comprende las técnicas basadas en la especificación, seguido de técnicas basadas en el código.

MANTENIMIENTO DEL SOFTWARE
Fundamentos del mantenimiento  del software: definiciones y terminologías sobre la naturaleza de la necesidad de darle mantenimiento al software, los constes y su evolución.
Temas claves del manteniendo del software: estos comprenden los temas técnicos de gestión, especificación y conste el mantenimientos y la medición del mantenimiento.
Proceso de manteniendo: constituye a la compresión del software, la resignación y la ingeniera a la inversa

PROCESO DE INGENIERÍA DEL SOFTWARE

Procesos de implementación y cambios: se trata de la infraestructura del proceso, ciclo de gestión del proceso software, modelos para el proceso de implementación y cambios y consideraciones prácticas.
Definición de procesos: engloba a los modelos del siclo de la vida del software, procesos del ciclo de vida del software, notaciones para su adaptación de procesos de automatización.
Evolución de los procesos y mediaciones de proceso y productos: consiste más que nada en la evaluación de los procesos y sus métodos a la hora de evaluar y la medición cubre genéricamente la medición de producto y proceso.

HERRAMIENTAS Y MÉTODO EN LA INGENIERÍA DEL SOFTWARE

Herramientas de la ingeniera del software: Utiliza la misma estructura que guía en sí misma, con un tema por cada una de las otras nueve AC de cuestiones carias sobre herramienta o técnicas de integración de herramientas o qué tipo de herramientas son mejores para una aplicación.
Métodos de ingeniería del software: se divide en cuatro subsecciones métodos heurísticos que tratan aproximaciones informales, métodos formales basados en aproximaciones matemáticas, métodos de prototipo tratando varias formas de prototipado.
 CALIDAD DEL SOFTWARE

Fundamentos de la calidad de software: como la ética y cultura de la ingeniería en software, valor y coste de la calidad, modelos y características de la calidad y la mejore de la calidad.
Procesos de gestión de la calidad del software: Consiste en el aseguramientos de la calidad, verificación y validación, y revisión y auditorias por ultimo existe los temas acerca de la caracterización de defectos, técnicas de gestión de la calidad del software, y medición de la calidad del software.




Roles que intervienen en cada fase

Requisitos
Al papel que se juega primero es del analista del proyecto, como es que se debe de contemplar desde antes el proyecto, cuales serán sus costos, cuanto se cobrara por el, ademas de que se debe de contemplar cuanto sera el personal y el tiempo que se necesitara para sacar el proyecto adelante sin ningún tipo de problemas, es importante que en esta etapa se haga un rol mas administrativo que en los demás pues en su gran mayoría consiste en calcular costos.

Diseño
Como la palabra lo dice el ingeniero en software tiene que hacer el rol de diseñador donde deberá de describir la estructura del software descomponiendo la y volviéndola a armar para crear una mejor visión de que es lo que se entregara como producto final.

Implementacion
Durante esta fase se trabaja con un rol técnico pues se efectúa todo lo que se diseño previamente para llevarlo al mundo real y poder dar avances del producto o proyecto se podría decir que este es uno de los roles mas importantes que debe de aprender a manejar un Ingeniero en software.

Verificación
Se denomina como testeador o beta tester a este rol pues consiste en probar el software bajo todas los inconveniente o situaciones a las que se puede enfrentar así como medir su eficacia y eficiencia.

Instalación y mantenimiento
El ingeniero debe de estar comprometido con que dará mantenimiento al software una vez después de su entre claramente si esto se estableció en contrato en la fase uno, un rol que suele dejar de hacerse debido a que no siempre el mantenimiento se pagado sino que ya esta contemplado en el presupuesto.





Referencias

https://openclassrooms.com/en/courses/4309151-gestiona-tu-proyecto-de-desarrollo/4538221-en-que-consiste-el-modelo-en-cascada

https://librosweb.es/libro/tdd/capitulo_1/modelo_en_cascada.html

Libro:Ingeneria en software volumen I Capitulo 4 Pag 127