Objetivo: Tema 3: Software operativo y de desarrollo MI Elizabeth Fonseca Chávez FI UNAM Evolución del software y su situación actual Definiciones. (real academia española) Hardware: (hard=duro)conjunto de los componentes que integran la parte material de una computadora. Software: (soft=blando)conjunto de programas, instrucciones y reglas informáticas para ejecutar ciertas tareas en una computadora. HISTORIA DE LAS COMPUTADORAS VARAS,MUESCAS ABACO TABLAS DE MULTIPLICAR REGLA DE CALCULO Maquina de Pascal Maquina de Leibnitz Telares de Jacquard Maquina de diferencias y analítica de Babage Calculadoras perfeccionadas Calculadoras electromecánicas, MARK l, markll y marklll(1944) Primera computadora UNIVAC, ENIAC Generación de las computadoras: 1ª. Bulbos, espacios grandes 2. Transistores. Menos espacio 3. Circuitos Integrados 4. Microprocesador 5. (Inteligencia Artificial) 5ª. nanotecnología La pascalinade BlaisePascal calculate with 8 figures and carrying of 10's, 100's, and 1000's etc. 1642 Telares de Jacquard. Controlado por tarjetas perforadas Leibintz realiza maquina con las cuatro operaciones básicas 1671 Charles Babage crea maquina de diferencial(vista en foto) y analítica. 1
24/08/2010 Electronic Numerical Integrator And Computer ENIAC. 27 toneladas, 167 m^2, y 160 Kw. 1946 Primer Programa de ADA 1841 Charles Babbage anuncia en conferencia La máquina analítica. lady Lovelace, matemática leyó articulo e hizo un plan de cómo su maquina calculara los números de Bernoulli(*): Primer programa, primer software, software que no se llegó a usar, dado que la máquina nunca se completó. August Ada Byron, Lady Lovelace, http://www.thocp.net/biographies/lovelace_ ada.html *para la suma de las k-ésimas potencias de los primeros n enteros positivos, cuando k = 1,2,3 y 4** ADA nombre de un lenguaje Prog 1969 - Kenneth Thompson y Dennis Ritchie, de Bell Labs, desarrollaron el sistema operativo Unix. (y lenguaje C 1972) 1975 - Steve Jobs desarrolló el lenguaje de programación Basic 1975 Bill Gates y Paul Allen se unen para crear Microsoft 1975 - Steve Jobs y Steven Wozniak, crearon la primera computadora Apple 1981 IBM lanzó al mercado el IBM PC ; su sistema operativo, el DOS 1.0, era de Microsoft, y el microprocesador, un Intel 8088 MSDOS= MicroSoft Disk Operating System. UNIVAC 1951 - La primera computadora comercial 1949 - El matemático húngaro John Von Neumann resolvió el problema de tener que cablear la máquina para cada tarea. La solución fue poner las instrucciones en la misma memoria que los datos, escribiéndolas de la misma forma, en código binario. Refiriéndose a esta innovación, se habla de la "arquitectura de VonNeumann". Su EDVAC fue el modelo de las computadoras de este tipo. 1957 - Un equipo de IBM, dirigido por John Backus, creó el primer lenguaje de programación, llamado Fortran, formulado para el IBM 704. Clasificación Software El software se clasifica : sistemas operativos, lenguajes de programación y programas de aplicación. Tenemos software de base: 1)sistemas operativos, 2)lenguajes y traductores y 3)Software aplicativo: 3ª) a la medida y 3b)de 2
Definiciones Sistema Operativo: El conjunto de programas informáticos que permite la administración eficaz de los recursos de una computadora. Sistemas Operativos DMA Direct memory access Permite controlar las asignaciones de memoria, ordenar las solicitudes al sistema, controlar los dispositivos de entrada y salida, facilitar la conexión a redes y el manejo de archivos. Lenguajes de programación Los lenguajes de programación pueden clasificarse según el paradigma que usan en: Imperativas: procedimentales1, Orientado a objetos2, Declarativas: funcionales3(func. aritméticas), lógicos4, híbridos, etc. Son ejemplos de lenguajes de programación: 1php, 2ASP, ActionScript, 2ada, python, 1pascal, 1c, 1basic,1y 2JAVA, JavaScript, 3lips, 2c++, 4prolog Un paradigma de programación es una colección de modelos conceptuales que juntos modelan el proceso de diseño y determinan, al final, la estructura de un programa. Tipos de paradigmas por FLOYD Floyd describió tres categorías de paradigmas de programación: a) Los que soportan técnicas de programación de bajo nivel (ej.: copia de ficheros frente estructuras de datos compartidos) b) Los que soportan métodos de diseño de algoritmos (ej.: divide y vencerás, programación dinámica, etc.) c) Los que soportan soluciones de programación de alto nivel, como los descritos en el punto anterior Floyd también señala lo diferentes que resultan los lenguajes de programación que soportan cada una de estas categorías de paradigmas. Sólo comentaremos los paradigmas relacionados con la programación de alto nivel. Se agrupan en tres categorías de acuerdo con la solución que aportan para resolver el problema a) Solución procedimental u operacional. Describe etapa a etapa el modo de construir la solución. Es decir señala la forma de obtener la solución. b) Solución demostrativa.es una variante de la procedimental. Especifica la solución describiendo ejemplos y permitiendo que el sistema generalice la solución de estos ejemplos para otros casos. Aunque es fundamentalmente procedimental, el hecho de producir resultados muy diferentes a ésta, hace que sea tratada como una categoría separada. c) Solución declarativa. Señala las características que debe tener la solución, sin describir cómo procesarla. Es decir señala qué se desea obtener pero no cómo obtenerlo. Lenguajes por nivel 3
El lenguaje Ensamblador es un tipo de lenguaje de bajo nivel utilizado para escribir programas informáticos y constituye la representación más directa del código de maquina específico para cada arquitectura de computadoras legible por un programador. Traductores es un software que toma como entrada un programa escrito en un código llamado fuente y genera como salida otro programa en un código llamado objeto. Algunos ejemplosde traductores son los compiladores(toma como entrada código en alto nivel y genera como salida código en bajo nivel), los interpretes (toma como entrada código en alto nivel y genera como salida un código intermedio), los preprocesadores (toma como entrada código en alto nivel y genera como salida código en alto nivel) y el ensamblador (toma como entrada código en ensamblador y genera como salida código en bajo nivel). Su estructura podriaser expresada de la siguiente manera: código fuente - >> traductor - > código objeto. Un intérprete es un programa que ejecuta un programa escrito en un determinado lenguaje examinando y ejecutando cada sentencia del programa una a una, por separado y sin realizar un proceso de compilación previo. Situación Actual Antes en México El desempeño de los proyectos de sistemas actualmente es: 26% de ellos son exitosos, un 46% son proyectos cuestionables y un 28% son proyectos fallidos, arrojando una cifra de 97 Miles de Millones de USD de desperdicio, (StandishGroupInternational). Casi el 25% de los proyectos de software son cancelados por atraso o por salirse del presupuesto, o por tener una baja calidad, o por experimentar alguna combinación de ellos. Se han definido varios modelos basados en las experiencias exitosas de la Ingeniería de Software que sirven de guía para las mejoras y unifican los criterios de evaluación de las empresas. Las normas ISO de serie 9000, el modelo estadounidense conocido como CMM (Capability Maturity Model), el BOOTSTRAP (Estándar Europeo para Evaluación y Mejoras de Procesos de Desarrollo de Software) y la norma ISO 15504, conocida como SPICE, (Software Process Improvement and Capability determination) son los ejemplos más reconocidos de estos modelos. En México La falta de especialización o enfoque de los competidores, en lo que respecta a servicios y a mercados. La ausencia de estrategia referente al esquema con que venden los servicios (por proyectos o como mano de obra) y al lugar en que éstos se realizan (en las instalaciones de los clientes o fuera de ellas). La diversidad de precios de cada tipo de servicio. El manejo de los recursos humanos sin un enfoque estratégico. La falta de empleo de buenas metodologías. La ausencia generalizada de mecanismos para medir y evaluar el desempeño de las empresas. (ITAM 2008). 4
Cuestionario de Examen3 1. Donde, cuando y con quien se dice que comenzó la historia del software? 2. Que es un sistema operativo, un lenguaje y un traductor? 3. Diferencia entre software a la medida y de. 4. Enumera los lenguajes desde que existieron? 4. Cual es el beneficio del País con saber trabajar el software? 5