La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Ingeniería de Software I

Presentaciones similares


Presentación del tema: "Ingeniería de Software I"— 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 Grandes proyectos de software
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

10 Grandes proyectos de software
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.

11 Características del Software
Qué es Software ? 1) Instrucciones, o programas de computador, que cuando se ejecutan proporcionan la función y el comportamiento deseado 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 Características del Software
El Software se desarrolla, no se fabrica, no se manufactura 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 Características del Software
Los diferentes tipos de SW contemplan: 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 Características del Software
Cualquier producto de Software debe contar con las siguientes características 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 Principios, métodos, herramientas y metodología
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 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
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 Manejo formal del proceso de desarrollo Documentación formal Trazabilidad Manejo de configuración y control de versiones 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
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 En un proyecto de SW se genera, además del código, muchos otros documentos.... 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 Ingeniería de Software Software POR LO TANTO....
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 FIN


Descargar ppt "Ingeniería de Software I"

Presentaciones similares


Anuncios Google