ejecutables), procedimientos, reglas y documentacin posible asociada, as como los datos pertenecientes a la operacin del sistema. El Producto Como producto Como vehculo Definicin de software (como producto) Hace entrega de la potencia informtica del hardware informtico. Si reside dentro de un telfono celular u opera dentro de una computadora central, el software es un transformador de informacin, produciendo, gestionando, adquiriendo, modificando, mostrando o transmitiendo informacin que puede ser tan simple como un solo bit, o tan complejo como una simulacin en multimedia. Definicin de software (como vehculo) Hace entrega de lo que muchos creen que ser el producto ms importante del siglo veintiuno, la informacin. Transforma datos personales (transacciones financieras) para que los datos sean ms tiles en un contexto local. Gestiona informacin comercial para mejorar la competitividad; Proporciona el acceso a redes de informacin por todo el mundo (internet). Tambin proporciona el mtodo de adquirir informacin en todas sus formas. Caractersticas del Software El software se desarrolla, no se fabrica en un sentido clsico.
La buena calidad se adquiere mediante un buen diseo, pero la fase de construccin del hardware puede introducir problemas de calidad (o son fcilmente corregibles) que no existen en el software. Ambas actividades dependen de las personas, pero la relacin entre las personas dedicadas y el trabajo realizado es completamente diferente para el software. Ambas actividades requieren la construccin de un producto, pero los mtodos son diferentes. Los costos del software se encuentran en la ingeniera. Esto significa que los proyectos de software no se pueden gestionar como si fueran proyectos de fabricacin 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 detectarn efectos que harn 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. La mayora del software se construye a medida, en vez de ensamblar componentes ya existentes
Consideremos la forma en la que se disea y se construye el hardware de control para un producto basado en microprocesador. Se puede comprar software ya desarrollado, pero slo como una unidad completa, no como componentes que pueden reensamblarse en nuevos programas. Componentes del software Los componentes deberan disearse 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 menes emergentes). Son construidos por lenguajes de programacin produciendo desde: un uso extremadamente eficiente de la memoria hasta la optimizacin de la velocidad de ejecucin del programa. Software de Sistemas 1. Fuerte interaccin con el hardware de la computadora. 2. Utilizacin por mltiples usuarios. 3. Operacin concurrente que requiere una planificacin. 4. Comparticin de recursos y una sofisticada gestin de procesos. 5. Estructuras de datos complejas. 6. Mltiples interfases externas. Es un conjunto de programas que han sido escritos para servir a otros programas. Aplicaciones del Software Software de Tiempo Real
1. Mide/Analiza/Controla sucesos del mundo real conforme ocurren.
Elementos: Componente de adquisicin de datos que recolecte y de formato a la informacin recibida del entorno externo. Componente de anlisis que transforme la informacin segn lo requiera la aplicacin. Componente de control/salida que responda al entorno externo. Componente de monitorizacin que coordine todos los dems componentes, de forma que pueda mantenerse la respuesta en tiempo real. Software de Gestin
1. Se tiene acceso a 1 ms bases de datos grandes que contienen informacin comercial. 2. Las aplicaciones en sta rea reestructuran los datos existentes para facilitar las operaciones comerciales o gestionar la toma de decisiones. 3. Realizan clculos interactivos.
Ej: Nminas Cuentas de haberes/dbitos Inventarios Transacciones en puntos de venta. Software de Ingeniera y Cientfico
1. Caractersticos los algoritmos de manejo de nmeros. 2. Las aplicaciones van desde: La astronoma a la vulcanologa. El anlisis de la presin de los automotores a la dinmica orbital de las lanzaderas espaciales. La biologa molecular a la fabricacin automtica. 3. Diseo asistido por computadora (CAD), la simulacin de sistemas y otras aplicaciones interactivas, han comenzado a coger caractersticas del software de tiempo real e incluso del software de sistemas. WebPage: CAD GIS GPS
Software Empotrado
1. Reside en memoria de solo lectura y se utiliza para controlar productos y sistemas de los mercados industriales y de consumo. 2. Puede ejecutar funciones muy limitadas y curiosas. Ej: el control de las teclas de un horno de microondas.
3. Puede tambin suministrar una funcin significativa y con capacidad de control. Ej: funciones digitales en un automvil, tales como control de la gasolina, indicaciones en el salpicadero, sistemas de frenado.
Software de Computadoras Personales Procesamiento de textos, las hojas de clculo, los grficos por computadora, multimedia, entretenimientos, gestin 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 numricos para resolver problemas complejos para los que no son adecuados el clculo o el anlisis directo. Ejemplo de aplicaciones: Sistemas Expertos Reconocimiento de patrones (imgenes y voz) La prueba de teoremas y los juegos. Redes neuronales. Mitos de Gestin
1. Tenemos ya un libro que est lleno de estndares y procedimientos para construir software. No le proporciona ya a mi gente todo lo que necesita saber?
2. Mi gente dispone de las herramientas de desarrollo de software ms avanzadas; despes de todo, les compramos las computadoras ms modernas.
3. Si fallamos en la planificacin, podemos aadir ms programadores y adelantar el tiempo perdido. Mitos del Software Mitos del Cliente
1. Una declaracin general de los objetivos es suficiente para comenzar a escribir los programas, podemos dar los detalles ms adelante. 2. Los requisitos del proyecto cambian continuamente, pero los cambios pueden acomodarse fcilmente, ya que el software es flexible.
Mitos de los Desarrolladores
1. Una vez que escribimos el programa y hacemos que funcione, nuestro trabajo ha terminado. 2. Hasta que no tenga el programa ejecutndose, realmente no tengo forma de comprobar su calidad. 3. Lo nico que se entrega al terminar el proyecto es el programa funcionando. Problemas del software Insatisfaccin del cliente por falta de una buena definicin de los requerimientos. De cada 6 proyectos de software 2 son abandonados. No se tienen datos histricos sobre el proceso de Desarrollo de Software. No se pueden hacer buenas estimaciones. No se puede evaluar con precisin la eficacia de las nuevas herramientas, tcnicas o estndares. Problemas del software(cont...) Las empresas de software pequeas 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 requera un proyecto de colaboracin para compartir los costos y beneficios
1. Creacin de empleo calificado.
2. Generacin de exportaciones no tradicionales de alto valor agregado.
3. Facilitar el proceso de modernizacin de las economas nacionales. Que se puede esperar de la industria del software? Es el conjunto de actividades tcnicas y administrativas necesarias para la fabricacin de un producto de software. La madurez de una organizacin es proporcional a su capacidad para poner en prctica procesos de software que produzcan los resultados previstos. El Proceso Disciplina o rea de la informtica o Ciencias de la Computacin, que ofrece mtodos y tcnicas para desarrollar y mantener software de calidad que resuelven problemas de todo tipo. Definiciones Es el estudio de los principios y metodologas para desarrollo y mantenimiento de sistemas de software. Aplicacin de un enfoque sistemtico, disciplinado y cuantificable al desarrollo, operacin (funcionamiento) y mantenimiento del software: es decir, la aplicacin de ingeniera al software. Objetivo de las organizaciones fabricantes de software: producir software de buena calidad de una manera sistemtica y previsible. Es una disciplina pragmtica que utiliza: Ciencias de la Computacin
Fundamentos cientficos
Administracin
Fundamentos para administracin de proyectos
Economa
Fundamentos para estima de recursos y control de costos
Sicologa y tcnicas de comunicacin Fundamentos para trabajo interdisciplinario y buena comunicacin interpersonal entre grupo y clientes Metas de la Ingeniera del Software Mejorar la calidad de los procesos de fabricacin de software. Mejorar la calidad de los productos de software. Aumentar la productividad y satisfaccin 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 produccin y el mantenimiento de los productos software desarrollados en el plazo fijado y dentro del costo estimado. Evolucin del Software Los primeros aos (50s) Orientacin por lotes (batch). Distribucin limitada. Software a medida. La tercera generacin (70s 80s) Sistemas distribuidos. Incorporacin de inteligencia. Hardware de bajo coste. Impacto en el consumo. Funciones concurrentes. La segunda era (60s 70s) Multiprogramacin-Multiusuario. Tiempo real. Bases de datos. Producto de software. La cuarta era (epoca actual) Sistemas personales potentes. Tecnologas orientadas a objetos Sistemas expertos. Redes neurales artificiales. Computacin en paralelo. Redes de computacin.