Descargar

Ingeniería de software

Enviado por Pablo Turmero


    edu.red Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos que pertenecen a un sistema de cómputo". Ingeniería de Software Definición de Software

    edu.red Ingeniería de Software Características del Software IntangibleNo se deterioraRequiere de Hardware

    edu.red Ingeniería de Software Componentes del Software ProgramasDocumentaciónDatosProcedimientos

    edu.red Bondades deseables en un Producto de Software Mantenible. Debe ser posible que el software evolucione y que siga cumpliendo con sus especificaciones. Confiable. El software no debe causar daños físicos o económicos en el caso de fallas. Eficiente. El software no debe desperdiciar los recursos del sistema. Fácilmente usable. El software debe contar con una interfaz de usuario adecuada además de su documentación. Ingeniería de Software

    edu.red En el año 1968 que se convocó una reunión en Garmisch, Alemania Oriental, estimulándose el interés hacia los aspectos técnicos y administrativos utilizados en el desarrollo y mantenimiento de software, y fue en esa ocasión donde se utilizó el término "Ingeniería de Software". Ingeniería de Software Origen de la Ingeniería de Software

    edu.red La ingeniería de software se define como la disciplina tecnológica preocupada de la producción sistemática y del mantenimiento de los productos de software que son desarrollados y modificados en tiempo y dentro de un presupuesto definido. (Fairley, 1985). Ingeniería de Software

    edu.red "la Ingeniería de Software es la rama de la ingeniería que aplica los principios de las ciencias de computación y las matemáticas para lograr soluciones técnicas efectivas (eficaces en costo o económicas) a los problemas de desarrollo de software", es decir, "permite elaborar consistentemente productos correctos, utilizables y costo-efectivos" (Cota 1994). Ingeniería de Software

    edu.red Es el conjunto de métodos, técnicas y herramientas que controlan el proceso integral del desarrollo de software y suministra las bases para construir software de calidad de forma eficiente en los plazos adecuados (Enciclopedia Wikipedia). Ingeniería de Software

    edu.red Costos de la eficiencia Costos Eficiencia Ingeniería de Software

    edu.red Métodos o técnicas: Indican cómo construir técnicamente el software, y abarca una serie de tareas que incluyen la planificación y estimación de proyectos, el análisis de requisitos, el diseño de estructuras de datos, programas y procedimientos, la codificación, las pruebas y el mantenimiento. Los métodos introducen frecuentemente una notación específica para la tarea en cuestión y una serie de criterios de calidad. Ingeniería de Software La Ingeniería de software abarca cuatro elementos clave:

    edu.red Herramientas: Son instrumentos o sistemas automatizados para realizar algo de la mejor manera posible. Esta manera óptima puede significar que la herramienta produce resultados más exactos, más eficientes, más productivos, o que refuerza la calidad del producto resultante. Proporcionan un soporte automático o semiautomático para todas las fases del desarrollo y sistemas que integran las herramientas de cada fase de manera que sirven para todo el proceso. Estas herramientas se denominan CASE (Computer Aided Software Engineering). Ingeniería de Software

    edu.red Procedimientos: Son la combinación de las técnicas y las herramientas que en forma conjunta dan un resultado particular. Los procedimientos indicarán qué herramientas deberán utilizarse cuando se aplican determinadas técnicas. Definen la secuencia en que se aplican los métodos, los documentos que se requieren, los controles que aseguran la calidad y las directrices que permiten a los gestores evaluar los progresos. Ingeniería de Software

    edu.red Paradigmas: Representan un enfoque particular o filosofía para la construcción del software. No es mejor uno que otro sino que cada uno tiene ventajas y desventajas. También hay situaciones donde un paradigma resulta más apropiado que otro. Ejemplos: Análisis orientado a objetos y Análisis estructurado. Ingeniería de Software

    edu.red Un modelo de ciclo de vida de software es una vista de las actividades que ocurren durante el desarrollo de software, intenta determinar el orden de las etapas involucradas y los criterios de transición asociadas entre estas etapas. Ingeniería de Software Ciclo de vida

    edu.red El proceso que se sigue para construir, entregar y hacer evolucionar el software, desde la concepción de una idea hasta la entrega y el retiro del sistema. Ingeniería de Software Ciclo de vida

    edu.red Un modelo de ciclo de vida del software describe las fases principales de desarrollo de software. Define las fases primarias esperadas de ser ejecutadas durante esas fases. Ayuda a administrar el progreso del desarrollo, y provee un espacio de trabajo para la definición de un detallado proceso de desarrollo de software. Ingeniería de Software Ciclo de vida

    edu.red Winston Royce a fines del 70. Ingeniería de Software Ciclo de vida Clásico

    edu.red A tiempo y en presupuesto Discontinados Promedios 189% del presupuesto 221% del tiempo 61% de la funcionalidad pretendida Sobrepasados Standish Group CHAOS Report 1995 Ingeniería de Software La Crisis del Software

    edu.red Mitos de Gestión Mito. Tenemos ya un libro que está lleno de estándares y procedimientos para construir software. ¿No le proporciona ya a mi gente todo lo que necesita saber?. Realidad. Está muy bien que el libro exista, pero ¿Se usa? ¿Conocen los trabajadores su existencia? ¿Refleja las prácticas modernas de desarrollo de software? ¿Es completo? En muchos casos, la respuesta a todas estas preguntas es "no"?. Ingeniería de Software Mitos en los Proyectos de Software

    edu.red Mito. Nuestra gente dispone de las herramientas de desarrollo de software más avanzadas; después de todo, les compramos las computadoras más nuevas. Realidad. Se necesita mucho más que el último modelo de computadora grande (o de PC) para hacer desarrollo de software de gran calidad. Las herramientas de ingeniería del software asistida por computadora (CASE), aunque no se usen la mayoría , son más importantes que el hardware para conseguir buena calidad y productividad. Ingeniería de Software Mitos en los Proyectos de Software

    edu.red Mito. Si fallamos en la planificación, podemos añadir más programadores y adelantar el tiempo perdido. Realidad. El desarrollo de software no es un proceso mecánico como la fabricación. Brooks dice: "Añadir gente a un proyecto de software retrasado lo retrasa aún más". Ya que cuando se añaden nuevas personas, la necesidad de aprender y comunicarse con el equipo puede y hace que se reduzca la cantidad de tiempo gastado en el desarrollo productivo. Puede añadirse gente, pero de una manera planificada y bien coordinada. Ingeniería de Software Mitos en los Proyectos de Software

    edu.red Mitos del Cliente Mito. Una declaración general de los objetivos es suficiente para comenzar a escribir los programas. (podemos detallar m&aacutes adelante). Realidad. Una mala definición inicial es la causa principal del trabajo baldío en software. Es esencial una descripción formal y detallada del ámbito de la información, funciones, rendimiento, etc. Y todas éstas características sólo se pueden determinar después de una exhaustiva comunicación entre cliente y analista. Ingeniería de Software Mitos en los Proyectos de Software

    edu.red Mito. Los requisitos del proyecto cambian continuamente, pero los cambios pueden acomodarse fácilmente, ya que el software es flexible. Realidad. Es verdad que los requisitos del software cambian pero el impacto del cambio varía según el momento en que se introduzca. Entre más temprano se realicen mejor. Ingeniería de Software Mitos en los Proyectos de Software

    edu.red Mitos de los Desarrolladores. Mito. Una vez que escribimos el programa y hacemos que funcione, nuestro trabajo ha terminado. Realidad. Alguien dijo una vez: "Cuando más pronto se comience a escribir código, más se tardará en terminarlo". Datos industriales indican que entre el 50 y el 70 por ciento de todo el esfuerzo dedicado a un programa se realizará después de que se le haya entregado al cliente por primera vez. Ingeniería de Software Mitos en los Proyectos de Software

    edu.red Mito. Hasta que no tengo el programa “ejecutándose” realmente no tengo forma de comprobar su calidad. Realidad. Desde el principio del proyecto se puede aplicar uno de los mecanismos más efectivos para garantizar la calidad del software (Revisión de Técnica Formal). La revisión del Software es un "filtro de calidad" que se ha comprobado que es más efectivo que la prueba, para encontrar ciertas clases de defectos en el software. Ingeniería de Software Mitos en los Proyectos de Software

    edu.red Mito. Lo único que se entrega al terminar es el programa funcionando. Realidad. Un programa que funciona es sólo una parte de una configuración del software que incluye todos los elementos tales como el Análisis, Diseño, Documentación del Sistema, etc.. Ingeniería de Software Mitos en los Proyectos de Software

    edu.red Qué Construir? Porqué? Qué tan bien?- Equilibrio de los requerimientos Quiénes deben construirlo? Donde?- Asesores; Personal Propio; Agentes externos Cómo construirlo? Cúando y en qué orden?-procesos, métodos, herramientas, componentes. Cómo adaptarse a los cambios-requerimientos y necesidades, tecnología, mercado Cúanto es suficiente?-Funcionalidad, cualidades, especificaciones, prototipos, pruebas Ingeniería de Software Principales Desafíos

    edu.red Ingeniería de Software Enfoque tradicional versus tendencias emergentes Orientado al Contrato su problema; gana-pierde Secuencial focalizado en procedimientos Programación Centrado en la disciplina y el control Orientado a la Colaboración Nuestro problema; win-win Ciclico y concurrente Focalizado en el riesgo (utilidades) Reuso Mezcla de flexibilidad y disciplina.

    edu.red Resumen 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. Los productos de software consisten de programas, datos y documentación. Los atributos deseables de los productos son, mantenible, confiable, eficiente y fácilmente usable. El proceso de software consiste en aquellas actividades involucradas en el desarrollo de software. Este proceso conforma junto a la mantención el ciclo de vida del software. Ingeniería de Software