Este documento describe varios modelos de procesos de desarrollo de software, incluyendo el modelo en cascada, el modelo V, los modelos basados en prototipos y los métodos formales. El modelo en cascada sigue un enfoque secuencial de análisis, diseño, codificación, prueba y mantenimiento. El modelo V es una evolución del modelo en cascada que agrega pruebas después de cada etapa. Los modelos basados en prototipos involucran la creación y evaluación de prototipos tempranos. Finalmente, los métodos formales util
UML es un lenguaje gráfico para visualizar, especificar, construir y documentar sistemas. Se utiliza para definir un sistema, detallar sus artefactos y documentar y construir el sistema. Ofrece 14 tipos de diagramas que representan la estructura, comportamiento e interacciones de un sistema. Los diagramas más utilizados son los diagramas de clases y componentes.
El documento proporciona una introducción al Team Software Process (TSP), describiendo que es una metodología creada por Watts Humphrey para guiar el desarrollo y mejora de software a través de un enfoque basado en procesos. Explica que TSP se compone de dos componentes: la formación del equipo y la gestión del equipo. Además, describe los principales roles dentro de los equipos TSP y los pasos que componen el ciclo TSP para el desarrollo de software.
Este documento describe las características y generalidades de Microsoft SQL Server. Explica que SQL Server es un sistema de gestión de bases de datos relacionales producido por Microsoft que permite almacenar y consultar datos de forma segura e integra mediante mecanismos como bloqueos, concurrencia optimista y recuperación flexible. También resalta las ventajas actuales de SQL Server como su capacidad en la nube y mantener los datos organizados y accesibles de manera rentable.
El documento describe el estándar ISO/IEC 12207, el cual especifica los procesos del ciclo de vida de desarrollo de software. Establece tres tipos de procesos: primarios (adquisición, suministro, desarrollo, operación y mantenimiento), de soporte (documentación, gestión de configuraciones, etc.), y organizacionales (gestión, infraestructura, mejora y formación). El estándar describe la arquitectura de los procesos pero no los detalles de su implementación, siendo independiente de tecnologías y metod
Este documento describe varias metodologías y herramientas para el análisis y diseño de sistemas de información. Explica el Lenguaje Unificado de Modelado (UML), incluyendo los diferentes tipos de diagramas que proporciona. También describe la metodología del ciclo de vida de un sistema propuesta por James Martin, la cual consta de cuatro fases: planificación de requisitos, diseño, desarrollo e implementación.
La gestión de la calidad en proyectos de software implica establecer un plan de calidad y estándares para asegurar que los procesos y productos cumplen con los requisitos de calidad. Esto incluye definir procesos de aseguramiento de calidad, evaluar objetivamente la conformidad con los estándares, e identificar y comunicar problemas para mejorar continuamente.
Esta metodología para el diseño conceptual de almacenes de datos consta de tres fases: 1) examinar el esquema ER de la base de datos operacional para generar esquemas candidatos multidimensionales, 2) recoger los requisitos de los usuarios mediante entrevistas, y 3) contrastar la información de los usuarios con los esquemas candidatos para generar la mejor solución que satisfaga los requisitos de los usuarios basada en los datos operacionales.
Este documento presenta una introducción al modelo CMMI (Capability Maturity Model Integration). Explica que CMMI es un modelo de evaluación de procesos que provee elementos para mejorar procesos de ingeniería de software y desarrollo organizacional. Describe los niveles de madurez, áreas de proceso, y beneficios de usar CMMI. Finalmente, presenta una tabla que resume el nivel de madurez actual de las áreas de proceso de una organización.
UML es un lenguaje gráfico para visualizar, especificar, construir y documentar sistemas. Se utiliza para definir un sistema, detallar sus artefactos y documentar y construir el sistema. Ofrece 14 tipos de diagramas que representan la estructura, comportamiento e interacciones de un sistema. Los diagramas más utilizados son los diagramas de clases y componentes.
El documento proporciona una introducción al Team Software Process (TSP), describiendo que es una metodología creada por Watts Humphrey para guiar el desarrollo y mejora de software a través de un enfoque basado en procesos. Explica que TSP se compone de dos componentes: la formación del equipo y la gestión del equipo. Además, describe los principales roles dentro de los equipos TSP y los pasos que componen el ciclo TSP para el desarrollo de software.
Este documento describe las características y generalidades de Microsoft SQL Server. Explica que SQL Server es un sistema de gestión de bases de datos relacionales producido por Microsoft que permite almacenar y consultar datos de forma segura e integra mediante mecanismos como bloqueos, concurrencia optimista y recuperación flexible. También resalta las ventajas actuales de SQL Server como su capacidad en la nube y mantener los datos organizados y accesibles de manera rentable.
El documento describe el estándar ISO/IEC 12207, el cual especifica los procesos del ciclo de vida de desarrollo de software. Establece tres tipos de procesos: primarios (adquisición, suministro, desarrollo, operación y mantenimiento), de soporte (documentación, gestión de configuraciones, etc.), y organizacionales (gestión, infraestructura, mejora y formación). El estándar describe la arquitectura de los procesos pero no los detalles de su implementación, siendo independiente de tecnologías y metod
Este documento describe varias metodologías y herramientas para el análisis y diseño de sistemas de información. Explica el Lenguaje Unificado de Modelado (UML), incluyendo los diferentes tipos de diagramas que proporciona. También describe la metodología del ciclo de vida de un sistema propuesta por James Martin, la cual consta de cuatro fases: planificación de requisitos, diseño, desarrollo e implementación.
La gestión de la calidad en proyectos de software implica establecer un plan de calidad y estándares para asegurar que los procesos y productos cumplen con los requisitos de calidad. Esto incluye definir procesos de aseguramiento de calidad, evaluar objetivamente la conformidad con los estándares, e identificar y comunicar problemas para mejorar continuamente.
Esta metodología para el diseño conceptual de almacenes de datos consta de tres fases: 1) examinar el esquema ER de la base de datos operacional para generar esquemas candidatos multidimensionales, 2) recoger los requisitos de los usuarios mediante entrevistas, y 3) contrastar la información de los usuarios con los esquemas candidatos para generar la mejor solución que satisfaga los requisitos de los usuarios basada en los datos operacionales.
Este documento presenta una introducción al modelo CMMI (Capability Maturity Model Integration). Explica que CMMI es un modelo de evaluación de procesos que provee elementos para mejorar procesos de ingeniería de software y desarrollo organizacional. Describe los niveles de madurez, áreas de proceso, y beneficios de usar CMMI. Finalmente, presenta una tabla que resume el nivel de madurez actual de las áreas de proceso de una organización.
Este documento presenta 25 estándares de calidad de software según el IEEE. Algunos de los estándares cubren temas como la gestión de configuración, planes de aseguramiento de calidad, medición de fiabilidad, documentación de pruebas, procesos del ciclo de vida, requisitos de calidad y pruebas, gestión de riesgos, métricas de calidad, clasificación de anomalías, y verificación y validación de procesos y software. El documento proporciona una breve descripción de cada estándar.
UML es un lenguaje gráfico para modelar el desarrollo de software que facilita la comunicación entre los involucrados en un proyecto. Los diagramas de clases son diagramas estáticos en UML que muestran las clases, atributos y relaciones de un sistema, y se crean mediante la adición de clases y relaciones entre ellas.
El documento describe diferentes estructuras de datos como pilas, colas y listas enlazadas. Explica que una pila es una estructura LIFO donde los elementos se agregan y eliminan de un extremo, mientras que una cola es una estructura FIFO donde los elementos se agregan a un extremo y eliminan del otro. También describe listas enlazadas y sus operaciones básicas como recorrer, insertar y eliminar nodos. Incluye ejemplos de código en C para implementar una lista enlazada genérica.
Este documento describe las herramientas CASE (Computer Aided Software Engineering). Define las herramientas CASE como un conjunto de programas y ayudas que asisten a los analistas de software y desarrolladores durante todas las etapas del ciclo de vida del desarrollo de software. Explica los beneficios de las herramientas CASE, como aumentar la velocidad de desarrollo de sistemas y permitir que las compañías desarrollen software de mejor calidad para satisfacer las necesidades cambiantes del negocio. También proporciona algunos ejemplos de func
Este documento proporciona una introducción a la programación orientada a objetos. Explica que la POO es un paradigma que permite modelar problemas del mundo real mediante la abstracción de objetos, sus atributos y métodos. Define conceptos clave como clase, objeto, encapsulamiento, herencia y polimorfismo. Finalmente, muestra ejemplos de cómo aplicar estos conceptos en Visual Basic .NET.
Una pila es una estructura de datos que sigue el principio LIFO (último en entrar, primero en salir), donde los elementos se agregan y eliminan de la parte superior de la pila. Existen dos formas de implementar una pila en C++: mediante un vector estático, que limita el tamaño máximo, o mediante nodos dinámicos enlazados, que permite un tamaño variable. Las operaciones básicas de una pila son crear, apilar, desapilar y consultar la cima.
Librerias Básicas y sus Funciones Lenguaje de Programación CCristian Maza
Este documento describe las principales bibliotecas de C++ y sus funciones. Incluye iostream para entrada/salida, math para operaciones matemáticas, stdio para entrada/salida estándar, stdlib para gestión de memoria y procesos, y string para manipulación de cadenas. Cada biblioteca define funciones clave como cout, pow, printf, free y strcpy.
Clasificación de las metodologías de desarrollo de softwareElvisAR
- Las metodologías de análisis y diseño estructurado se utilizan con herramientas CASE para incrementar la productividad en el desarrollo e implementación de sistemas de información, incluyendo metodologías como Kendall & Kendall.
- Las metodologías orientadas a procesos se centran en especificar y descomponer la funcionalidad del sistema utilizando diagramas de flujo de datos y especificaciones de procesos.
- Los diagramas de flujo de datos representan cómo se mueven y transforman los datos e incluyen procesos
Proceso unificado de desarrollo de softwareturlahackers
En este trabajo se observara el manejo y desarrollo del Proceso Unificado de Software, brindando los medios que puedan ser favorables para los usuarios.
Los 6 casos de uso describen los principales procesos del sistema: 1) Ingreso al sistema, 2) Registro de ventas, 3) Ingresar nueva información, 4) Modificar información, 5) Cambio de clave, y 6) Consultas. Cada caso de uso incluye actores, flujos de eventos y escenarios. Los escenarios detallan resultados exitosos y no exitosos para cada proceso.
El documento resume la metodología Team Software Process (TSP). TSP es un conjunto de procesos estructurados para dirigir el trabajo de equipos de software. El objetivo es maximizar la calidad y minimizar los costos mediante la integración de equipos independientes que planeen y registren su trabajo. TSP también ayuda a los gerentes a monitorear y motivar a sus equipos para alcanzar su máxima productividad.
La estructura de un compilador está dividida en cuatro módulos principales: el preprocesador, la compilación, el ensamblado y el enlazado. El preprocesador transforma el código fuente original en código puro. La compilación analiza el código sintáctica y semánticamente y genera código intermedio. El ensamblado convierte el código intermedio en código binario no enlazado. El enlazado produce el código binario final enlazado con librerías.
Este documento presenta las ventajas y desventajas del modelo Moprosoft para el desarrollo y mantenimiento de software. Las ventajas incluyen que está basado en normas ISO, simplifica la relación entre el modelo de procesos y la organización, cuenta con nueve procesos y es específico para el desarrollo de software. Las desventajas son que define actividades de manera muy general y que el 33% de las prácticas como administración de configuración y medición y análisis no están cubiertas.
Contenido de la Presentación
Ciclo de Vida de Sistemas de Información.
Definición
Importancia
Fases
Ejemplo de uso
Diseño de Sistemas de Información.
Técnicas
Métodos
Procedimientos
Ejemplos
El documento describe los requerimientos para un sistema de torneos de fútbol. El sistema permitirá 1) registrar equipos y jugadores, 2) planificar partidos de forma aleatoria o manual, y 3) generar tablas de posición automáticamente. Además, el sistema 4) identificará al mejor goleador y 5) publicará información del torneo en la web. El sistema tendrá una interfaz intuitiva y solo el organizador podrá realizar actualizaciones.
Este documento explica la importancia de los requerimientos en el desarrollo de software y define conceptos clave como requerimientos funcionales y no funcionales. También clasifica diferentes tipos de requerimientos y destaca que una especificación de requerimientos completa y consistente es fundamental para evitar errores costosos en el desarrollo.
Este documento explica cómo crear y usar arreglos en PSeInt. Los arreglos permiten almacenar múltiples datos del mismo tipo usando un identificador y subíndices. Para crear un arreglo en PSeInt se usa la palabra clave "Dimension" seguida del nombre e identificador entre corchetes. El documento provee ejemplos como crear arreglos con números ingresados manualmente o por el usuario, sumar elementos de arreglos, y llenar arreglos con números aleatorios.
Este documento presenta el Plan de Desarrollo de Software para el proyecto de desarrollo de un nuevo Sistema para la Gestión del Registro de Nombres de Dominio de Internet bajo ".es". Se describe el alcance, objetivos y entregables del proyecto. Se detallan las fases e iteraciones propuestas siguiendo la metodología RUP. Finalmente, se incluyen secciones sobre la organización del proyecto y la gestión del proceso de desarrollo.
PLAN DE CAPACITACIÓN PARA USUARIOS FINALESPablo Ospina
Este documento presenta un plan de capacitación para usuarios finales sobre el sistema BANCASOFT. El plan describe los pasos del proceso de capacitación, que incluyen analizar las necesidades, diseñar la enseñanza, validar el programa, aplicarlo y evaluarlo. Luego presenta la estructura del plan de capacitación, que consiste en 8 temas a cubrirse en sesiones de 1 a 2 horas con 12 participantes. El objetivo es generar capacidades en los aprendices sobre las nuevas tecnologías para mejorar su desempeño laboral.
El documento describe varias metodologías para el análisis y diseño de sistemas, incluyendo UML, RAD, RUP, el ciclo de vida de sistemas de Kendall y Kendall, y RMM. Explica las fases y actividades clave de cada metodología, como el análisis de requisitos, diseño, programación y pruebas. También define conceptos como método y metodología.
El documento describe el modelo de desarrollo en cascada, que ordena las etapas del ciclo de vida del software de forma secuencial. Siguiendo esta metodología, primero se realiza el análisis de requisitos, luego el diseño, la codificación, las pruebas y finalmente el mantenimiento. Aunque es una metodología sencilla, tiene desventajas como que es difícil establecer todos los requerimientos al inicio y no permite iteraciones entre las etapas.
Este documento presenta 25 estándares de calidad de software según el IEEE. Algunos de los estándares cubren temas como la gestión de configuración, planes de aseguramiento de calidad, medición de fiabilidad, documentación de pruebas, procesos del ciclo de vida, requisitos de calidad y pruebas, gestión de riesgos, métricas de calidad, clasificación de anomalías, y verificación y validación de procesos y software. El documento proporciona una breve descripción de cada estándar.
UML es un lenguaje gráfico para modelar el desarrollo de software que facilita la comunicación entre los involucrados en un proyecto. Los diagramas de clases son diagramas estáticos en UML que muestran las clases, atributos y relaciones de un sistema, y se crean mediante la adición de clases y relaciones entre ellas.
El documento describe diferentes estructuras de datos como pilas, colas y listas enlazadas. Explica que una pila es una estructura LIFO donde los elementos se agregan y eliminan de un extremo, mientras que una cola es una estructura FIFO donde los elementos se agregan a un extremo y eliminan del otro. También describe listas enlazadas y sus operaciones básicas como recorrer, insertar y eliminar nodos. Incluye ejemplos de código en C para implementar una lista enlazada genérica.
Este documento describe las herramientas CASE (Computer Aided Software Engineering). Define las herramientas CASE como un conjunto de programas y ayudas que asisten a los analistas de software y desarrolladores durante todas las etapas del ciclo de vida del desarrollo de software. Explica los beneficios de las herramientas CASE, como aumentar la velocidad de desarrollo de sistemas y permitir que las compañías desarrollen software de mejor calidad para satisfacer las necesidades cambiantes del negocio. También proporciona algunos ejemplos de func
Este documento proporciona una introducción a la programación orientada a objetos. Explica que la POO es un paradigma que permite modelar problemas del mundo real mediante la abstracción de objetos, sus atributos y métodos. Define conceptos clave como clase, objeto, encapsulamiento, herencia y polimorfismo. Finalmente, muestra ejemplos de cómo aplicar estos conceptos en Visual Basic .NET.
Una pila es una estructura de datos que sigue el principio LIFO (último en entrar, primero en salir), donde los elementos se agregan y eliminan de la parte superior de la pila. Existen dos formas de implementar una pila en C++: mediante un vector estático, que limita el tamaño máximo, o mediante nodos dinámicos enlazados, que permite un tamaño variable. Las operaciones básicas de una pila son crear, apilar, desapilar y consultar la cima.
Librerias Básicas y sus Funciones Lenguaje de Programación CCristian Maza
Este documento describe las principales bibliotecas de C++ y sus funciones. Incluye iostream para entrada/salida, math para operaciones matemáticas, stdio para entrada/salida estándar, stdlib para gestión de memoria y procesos, y string para manipulación de cadenas. Cada biblioteca define funciones clave como cout, pow, printf, free y strcpy.
Clasificación de las metodologías de desarrollo de softwareElvisAR
- Las metodologías de análisis y diseño estructurado se utilizan con herramientas CASE para incrementar la productividad en el desarrollo e implementación de sistemas de información, incluyendo metodologías como Kendall & Kendall.
- Las metodologías orientadas a procesos se centran en especificar y descomponer la funcionalidad del sistema utilizando diagramas de flujo de datos y especificaciones de procesos.
- Los diagramas de flujo de datos representan cómo se mueven y transforman los datos e incluyen procesos
Proceso unificado de desarrollo de softwareturlahackers
En este trabajo se observara el manejo y desarrollo del Proceso Unificado de Software, brindando los medios que puedan ser favorables para los usuarios.
Los 6 casos de uso describen los principales procesos del sistema: 1) Ingreso al sistema, 2) Registro de ventas, 3) Ingresar nueva información, 4) Modificar información, 5) Cambio de clave, y 6) Consultas. Cada caso de uso incluye actores, flujos de eventos y escenarios. Los escenarios detallan resultados exitosos y no exitosos para cada proceso.
El documento resume la metodología Team Software Process (TSP). TSP es un conjunto de procesos estructurados para dirigir el trabajo de equipos de software. El objetivo es maximizar la calidad y minimizar los costos mediante la integración de equipos independientes que planeen y registren su trabajo. TSP también ayuda a los gerentes a monitorear y motivar a sus equipos para alcanzar su máxima productividad.
La estructura de un compilador está dividida en cuatro módulos principales: el preprocesador, la compilación, el ensamblado y el enlazado. El preprocesador transforma el código fuente original en código puro. La compilación analiza el código sintáctica y semánticamente y genera código intermedio. El ensamblado convierte el código intermedio en código binario no enlazado. El enlazado produce el código binario final enlazado con librerías.
Este documento presenta las ventajas y desventajas del modelo Moprosoft para el desarrollo y mantenimiento de software. Las ventajas incluyen que está basado en normas ISO, simplifica la relación entre el modelo de procesos y la organización, cuenta con nueve procesos y es específico para el desarrollo de software. Las desventajas son que define actividades de manera muy general y que el 33% de las prácticas como administración de configuración y medición y análisis no están cubiertas.
Contenido de la Presentación
Ciclo de Vida de Sistemas de Información.
Definición
Importancia
Fases
Ejemplo de uso
Diseño de Sistemas de Información.
Técnicas
Métodos
Procedimientos
Ejemplos
El documento describe los requerimientos para un sistema de torneos de fútbol. El sistema permitirá 1) registrar equipos y jugadores, 2) planificar partidos de forma aleatoria o manual, y 3) generar tablas de posición automáticamente. Además, el sistema 4) identificará al mejor goleador y 5) publicará información del torneo en la web. El sistema tendrá una interfaz intuitiva y solo el organizador podrá realizar actualizaciones.
Este documento explica la importancia de los requerimientos en el desarrollo de software y define conceptos clave como requerimientos funcionales y no funcionales. También clasifica diferentes tipos de requerimientos y destaca que una especificación de requerimientos completa y consistente es fundamental para evitar errores costosos en el desarrollo.
Este documento explica cómo crear y usar arreglos en PSeInt. Los arreglos permiten almacenar múltiples datos del mismo tipo usando un identificador y subíndices. Para crear un arreglo en PSeInt se usa la palabra clave "Dimension" seguida del nombre e identificador entre corchetes. El documento provee ejemplos como crear arreglos con números ingresados manualmente o por el usuario, sumar elementos de arreglos, y llenar arreglos con números aleatorios.
Este documento presenta el Plan de Desarrollo de Software para el proyecto de desarrollo de un nuevo Sistema para la Gestión del Registro de Nombres de Dominio de Internet bajo ".es". Se describe el alcance, objetivos y entregables del proyecto. Se detallan las fases e iteraciones propuestas siguiendo la metodología RUP. Finalmente, se incluyen secciones sobre la organización del proyecto y la gestión del proceso de desarrollo.
PLAN DE CAPACITACIÓN PARA USUARIOS FINALESPablo Ospina
Este documento presenta un plan de capacitación para usuarios finales sobre el sistema BANCASOFT. El plan describe los pasos del proceso de capacitación, que incluyen analizar las necesidades, diseñar la enseñanza, validar el programa, aplicarlo y evaluarlo. Luego presenta la estructura del plan de capacitación, que consiste en 8 temas a cubrirse en sesiones de 1 a 2 horas con 12 participantes. El objetivo es generar capacidades en los aprendices sobre las nuevas tecnologías para mejorar su desempeño laboral.
El documento describe varias metodologías para el análisis y diseño de sistemas, incluyendo UML, RAD, RUP, el ciclo de vida de sistemas de Kendall y Kendall, y RMM. Explica las fases y actividades clave de cada metodología, como el análisis de requisitos, diseño, programación y pruebas. También define conceptos como método y metodología.
El documento describe el modelo de desarrollo en cascada, que ordena las etapas del ciclo de vida del software de forma secuencial. Siguiendo esta metodología, primero se realiza el análisis de requisitos, luego el diseño, la codificación, las pruebas y finalmente el mantenimiento. Aunque es una metodología sencilla, tiene desventajas como que es difícil establecer todos los requerimientos al inicio y no permite iteraciones entre las etapas.
Este documento describe las diferentes fases del ciclo de vida del desarrollo de software, incluyendo el análisis de requisitos, diseño, implementación, pruebas y mantenimiento. También discute diferentes metodologías como el modelo en cascada, incremental e iterativo, y métodos ágiles. Explica conceptos como modularidad, pruebas de software, documentación y calidad.
El documento describe el proceso de estimación de costos para un proyecto de desarrollo de software. Explica que el diseño modular reduce la complejidad y facilita los cambios. Luego, introduce el método de puntos de caso de uso para estimar el esfuerzo requerido, el cual se basa en identificar las transacciones en cada caso de uso. Finalmente, discute los desafíos en definir y contar estas transacciones de caso de uso, ya que esto afecta directamente los resultados de la estimación.
El documento describe las diferentes fases del ciclo de vida del desarrollo de sistemas, incluyendo la identificación de problemas y objetivos, la determinación de requerimientos de información, el análisis de necesidades del sistema, y el diseño, desarrollo, pruebas y mantenimiento del sistema. También describe alternativas como el desarrollo orientado a prototipos, con fases como la definición de requerimientos a través de iteraciones de prototipos, y tipos de prototipos como rápidos, evolutivos y de interfaz de usuario
El documento describe las distintas fases del ciclo de vida del desarrollo de sistemas de información. Estas incluyen la identificación de problemas y objetivos, la determinación de requerimientos de información, el análisis de necesidades del sistema, el diseño del sistema recomendado, el desarrollo y documentación del software, y las pruebas y mantenimiento del sistema. También se discuten alternativas como el uso de prototipos para mejorar el proceso de desarrollo de sistemas.
La Ingeniería de software es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento de software y el estudio de estos enfoques, es decir, la aplicación de la ingeniería al software. Integra matemáticas, ciencias de la computación y prácticas cuyos orígenes se encuentran en la ingeniería. Define paradigmas de desarrollo estructurado como base a seguir en un proyecto de Software. Si ninguno de estos paradigmas se adecua al problema por resolver, entonces el desarrollador se verá obligado a combinar los paradigmas o definir uno nuevo.
El documento describe diferentes paradigmas o modelos de desarrollo de software, incluyendo el ciclo de vida en cascada, el prototipado y el modelo en espiral. Explica las fases clave de cada modelo, así como sus ventajas e inconvenientes para organizar el desarrollo de software.
El documento describe el ciclo de vida tradicional del sistema conocido como modelo cascada. Este modelo sigue un enfoque secuencial de desarrollo que comienza con la ingeniería del sistema y progresa a través de requisitos, análisis, diseño, construcción, implementación y mantenimiento. En cada fase se especifican conceptos, diagramas UML, herramientas y procesos principales.
Este documento presenta un enfoque de ingeniería de requisitos para modelar sistemas de información conceptualmente. El enfoque se basa en herramientas para especificar requisitos y en un método gráfico orientado a objetos para modelado conceptual que permite generar código automáticamente. El proceso define cómo construir un modelo de requisitos funcionales y cómo representar esos requisitos en el modelo conceptual.
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOSValentina
1) El documento presenta una introducción al análisis de requerimientos en ingeniería de software, describiendo que cubre el hueco entre la definición del sistema y el diseño del software.
2) Luego explica diferentes técnicas para el análisis de requerimientos como la descomposición funcional, especificación textual, modelado de procesos, casos de uso y prototipos.
3) Finalmente, introduce conceptos clave de la programación orientada a objetos como clases, herencia, encapsulamiento y polimorfismo.
El desarrollo de un programa o de un conjunto de aplicaciones se basa en un c...Gabriel Méndez
El desarrollo de software sigue un ciclo de vida con fases secuenciales de análisis, diseño, codificación, implementación y mantenimiento. La fase de análisis establece los requisitos del producto a desarrollar mediante comunicación con los usuarios. La fase de diseño define una solución óptima considerando los recursos del sistema. La fase de codificación traduce el diseño a un lenguaje de programación y prueba la calidad y estabilidad del programa.
Este manual técnico describe un sistema de procesamiento electrónico. Explica que el manual contiene especificaciones técnicas importantes del sistema y constituye una guía para el mantenimiento de la aplicación. Detalla los pasos para elaborar el manual, incluyendo secciones como nombre del sistema, descripción funcional, requisitos, vistas lógicas y físicas, implementación, despliegue y controles de auditoría.
El documento presenta una introducción a los conceptos de arquitectura de software, patrones de arquitectura y patrones de diseño. Explica brevemente diferentes estilos de arquitectura como la orientada a objetos, centrada en datos y por capas. También describe patrones comunes como MVC y ejemplos de su implementación. Finalmente, resalta la importancia de aplicar soluciones probadas a través de marcos y patrones para mejorar la calidad del software.
El documento describe la metodología SSADM (Structured Systems Analysis and Design Methodology) para el análisis y diseño de sistemas de información. SSADM implica una secuencia de fases que incluyen la investigación del sistema actual, el desarrollo de opciones de negocio y técnicas, y la especificación y diseño lógico de requisitos para el nuevo sistema. La participación de los usuarios es fundamental en cada etapa para documentar requisitos y aprobar los resultados.
Presentacion lineas de productos de software y el metodo watchdanielnp33
El documento explora las líneas de productos de software y el método WATCH. Resume las definiciones de líneas de productos de software y sus beneficios en términos de productividad, calidad y costos. También describe los procesos, estrategias y aspectos metodológicos clave de las líneas de productos de software. Finalmente, presenta las características, objetivos y fundamentos del método WATCH.
El documento describe diferentes modelos de desarrollo de software. Explica que los modelos organizan las etapas del ciclo de vida del software y definen las actividades en cada etapa. Luego describe brevemente el modelo en cascada o tradicional, indicando que se compone de las etapas de definición de requisitos, análisis, diseño, implementación, pruebas e integración, y mantenimiento. Finalmente, menciona otros modelos como el de prototipado y el modelo en espiral.
Unidad I de Diseño de Sistemas. Significado dentro del Ciclo de Vida de Desarrollo de Sistemas. Modelos de Desarrollo de Software. Modelos de Desarrollo Estructurado (3K1) UTN-FRT. 2011
El documento presenta una introducción al diseño de sistemas de información, incluyendo los modelos de desarrollo de software, el análisis, el diseño estructurado y orientado a objetos, y las metodologías y métodos de diseño. Explica conceptos como la descomposición para dominar la complejidad, las especificaciones funcionales, y compara enfoques como el diseño estructurado versus el diseño orientado a objetos.
Este documento presenta una introducción al proceso de modelado de software. Explica que el proceso de software consiste en una serie de actividades relacionadas como la especificación, diseño, implementación, validación y evolución del software. También describe tres modelos de procesos de software: el modelo en cascada, el desarrollo incremental y la ingeniería de software orientada a la reutilización. Cada modelo organiza estas actividades fundamentales de manera diferente.
AppServ es un programa que instala y configura de forma automática el servidor web Apache, PHP, MySQL y phpMyAdmin, permitiendo configurar un entorno de desarrollo local de forma sencilla. Incluye las últimas versiones de Apache 2.2.3, PHP 5.1.6, MySQL 5.0.24 y phpMyAdmin 2.9.0.2 y automatiza su configuración para poder empezar a desarrollar de inmediato.
OwnCloud es un software libre que permite el almacenamiento independiente de datos y la sincronización de archivos entre dispositivos a través de una interfaz web. Ofrece servicios como reproducción de música, visor de imágenes, editor de texto, gestor de archivos y marcadores. Algunas de sus características incluyen el almacenamiento de archivos en una estructura de directorios, administración de usuarios y grupos, y compartir contenido a través de enlaces públicos.
El protocolo de comunicación establece las reglas y procedimientos para el intercambio de información entre sistemas. Define los formatos de mensajes y los procesos para enviar, recibir y procesar la información de manera ordenada y comprensible para todos los participantes. El objetivo es asegurar la transmisión efectiva de datos entre dispositivos de manera confiable.
LOIC y HOIC son programas para realizar ataques de denegación de servicio (DDoS) contra sitios web. LOIC funciona enviando múltiples peticiones de conexión al objetivo, lo que lo hace funcionar más lento o caer. HOIC es más rápido que LOIC al inundar sitios web simultáneamente con más de 256 solicitudes HTTP. Ambos permiten a los usuarios seleccionar parámetros como método de ataque, número de hilos y velocidad.
pfSense es una distribución de FreeBSD adaptada para ser usada como firewall y router de manera gratuita. Tiene una interfaz intuitiva para su configuración y proporciona funcionalidades como firewall, VPN, balanceo de carga, portal cautivo, servidor DNS, DHCP, entre otras. Se puede instalar en hardware físico o máquinas virtuales y ofrece seguridad y rendimiento para proteger redes.
Un firewall es software o hardware que comprueba la información que entra y sale de una red y bloquea o permite el paso de dicha información según su configuración. Un firewall puede ayudar a prevenir que hackers u otros software maliciosos accedan a un equipo a través de una red o Internet, y también puede evitar que un equipo envíe software malicioso a otros. Un firewall crea una barrera entre Internet y el equipo de manera similar a como una pared de ladrillos crea una barrera física.
This Java program implements a Caesar cipher to encrypt strings. It takes in plaintext from the user and a shift value, shifts each character by that value, and outputs the encrypted ciphertext. The main method gets the plaintext and shift from the user, calls the cifCesar method to encrypt it, and prints the results. The cifCesar method shifts each character in the plaintext string by the shift amount, handling lowercase and uppercase characters separately by using two static character strings, and returns the encrypted string.
El documento describe la estructura de 7 capas del modelo OSI de ISO. Cada capa se encarga de una función específica en la comunicación entre dispositivos, con cada capa dependiendo de la capa inferior y proporcionando servicios a la capa superior. La capa física se encarga de las conexiones físicas. La capa de enlace de datos gestiona el direccionamiento físico y la transmisión de tramas. La capa de red se encarga del enrutamiento entre redes mediante paquetes.
El documento explica el protocolo DHCP y cómo configurar un servidor DHCP. DHCP permite que los dispositivos obtengan automáticamente su configuración de red de un servidor. El servidor DHCP asigna direcciones IP dinámicamente de un rango configurado. El documento detalla los tres métodos de asignación: manual, automática y dinámica, y proporciona los pasos para configurar el servidor DHCP para cada método.
Una VLAN es una agrupación lógica de recursos y usuarios definidos administrativamente que están organizados por ubicación, función, departamentos, aplicaciones o protocolos. Esto simplifica la administración y proporciona flexibilidad y seguridad al dividir la red en pequeños dominios de broadcast. Los miembros de una VLAN pueden ser estáticos, asignados manualmente por un administrador, o dinámicos, asignados automáticamente a través de direcciones MAC y protocolos. Los puertos de switch pueden estar configurados como acceso, pertenec
Los tres tipos de transmisión son simplex, half-duplex y full-duplex. La transmisión simplex solo permite la transmisión en una dirección, mientras que la transmisión half-duplex permite la transmisión en ambas direcciones pero no simultáneamente. La transmisión full-duplex permite la transmisión bidireccional simultánea.
El documento explica cómo configurar el protocolo RIP v2 en dos routers Cisco conectados a través de un enlace punto a punto. Se describen los pasos para configurar las interfaces de los routers con direcciones IP, activar RIP v2 en cada router y publicar las redes conectadas, y verificar que cada router ha aprendido la tabla de enrutamiento del otro a través de ping entre las PC en cada subred.
RIP es un protocolo de enrutamiento ampliamente utilizado que ha evolucionado en dos versiones principales. RIP versión 1 tiene limitaciones como no admitir subredes o direcciones de máscara variable, mientras que RIP versión 2 incluye mejoras como soporte para subredes, autenticación y menos sobrecarga de red.
El protocolo RIP es un protocolo de encaminamiento dinámico que permite a los routers dentro de un mismo Sistema Autónomo intercambiar y actualizar sus tablas de rutas cada 30 segundos. Calcula el número de saltos a una red (1 a 16 saltos) para determinar si es alcanzable. RIPv1 no admite subredes ni direcciones VLSM o CIDR y no autentica los intercambios, mientras que RIPv2 mejora esto al admitir subredes, VLSM, CIDR y autenticando los intercambios con contraseñas.
Este documento es una monografía sobre redes que incluye tres capítulos. El Capítulo 1 presenta la introducción al tema, antecedentes sobre redes, la definición del problema y los objetivos del proyecto. El Capítulo 2 describe el marco de referencia sobre redes inalámbricas. El Capítulo 3 detalla aspectos de la organización donde se llevó a cabo la práctica, la experiencia del autor y evidencias con figuras. Se concluye que la implementación de redes requiere de paciencia, tolerancia y organización.
El documento describe un proyecto para mejorar el cableado de internet en el departamento de música de la Universidad de Navojoa colocando una base para la antena y ocultando los cables con canaletas para dar una mejor apariencia estética. Se enumeran los materiales necesarios como canaletas y grapas y las herramientas como pinzas, silla y cortador.
El documento proporciona detalles sobre un proyecto de cableado en un edificio de ciencias y diseño gráfico en la Universidad de Navojoa. Se enumera el equipo a cablear, los materiales a utilizar como interruptores, cajas, canaletas y conectores, y las herramientas necesarias como un tester de cable, pinzas y escaleras. También incluye un croquis del diseño de cableado.
Este documento describe los requisitos para un software de inventario de equipos de computo para la Universidad de Navojoa. El software permitirá registrar la información de los equipos de cada departamento, incluyendo sus características técnicas. Se requiere que el software sea fácil de usar, seguro y confiable. Deberá permitir el registro, modificación y consulta de la información de equipos y impresoras.
Este documento describe casos de prueba para probar las funcionalidades de un sistema de inventario de equipo. Incluye pruebas para la autenticación de usuarios, dar de alta equipos, llenar formularios, guardar datos, hacer búsquedas, dar de baja equipos, modificar registros y actualizar la información. El objetivo es validar que cada función opere como se espera para asegurar la integridad y calidad del sistema.
El documento discute varios conceptos y puntos de vista sobre la calidad. Explica que la calidad puede verse desde la perspectiva del usuario, fabricante, producto, valor y más. También cubre factores de calidad del software como la corrección, confiabilidad, eficiencia, integridad y facilidad de mantenimiento. Finalmente, analiza atributos de calidad de interfaz como la intuitividad, eficiencia y robustez.
Equipo 4. Mezclado de Polímeros quimica de polimeros.pptxangiepalacios6170
Presentacion de mezclado de polimeros, de la materia de Quimica de Polímeros ultima unidad. Se describe la definición y los tipos de mezclado asi como los aditivos usados para mejorar las propiedades de las mezclas de polimeros
1. MODELOS DE PROCESOS
Modelo primitivo
Los modelos de datos primitivos estaban absolutamente orientados al fichero:
las entidades se representan en registros (divididos en campos, que
representan sus propiedades), que se agrupan en ficheros. Las relaciones
entre entidades son únicamente aquellas que pueden ser representadas
usando directorios, por ejemplo índices y listas invertidas. Un ejemplo de
DBMS comercial de fichero, concretamente del tipo "lista invertida", es el CA-
DATACOMB de Computer Associates International.
Modelo en Cascada1(Bennington 1956):
El más conocido, está basado en el ciclo convencional de una ingeniería,
el paradigma del ciclo de vida abarca las siguientes actividades:
Ingeniería y Análisis del Sistema: Debido a que el software es siempre parte de
un sistema mayor el trabajo comienza estableciendo los requisitos de todos los
elementos del sistema y luego asignando algún subconjunto de estos requisitos
al software.
Análisis de los requisitos del software: el proceso de recopilación de los
requisitos se centra e intensifica especialmente en el software. El ingeniero de
software (Analistas) debe comprender el ámbito de la información del software,
así como la función, el rendimiento y las interfaces requeridas.
1 Ingeniería del Software: Un enfoque practico, Roger S. Presuman, 3ra Edición, Pag. 26-30.
Ingeniería y Análisis
del Sistema
Análisis de los
Requisitos
Diseño
Codificación
Prueba
Mantenimiento
2. Diseño: el diseño del software se enfoca en cuatro atributos distintos del
programa: la estructura de los datos, la arquitectura del software, el detalle
procedimental y la caracterización de la interfaz. El proceso de diseño traduce
los requisitos en una representación del software con la calidad requerida antes
de que comience la codificación.
Codificación: el diseño debe traducirse en una forma legible para la maquina. El
paso de codificación realiza esta tarea. Si el diseño se realiza de una manera
detallada la codificación puede realizarse mecánicamente.
Prueba: una vez que se ha generado el código comienza la prueba del
programa. La prueba se centra en la lógica interna del software, y en las
funciones externas, realizando pruebas que aseguren que la entrada definida
produce los resultados que realmente se requieren.
Mantenimiento: el software sufrirá cambios después de que se entrega al
cliente. Los cambios ocurrirán debido a que hayan encontrado errores, a que el
software deba adaptarse a cambios del entorno externo (sistema operativo o
dispositivos periféricos), o debido a que el cliente requiera ampliaciones
funcionales o del rendimiento.
Desventajas:
Los proyectos reales raramente siguen el flujo secuencial que propone el
modelo, siempre hay iteraciones y se crean problemas en la aplicación
del paradigma.
Normalmente, es difícil para el cliente establecer explícitamente al
principio todos los requisitos. El ciclo de vida clásico lo requiere y tiene
dificultades en acomodar posibles incertidumbres que pueden existir al
comienzo de muchos productos.
El cliente debe tener paciencia. Hasta llegar a las etapas finales del
proyecto, no estará disponible una versión operativa del programa. Un
error importante no detectado hasta que el programa este funcionando
puede ser desastroso.
La ventaja de este método radica en su sencillez ya que sigue los pasos
intuitivos necesarios a la hora de desarrollar el software.
3. Modelo V (Ministerio de Defensa de Alemania, 1992):
El Modelo V tiende a ser muy relacionado con el Modelo de Cascada
puesto que es una evolución del mismo.
Puede notarse que su primera mitad es similar al Modelo en Cascada, y
la otra mitad tiene como finalidad hacer pruebas e integración asociado a cada
una de las etapas de la mitad anterior.
Se puede identificar una ventaja principal con respecto al Modelo
Cascada más simple, y se refiere a que este modelo involucra chequeos de
cada una de las etapas del modelo de cascada.
Desventajas:
ANALISIS DE
REQUERIMIENTOS
DISEÑO DEL
SISTEMA
DISEÑO
DETALLADO
IMPLEMENTACION
DE PROGRAMAS Y
PRUEBA DEL
SISTEMA
PRUEBA DE
ACEPTACION
OPERACION
Y MANTENIMIENTO
PRUEBA DE
INTEGRACION
Plan de
Pruebas
de Integración
Verificar diseño
Plan de
Pruebas
del Sistema
Validar requerimientos
Plan de
Pruebas
de Aceptación
Los planes de prueba son
el nexo entre el desarrollo
y la verificación
4. El riesgo es mayor que el de otros modelos, pues en lugar de hacer
pruebas de aceptación al final de cada etapa, las pruebas comienzan a
efectuarse luego de haber terminado la implementación, lo que puede
traer como consecuencia un “roll-back” de todo un proceso que costó
tiempo y dinero.
El modelo no contempla la posibilidad de retornar a etapas
inmediatamente anteriores, cosa que en la realidad puede ocurrir.
Se toma toda la complejidad del problema de una vez y no en
iteraciones o ciclos de desarrollo, lo que disminuye el riesgo.
A pesar de todo lo antes mencionado, definitivamente se trata de un
modelo más robusto y completo que el Modelo de Cascada, y puede producir
software de mayor calidad que con el modelo de cascada.
MODELOS BASADOS EN PROTOTIPOS
Este modelo consiste en un procedimiento que permite al equipo de desarrollo
diseñar y analizar una aplicación que representa el sistema que sería
implementado (McCracken y Jackson, 1982). Dicha aplicación, llamada
prototipo, está compuesta por los componentes que se desean evaluar
(i.e. las funciones principales). Las etapas del modelo son:
- Investigación preliminar.
- Colecta y refinamiento de los requerimientos y proyecto rápido:
- Análisis y especificación del prototipo.
- Diseño y construcción del prototipo.
- Evaluación del prototipo por el cliente.
- Renacimiento del prototipo.
5. - Diseño técnico.
- Programación y test.
- - Operación y mantenimiento.
http://rguerrero334.blogspot.es/1192897080/
Métodos formales
Un método formal es un camino a la construcción y análisis de modelos
matemáticos que permitan una automatización del desarrollo de sistemas
informáticos; se caracterizan por emplear técnicas y herramientas matemáticas
para lograr una facilitación a la hora de encarar la construcción o el análisis de
un modelo matemático de un sistema. Los métodos formales se refieren
entonces al uso de técnicas de la lógica y de la matemática discreta para
especificar, diseñar, verificar, desarrollar y validar programas. La palabra
“formal” se deriva de la lógica formal, ciencia que estudia el razonamiento
desde el análisis formal de acuerdo con su validez o no validez, y omite el
contenido empírico del razonamiento para considerar sólo la forma
estructurada sin materia. Los métodos formales más rigurosos aplican estas
técnicas para comprobar los argumentos utilizados para justificar los requisitos,
6. u otros aspectos de diseño e implementación de un sistema complejo.
En la lógica formal como en los métodos formales el objetivo es el mismo,
“reducir la dependencia de la institución y el juicio humanos para evaluar
argumentos” (Kiniry & Zimmerman, 2008). Los métodos menos rigurosos
enfatizan en la formalización y renuncian a la computación, definición que
implica un amplio espectro de técnicas, y una gama igualmente amplias de
estrategias. La interacción de las técnicas y estrategias de muchos métodos
formales, en determinados proyectos, se limita por el papel que interpretan y
por los recursos disponibles para su aplicación (García et al., 2006).
Se puede decir también que un método formal es una técnica basada en
matemáticas, usada para describir sistemas de hardware o software, Wing,
Jeannette M. (1990). Los métodos formales permiten representar la
especificación del software, verificación y diseño de componentes mediante
notaciones matemáticas. El uso de métodos formales permite plantear de
manera clara la especificación de un sistema, generando modelos que definen
el comportamiento en términos del “qué debe hacer” y no del “cómo lo hace”.
Gracias al correcto proceso de especificación, se pueden verificar propiedades
derivadas de cada módulo mediante técnicas de razonamiento asociadas a los
modelos formales, como probadores de teoremas y verificadores de modelos
Hall (1996). Para los procesos de especificación se reconoce las siguientes
clasificaciones:
1. Especificaciones basadas en lógicas de primer orden y teoría de
conjunto: Permiten especificar el sistema mediante un concepto formal de
estados y operaciones sobre estados. Los datos y relaciones/funciones se
describen en detalle y sus propiedades se expresan en lógica de primer orden.
La semántica de los lenguajes está basada en la teoría de conjuntos. Los
métodos de este tipo más conocidos son: VDM, Z, B, OCL.
Niveles de los métodos formales
• Especificación formal: Es una descripción de un sistema que utiliza
notaciones matemáticas para describir precisamente las propiedades que dicho
sistema debe tener, sin preocuparse por la forma de obtener estas
propiedades: “describe lo que el sistema debe hacer sin decir como se va
hacer”.
Algunas de las ventajas que podemos nombrar sobre una especificación formal
son las siguientes:
• Prototipado: Las especificaciones formales pueden llegar a ser ejecutables.
• Corrección del programa: Verificación automática y formal de que el
programa funciona correctamente.
• Reusabilidad: Posibilidad de usar la especificación formal en distintos
ámbitos.
En cuanto a la notación, una descripción formal constará de cuatro (04) partes:
• NOMBRE: Nombre genérico del TAD.
7. • CONJUNTOS: Conjuntos de datos que intervienen en la definición.
• SINTAXIS: Signatura de las operaciones definidas ->
<nombre operación>: <conj_dominio> → <conj_resultado>
• SEMÁNTICA: Indica el significado de las operaciones.
Las distintas notaciones formales existentes difieren en la forma de definir la
semántica:
• Método axiomático o algebraico. Se establece el significado de las
operaciones a través de relaciones entre operaciones (axiomas). Significado
implícito de las operaciones.
Los métodos axiomáticos o algebraicos, poseen la semántica de las
operaciones, como dijimos anteriormente se define a través de un conjunto de
axiomas.
Un axioma es una regla que establece la igualdad de dos expresiones:
<Expresión 1> = <Expresión 2>
Por ejemplo: Suma (dos, dos) = Producto (dos, dos)
Supongamos un TAD, T. Los tipos de operaciones son:
• Constructores: Conjunto mínimo de operaciones del TAD, a partir del cual
se puede obtener cualquier valor del tipo T.
• Modificación: A partir de un valor del tipo obtienen otro valor del tipo T, y no
son constructores.
• Consulta: Devuelven un valor que no es del tipo T.
Además, una especificación es:
• Completa: Si de cualquier expresión se puede encontrar otra más sencilla,
con operaciones de construcción.
• Correcta: Si a partir de una expresión sólo se puede obtener un resultado
final.
Para conseguir que una especificación sea completa y correcta, hay que definir
los axiomas suficientes para relacionar las operaciones de modificación y
consulta con los constructores. Y no incluyendo axiomas que se puedan
deducir de los otros ya descritos.
• Método constructivo u operacional. Se define cada operación por sí misma,
independientemente de las otras. Significado explícito de las operaciones. En la
semántica de este método se establecen las precondiciones y las
poscondiciones de las operaciones:
• Precondición: Relación que se debe cumplir con los datos de entrada para
que la operación se pueda aplicar.
• Poscondición: Relaciones que se cumplen después de ejecutar la operación.
No debe incluir detalles de implementación.
En cuanto a la notación, para cada operación <nombre>:
pre-<nombre> (<param_entrada>)::= <condición_lógica>
post-<nombre> (<param_entrada>;<param_salida>)::= <condición_lógica>
Algunas veces es necesario tener modelos subyacentes para especificar otros
complejos. Por ejemplo: para especificar Pila[T] o Cola[T] el tipo subyacente
8. puede ser Lista[T]. Esta especificación está limitada por la necesidad de estos
modelos.
Ejemplo:
Máximo restringido, que sólo se aplica a enteros positivos: max_restring: Z x Z
→ Z
pre-max_restring (x, y) ::= (x > 0) ^ (y > 0)
post-max_restring (x, y; r) ::= (r ≥ x) ^ (r ≥ y) ^ (r=x V r=y)
Desventajas de los métodos formales
• El desarrollo de herramientas que apoyen la aplicación de métodos formales
es complicado y los programas resultantes son incómodos para los usuarios.
• Los investigadores por lo general no conocen la realidad industrial.
• Es escasa la colaboración entre la industria y el mundo académico, que en
ocasiones se muestra demasiado dogmático.
• Se considera que la aplicación de métodos formales encarece los
productos y ralentiza su desarrollo.
No obstante es posible que el enfoque a través de métodos formales tenga
más partidarios entre los desarrolladores del software que deben construir
software de mucha seguridad (por ejemplo: los desarrolladores de aviónica
y dispositivos médicos), y entre los desarrolladores que pasan grandes
penurias económicas al aparecer errores de software.
Métodos formales en ingeniería del software
Los métodos formales en ingeniería de software tienen como objetivo aumentar
la rigurosidad, consistencia y completitud en el desarrollo del software y evitar
los problemas que son origen de errores en el software.
Una de las técnicas utilizadas para garantizar la calidad en un proyecto
software es la verificación formal, que engloba una serie de técnicas
matemáticas para demostrar que el software que se está desarrollando se
ajuste a las especificaciones.
El papel de los métodos formales en la ingeniería del software:
• Se basan en el empleo de técnicas, lenguajes y herramientas definidos
matemáticamente.
• Facilitan el análisis y construcción de sistemas confiables
independientemente de su complejidad.
• Delatan posibles inconsistencias o ambigüedades que de otra manera
pudieran pasar desapercibidas.
• Facilita el desarrollo de especificaciones claras, concisas y no ambiguas.
• Permite el análisis funcional de la especificación.
• Posibilita el desarrollo de implementaciones correctas respecto a sus
especificaciones.
Modelo de Transformación Formal
9. Este modelo, propuesto por Robert Balzer en 1983, aplica una serie de
transformaciones usando un soporte automatizado para convertir una
especificación formal (modelo matemático) en un sistema implementable
(ejecutable). Es decir, este paradigma intenta automatizar las etapas de diseño
e implementación utilizando el concepto de transformación. También se
denomina a este paradigma Síntesis Automática de Software.
Fases:
Análisis de requisitos
Especificación formal
Transformación
Integración del sistema final
La especificación formal se convierte en forma sistemática en una
representación más detallada del sistema, matemáticamente correcta. Cada
paso agrega detalle hasta que la especificación formal se convierte en un
programa equivalente. Como hay muchos caminos a seguir desde la
especificación hasta el sistema final, la secuencia de transformaciones y su
justificación se reflejan en un registro formal de desarrollo. Se utilizan técnicas
de validación del modelo matemático, como la Simulación.
La especificación de requisitos se refina en una especificación formal detallada,
expresada en notación matemática. Los procesos de diseño, implementación y
prueba de unidades se reemplaza por un proceso de transformaciones donde
la especificación formal se refina hasta llegar a un Software.
Proceso de Transformación formal de Robert Balzer - "Software technology in
the 1990s: using a new paradigm".
http://innovacionpnfi2012.wordpress.com/metodos-formales-2/
10. MODELO EVOLUTIVO
Este modelo, también conocido como Evolutivo, es una derivación del ciclo
de vida en cascada puro, que busca reducir el riesgo que surge entre las
necesidades delUsuario y el Producto final por malos entendidos durante la
etapa de solicitud de requerimientos.
En el ciclo de vida iterativo, en cada Iteración se reproduce el ciclo de vida en
cascada a menor escala. Los objetivos de una Iteración se establecen en
función de la evaluación de las Iteraciones precedentes. Desde el principio, al
final de cada Iteración se le entrega al Cliente una versión completa y mejorada
del Producto. El Cliente es quien luego de cada Iteración evalúa el Producto y
lo corrige o propone mejoras. Estas Iteraciones irán Refinando el sistema y se
repetirán hasta obtener un Producto que satisfaga al Cliente.
La Especificación de requisitos se realiza en forma creciente: a medida que
los Usuarios logran un mejor entendimiento del problema, éste es reflejado en
el sistema software. Es decir, el Producto de cada etapa de Especificación de
requisitos es un agregado o mejora al Producto de la etapa de especificación
anterior.
Este modelo se basa en dos premisas:
1) Los Usuarios a menudo no saben bien lo que quieren o necesitan.
2) Por lo general, los requisitos en algún momento van a cambiar.
Para solucionar el primer punto, los requisitos se determinan en base a alguna
forma operacional del sistema (por ejemplo, un prototipo) para ser revisado por
los Usuarios. Para atender el segundo punto, se realizan entregas parciales del
sistema que permiten incorporar nuevos requisitos o cambios en requisitos
existentes en la siguiente entrega. Es decir, cada versión es una mejora sobre
la predecesora.
Este modelo se utiliza cuando no se puede especificar a priori “todos” los
requisitos del software, sino que el proceso ayudará a ir descubriendo paso a
paso los requisitos a partir de cada nueva Entrega.
11. http://procesosoftware.wikispaces.com/Modelo+Iterativo
El modelo incremental fue propuesto por Harlan Mills en el año 1980. Surgió el
enfoque incremental de desarrollocomo una forma de reducir la repetición del
trabajo en el proceso de desarrollo y dar oportunidad de retrasar la toma de
decisiones en los requisitos hasta adquirirexperiencia con el sistema. Este
modelo se conoce también bajo las siguientes denominaciones:
Método de las comparaciones limitadas sucesivas.
Ciencia de salir del paso.
Método de atacar el problema por ramas.
El Modelo Incremental combina elementos del Modelo Lineal Secuencial con la
filosofía interactiva de Construcción de Prototipos. Como se muestra en la
Figura 1, el modelo incremental aplica secuencias lineales de forma
escalonada mientras progresa el tiempo en el calendario. Cada secuencia
lineal produce un incremento del software. El primer incremento generalmente
es un producto esencial denominado núcleo.
En una visión genérica, el proceso se divide en 4 partes:
Análisis
Diseño
Código
Prueba
12. Sin embargo, para la producción del Software, se usa el principio de trabajo en
cadena o Pipeline. Con esto se mantiene al cliente en constante contacto con
los resultados obtenidos en cada incremento. Es el mismo cliente el que incluye
o desecha elementos al final de cada incremento a fin de que el software se
adapte mejor a sus necesidades reales. El proceso se repite hasta que se
elabora el producto completo. De esta forma el tiempo de entrega se reduce
considerablemente.
El Modelo Incremental es de naturaleza interactiva brindando al final de cada
incremento la entrega de un producto completamente operacional. Este modelo
es particularmente útil cuando no se cuenta con una dotación de personal
suficiente. Los primeros pasos los pueden realizar un grupo reducido de
personas y en cada incremento se añadirá personal, de ser necesario. Por otro
lado los incrementos se pueden planear para gestionar riesgos técnicos.
Durante el proceso se trata de llevar a cabo al proyecto en diferentes
partes que al final terminará siendo la solución completa requerida por el
cliente, pero éstas partes no se pueden realizar en cualquier orden, sino
que dependen de lo que el cliente este necesitando con más urgencia, de
los puntos más importantes del proyecto, los requerimientos más
básicos, difíciles y con mayor grado de riesgo, ya que estos se deben
hacer al comienzo, de manera que se disminuya la dificultad y el riesgo en
cada versión.
De este modo podemos terminar una aplicación ejecutable (primera versión)
que podrá ser entregada al cliente para que éste pueda trabajar en ella y el
programador pueda considerar las recomendaciones que el cliente efectúe
para hacer mejoras en el producto. Estas nuevas mejoras deberán esperar a
ser integradas en la siguiente versión junto con los demás requerimientos que
no fueron tomados en cuenta en la versión anterior.
13. El modelo incremental consiste en un desarrollo inicial de la arquitectura
completa del sistema, seguido de sucesivos incrementos funcionales. Cada
incremento tiene su propio ciclo de vida y se basa en el anterior, sin cambiar su
funcionalidad ni sus interfaces. Una vez entregado un incremento, no se
realizan cambios sobre el mismo, sino únicamente corrección de errores. Dado
que la arquitectura completa se desarrolla en la etapa inicial, es necesario
conocer los requerimientos completos al comienzo del desarrollo.
Al iniciar del desarrollo, los clientes o los usuarios, identifican a grandes rasgos,
las funcionalidades que proporcionará el sistema. Se confecciona un bosquejo
de requisitos funcionales y será el cliente quien se encarga de priorizar que
funcionalidades son mas importantes. Con las funcionalidades priorizadas, se
puede confeccionar un plan de incrementos, donde en cada incremento se
indica un subconjunto de funcionalidades que el sistema entregará. La
asignación de funcionalidades a los incrementos depende de la prioridad dada
a los requisitos. Finalizado el plan de incrementos, se puede comenzar con el
primer incremento.
Características:
Se evitan proyectos largos y se entrega "algo de valor" a los usuarios con cierta
frecuencia.
El usuario se involucra más.
Dificil de evaluar el costo total.
Dificil de aplicar a los sistemas transaccionales que tienden a ser integrados y a
operar como un todo.
Requiere gestores experimentados.
Los errores en los requisitos se detectan tarde.
El resultado puede ser positivo.
Ventajas:
Con un paradigma incremental se reduce el tiempo de desarrollo inicial, ya que
se implementa la funcionalidad parcial.
También provee un impacto ventajoso frente al cliente, que es la entrega
temprana de partes operativas del software.
El modelo proporciona todas las ventajas del modelo en Cascada realimentado,
reduciendo sus desventajas sólo al ámbito de cada incremento.
Resulta más sencillo acomodar cambios al acotar el tamaño de los
incrementos.
14. Desventajas:
El modelo incremental no es recomendable para casos de sistemas de tiempo
real, de alto nivel de seguridad, de procesamiento distribuido y/o de alto índice
de riesgos.
Requiere de mucha planeación, tanto administrativa como técnica.
Requiere de metas claras para conocer el estado del proyecto.
http://procesosoftware.wikispaces.com/Modelo+Incremental
MODELO ESPIRAL
EL Modelo Espiral, propuesto en 1988 por Barry Boehm, reconoce la
naturaleza iterativa del desarrollo y combina actividades de desarrollo con
gestión de riesgo, para minimizar y controlar el riesgo. Cada ciclo o iteración
del espiral se divide en cuatro fases: determinar objetivos, alternativas y
restricciones; evaluar alternativas, identificar y resolver los riesgos; desarrollar,
verificar el producto del próximo nivel y planificar las siguientes fases.
El modelo espiral es en cierto sentido semejante al Modelo Iterativo pues
maneja cuatro iteraciones o ciclos. Comienza con los requisitos y un plan inicial
de desarrollo (incluye presupuesto, restricciones y alternativas para personal,
diseño y ambiente de desarrollo). Se evalúan riesgos del proyecto y se
construye prototipos de las alternativas. Luego se escribe un documento con el
"concepto de las operaciones" que describe la funcionalidad del sistema en un
nivel alto, desde el punto de vista del usuario. Este es el producto de la 1°
iteración. A partir de este documento se especificación los requisitos del
software, los cuales son validados, éstos son el producto de la 2° iteración. En
la 3° iteración se hace un plan de desarrollo, se produce el diseño, que es
verificado y validado. en la 4° iteración se hace un plan de integración y prueba,
se genera el software y se realizan las pruebas.
En cada iteración se hace un análisis de riesgo de las alternativas según los
requisitos y restricciones, y se construyen prototipos para analizar las
alternativas y seleccionar una. Estos prototipos pueden ser simples maquetas
en papel, prototipos de interfaz de usuario o simulaciones del sistema,
dependiendo del riesgo a evaluar, según el ciclo en el proceso y del tipo de
aplicación.
15. http://procesosoftware.wikispaces.com/Modelo+Espiral
Modelos basados en reutilización
El diseño basado en reutilización puro busca construir un producto software
integrando componentes pre-existentes.
Los beneficios principales que otorga este modelo son:
-Tiempos de desarrollos cortos
-Disminución de errores
-Disminución de costos y riegos ya que se reduce los componentes a
desarrollar
-Existe un aumento de la confiabilidad ya que los componentes a utilizar ya
fueron testeados y utilizados en otro momento previo al comienzo del proyecto
A modo de desventaja podemos mencionar el hecho de que al no poseer algún
componente que cubra con un requisito dado por el usuario, este debe ser
modificado para adaptarlo a los componentes almacenados en el repositorio de
componentes.
Esto se da en el modelo puro. En cambio en el modelo real si no se puede
adaptar un requisito de usuario, se conseguirá o se desarrollara ese modulo
para que cumpla con lo pedido por el usuario.
Otra desventaja de este modelo es que una vez finalizada la etapa de
modificación de requisitos, y ante la eventual necesidad de cambios en estos
últimos, puede pasar que no haya componentes que se adapten a las nuevas
modificaciones.