Ingeniería del software Algunas definiciones Ingeniería del software ● "El establecimiento y uso de principios de Ingeniería bien fundados (y de métodos) para obtener software fiable, económico y que funcione en máquinas reales" (Bauer, 1972) Ingeniería del software ● La aplicación de un enfoque sistemático, disciplinado y cuantificable para el desarrollo, operación y mantenimiento del software. (Institute of Electrical and Electronics Engineering (1993)) Elementos de la Ingeniería del software Principios Métodos Técnicas Herramientas Heurísticas Estrategias definiciones Principios: Son enunciados acerca de la conveniencia, o no, de las distintas propiedades que puede poseer un producto software, y el proceso de producción correspondiente, y sobre la relación existente entre unas propiedades y otras. definiciones métodos: ● ● ● Los métodos definen procedimientos que permiten obtener productos software, o partes de los mismos. Estos procedimientos estructuran el conjunto de tareas de producción prescritas por el método. Los métodos se basan en los principios de ingeniería y hacen uso de técnicas y herramientas. definiciones técnicas Las técnicas definen procedimientos para realizar tareas de producción de software. La diferencia entre los conceptos de método de ingeniería y técnica no es substancial sino de grado. Las técnicas suelen tener una visión más particular, unos objetivos menos ambiciosos y menor grado de entroncamiento con los principios de ingeniería. definiciones Herramientas ● Son útiles que facilitan la realización de las tareas de producción. Distinguiremos dos tipos de herramientas: – de representación o modelización: son notaciones, gráficas o de escritura, que facilitan la representación del software o de la realidad. – automáticas de ayuda: son programas que ayudan en la realización de las tareas. definiciones Heurísticas ● Son formas concretas de realizar tareas, o de resolver problemas, avaladas por la experiencia práctica, que normalmente, aunque no siempre, permiten obtener buenos resultados definiciones Estrategias ● En la Ingeniería del Software se usa una acepción restringida de este término, a saber: una ordenación genérica de prioridades, a la hora de proponer objetivos, resolver problemas o realizar tareas. Aspectos de los que se ocupa.. Modelos de proceso Especificación de requerimientos del sistema Especificación de requerimientos del software Diseño de software Implementación Verificación y Validación (V&V) Mantenimiento Gestión de la producción Evaluación Control y mejora de la calidad Modelos de proceso (modelos de ciclo de vida) ● ● El ciclo de vida es la distribución de sucesos y actividades a lo largo del proceso de producción de Software, y durante el mantenimiento. Los modelos de ciclo de vida proponen formas de estructurar y gestionar el mismo. Especificación de requerimientos del sistema ● ● Los sistemas software forman parte de otros sistemas más amplios, en los que se integran y deben desempeñar su misión. Estos sistemas deben estudiarse para garantizar que el software contribuya al logro de los objetivos globales del sistema. Especificación de requerimientos del software ● Se trata de especificar las funciones que debe desempeñar el software, las exigencias que debe satisfacer en el desempeño de esas funciones y las que debe cumplir el proceso de producción. Diseño de software ● El diseño consiste en la búsqueda y especificación (Especificación del Software) de una estructura para el Software que satisfaciendo los requerimientos se pueda construir con los recursos disponibles. Implementación ● La instrumentación o implementación comprende la elaboración del código de programa y la creación de las estructuras de datos persistentes. Verificación y Validación (V&V) ● La verificación tiene como objetivo garantizar la corrección de los productos software. Un programa correcto ● La validación tiene como objetivo garantizar que los productos software satisfacen sus requerimientos. El programa correcto Mantenimiento ● Durante el mantenimiento se intenta eliminar fallos de los productos software, mejorarlos o adaptarlos a los cambios que hayan podido surgir en su entorno real. Gestión del proceso ● Abarca todo lo referente a la planificación, organización y control del proceso de producción de software. Evaluación de software ● Es muy útil poder valorar las cualidades de los productos software, y de los procesos de producción, mediante medidas cuantitativas en la medida de lo posible; y esto de cara al control de calidad, y a la obtención de información útil para futuros proyectos. Control y mejora de la calidad ● Este tema, el motor que ha impulsado durante los últimos años la competitividad de las empresas más prósperas de cualquier sector, no podría ignorarse en la industria del software.