El documento describe los conceptos de reingeniería de procesos de negocio, reingeniería de software, ingeniería inversa y reestructuración. La reingeniería de software involucra actividades como análisis de inventarios, reestructuración de documentos, ingeniería inversa, reestructuración de programas y datos, e ingeniería directa con el fin de crear versiones mejoradas de software existente. La ingeniería inversa es el proceso de analizar software para recuperar su diseño a un nivel más abstracto que el código fuente.
Este documento presenta una introducción a las métricas de proceso y proyecto en ingeniería de software. Explica conceptos clave como medida, medición, métrica e indicador. Detalla diferentes tipos de métricas como métricas orientadas al tamaño, función, objetos, casos de uso y métricas para medir la calidad del software. Finalmente, discute la importancia de integrar las métricas en el proceso de desarrollo de software y provee consideraciones para su implementación en organizaciones pequeñas.
UML es un lenguaje gráfico para visualizar, especificar y documentar sistemas. Surge de la necesidad de un estándar para el análisis y diseño orientado a objetos, uniendo las metodologías de Booch, Rumbaugh y Jacobson. UML incluye diagramas para estructura, comportamiento e interacción. En 1997 la OMG adoptó UML como la notación estándar para análisis y diseño orientado a objetos.
Planeacion y elaboración de proyectos de softwareTtomas Carvajal
El documento describe el proceso de planificación y elaboración de proyectos de software. Explica que la estimación es fundamental para la planificación del proyecto y que involucra múltiples actividades como definir el alcance del software, los recursos requeridos, y modelos de estimación. También cubre temas como el análisis, diseño e implementación de software, así como herramientas y métodos para cada una de estas etapas. Finalmente, enfatiza la importancia de la gestión de proyectos de software para el éxito del desarrollo.
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.
Este documento describe varios métodos para estimar el esfuerzo, costo y tiempo de proyectos de desarrollo de software, incluyendo los modelos COCOMO I y COCOMO II, la técnica Delphi y estimación por puntos de función. También explica conceptos como entradas, salidas, consultas de datos y archivos lógicos internos, los cuales son elementos clave considerados en el conteo de puntos de función.
Este documento presenta información sobre la gestión de riesgos de software. El objetivo es que los estudiantes aprendan conceptos básicos sobre la gestión de riesgos y sean capaces de identificar, gestionar y monitorear riesgos utilizando herramientas existentes. La gestión de riesgos incluye la identificación, análisis, priorización y control de riesgos, así como el desarrollo de planes de mitigación y contingencia.
El documento describe la relación entre CMM, PSP y TSP. CMM evalúa los procesos de desarrollo de software en una organización, mientras que PSP y TSP se enfocan en mejorar los procesos a nivel individual e de equipos, respectivamente. PSP enseña a ingenieros a mejorar su desempeño individual, TSP guía a equipos de ingenieros, y CMM provee una estructura para la mejora organizacional. Los tres modelos se refuerzan mutuamente y permiten que las organizaciones produzcan software de calidad.
Este documento presenta una introducción a las métricas de proceso y proyecto en ingeniería de software. Explica conceptos clave como medida, medición, métrica e indicador. Detalla diferentes tipos de métricas como métricas orientadas al tamaño, función, objetos, casos de uso y métricas para medir la calidad del software. Finalmente, discute la importancia de integrar las métricas en el proceso de desarrollo de software y provee consideraciones para su implementación en organizaciones pequeñas.
UML es un lenguaje gráfico para visualizar, especificar y documentar sistemas. Surge de la necesidad de un estándar para el análisis y diseño orientado a objetos, uniendo las metodologías de Booch, Rumbaugh y Jacobson. UML incluye diagramas para estructura, comportamiento e interacción. En 1997 la OMG adoptó UML como la notación estándar para análisis y diseño orientado a objetos.
Planeacion y elaboración de proyectos de softwareTtomas Carvajal
El documento describe el proceso de planificación y elaboración de proyectos de software. Explica que la estimación es fundamental para la planificación del proyecto y que involucra múltiples actividades como definir el alcance del software, los recursos requeridos, y modelos de estimación. También cubre temas como el análisis, diseño e implementación de software, así como herramientas y métodos para cada una de estas etapas. Finalmente, enfatiza la importancia de la gestión de proyectos de software para el éxito del desarrollo.
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.
Este documento describe varios métodos para estimar el esfuerzo, costo y tiempo de proyectos de desarrollo de software, incluyendo los modelos COCOMO I y COCOMO II, la técnica Delphi y estimación por puntos de función. También explica conceptos como entradas, salidas, consultas de datos y archivos lógicos internos, los cuales son elementos clave considerados en el conteo de puntos de función.
Este documento presenta información sobre la gestión de riesgos de software. El objetivo es que los estudiantes aprendan conceptos básicos sobre la gestión de riesgos y sean capaces de identificar, gestionar y monitorear riesgos utilizando herramientas existentes. La gestión de riesgos incluye la identificación, análisis, priorización y control de riesgos, así como el desarrollo de planes de mitigación y contingencia.
El documento describe la relación entre CMM, PSP y TSP. CMM evalúa los procesos de desarrollo de software en una organización, mientras que PSP y TSP se enfocan en mejorar los procesos a nivel individual e de equipos, respectivamente. PSP enseña a ingenieros a mejorar su desempeño individual, TSP guía a equipos de ingenieros, y CMM provee una estructura para la mejora organizacional. Los tres modelos se refuerzan mutuamente y permiten que las organizaciones produzcan software de calidad.
Este documento resume los conceptos clave de las arquitecturas de software, incluyendo sus características generales, atributos de calidad y patrones/estilos de arquitectura. El documento también proporciona una bibliografía de referencias sobre el tema.
Este documento trata sobre la ingeniería del software. Define la ingeniería del software como la rama de la ingeniería que crea y mantiene aplicaciones de software usando ciencias de la computación, gestión de proyectos e ingeniería. Explica conceptos clave como software, paradigmas de programación, métodos de desarrollo de software, modelado de sistemas y objetivos de la ingeniería del software. Finalmente, señala que la ingeniería del software permite mejorar la calidad del software mediante un proceso formal, y que los ingenieros de software trabajan
La clase anterior se centró en la introducción a la arquitectura de software y los estilos arquitectónicos. La próxima clase cubrirá los principios del diseño de interfaces de usuario, incluido el análisis y diseño de la interfaz, así como el diseño de interfaces para aplicaciones web. El documento también explica conceptos clave como dar control al usuario, reducir la carga de memoria del usuario y construir una interfaz consistente.
Una serie de pasos predecibles que ayude a crear un resultado de alta calidad y a tiempo.
Es un conjunto estructurado de actividades para: Especificar, diseñar, implementar y probar software.
Este documento presenta conceptos básicos sobre ingeniería de software. Explica que el software es el producto que construyen los ingenieros de software y puede aplicarse en cualquier situación donde se hayan definido previamente los pasos procedimentales. Además, describe las diferentes actividades del proceso de software como planificación, análisis, diseño, implementación, pruebas, instalación y mantenimiento. Finalmente, introduce conceptos como ciclo de vida del software, calidad de software y diferentes modelos de ciclo de vida.
Este documento describe varios métodos y estándares para el aseguramiento de la calidad de sistemas de información. Entre los métodos más comunes se encuentran auditorías, pruebas de validación, comparación de datos, pruebas de estrés, pruebas de uso y revisiones por pares. También cubre estándares de producto, proceso y documentación. Las herramientas de prueba como WinRunner y LoadRunner se utilizan comúnmente para probar el rendimiento y la tolerancia al estrés de las aplicaciones.
La planificación de proyectos de software implica estimar la duración, el esfuerzo y los recursos humanos necesarios. Se debe definir el alcance del software, evaluar los recursos de hardware, software y personal requeridos, y estimar los costos y el esfuerzo utilizando modelos empíricos como COCOMO o herramientas de estimación. La combinación de datos históricos y diferentes técnicas puede ayudar a mejorar la precisión de las estimaciones.
Este documento describe un proyecto para desarrollar un sistema de impresión de horarios docentes para una escuela secundaria técnica. El proyecto tiene como objetivo que los docentes puedan consultar e imprimir su carga académica y horario de manera online. Se detallan los requerimientos de hardware y software, así como el marco teórico, operativo y conceptual. Se incluyen diagramas de casos de uso, secuencias y el diseño de la interfaz y base de datos para el sistema.
Siguiendo con los apuntes de Ingeniería de Software para la Ingeniería en Computación, de la Universidad Tecnologica de la Mixteca en Huajuapan de León, Oaxaca México.
Planificación de un proyecto de ingeniería de softwareovefa
El documento habla sobre la planificación, organización, dotación de personal y control de proyectos de ingeniería de software. Describe los principales problemas en cada una de estas áreas como requerimientos incorrectos, falta de planificación, estructuras organizacionales inadecuadas, selección y retención deficiente de personal, y falta de métricas y controles de calidad. También enumera seis errores comunes relacionados con las personas como motivación débil, personal mediocre, empleados problemáticos, énfasis en hazañas, agregar más personal a proyect
La ingeniería de software concierne a las teorías, métodos y herramientas para el desarrollo, administración y evolución de productos de software. Existen varios modelos de procesos de software como el modelo de cascada, modelo evolutivo y modelo de espiral. Los ingenieros de software deben considerar aspectos técnicos así como también responsabilidades éticas, sociales y profesionales durante el desarrollo de sistemas.
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos TradicionalesSergio Sanchez
El documento describe los principales aspectos de un proceso de desarrollo de software, incluyendo las etapas de planificación, análisis de requerimientos, diseño, codificación, pruebas, liberación y mantenimiento. También discute diferentes modelos de proceso de software como el modelo cascada, modelo en V, desarrollo por incrementos e iteraciones, prototipos, espiral y RUP.
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
El documento trata sobre la trazabilidad y configuración de software. Explica que la gestión de configuraciones es el proceso de identificar, organizar y controlar los cambios en el software a lo largo de su desarrollo y mantenimiento. Se definen los elementos de configuración de software y se describen las tareas clave de la gestión de configuraciones como la identificación, control de cambios y auditorías.
Ingeniería de requisitos e ingeniería de requerimientosCesar Prado
Este documento resume los conceptos clave de la ingeniería de requisitos. Explica que la ingeniería de requisitos es el proceso de desarrollar especificaciones de software mediante la recopilación, análisis y verificación de las necesidades del cliente. Describe las fases de la ingeniería de requisitos como la captura y análisis de requisitos, la especificación, la validación y la gestión de cambios. También explica técnicas comunes como entrevistas, talleres y casos de uso para descubrir requisitos del cliente.
Este documento describe varias técnicas para estimar los costos de proyectos de software. Presenta métricas como líneas de código y puntos de función que pueden usarse para estimar el tamaño de un proyecto. También describe factores que afectan los costos como la capacidad de los programadores, la complejidad del producto y el tiempo disponible. Finalmente, resume técnicas como el juicio experto y Delphi para realizar estimaciones.
Grupo 5 - Introducción a la ing. en software
Problemas en el Desarrollo de software
- Kevin Dominguez
- Johan Lasso
- Fernando Matamoros
- Kleber Cagua
- Kayler Zuñiga
Este documento presenta un ensayo sobre la calidad de software. Describe la ingeniería de software, incluyendo sus definiciones, metodologías, ciclo de vida y factores de calidad. Explica conceptos como los costos asociados con la calidad, las características y mitos del software, y las capas de la ingeniería de software. Finalmente, define la calidad de software y sus factores internos y externos.
Análisis de riesgos de un proyecto de softwareAngel Reyes
Este documento describe el análisis de riesgos de un proyecto de software. Explica que el análisis de riesgos es un proceso para identificar los riesgos, su probabilidad de ocurrencia e impacto, y determinar los controles para mitigarlos. También define los tipos de riesgos como riesgos de proyecto, técnicos y de negocio, y métodos para identificarlos como listas de verificación. El objetivo final es cuantificar los riesgos y determinar acciones para controlarlos, eliminarlos, compartirlos o a
El documento describe el proceso de reingeniería de software. Este involucra actividades como análisis de inventarios, reestructuración de documentos, ingeniería inversa, reestructuración de programas y datos, e ingeniería directa, con el objetivo de crear versiones de programas existentes que sean de mejor calidad y más fáciles de mantener. El proceso también incluye mantenimiento del software a través de actividades correctivas, adaptativas, de mejora y preventivas.
La reingeniería de software involucra actividades como el análisis de inventarios, la reestructuración de documentos, la ingeniería inversa, la reestructuración de programas y datos, y la ingeniería directa, con el objetivo de crear versiones mejoradas de programas existentes que tengan una mayor calidad y facilidad de mantenimiento.
Este documento resume los conceptos clave de las arquitecturas de software, incluyendo sus características generales, atributos de calidad y patrones/estilos de arquitectura. El documento también proporciona una bibliografía de referencias sobre el tema.
Este documento trata sobre la ingeniería del software. Define la ingeniería del software como la rama de la ingeniería que crea y mantiene aplicaciones de software usando ciencias de la computación, gestión de proyectos e ingeniería. Explica conceptos clave como software, paradigmas de programación, métodos de desarrollo de software, modelado de sistemas y objetivos de la ingeniería del software. Finalmente, señala que la ingeniería del software permite mejorar la calidad del software mediante un proceso formal, y que los ingenieros de software trabajan
La clase anterior se centró en la introducción a la arquitectura de software y los estilos arquitectónicos. La próxima clase cubrirá los principios del diseño de interfaces de usuario, incluido el análisis y diseño de la interfaz, así como el diseño de interfaces para aplicaciones web. El documento también explica conceptos clave como dar control al usuario, reducir la carga de memoria del usuario y construir una interfaz consistente.
Una serie de pasos predecibles que ayude a crear un resultado de alta calidad y a tiempo.
Es un conjunto estructurado de actividades para: Especificar, diseñar, implementar y probar software.
Este documento presenta conceptos básicos sobre ingeniería de software. Explica que el software es el producto que construyen los ingenieros de software y puede aplicarse en cualquier situación donde se hayan definido previamente los pasos procedimentales. Además, describe las diferentes actividades del proceso de software como planificación, análisis, diseño, implementación, pruebas, instalación y mantenimiento. Finalmente, introduce conceptos como ciclo de vida del software, calidad de software y diferentes modelos de ciclo de vida.
Este documento describe varios métodos y estándares para el aseguramiento de la calidad de sistemas de información. Entre los métodos más comunes se encuentran auditorías, pruebas de validación, comparación de datos, pruebas de estrés, pruebas de uso y revisiones por pares. También cubre estándares de producto, proceso y documentación. Las herramientas de prueba como WinRunner y LoadRunner se utilizan comúnmente para probar el rendimiento y la tolerancia al estrés de las aplicaciones.
La planificación de proyectos de software implica estimar la duración, el esfuerzo y los recursos humanos necesarios. Se debe definir el alcance del software, evaluar los recursos de hardware, software y personal requeridos, y estimar los costos y el esfuerzo utilizando modelos empíricos como COCOMO o herramientas de estimación. La combinación de datos históricos y diferentes técnicas puede ayudar a mejorar la precisión de las estimaciones.
Este documento describe un proyecto para desarrollar un sistema de impresión de horarios docentes para una escuela secundaria técnica. El proyecto tiene como objetivo que los docentes puedan consultar e imprimir su carga académica y horario de manera online. Se detallan los requerimientos de hardware y software, así como el marco teórico, operativo y conceptual. Se incluyen diagramas de casos de uso, secuencias y el diseño de la interfaz y base de datos para el sistema.
Siguiendo con los apuntes de Ingeniería de Software para la Ingeniería en Computación, de la Universidad Tecnologica de la Mixteca en Huajuapan de León, Oaxaca México.
Planificación de un proyecto de ingeniería de softwareovefa
El documento habla sobre la planificación, organización, dotación de personal y control de proyectos de ingeniería de software. Describe los principales problemas en cada una de estas áreas como requerimientos incorrectos, falta de planificación, estructuras organizacionales inadecuadas, selección y retención deficiente de personal, y falta de métricas y controles de calidad. También enumera seis errores comunes relacionados con las personas como motivación débil, personal mediocre, empleados problemáticos, énfasis en hazañas, agregar más personal a proyect
La ingeniería de software concierne a las teorías, métodos y herramientas para el desarrollo, administración y evolución de productos de software. Existen varios modelos de procesos de software como el modelo de cascada, modelo evolutivo y modelo de espiral. Los ingenieros de software deben considerar aspectos técnicos así como también responsabilidades éticas, sociales y profesionales durante el desarrollo de sistemas.
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos TradicionalesSergio Sanchez
El documento describe los principales aspectos de un proceso de desarrollo de software, incluyendo las etapas de planificación, análisis de requerimientos, diseño, codificación, pruebas, liberación y mantenimiento. También discute diferentes modelos de proceso de software como el modelo cascada, modelo en V, desarrollo por incrementos e iteraciones, prototipos, espiral y RUP.
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
El documento trata sobre la trazabilidad y configuración de software. Explica que la gestión de configuraciones es el proceso de identificar, organizar y controlar los cambios en el software a lo largo de su desarrollo y mantenimiento. Se definen los elementos de configuración de software y se describen las tareas clave de la gestión de configuraciones como la identificación, control de cambios y auditorías.
Ingeniería de requisitos e ingeniería de requerimientosCesar Prado
Este documento resume los conceptos clave de la ingeniería de requisitos. Explica que la ingeniería de requisitos es el proceso de desarrollar especificaciones de software mediante la recopilación, análisis y verificación de las necesidades del cliente. Describe las fases de la ingeniería de requisitos como la captura y análisis de requisitos, la especificación, la validación y la gestión de cambios. También explica técnicas comunes como entrevistas, talleres y casos de uso para descubrir requisitos del cliente.
Este documento describe varias técnicas para estimar los costos de proyectos de software. Presenta métricas como líneas de código y puntos de función que pueden usarse para estimar el tamaño de un proyecto. También describe factores que afectan los costos como la capacidad de los programadores, la complejidad del producto y el tiempo disponible. Finalmente, resume técnicas como el juicio experto y Delphi para realizar estimaciones.
Grupo 5 - Introducción a la ing. en software
Problemas en el Desarrollo de software
- Kevin Dominguez
- Johan Lasso
- Fernando Matamoros
- Kleber Cagua
- Kayler Zuñiga
Este documento presenta un ensayo sobre la calidad de software. Describe la ingeniería de software, incluyendo sus definiciones, metodologías, ciclo de vida y factores de calidad. Explica conceptos como los costos asociados con la calidad, las características y mitos del software, y las capas de la ingeniería de software. Finalmente, define la calidad de software y sus factores internos y externos.
Análisis de riesgos de un proyecto de softwareAngel Reyes
Este documento describe el análisis de riesgos de un proyecto de software. Explica que el análisis de riesgos es un proceso para identificar los riesgos, su probabilidad de ocurrencia e impacto, y determinar los controles para mitigarlos. También define los tipos de riesgos como riesgos de proyecto, técnicos y de negocio, y métodos para identificarlos como listas de verificación. El objetivo final es cuantificar los riesgos y determinar acciones para controlarlos, eliminarlos, compartirlos o a
El documento describe el proceso de reingeniería de software. Este involucra actividades como análisis de inventarios, reestructuración de documentos, ingeniería inversa, reestructuración de programas y datos, e ingeniería directa, con el objetivo de crear versiones de programas existentes que sean de mejor calidad y más fáciles de mantener. El proceso también incluye mantenimiento del software a través de actividades correctivas, adaptativas, de mejora y preventivas.
La reingeniería de software involucra actividades como el análisis de inventarios, la reestructuración de documentos, la ingeniería inversa, la reestructuración de programas y datos, y la ingeniería directa, con el objetivo de crear versiones mejoradas de programas existentes que tengan una mayor calidad y facilidad de mantenimiento.
Este documento presenta información sobre diferentes temas de ingeniería de software como Cleanroom, reingeniería, ingeniería web y desarrollo basado en componentes. También incluye los nombres de los integrantes del equipo 4 de ingeniería de software aplicada.
El documento habla sobre el proceso de mantenimiento de software, el cual involucra correcciones de defectos, adición de nuevas funcionalidades y optimizaciones. Explica los tres tipos de mantenimiento - correctivo, adaptativo y perfectivo - y describe brevemente las actividades clave de la reingeniería de software como el análisis de inventarios, la ingeniería inversa y directa, y la reestructuración de programas y datos.
El documento habla sobre el proceso de mantenimiento de software, el cual involucra correcciones de defectos, adición de nuevas funcionalidades y optimizaciones. Explica los tres tipos de mantenimiento - correctivo, adaptativo y perfectivo - y describe brevemente las actividades clave de la reingeniería de software como el análisis de inventarios, la ingeniería inversa y directa, y la reestructuración de programas y datos.
El documento habla sobre procesos y calidad, ingeniería inversa, objetos reusables, CRM, ERP, casos de uso, etapas de construcción, costos de implantación de ERP, y reingeniería de software. Explica conceptos como ingeniería inversa, objetos reusables, CRM, ERP, casos de uso, etapas de construcción, costos de implantación de ERP, y reingeniería de software. Incluye preguntas sobre estos temas.
El documento trata sobre el tema de la reingeniería de software. La reingeniería implica rediseñar sistemas heredados para mejorar su estructura y comprensibilidad mediante actividades como redocumentar el sistema, reorganizar y reestructurar el código, traducir el sistema a un lenguaje más moderno y modificar la estructura y valores de los datos. El proceso de reingeniería busca crear versiones de programas existentes con mayor calidad y facilidad de mantenimiento.
El documento trata sobre el tema de la reingeniería de software. La reingeniería implica rediseñar sistemas heredados para mejorar su estructura y comprensibilidad, reimplementando los sistemas para hacerlos más mantenibles. Esto puede incluir redocumentar el sistema, reorganizar y reestructurar el código, traducir el sistema a un lenguaje más moderno y modificar la estructura y valores de los datos. La distinción clave entre reingeniería y nuevo desarrollo es que en la reingeniería el sistema existente sirve como
El documento habla sobre el mantenimiento de software y la reingeniería de software. Explica que el mantenimiento de software incluye correcciones, mejoras y adaptaciones a nuevos requisitos, pero que a menudo se realiza bajo presión y sin documentación adecuada. La reingeniería de software puede mejorar la comprensión y mantenibilidad del software mediante la reestructuración y el análisis inverso del código y procesos.
RUP es un proceso de desarrollo de software iterativo e incremental dirigido por casos de uso y centrado en la arquitectura. El proceso se divide en cuatro fases (inicio, elaboración, desarrollo y cierre) que incluyen varias iteraciones para desarrollar el software de forma incremental. Cada iteración pasa por los flujos de trabajo de requisitos, análisis, diseño, implementación y pruebas para refinar la arquitectura e integrar los resultados.
Este documento describe la ingeniería de requisitos y su importancia en el desarrollo de software. Define la ingeniería de requisitos como el proceso de recopilar, analizar y verificar las necesidades del cliente para un sistema. Su objetivo es entregar una especificación de requisitos completa y correcta. También discute técnicas como entrevistas y talleres para definir requisitos con precisión.
Este documento presenta información sobre ingeniería de requisitos e ingeniería de requerimientos. Explica que la ingeniería de requisitos es el proceso de definir las características de un sistema de software para satisfacer las necesidades de los clientes y usuarios. Su objetivo es entregar una especificación de requisitos correcta y completa. También describe las diferentes técnicas utilizadas en la ingeniería de requisitos como entrevistas, talleres y prototipos.
La ingeniería de software trata de establecer principios y métodos para desarrollar software fiable y de calidad que funcione en máquinas reales. El software de calidad debe cumplir con los requisitos de diseño, ser seguro, tener interfaces fáciles de usar, y ser capaz de transferirse entre entornos manteniendo la consistencia de datos. Estándares como ISO 12207 e ISO SPICE definen los pasos para desarrollar software de calidad y evaluar procesos.
RUP es un proceso de desarrollo de software iterativo e incremental que se centra en los casos de uso y la arquitectura. RUP tiene como objetivos asegurar la calidad del software dentro de los plazos y presupuestos previstos. El proceso se basa en iteraciones que permiten comprender mejor los requerimientos a medida que se desarrolla el sistema de forma incremental. Cada iteración aborda una parte de la funcionalidad total y refina la arquitectura.
RUP es un proceso de desarrollo de software iterativo e incremental que se centra en los casos de uso y la arquitectura. RUP tiene como objetivos asegurar la calidad del software dentro de los plazos y presupuestos previstos. El proceso se basa en iteraciones que permiten comprender progresivamente los requerimientos a medida que se desarrolla el sistema de forma incremental. Cada iteración aborda una parte de la funcionalidad total y refina la arquitectura.
RUP es un proceso iterativo e incremental para el desarrollo de software que define roles, actividades y artefactos. Se enfoca en los casos de uso, la arquitectura y la calidad. El ciclo de vida incluye iniciar, elaborar, construir y transición a través de iteraciones. Las actividades clave son requisitos, análisis, diseño, implementación, pruebas y despliegue.
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.
Este documento habla sobre las métricas del software. Explica que las métricas nos ayudan a entender el proceso de desarrollo de software y la calidad del producto final. Luego describe diferentes tipos de métricas como métricas técnicas, de calidad, de productividad, orientadas a la persona y orientadas a la función, las cuales miden aspectos como la estructura, requisitos, rendimiento del proceso de desarrollo y funcionalidad del software. Finalmente, menciona algunas fórmulas para medir la productividad, cal
En este trabajo les presentamos de como se va originando el Desarrollo de Software y como realizar el manejo con los pasos para la empresa que tengamos.
El documento describe varias metodologías y métodos para el desarrollo de sistemas de información. Explica que la introducción de nuevos sistemas implica cambios organizacionales como la automatización, racionalización, rediseño de procesos y cambio de paradigma. También describe las actividades básicas del desarrollo de sistemas como el análisis, diseño, programación, pruebas y mantenimiento. Las metodologías principales para modelar y diseñar sistemas son las metodologías estructuradas y el desarrol
Ingeniería del software basada en componentesjose_macias
La ingeniería del software basada en componentes (ISBC) es un proceso centrado en el diseño y construcción de sistemas informáticos mediante la reutilización de componentes de software. Representa la filosofía de "comprar en lugar de construir" y pasa de programar software a componer sistemas mediante componentes reutilizables. El proceso implica establecer requisitos, diseñar la arquitectura, determinar qué subsistemas se compondrán de componentes existentes y cuáles se construirán, y componer finalmente los componentes de ac
1. El documento presenta un equipo de cuatro integrantes que trabajan en gestión del cambio. 2. Explica que la gestión del cambio es importante para mantener la integridad del software ante cambios y evitar confusiones. 3. Resalta que los elementos clave de la gestión del cambio son identificar, registrar, reportar y controlar los cambios de manera que mejore la calidad del software.
El documento discute varios puntos de vista sobre la calidad, incluyendo las perspectivas del usuario, fabricante y basada en el valor. También describe la calidad del diseño, conformidad y software, resaltando que un proceso efectivo, un producto útil y agregar valor para los usuarios y productores son importantes para la calidad del software. Finalmente, cubre factores como funcionalidad, confiabilidad y mantenibilidad según la norma ISO 9126.
El documento identifica y analiza los riesgos asociados con un proyecto de ingeniería de software. Explica que la gestión de riesgos implica identificar, estimar y crear un plan para abordar los riesgos. Luego identifica varias categorías de riesgos técnicos, de negocio, de proyecto y más que podrían afectar el proyecto.
Calendarización de Proyectos de Softwarejose_macias
La calendarización de proyectos de software implica dividir el proyecto en tareas concretas, estimar el tiempo y recursos necesarios para cada una, y organizarlas de forma concurrente y con pocas dependencias para optimizar los recursos. Una calendarización adecuada, con seguimiento periódico y ajustes cuando sea necesario, permite entregar el proyecto de software con éxito.
Administración de proyectos de desarrollo de softwarejose_macias
El documento proporciona información sobre la estimación de proyectos de desarrollo de software. Explica que la estimación es una etapa de planificación para determinar el tiempo, esfuerzo y recursos necesarios para un proyecto de software. Describe los pasos de la estimación y diferentes herramientas como la descomposición y modelos empíricos como COCOMO.
Las métricas permiten medir la eficacia de los procesos y proyectos de software mediante la recopilación de datos cuantitativos. Los ingenieros de software recopilan las métricas y los gestores de software las analizan para identificar tendencias y mejorar las estimaciones. Algunas métricas comunes incluyen defectos, líneas de código y esfuerzo de desarrollo.
2. INGENIERÍA DE SOFTWARE
REINGENIERIA
Integrantes:
Hernández Juárez Daniel
Bravo Montoya Sergio
Zavala Rodríguez Luis Hugo
Alamilla Cervantes César Geovani
3. INTRODUCCION
REINGENIERIA DE PROCESOS DE NEGOCIO (RPN)
REINGENIERIA DE SOFTWARE
INGENIERIA INVERSA
REESTRUCTURACION
INGENIERIA DIRECTA
4. INTRODUCION
¿Qué es?
Es el proceso de reconstrucción del software, crear un producto con una
mejor funcionalidad, mejor desempeño y fiabilidad, así como una mejor
facilidad de mantenimiento.
¿Quién la hace?
En el ámbito de las organizaciones, la reingeniería la llevan a cabo
especialistas en negocios. En nuestro ámbito lo realizan los ingenieros de
software.
¿Por qué es importante?
Por que nos permite mantenernos en el ritmo de las exigencias de las
nuevas tecnologías, por tal motivo el software tendrá que rediseñarse para
estar en ritmo.
5. INTROCUCION
¿Cuáles son los pasos?
El proceso de reingeniería de software incluye análisis de inventarios,
reestructuración de documentos, ingeniería inversa, reestructuración de
programas y datos, e ingeniería avanzada.
¿Cuál es el producto obtenido?
Se produce una diversidad de productos de trabajo de reingeniería. Ejemplo:
Modelos de análisis, modelos de diseño, procedimientos de prueba, entre
otros.
¿Cómo puedo estar seguro de que lo he hecho correctamente?
Utilizando las mismas prácticas de SQA (Software de control de calidad)
que se aplican a cualquier proceso de ingeniería del software: las
revisiones técnicas formales evalúan los modelos de análisis y de diseño;
las revisiones especializadas consideran la aplicabilidad y la compatibilidad
en el negocio; y las pruebas se aplican para descubrir errores en
contenido, funcionalidad e interoperabilidad.
6. REINGENIERIA DE PROCESOS DE NEGOCIO (RPN)
“La búsqueda e implementación de un cambio radical en el proceso de
negocios para lograr resultados de vanguardia”.
7. REINGENIERIA DE PROCESOS DE NEGOCIO (RPN)
Procesos de negocios.
Es un conjunto de tareas lógicamente relacionadas que se ejecutan para lograr
un resultado de negocios específico; dentro de este se combina la gente, el
equipo, los recursos materiales y los procedimientos del negocio para producir
un resultado específico. Los ejemplos de proceso de negocios incluyen el
diseño de un nuevo producto, la compra de servicios y suministros, la
contratación de un nuevo empleado y el pago a proveedores. Cada uno
demanda un conjunto de tareas y también emplea diversos recursos dentro del
negocio.
8. REINGENIERIA DE PROCESOS DE NEGOCIO (RPN)
Procesos de negocios.
Cada proceso de negocio tiene un cliente definido: una persona o grupo que
recibe el resultado. Además los procesos de negocio traspasan las fronteras
de la organización.
Cada sistema de negocio está compuesto de uno o mas procesos de negocio,
y cada proceso de negocio lo define un conjunto de subprocesos.
9. REINGENIERIA DE PROCESOS DE NEGOCIO (RPN)
Un Modelo de RPN
La RPN es iterativa, las metas del negocio y los procesos con que se logran se
deben adaptar a un entorno de negocios cambiante. Por tal razón no existe
principio ni fin para la RPN.
10. REINGENIERIA DE PROCESOS DE NEGOCIO (RPN)
Un Modelo de RPN
Definición del negocio: El mismo que se identifica con cuatro controladores
clave:
Reducción de costo
Reducción de tiempos
Mejora de la calidad
Desarrollo y fortalecimiento del personal.
Identificación del proceso: Se identifican los procesos claves para así lograr
las metas precisas en la definición del negocio.
Evaluación del Proceso: se hace un análisis del proceso existente así como
también identificamos las tareas del proceso, tomamos nota de los costos y el
tiempo que consumen las tareas; aislando los problemas de calidad y
desempeño.
11. REINGENIERIA DE PROCESOS DE NEGOCIO (RPN)
Un Modelo de RPN
Especificación y diseño del proceso: Preparamos casos de uso para cada
proceso que será rediseñado. Aquí los casos de uso identifican un escenario
que entrega cierto resultado a un cliente. Con el caso de uso como la
especificación del proceso se diseña un nuevo conjunto de tareas para el
proceso.
Elaboración de Prototipos: Un proceso de negocios rediseñado debe
convertirse en prototipo antes de que sea integrado por completo en el
negocio.
Refinamiento y particularización: Con base en la retroalimentación del
prototipo, el proceso de negocio se refina y luego se particulariza dentro de un
sistema de negocio.
12. REINGENIERIA DE SOFTWARE
La reingeniería de software involucra diferentes actividades como lo son:
análisis de inventarios, reestructuración de documentos, ingeniería inversa,
reestructuración de programas y datos, e ingeniería directa; con la finalidad de
crear versiones de programas ya existentes que sean de mejor calidad y los
mismos tengan una mayor facilidad de mantenimiento.
13. REINGENIERIA DE SOFTWARE
Mantenimiento del software
El mantenimiento del software se define identificando cuatro actividades
diferentes como lo son: mantenimiento correctivo, mantenimiento
adaptativo, mejora o mantenimiento de perfeccionamiento y mantenimiento
preventivo o reingeniería. Según estadísticas el 20 % del trabajo de
mantenimiento se emplea en “componer errores”. El restante 80% se dedica a
adaptar los sistemas existentes a los cambios en su entorno externo.
15. REINGENIERIA DE SOFTWARE
Un modelo de Proceso de Reingeniería del software.
Análisis de Inventarios: Las organizaciones de software deberían tener un
inventario de todas sus aplicaciones. El inventario tal vez no sea más que un
modelo en una hoja de cálculo que contenga información que proporcione una
descripción detallada (tamaño, edad, importancia para el negocio) de las
aplicaciones activas. Es importante señalar que el inventario deberá visitarse con
regularidad, el estado de las aplicaciones puede cambiar en función del tiempo y, como
resultado, cambiaran las prioridades para la reingeniería.
16. REINGENIERIA DE SOFTWARE
Un modelo de Proceso de Reingeniería del software.
Reestructuración de documentos. La documentación débil es la marca de
muchos sistemas heredados. ¿Pero que se hace acerca de ello? ¿Cuáles son
las opciones?. Crear documentación consume mucho tiempo, si el sistema funciona
Vivirá con lo que tenga. La documentación debe actualizarse pero se tiene recursos
limitados. Se utilizara un enfoque de “documentar cuando se toque”. El sistema es
crucial para el negocio y debe volver a documentarse por completo incluso en este caso
un enfoque inteligente es recortar la documentación a un mínimo esencial. Cada una de
estas opciones es viable. Una organización de software debe elegir la más apropiada
para cada caso.
17. REINGENIERIA DE SOFTWARE
Un modelo de Proceso de Reingeniería del software.
Ingeniería Inversa: Es el proceso de analizar un programa con la finalidad e
crear una representación del programa en un mayor grado de abstracción que
el código fuente. La ingeniería inversa es un proceso de recuperación de
diseño. Las herramientas de la ingeniería inversa obtienen información del
diseño de datos, arquitectónico y de procedimientos a partir de un programa
existente.
18. REINGENIERIA DE SOFTWARE
Un modelo de Proceso de Reingeniería del software.
Reestructuración de código: El tipo más común de reingeniería es la
reestructuración de código, se lo puede hacer con módulos individuales que se
codifican de una manera que dificultan comprenderlos, probarlos y
mantenerlos. Llevar a cabo esta actividad requiere analizar el código fuente
empleando una herramienta de reestructuración.
19. REINGENIERIA DE SOFTWARE
Un modelo de Proceso de Reingeniería del software.
Reestructuración de datos: La reestructuración de datos es una actividad de
reingeniería a gran escala. En la mayoría de los casos, la reestructuración de
datos comienza con una actividad de ingeniería inversa. La arquitectura de
datos actual se analiza con minuciosidad y se definen los modelos de datos
necesarios, se identifican los objetivos de datos y los atributos, y después se
revisa la calidad de las estructuras de datos existentes.
20. REINGENIERIA DE SOFTWARE
Un modelo de Proceso de Reingeniería del software.
Ingeniería directa: La ingeniería directa, también llamada renovación o
reclamación, no solo recupera la información de diseño a partir del software
existente, también utiliza esta información para alterar o reconstruir el sistema
existente con la finalidad de mejorar su calidad global. En la mayoría de los
casos el software sometido a reingeniería vuelve a implementar la función del
sistema existente y también añade nuevas funciones o mejora el desempeño
global.
21. Ingeniería Inversa
Proceso de analizar el software con el objetivo de
recuperar su diseño y especificación.
Requiere de entradas tal como el código fuente.
Se diferencia de la reingeniería pues esta trata de
obtener un nuevo sistema más sostenible.
22. Ingeniería Inversa
Grado de Abstracción.- Se refiere a la sofisticación del diseño que es
obtenido del código fuente. Conforme aumenta el nivel se obtiene información
que permitirá entender de mejor manera los diferentes programas.
Completitud:- Se refiere al grado de detalle que se ofrece en un grado de
abstracción, lo cual provee de una mejora en proporción directa con la cantidad
de análisis que efectúa quien realiza la ingeniería inversa. Además tomamos en
cuenta la interactividad refiriéndose al grado en que el humano esta integrado
con las herramientas para crear un proceso de ingeniería inversa efectivo. En
consecuencia con el aumento de los puntos antes mencionados se deberá
incrementar la completitud.
Direccionalidad.- tiene que ver en dos sentidos, para el caso de ser
unidireccional, la información obtenida del código fuente servirá en cualquier
actividad de mantenimiento. Por otra parte si es bidireccional, la información
alimentara a herramientas de REINGENIERIA que reestructurara o regenerara
el software anterior.
23. PARA COMPRENDER DATOS.
Es una de las primeras tareas de
reingeniería, ya que la frecuente ocurrencia
de los datos en distintos niveles de
abstracción, las estructuras de los datos
internos son sometidos a esta tarea para
ajustarlos con los paradigmas de la gestión
de BBDD, con lo cual se establecen
escenarios para la introducción a bases de
datos nuevas que contengan todo el sistema.
24. Estructuras de datos internos
Enfoca a la definición de clases de objetos
para examinar el código con el fin de agrupar
las variables que se pueden relacionar.
25. Estructuras de base de datos
Permite comprender los objetos existentes y sus
respectivas relaciones.
26. Estructuras de base de datos
QUE PASOS SE SIGUEN?
1. Construcción de un modelo inicial de objeto.
2. Determinación de los candidatos claves.
3. Refinar las clases tentativas.
4. Definición de generalidades.
5. Descubrimiento de asociaciones.
Luego se realiza una serie de transformaciones para
correlacionar con el modelo anterior con la nueva.
27. PARA COMPRENDER EL PROCESAMIENTO.
Trata de comprender y extraer abstracciones
de los procedimientos que se representan en
el código.
Para esto se debe analizar en grados
variables de abstracción como sistema,
programa, componentes, patrones y
planteamiento.
28. PARA COMPRENDER EL PROCESAMIENTO.
Además se debe considerar la funcionalidad
de forma global
29. DE INTERFACES DE USUARIO.
Antes de reconstruir cualquier interfaz de
usuario se realiza actividades de II, se
requiere especificar estructuras y
comportamientos de las interfaces.
Consideraciones
¿Cuáles son las acciones básicas que procesa la interfaz?
¿Descripción del comportamiento del sistema a dichas acciones?
¿Qué equivalencia de las interfaces es mas relevante?.
30. Reestructuración
Modifica el código o los datos con la finalidad
de adecuarlos para futuros cambios.
No modifica la arquitectura sino que se
enfoca sobre detalles de diseño de los
módulos y en la estructura de datos
31.
32. Reestructuración de código
Genera un diseño que produzca la misma
función del programa pero con mayor
calidad.
El objetivo es tomar una porción de código y
derivar el diseño de procedimientos que
concuerden con la filosofía del mismo.
33. Reestructuración de datos
Primero se realiza el ANALISIS del código
fuente.
Se evalúan las definiciones de los datos,
archivos, O/I e Interfaces.
Extraer elementos y objetos de datos para
obtener información del flujo de datos y
comprender la estructura
34. Reestructuración de datos
Rediseño de datos trata de que exista
consistencia de los mismos (nombres y
formatos de registro) en una estructura de
datos o formato de archivo.
Racionalización de nombre asegura que el
nombramiento de datos concuerden con el
estándar local y elimina los pseudónimos
(flujo de datos a través del sistema)
35. INGENIERIA DIRECTA
Se puede trabajar modificación tras
modificación y luchar con el diseño para
implementar los cambios.
Intentar conocer el funcionamiento interno
del SW para realizar modificaciones
eficientes.
Rediseñar, recodificar y. probar el Sw en un
enfoque de Ingeniería de Sw
36. GRACIAS
por su atención, nos reservamos el
derecho de contestar cualquier pregunta