Download
ingenier a de software n.
Skip this Video
Loading SlideShow in 5 Seconds..
Ingeniería de software PowerPoint Presentation
Download Presentation
Ingeniería de software

Ingeniería de software

105 Views Download Presentation
Download Presentation

Ingeniería de software

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Ingeniería de software

  2. El Producto “Es el conjunto de programas (fuentes y ejecutables), procedimientos, reglas y documentación posible asociada, así como los datos pertenecientes a la operación del sistema.”

  3. Definición de software • Como producto • Como vehículo

  4. Definición de software (como producto) “Hace entrega de la potencia informática del hardware informático. Si reside dentro de un teléfono celular u opera dentro de una computadora central, el software es un transformador de información, produciendo, gestionando, adquiriendo, modificando, mostrando o transmitiendo información que puede ser tan simple como un solo bit, o tan complejo como una simulación en multimedia.”

  5. Definición de software (como vehículo) • Hace entrega de lo que muchos creen que será el producto más importante del siglo veintiuno, la información. • Transforma datos personales (transacciones financieras) para que los datos sean más útiles en un contexto local. • Gestiona información comercial para mejorar la competitividad; Proporciona el acceso a redes de información por todo el mundo (internet). • También proporciona el método de adquirir información en todas sus formas.

  6. Características del Software El software se desarrolla, no se fabrica en un sentido clásico. • La buena calidad se adquiere mediante un buen diseño, pero la fase de construcción del hardware puede introducir problemas de calidad (o son fácilmente corregibles) que no existen en el software. • Ambas actividades dependen de las personas, pero la relación entre las personas dedicadas y el trabajo realizado es completamente diferente para el software. Ambas actividades requieren la construcción de un “producto”, pero los métodos son diferentes. • Los costos del software se encuentran en la ingeniería. Esto significa que los proyectos de software no se pueden gestionar como si fueran proyectos de fabricación

  7. El software no se “estropea” • El software no es susceptible a los males del entorno que hacen que el hardware se estropee. • Durante las primeras etapas de su vida se detectarán efectos que harán que falle el programa, pero una vez que se corrigen su funcionalidad será constante. • El software no se estropea, pero si se deteriora, o sea, durante su vida, sufre cambios (mantenimiento), por lo tanto, es bastante probable que se introduzcan nuevos defectos.

  8. La mayoría del software se construye a medida, en vez de ensamblar componentes ya existentes • Consideremos la forma en la que se diseña y se construye el hardware de control para un producto basado en microprocesador. • Se puede comprar software ya desarrollado, pero sólo como una unidad completa, no como componentes que pueden reensamblarse en nuevos programas.

  9. Componentes del software • Los componentes deberían diseñarse e implementarse para que pueda volver a ser reutilizado en muchos programas diferentes. Como: • Bibliotecas de subrutinas (algoritmos). • Estructuras de datos. • Encapsulamiento de datos como de procesos que se aplican a los datos. Ej: interfases interactivas (ventanas y menúes emergentes). • Son construidos por lenguajes de programación produciendo desde: un uso extremadamente eficiente de la memoria hasta la optimización de la velocidad de ejecución del programa.

  10. Aplicaciones del Software • Software de Sistemas • Fuerte interacción con el hardware de la computadora. • Utilización por múltiples usuarios. • Operación concurrente que requiere una planificación. • Compartición de recursos y una sofisticada gestión de procesos. • Estructuras de datos complejas. • Múltiples interfases externas. “Es un conjunto de programas que han sido escritos para servir a otros programas.”

  11. Software de Tiempo Real • Mide/Analiza/Controla sucesos del mundo real conforme ocurren. • Elementos: • Componente de adquisición de datos que recolecte y de formato a la información recibida del entorno externo. • Componente de análisis que transforme la información según lo requiera la aplicación. • Componente de control/salida que responda al entorno externo. • Componente de monitorización que coordine todos los demás componentes, de forma que pueda mantenerse la respuesta en tiempo real.

  12. Software de Gestión • Se tiene acceso a 1 ó más bases de datos grandes que contienen información comercial. • Las aplicaciones en ésta área reestructuran los datos existentes para facilitar las operaciones comerciales o gestionar la toma de decisiones. • Realizan cálculos interactivos. • Ej: Nóminas • Cuentas de haberes/débitos • Inventarios • Transacciones en puntos de venta.

  13. Software de Ingeniería y Científico • Característicos los algoritmos de manejo de números. • Las aplicaciones van desde: • La astronomía a la vulcanología. • El análisis de la presión de los automotores a la dinámica orbital de las lanzaderas espaciales. • La biología molecular a la fabricación automática. • Diseño asistido por computadora (CAD), la simulación de sistemas y otras aplicaciones interactivas, han comenzado a coger características del software de tiempo real e incluso del software de sistemas. • WebPage:CAD – GIS – GPS

  14. Software Empotrado • Reside en memoria de solo lectura y se utiliza para controlar productos y sistemas de los mercados industriales y de consumo. • Puede ejecutar funciones muy limitadas y curiosas. • Ej: el control de las teclas de un horno de microondas. • Puede también suministrar una función significativa y con capacidad de control. • Ej: funciones digitales en un automóvil, tales como control de la gasolina, indicaciones en el salpicadero, sistemas de frenado.

  15. Software de Computadoras Personales • Procesamiento de textos, las hojas de cálculo, los gráficos por computadora, multimedia, entretenimientos, gestión de bases de datos, aplicaciones financieras, de negocios y personales, y redes o acceso a bases de datos externas, etc Software de Inteligencia Artificial • Hace uso de algoritmos no numéricos para resolver problemas complejos para los que no son adecuados el cálculo o el análisis directo. • Ejemplo de aplicaciones: • Sistemas Expertos • Reconocimiento de patrones (imágenes y voz) • La prueba de teoremas y los juegos. • Redes neuronales.

  16. Mitos del Software • Mitos de Gestión • 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? • Mi gente dispone de las herramientas de desarrollo de software más avanzadas; despúes de todo, les compramos las computadoras más modernas. • Si fallamos en la planificación, podemos añadir más programadores y adelantar el tiempo perdido.

  17. Mitos del Cliente • Una declaración general de los objetivos es suficiente para comenzar a escribir los programas, podemos dar los detalles más adelante. • Los requisitos del proyecto cambian continuamente, pero los cambios pueden acomodarse fácilmente, ya que el software es flexible. • Mitos de los Desarrolladores • Una vez que escribimos el programa y hacemos que funcione, nuestro trabajo ha terminado. • Hasta que no tenga el programa “ejecutándose”, realmente no tengo forma de comprobar su calidad. • Lo único que se entrega al terminar el proyecto es el programa funcionando.

  18. Problemas del software • Insatisfacción del cliente por falta de una buena definición de los requerimientos. • De cada 6 proyectos de software 2 son abandonados. • No se tienen datos históricos sobre el proceso de Desarrollo de Software. No se pueden hacer buenas estimaciones. • No se puede evaluar con precisión la eficacia de las nuevas herramientas, técnicas o estándares.

  19. Problemas del software(cont...) • Las empresas de software pequeñas en general no disponen de los recursos y la experticia necesarios para desarrollar proyectos de mejoramiento del proceso de software • Compromiso • Habilidad • Experiencia • Recurso humano • Dinero • Se requería un proyecto de colaboración para compartir los costos y beneficios

  20. ¿Que se puede esperar de la industria del software? • Creación de empleo calificado. • Generación de exportaciones no tradicionales de alto valor agregado. • Facilitar el proceso de modernización de las economías nacionales.

  21. El Proceso “Es el conjunto de actividades técnicas y administrativas necesarias para la fabricación de un producto de software.” “La madurez de una organización es proporcional a su capacidad para poner en práctica procesos de software que produzcan los resultados previstos.”

  22. Ingeniería de Software “Disciplina o área de la informática o Ciencias de la Computación, que ofrece métodos y técnicas para desarrollar y mantener software de calidad que resuelven problemas de todo tipo.”

  23. Ingeniería de Software Definiciones • Es el estudio de los principios y metodologías para desarrollo y mantenimiento de sistemas de software. • Aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación (funcionamiento) y mantenimiento del software: es decir, la aplicación de ingeniería al software. • Objetivo de las organizaciones fabricantes de software: producir software de buena calidad de una manera sistemática y previsible.

  24. Ciencias de la Computación Fundamentos científicos Administración Fundamentos para administración de proyectos Economía Fundamentos para estima de recursos y control de costos Sicología y técnicas de comunicación Fundamentos para trabajo interdisciplinario y buena comunicación interpersonal entre grupo y clientes • Es una disciplina pragmática que utiliza:

  25. Metas de la Ingeniería del Software • Mejorar la calidad de los procesos de fabricación de software. • Mejorar la calidad de los productos desoftware. • Aumentar la productividad y satisfacción profesional de los ingenieros de esta disciplina. • Facilitar el control del proceso de desarrollo de software. • Suministrar a los desarrolladores las bases para construir software de alta calidad en una forma eficiente. • Definir una disciplina que garantice la producción y el mantenimiento de los productos software desarrollados en el plazo fijado y dentro del costo estimado.

  26. Evolución del Software La segunda era (60’s – 70’s) • Multiprogramación-Multiusuario. • Tiempo real. • Bases de datos. • Producto de software. Los primeros años (50’s) • Orientación por lotes (batch). • Distribución limitada. • Software a medida. La tercera generación (70’s – 80’s) • Sistemas distribuidos. • Incorporación de “inteligencia”. • Hardware de bajo coste. • Impacto en el consumo. • Funciones concurrentes. La cuarta era (epoca actual) • Sistemas personales potentes. • Tecnologías orientadas a objetos • Sistemas expertos. • Redes neurales artificiales. • Computación en paralelo. • Redes de computación.