La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Ingeniería de Software I Conceptos Básicos de la Ingeniería de Software.

Presentaciones similares


Presentación del tema: "Ingeniería de Software I Conceptos Básicos de la Ingeniería de Software."— Transcripción de la presentación:

1 Ingeniería de Software I Conceptos Básicos de la Ingeniería de Software

2 Objetivos Introducir los conceptos fundamentales de la disciplina Conocer las características del Software Fundamentar el desarrollo de software a partir de la Ingeniería de Software

3 Contenido Generalidades de la Ingeniería de Software Grandes proyectos de Software Características del producto de software Principios, métodos, herramientas y metodologías

4 Generalidades de la IS Qué es la Ingeniería de Software ?? Es el área de las ciencias de la computación que trata con la construcción de sistemas de software, los cuales son tan grandes y complejos que se construyen con equipos de ingenieros [Ghezzi 91]. El establecimiento y uso de principios de ingeniería robustos, orientados a obtener software económico que sea fiable y funcione de manera eficiente sobre máquinas reales (Fritz Bauer)[NAU69]. Es un conjunto de tres elementos claves – métodos, herramientas y procedimientos – que facilitan el control del proceso de desarrollo del software para obtener un producto de calidad de una forma productiva (Pressman) [PRE25].

5 Generalidades de la IS Porqué la Ingeniería de Software ?? En los inicios, el desarrollo de sistemas basados en computador ponía énfasis en el Hardware más que en el Software. El desarrollo de software se veía más bien como un arte Hoy, el mayor costo y riesgo del desarrollo de sistemas basados en computador no están en el Hardware, sino que en el Software. El desarrollo de Software ya no implica sólo el desarrollo de algunos programas, si no que sistemas cada vez más complejos de millones de líneas de código, interfaces e interacción con sistemas de Bases de Datos. El componente SOFTWARE es cada día más crítico para el negocio

6 Generalidades de la IS Historias de terror El Bank of America gastó US$23 M en un proyecto a 5 años. Se terminó gastando mas de US$60 M para finalmente abandonar el proyecto. Pérdidas totales estimadas en mas de US$1000 M. El bombardero B1 requirió US$ 1000 M más de lo proyectado para mejorar sus sistema de defensa AllState (seguros) comenzó en 1982 un proyecto de automatización integral de sus operaciones de 5 años de duración y US$8 M de presupuesto. Fue abandonado en 1993 después de gastar US$100 M. Blue Cross (isapre norteamericana) perdió más de US$60 M en pagos incorrectos debido a un error en el software por el que habían pagado mas de US$200 M.

7 Generalidades de la IS Porqué la Ingeniería de Software ?? Porqué lleva tanto tiempo terminar los Sistemas ? Porqué tiene un costo tan elevado ? Porqué no podemos encontrar todos los errores antes de liberar el Software ? Porqué no cumplimos los plazos de entrega ? Porqué no entregamos un software de buena calidad ? Son algunas de las preguntas que motivan el desarrollo de la Ingeniería de Software, como la disciplina que permite desarrollar un producto de software en un tiempo prudente, con costos razonables, que sea fiable y de buena calidad.

8 Grandes proyectos de software Qué es un proyecto grande de software ? Cuántas líneas de código tiene Windows NT ?Entre 6 y 10 Millones El software del Bombardero B2 tiene 3.5 Millones Un switch telefónico típico tiene 2 Millones Como referencia, 1 Millón de líneas de código (1MLOC) equivale a: páginas (75 líneas por página) 26 tomos de 500 páginas cada uno 22 horas para imprimir (10 pp/min) Medio día para recompilar

9 Particularidades de estos sistemas ESCALA: Una sola persona no puede entenderlo todo COMPLEJIDAD: Requiere trabajo en equipo problemas humanos, coordinación, motivación, etc. CAMBIO: Durante y después del desarrollo VIDA: Años, décadas IMPRECISIÓN: Requerimientos, Diseños, programas, resultados Grandes proyectos de software

10 Cuál es el problema ? Problemas de mantenimiento Altísimas probabilidades de errores sólo en ESCRIBIR el código Enorme cantidad de tiempo para incorporar modificaciones o nuevos requerimientos Atrasos (Eje: Windows95 liberado recién en 1996) Excesivo gasto en mantenimiento (En promedio, se gasta el 60% de los recursos en mantenimiento) Altos costos Recurso Humano: Difícil cuantificación; A veces muy escaso o simplemente no existe Metodologías: Variadas y difíciles de comparar entre si; El avance en el desarrollo o generación de nuevas metodologías es tremendamente lento respecto al avance tecnológico Herramientas de productividad: No existe gran variedad, aunque si gran cantidad; productos propietarios; son caras; no siempre son útiles. Planificación: Siempre se hace Nunca se cumple; Se sacrifica rápidamente las actividades planificadas debido a las urgencias del negocio. Grandes proyectos de software

11 Qué es Software ? 1) Instrucciones, o programas de computador, que cuando se ejecutan proporcionan la función y el comportamiento deseado Características del Software 2) Estructuras de datos que facilitan a los programas manipular adecuadamente la información 3) Documentos que describen la operación y el uso de los programas Software es 1), 2) y 3)

12 El Software se desarrolla, no se fabrica, no se manufactura Características del Software El Software no se desgasta, pero sufre de envejecimiento El Software no se desgasta, pero se estropea Durante la vida del software, se incorporan cambios que provocan nuevos errores No hay piezas de repuestos para el SW, como en el HW el mantenimiento del SW tiene una complejidad mayor que el mantenimiento del HW

13 Los diferentes tipos de SW contemplan: Características del Software SW de Sistemas: SW que sirve para otros SW SW de Tiempo Real: SW orientado a medir, analizar y controlar sucesos del mundo real, conforme suceden en la realidad SW de Gestión: SW orientado al procesamiento de información comercial y administrativo. (SW transaccional – SW de Gestión) SW Científico y de Ingeniería: SW para la astronomía, vulcanología, biología molecular, CAD, CASE, simuladores, fabricación automática, etc. SW Empotrado: SW residente en ROM que se utiliza para controlar productos y sistemas de los mercados industriales y de consumo: Microondas, automóvil, etc. SW de PC : Procesadores de texto, planillas electrónicas, etc. SW de IA (Inteligencia Artificial): Sistemas expertos, Sistemas basados en el conocimiento, etc.

14 Cualquier producto de Software debe contar con las siguientes características Características del Software Correctitud: Grado en que el producto de SW satisface los requerimientos para lo cual fue concebido. Es el mínimo nivel de calidad exigible Confiabilidad: Grado en que se puede esperar que el producto de SW realice las funciones esperadas, con la precisión requerida Robustez: Capacidad del SW para comportarse de manera razonable ante situaciones inesperadas. Portabilidad: Capacidad (Esfuerzo que se debe hacer para...) del SW para operar en diferentes ambientes (HW y SO) Reusabilidad:Grado en que el SW, o partes del SW, se pueden utilizar en otras aplicaciones, distintas al propósito original por el que fueron concebidos Eficiencia: La cantidad de recursos de computadora y de código requerido por el SW para llevar a cabo sus funciones (HW más poderoso v/s Algoritmos de Orden n2, n o constante)

15 QUÉ NECESITAMOS PARA CONSTRUIR PRODUCTOS DE SW PROFESIONALES ????? Principios, métodos, herramientas y metodología La clave está en dar un enfoque de ingeniería al desarrollo del SW y, al mismo tiempo, mejorar las técnicas y las herramientas en un proceso continuo Qué significa dar un enfoque de ingeniería ??? Significa construir productos de SW.... Basándonos en los principios de la Ingeniería de Software Aplicando los métodos adecuados a cada una de las etapas del proceso de desarrollo Utilizando las herramientas adecuadas, que nos permitirán aplicar los métodos de manera correcta

16 Principios, métodos, herramientas y metodología Manejo formal del proceso de desarrollo Documentación formal Trazabilidad Manejo de configuración y control de versiones QUÉ NECESITAMOS PARA CONSTRUIR PRODUCTOS DE SW PROFESIONALES ????? La clave está en dar un enfoque de ingeniería al desarrollo del SW y, al mismo tiempo, mejorar las técnicas y las herramientas en un proceso continuo Análisis cuidadoso del problema Diseño cuidadoso usando los principios del diseño (Abstracción, ocultamiento, etc.) Implementación cuidadosa Pruebas rigurosas Planificación y control del proyecto

17 Principios, métodos, herramientas y metodología En un proyecto de SW se genera, además del código, muchos otros documentos.... QUÉ NECESITAMOS PARA CONSTRUIR PRODUCTOS DE SW PROFESIONALES ????? La clave está en dar un enfoque de ingeniería al desarrollo del SW y, al mismo tiempo, mejorar las técnicas y las herramientas en un proceso continuo Requerimientos formales Diseño de alto nivel y diseño detallado Plan y casos de pruebas Documentación de usuarios Informes de errores y correcciones Plan de mantenimiento

18 Principios, métodos, herramientas y metodología La Ingeniería en general ataca problemas prácticos REALES Genera soluciones razonables en términos de costos, uso de recursos, etc. Tiene su base en la ciencia: Resultados repetibles, usa modelos matemáticos (es formal)

19 Principios, métodos, herramientas y metodología La IS se sustenta en Principios, métodos y técnicas, metodologías y herramientas Principios Proposiciones o verdades que rigen el desarrollo Ej: Principios del análisis de requisitos, principios del diseño Rigor y formalidad Grados de rigurosidad Sistematicidad Fundamentos matemáticos (métricas, medición de objetivos, estimaciones, etc.) Separación de intereses División del problema en partes Generación de las partes que conforman el todo

20 Principios, métodos, herramientas y metodología La IS se sustenta en Principios, métodos y técnicas, metodologías y herramientas Principios Proposiciones o verdades que rigen el desarrollo Ej: Principios del análisis de requisitos, principios del diseño Modularidad Tratar cada parte del todo como una entidad independiente de las otras partes Posibilidad cierta de integrar las partes para formar el todo Cohesión y acoplamiento Abstracción Formulación de modelos que representen la realidad Identificación entre lo relevante y lo desechable

21 Principios, métodos, herramientas y metodología La IS se sustenta en Principios, métodos y técnicas, metodologías y herramientas Principios Proposiciones o verdades que rigen el desarrollo Ej: Principios del análisis de requisitos, principios del diseño Anticipación al cambio Proyección de futuro Incorporación de cambios Mantención y Evolución Generalidad Descubrir los detalles que pueden ser generalizables Potencial de reutilización

22 Principios, métodos, herramientas y metodología La IS se sustenta en Principios, métodos y técnicas, metodologías y herramientas Principios Proposiciones o verdades que rigen el desarrollo Ej: Principios del análisis de requisitos, principios del diseño Incrementalidad Desarrollo step by step Desarrollo de versiones incrementales

23 Principios, métodos, herramientas y metodología La IS se sustenta en Principios, métodos y técnicas, metodologías y herramientas Métodos Indican el COMO construir técnicamente el SW. Los métodos abarcan la planificación, estimación de proyectos, análisis, diseño, arquitectura, codificación, prueba y mantenimiento. Ej:Análisis orientado a objetos, Análisis estructurado moderno Herramientas Las herramientas soportan la aplicación de la metodología Ej: Herramientas CASE

24 Conclusiones POR LO TANTO.... Ingeniería de Software Disciplina que relaciona métodos, metodologías y herramientas necesarias para la construcción de grandes y complejos productos de Software, pero de alta calidad Software Producto del proceso de desarrollo (aplicaciones ejecutables) y TODA la información necesaria para su implementación y utilización

25 Conclusiones En general el proceso de construcción de un producto de SW comprende las etapas de... Análisis y especificación de requisitos Queremos SW que se use. Queremos usuarios contentos (Correctitud) Diseño del SW Queremos diseños de acuerdo a los requisitos. Queremos diseños realistas Construcción Programación eficiente y de acuerdo a las especificaciones de diseño Verificación y Validación Queremos productos confiables, que satisfagan las especificaciones de diseño Apoyo en el computador Queremos hacer todo esto de la manera más eficiente posible

26


Descargar ppt "Ingeniería de Software I Conceptos Básicos de la Ingeniería de Software."

Presentaciones similares


Anuncios Google