Beruflich Dokumente
Kultur Dokumente
Unidad 1. Informtica
6 Cuatrimestre
Computacin I
Unidad 1. Informtica
Contenido
Presentacin de la unidad .......................................................................................................................... 3 Propsitos ................................................................................................................................................... 3 Competencia especfica .............................................................................................................................. 3 1.1. Fundamentos de la informtica ........................................................................................................... 3 1.1.1. Anlisis histrico ........................................................................................................................... 4 1.1.2. Contexto actual de la informtica ................................................................................................. 6 1.2. Fundamentos de la computacin ........................................................................................................ 8 1.2.1. Modelo de von neumann ............................................................................................................. 15 Actividad 1. El modelo de von neumann ................................................................................................. 17 1.2.2. Ejecucin de programas en la computadora ............................................................................. 17 1.2.3. Almacenamiento de programas y datos ..................................................................................... 20 Actividad 2. Reporte de investigacin ..................................................................................................... 24 1.3. Ciclo de vida del software .................................................................................................................. 24 1.3.1. Modelos en cascada .................................................................................................................... 25 1.3.2. Modelo v ....................................................................................................................................... 30 Autoevaluacin.......................................................................................................................................... 32 Evidencia de aprendizaje. Presentacin de resultados .......................................................................... 33 Cierre de la unidad .................................................................................................................................... 33 Para saber ms .......................................................................................................................................... 34 Fuentes de consulta .................................................................................................................................. 34
Computacin I
Unidad 1. Informtica
Presentacin de la unidad
En esta unidad tendrs la oportunidad de aprender los fundamentos de la informtica e identificar la historia de la creacin y evolucin de las computadoras. Descubrirs tambin el contexto actual de la informtica incluyendo la participacin del elemento humano. Conocers cmo algunos de los pioneros de la informtica propusieron diseos que an hoy en da se utilizan para construir computadoras. Comprenders cmo se ejecutan los programas en una computadora y se almacenan los datos y programas. Finalmente analizars el ciclo de vida de desarrollo del software, un proceso sistemtico basado en modelos que puedes utilizar para desarrollar programas o sistemas de propsito especfico eficaces y de alta calidad.
Propsitos
Al finalizar esta unidad sers capaz de: Describir las etapas de la evolucin de las computadoras Analizar el contexto actual de la informtica Identificar los componentes de una computadora digital, as como algunos de los procesos que ocurren dentro de ella Establecer las bases para el desarrollo de programas y sistemas utilizando modelos informticos
Competencia Especfica
Identificar las bases fundamentales de la informtica para el desarrollo de aplicaciones a travs del uso de modelos informticos.
Computacin I
Unidad 1. Informtica
Como una definicin an ms concisa de Informtica podramos considerar tambin ciencia que estudia el procesamiento automtico de la informacin. La consolidacin de la informtica como ciencia se produjo a mediados del siglo pasado con el desarrollo de las computadoras.
Computacin I
Unidad 1. Informtica
Esta descripcin represent un avance notable porque permiti la aplicacin de herramientas matemticas en el mbito computacional Por ejemplo, con su modelo demostr que existen problemas que ninguna computadora puede resolver sin importar lo ingenioso que sea el programador. El artculo de Turing es an ms notable porque fue publicado en 1936, varios aos antes de que una computadora existiera realmente. La palabra Entscheidungsproblem se refiere a uno de los 28 problemas matemticos planteados en 1900 por David Hilbert como desafos para los matemticos del siglo XX. Las matemticas no escaparon de la influencia de la computadora. De hecho, las primeras aplicaciones en computadora fueron de naturaleza matemtica, pues las mquinas electrnicas de cmputo de propsito general fueron utilizadas para resolver o estudiar problemas matemticos tanto tericos como prcticos. En 1944 se construy la primera calculadora llamada Mark I que utilizaba 760,000 ruedas y 800 km de cable, y en 1946 la primera computadora con fines prcticos denominada ENIAC que utilizaba 19,000 vlvulas de vaco y 1,500 relevadores. Alrededor de 1951 se desarrollaron la Univac I y la Univac II, consideradas el punto de partida de las verdaderas computadoras. La evolucin de las computadoras suele dividirse en generaciones para destacar los hechos ms trascendentes: La primera generacin (1944 a 1952) incluye las computadoras que funcionaban con vlvulas de vaco y eran de uso exclusivo cientfico y militar. Su programacin requera la modificacin de sus circuitos. La segunda generacin (1952 a 1964) se caracteriz por el uso del transistor en lugar de la vlvula de vaco. Los transistores son mucho ms pequeos, desprenden menos calor y sufren menos fallas. Aparecieron en esta poca las primeras computadoras comerciales con sistemas operativos. Tambin se desarrollaron los primeros lenguajes de programacin (Fortran y Cobol). La tercera generacin (1964 a 1971) atestigu la utilizacin de los primeros circuitos integrados que aumentaron la capacidad de procesamiento y redujeron el tamao fsico de las computadoras. Se mejoraron los lenguajes de programacin y surgieron los programas de utilera. La cuarta generacin (1971 a 1981) se caracteriz por la fuerte integracin de componentes electrnicos y por la aparicin del microprocesador. El microprocesador es un circuito integrado que contiene millones de componentes electrnicos dentro de una pequea pastilla de cermica y es el encargado de ejecutar los programas. La quinta generacin que va desde 1981 hasta la actualidad se caracteriza por el surgimiento de la computadora personal. La informtica ayuda a adquirir conocimientos a travs de un tratamiento racional y automtico de la informacin y su evolucin ha dado lugar a lo que se denomina sociedad de la informacin, caracterizada
Computacin I
Unidad 1. Informtica
por el proceso de grandes cantidades de datos. El desarrollo cientfico en diversos campos ha estado ligado tanto a los avances de la informtica como a las tecnologas de la informacin y la comunicacin. Los angloparlantes no suelen utilizar la palabra informatics debido a que en 1962 Walter F. Bauer fund una empresa que registr el nombre Informatics General, Inc. La empresa no permiti a las universidades el uso de la palabra informatics y las oblig a utilizar la alternativa computer science. La Association for Computing Machinery intent cambiar esta posicin y le pidi a la empresa que permitiera el uso de la palabra, pero la respuesta sigui siendo negativa. En 1985 Informatics General, Inc. dej de operar, pero para entonces computer science era de uso comn. Computer science (ciencias de la computacin) se usa para designar el estudio cientfico y aplicado, mientras que, information technology (tecnologas de la informacin) se refiere a las tecnologas que realizan el tratamiento automatizado de la informacin.
Computacin I
Unidad 1. Informtica
Hoy en da, es difcil concebir un rea que no reciba el apoyo de la informtica. El Elemento Humano A medida que la informtica contina volvindose indispensable para las funciones de negocio, tecnologa ms sofisticada y compleja est siendo implementada en toda clase de organizaciones, incrementando la demanda de trabajadores capacitados en tecnologa de cmputo. Las organizaciones intentan maximizar su eficiencia con la tecnologa disponible. La expansin del comercio electrnico haciendo negocios en internet-y la necesidad continua de construir y mantener bases de datos que almacenen informacin crtica de los clientes, del inventario y de los proyectos, requiere administradores de bases de datos compatibles con la tecnologa ms reciente. Debido a la creciente dependencia en internet por parte de las empresas, la seguridad de la informacin es una preocupacin constante. El rpido y generalizado uso de la informtica ha generado una gran necesidad de trabajadores capacitados que dominen diversas funciones. Estos especialistas incluyen cientficos de la computacin, administradores de bases de datos y redes, y analistas de comunicaciones de datos. Las necesidades de actualizacin evolucionan continuamente, reflejando nuevas reas de especializacin o cambios en la tecnologa. Los cientficos de la computacin trabajan como tericos, investigadores, o inventores. Sus trabajos se distinguen por los altos niveles de conocimiento terico y de innovacin que aplican a problemas complejos y a la creacin o aplicacin de nueva tecnologa. Con la llegada del internet y con los negocios generando grandes volmenes de datos, existe una creciente necesidad de almacenar, administrar, y extraer datos de manera efectiva. Los administradores de bases de datos trabajan con sistemas de administracin de bases de datos y determinan las formas de organizar y almacenar datos. Los analistas de redes y de comunicacin de datos, tambin conocidos como arquitectos de red, disean, prueban, y evalan sistemas tales como redes de rea local (LANs), redes de rea amplia (WANs), internet, e intranets, y otros sistemas de comunicacin de datos. Los cientficos de la computacin deben ser creativos, inquisitivos, analticos, y orientados a los detalles. Tener un buen conocimiento de Matemticas, incluyendo Clculo, Probabilidad y estadstica, y, por supuesto, de sistemas de cmputo Se requiere tambin una preparacin en una o ms de las ciencias, tales como, Fsica, Qumica, Bologa, etc. y es deseable el manejo del ingls, de la Lecto-escritura y de las Humanidades. La mayora de los cientficos de la computacin actuales se clasifican por reas de inters como las siguientes: Teora matemtica y algoritmos
Computacin I
Unidad 1. Informtica
Inteligencia artificial Arquitectura, computacin en paralelo y sistemas Bioinformtica y biologa computacional Bases de datos y sistemas de informacin Grficas, visualizacin e interfaz computadora-humano Sistemas y redes Lenguajes de programacin, sistemas formales, e ingeniera de software Computacin cientfica
Computacin I
Unidad 1. Informtica
Las aplicaciones son programas (software) desarrollados para realizar tareas especficas. Se les llama as porque la computadora se aplica a efectuar un trabajo determinado. Ejemplos: procesadores de texto, las hojas de clculo, los programas de contabilidad, de juegos y de grficas, los administradores de bases de datos, etc. Actualmente existen aplicaciones sumamente complejas que apoyan actividades en reas de Administracin de empresas, Ingeniera, Biologa, Medicina, Astronoma, Industria aeroespacial, etc. Muchas de estas aplicaciones proporcionan facilidades de reprogramacin al usuario. Algoritmos y Programas El desarrollo de programas es fundamental porque adems de la evolucin natural de los programas, continuamente aparecen nuevos problemas o tareas que pueden ser procesados por las computadoras. Desde que se presenta la necesidad de resolver un problema hasta que se soluciona utilizando una computadora, se recorren varias etapas: 1. Deben conocerse los pasos y operaciones que hay que realizar para llegar a la solucin del problema. Esta secuencia se llama algoritmo. Si no conocemos el proceso que conduce a la solucin, no podremos indicrselo a la computadora, y sta no resolver el problema. 2. Una vez que se conoce la solucin general del problema, hay que expresala a travs de un lenguaje que la computadora pueda entender y ejecutar, llamados lenguajes de programacin y se utilizan para desarrollar los programas. 3. El programa debe ejecutarse con los datos pertinentes para comprobar que genera la solucin esperada. Cualquier error debe ser corregido. 4. Por ltimo, el programa debe ser documentado para facilitar cambios posteriores o labores de mantenimiento. En la siguiente unidad se analizarn los algoritmos. Componentes de una Computadora El hardware (l componentes fsicos de una computadora), incluyen medios de entrada, medios de salida, dispositivos para almacenar informacin y un ncleo que ejecuta los procesos siguiendo las instrucciones del programa; veamos ahora un poco ms de cerca estos componentes.
Computacin I
Unidad 1. Informtica
Unidad Central de Proceso La unidad central de proceso o CPU por sus siglas en ingls (central processing unit) es un dispositivo que procesa los datos recibidos y es considerada el ncleo del hardware. Solemos referirnos a ella como CPU o simplemente como el procesador. Est integrada por dos partes principales: la unidad de control, que organiza y controla las instrucciones del programa, y la unidad aritmtica y lgica ALU (arithmetic logic unit) que las ejecuta. Fsicamente, el procesador es un dispositivo electrnico (circuito integrado) que se conecta con el resto de los componentes a travs de buses (rutas o conexiones). Memoria La memoria representa un almacn para guardar datos que son intercambiados con el procesador de acuerdo a las necesidades de ste. Las caractersticas de velocidad y capacidad de una memoria para recibir y entregar datos estn reidas entre s, mientras que el nivel de compromiso que se alcanza entre esas caractersticas da origen a diversos tipos de memoria. Memoria RAM (random access memory). La denominacin RAM no es muy adecuada y suele causar confusin, pero ha perdurado y se refiere a un tipo de memoria de lectura y escritura. Suele ser muy rpida para recibir y entregar datos, pero su capacidad es limitada (aunque los fabricantes aumentan esta capacidad continuamente). Es del tipo voltil en el sentido de que necesita recibir alimentacin elctrica para conservar la informacin, si la computadora se apaga, su contenido se pierde. Se le considera la memoria principal y fsicamente es un conjunto de circuitos electrnicos integrados (dispositivos de estado slido).
10
10
Computacin I
Unidad 1. Informtica
Memoria ROM (read only memory). Este tipo de memoria de slo lectura suele contener las instrucciones de la rutina de arranque de la computadora. La informacin que contiene est grabada de forma permanente y no se pierde aunque se interrumpa la alimentacin elctrica. Tambin es muy rpida, de capacidad limitada y est formada por circuitos electrnicos integrados. Algunas variantes de este tipo tiles en las fases de desarrollo de un sistema son la PROM (ROM programable), la EPROM (PROM borrable) y la EEPROM (PROM elctricamente borrable). Existe la necesidad de contar con memorias cada vez ms rpidas y con ms capacidad, se han ideado mtodos de optimizacin. Dependiendo del aspecto que se desea optimizar, se encuentran, por ejemplo, la memoria cach y la memoria virtual. La primera aumenta la velocidad de respuesta y la segunda la capacidad.Las memoria cach son mucho ms rpidas que las usuales, pero suelen tener una capacidad ms pequea debido a su alto costo. La memoria virtual representa una tcnica desarrollada con el propsito de poder utilizar ms memoria de la que fsicamente se dispone, se utiliza memoria secundaria (generalmente un disco duro) para crear reas que simulan el funcionamiento de ms memoria principal. El efecto es un crecimiento virtual de la capacidad a costa de la velocidad de acceso. Existen otros tipos de memoria que se consideran como perifricos y que discutiremos en la seccin siguiente. La capacidad comercial actual de las memorias abarca desde los kilobytes (103 bytes) hasta los gigabytes (109 bytes). Un byte es una agrupacin bsica de ocho bits que alcanza para representar nmeros del 0 al 255 (00000000 11111111). Perifricos Existen perifricos de entrada, de salida y de almacenamiento. Podemos distinguir entre perifricos locales y perifricos remotos segn su ubicacin con respecto a la computadora. Un perifrico local, como el teclado, se encuentra cerca de la computadora conectado mediante cables cortos. Un perifrico remoto, como una impresora en otro edificio, puede estar conectado a travs de una red de comunicaciones. Entre los perifricos de entrada ms importantes se encuentran el ratn (o mouse), el teclado, la pantalla tctil, el lpiz ptico, la tableta grfica y el scanner (para digitalizar imgenes). Entre los perifricos de salida ms importantes se encuentran la pantalla o monitor, la impresora y el graficador (plotter). Existen otros perifricos para comunicacin como el mdem, el cual permite la comunicacin entre computadoras a travs de la lnea telefnica, el ruteador (para conexiones ms rpidas a travs de lneas telefnicas digitales o lneas de TV cable), y diversos dispositivos que permiten el acceso a, por ejemplo, una red que interconecta tipos muy variados de equipo y que puede tener alcance global como Internet. Aunque los perifricos de almacenamiento son en realidad de entrada y salida, suelen considerarse por separado y son conocidos tambin como memorias secundarias. En el pasado, la mayora de estos dispositivos almacenaba la informacin de forma magntica (cinta, disco fijo o duro, y disco flexible) pero actualmente ya existen tambin otras tecnologas como la ptica en CDs y DVDs, y la tecnologa flash en lo
11
11
Computacin I
Unidad 1. Informtica
que conocemos como memorias USB. La tecnologa flash es un derivado de la memoria EEPROM aplicado a un dispositivo externo removible. En una cinta magntica el acceso a la informacin es secuencial, lo que obliga a recorrer la cinta hasta que aparezca la informacin o posicin buscada, esto hace que sea un medio muy lento. Debido a su gran capacidad se utiliza para hacer copias de seguridad o respaldo de la informacin. Los discos magnticos, que incluyen a los discos duros y a los flexibles, son dispositivos de acceso directo en los cuales no es necesario recorrer toda la informacin que hay delante de la que se necesita. Es posible acceder rpida y directamente al dato requerido. Los discos duros (hard disk) ofrecen una gran capacidad de almacenamiento que actualmente va de unos cuantos gigabytes (109 bytes) hasta terabytes (1012 bytes) o inclusive petabytes (1015 bytes). Como comparacin, una imagen de resolucin media ocupa aproximadamente un megabyte (106 bytes) o de 5 a 10 veces menos si se utilizan tcnicas de compresin. La velocidad de respuesta de los discos duros es menor a la de las memorias de estado slido pero su capacidad, como ya lo vimos en el prrafo anterior, es muy superior. Los discos duros permanecen vigentes como componentes crticos de computadoras y sistemas. Los discos flexibles (diskettes) han cado en el desuso dando paso a las nuevas tecnologas de medios removibles como las memorias USB o las memorias SD. Sistema Binario Se presentan a continuacin algunos conceptos del Sistema Binario que muestran algo de lo que ocurre dentro de una computadora. En el sistema decimal, un nmero como 8492 representa una cantidad igual a 8 miles ms 4 centenas, ms 9 decenas ms 2 unidades. Todos estos elementos son potencias de10 indicadas implcitamente por la posicin de los coeficientes:
En general, un nmero con punto decimal puede ser representado por una serie de coeficientes de la manera siguiente:
El sistema decimal tiene la base o raz 10 debido a que usa 10 dgitos y que los coeficientes son multiplicados por potencias de 10. En el sistema binario los coeficientes tienen dos valores posibles: 0 y 1. Cada coeficiente aj se multiplica por 2j. Por ejemplo, el equivalente decimal del nmero binario 11010.11 es 26.75:
12
12
Computacin I
Unidad 1. Informtica
Otras bases, como el octal y la hexadecimal se utilizan para simplificar el manejo de los nmeros binarios. Se suelen utilizar los dgitos del sistema decimal para los coeficientes en cualquier base que sea menor o igual a 10. En caso de que la base sea mayor que 10, es costumbre utilizar las letras del alfabeto para representar los dgitos restantes. Por ejemplo, en el sistema hexadecimal (base 16) se usan los 10 dgitos del sistema decimal ms las letras A, B, C, D, E y F para los dgitos 10, 11, 12, 13, 14 y 15 respectivamente. Un ejemplo de nmero hexadecimal sera B65F:
Los primeros nmeros en los sistemas decimal, binario, octal y hexadecimal se muestran a continuacin: Decimal Binario Octal Hexadecimal (base 10) (base 2) (base 8) (base 16) 00 0000 00 0 01 0001 01 1 02 0010 02 2 03 0011 03 3 04 0100 04 4 05 0101 05 5 06 0110 06 6 07 0111 07 7 08 1000 10 8 09 1001 11 9 10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F La suma de dos nmeros binarios se realiza utilizando las mismas reglas que en el sistema decimal, con la diferencia de que los dgitos de la suma en cualquier posicin significativa puedan ser 0 o 1. Algo similar ocurre para las dems operaciones excepto para la resta que es un poco ms complicada. El mtodo de sustraccin que utilizamos normalmente usa el concepto de prestar. Bajo este mtodo se presta 1 de una posicin significativa ms alta cuando el dgito del minuendo es ms pequeo que el correspondiente dgito del sustraendo; un mtodo sencillo cuando la resta se hace con lpiz y papel. Cuando la resta se ejecuta en una computadora, este mtodo es menos eficiente que uno que usa complementos y la suma.
13
13
Computacin I
Unidad 1. Informtica
Complementos Los complementos se usan en las computadoras para simplificar la operacin de sustraccin y para manipulaciones lgicas. Existen dos clases de complementos para cada sistema de base r: 1. El complemento de r 2. El complemento de r-1 En el sistema decimal se tienen los complementos de 10 y 9, y en el sistema binario se tienen los complementos de 2 y 1. El complemento de r Dado un nmero positivo N de base r con parte entera de n dgitos, se define el complemento de r de N como . Se muestran a continuacin dos ejemplos: El complemento de 10 de (52520)10 es 105 52520 = 47480 El complemento de 2 de (101100)2 es (26)10 (101100)2 = (1000000 101100)2 = 010100 El complemento de r-1 Dado un nmero positivo N de base r con parte entera de n dgitos y una parte fraccionaria de m dgitos, se define el complemento de r-1 de N como . Se muestran a continuacin dos ejemplos: El complemento de 9 de (25.639)10 es 102 10-3 25.639 = 99.999 25.639 = 74.360 El complemento de 1 de (0.0110)2 es (1 2-4)10 (1.0110)2 = (0.1111 0.0110)2 = 0.1001 Se muestran a continuacin dos ejemplos de restas utilizando complementos: 1. Usando el complemento de 10, sustraer 72532 3250. El complemento de 10 del sustraendo es 96750. 72532 + 96750 = 169282. El dgito del extremo izquierdo es la lleva y se descarta. El resultado es 69282 2. Usando el complemento de 2, sustraer 1010100 1000100. El complemento de 2 del sustraendo es 0111100. 1010100 + 0111100 = 10010000. El dgito del extremo izquierdo es la lleva y se descarta. El resultado es 10000
14
14
Computacin I
Unidad 1. Informtica
1.2.1. Modelo de Von Neumann
El Matemtico Von Neumann Mencionamos anteriormente a ENIAC (Electronic Numerical Integrator and Computer), la primera computadora construida con fines prcticos en la Universidad de Pennsylvania, propuesta por John W. Mauchly y financiada por el ejrcito de los Estados Unidos. Su propsito principal era el clculo de tablas de disparo, una funcin de matemticas aplicadas (clculo de la solucin de ecuaciones diferenciales no lineales que describan la trayectoria de balas y misiles). Dos matemticos, Derrick H. Lehmer y John von Neumann, participaron en el desarrollo de ENIAC. Von Neumann hizo contribuciones importantes en muchos campos incluyendo lgica matemtica, teora de conjuntos, economa y teora de juegos, as como mecnica cuntica, hidrodinmica, e informtica. En 1943, Von Neumann fue invitado al proyecto Manhattan -el proyecto para desarrollar la bomba atmica,por su trabajo en dinmica de fluidos. Pronto se dio cuenta que los problemas en los que estaba trabajando requeran tantos clculos que iba a necesitar varios aos para completarlos. Al pedir ayuda fue invitado a Harvard a conocer la calculadora Mark I; esta mquina, sin embargo, result relativamente lenta para resolver los problemas en los que estaba trabajando. De regreso supo accidentalmente del proyecto ENIAC y fue invitado a conocerlo. Ms tarde contribuy tambin al desarrollo de esta mquina. La sucesora de ENIAC fue EDVAC (Electronic Discrete Variable Automatic Computer) la cual era binaria en lugar de decimal y utilizaba un programa de almacenado. El trabajo de Von Neumann en el diseo de EDVAC comenz antes de que ENIAC fuera completamente operacional y fue tan importante que an hoy en da el hardware de las computadoras se suele referir como el modelo o la arquitectura de Von Neumann. Las ideas principales de este diseo fueron descritas por von Neumann en el primer borrador de un reporte. Normalmente los primeros borradores no estn destinados ni son adecuados para ser publicados. Este reporte es una excepcin; contiene informacin valiosa y tuvo una gran influencia cuando fue escrito. Significativamente, Alan Turing lo cita en una de sus propuestas como la fuente definitiva de entendimiento de la naturaleza y el diseo de una computadora digital de propsito general. Una versin en mquina de escribir fue creada a partir del borrador original escrito a mano, pero contiene muchos errores tipogrficos y se usan mal los smbolos matemticos y letras griegas. Tambin contiene errores que pudieron haber existido en el borrador (el cual no se ha localizado). Adems Von Neumann hace referencia a secciones que nunca fueron escritas. Michael D. Godfrey escribi un artculo intentando cuidadosamente restituir lo que considera pudo haber sido el contenido y sentido del borrador de Von Neumann (lo puedes encontrar en IEEE Annals of the History of Computing, Vol. 15, No. 4, pp.27-75, 1993.) El conocimiento de Von Neumann en el campo de la lgica matemtica tuvo preponderancia en su trabajo con las computadoras. Recibi tambin gran influencia del trabajo de Alan Turing, sobre todo del famoso artculo de 1936 que contena una descripcin algortmica de la mquina universal de Turing . Una
15
15
Computacin I
Unidad 1. Informtica
mquina terica que puede ser considerada como la versin terica de la computadora con programa almacenado. Von Neumann muri en 1957 de cncer de huesos, posiblemente debido a la exposicin a la radiacin durante las pruebas de la bomba atmica en el atoln de Bikini. El Modelo de Von Neumann Durante su trabajo con ENIAC, pronto se hizo obvio para von Neumann que programar computadoras con interruptores era lento, tedioso e inflexible, as que ide la forma de representar de forma digital un programa en la memoria de la computadora junto con los datos. Tambin concluy que la aritmtica decimal utilizada por ENIAC en la que cada dgito estaba representado por 10 vlvulas de vaco (una encendida y nueve apagadas) poda ser sustituida por una aritmtica binaria. La mquina de Von Neumann tena cinco partes bsicas: la unidad de control, la unidad aritmtica y lgica, la memoria, y los dispositivos de entrada y salida.
La memoria constaba de 4096 palabras, cada una de las cuales contena 40 bits. Cada palabra contena dos instrucciones de 20 bits o bien un entero con signo de 40 bits. 8 bits de cada instruccin estaban dedicados a indicar el tipo de instruccin, y 12 bits se dedicaban a especificar una de las 4096 palabras de memoria. Las instrucciones deban ser almacenadas en la memoria, y luego extradas, interpretadas y ejecutadas una a una al momento de correr el programa para realizar los procesos correspondientes. Dentro de la unidad aritmtica-lgica haba un registro interno especial llamado acumulador de 40 bits. Una instruccin tpica sumaba una palabra de la memoria al acumulador o almacenaba el contenido del acumulador en la memoria. Como Von Neumann pensaba que cualquier matemtico competente deba poder seguir mentalmente la pista del punto decimal (binario, en realidad) la mquina no tena aritmtica de punto flotante.
16
16
Computacin I
Unidad 1. Informtica
El diseo bsico que describi se conoce ahora como arquitectura, modelo o mquina de von Neumann y se utiliz en EDSAC, la primera computadora de programa almacenado que sigue siendo la base de casi todas las computadoras digitales existentes. Seguramente reconocers esta arquitectura en los componentes de la computadora moderna que describimos en la seccin Fundamentos de la Computacin.
17
17
Computacin I
Unidad 1. Informtica
El equipo producir, en general, ms material numrico que los resultados mencionados. As, solamente una fraccin de su salida numrica tendr que ser registrada; el resto solamente circular en el interior del equipo y nunca ser registrado para uso humano. Los prrafos anteriores fueron extrados de la seccin Definiciones del reporte de Von Neumann con algn cambio de estilo y el acortamiento de algunas explicaciones. Seguramente estars de acuerdo en que su contenido permanece vigente an despus de 60 aos y resulta muy pertinente para iniciar esta seccin. Ejecucin de Programas Se mencion anteriormente que la unidad central de proceso o CPU es la encargada de ejecutar los programas almacenados en la memoria buscando instrucciones y examinndolas para despus ejecutarlas una tras otra. La parte de la unidad de control de la CPU se encarga de buscar las instrucciones y determinar su tipo. La parte de la unidad aritmtica y lgica de la CPU realiza operaciones como la suma y el AND booleano. La CPU tambin contiene una pequea rea de memoria de alta velocidad que utiliza para almacenar resultados temporales y cierta informacin de control. Esta rea de memoria contiene varios registros, cada uno de los cuales tiene una funcin especfica. Cada registro puede contener un nmero, hasta algn mximo, y puede leerse y escribirse a alta velocidad porque est dentro de la CPU. El contador de programa o PC (program counter) es un registro importante que apunta a la siguiente instruccin que debe buscarse para ejecutarse. El registro de instrucciones o IR (instruction register) es otro registro importante que contiene la instruccin que se est ejecutando. Existen usualmente ms registros, algunos con fines especficos y otros de propsito general. Ejecucin de Instrucciones La CPU ejecuta cada instruccin en una sucesin de pasos: 1. 2. 3. 4. 5. 6. 7. Buscar la instruccin siguiente en la memoria y colocarla en el registro de instrucciones. Modificar el contador de programa para que apunte a la instruccin siguiente. Determinar el tipo de instruccin que se obtuvo. Si la instruccin utiliza un dato de la memoria, determinar dnde est. Buscar el dato, si es necesario, y colocarlo en un registro de la CPU. Ejecutar la instruccin. Regresar al paso uno para proceder con la siguiente instruccin.
Esta sucesin de pasos se conoce como ciclo de bsqueda-decodificacin-ejecucin y es la base del funcionamiento de todas las computadoras.
18
18
Computacin I
Unidad 1. Informtica
El juego de instrucciones de una CPU recibe el nombre de lenguaje o cdigo de mquina (binario). Una CPU slo puede entender instrucciones expresadas en su lenguaje de mquina; cada instruccin especifica alguna accin particular. Una instruccin es un grupo de ceros y unos; una parte es el cdigo de la operacin que debe realizarse y el resto determina dnde se encuentran los argumentos de la instruccin (en caso de que los haya). La especificacin para localizar los argumentos recibe el nombre de direccionamiento. Los grupos de unos y ceros son difciles de interpretar y de recordar para los humanos, as que a las instrucciones de mquina se les asignan nombres nemotcnicos dando origen a un tipo de lenguaje de bajo nivel llamado lenguaje ensamblador. Los programas ensambladores traducen las instrucciones en lenguaje ensamblador al cdigo binario de mquina. Entre los tipos de instrucciones que puede ejecutar una CPU se encuentran los siguientes: Movimiento de datos (memoria-registro, registro-memoria, registro-registro) Operaciones binarias (aritmtica elemental, AND, OR, XOR) Operaciones monarias (desplazar o rotar bits) Saltos (incondicionales, condicionales; alteran el orden de ejecucin) Llamada a un sub-programa Entrada y salida de datos
Puede verse que las instrucciones para la CPU son muy elementales, as que debe realizarse un gran esfuerzo para traducir del lenguaje natural utilizado por los humanos al lenguaje ensamblador (un esfuerzo todava mayor cuando se intenta programar directamente utilizando el cdigo binario de la mquina!) Se muestra a continuacin el fragmento de un programa utilizando nemotcnicos: CARGAR 120 SUMAR 170 ALMACENAR 250 Esta secuencia de instrucciones carga el contenido de la posicin de memoria 120 en el acumulador (uno de los registros principales de la CPU). A continuacin la operacin SUMAR suma al contenido del acumulador el contenido de la direccin 170. Finalmente, el contenido del acumulador se almacena en la posicin 250 de la memoria. Los lenguajes de mquina reales y, por lo tanto los lenguajes ensambladores, pueden tener cientos de instrucciones y las CPUs pueden contener numerosos registros operativos. Puedes darte cuenta que, an para aplicaciones sencillas, los programas en lenguaje ensamblador resultan ser muy grandes y difciles de construir e interpretar. Los lenguajes de nivel medio y alto que ya conoces (como C y Java) muestran su potencial al ofrecer un medio ms conveniente para que los humanos
19
19
Computacin I
Unidad 1. Informtica
programen computadoras; una sola de sus instrucciones puede agrupar decenas de instrucciones de lenguaje ensamblador.
20
20
Computacin I
Unidad 1. Informtica
Computadora Burroughs B1700 IBM PC DEC PDP-8 IBM 1130 CDC 3600 CDC Cyber Bits por celda 1 8 12 16 48 60
La celda es la unidad direccionable ms pequea. Casi todos los fabricantes de computadoras han adoptado como estndar una celda de 8 bits. Recuerda que un grupo de 8 bits recibe el nombre de byte. Los bytes suelen agruparse en palabras. Una computadora con palabras de 32 bits tiene 4 bytes por palabra; una computadora con palabras de 64 bits tiene 8 bytes por palabra. Casi todas las instrucciones de un programa operan con palabras, de manera que una mquina de 32 bits tiene registros de 32 bits e instrucciones para manipular palabras de 32 bits. Una mquina de 64 bits tiene registros de 64 bits e instrucciones para sumar, restar, y manipular palabras de 64 bits. Datos Adems de las instrucciones, las computadoras necesitan datos. De hecho, la tarea principal en muchos sistemas es procesar datos de diversos tipos: comerciales, de ingeniera, cientficos, financieros, etc. Los datos deben representarse de formas especficas dentro de la computadora y el hardware debe ser capaz de soportarlo. Los datos pueden dividirse en dos categoras: numricos y no numricos. El entero es el tipo principal de los numricos. Los enteros pueden tener diversas longitudes: 8, 16, 32 y 64 bits, por ejemplo. Los enteros se utilizan para contar (la cantidad de paquetes de un producto del inventario), para identificar (el nmero de una cuenta bancaria), como ndices en ciclos repetitivos, y para otras cosas. Algunas computadoras aceptan enteros tanto con signo como sin l. En el caso de los enteros sin signo, no hay bit de signo y todos los bits contienen datos. Este tipo de datos ofrecen un bit extra de manera que, por ejemplo, una palabra de 32 bits puede contener un entero sin signo dentro del intervalo de 0 a 232 1, inclusive. En cambio, un entero de 32 bits con signo en formato de complemento a dos slo puede manejar nmeros hasta 231 1 aunque tiene la ventaja de poder manejar nmeros negativos. Un poco ms adelante veremos lo que significa complemento a dos. Si un nmero no puede ser expresado como un entero, como 12.6 es necesario utilizar nmeros de punto flotante cuya longitud es de 32, 64, y a veces de 128 bits. Casi todas las computadoras tienen instrucciones para efectuar operaciones aritmticas de punto flotante. Datos No Numricos El objetivo de las primeras computadoras era procesar nmeros, pero las computadoras actuales se usan a menudo para aplicaciones no numricas como el procesamiento de textos o la administracin de bases de datos. Para estas aplicaciones se requieren otros tipos de datos como los caracteres.
21
21
Computacin I
Unidad 1. Informtica
Como las computadoras slo manejan nmeros, es necesaria alguna codificacin para representar los datos no numricos dentro de ella. Los cdigos de caracteres ms comunes son ASCII y UNICODE, que manejan caracteres de 7 bits y de 16 bits, respectivamente. Existen instrucciones diseadas para manejar cadenas de caracteres, es decir series consecutivas de caracteres. Estas cadenas a veces se delimitan con un carcter especial al final o incluyen un campo de longitud para saber dnde terminan. Las instrucciones pueden realizar funciones de bsqueda, copiado, edicin y otras con las cadenas. Los valores booleanos tambin son importantes. Un valor booleano puede adoptar un valor de verdadero (true) o de falso (false). En teora un solo bit es suficiente para representar un valor booleano: 0 como falso y 1 como verdadero (o viceversa). En la prctica se usa un byte o una palabra para cada valor booleano porque los bits individuales no pueden ser direccionados fcilmente. Existen estructuras en las que un valor booleano puede representarse con un bit, como en el mapa de bits. En este caso una palabra de 32 bits, por ejemplo, puede contener 32 valores booleanos. Este tipo de estructuras se usan en muchos contextos, por ejemplo, se puede utilizar un mapa de bits para mantener el registro de los bloques libres de un disco. Otro tipo comn de datos es el apuntador, el cual contiene simplemente una direccin de memoria. Archivos de Programas y de Datos Normalmente, tanto los programas como los datos estn almacenados en algn medio (como el disco duro) hasta que son transferidos a la memoria de la computadora para ser procesados. Un programa es almacenado en un tipo de archivo denominado archivo ejecutable. Si bien este archivo contiene, en su mayor parte las instrucciones del programa, tambin puede comprender datos en constantes, en ciertas estructuras como los arreglos y en las cadenas de caracteres. La mayor parte de los datos, sin embargo, suele estar en otro tipo de archivo: el archivo de datos (un programa puede llegar a utilizar muchos archivos de datos simultneamente). El Concepto de Tipo de Datos Los siguientes prrafos pretenden servir como puente para conectar el concepto de bits en las celdas de memoria con los tipos de datos que son introducidos en los lenguajes de programacin como Pascal, C y Java. En matemticas es habitual clasificar las variables de acuerdo con ciertas caractersticas importantes. Existe una distincin clara entre variables reales, complejas y lgicas o entre variables que representan valores individuales, conjuntos de valores, o conjuntos de conjuntos o entre funciones, funcionales, conjuntos de funciones y as sucesivamente.
22
22
Computacin I
Unidad 1. Informtica
En el procesamiento de datos, esta nocin de clasificacin es igual o ms importante. Mantendremos entonces el principio de que cada constante, variable, expresin, o funcin es de un cierto tipo. El tipo caracteriza esencialmente el conjunto de valores a los que pertenece una constante, que pueden ser asumidos por una variable o expresino pueden ser generados por una funcin. En los textos matemticos el tipo de una variable se puede deducir generalmente a partir del tipo de letra sin considerar el contexto; sin embargo, esto no es factible en los programas de computadora. Por lo general slo se tiene un solo tipo de letra disponible para programar. La regla que se acepta generalmente es que el tipo asociado se hace explcito en el programa a travs de una declaracin de la constante, variable o funcin, y que esta declaracin precede a la aplicacin de la constante, variable o funcin. La regla es particularmente sensible si se considera el hecho de que un compilador tiene que hacer una eleccin de la representacin del objeto para almacenarlo dentro de una computadora. Evidentemente, la cantidad de almacenamiento asignado a una variable tendr que ser elegido de acuerdo al tamao del rango de valores que la variable puede asumir. Si esta informacin es conocida por un compilador, puede ser evitada la asignacin dinmica de almacenamiento. Esto es a menudo la clave para la realizacin eficaz de un algoritmo. Las caractersticas principales del concepto de tipo que se utilizan en los lenguajes de programacin son las siguientes: 1. Un tipo de datos determina el conjunto de valores a los que pertenece una constante que pueden ser asumidos por una variable o una expresin o pueden ser generados por un operador o una funcin. 2. El tipo de un valor indicado por una constante, variable o expresin puede derivarse de su forma o declaracin sin la necesidad de ejecutar el proceso de cmputo. 3. Cada operador o funcin espera argumentos de un tipo fijo y entrega un resultado de un tipo fijo. Si un operador admite argumentos de varios tipos (por ejemplo, el smbolo + se utiliza para la adicin tanto de nmeros enteros como de nmeros reales, entonces el tipo de resultado puede determinarse a partir de normas lingsticas especficas. Un compilador puede utilizar esta informacin sobre los tipos para comprobar la legalidad de diversas construcciones. Por ejemplo, la asignacin errnea de un valor booleano (lgico) a una variable aritmtica puede ser detectada sin ejecutar el programa. Este tipo de redundancia en el texto del programa es extremadamente til para el desarrollo de los programas y debe ser considerada como la principal ventaja de los buenos lenguajes de alto nivel por sobre el cdigo de mquina (o cdigo ensamblador simblico).
23
23
Computacin I
Unidad 1. Informtica
En ltima instancia, los datos sern representados por un gran nmero de dgitos binarios, independientemente de si el programa fue inicialmente concebido en un lenguaje de alto nivel usando el concepto de tipo o en un cdigo ensamblador sin tipo. Para la computadora el almacenamiento es una masa homognea de bits sin estructura aparente, pero es precisamente la estructura abstracta de los tipos la que est permitiendo a los programadores humanos encontrar significado en el paisaje montono del almacenamiento de una computadora. - Niklaus Emil Wirth (creador del lenguaje de programacin Pascal).
24
24
Computacin I
Unidad 1. Informtica
Existen varios modelos que han sido propuestos para guiar este proceso y cada uno describe una serie de tareas o actividades que deben realizarse. Varias dcadas han pasado en las que organizaciones e individuos se han dedicado a encontrar y definir procesos repetibles y predecibles que mejoren la calidad de los productos de software. Algunos intentan sistematizar o formalizar la escritura de los programas, otros utilizan tcnicas de la administracin de proyectos. Sistematizar el desarrollo de programas no es una tarea fcil porque intervienen entornos cambiantes, especificaciones ambiguas y sobre todo, programadores a los que muchas veces no les gusta que les impongan restricciones. La definicin de los requerimientos es tambin una fuente de problemas porque frecuentemente quienes solicitan el programa no saben lo que necesitan. Entre los modelos propuestos existen dos que han sido ampliamente usados no slo para el desarrollo de software, sino tambin para el desarrollo de sistemas en general: Modelos en cascada Modelo V
25
25
Computacin I
Unidad 1. Informtica
Las etapas de este modelo son las siguientes: Requerimientos Diseo de arquitectura Diseo detallado Codificacin Pruebas de unidad Pruebas de sistema Aceptacin
Requerimientos Aqu se especifica lo que debe construirse. Se describen las funciones que debe realizar el producto final de acuerdo a las necesidades de usuarios y otros participantes clave. Tambin se especifican atributos como la calidad y el rendimiento deseados, la interaccin con otros programas, etc. Diseo de arquitectura En esta etapa se crea la estructura general del programa o sistema, de acuerdo con los requerimientos. Diseo detallado Aqu se lleva a cabo la definicin detallada de cada componente de la estructura del programa o sistema, as como de la forma en que cada componente ser implementado. Codificacin La etapa de codificacin se refiere a la programacin o implementacin de las especificaciones que se obtuvieron del diseo detallado: se escribe el programa y/o se ensamblan componentes. A esta etapa tambin se le conoce como etapa de implementacin, sobre todo cuando el modelo se utiliza para desarrollar sistemas.
26
26
Computacin I
Unidad 1. Informtica
Pruebas de unidad En esta etapa se verifica de forma individual que cada uno de los componentes del programa o sistema cumple con los requerimientos establecidos. Detecta de forma temprana errores de programacin o de implementacin. Pruebas de sistema Aqu se verifica si el programa o sistema completo cumple con los requerimientos establecidos al inicio del proceso. Detecta tambin errores generales de interfaz entre componentes y de rendimiento, entre otros. Aceptacin En esta etapa se libera el programa o sistema y se crea la documentacin. Una de las desventajas de este modelo bsico es que el agua no puede fluir hacia arriba si se encuentra un problema en alguna etapa, no hay forma de rehacer una etapa anterior. Por ejemplo, si durante las pruebas se encuentran errores debidos a la etapa anterior de codificacin, en el enfoque estricto del modelo el cdigo no puede ser corregido. Para superar esta desventaja obvia, una variacin del modelo en cascada proporciona retroalimentacin entre las etapas adyacentes, de manera que un problema encontrado en alguna etapa provoca una accin de correccin en la etapa anterior. Modelo en cascada con retroalimentacin
Con respecto al modelo en cascada simple, el de retroalimentacin es ms flexible para el desarrollo de software y sistemas.
27
27
Computacin I
Unidad 1. Informtica
Las ventajas de los modelos en cascada son: Dividen una tarea compleja en tareas ms pequeas y manejables Cada tarea produce un entregable bien definido
Al parecer, los creadores del modelo en cascada tuvieron la percepcin equivocada que el desarrollo de software es simple y directo, que puede fluir suavemente de una etapa a la otra sin problemas. Esto, por lo general, no es cierto y la experiencia ha demostrado que existen problemas fundamentales para usar este modelo como base para un plan de proyecto. Sin embargo, el modelo y sus variantes siguen siendo ampliamente usados. Como ejemplo de lo que pueden contener las etapas del modelo en cascada, te mostramos a continuacin algunos elementos del desarrollo de un sistema real que incluye software en gran medida, pero tambin componentes de otros tipos. Requerimientos Desarrollo de un robot de tipo SCARA utilizando el control de posicin por cinemtica directaBarato y de fcil mantenimiento. Trabajo en condiciones de 15 C a 30 C. Preciso, flexible, eficiente y confiable. Fabricado con materiales reciclables. Con un rea de trabajo de 30 cm de altura con un radio interno (ri) de 20 cm y un radio externo (re) de 50 cm. Trabajo continuo de 2000 horas. Paro de emergencia. Bajo consumo de energa. Interfaz grfica entendible por el usuario. Transferencia de datos entre un microcontrolador y una computadora utilizando el puerto USB. Utilizar programas como MATLAB o C++. Transferencia de datos a 9600 baudios. Algoritmos para cinemtica directa. Utilizar cantidad mnima de recursos del microcontrolador. Preferentemente usar programacin en tiempo real de tipo hard. Control manual y semiautomtico. Idioma de la interfaz grfica en ingls. Botones en la interfaz para paro de emergencia. Diseo de arquitectura Inicio de programa.
28
28
Computacin I
Unidad 1. Informtica
Programa principal y subrutinas. Interfaz grfica. Diseo detallado Declaracin de libreras a usar. Especificar las caractersticas de transferencia de datos entre la computadora y el microcontrolador. Declaracin de variables de E/S y auxiliares. Diseo del programa principal y paro de emergencia. Declarar subrutinas para el control de los motores en cada grado de libertad. Disear la iteracin del programa principal. Disear la interfaz grfica para acoplarla con el programa principal y sus variables. Codificacin Programacin del cdigo en MATLAB y C++ Pruebas de unidad Verificar si la velocidad de transmisin de datos es la correcta. Verificar el control de los motores. Verificar el paro de emergencia. Probar con diferentes individuos la interfaz grfica. Otras pruebas.
Pruebas de sistema Verificar la precisin del robot con respecto a los puntos de posicin deseados y a los puntos de posicin obtenidos. Medir el consumo total de energa. Monitorear los movimientos del robot a diferentes temperaturas. Otras pruebas. Aceptacin Crear tabla de especificaciones. Escribir manual de operacin. Crear curso de capacitacin. Generar documento de aceptacin. Como habrs notado, incluimos ms detalles en la etapa de Requerimientos. Lo hicimos para hacer nfasis en la importancia de esta etapa. Una gran cantidad de proyectos no tienen xito debido a la debilidad en la recopilacin y especificacin de requerimientos. Finalmente, podrs ver a continuacin una imagen mostrando la primera versin del robot SCARA, y otra mostrando su interfaz grfica de control.
29
29
Computacin I
Unidad 1. Informtica
1.3.2. Modelo V
El modelo V es similar en algunas caractersticas al modelo en cascada. Por ejemplo, ambos son secuenciales (una etapa tras otra) y se tiene que terminar totalmente una etapa antes de pasar a la siguiente; asimismo, ambos empiezan con los requerimientos. La diferencia ms significativa entre los dos modelos es que el modelo V realiza pruebas en cada etapa antes de pasar a la siguiente. Por ejemplo, se realiza la etapa de requerimientos y luego se efectan pruebas de aceptacin de esas necesidades ; una vez aprobados se puede continuar a la siguiente etapa. Se procede de la misma forma en todas las etapas hasta llegar a la ltima de codificacin o implementacin. Las pruebas se hacen al finalizar cada etapa y se repiten al terminar la codificacin o implementacin, como lo muestra el siguiente diagrama. Esto ltimo se efecta con el fin de verificar si el proyecto pasa cada una de las pruebas como producto final.
30
30
Computacin I
Unidad 1. Informtica
La aplicacin del modelo V es simple y gracias a sus fases de pruebas, se facilitan la deteccin y la correccin de problemas antes de pasar a la siguiente etapa lo que garantiza la buena calidad del producto final. Por su naturaleza, este modelo es muy til en programas y sistemas en donde la confiabilidad es crtica. Como el modelo en cascada, no incluye la iteracin de las etapas y tampoco permite la modificacin de los requerimientos a lo largo del desarrollo del proyecto. La experiencia muestra que la modificacin de requerimientos sin un control estricto de cambios puede crear problemas graves en el desarrollo, as que se entiende que no se permita la modificacin de requerimientos. Modelos ms complejos han sido desarrollados para incluir este tipo de variaciones.
31
31
Computacin I
Unidad 1. Informtica
Autoevaluacin
Felicidades! Haz llegado al final de la Unidad. Para terminar resuelve la actividad de Autoevaluacin que corresponde a un conjunto de reactivos: Instrucciones: elige la respuesta correcta que corresponda a la pregunta planteada. 1. Es la palabra que ha sido usada ampliamente por los angloparlantes. a) Informatics b) Computacin c) Base de datos d) Redes
3. Son las partes fundamentales del CPU a) Unidad de control, unidad aritmtica y lgica, ROM b) Unidad aritmtica y lgica, RAM, ROM c) Unidad aritmtica y lgica, entrada, salida d) Unidad de control, unidad aritmtica y lgica
4. Es un tipo de lenguaje que es considerado de bajo nivel. a) Lenguaje ensamblador b) Basc c) Java d) Cobol
5. Es un modelo de cascada que es ms flexible para el desarrollo de software y sistemas. a) Cascada en retroalimentacin b) Cascada en complemento c) Cascada simple d) Cascada en V
RETROALIMENTACION 1-3 aciertos. Los conocimientos obtenidos no fueron suficientes, debes revisar nuevamente el contenido de la unidad. 4-5 aciertos. Tienes un conocimiento claro de los conceptos manejados en la Unidad.Sigue adelante.
32
32
Computacin I
Unidad 1. Informtica
Evidencia de Aprendizaje. Presentacin de Resultados
Al finalizar esta actividad sers capaz de utilizar los modelos del ciclo de vida del software para desarrollar aplicaciones. De acuerdo a lo descrito en el tema 1.3. Ciclo de Vida del Software: 1. Elabora un reporte que llevar por nombre Utilizacin de modelos del ciclo de vida del software. a. Especifica una aplicacin de software que te gustara desarrollar y que resuelva algn problema. b. Selecciona uno de los modelos (en cascada, en cascada con retroalimentacin o en V) y desarrolla detalladamente cada una de sus etapas para la aplicacin que especificaste c. Agrega comentarios que expliquen claramente a un lector de tu reporte lo que ocurre dentro de cada etapa. d. Explica cmo podran llevarse a cabo las pruebas. e. Menciona los problemas que, segn tu criterio, podran encontrarse y cmo podran resolverse. f. Justifica la razn de tu seleccin de modelo. g. Debers obtener al final un documento que explique claramente a un lector lo que debe hacer para desarrollar adecuadamente una aplicacin como la que especificaste. 2. Guarda tu documento con la nomenclatura CI_U1_EA_XXYZ. Y enva tu archivo al Portafolio de evidencias. 3. Espera la retroalimentacin de tu Facilitador(a), atiende sus comentarios y reenva la nueva versin de tu evidencia, en caso de que sea requerido.
4.
Consulta la Escala de Evaluacin para conocer los criterios con que ser evaluado tu trabajo.
Cierre de la Unidad
En esta unidad se estudiaron los fundamentos de la informtica, as como la historia de la creacin y evolucin de las computadoras. Se discuti acerca del contexto actual de la informtica incluyendo la participacin del elemento humano. Se discuti cmo algunos de los pioneros de la informtica propusieron diseos que an hoy en da se utilizan para construir computadoras. Conociste algunos detalles de cmo se ejecutan los programas en una computadora y cmo se almacenan los datos y programas. Aprendiste finalmente acerca del ciclo de vida de desarrollo de software, un proceso sistemtico basado en modelos que puedes utilizar para desarrollar programas o sistemas de propsito especfico eficaces y de alta calidad.
33
33
Computacin I
Unidad 1. Informtica
Para saber ms
Consulta los siguientes links: Acerca de ENIAC: http://www.seas.upenn.edu/about-seas/eniac/ Acerca de EDVAC: http://www.youtube.com/watch?v=jhlSEIbxO0E Acerca de von Newmann: http://www-cs-faculty.stanford.edu/~eroberts/courses/soco/projects/199899/game-theory/neumann.html Acerca de ingeniera de software: http://www.google.com/url?sa=t&rct=j&q=&esrc=s&frm=1&source=web&cd=1&cad=rja&ved=0CC0QFjAA&u rl=http%3A%2F%2Finfolab.stanford.edu%2F~burback%2Fwatersluice%2Fwatersluice.pdf&ei=VryBUM6DB 8Oo2wW14oG4BQ&usg=AFQjCNHlEEg4qXEUpdB3gXXD6cK-DGiyPw&sig2=PzFA4gAE5IFaiGm1ZBauqQ
Fuentes de consulta
Stair, R., & Reynolds, G. (2012). Principles of Information Systems. (10th ed.). Boston: Cengage Learning. Karumanchi, N. (2011). Data Structures and Algorithms Made Easy (New. ed.). Bombay: CareerMonk Publications. Tanenbaum, A.(2000). Organizacin de Computadoras -Un Enfoque Estructurado. (7. Ed.). Mxico: Prentice Hall Hispanoamericana, S.A. Godfrey, M. Introduction to The First Draft Report on the EDVAC. IEEE Annals of the History of Computing, Vol. 15, No. 4, pp.27-75, 1993. Mano, M.(1982). Lgica digital y Diseo de Computadores. (1. Impres.). Espaa: Prentice-Hall International.
34
34