Introducción a la ingeniería de sistemas

Page 1

INTRODUCCIÓN A LA INGENIERÍA DE SISTEMAS E INFORMÁTICA

Gonzalo Rodolfo Peña Zamalloa


Cada autor es responsable del contenido de su propio texto. De esta edición: © Universidad Continental S.A.C 2013 Jr. Junin 355, Miraflores Teléfono: 213 2760 Derechos reservados Primera Edición: Aarzo 2013 Tiraje: 500 ejemplares Autor: Gonzalo Rodolfo Peña Zamalloa Oficina de Producción de Contenidos y Recursos. Impreso en el Perú - Printed in Perú Fondo Editorial de la Universidad Continental Todos los derechos reservados. Esta publicación no puede ser reproducida, en todo ni en parte, ni registrada en o trasmitida por un sistema de recuperación de información, en ninguna forma ni por ningún medio sea mecánico, fotoquímico, electrónico, magnético, electroóptico, por fotocopia, o cualquier otro sin el permiso previo por escrito de la Universidad.


ÍNDICE INTRODUCCIÓN PAUTAS GENERALES PRESENTACIÓN DE LA ASIGNATURA DIAGRAMA DE PRESENTACION DE LA ASIGNATURA COMPETENCIAS UNIDADES DIDÁCTICAS UNIDAD I: FUNDAMENTOS DE LA INGENIERÍA DE SISTEMAS E INFORMÁTICA DIAGRAMA DE PRESENTACIÓN DE LA UNIDAD Tema N° 1: CONCEPTOS FUNDAMENTALES DE LA INGENIERÍA DE SISTEMAS E INFORMÁTICA 1 LA CIENCIA 1.1 Ciencias Formales y Fácticas 1.2 El método de la ciencia

2 LA INGENIERÍA 2.1 Definición de ingeniería 2.2 Historia de la ingeniería 2.3 La Tecnología 2.4 La Ingeniería de Sistema e Informática

Tema N°2: TEORÍAS FUNDAMENTALES DE LA INGENIERÍA DE SISTEMAS E INFORMÁTICA 1 LA TEORÍA GENERAL DE SISTEMAS 1.1 Fundamentos 1.2 Alcance de la Teoría General de Sistemas

2 LA INFORMÁTICA 2.1 Origen del Término 2.2 Computador 2.3 Algoritmos y programas 2.4 Información e Incertidumbre

3 OTRAS TEORÍAS FUNDAMENTALES 3.1 La Cibernética 3.2 La Teoría de Autómatas

Autoevaluación DE LA UNIDAD Nº 1 LecturaS seleccionadaS 1. EL INFORME OPPENHEIMER / LATINOAMERICA 2. CYBORG EVOLUTION


BIBLIOGRAFÍA UNIDAD II: HERRAMIENTAS DE HARDWARE. Tema N° 01: TECNOLOGÍAS DE LA INFORMACIÓN Y LAS COMUNICACIONES (TICs) 1 USO DE LAS TICS 2 LOS COMPUTADORES 3.3 Arquitectura de un Computador 3.4Generaciones de Computadores 3.5 El Procesador 3.6 La Memoria 3.7 Input/Ouput y Buses 3.8 El Software de un Computador

4 USO DE LAS TICS EN LAS EMPRESAS 4.1 El Panorama 4.2 El Uso del Internet y Otras Herramientas de Red

Tema N° 01: REDES DE COMPUTADORES 1 CONCEPTOS FUNDAMENTALES 1.1 Definición de una Red de Computadores 1.2 Tipos de Transmisión 1.3 Topologías de Red

2 LA PILA DE RED 2.1 Organizaciones de Desarrollo de Estándares 2.2 El modelo de referencia OSI 2.3 El modelo del Protocolo TCP/IP

3 ARQUITECTURA Y DISEÑO DE UNA RED 3.1 La Arquitectura Point-to-Point

4 SWITCHING Y ROUTING 4.1 Switch 4.2 El Router 4.3 El Firewall 4.4 El Access Point 4.5 El Bridge 4.6 El Router Doméstico

Autoevaluación LecturaS seleccionadaS 1. NUEVAS TECNOLOGÍAS Y CAPITAL HUMANO 2. EL PINGÜINO QUE REVOLUCIONÓ EL SOFTWARE


BIBLIOGRAFÍA UNIDAD III: HERRAMIENTAS DE SOFTWARE. TEMA 1 GESTIÓN Y ALMACENAMIENTO DE DATOS 1 LA BASE DE DATOS 1.1 Definición 1.2 El DBMS 1.3 Profesionales en la Gestión de las Bases de Datos

2 ARQUITECTURA DE LOS DBMS 2.1 Estructura de DBMS 2.2 Capacidades Comunes de un DBMS 2.3 Lenguajes e Interfaces de Datos 2.4 Arquitecturas Centralizadas Cliente/Servidor

Tema N° 02: NGENIERÍA DE SOFTWARE 1 EL SOFTWARE 1.1 ¿Qué es el Software? 1.2 Características del Software 1.3 Clasificación del Software 1.4 Evolución del Software

2 EL PROYECTO DE SOFTWARE 2.1 Modelo de Madurez

3 MODELOS DE PROCESO DE DESARROLLO DE SOFTWARE 3.1 Modelo en Cascada 3.2 Modelo Incremental 3.3 Construcción de Prototipos 3.4 El Modelo en Espiral 3.5 Desarrollo Ágil

Tema N° 03: EL INTERNET 1 HISTORIA DEL INTERNET 1.1 Protocolo IP 1.2 Los Puertos

2 OTRAS TECNOLOGÍAS 2.1 Protocolos de Comunicación 2.2 El Protocolo HTTP 2.3 El Lenguaje HTML 2.4 Desarrollo de Aplicaciones Web


Autoevaluación LecturaS seleccionadaS 1. CASO: SISTEMA SANITARIO CON WEB 3.0 2. OPORTUNIDAD: TRABAJAR CON LA NUBE 3. FUTURO DE LAS REDES SOCIALES

BIBLIOGRAFÍA UNIDAD IV: FUNDAMENTOS DE ALGORITIMIA TEMA 1 INTRODUCCIÓN AL DISEÑO DE ALGORITMOS 1 PROGRAMA DE COMPUTADOR 1.1 ¿Qué es un Programa? 1.2 Consideraciones de Juicio

2 EL PROCESO DE ABSTRACCIÓN 2.1 La Abstracción y el Modelo 2.2 Analizar un Problema en el Mundo Real 2.3 “Divide y Vencerás”: Modularización

3 EL ALGORITMO 3.1 Definición de Algoritmo 3.2 Etapas de la Resolución de un Problema

4 ESTRUCTURAS DE CONTROL 4.1 Estructuras de Secuencia 4.2 Estructuras de Repetición 4.3 Estructuras Condicionadas 4.4 Estructuras de Selección 4.5 Estructura de Iteración

TEMA 2 INTRODUCCIÓN A UN LENGUAJE DE PROGRAMACIÓN 1 EL LENGUAJE DE PROGRAMACIÓN PYTHON 1.1 ¿Qué es Python? 1.2 Lenguaje interpretado o de script 1.3 Multiplataforma 1.4 Orientado a Objetos 1.5 ¿Por qué Python? 1.6 Instalación de Python 1.7 Herramientas básicas

2 MI PRIMER PROGRAMA EN PYTHON 3 TIPADO DE VARIABLES


1.1 Uso de Tipos de Datos 1.2 Números Enteros 1.3 Números Reales 1.4 Operadores Aritméticos 1.5 Operadores a Nivel de Bit 1.6 Cadena de Caracteres (Texto) 1.7 Tipos Booleanos

4 COLECCIONES DE DATOS 4.1 Listas 4.2 Tuplas 4.3 Diccionarios

5 ESTRUCTURAS DE CONTROL 5.1 Sentencias Condicionales 5.2 Bucles: While 5.3 Bucle For … In

6 IMPLEMENTACIÓN DE FUNCIONES 7 ENTRADA/SALIDA Y FICHEROS 7.1 Entrada Estándar 7.2 Parámetros de línea de comando 7.3 Salida estándar

Autoevaluación LecturaS seleccionadaS 1. LA INTELIGENCIA ARTIFICAL NOS RODEA 2. MERCADO CRECIENTE DE APLICACIONES MÓVILES

BIBLIOGRAFÍA LISTA DE ACTIVIDADES CLAVES DE AUTOEVALUACIONES GLOSARIO BIBLIOGRAFÍA



INTRODUCCIÓN

E

ste manual auto formativo ha sido diseñado pensando en usted que por algún motivo se ve imposibilitado de asistir a las clases presenciales de la universidad. Por tan-

to, partiendo de la premisa de que necesita desarrollar saberes conceptuales y procedimentales básicos para la introducción a la especialidad de la ingeniería de sistemas e informática, comience por alcanzar los principales conceptos sobre sistemas y luego ingrese en el proceso de la informática, haciendo uso para ello de un conjunto de herramientas de gran importancia en esta modalidad, que aseguran el éxito en el desarrollo del curso, siendo este manual auto formativo su material didáctico más importante. El manual contiene los conocimientos más importantes sobre los fundamentos de la ingeniería, el perfil del profesional, la ingeniería de sistemas, el conocimiento de la estructura y funcionamiento de la computadora, la ingeniería informática, las programación.

estructuras de programas y algoritmias de


Pautas Generales A continuación unas indicaciones sencillas respecto del estudio de cada una de las unidades del manual. Se le sugiere: • Realizar el estudio de los contenidos de cada unidad. Esta lectura será analítica y reflexiva subrayando, resumiendo y asimilando la información. • Desarrollar la auto evaluación. • Desarrollar las actividades dirigidas, los que serán realizados en forma individual y con la asesoría del Tutor. • Desarrollar los controles de lectura y tareas académicas correspondientes a cada una de las unidades. Presentado el curso y habiendo hecho la introducción, se le exhorta a poner todo el empeño en el desarrollo de los conocimientos, puesto que si no pone de su parte será difícil que se logren las competencias requeridas para completar el curso, dependiendo de la voluntad que le ponga, se le desea el éxito de tal tarea.


Desarrollo de contenidos

PRESENTACION DE LA ASIGNATURA DIAGRAMA DE LA ASIGNATURA

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

Competencia Expone los fundamentos teóricos que sustentan los principios de la ingeniería, las teorías de sistemas y la información. Presentar las principales tecnologías para la manipulación, almacenamiento y transmisión de datos. Utiliza los principios básicos de algoritmia para la escritura de programas estructurados sencillos. Explicar el rol de las tecnologías de la información y las comunicaciones y su relación con el sector empresarial Unidades Didácticas UNIDAD I

UNIDAD II

UNIDAD III

UNIDAD IV

Fundamentos Teóricos de la Ingeniería de Sistemas e Informática

Tecnologías de Hardware y Redes

Tecnologías de Software e Internet

Fundamentos de Algoritmia y Programación

Tiempo Mínimo De Estudio UNIDAD I

UNIDAD II

UNIDAD III

UNIDAD IV

Primera y Segunda Semana 16 Horas

Tercera y Cuarta Semana 16 HoraS

Quinta y Sexta Semana 16 Horas

Séptima y Octava Semana 16 Horas

Este diagrama sintetiza los contenidos del curso y se mostrarán más detalles en los cuadros que dividen a las unidades más adelante.

Bibliografía

11



UNIDAD I: FUNDAMENTOS DE LA INGENIERÍA DE SISTEMAS E INFORMÁTICA

Desarrollo de contenidos

Diagrama

Objetivos

Inicio

Lecturas seleccionadas

UNIDAD I: FUNDAMENTOS DE LA INGENIERÍA DE SISTEMAS E INFORMÁTICA

Desarrollo de contenidos

Actividades

Lecturas seleccionadas

Glosario

Diagrama

Recordatorio

Bibliografía

DIAGRAMA DE PRESENTACIÓN DE LA UNIDAD Objetivos

Inicio

Anotaciones

CONTENIDO Actividades

Lecturas seleccionadas

Glosario

Recordatorio

Glosario

Autoevaluación

Recordatorio

Desarrollo de contenidos

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

EJEMPLOS

Autoevaluación

BIBLIOGRAFÍA

AUTOEVALUACIÓN

Bibliografía

Anotaciones CONOCIMIENTOS

Tema N° 1: Conceptos fundamentales de la ingeniería de sistemas e informática 1. La ciencia 2. La Ingeniería Tema Nº 2: Teorías fundamentales de la ingeniería de sistemas e informática 1. La Teoría General de Sistemas 2. La Informática 3. Otras Teorías Fundamentales Lectura seleccionada 1: El Informe Openheimer / Latinoamérica; Oppenheimer, A. Lectura seleccionada 2: Cyborg Evolution; Mestres, F. Autoevaluación Nº 1

ACTIVIDADES

PROCEDIMIENTOS

ACTITUDES

1. Comprende las diferencias entre ciencia e ingeniería, además de la importancia de estos conceptos para la comprensión de su labor futura.

1. Revisa de forma global el material, familiarizándose con los temas.

Actividad N° 1 Ensayo que profundiza los temas tratados. Actividad N° 2 Informe acerca del rol del Ingeniero de Sistemas e Informático en el contexto local y nacional. 2. Describe las teorías que forman las bases de la informática y los sistemas a través de la revisión de sus contenidos y el video guía. Actividad N° 3 Ensayo sobre el pensamiento sistémico y sistemático. Actividad N° 4 Organizador resumen Control de Lectura Nº 1

2. Establece rutinas de estudio para que pueda dedicar el tiempo suficiente a las asignaturas que tomará. 3. Cumple con las indicaciones y los trabajos a tiempo.

Anotaciones

Bibliografía

13


s

s

o

14

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD I: FUNDAMENTOS DE LA INGENIERÍA DE SISTEMAS E INFORMÁTICA

TEMA 1: CONCEPTOS FUNDAMENTALES DE LA INGENIERÍA DE SISTEMAS E INFORMÁTICA Anotaciones

Para comprender el verdadero sentido de la Ingeniería de Sistemas e Informática como disciplina científica es necesario comprender los conceptos fundamentales que hacen parte de la misma como: ciencia, ingeniería, tecnología y la ingeniería de sistema e informática en la Universidad Continental de Ciencias e Ingeniería.

Iniciaremos con una visión general de la ciencia, sus representaciones más comunes, el entendimiento de la ingeniería y la producción de tecnología para terminar con la definición de la Ingeniería de Sistemas e Informática en la UCCI. 1 LA CIENCIA 1.1. Ciencias Formales y Fácticas Para poder comprender a la ciencia y su relación con la Ingeniería, debemos tener en claro lo que llamamos ciencia y entender la diferencia entre ciencia formal y ciencia fáctica, división que muestra Bunge en su obra “La ciencia su método y su filosofía,” a esto podremos ya añadir luego conceptos contemporáneos que nos permitirán establecer claramente el ámbito y propósito de la Ingeniería de Sistema e Informática. “Tenemos así una primera gran división de las ciencias, en formales (o ideales) y fácticas (o materiales). Esta ramificación preliminar tiene en cuenta el objeto o tema de las respectivas disciplinas; también da cuenta de la diferencia de especie entre los enunciados que se proponen establecer las ciencias formales y las fácticas: mientras los enunciados formales consisten en relaciones entre signos, los enunciados de las ciencias fácticas se refieren, en su mayoría, a entes extra científicos: a sucesos y procesos. …” (Bunge, 1960) La perspectiva de Bunge permite identificar los elementos de las ciencias, y además analiza sus métodos y el medio en el que se formula la experimentación para la verificación de dichos conocimientos. Es así que las ciencias formales como la matemática y la lógica encuentran su espacio en la mente humana, mientras que las ciencias fácticas comprenden a los elementos que generan los fenómenos de la naturaleza y las actividades humanas que a través de sus tecnólogos manipulan en la naturaleza. Muchas otras ciencias se valdrán de estos conocimientos formales para desarrollar y plantear sus propias verificaciones. La ciencia está constituida por un conjunto de conocimientos sistematizados y verificados a través de la experimentación o la observación directa. 1.2.El método de la ciencia El conocimiento científico trasciende a los hechos y por ello los explica de forma clara y precisa. La formación de este conocimiento requiere de un método veri-


UNIDAD I: FUNDAMENTOS DE LA INGENIERÍA DE SISTEMAS E INFORMÁTICA

Desarrollo de contenidos

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

ficable. Al que podemos definir como un conocimiento que debe ser verdadero, es decir, que pueda ser descrito en términos formales (utilizando leyes y teorías comprobadas).

El problema de la verificación de la información parte de que no toda la información a tratar es verificable en esto podemos encontrar gran contenido nominal que no es verdadero ni falso, además de los fenómenos de envergadura tal que no pueden ser reproducidos en los laboratorios y solo se pueden simular bajo modelos formales. En fin, el método científico puede describirse como el arte de formular interrogantes y encontrar respuestas que puedan ser legales. Las ciencias aplicadas como la ingeniería, la informática, la electrónica, etc., son artes antes que ciencias pues no pueden ser reducidas a la aplicación de un conjunto de reglas, y es que el juicio personal juega un papel importante en la forma de aplicación de los conocimientos alcanzados. Y menor aún es el grado de aplicación de una disciplina científica tal como la Ingeniería de Sistemas e Informática. Diagrama

Objetivos

Desarrollo de contenidos

Actividades

Inicio

ACTIVIDAD N° 1: Autoevaluación

Esta actividad puede consultarla en su aula virtual.

Lecturas seleccionadas

2 LA INGENIERÍA

Glosario

Bibliografía

Recordatorio

Anotaciones

1.1.Definición de ingeniería liderazgo

decisiones criticas

ciencia

decisiones racionales

diseño

Ingeniería

Ciencia

cognición

Industria

tecnología

medio ambiente economía

Información gobierno

sociedad

La ingeniería puede considerarse el arte o ciencia de producción. La ingeniería transforma la naturaleza en beneficio de la humanidad. Para transformar la naturaleza efectivamente requiere de conocimientos sobre las ciencias naturas, y para entender el beneficio de la humanidad requiere de la aplicación adecuada del conocimiento sobre los factores socioeconómicos. Internamente, la ingeniería posee tres aspectos, ciencia de la ingeniería, diseño y desarrollo, y administración y organización. Externamente, está cercanamente relacionada a las ciencias naturales por un lado y por otro a la industria. Juntas estas dos caras constituyen el motor de la tecnología.

1.2.Historia de la ingeniería La ingeniería ha estado presente en cada etapa del desarrollo tecnológico humano, marcando cuatro periodos de revolución trascendental. (Auyang, 2004) La revolución pre-científica que comprendió los inicios de la historia en la que artesanos y artistas solían ser los mayores representantes. Muchos monumentos y dispositivos antiguos causaban admiración del común por lo que el término ingeniería se originó en el siglo XI del latín ingeniator, que significa quien tiene ingenium, el ingenioso. El nombre utilizado para los constructores de ingeniosas fortificaciones, los creadores de ingeniosos dispositivos, estando cercanamente relacionado a la noción de inventiva o ingeniosidad. Esta era termina aproximadamente en el renacimiento con representantes como Leonardo Da Vinci cuando fue que los ingenieros comenzaron a preguntarse el ¿por qué? y el ¿cómo? de las cosas. La revolución industrial que fue la primera etapa real de la ingeniería moderna pues fue promovida por una revolución científica. Las dos nuevas ciencias de Galileo, que buscaban explicaciones sistemáticas y adoptan un enfoque científico a la solución de problemas prácticos. El inicio del análisis estructural que

Bibliografía

15


s

s

o

16

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD I: FUNDAMENTOS DE LA INGENIERÍA DE SISTEMAS E INFORMÁTICA

usa representaciones matemáticas para el diseño de estructuras es uno de los primeros avances. Esta revolución continuó durante toda la primera revolución industrial, cuando la fuerza laboral obrera era reemplazada por máquinas de motores a vapor. Los artesanos tradicionales se transformaban a sí mismos en profesionales modernos.

Anotaciones

Es en la revolución industrial donde la ingeniería civil promueve una formación matemática en las universidades especialmente en Francia. Mientras que en Inglaterra, un enfoque más empírico pone las bases del desarrollo de la ingeniería mecánica. El pensamiento práctico y el intuitivo van teniendo bases de análisis matemático y experimentos controlados. La educación pasa de un modelo maestro-aprendiz a uno con formación universitaria. La información fluye con mayor velocidad y se encuentra en publicaciones de sociedades emergentes. La segunda revolución industrial simboliza el advenimiento de la electricidad y la producción en masa, que permitió la formación de muchas ramas de la ingeniería. La ingeniería química y eléctrica, y la industria de las telecomunicaciones. Los ingenieros marinos exploraban el océano, mientras los ingenieros aeronáuticos creaban medios de transporte para las personas ordinarias. La ingeniería de control, por su parte aceleraba los procesos con la automatización, y de la mano la ingeniería industrial generaba sistemas de distribución y producción. Las universidades establecían mejores currículos, se implementaban laboratorios e investigación dentro de las organizaciones, presentando una serie de innovaciones individuales sistemáticas. La revolución de la era de la información ha causado una explosión de desarrollo en todos los campos justo después de la Segunda Guerra Mundial, en parte debido a la Guerra Fría y el efecto Sputnik. Las ingenierías, en especial tuvieron un desarrollo mayor al alcanzado por las ciencias naturales. Nuevas tecnologías como el desarrollo aeroespacial, la microelectrónica, computadoras y las tecnologías de las comunicaciones como el internet y la comunicación móvil, estimularon el desarrollo de la ingeniería. El uso del poder nuclear creó la ingeniería nuclear. Nuevos materiales permitieron el desarrollo en la ingeniería en varios campos. Pero sobre todo el desarrollo de los componentes micro electrónico, las ingenierías de la computación y las telecomunicaciones, crean una revolución en el manejo de la información que permite un desarrollo intelectual acelerado. El progreso se ve dirigido por estas tecnologías que se encuentran continuamente redefiniéndose. La investigación intensiva en la ingeniería produce no solo tecnología, sino también un cuerpo de conocimiento sistemático poderoso conformado por: las ingenierías de ciencias de las teorías de sistemas e información, la computación, el control, y las comunicaciones. Diagrama

Objetivos

Desarrollo de contenidos

Actividades

Lecturas seleccionadas

Recordatorio

Inicio

ACTIVIDAD N° 2: Autoevaluación

Esta actividad puede consultarla en su aula virtual.

Glosario

Bibliografía

1.3.La Tecnología

Lejos de ser opuesto a la cultura, la tecnología es un elemento inalienable de la cultura que permite la producción de caminos en la vida. Reside no solo en los bienes y servicios de alta tecnología, sino realmente influencia en el entenAnotaciones dimiento humano sobre cómo hacemos las cosas, relacionado las cosas y organizando nuestras instituciones sociales. capacidades

La tecnología tiene tres aspectos principales, los bienes y servicios, la actividad humana que los crea, y las capacidades técnicas que los habilitan. Las actividades

habilita actividades

tecnología produce

expande productos


UNIDAD I: FUNDAMENTOS DE LA INGENIERÍA DE SISTEMAS E INFORMÁTICA

Desarrollo de contenidos

Lecturas seleccionadas

en la investigación, desarrollo y producción no solo de bienes y servicios sino también el conocimiento y las habilidades para su suministro y manipulación. El progreso tecnológico responde a la oferta y demanda, influenciado en cada paso por los recursos naturales, la condición económica, y las preferencias deRecordatorio los consumidores. 1.4.La Ingeniería de Sistema e Informática Vamos a analizar lo que el perfil del estudiante de Ingeniería de sistemas de la UCCI debe realizar: “Profesionales capaces de desarrollar proyectos de calidad en: Sistemas, Informática, Ingeniería de Software y Tecnologías de Información y Comunicación, vinculándolos al estudio crítico de las realidades que impulsen el desarrollo social, económico y cultural de nuestra región y del país. Tiene la capacidad para planificar, analizar, diseñar, desarrollar, evaluar, configurar, integrar, auditar, mantener y seleccionar tecnologías y servicios de sistemas, informática y tecnologías de información y comunicación, para la solución de problemas de cualquier organización dentro de un marco humanista, con sentido crítico, en beneficio de la calidad de vida del hombre y la sociedad.” La definición clara de lo que se espera que el ingeniero de sistemas en la UCCI sea, define las tecnologías que debe dominar, hacia quién o quienes estará dirigido el producto o servicio del ingeniero de sistemas y el contexto en el que se espera labore.

TEMA 2: TEORÍAS FUNDAMENTALES DE LA INGENIERÍA DE SISTEMAS E INFORMÁTICA La Ingeniería de Sistemas e Informática es disciplina de la ingeniería que mantiene a su propósito fuertemente arraigadas la teoría de la información y la teoría de sistemas, pues de ambas recupera sus fundamentos y en ellas encuentra los principios de su creación, junto a otros conceptos fundamentales.

Las teorías más resaltantes que dieron origen al pensamiento sistémico y la concepción de la informática se presentarán a continuación como parte esencial del origen y las bases de la ciencia que estudia esta carrear profesional. 1 LA TEORÍA GENERAL DE SISTEMAS 1.1.undamentos Su contexto es el de una ciencia dominada por los sistemas complejos, como los organismos o las sociedades, permite un tipo de aproximación desde una perspectiva que no separará los fenómenos y ni tratará cada parte individualmente, sino como un todo integrado e interactuante.

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Glosario

Anotaciones

Bibliografía

17


s

s

o

18

Actividades

Autoevaluación

Glosario

Bibliografía

Anotaciones

UNIDAD I: FUNDAMENTOS DE LA INGENIERÍA DE SISTEMAS E INFORMÁTICA

La Teoría General de los Sistemas propuesta, por L. von Bertalanffy aparece como una meta-teoría, una teoría de teorías, que partiendo del muy abstracto concepto de sistema, busca reglas de valor general, aplicables a cualquier sistema y en cualquier nivel de la realidad. Surge debido a la necesidad de abordar científicamente la comprensión de los sistemas concretos que forman la realidad, generalmente complejos y únicos, resultantes de una historia particular, en lugar de sistemas abstractos. La Teoría General de Sistemas no separará los fenómenos y tratará cada parte individualmente, sino como un todo integrado e interactuante. 1.2.Alcance de la Teoría General de Sistemas Con la expansión creciente de la actividad de sistemas y los estudios al respecto, la definición de la teoría general de los sistemas es posible restringirla al sentido técnico, desde el punto de vista matemático, como tantas veces se hace, pero esto no parece del todo recomendable, en vista de que abundan los problemas de sistemas que requieren otras teorías, en términos matemáticos. En términos generales pueden indicarse tres aspectos principales, no separables en cuanto a contenido pero distinguibles en intención: Primero debemos considerar la ciencia de los sistemas, o sea la exploración y la explicación científica de los sistemas de las varias ciencias (física, biología, psicología, ciencias sociales...), con la teoría general de los sistemas, como doctrina de principios aplicables a todos los sistemas (o a subclases definidas de ellos). Están ingresando en la esfera del pensamiento científico entidades de naturaleza esencialmente nueva en sus diversas disciplinas. Ahora hemos aprendido que para comprender no se requieren sólo los elementos sino las relaciones entre ellos, digamos, el juego de muchos procesos mentales conscientes e inconscientes, la estructura y dinámica de los sistemas sociales, etc. Esto requiere la exploración de los numerosos sistemas de nuestro universo observado, por derecho propio y con sus especificidades. Adicionalmente, aparecen aspectos y correspondencias generales comunes a los sistemas. De modo que la teoría general de los sistemas es la exploración científica del todo, como la suma de elementos que hacen una totalidad. Las tres dimensiones de la teoría de sistemas son: La ciencia, la tecnología y la filosofía de sistemas.. El segundo territorio es el de la tecnología de los sistemas, o sea el de los problemas que surgen en la tecnología y la sociedad modernas y que comprenden tanto el hardware de computadoras, automación, maquinaria autorregulada, etc., como el software de los nuevos adelantos y disciplinas teóricos. La tecnología y la sociedad modernas se han vuelto tan complejas que los caminos y medios tradicionales no son ya suficientes, y se imponen actitudes de naturaleza de sistemas, y generalista, o interdisciplinaria. Lo mismo se aplica a objetivos más limitados en la industria, el comercio y el armamento. Los requerimientos tecnológicos han conducido a nuevos conceptos y disciplinas, en parte muy originales y que implantan nuevas nociones básicas, como las de las teorías del control y la información, de los juegos y de la decisión, de los circuitos y de las colas, etc. La característica general, una vez más, es que éstas descienden de problemas específicos y concretos en tecnología, pero los modelos, conceptualizaciones y principios —así los de información, retroalimentación, control, estabilidad, circuito, etc. (Bertalanffy).


UNIDAD I: FUNDAMENTOS DE LA INGENIERÍA DE SISTEMAS E INFORMÁTICA

Desarrollo de contenidos

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

En tercer lugar está la filosofía de los sistemas, a saber, la reorientación del pensamiento y la visión del mundo resultante de la introducción del sistema como nuevo paradigma científico. Al igual que toda teoría científica de gran alcance, la teoría general de los sistemas tiene sus aspectos meta científicos o filosóficos. Diagrama

Objetivos

Desarrollo de contenidos

Actividades

Lecturas seleccionadas

Inicio

ACTIVIDAD N° 3: Autoevaluación

Esta actividad puede consultarla en su aula virtual.

Glosario

Bibliografía

2 LA INFORMÁTICA 2.1.Origen del Término

Recordatorio

Anotaciones

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

La informática es la ciencia que estudia el procesamiento automático de la información. Su naturaleza está íntimamente ligada al uso del computador para esta tarea. Aunque la necesidad de razonar sobre este tipo de procesos existe desde tiempo atrás, la consolidación de la informática como ciencia, solo se produce con el desarrollo de los computadores, a partir de los años cuarenta. Se trata, por lo tanto, de una ciencia muy joven, pero que ha evolucionado a gran velocidad.

2.2.Computador Un computador es una maquina electrónica que procesa información siguiendo las instrucciones de un programa. Para comunicarse con el exterior dispone de unos medios de entrada, a través de los que recibe la información, y unos medios de salida, por donde la envía. Tiene dispositivos que le permiten almacenar la información (los datos, los resultados y el propio programa) y procesarla siguiendo las instrucciones del programa.

La informática es la ciencia que estudia el procesamiento automático de la información (ligada al uso del computador para esta tarea)...

La información que se procesa en el computador (programas, datos y resultados) está expresada en forma digital binaria, combinando ceros y unos. En consecuencia, tanto los programas como los datos y resultados deben codificarse en este formato para poder ser procesados. Una vez obtenidos los resultados, tienen que ser decodificados para mostrarlos al usuario. 2.3.Algoritmos y programas La utilización de los computadores es posible solo bajo el uso de programas, los que tienen como finalidad la solución de un problema en particular. Siguiendo un conjunto de etapas para ser desarrollados y puestos en marcha. Desde el planteamiento de un problema hasta la obtención de su solución en el computador hay que recorrer una serie de etapas: En primer lugar, antes de resolver un problema en el computador hay que conocer los pasos y operaciones que hay que realizar para obtener la solución del problema, es decir, su algoritmo, porque el computador solamente es capaz de seguir aquellas instrucciones que nosotros le indiquemos. Si no conocemos el proceso que nos conduce a la solución del problema, el computador no nos la va a dar. Esta secuencia de pasos y operaciones constituye una solución general al problema planteado de forma que, siguiendo el proceso, se llega a la solución

Bibliografía

19


s

s

o

20

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD I: FUNDAMENTOS DE LA INGENIERÍA DE SISTEMAS E INFORMÁTICA

del problema sean cuales fueran los datos proporcionados.

Anotaciones

Una vez conocida esta solución general del problema, hay que expresarla en un lenguaje especial, que pueda ser comprendido y ejecutado por el computador, es decir, en un lenguaje de programación, creando un programa. Posteriormente, hay que comprobar que el programa produce las soluciones esperadas (ya sea utilizando datos de prueba o mediante métodos formales) y subsanar los errores detectados. Por último, es importante documentar el programa de forma que si cambiaran algunas de las circunstancias iniciales, sea posible modificar y adaptar convenientemente, facilitando las labores de mantenimiento. 2.4 Información e Incertidumbre El término información tiene en general un significado muy amplio, que podemos imaginar a la información, desde la proporcionada por una fotografía o un poema. Por eso, en el contexto de la informática como ciencia que trata sobre el tratamiento automático de la información, se asocia a esta un significado más restringido y adaptable. La informática trata a la información como un elemento restringido y adaptable que se puede tratar con medios electrónicos. Para definir este significado, consideremos que deseamos determinar un cierto fenómeno, que puede presentar una cantidad finita de estados. Entonces, una información (sobre ese fenómeno) es una sentencia capaz de aportar algún conocimiento sobre tal fenómeno; esto es, capaz de delimitar en cierta medida su estado. En lugar de hablarse de cantidad de información, resulta más fácil manipular la de incertidumbre. Una medida indirecta de ello consiste en la cantidad de estados posibles: su grado de indeterminación. Si cierto fenómeno ofrece doce estados posibles, su grado de indeterminación es doce, pero resulta más conveniente considerar como medida de la incertidumbre el logaritmo (en base dos) de esta cantidad, puesto que la incertidumbre crece de forma exponencial (con base dos) respecto de la longitud (número de bits) del mensaje. Esta medida de la incertidumbre se llama entropía asociada a un fenómeno. Entonces, la información asociada a una sentencia se define como disminución de incertidumbre proporcionada. La redundancia en la codificación. En los convenios de codificación/decodificación estudiados hasta ahora, se ha supuesto que su transmisión o su almacenamiento se efectúan siempre sin ruido. En ellos, el objetivo principal consiste en diseñar convenios eficaces (sin emplear más dígitos que los estrictamente necesarios, minimizando así la redundancia), unívocos (donde el cifrado es único) y sin ambigüedad, siendo única toda decodificación. Para prever la posibilidad de que se produzcan perturbaciones, se han ideado métodos capaces de descubrir en ciertas condiciones cuando se ha alterado un mensaje (códigos detectores), así como otros capaces de restituir su estado inicial (códigos correctores). 3 OTRAS TEORÍAS FUNDAMENTALES 3.1. La Cibernética La informática es la ciencia que estudia el procesamiento automático de la información (ligada al uso del computador para esta tarea)... La Cibernética puede entenderse como el análisis racional de lo que significa gobernar. El origen del término indica que es una teoría de los sistemas de con-


UNIDAD I: FUNDAMENTOS DE LA INGENIERÍA DE SISTEMAS E INFORMÁTICA

Desarrollo de contenidos

Lecturas seleccionadas

trol basada en la comunicación (transferencia de información) entre sistema y medio circundante, y dentro del sistema, y en el control (retroalimentación) del funcionamiento del sistema en consideración al medio. El modelo tiene extensa aplicación pero no ha de identificarse con la teoría de los sistemas en general.Recordatorio El modelo cibernético conviene para describir la estructura formal de mecanismos de regulación. Así se logra reconocer la estructura reguladora aun cuando los genuinos mecanismos permanezcan desconocidos y sin describir, y el sistema sea una caja negra definida sólo por entrada y salida. Por razones parecidas, el mismo esquema cibernético puede aplicarse a sistemas hidráulicos, eléctricos, fisiológicos, etc. 3.2. La Teoría de Autómatas La mayor parte del conocimiento científico es el resultado de muchos años de investigación, con frecuencia sobre temas que aparentemente no tienen una relación directa. Como veremos, esto sucede también con un campo como la Informática Teórica. Esta materia se ha desarrollado gracias a la confluencia de campos muy diferentes, como son: las matemáticas, la teoría de máquinas, la lingüística, etc. Podemos considerarla, por tanto, como una materia multidisciplinar. Toda comunicación conlleva la utilización de un lenguaje, que podemos definir como un conjunto de palabras formadas por símbolos de un alfabeto. Las gramáticas permitirán definir la estructura de los lenguajes, es decir, proporcionarán las formas válidas en las que se pueden combinar los símbolos del alfabeto para construir cadenas correctas. Una máquina abstracta o autómata es un dispositivo teórico que recibe como entrada una cadena de símbolos y los procesa, cambiando de estado, de manera que genera una determinada salida. Los autómatas pueden servir, entre otras cosas, para determinar si una palabra pertenece o no a un determinado lenguaje. Por lo tanto, las gramáticas nos permitirán definir lenguajes y los autómatas podrán reconocer las palabras de dichos lenguajes. Para encontrar los principios de la Informática Teórica debemos remontarnos a los años 30, década en la que el mundo de las matemáticas se hallaba ocupado, sobre todo, en temas como la lógica y la definición de sistemas axiomáticos. El método axiomático requiere una colección de enunciados básicos, llamados axiomas, que describen las propiedades fundamentales del sistema que se estudia. A partir de estos axiomas, se derivan enunciados adicionales, llamados teoremas, aplicando secuencias finitas de reglas de inferencia. Una ventaja de este método es que ofrece un modelo de razonamiento deductivo en el cual todas las suposiciones están aisladas en los axiomas iniciales y las reglas de inferencia. Cualquier enunciado que se derive posteriormente será una consecuencia de estas suposiciones. A principios del siglo XX, muchos matemáticos creían que era posible encontrar un único sistema axiomático en el que podrían basarse todas las matemáticas. Su meta era encontrar un conjunto de axiomas y reglas de inferencia correcta de manera que las matemáticas pudieran reducirse a un sistema computacional con el cual pudiera deducirse la veracidad o falsedad de cualquier enunciado matemático. Uno de los principales defensores de esta idea era el conocido matemático alemán Hilbert. Sin embargo, en 1931, el austríaco Kurt Godel publicó el “Teorema de la in-completitud”, en el que demostraba que era imposible la completa axiomatización de las matemáticas. En 1937, el matemático inglés Alan Turing, en su artículo “Sobre los números computables”, presentó la conocida Máquina de Turing (MT), una entidad materna abstracta con la que se formalizó el concepto de algoritmo, además demostró que muchos problemas perfectamente definidos no pueden ser resueltos mediante una MT, es decir, no son computables y de esta manera ratificó la teoría de Gódel. Esta máquina sería la precursora, desde un punto de vista teórico, de los computadores que se construyeron durante la siguiente década. La Máquina de Turing tiene el poder computacional más alto conocido hasta el momento, es decir, es capaz de resolver cualquier problema que tenga una solución computacional.

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Glosario

Anotaciones

Bibliografía

21


s

s

o

22

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD I: FUNDAMENTOS DE LA INGENIERÍA DE SISTEMAS E INFORMÁTICA

Podemos considerar todo esto como el primer eslabón dentro del campo de la Informática Teórica. El segundo eslabón se ubicaría en un campo muy cercano a la Electrónica en el que el matemático Shannon estableció las bases para la aplicación de la lógica matemática al diseño de los circuitos combinatorios y secuenciales. Las ideas de Shannon derivarían en la formalización de una teoría de máquinas secuenciales y autómatas, cuyo principal objetivo era representar de manera formal el comportamiento de un determinado dispositivo electrónico o mecánico. Los autómatas son, en un sentido amplio, sistemas que aceptan señales del medio que les rodea, cambian de estado como consecuencia de estas señales y trasmiten otras señales al medio. En este sentido, un electrodoméstico común, una central telefónica, un ordenador, e incluso ciertas facetas del comportamiento de los seres vivos pueden modelarse mediante autómatas. A finales de los años 50s se comenzó a estudiar la utilidad de los autómatas en relación con los lenguajes de programación y su proceso de traducción.

Anotaciones

Para llegar al tercer eslabón de la Informática Teórica hay que saltar al campo de la lingüística. En la década de los años 50, el lingüista y pensador Noam Chomsky, en un intento de formalizar los lenguajes naturales, estableció las bases de la lingüística matemática o formal y con ello proporcionó una poderosa herramienta que facilitó la definición de los primeros lenguajes de programación, que empezaban a surgir en esa época.

Diagrama

Diagrama

Objetivos

Desarrollo de contenidos

Actividades

Inicio

ACTIVIDAD N° 4: Autoevaluación

Esta actividad puede consultarla en su aula virtual.

Objetivos

Inicio

Lecturas seleccionadas

Glosario

Actividades

Autoevaluación

Bibliografía

AUTOEVALUACIÓN DE LA UNIDAD N° I Desarrollo de contenidos

Recordatorio

Lecturas seleccionadas

Glosario

Anotaciones

1) ¿Cuál de estas clasificaciones es adecuada para la Ingeniería de Sistemas e Informática? a) Ciencia Formal

Bibliografía

b) Ciencia Fáctica c) Tecnología d) Disciplina Científica

Recordatorio

Anotaciones

2) Se llama ___________________ al conjunto de conocimientos formales adquiridos a través de métodos formales y que son sujetos a experimentación 3) Una de las dimensiones de la TGS: a) La técnica b) El método c) La filosofía d) La disciplina 4) Complete: ________________ es la etapa de la ingeniería en la que se promueve el desarrollo de la ingeniería de control. 5) Además del diseño, y la ciencia, la ingeniería posee un elemento importante que es: a) Liderazgo b) Control c) Administración d) Desarrollo


UNIDAD I: FUNDAMENTOS DE LA INGENIERÍA DE SISTEMAS E INFORMÁTICA

Desarrollo de contenidos

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

6) La tecnología tiene tres aspectos principales: __________________, la actividad que la crea, y las capacidades técnicas que los habilitan. 7) ¿Qué significa TGS? a) Teoría Grow System b) Teoría General de Sistemas c) Technological General System d) Teoría General Sistemática. 8) El pensamiento ______________ ve las cosas en su totalidad y define como interactúan sus elementos. 9) Es una herramienta esencial, que utiliza la informática para ejecutar sus tareas: a) Servidor b) Aplicación c) Hardware d) Computador

10) La ______________ crece cuando se posee menos cantidad de datos sobre un mensaje y es más difícil descifrarlo y predecirlo. 11) Significa que el cifrado es único a) Unívoco b) Digital c) Binario d) Redundancia 12) ____________ es el término en inglés del que hace uso la cibernética y suele ser usado para analizar un resultado como un dato de entrada. 13) Productor de la teoría matemática de la información: a) Bertalanffy b) Shannon c) Durk d) Turing 14) La informática trata a la información como un elemento ______________ y __________ que se puede tratar con medios electrónicos. 15) Es una secuencia de pasos diseñada para ser implementada en un computador: a) Ejecutable b) Algoritmo c) Software d) Proceso digital 16) En la etapa conocida como ___________________ se genera la palabra latín ingeniarot para referirse a los creadores ingeniosos. 17) Es el arte de formular preguntas y encontrar respuestas legales o formales. a) El desarrollo de programas b) La ingeniería c) El método científico d) El diseño de la tecnología

Bibliografía

23


s

s

o

24

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD I: FUNDAMENTOS DE LA INGENIERÍA DE SISTEMAS E INFORMÁTICA

18) La TGS es propuesta formalmente por primera vez por _________________.

Anotaciones

19) Es un dispositivo teórico que recibe como entrada una cadena de símbolos y los procesa, cambiando de estado, de manera que genera una determinada salida: a) Un pixel b) Una aplicación c) Un metalenguaje d) UnObjetivos autómata Inicio

Diagrama

20) Un __________________ es necesario para poder escribir instrucciones que el computador pueda interpretar y el humano también. Desarrollo de contenidos

Actividades

Autoevaluación

LECTURA SELECCIONADAS Lecturas seleccionadas

Glosario

Bibliografía

1. EL INFORME OPPENHEIMER / LATINOAMERICA Oppenheimer, A. (2011, Jan 31). EL INFORME OPPENHEIMER / Latinoamérica requiere un ‘momento Sputnik’. Reforma, pp. 25. Recordatorio

Anotaciones

El mensaje del Presidente Barack Obama en su discurso sobre el Estado de la Unión exhortando a “un nuevo momento Sputnik” fue un dramático llamado destinado a sacudir al pueblo de Estados Unidos. Ahora, debería ampliar el alcance de su mensaje, y convertirlo en un llamado a la acción para todos los países de las Américas. En su discurso del 25 de junio, Obama dijo que Estados Unidos se está quedando atrás de otros países en educación, ciencia, tecnología e innovación. Obama dijo que Estados Unidos debe invertir mucho más en programas de ciencia y tecnología, tal como lo hizo en la década de 1950 después de que la Unión Soviética envió al espacio el satélite Sputnik, y Washington -en un estado de shock- inició su programa espacial que resultó en el primer vuelo tripulado a la Luna. “El mundo ha cambiado”, dijo Obama. “China e India se dieron cuenta de que haciendo algunos cambios internos, podían competir en este nuevo mundo. Y entonces empezaron a educar a sus niños desde más temprano, y durante más tiempo, con gran énfasis en las matemáticas y las ciencias. Están invirtiendo en investigación y en nuevas tecnologías”. El Presidente citó el hecho de que China acaba de fabricar la computadora más grande del mundo. Para poder prosperar en este nuevo escenario mundial, “debemos superar al resto del mundo en innovación, educación e infraestructura”, señaló. Ese fue el mensaje central del discurso más importante del año de Obama. Su propósito fue audaz: aumentar drásticamente las inversiones estadounidenses en educación, tecnología e investigación científica a pesar de grandes recortes del gasto público para reducir el déficit presupuestario. Obama le pidió al Congreso fondos para contratar 100 mil nuevos maestros de matemática, ciencia y tecnología, así como enormes inversiones en investigación biomédica, informática y de tecnologías de energía renovable. El discurso de Obama debería haber sido de lectura obligatoria en muchos palacios presidenciales latinoamericanos. Pese a un ciclo de ocho años de firme crecimiento económico en América Latina -en la mayoría de los casos gracias a los altos precios mundiales de las materias primas- los países de la región se están quedando atrás mucho más rápido que Estados Unidos en educación, ciencia e innovación. Veamos: - En los recientes test PISA de la Organización para la Cooperación Económica y el Desarrollo (OCDE), que evalúan la competencia de los estudiantes de 15 años en matemáticas, ciencia y comprensión de lectura, la ciudad china de Shanghái, Singapur y Fin-


UNIDAD I: FUNDAMENTOS DE LA INGENIERÍA DE SISTEMAS E INFORMÁTICA

Desarrollo de contenidos

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

landia ocuparon los primeros puestos. Estados Unidos quedó en el puesto 17; España, en el 33; Chile, en el 44; Uruguay, en el 47; México, en el 48; Colombia, en el 52; Brasil, en el 53; Argentina, en el 58, y Perú, en el 63 de los 65 países evaluados. - Sólo 2 por ciento de todas las inversiones mundiales en investigación y desarrollo se producen en Latinoamérica. En comparación, 36 por ciento se da en Estados Unidos y Canadá; 32 por ciento, en Europa, y 27 por ciento, en Asia, según datos de la Red Iberoamericana de Indicadores de Ciencia y Tecnología (RYCIT).

- Los 32 países latinoamericanos juntos -incluyendo Brasil y México- poseen menos de 3 por ciento de las patentes registradas anualmente por un solo país asiático, Corea del Sur, según la Oficina de Marcas y Patentes de Estados Unidos. En 2009, Corea del Sur registró 8 mil 800 patentes, mientras Brasil registró tan solo 103, México 60 y Argentina 45. - No hay una sola universidad latinoamericana entre las 100 mejores del mundo, según los rankings del Suplemento de Educación Universitaria del Times de Londres y de la Universidad Jiaotong de Shanghái, China, pese al hecho de que Brasil y México se cuentan entre las 12 economías más grandes del mundo. - Muchos países latinoamericanos tienen las vacaciones escolares más largas del planeta. Mientras el año escolar tiene 243 días en Japón y 220 días en Corea del Sur, tiene 200 días en México y 190 en Argentina, pero -si se incluyen las huelgas docentes y los feriados imprevistos- en muchos Estados de la región sólo hay unos 160 días de clases. Mi opinión: si Obama estaba buscando un tema central para su política hacia Latinoamérica, y un plan concreto para llevar a la próxima Cumbre de las Américas que se celebrará en Cartagena, Colombia, en abril de 2012, su discurso del 25 de enero debería ser su eje. Washington podría lanzar programas de cooperación educativa y tecnológica en toda la región. Para crecer y reducir la pobreza con mucha mayor rapidez, Latinoamérica necesita con urgencia un “momento Sputnik”. La educación, la ciencia, la tecnología y la innovación no deberían ser tan solo la nueva causa de Estados Unidos, sino la de todo el hemisferio.

2. CYBORG EVOLUTION Mestres, F. (2011). Evolución: De la especie humana al cyborg/Evolution: From human species to cyborg. Sociología y Tecno ciencia, 1(1), 37-46 Resumen: Gracias a la evolución biológica y cultural el ser humano ha sido capaz de adaptarse al ambiente. Una opción para mejorar las prestaciones humanas podría ser la obtención de un cyborg o ser humano biónico en el cual la parte inorgánica fuese un chip computacional conectado directamente al cerebro. Esta y otras posibilidades se debaten en el presente artículo. Palabras clave: Evolución biológica, selección natural, evolución cultural, cyborg, biónico, inteligencia. Abstract: The human being has been able to adapt to the environment due to the biological and cultural evolution. One option to improve the human characteristics could be to obtain a cyborg or a bionic human being with a computational chip directly connected to the brain. This and other possibilities are discussed in the present paper. Key-words: Biological evolution, natural selection, cultural evolution, cyborg, bionic, intelligence. Introducción El concepto de cambio a lo largo del tiempo es lo que entendemos por evolución. Existen muchos tipos de evolución y a todos nosotros nos resultan familiares, como la evolución económica, la sociológica, la cultural, etc. En este trabajo quiero centrarme en la biológica y también en la cultural. La evolución biológica no es más que los cambios de los organismos en el tiempo. En este ámbito del conocimiento humano, la teoría aceptada por los científicos e investigadores es la denominada teoría sintética de la evolución, que es una mejora de la propuesta por Darwin a mediados del siglo XIX (Darwin, 1859). En su libro, dicho autor ya especulaba que todas las formas de vida actuales y extinguidas derivaban de una primera forma de vida ancestral, lo que hoy en

Bibliografía

25


s

s

o

26

Actividades

Autoevaluación

Glosario

Bibliografía

Anotaciones

UNIDAD I: FUNDAMENTOS DE LA INGENIERÍA DE SISTEMAS E INFORMÁTICA

día denominamos LUCA (Last Universal Common Ancestor). Mediante la selección natural (y otras fuerzas evolutivas) se ha llegado, por evolución, a la especie humana. Nuestra especie tiene una gran serie de similitudes con otros organismos vivos y unas diferencias concretas. Desde un punto de vista genético somos muy parecidos a gorilas y chimpancés, pero a su vez tenemos conciencia que somos muy diferentes a ellos. En el ser humano la evolución biológica ha llevado a un importante aumento de la inteligencia. Dicha inteligencia es clave para entender la adaptación de nuestra especie a su entorno, tanto físico como biológico. Paralelamente ha conducido al desarrollo de una importante evolución cultural. Mientras que la evolución biológica está basada en la selección natural y el paso de los genes de una generación a la siguiente, la evolución cultural se puede transmitir de forma horizontal a individuos de una misma generación y también a los de sucesivas generaciones. La evolución cultural permite una transferencia de los conocimientos extremadamente más rápida (Cano et al., 2010). En este punto quiero recordar que la evolución cultural no es exclusiva del hombre, algunos animales pueden aprender algún proceso útil y los demás individuos de su especie lo repiten por imitación. Por otra parte, debemos tener presente que en el hombre la evolución cultural es preponderante, pero sobre nuestra especie sigue actuando la selección natural. Modificaciones de nuestro cuerpo La inteligencia es un carácter seleccionado en nuestra especie (Homo sapiens) para que seamos adaptativos. A lo largo del tiempo, el ser humano ha confeccionado diferentes herramientas, domesticado animales, inventado la agricultura, etc. y ha llegado hasta donde está hoy. Uno de los procesos que ancestralmente hemos hecho y continuamos haciendo es modificar nuestro cuerpo, o bien para mejorar nuestra adaptación al medio ambiente o para superar una discapacidad. Respecto al primer caso podemos recordar que el hombre primitivo inventó el vestido y el calzado. En el presente contexto, no me refiero a su valor social (que es muy importante), sino adaptativo, como medios protectores de su cuerpo que le permitieron colonizar nuevos hábitats y/o sobrevivir a cambios climáticos. Es verdad que la vestimenta no forma parte de nuestro cuerpo, pero está fuertemente asociada a él. Otro caso particular es la aparición en culturas humanas antiguas de piezas metálicas para proteger el cuerpo en los combates. Su apogeo tuvo lugar en las sociedades de la Edad Media, donde los caballeros usaban las armaduras como mecanismo defensivo. Las protecciones de este tipo eran adaptativas al proteger a sus portadores. La evolución cultural humana produjo que estas armaduras metálicas dejasen de ser adaptativas cuando progresivamente se fueron introduciendo las armas de fuego. Para la segunda cuestión (superar una discapacidad) tenemos unos buenos ejemplos: las patas de palo o los garfios, que nos son familiares pues aparecen en libros y producciones audiovisuales que tratan el tema de los piratas. Son unas formas bastante primitivas y rudimentarias de prótesis. Pero la evolución cultural ha permitido toda una serie de avances tecnológicos. Las sociedades occidentales tuvieron un desarrollo diferencial debido a la revolución industrial, que se vio incrementado de forma exponencial a partir de mediados del siglo XX con el auge de las tecnologías biológicas y de la informática. Con ellas ha sido posible mejorar la vida de los seres humanos y también sus discapacidades. En lo referente a este segundo aspecto, la tecno ciencia utiliza fundamentalmente dos enfoques: la substitución de un tejido, órgano o miembro por otro equivalente (orgánico) o bien por una prótesis mecánica (o cibernética). Las transfusiones de sangre fueron un proceso pionero de trasplante, sin embargo no fue hasta los años 60 del siglo pasado cuando se iniciaron los trasplantes de órganos vitales del cuerpo humano (corazón, riñón, hígado, etc.). Un problema difícil de resolver era el del rechazo del órgano trasplantado por parte del cuerpo receptor. Para superar esta dificultad en los últimos años se ha potenciado la tecnología de las células madre, con las que se espera llevar a cabo terapia genética o incluso elaborar órganos a la carta (Bueno, 2005). Sin embargo el uso de las células madre implica toda una serie de consideraciones de tipo ético y moral. La sociedad se encuentra dividida sobre su utilización y además queda un largo camino científico a recorrer hasta que lleguemos a sintetizar órganos nuevos de una persona en concreto. El otro enfoque es el clásico de las prótesis, que han pasado de ser toscos substitutos de partes del cuerpo a verdaderas obras de ingeniaría cibernética con lo que las prestaciones son semejantes a las humanas. Incluso una prótesis no refinada puede mejorar el rendimiento de una persona. Mi padre, que trabajaba de administrativo en una mutua de accidentes laborales, me contaba hace bastantes años que un soldador perdió su mano en un accidente. La prótesis metálica que se implantó para substituirle la mano le permitía realizar soldaduras que una persona


UNIDAD I: FUNDAMENTOS DE LA INGENIERÍA DE SISTEMAS E INFORMÁTICA

Desarrollo de contenidos

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

normal no podía realizar y por tanto era muy valorado desde el punto de vista laboral. En la actualidad existen prótesis cibernéticas muy perfeccionadas de la mano y el brazo, con un aspecto parecido al orgánico y con una movilidad extraordinaria.

Todos los ejemplos de prótesis artificiales que la tecnología de las diferentes épocas de la historia humana ha ido desarrollando nos llevan poco a poco a perfilar el concepto de cyborg (Coca and Valero, 2010). En concreto este término fue acuñado por Manfred Clynes y Nathan Kline en 1960 para referirse a un ser humano con mejoras que le permitiría adaptarse a un entorno extraterrestre (Clynes and Kline, 1960). Sin embargo, el uso de la palabra cyborg en diferentes contextos ha ido produciendo diferentes significados. En el presente trabajo usaré como referencia la definición propuesta por Andrés Moya (2007) y que es la usada normalmente en nuestro entorno cultural: un cyborg es un ser “con partes orgánicas que se corresponden con órganos fundamentales del cuerpo humano, como por ejemplo el cerebro, y por materiales inorgánicos, producto de nanotecnologías y robótica avanzadas”. Un término parecido y que muchas veces se utiliza como sinónimo es el de hombre (o mujer) biónico. Estos son individuos en los que se ha substituido un órgano o un miembro por versiones mecánicas (o cibernéticas). Es decir, una parte concreta de cuerpo enferma o mutilada por un accidente es substituida por una prótesis que, como he mencionado con anterioridad, puede ser bastante sofisticada. ¿Qué diferencia hay entre un cyborg y un ser humano biónico? Esencialmente muy poca, pues ambos combinan elementos orgánicos con elementos mecánicos o cibernéticos. En general nuestra cultura social tiende a presentar al cyborg como un ser compuesto por gran parte inorgánica y tan sólo algunos órganos esenciales del ser humano (generalmente el cerebro). Tan solo hace falta efectuar una búsqueda de imágenes en Internet con la palabra cyborg. La gran mayoría de los individuos tienen aspecto de robots grandes con algún elemento del cuerpo humano. Por el contrario, el ser humano biónico es un individuo principalmente orgánico con una reducida proporción de componente inorgánico (mecánico y/o cibernético). En esencia, el concepto es casi similar. De hecho todos nosotros (o casi todos) somos biónicos: o tenemos una pieza dental sintética, o cristalinos artificiales (operación de cataratas) o una placa que facilita la unión de un hueso fracturado, o una prótesis de rodilla o de cadera, etc. Seguramente nuestra sociedad no nos definiría como cyborgs, pero si como biónicos.

El cyborg y su posible evolución El cyborg ha sido utilizado en diferentes metáforas, como por ejemplo la representación del “superhombre” propuesta por Nietzsche (Moya, 2007) o la superación de la bisexualidad humana (Haraway, 1991). Pero, ¿cómo esperamos que sean los cyborgs en el futuro, es decir, de qué forma evolucionarán? La primera vez que vi un cyborg fue en mi adolescencia leyendo un cómic de la compañía Marvel. Era un ser robótico con una pequeña fracción humana, es decir, un cerebro dentro de un cuerpo metálico con una fortaleza física extraordinaria. Como ya he citado con anterioridad, ésta es la visión que persiste en nuestra sociedad. ¿Realmente el cyborg evolucionará en este sentido, un cerebro con un cuerpo extraordinariamente fuerte? La selección natural favorece siempre a los organismos que se reproducen más, ya sea por una producción de descendientes más elevada o bien por una mayor supervivencia (que permitirá un periodo más largo de tiempo para dejar descendientes). La idea, que está muy arraigada en nuestra sociedad, que la selección natural favorece al más fuerte es errónea y su extrapolación ha llevado a justificar conductas socialmente inaceptables (Rose, 1976, Mestres, 2007 y Mestres, 2010). Existen ejemplos clásicos para demostrar que la selección natural no favorece forzosamente al más fuerte. Imaginemos un tigre que sea un depredador formidable y muy bien adaptado para la caza pero que sea estéril, no será favorecido por la selección natural puesto que sus genes (entre ellos los que confieren su poder depredador) no pasarán a la descendencia. Por el contrario se conocen muchas situaciones donde la selección natural favorece a aquellas especies capaces de colaborar, como por ejemplo los líquenes (Mestres, 2010). Por lo tanto, no parece que la mera fuerza física sea el elemento importante en el valor adaptativo de un cyborg. En diversas producciones de ciencia ficción hemos visto a seres humanos subiéndose a armaduras cibernéticas articuladas para realizar labores de carga (Aliens, el regreso) o de combate (Avatar). Además, un cyborg soldado no tendría mucho sentido, pues la opinión pública de nuestra sociedad quiere guerras con un número limitado de bajas y ello ha conllevado al desarrollo tecnológico de carros de combate y aviones no tripulados y dirigidos a distancia estando en algunos casos su operador a miles de kilómetros de la zona de combate. Sin embargo, vamos a suponer que creemos importante generar cyborgs. La primera pregunta es, ¿qué partes orgánicas seleccionaríamos para incluir en el armazón metálico? Los sistemas biológicos aún siguen siendo más eficientes que los mecánicos (a pesar

Bibliografía

27


s

s

o

28

Actividades

Autoevaluación

Glosario

Bibliografía

Anotaciones

UNIDAD I: FUNDAMENTOS DE LA INGENIERÍA DE SISTEMAS E INFORMÁTICA

de contar con sofisticaciones cibernéticas). Por ejemplo es más eficiente y cómodo un riñón que un aparato para diálisis. Si nuestra tecno ciencia fuese capaz de suplantar la mayoría de partes orgánicas, posiblemente la única que perduraría en el cyborg sería el cerebro, el órgano donde reside la inteligencia humana. Para ello se deberían salvar una serie de dificultades técnicas importantes, como por ejemplo, como alimentarlo o como defenderlo desde el punto de vista inmunológico. Se podría especular que los cyborgs podrían evolucionar hasta ser una especie independiente que incluso podría prescindir de los seres humanos. ¿Cómo sería posible su reproducción? Para ello necesitarían un linaje celular humano capaz de desarrollar el cerebro y construirse ellos mismos el armazón metálico y de soporte vital. Los cerebros producidos in vitro serían seguramente clónicos genéticos. Este sería, de alguna manera, el cyborg idealizado por la Dra. Haraway, que no necesitaría el sexo para reproducirse. Pero estas criaturas tienen un peligro biológico enorme: si un agente patógeno (por ejemplo bacteriano o vírico) infectase las líneas celulares que permiten producir los cerebros clónicos, éstas no tendrían suficiente variabilidad genética para que la selección natural pudiese hacer frente a la infección. Recordemos dos detalles de la historia de la humanidad. Las epidemias de peste que asolaron la Europa occidental en la Edad Media causaron una gran mortandad (Hays, 2005), pero las poblaciones no se extinguieron pues los individuos resistentes (con una constitución genética que les confería dicha resistencia) fueron capaces de sobrevivir y reproducirse (transmitiendo así los genes responsables de la resistencia a sus descendientes). El segundo caso es el de la hambruna producida en Irlanda a mediados del siglo XIX, cuando la plaga del oomicete Phytophthora infestans devastó las plantaciones de patatas del país. Todas las patatas irlandesas derivaban de pocos ejemplares y por tanto la variabilidad genética era escasa. Por ello no se pudieron seleccionar individuos resistentes y las plantaciones fueron destruidas (Bueno, 2008). Por tanto, cualquier accidente de tipo infectivo en las líneas celulares muy posiblemente causaría la extinción de los cyborgs. Sin embargo existen otras posibilidades especulativas sobre como nuestra tecno ciencia podría construir un cyborg. Ya he comentado que nuestra sociedad siempre presenta a dichos seres como organismos con gran parte de componente inorgánico (mecánico o cibernético) y una reducida fracción orgánica. Quizás estamos ante una visión sesgada, producto de las producciones de ciencia ficción. El camino para mejorar las prestaciones humanas no pasa por adquirir más fuerza, sino potenciando un carácter diferencial de nuestra especie (Homo sapiens), la inteligencia. Dicho carácter es difícil de definir con exactitud y de cuantificar, puesto que tiene componentes genéticos y también ambientales (entorno familiar y cultural, aprendizaje, etc.). Se podría crear un cyborg, o mejor un ser humano biónico, con mejores prestaciones en lo referente a la inteligencia. Nuestra tecno ciencia nos ha proporcionado un gran aliado, el ordenador. Este nos facilita la capacidad de cálculo, el almacenamiento y búsqueda rápida de la información, etc. Recuerdo un episodio de la serie de ciencia ficción Star Trek en que un oficial de la nave estelar USS Enterprise trabaja constantemente con el ordenador. Este tripulante se ve limitado en su labor por su comunicación (interface) con la computadora pues es muy lenta para su gusto. Al final logra una conexión directa entre su cerebro y el ordenador, trabajando a una velocidad extremadamente veloz. Quizás este podría ser el cyborg de nuestro futuro: un ser humano con un implante computacional (chip) conectado directamente al sistema nervioso central. Ello podría potenciar en gran medida la característica humana de la inteligencia. Tal y como había definido previamente a este tipo de organismo, quizás sería más correcto habla de ser humano biónico que de cyborg, pues el componente orgánico sería claramente preponderante. Este implante computacional se llevaría a cabo después de nacer, con lo que seguiríamos hablando de especie humana, pues el modo de reproducción biológica sería la propia de nuestra especie (Homo sapiens). Nuestra tecnología ha empezado a obtener algún resultado en este ámbito (Hochberg et al., 2006). Este tipo de organismo abriría un gran debate ético - moral en nuestra sociedad: ¿Quién podría tener derecho a recibir el chip computacional? ¿Se crearía una casta de seres súper inteligentes y otra de siervos? ¿Estaríamos ante una nueva versión de “Un mundo feliz” de Aldous Huxley (1932)? ¿Qué papel desarrollarían estas personas en nuestra sociedad? Para finalizar algunas consideraciones especulativas sobre nuestro futuro. Durante los años 60, 70 y buena parte de los 80 del siglo pasado se vivió con el temor del holocausto nuclear, que podría acabar con nuestra especie. Actualmente se teme un atentado terrorista de tipo nuclear o biológico que podría causar daños irreparables en nuestra sociedad o en nuestro planeta. Los productos de ciencia ficción nos presentan muchas veces las luchas apocalípticas entre humanos y máquinas (ordenadores, cyborgs, androi-


UNIDAD I: FUNDAMENTOS DE LA INGENIERÍA DE SISTEMAS E INFORMÁTICA

Desarrollo de contenidos

Lecturas seleccionadas

des, etc.). Sin embargo, tenemos una gran amenaza real y que muchas veces no consideramos a pesar de que la conocemos sobradamente: la problemática del deterioro medioambiental (Vives-Rego, 2010). El cambio climático, la escasez de agua, los productos tóxicos, la crisis de las energías fósiles, son ejemplos de problemas muy graves que Recordatorio hemos de intentar solucionar si queremos que la Tierra sea un plantea habitable para nuestras futuras generaciones. Si no somos capaces de lograrlo tendremos que volver a la idea original de Manfred Clynes y Nathan Kline de construir cyborgs que nos permitan colonizar nuevos planetas pero sin cometer los mismos errores que en la Tierra, es decir, siendo respetuosos con sus ambientes.

BIBLIOGRAFÍA Bueno, David (2005): Òrgans a la carta. Omnis cellula - Publicacions i edicions de la Universitat de Barcelona. Barcelona. Bueno, David (2008): Convivint amb transgènics. Omnis cellula - Publicacions i edicions de la Universitat de Barcelona. Barcelona. Cano, Marcel; Mestres, Francesc y Vives-Rego, Josep (2010): “La Weltanschauung (Cosmovisión) en el comportamiento medioambiental del siglo XXI: Cambios y consecuencias”, Ludus vitalis, 18, 275-278. Clynes, Manfred E. and Kline, Nathan S. (1960): “Cyborg and space”, Astronautics, September, 26-27 and 74-75. Coca, Juan R. and Valero, Jesús A. (2010): “(BIO)Technological images about human self-construction on Spain context: a preliminary study”, Studies in Sociology of Science, 1, 58-66. Darwin, Charles R. (1859): On the origin of species. John Murray, London. Haraway, Donna J. (1991): “A Cyborg Manifesto: Science, Technology, and SocialistFeminism in the Late Twentieth Century”. En Haraway, Donna J. Simians, Cyborgs and Women: The Reinvention of Nature, Routledge, N. Y., 149-181. Hays, Jo N. (2005): Epidemics and pandemics: their impacts on human history. ABCCLIO Inc., Santa Barbara, CA. Hochberg, Leigh R.; Serruya, Mijail D.; Friehs, Gerhard M.; Mukand, Jon A.; Saleh, Maryam; Caplan, Abraham H.; Branner, Almut; Chen, David; Penn, Richard D. and Donoghue, John P. (2006): “Neuronal ensemble control of prosthetic devices by a human with tetraplegia”, Nature, 442, 164-171. Huxley, Aldous (1932): Brave New World. Chatto & Windus/ Doubleday, Doran & Co. Inc. London/Garden City, N.Y. Mestres, Francesc (2007): “Selección natural”, Historia y Vida, 39, 26. Mestres, Francesc (2010): “Consideracións respecto de dous conceptos fundamentais en Bioloxía evolutiva: a selección natural e a noción de tempo”, Roteiros, 4, 123- 134. Moya, Andrés (2007): “Hombres y cyborgs”. Ludus vitalis, 15, 227-230. Rose, Steven (ed.) (1976): The history and social relations of genetics. The Open University. Walton Hall. Vives-Rego, José (2010): Los dilemas medioambientales del siglo XXI ante la Ecoética. BUBOK Pub. S.L.

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Glosario

Anotaciones

Bibliografía

29


s

s

o

30

UNIDAD I: FUNDAMENTOS DE LA INGENIERÍA DE SISTEMAS E INFORMÁTICA

Actividades

Autoevaluación

Diagrama

Objetivos

Glosario

Bibliografía

Desarrollo de contenidos

Actividades

Autoevaluación

Lecturas seleccionadas

Glosario

Bibliografía

Anotaciones

Recordatorio

Anotaciones

Inicio

BIBLIOGRAFIA DE LA UNIDAD I:

Auyang, S. Y. (2004). Engineering an Endless Frontier. Harvard University Press. Diagrama Objetivos Inicio Bertalanffy, L. v. (s.f.). Teoría General de los Sistemas. Fondo de Cultura Económica de México. Bunge, M. (1960). La Ciencia. Su Método y su Filosofía. México: Siglo XXI Editores. Desarrollo de contenidos

Actividades

Autoevaluación

LECTURA SELECCIONADAS Lecturas seleccionadas

Glosario

Bibliografía

Oppenheimer, A. (2011, Jan 31). EL INFORME OPPENHEIMER / Latinoamérica requiere un ‘momento Sputnik’. Reforma, pp. 25. Recordatorio

Anotaciones

Mestres, F. (2011). Evolución: De la especie humana al cyborg/Evolution: From human species to cyborg. Sociologia y Tecno ciencia, 1(1), 37-46


UNIDAD II: HERRAMIENTAS DE HARDWARE

Desarrollo de contenidos

Diagrama

Desarrollo de contenidos

Diagrama Lecturas seleccionadas

Desarrollo de contenidos Recordatorio

Objetivos

Inicio

Actividades

Glosario

Recordatorio

Anotaciones

Autoevaluación

DIAGRAMA DE PRESENTACIÓN DE LA UNIDAD Objetivos Glosario

Inicio Bibliografía

Actividades

Autoevaluación

Anotaciones

Glosario

EJEMPLOS

ACTIVIDADES

Bibliografía

BIBLIOGRAFÍA Recordatorio

Lecturas seleccionadas

UNIDAD II: HERRAMIENTAS DE HARDWARE

CONTENIDO Lecturas seleccionadas

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

AUTOEVALUACIÓN

Anotaciones

CONOCIMIENTOS Tema N° 1: Tecnologías de la información y las comunicaciones. 1. Uso de las TICs 2. Los Computadores 3. Uso de las TICs en la empresa Tema N° 2: Redes de Computadores 1. Conceptos Fundamentales 4. La Pila de Red 5. Arquitectura de una Red 6. Switching y Routing Lectura seleccionada 1: Nuevas Tecnologías y Capital Humano; BID Lectura seleccionada 2: El Pingüino que Revolucionó el Software; MIGUEL ÁNGEL, U. Autoevaluación N° 2

PROCEDIMIENTOS

ACTITUDES

1. Describe a los elementos de las TICs y los computadores.

1. Está familiarizado con los materiales y organiza su tiempo de mejor manera.

2. Comprende la relación entre la empresa y la sociedad explorando la realidad de su entorno.

2. Investiga constantemente sobre los temas que no entiende bien o que desea profundizar,

Actividad N° 1

3. Revisa los contenidos anteriores constantemente para consolidar sus conocimientos.

Partes del computador. Actividad N° 2 Comercio de computadores, realidad actual. 3. Maneja los fundamentos de las redes de computadores y la importancia de los mismos para compartir los datos e información. Actividad N° 3 Ensayo sobre la historia de las redes de computadores. Actividad N° 4 Organizador resumen Tarea Académica Nº 1

Bibliografía

31


s

s

o

32

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD II: HERRAMIENTAS DE HARDWARE

TEMA 1 TECNOLOGÍAS DE LA INFORMACIÓN Y LAS COMUNICACIONES (TICs) Anotaciones

Las TICs abarcan gran parte de las tecnologías utilizadas para compartir la información, ello hace que el conocimiento y entendimiento de las mismas sea de gran prioridad en el mundo globalizado, especialmente para el futuro ingeniero.

1 USO DE LAS TICS Las Tecnologías de la Información y las Comunicaciones son utilizadas ampliamente en la sociedad y en el sector empresarial aportando demostrando ventajas tales como: • Mejorar la calidad del servicio a los clientes. • Mejores plazos de entrega, mayor agilidad en la distribución/rapidez. • Ahorro de costes/gastos comerciales de gestión/papeleo. • Mayor agilidad en la gestión. • Evitar desplazamientos. • Posibilidad de captar nuevos clientes, ampliar el alcance del mercado objetivo. • Apertura de nuevos mercados, estar presente en mercados distantes, de otros países o incluso de otros continentes. • Mayores posibilidades de innovación, de renovación de la gama de productos. 2 LOS COMPUTADORES Muchos dispositivos actualmente pueden ser considerados computadores, debido a que su arquitectura refleja la de un computador. 3.3. Arquitectura de un Computador Todo computador es un dispositivo electrónico que realiza las siguientes tareas: i. Recepción de entradas de datos. ii. Produce una salida de presentación de resultados. iii. Procesamiento de los datos. iv. Almacenamiento de los datos que se procesan Para ello requiere tener 4 partes importantes encargadas de las tareas: i. Dispositivos de input/output ii. Unidad central de procesamiento. iii. Memoria y dispositivos de almacenamiento. iv. Buses o Canales de comunicación


UNIDAD II: HERRAMIENTAS DE HARDWARE

Desarrollo de contenidos

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

Si visualizamos estos componentes sobre la mainboard de un computador personal podremos observar la siguiente distribución:

Diagrama

Objetivos

Desarrollo de contenidos

Actividades

Lecturas seleccionadas

Recordatorio

Inicio

ACTIVIDAD N° 1: Autoevaluación

Esta actividad puede consultarla en su aula virtual. 3.4. Generaciones de Computadores

Glosario

Bibliografía

Primera: Con tubos de vacío, tubos de vidrio del tamaño de una bombilla que albergaban circuitos eléctricos. Estas máquinas eran muy grandes caras y de difícil operación Anotaciones Segunda: Con transistores. Máquinas más pequeñas, confiables y económicas. Tercera: Con la tecnología que permitió empaquetar cientos de transistores en un circuito integrado de un chip de silicio. Cuarta: Con el microprocesador, que es un computador completo empaquetado en un solo chip de silicio. Quinta: Comercialización y crecimiento exponencial del mercado, hasta la actualidad es la generación del continuo desarrollo en la miniaturización de los chips de silicio. Los eventos más resaltantes se señalan en la siguiente línea de tiempo:

Bibliografía

33


s

s

o

34

Actividades

Autoevaluación

Glosario

Bibliografía

Anotaciones

UNIDAD II: HERRAMIENTAS DE HARDWARE


UNIDAD II: HERRAMIENTAS DE HARDWARE

Desarrollo de contenidos

3.5. El Procesador

Lecturas seleccionadas

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Glosario

Los procesadores se describen en términos de su tamaño de palabra, su velocidad y la capacidad de su RAM asociada. Recordatorio

Tamaño de la palabra: Es el número de bits que se maneja como una unidad en un sistema de computación en particular. Normalmente, el tamaño de palabra de las microcomputadoras modernas es de 32 bits y 64 bits; es decir, el bus del sistema puede transmitir 32 o 64 bits a la vez entre el procesador, la RAM y los periféricos. Velocidad del procesador: Se mide en diferentes unidades según el tipo de computador: • GHz: para microcomputadoras. Un oscilador de cristal controla la ejecución de instrucciones dentro del procesador. La velocidad del procesador de un núcleo se mide por su frecuencia de oscilación o por el número de ciclos de reloj por segundo. El tiempo transcurrido para un ciclo de reloj es 1/frecuencia. • FLOPS (floating point operations per secón, operaciones de punto flotante por segundo). Las operaciones de punto flotante incluyen cifras muy pequeñas o muy altas. Es común hablar de GFLOPS (Gigaflops, es decir 1.000 millones de FLOPS). Capacidad de la RAM o la M Caché: Se mide en términos del número de bytes que puede almacenar. Habitualmente se mide en MB y GB. 3.6. La Memoria La función principal de la CPU es obedecer las instrucciones codificadas en los programas. Sin embargo, un núcleo sólo puede manejar una instrucción y unos cuantos datos a la vez. La computadora tiene que colocar en algún lugar el resto del programa y los datos hasta que el procesador esté listo para usarlos. Para esto es la RAM. RAM: Random Acces Memory, Es la memoria de almacenamiento primario. Almacena temporalmente instrucciones de programa y datos. El computador divide un chip de RAM en varias localidades de igual tamaño. Estas localidades de memoria tienen una dirección única, de manera que el computador pueda distinguirlas cuando se le ordena que guarde o recupere información. Puede almacenarse un trozo de información en cualquier localidad de la RAM tomada al azar y el computador puede recuperarlo rápidamente si se le indica hacerlo. De ahí proviene el nombre de memoria de acceso aleatorio. La información almacenada en la RAM no es más que un patrón de corriente eléctrica que fluye por circuitos microscópicos en chips de silicio. Es una memoria volátil, ya que la información que contiene no se conserva de manera permanente. Si se interrumpe la energía, dicha información se pierde. La RAM no tiene partes móviles; al no tener un movimiento mecánico, se puede tener acceso a los datos de la RAM a velocidades electrónicas o aproximadamente a la velocidad de la luz. La RAM ofrece al procesador un almacenamiento temporal para programas y datos. Todos los programas y datos se deben transferir a la RAM desde un dispositivo de entrada o del almacenamiento secundario antes de que se puedan ejecutar los programas o procesar los datos. El espacio de la RAM es siempre escaso. Después de que se haya ejecutado un programa, el espacio de almacenamiento que ocupaba se vuelve a distribuir a otro programa que espera su ejecución. ROM: Read Only Memory, es una memoria no volátil, porque el computador puede leer información de ella pero nunca escribir información nueva. Todas las computadoras cuentan con dispositivos de ROM que contienen las instrucciones de arranque y otra información crítica. La información en la ROM se graba permanentemente cuando nace el computador, pero no hay manera de reemplazarla a menos que se reemplace el chip de ROM. Existen variaciones de la ROM, es la ROM en la que usuario puede cargas pro-

Anotaciones

Bibliografía

35


s

s

o

36

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD II: HERRAMIENTAS DE HARDWARE

gramas y datos de solo lectura que una vez cargados rara vez o nunca se cambian. La memoria flash es un tipo de que el usuario puede alterar con facilidad. Anotaciones

Memoria caché: Se usa para facilitar una transferencia aún más rápida de instrucciones y datos al procesador; es decir que se usa para mejorar el caudal de proceso (velocidad con que un sistema de computación puede realizar el trabajo). Al igual que la RAM, el caché es un área de almacenamiento de alta velocidad para las instrucciones de los programas y los datos, pero es varias veces más rápida que la RAM y mucho más cara. Con sólo una fracción de la capacidad de la RAM, la memoria caché sólo contiene las instrucciones y los datos que es probable que el procesador requiera enseguida. 3.7. Input/Ouput y Buses Buses: Son el conjunto de cables pistas impresas de material conductivo a través de los cuales viajan los datos entre los componentes del sistema. Los buses más anchos pueden transmitir información con más rapidez que los canales angostos. Esta velocidad se mide en bits. Par los dispositivos de Input/Output, tenemos: Ranuras de expansión o Slots: Se conectan al bus eléctrico común. Algunos canales están conectados a ellas en la caja del computador. Los usuarios pueden personalizar sus máquinas insertando tarjetas de circuitos (o tarjetas) de propósito especial en estas ranuras. Los sockets de forma cuadrada son mayormente utilizados para el procesador en la placa. Puertos: Son puntos de conexión en la parte exterior del chasis o “case” de la computadora a los que se conectan algunos canales. El puerto permite una conexión directa con el bus eléctrico común del computador personal. Los puertos pueden ser: Puertos series: Permiten la transmisión en serie de datos, un bit a la vez. Este tipo de puertos permiten una interfaz de baja velocidad. Puertos paralelos: Permiten la transmisión paralela de datos, es decir que se transmiten varios bits simultáneamente. Las ranuras de expansión y los puertos simplifican la adición de dispositivos externos o periféricos. 3.8. El Software de un Computador El software permite comunicar al computador los problemas y hace posible que nos comunique las soluciones. Los programas son el software del computador. Es una estructura de instrucciones (o programas) que la máquina es capaz de leer. Son programas que dirigen las actividades del sistema de computación El Software de Aplicación: Sirve como herramienta para elevar la productividad de los usuarios en la resolución de problemas. Está diseñado y escrito para realizar tareas específicas personales, empresariales o científicas. El software de este tipo procesa datos y genera información. Ofrece la estructura para un gran número de aplicaciones empresariales, científicas y personales. La mayoría del software de este tipo se vende como paquete, es decir, con software y documentación orientada al usuario. La creación de la aplicación depende del usuario, del uso que le dé. El Software del Sistema: Coordina las operaciones de hardware y lleva a cabo las tareas ocultas que el usuario rara vez observa. Controla o respalda a los otros tipos de software. Dentro de este tipo de software se encuentran: • El sistema operativo: Es el núcleo de cualquier sistema de computación; supervisa y controla todas las actividades de Input/Output y procesamiento de un sistema de computación. Todo el hardware y el software se controla por medio del sistema operativo.


UNIDAD II: HERRAMIENTAS DE HARDWARE

Desarrollo de contenidos

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

• La interfaz de usuario: La interfaz GUI, Grafical User Interface, compuesta de ventanas gráficas. O la interfaz CLI, Command Line Interface, en base de texto y controlado por comandos explícitos. 4 USO DE LAS TICS EN LAS EMPRESAS

Durante los últimos años, producto de la globalización de los mercados se ha impulsado a las empresas a incorporar Tecnologías de la Información y Comunicaciones (TICs) dentro de su esquema de negocio, con el fin de incrementar su competitividad y productividad y así lograr un mejor posicionamiento a nivel interno y externo; como consecuencia de esta situación, las TICs se proyectan como una herramienta fundamental para el desarrollo de los países, gracias a la incorporación y masificación de estas nuevas tecnologías que permiten estimular el desarrollo económico, tecnológico y social de las empresas y en consecuencia de las naciones. Es importante por ello conocer y difundir las características básicas y utilidad que tienen en el mundo, las TICs. 4.1. El Panorama El desarrollo de las Tecnologías de la Información y las Comunicaciones, su incremento en el uso por parte de las empresas, administraciones públicas y hogares y, más notablemente, el fuerte crecimiento de Internet, tienen un importante impacto económico y social. El primer aspecto a analizar será la disponibilidad de infraestructura en TIC a través de la incorporación del uso de la computadora en la empresa como elemento básico para la implementación posterior de otras tecnologías (Internet, intranet, extranet) que constituyen herramientas poderosas para la administración de las empresas. La disponibilidad de infraestructura TIC varía considerablemente según la actividad económica que desarrolla la empresa, ya que las características particulares de cada una de ellas marcan en mayor o menor medida los requerimientos de comunicación, tratamiento de la información y usos de las herramientas TIC para la mejor gestión de la empresa. Es así, que se puede apreciar comportamientos y variaciones interesantes dependientes del tipo de actividad de la empresa. 4.2. El Uso del Internet y Otras Herramientas de Red El Internet es una herramienta básica para la comunicación con clientes y proveedores, es por ello y a pesar que en nuestro país todavía no se ha implantado como una herramienta de uso generalizado en todas las empresas, sin duda, en el futuro esta herramienta será primordial. Si se analizan las tecnologías de acceso a Internet, observamos que la elección de la banda ancha como vía de acceso a Internet es generalizada en todas las actividades económicas. Muchas empresas, usan o han implementado Intranets propias que les permiten gestionar procesos internos de forma ágil y rápida, incluso dándole funcionalidades esenciales para la empresa. El e-mail se ha convertido no sólo en herramienta de comunicación entre usuarios sino de gestión, relación entre empresas, comercio electrónico, entre otros. El Internet por su gran capacidad ha logrado cambiar las estructuras económicas y sociales de los países y se ha convertido en un activo estratégico y principal herramienta de crecimiento, desarrollo e innovación en el mundo entero.

empresas

sociedad INTERNET economía

conocimiento

Bibliografía

37


s

s

o

38

Actividades

Autoevaluación

Glosario

Bibliografía

Anotaciones

UNIDAD II: HERRAMIENTAS DE HARDWARE Diagrama

Objetivos

Desarrollo de contenidos

Actividades

Lecturas seleccionadas

Recordatorio

Inicio

ACTIVIDAD N° 2: Autoevaluación

Esta actividad puede consultarla en su aula virtual.

TEMA 2: REDES DE COMPUTADORES Glosario

Bibliografía

Las tecnologías de las redes de computadores tienen una gran importancia en el surgimiento de las comunicaciones entre computadores. En el campo de las tecnologías de las comunicaciones cableadas e inalámbricas y han jugado un papel importante en el Anotaciones desarrollo de otras redes de comunicaciones.

Las redes de computadores incluyen un amplio rango de sistemas compuestos como telefonía digital, redes Ethernet, WiFi, streaming, ancho de banda entre otros, de allí la importancia de su comprensión inicial. 1 CONCEPTOS FUNDAMENTALES 1.1. Definición de una Red de Computadores “Una red de computadores es la conexión o conjunto de conexiones hechas entre 2 o más computadores con el propósito de intercambiar datos. Las redes de computadores están construidos por una variedad de componentes.” (Sosinsky, 2009). La diversidad de las redes de computadores se establecerá basados en esta definición, pues podremos encontrar diferentes bloques, mecanismos de conexión y diseños abarcando estos una conexión peer to peer hasta redes que interconectan ciudades. Una red de computadores es la conexión o conjunto de conexiones hechas entre 2 o más computadores con el propósito de intercambiar datos. Entre los componentes necesarios para considerar a una red, se requiere de sistemas conectados, un software de conexión, equipo de hardware, un medio de transmisión y un sistema de direccionamiento de datos hacia estos componentes. 1.2. Tipos de Transmisión Las redes usan dos tipos diferentes de transmisión de datos: point-to-point y broadcast. En las transmisiones point-to-point, las redes de comunicaciones presentan uno o más intermediarios presentes en el proceso de envío y recepción de datos. A pesar de que muchos puntos pueden estar en un extremo del modelo, los equipos intermediarios como el router son un factor determinante de la performance.


UNIDAD II: HERRAMIENTAS DE HARDWARE

Desarrollo de contenidos

Lecturas seleccionadas

La transmisión broadcast toma un mensaje de alguno de los dispositivos conectados y lo reenvía a todos los sistemas conectados a la red. Es posible seleccionar solo algunas direcciones dentro del sistema para que reciban el mensaje, pero cada nodo en la red podría examinarlo. Recordatorio 1.3. Topologías de Red Otro tipo muy común de clasificación de las redes de computadores es el de la distribución de los elementos de la red, ya sean dispositivos o las conexiones, pudiendo además ser físicas, lógicas o virtuales. Una topología de red se da en general en el nivel físico de la conexión, es decir en la forma en que estos equipos esta distribuidos. Las topologías físicas describen la organización de los elementos que implementan la red, estas topologías pueden tomar varias formas: • Bus: Los nodos se conectan a un medio lineal. • Star: Múltiples nodos se conectan a uno y de este último hacia otros más. • Ring: Los nodos se conectan a una medio cíclico. • Mesh: Los nodos se conectan directamente a otros nodos. • Tree: Los elementos de la red se encuentran irradiados hacia afuera comolas ramas de un árbol

Las topologías híbridas podrían contener elementos de más de una topología proveyéndose de mayor complejidad, así como flexibilidad, en un nuevo diseño único de topología. Pueden existir las siguientes combinaciones: • Star-Bus: Conecta dos o más redes estrella a lo largo de una red de bus. • Hierarchical Star: Cada nodo de la red de Tree forma una jerarquía. • Star-Ring: La señal es enrutada secuencialmente a las redes Star. • Hybrid mesh: Combina diferentes topologías en forma de una Mesh, lo que la hace altamente redundante. El internet funciona en parte como esta topología. Las topologías lógicas trazan el camino que los datos toman cuando viajan de un nodo a otro. Una topología lógica requiere un protocolo utilizado para la comunicación de datos, para ello comúnmente se usa la MAC (Media Access Control), un identificador numérico único del dispositivo de interface de red.

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Glosario

Anotaciones

Bibliografía

39


s

s

o

40

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD II: HERRAMIENTAS DE HARDWARE

2 CONCEPTOS FUNDAMENTALES

Anotaciones

La pila de red se refiere al modelo no arquitectónico usado para describir las transacciones de red de un equipo terminal a otro. Se basa en un conjunto de modelos que fueron desarrollados para estandarizar los dispositivos y servicios de red, permitiendo la comunicación entre diferentes niveles de red. 2.1. Organizaciones de Desarrollo de Estándares Los estándares de red fueron desarrollados entre las décadas de los 1970s y 1980s, en un momento en el que la industria del computador enfrentaba un problema que consistía en la incompatibilidad de comunicación entre equipos de diferentes vendedores.

La pila de red es el modelo de paquete que ha sido definido y estandarizado en acuerdo por varias compañías y organizaciones de estandarización. Los estándares emergieron gracias a un consenso entre las organizaciones de la industria y las organizaciones académicas. Así se dio paso al Ethernet y los protocolos de red basados en el desarrollo del paquete de red. Entre las principales organizaciones que crean estándares tenemos: American National Standars Institute (ANSI): Que crea estándares para productos y servicios. International Organization for Standarization (ISO): Crea estándares en varios campos de la industria de las telecomunicaciones, incluyendo muchos de los modelos descritos en este texto. International Communications Union-Telecommunications Group (ITU-T): Desarrollo de estándares en las radiocomunicaciones y las Telecomunicaciones. Internet Engineering Task Force (IETF): Crea muchos de los estándares presentes en el internet y es quien define el protocolo TCP/IP y los protocolos de internet. World Wide Web Consortium (W3C): Cuerpo de estándares de la world wide web y define además el HTML y los protocolos usados por los servidores Web. 2.2. El modelo de referencia OSI Es el modelo de red más importante en la actualidad. El modelo OSI (Open Systems Interconnecion) Reference Model, divide a la red en siete capas diferentes enfocándose en cada una de ellas y como se comunican entre sí.


UNIDAD II: HERRAMIENTAS DE HARDWARE

Desarrollo de contenidos

Lecturas seleccionadas

Las capas se comunican unas con otras, cada capa en forma ascendente va insertando una cabecera en el paquete de red hasta que este es enviado por la capa physical. Así al ser recibido el paquete es decodificado nuevamente e interpretado finalmente por la capa Application. Recordatorio El modelo TCP/IP no está implementado independientemente del modelo OSI, sino que surge a partir de este en una forma más sencilla y práctica. 2.3. El modelo del Protocolo TCP/IP Este modelo usa tres protocolos diferentes para el transporte y el formato de los datos. La transmisión del Control Protocol (TCP) describe cómo será la conexión entre sistemas en el Internet. Mientras que el Datagram Protocol (UDP) describe como es la data sin conexión. El último protocolo, el Internet Protocol (IP), describe cómo será el formato de los paquetes para su trasmisión. El TCP/IP Reference Model usa cuatro capas de comunicación que encuentran su equivalente en el modelo OSI pues comparten los propósitos establecidos:

Mdelo OSI

Diagrama

Objetivos

Desarrollo de contenidos

Actividades

Lecturas seleccionadas

Recordatorio

Mdelo TCP/IP

Inicio

ACTIVIDAD N° 3: Autoevaluación

Esta actividad puede consultarla en su aula virtual.

Glosario

Bibliografía

3 ARQUITECTURA Y DISEÑO DE UNA RED El diseño y la arquitectura de una red pueden resultar siendo muy sencilla o muy compleja, constituyendo una compleja telaraña que requiere de medidas y directivas especiales así como equipos especializados.

Anotaciones

3.1. La Arquitectura Point-to-Point Las topologías de red están basadas en la capa Physical del modelo OSI, mientras que las arquitecturas usan niveles mayores de protocolos. En conexiones point-topoint se consideran cuatro tipos de conexiones, que constituyen la base de casi todas las redes modernas. Una colección de nodos que comparten un medio físico común llamado segmento. Los segmentos son la unidad básica de la red, comparten direcciones lógicas y definen dominios de colisión. Para separar los segmentos se utilizan puntos de conexión como los switches y los routers. Siendo el routing una actividad que puede ser una comunicación: 1:1 o unicast, 1:n o multicast, 1:todos o broadcast, y 1:cualquiera o anycast.

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Glosario

Anotaciones

Bibliografía

41


s

s

o

42

Actividades

Autoevaluación

Glosario

Bibliografía

Anotaciones

UNIDAD II: HERRAMIENTAS DE HARDWARE

Muchos tipos de redes surgen en base a los principios y la complejidad de despliegue de las mismas. Estas incluyen peer-to-peer (P2P), client-server, multi-tier (multicapa), t cliente/servidor. Todas ellas utilizan una variedad de protocolos y recursos para poder establecer su arquitectura. 4 SWITCHING Y ROUTING 4.1. Switch Es un dispositivo electrónico de interconexión de redes de ordenadores que opera en la capa 2 del modelo OSI (Open Systems Interconnection). Un conmutador interconecta dos o más segmentos de red, funcionando de manera similar a los puentes (bridges), pasando datos de un segmento a otro, de acuerdo con la dirección MAC de destino de los datagramas en la red. 4.2. El Router El router es un dispositivo hardware o software para interconexión de redes de computadoras que opera en la capa tres del modelo OSI. Interconecta segmentos de red o redes enteras. Hace pasar paquetes de datos entre redes tomando como base la información de la capa de red 4.3. El Firewall Es un dispositivo electrónico o un software que permite establecer reglas de salida y entrada para los frames de una red, un programa o una dirección específica. 4.4. El Access Point Es un dispositivo utilizado para establecer una celda y permitir la conexión inalámbrica en un radio determinado. Cada una de las antenas en este dispositivo determinará un estándar de comunicación. Un AP está mayormente instalado hacia una red cableada de la que obtiene diversos servicios. 4.5. El Bridge Es un repetidor de la señal cableada o inalámbrica que se utiliza para poder extender el alcance de la red o establecer una conexión entre puntos lejanos. 4.6. El Router Doméstico Un router bastante sencillo que mayormente combina las capacidades de un AP con las capacidades del Router y del Switch, sin lograr un alto rendimiento pero sirviendo a propósitos comunes de redes para hogares o pequeños negocios.


o os

as

io

UNIDAD II: HERRAMIENTAS DE HARDWARE

Desarrollo de contenidos

Objetivos

Inicio

Actividades

Autoevaluación

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

AUTOEVALUACIÓN DE LA UNIDAD N° II 1) ¿Cuál es una ventaja identificable rápidamente de las TICs? a) Mejora inmediata de la calidad de servicio. Glosario

b) Ahorro de costes en personal.

Bibliografía

c) Agilidad en la gestión de datos. d) Menos capacitaciones. Anotaciones

2) ___________________ es la parte de la arquitectura del computador que tiene la tarea de comunicar los dispositivos. 3) ¿En qué generación de computadores se promueve el uso del chip de silicio? a) Primera b) Segunda c) Tercera d) Cuarta 4) _____________ era el componente utilizado antes de la aparición del transistor 5) Representa mil ciclos de reloj en un segundo a) Hz b) MB c) KHz d) MHz 6) ___________________ es la memoria más cercana al procesador. 7) ¿Cuál es el tipo de ROM utilizado en memorias similares a la MiniSd o las comúnmente llamadas memorias USB? a) SDROM b) Flash c) Flex d) RAM 8) El diseño de un conector de tipo ___________________ se utiliza para insertar tarjetas de forma directa en la mainboard. 9) Conjunto de herramientas y tecnologías que permiten la gestión de datos, las redes y las operaciones de distribución de la información a) ITT b) TI c) IC d) TIC 10) La acción llamada ______________ consiste en transmitir un mensaje a todos los nodos conectados en una red. 11) Topología usada para insertar un nodo e interconectarlo con muchos otros nodos de la red al mismo tiempo. a) Ring b) Tree c) Mesh d) Star

Bibliografía

43


s

s

o

44

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD II: HERRAMIENTAS DE HARDWARE

12) ___________________ se refiere al modelo no arquitectónico usado para describir una red de un equipo terminal a otro. Anotaciones

13) ¿Cuál es la capa del modelo OSI que debe controlar las direcciones de transmisión? a) Network b) Data-Link c) Session d) Physical 14) La capa ___________________ del modelo TCP une las capas Data-Link y Physical en una sola. 15) Cuándo un paquete se envía de un equipo a varios se le conoce como la actividad de: a) Policast b) Multicast c) Broadcast d) Anycast 16) ___________________ es el organismo que se encarga de generar estándares y modelos varios 17) Dispositivo que permite la interacción de una red cableada y una inalámbrica. a) Access Point b) Bridge c) Router d) Switch 18) ___________________ se le conoce como un dispositivo de capa 3 y que es capaz de crear un mapa de re direccionamiento de los paquetes a través de una red compleja. 19) ¿Cuál de estos es una especie de repetidor? a) Bridge b) Hub c) Switch d) Router 20) A la actividad de recibir y re direccionar un paquete de red hacia otro equipo conectado a un concentrado se le conoce como ___________________


Diagrama

Objetivos

Inicio

Desarrollo de contenidos

Actividades

Autoevaluación

UNIDAD II: HERRAMIENTAS DE HARDWARE

Desarrollo de contenidos

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

LECTURA SELECCIONADAS Lecturas seleccionadas

Glosario

Bibliografía

1. NUEVAS TECNOLOGÍAS Y CAPITAL HUMANO BID: Nuevas tecnologías necesitan del capital humano para ganar efectividad. (2011, May 19). EFE News Anotaciones Service, pp. n/a. Recordatorio Las nuevas tecnologías de la información (TIC) necesitan apoyarse en el capital humano y el contexto institucional para tener un verdadero efecto en el desarrollo de Latinoamérica, según un estudio del BID presentado hoy. Alberto Chong, economista principal del Banco Interamericano de Desarrollo (BID) y coordinador del estudio, indicó que “es importante tener en cuenta que, por sí solo, un mayor acceso a las TIC no causará el desarrollo. Los países también deben concentrarse en cómo se aplican estas herramientas.” “Con políticas adecuadas, los Gobiernos pueden sacar gran provecho de las herramientas TIC para propiciar el desarrollo. Estas tecnologías pueden mejorar la diseminación de información y ayudar a resolver fallas de mercado”, explicó. El libro “Conexiones del desarrollo: el impacto de las nuevas tecnologías de la información” analiza cómo las TIC han contribuido al éxito de 46 proyectos de desarrollo en América Latina y el Caribe en las finanzas, salud, instituciones, educación, pobreza y medio ambiente. De acuerdo con los datos recogidos por el informe, los Gobiernos deben concentrar sus esfuerzos tanto en el uso de las TIC como en el acceso a estas tecnologías. Como ejemplo, citó el analfabetismo y la falta de recursos económicos que limita el uso efectivo de estas nuevas tecnologías. Por ello, recuerda que “en muchos casos, escoger la TIC más reciente no necesariamente genera los mejores resultados de desarrollo si, por ejemplo, la población carece de las habilidades básicas para utilizar esa tecnología apropiadamente”. El análisis demostró que la utilización de las nuevas tecnologías ayudó de manera significativa al mejoramiento del 39 % de los proyectos de desarrollo estudiados. Por áreas, se lamentó el escaso aprovechamiento de estas tecnologías en el ámbito bancario, ya que podrían ampliar la inclusión financiera de las familias con menos recursos y facilitar su acceso a créditos. Por contra, es en la educación donde, según el estudio, mejor se ha constatado la efectividad de la utilización de estas herramientas tecnológicas. Finalmente, en el ámbito institucional se han visto indicios de que estas tecnologías se están “convirtiendo en instrumentos eficaces no sólo para mejorar la eficiencia del sector público sino también para permitirles a los ciudadanos pedir rendiciones de cuentas a sus Gobiernos”. Algunos de los casos estudiados por el BID son el uso de internet por parte de los campesinos pobres de Cajamarca, Perú, para mejorar sus tratamientos médicos; o en Colombia, cómo los trabajadores en las zonas cafeteras pueden recibir y efectuar pagos electrónicos.

Bibliografía

45


s

s

o

46

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD II: HERRAMIENTAS DE HARDWARE

2. EL PINGÜINO QUE REVOLUCIONÓ EL SOFTWARE MIGUEL ÁNGEL, U. (2011, Nov 01). El Pingüino que revolucionó la Informática. Actualidad Económica, 109 Anotaciones

AUNQUE A TODO EL MUNDO LE SUENA LA palabra Linux muy poca gente sabe lo que es en realidad. Puede que usted sepa que se trata de algo relacionado con el software de código abierto, pero no se sienta mal si ahí empieza y termina su conocimiento. Es lo más normal, si tenemos en cuenta que la mayor parte de los ordenadores personales del mundo utiliza para funcionar el Windows de Microsoft y el único gran rival de la compañía de Redmond para el mundo del gran consumo es el sistema operativo MacOS de Apple. Sin embargo, eso no quiere decir que Linux no esté en su vida. Cada vez que usted hace una búsqueda en Google, o enciende su teléfono inteligente con sistema operativo Android, puede dar las gracias por el resultado a un programador finés que, en 1991, escribió un código que revolucionó la industria de la computación tal y como hoy la conocemos. Desde que comenzó el proyecto, miles de programadores han trabajado en él, tanto por motivos profesionales como por hobby. Hoy se estima que la participación de Torvalds en el total del código publicado es de menos del 2%, y aun así es una de las mayores contribuciones individuales a Linux, lo que le ha granjeado numerosos reconocimientos públicos. Linus Torvalds ha sido una de las 100 personas más influyentes del mundo, según la revista Time, ha conseguido un satélite con su nombre y se ha convertido en parte de la cultura popular gracias a su pingüino mascota, Tux. Si alguien intentase volver a llegar a la versión actual del programa desde la nada, tendría que gastarse cerca de 3.000 millones de dólares. Afortunadamente, como es gratis para todo aquel que lo quiera, no faltan las empresas de informática, como RedHat, que lo han utilizado como base de sus productos. No deja de resultar llamativo que Torvalds sólo desarrollara lo que en informática se denomina kernel, una suerte de motor que actúa de puente entre el procesamiento de datos que realiza el ordenador y las aplicaciones en sí mismas. ¿Complicado? Tanto como importante. En muchos aspectos, el origen de Linux se produce mucho antes. Concretamente en 1984, cuando el gurú del software libre Richard Stallman comenzó el desarrollo de un sistema operativo que permitiese a los usuarios no depender del Windows que les vendían con sus ordenadores. “En 1984 comencé el desarrollo del sistema operativo GNU, cuya meta era ser un software libre que permitiese al usuario utilizar el ordenador con libertad”, afirma Stallman, quien define al Windows de Microsoft como “un sistema operativo propietario que subyuga al usuario”. El problema que tuvo Stallman, un radical que aboga por no instalar en el ordenador ninguna aplicación de pago, es que para el desarrollo de su sistema operativo le faltaba ese motor, esa pieza esencial que sí desarrolló Torvalds, aprovechando las lecciones aprendidas de MINIX, una versión alternativa del sistema operativo UNIX diseñada por el profesor Andrew S. Tanenbaum. Llama la atención que, en su primer mail a la comunidad de desarrolladores, Torvalds dijese “estoy creando un sistema operativo libre (sólo es un hobby, no algo grande y profesional como GNU)”. También resulta divertido recordar que Tanenbaum, al conocer los esfuerzos del finés, afirmó: “Da gracias por no ser mi estudiante. No obtendrías una buena nota por ese diseño”. Con los años, se ha demostrado que una de las armas más poderosas de Torvalds y su comunidad fue no alinearse con las posturas más radicales de Stallman. Mientras el activista que creó GNU sigue hoy defendiendo en pantalones cortos y con chanclas la expresión del “software libre”, que tiene numerosas implicaciones éticas y filosóficas, las empresas que trabajan con Linux están cómodas con la expresión “de código abierto”, con menos connotaciones ideológicas y más imbricadas en la industria convencional de la informática. Esto ha permitido que Linux alcance hitos como ser utilizado de forma habitual por casi todos los grandes colosos de la informática y la electrónica de consumo. Los usos que se le han encontrado van desde los sistemas operativos para móviles hasta las grandes computadoras. En el móvil, utilizan Linux como motor el Android de Google, uno de los sistemas operativos para teléfonos inteligentes que está alcanzando más crecimiento, o los proyectos MeeGo, Tizen o Meltemi. Además, en el último ranking de las 500 mayores supercomputadoras del mundo, un 82% utilizaba Linux. Una de las grandes paradojas de Linux es que, aunque ha servido para “liberar” a las grandes empresas y mejorar su rendimiento, no ha logrado llegar al usuario de la calle. Aunque se han creado numerosos sistemas operativos basados en GNU y Linux capaces de ser incorporados a la vida de los usuarios normales y corrientes, como Ubuntu, Debian, o los proyectos desarrollados por regiones como Extremadura y Andalucía, lo cierto


os

s

o

UNIDAD II: HERRAMIENTAS DE HARDWARE

Desarrollo de contenidos

Lecturas seleccionadas

es que el hecho de que todos los grandes fabricantes de ordenadores incorporen de serie Windows (y cuando no lo han hecho han vendido menos), ha impedido llevar este sistema a los usuarios comunes. Seguro que Torvalds no podía imaginar, mientras escribía su código, que no iba a dejar sus huellas en el escritorio, sino en las nubes yRecordatorio en unos móviles que, también en 1991, daban sus primeros pasos de bebé en otra localidad finlandesa. EL MOTOR DEL CÓDIGO ABIERTO QUE MUEVE SMARTPHONES Y SUPERCOMPUTADORAS TORVALDS ADMITE QUE SÓLO COMENZÓ A CREAR LINUX COMO UN PEQUEÑO ‘HOBBY’ APOYO LA BATALLA DEL SOFTWARE La tragedia de Richard Stallman fue que, en poco tiempo, Linux terminó recibiendo más atención de los medios que su propio proyecto. De hecho, la prensa siempre ha tendido a utilizar el todo por la parte al referirse a Linux, cuando en muchas ocasiones de lo que deberían hablar es de GNU/Linux, pues casi todos los sistemas operativos que utilizan Linux tienen, a su vez, partes que nacen del idealismo de la comunidad inspirada por Stallman. En cierta forma, es como si hoy todos nos acordásemos del motor de un coche de época en lugar de imaginarlo como un conjunto. Pero lo cierto es que, al ser Linux una pieza central de muchas arquitecturas, su importancia objetiva ha terminado por ser superior.

Objetivos

Aunque nunca consiguió la fama o el dinero de Bill Gates o Steve Jobs, el impacto de Linus Torvalds en nuestra sociedad ha sido, si no equiparable, desde luego comparable. Richard Stallman, un idealista al que las grandes corporaciones tienen mucho que agraInicio decer. Sin su impulso y el de su comunidad de desarrolladores, Linux no habría sido lo que es hoy. En la alianza entre GNU y Linux salió ganando el pingüino

Actividades

Autoevaluación

Glosario

Bibliografía

BIBLIOGRAFIA DE LA UNIDAD III:

Simon, P. (2010). The Next Wave of Technologies. New Jersey: John Wiley & Sons.

Anotaciones

Bramante, J. E. (2009). Networking Self-Teaching Guide. Indianápolis: Wiley Publishing. Diagrama

Objetivos

Inicio

Sosinsky, B. (2009). Networking Bible. Wiley Publishing, Inc. Desarrollo de contenidos

Actividades

Autoevaluación

LECTURA SELECCIONADAS Lecturas seleccionadas

Glosario

Bibliografía

BID: Nuevas tecnologías necesitan del capital humano para ganar efectividad. (2011, May 19). EFE News Service, pp. n/a. Recordatorio

Anotaciones

MIGUEL ÁNGEL, U. (2011, Nov 01). El Pingüino que revolucionó la Informática. Actualidad Económica, 109

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Glosario

Anotaciones

Bibliografía

47



UNIDAD III: HERRAMIENTAS DE SOFTWARE

Desarrollo de contenidos

Diagrama

Desarrollo de contenidos

Diagrama Lecturas seleccionadas

Desarrollo de contenidos Recordatorio

Objetivos

Inicio

Actividades

Glosario

Recordatorio

Anotaciones

Autoevaluación

DIAGRAMA DE PRESENTACIÓN DE LA UNIDAD Objetivos Glosario

Inicio Bibliografía

Actividades

Autoevaluación

Anotaciones

Glosario

EJEMPLOS

ACTIVIDADES

Bibliografía

BIBLIOGRAFÍA Recordatorio

Lecturas seleccionadas

UNIDAD III: HERRAMIENTAS DE SOFTWARE

CONTENIDO Lecturas seleccionadas

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

AUTOEVALUACIÓN

Anotaciones

CONOCIMIENTOS Tema N° 1: Gestión y Almacenamiento de Datos 1. La Base de Datos 2. Arquitectura de los DBMS Tema N° 2: Ingeniería de Software 1. El Software 2. El Proyecto de Software 3. Modelos de proceso de desarrollo del Software Tema N° 3: El Internet 1. Historia del Internet 2. Direcciones IP 3. Otras Tecnologías

PROCEDIMIENTOS

ACTITUDES

1. Describe las generalidades de las Bases de Datos y los medios utilizados para su elaboración y consulta.

1. Aplica las técnicas de estudio aprendidas en su estudio cotidiano y mejora sus hábitos de estudio, siendo constante y responsable.

2. Comprende los funda- 2. Investiga constantementos del desarrollo del mente sobre los temas que software. no entiende bien o que desea profundizar, Actividad N° 1 Ensayo sobre el mercado de las bases de datos. 3. Enlista las tecnologías que hacen posible la existencia del internet como medio informático.

Lectura seleccionada 1: Caso: Sistema Sanitario con Web 3.0; Mayol, J.

4. Comprende el impacto de las herramientas del internet y el rol del ingeniero en la explotación del mismo.

Lectura seleccionada 2: Oportunidad: Trabajar con la Nube; Carbajal, O.

Actividad N° 2

Lectura seleccionada 3: Futuro de las Redes Sociales; Herrera, X

Ensayo sobre Extreme Programming, y Scrum. Actividad N° 3 Organizador resumen. Control de Lectura Nº 2

3. Revisa los contenidos anteriores constantemente para consolidar sus conocimientos.

Bibliografía

49


s

s

o

50

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD III: HERRAMIENTAS DE SOFTWARE

TEMA 1 GESTIÓN Y ALMACENAMIENTO DE DATOS Anotaciones

Una de las más importantes actividades de la computación se centra en el almacenamiento, consulta y transporte de datos, en el mundo del desarrollo de sistemas, uno de las principales herramientas para la gestión de datos es la Base de Datos.

En el mundo de la informática, la base de datos constituye uno de los elementos más importantes debido a que la naturaleza de la gestión de datos de manera automatizada es uno de los principios de la ingeniería de sistemas e informática. Revisaremos los fundamentos y conceptos más importantes relacionados a esta herramienta. En los últimos años, los avances en la tecnología han conducido a sistemas de bases de datos complejos. La tecnología de los nuevos medios de comunicación hace posible almacenar digitalmente imágenes, audio o flujos (streams). Los almacenes de datos y los sistemas de procesamiento analítico en línea se utilizan en muchos campos para extraer y analizar información útil de bases de datos mucho enormes. 1 LA BASE DE DATOS 1.1. Definición Una base de datos es una colección de datos relacionados. Podríamos referirnos a la base de datos como otras entidades capaces de almacenar dicha información como un documento de texto, una imagen enriquecida o una hoja de cálculo entre otros. Por ello deberemos reducir nuestra concepción de una base de datos a una colección de datos lógicamente coherente con algún tipo de significado inherente. (Navathe, 2007) Una base de datos se diseña, construye y rellena con datos para un propósito específico. Dispone de un grupo pretendido de usuarios y algunas aplicaciones preconcebidas en las que esos usuarios están interesados. 1.2. El DBMS El DataBase Management System es una colección de programas que permite a los usuarios crear y mantener una base de datos. El DBMS es un sistema de software de propósito general que facilita los procesos de definición, construcción, manipulación y compartición de bases de datos entre varios usuarios y aplicaciones. Definir una base de datos implica especificar los tipos de datos, estructuras y restricciones de los datos que se almacenarán en la base de datos. Una base de datos es una colección de datos relacionados. Aunque existe una gran variedad de elementos a considerarse como un almacén de datos. Un BDMS tiene el control sobre la gestión de la base de datos y provee las herramientas necesarias para su manipulación. La forma en que esta es gestionada, es a


UNIDAD III: HERRAMIENTAS DE SOFTWARE

Desarrollo de contenidos

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

través de un catálogo estructurado que guarda la representación de la base de datos y la forma en como esta se organiza, sus índices, sus tablas, sus columnas y más. 1.3. Profesionales en la Gestión de las Bases de Datos

El DataBase Administrator (DBA) es responsable del acceso autorizado a la base de datos, de la coordinación y monitorización de su uso, y de adquirir los recursos software y hardware necesarios. El DBA también es responsable de problemas como las brechas de seguridad o de unos tiempos de respuesta pobres. Además del DBA, los Diseñadores de la Base de Datos tienen un rol continuo sobre la base de datos, su rol consiste en mantener la estructura apropiada a representarse para el buen funcionamiento de la base de datos a lo largo de su vida útil, a la que implementaran los modelos que hagan falta en el momento de demandado. Los diseñadores normalmente interactúan con los grupos de usuarios potenciales y desarrollan vistas de la base de datos que satisfacen los requisitos de datos y procesamiento de esos grupos. Los usuarios finales son las personas cuyos trabajos requieren el acceso a la base de datos para realizar consultas, actualizaciones e informes. Los DBMS suelen proporcionar muchas formas de acceder a una base de datos. Muchos de los usuarios finales nunca tendrán acceso directo a la base de datos, así que se harán de alguna herramienta de software que interactúa de forma segura y rápida con la base de datos y construida especialmente para los requerimientos de los usuarios. Los analistas y programadores determinan los requerimientos de los usuarios finales, implementándolos en una aplicación de software, la que entra en contacto directo con la base de datos. 2 ARQUITECTURA DE LOS DBMS 2.1. Estructura de DBMS Los DBMS presentan un diseño modular y una arquitectura de sistema cliente/ servidor. La funcionalidad del sistema se distribuye entre dos tipos de módulos • Módulo Cliente se diseña normalmente para que se pueda ejecutar en un computador terminal. • El módulo servidor, ofrece los servicios de almacenamiento, el acceso, la búsqueda y otras funciones sobre los datos. 2.2. Capacidades Comunes de un DBMS Una base de datos no contiene las capacidades de consulta, ordenamiento o definición de sí misma a través de metadatos por sí sola, sino que utiliza las capacidades de un DBMS para su creación, almacenamiento y manipulación. Algunos de los elementos que un DBMS añade a una base de datos son descritos a continuación: Los índices se usan para acelerar la búsqueda en el disco de los registros deseados, basados casi siempre en el árbol de estructuras de. A fin de procesar los registros necesarios de la base de datos para una consulta en particular, estos registros deben copiarse del disco a la memoria. Esta copia masiva de datos se realiza mediante un elemento llamado búfer. El módulo de procesamiento y optimización de consultas del DBMS es el responsable de elegir un plan eficaz de ejecución de consultas para cada consulta basándose en las estructuras de almacenamiento existentes. Mayormente encontramos una herramienta para la generación de una copia de seguridad y recuperación ante la posibilidad de recuperarse ante fallos del hardware o del software.

Bibliografía

51


s

s

o

52

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD III: HERRAMIENTAS DE SOFTWARE

El DBMS además suministra varios tipos de interfaces de administración basados en elementos gráficos (GUI) o en interfaces de comandos solamente (CLI), permitiendo el uso del DBMS y las bases de datos existentes. Anotaciones

En los sistemas de bases de datos relaciónales es posible asociar triggers a las tablas. Este es una forma de regla que se activa con las actualizaciones y creación de registros en una tabla, estando estas operaciones sujetas a ciertas actividades condicionadas. La gestión de usuarios y permisos son tareas que caracterizan a casi todos los BDMS, ya que son el principal medio de protección de una base de datos y que están bajo la responsabilidad del DBA 2.3. Lenguajes e Interfaces de Datos El DBA y los diseñadores de la base de datos utilizan un lenguaje, denominado Data Definition Language (DDL), para definir los esquemas conceptual e interno y las relaciones entre estos. El DBMS tendrá un compilador DDL cuya función es procesar las sentencias DDL a fin de identificar las descripciones de las estructuras del esquema y almacenar la descripción del mismo en el catálogo del DBMS. Para especificar el esquema interno se utiliza otro lenguaje, el Storage Definition Language (SDL). Los mapeados entre los dos esquemas se pueden especificar en cualquiera de estos lenguajes. En una arquitectura de tres esquemas real se necesita un tercer lenguaje, el View Definition Language (VDL), a fin de especificar las vistas de usuario. En los DBMSs, los tipos de lenguajes anteriormente citados normalmente no están considerados como lenguajes distintos. Más bien, se utiliza un lenguaje integrado comprensivo que incluye construcciones para la definición del esquema conceptual, la definición de vistas y la manipulación de datos. Este lenguaje es el famoso Structured Query Language (SQL) que veremos adelante en mayor detalle. 2.4. Arquitecturas Centralizadas Cliente/Servidor Existen diversas formas de presentar una arquitectura cliente/servidor, a continuación examinaremos algunas presentaciones bastante comunes. El procesamiento centralizado incluye un sistema de procesamiento donde la base de datos se encuentra instalada en un servidor que no solo mantiene a l base de datos, sino que también guarda las aplicaciones necesarias para su consulta, convirtiendo a los terminales en estaciones que solo se conectan remotamente al servidor, al que se satura con toda la carga de procesamiento y almacenamiento. Las arquitecturas de n capas se utilizan en muchas de las aplicaciones modernas, en los entornos web y los entornos de escritorio. Consisten en consultas organizadas a manera de capas pues una consulta pasa por cada capa, que guardan con más detalle el origen de la consulta y la interacción directa con la base de datos. Así se consigue que parte de la aplicación pueda ejecutarse rápidamente en la estación terminal. Diagrama

Objetivos

Desarrollo de contenidos

Actividades

Lecturas seleccionadas

Inicio

ACTIVIDAD N° 1: Autoevaluación

Esta actividad puede consultarla en su aula virtual.

Glosario

Bibliografía


UNIDAD III: HERRAMIENTAS DE SOFTWARE

Desarrollo de contenidos

TEMA 2 INGENIERÍA DE SOFTWARE

Lecturas seleccionadas

En la industria de las TICs y el desarrollo de la ingeniería de sistemas e informática, el desarrollo de software, ha sido una de las actividades más resaltantes y dinámicas,Recordatorio su entendimiento es vital, aunque su campo es tan amplio que llega a constituirse en una ingeniería por sí misma.

1 EL SOFTWARE Para entender el software y la ingeniería del software, es importante examinar las características que lo hacen diferente de otras cosas. El software es un elemento que representa la parte de la lógica del computador. 1.1. ¿Qué es el Software? El software de computadora es el producto que los ingenieros de software construyen y después mantienen en el largo plazo. (Pressman, 2010). Los ingenieros de software lo construyen y lo mantienen, y casi todos en el mundo industrializado lo usan de manera directa o indirecta. Afecta de forma muy cercana todos los aspectos de nuestras vidas y se ha vuelto omnipresente en el comercio, la cultura y las actividades cotidianas. El software de computadora se construye de la misma forma que cualquier producto, mediante la aplicación de un proceso que conduzca a un resultado de satisfaga las necesidades de la gente que usará el producto. (Pressman, 2010) Desde el punto de vista del ingeniero de software, el producto obtenido lo forman los programas, el contenido (datos) y los documentos que constituyen el software. Pero desde el enfoque del usuario, el producto obtenido es la información resultante que de alguna manera mejora el mundo del usuario. 1.2. Características del Software El software se desarrolla y no se manufactura: A pesar de que existen similitudes entre el desarrollo del software y la manufactura del hardware, las dos actividades son diferentes en lo fundamental. En ambas, la alta calidad se alcanza por medio del buen diseño, pero la fase de manufactura del hardware puede incluir problemas de calidad inexistentes en el software. Esto significa que los proyectos de software no se pueden manejar como si fueran proyectos de manufactura. El software no se degrada: Para el hardware, existe, la tasa de fallas como una función del tiempo. La relación, indica otro aspecto del desgaste ilustra la diferencia entre el hardware y el software. Cuando un componente del hardware se desgasta se sustituye con un repuesto. Pero en el software no existen repuestos. Cualquier falla del software implica un error en el diseño o el proceso mediante el cual se pasó del diseño al código máquina ejecutable. Por lo tanto, el mantenimiento del software implica de manera considerable una complejidad mayor que el del hardware.

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Glosario

Anotaciones

Bibliografía

53


s

s

o

54

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD III: HERRAMIENTAS DE SOFTWARE

1.3. Clasificación del Software Según Pressman en la actualidad existen siete grandes categorías del software: Anotaciones

El Software de sistemas es una colección de programas escritos para servir a otros programas. Algunos programas de sistemas (como los compiladores, editores y utilerías para la administración de archivos) procesan estructuras de información compleja pero determinada. Otras aplicaciones de sistemas (por ejemplo, componentes del sistema operativo, controladores, software de red, procesadores para telecomunicaciones) procesan datos indeterminados. En cada caso, el área de software de sistemas se caracteriza por una interacción muy intensa con el hardware de la computadora; utilización por múltiples usuarios; operación concurrente; estructuras de datos complejas y múltiples interfaces externas. El Software de aplicación son programas independientes que resuelven una necesidad específica. Las aplicaciones en esta área procesan datos de forma que facilitan las operaciones comunes. Software científico y de ingeniería. Abarca desde la astronomía hasta la vulcanología, desde el análisis de la tensión automotriz hasta la dinámica orbital de los transbordadores espaciales, y desde la biología molecular hasta la manufactura automatizada. Sin embargo, las aplicaciones modernas dentro del área científica y de ingeniería se alejan en la actualidad de los algoritmos numéricos convencionales. El diseño asistido por computadora, la simulación de sistemas y otras aplicaciones interactivas han comenzado a tomar características de software en tiempo real e incluso de software de sistemas. Software Empotrado o Embebido reside dentro de la memoria de sólo lectura del sistema y con él se implementan y controlan características y funciones para el usuario final y el sistema mismo. El software incrustado puede desempeñar funciones limitadas o proporcionar capacidades de control y funcionamiento significativas. Software de Línea de Productos diseñado para proporcionar una capacidad específica y la utilización de muchos clientes diferentes, se puede enfocar en un nicho de mercado limitado o dirigirse hacia los mercados masivos. Aplicaciones Basadas en Web engloban un espectro amplio de aplicaciones. En su forma más simple, las WebApps son apenas un poco más que un conjunto de archivos de hipertexto ligados que presenta información mediante texto y algunas gráficas. El Software de inteligencia artificial utiliza algoritmos no numéricos en la resolución de problemas complejos que es imposible abordar por medio de un análisis directo. Las aplicaciones dentro de esta área incluyen la robótica, los sistemas expertos, el reconocimiento de patrones (imagen y voz), las redes neuronales artificiales, la comprobación de teoremas y los juegos en computadora. 1.4. Evolución del Software El software de computadora evoluciona a través del tiempo, sin importar su dominio de aplicación, tamaño o complejidad. El cambio conduce este proceso, y se presenta cuando se corrigen errores, cuando el software se adapta a un nuevo ambiente, cuando el cliente solicita características o funciones nuevas, y cuando la aplicación experimenta una reingeniería para proporcionar beneficios en un contexto moderno. Cualquier proyecto de software se inicia por alguna necesidad: corregir un defecto en una aplicación existente; el imperativo de adaptar un sistema heredado a un ambiente de negocios cambiante; el requerimiento de extender las funciones y características de una aplicación existente; o la necesidad de crear un producto, servicio o sistema nuevos.


UNIDAD III: HERRAMIENTAS DE SOFTWARE

Desarrollo de contenidos

2 EL PROYECTO DE SOFTWARE

Lecturas seleccionadas

Con frecuencia, en el inicio de un proyecto de ingeniería del software la necesiRecordatorio dad de negocios se expresa de manera informal durante una simple conversación. Cuando se trabaja para construir un producto o sistema es importante seguir una serie de pasos predecibles una especie de mapa de que ayude a crear un resultado. (Pressman, 2010) Los ingenieros de software y sus jefes adaptan el proceso a sus necesidades y después lo siguen. Además, la gente que ha solicitado el software tiene una función qué desempeñar en el proceso de definirlo, construirlo y probarlo. Esto ofrece estabilidad, control y organización a una actividad que puede volverse caótica si no se controla. Sin embargo, en años recientes, un enfoque de ingeniería del software moderno debe ser ágil. Debe requerir sólo aquellas actividades, controles y documentaciones apropiados para el equipo del proyecto y el producto que ha de producirse. 2.1. Modelo de Madurez El Instituto de Ingeniería del Software (SEI) ha desarrollado un modelo completo de un amplio proceso basado en un conjunto de capacidades de software y de sistemas que deben estar presentes conforme las organizaciones alcanzan diferentes grados de capacidad y madurez del proceso. El SEI sostiene que para lograr estas capacidades una organización debe crear un modelo de proceso que se ajuste a las directrices establecidas por la integración del modelo de capacidad de madurez (IMCM). La IMCM representa un modelo completo de proceso en dos formas diferentes: 1) como un modelo continuo y 2) como un modelo discreto. El modelo continuo IMCM describe un proceso en dos dimensiones. Cada área del proceso (por ejemplo, la planeación del proyecto o la gestión de los requisitos) se evalúa de manera formal contra las metas y prácticas específicas y se clasifica de acuerdo con los siguientes niveles de capacidad: Nivel 0: Incompleto. El área del proceso (por ejemplo, la gestión de requisitos) aún no se realiza o todavía no alcanza todas las metas y objetivos definidos para el nivel 1 de capacidad. Nivel 1: Realizado. Todas las metas específicas del área del proceso (como las definió la IMCM) han sido satisfechas. Las tareas de trabajo requeridas para producir el producto específico han sido realizadas. Nivel 2: Administrado. Todos los criterios del nivel 1 han sido satisfechos. Además, todo el trabajo asociado con el área de proceso se ajusta a una política organizacional definida; toda la gente que ejecuta el trabajo tiene acceso a recursos adecuados para realizar su labor; los clientes están implicados de manera activa en el área de proceso, cuando esto se requiere; todas las tareas de trabajo y productos están monitoreados, controlados y revisados; y son evaluados en apego a la descripción del proceso. Nivel 3: Definido. Todos los criterios del nivel 2 se han cumplido. Además, el proceso está adaptado al conjunto de procesos estándar de la organización, de acuerdo con las políticas de adaptación de esta misma, y contribuye a la información de los productos del trabajo, mediciones y otras mejorías del proceso para los activos del proceso organizacional. Nivel 4: Administrado en forma cuantitativa. Todos los criterios del nivel 3 han sido cumplidos. Además, el área del proceso se controla y mejora mediante mediciones y evaluación cuantitativa. Los objetivos cuantitativos para la calidad y

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Glosario

Anotaciones

Bibliografía

55


s

s

o

56

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD III: HERRAMIENTAS DE SOFTWARE

desempeño del proceso están establecidos y se utilizan como un criterio para administrar el proceso. Anotaciones

Nivel 5: Mejorado. Todos los criterios del nivel 4 han sido satisfechos. Además, el área del proceso se adapta y mejora mediante el uso de medios cuantitativos (estadísticos) para conocer las necesidades cambiantes del cliente y mejorar de manera continua la eficacia del área del proceso que se está considerando 3 MODELOS DE PROCESO DE DESARROLLO DE SOFTWARE La ingeniería del software es una disciplina que integra al proceso, los métodos y las herramientas para el desarrollo del software. Se ha propuesto un gran número de modelos de proceso para la ingeniería del software, pero todos definen un conjunto de actividades del marco de trabajo, una colección de tareas conducidas para realizar cada actividad, productos de trabajo generados como consecuencia de las tareas y un conjunto de actividades sombrilla que acompañan el proceso entero. Los patrones de proceso pueden aprovecharse para definir las características del mismo. La integración del modelo de capacidad de madurez (IMCM) es un modelo total del proceso, que describe las metas, prácticas y capacidades específicas con que debe contar un proceso de software maduro. El SPICE y otros estándares definen los requisitos para guiar una evaluación del proceso de software, y el estándar ISO examinan la gestión de la calidad dentro de un proceso. 3.1. Modelo en Cascada Existen ocasiones en que los requisitos de un problema se entienden de una manera razonable: cuando el trabajo fluye desde la comunicación a través del despliegue de una manera casi lineal. Esta situación se encuentra a veces cuando es necesario hacer adaptaciones o mejorías bien definidas a un sistema existente. Esto puede ocurrir también en un número limitado de proyectos de nuevos desarrollos, pero sólo cuando los requerimientos están bien definidos y son estables en forma razonable. (Pressman, 2010) El modelo en cascada, algunas veces llamado el ciclo de vida clásico, sugiere un enfoque sistemático, secuencial hacia el desarrollo del software, que se inicia con la especificación de requerimientos del cliente y que continúa con la planeación, el modelado, la construcción y el despliegue para culminar en el soporte del software terminado.

Modelo en Cascada (Pressman, 2010) En la actualidad, el trabajo del software está acelerado y sujeto a una cadena infinita de cambios (de características, funciones y contenido de la información). Con frecuencia, el modelo en cascada no es apropiado para dicho trabajo. Sin embargo, puede servir como un modelo de proceso útil en situaciones donde los requerimientos están fijos y donde el trabajo se realiza, hasta su conclusión, de una manera lineal. 3.2. Modelo Incremental En muchas situaciones los requisitos iniciales del software están bien definidos en forma razonable, pero el enfoque global del esfuerzo de desarrollo excluye un proce-


UNIDAD III: HERRAMIENTAS DE SOFTWARE

Desarrollo de contenidos

Lecturas seleccionadas

so puramente lineal. Además, quizá haya una necesidad imperiosa de proporcionar de manera rápida un conjunto limitado de funcionalidad para el usuario y después refinada y expandirla en las entregas posteriores del software. En estos casos se elige un modelo de proceso diseñado para producir el software en forma incremental. Recordatorio Este modelo combina elementos del modelo en cascada aplicado en forma iterativa, el modelo incremental aplica secuencias lineales de manera escalonada conforme avanza el tiempo en el calendario. Cada secuencia lineal produce incrementos del software. Por ejemplo, el software procesador de texto, desarrollado con el paradigma incremental en su primer incremento, podría realizar funciones básicas de administración de archivos, edición y producción de documentos; en el segundo incremento, ediciones más sofisticadas, y tendría funciones más complejas de producción de documentos; en el tercer incremento, funciones de corrección ortográfica y gramatical; y en el cuarto, capacidades avanzadas de configuración de página. Se debe tener en cuenta que el flujo del proceso de cualquier incremento puede incorporar el paradigma de construcción de prototipos. A menudo, al utilizar un modelo incremental el primer incremento es un producto esencial. Es decir, se incorporan los requisitos básicos, pero muchas características suplementarias no se incorporan. El producto esencial queda en manos del cliente. Como resultado de la evaluación se desarrolla un plan para el incremento siguiente. El plan afronta la modificación del producto esencial con el fin de satisfacer de mejor manera las necesidades del cliente y la entrega de características y funcionalidades adicionales. Este proceso se repite después de la entrega de cada incremento mientras no se haya elaborado el producto completo. 3.3. Construcción de Prototipos A menudo un cliente define un conjunto de objetivos generales para el software, pero no identifica los requisitos detallados de entrada, procesamiento o salida. En otros casos, el responsable del desarrollo del software está inseguro de la eficacia de un algoritmo, de la adaptabilidad de un sistema operativo o de la forma que debería tomar la interacción humano-máquina. En éstas, y en muchas otras situaciones, un paradigma de construcción de prototipos puede ofrecer el mejor enfoque. A pesar de que la construcción de prototipos se puede utilizar como un modelo de proceso independiente, se emplea más comúnmente como una técnica susceptible de implementarse dentro del contexto de cualquiera de los modelos de proceso expuestos en este capítulo. Sin importar la forma en que éste se aplique, el paradigma de construcción de prototipos ayuda al ingeniero de sistemas y al cliente a entender de mejor manera cuál será el resultado de la construcción cuando los requisitos estén satisfechos. 3.4. El Modelo en Espiral El modelo en espiral es un modelo de proceso de software evolutivo que conjuga la naturaleza iterativa de la construcción de prototipos con los aspectos controlados y sistemáticos del modelo en cascada. Proporciona el material para el desarrollo rápido de versiones increméntales del software. (Pressman, 2010). El modelo de desarrollo en espiral es un generador del modelo de proceso guiado por el riesgo que se emplea para conducir sistemas intensivos de ingeniería del software concurrente y con múltiples usuarios. Tiene dos características distintivas principales. Una de ellas es un enfoque cíclico para el crecimiento incremental del grado de definición e implementación de un sistema, mientras disminuye su grado de riesgo. La otra es un conjunto de puntos de fijación para asegurar el compromiso del usuario con soluciones de sistema que sean factibles y mutuamente satisfactorias. Cuando se aplica el modelo en espiral, el software se desarrolla en una serie de entregas evolutivas. Durante las primeras iteraciones, la entrega tal vez sea un documento del modelo o un prototipo. Durante las últimas iteraciones se producen versiones cada vez más completas del sistema desarrollado.

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Glosario

Anotaciones

Bibliografía

57


s

s

o

58

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD III: HERRAMIENTAS DE SOFTWARE

Anotaciones

3.5. Desarrollo Ágil Combina una filosofía y un conjunto de directrices de desarrollo. La filosofía busca la satisfacción del cliente y la entrega temprana de software incremental; equipos de proyecto pequeños y con alta motivación; métodos informales; un mínimo de productos de trabajo de la ingeniería del software; y una simplicidad general del desarrollo. Las directrices de desarrollo resaltan la entrega sobre el análisis y el diseño (aunque estas actividades no se descartan), y la comunicación activa y continua entre los desarrolladores y los cuentes. Los ingenieros de software y otros participantes del proyecto (gerentes, clientes y usuarios finales) trabajan ¡untos en un equipo ágil: un equipo con organización propia y que controla su propio destino. Un equipo ágil fomenta la comunicación y la colaboración entre todos los que trabajan en él. El ambiente moderno de los negocios ocasiona que los sistemas basados en computadoras y los productos de software estén acelerados y en cambio continuo. La ingeniería del software ágil representa una opción razonable a la ingeniería convencional para ciertas clases de software y ciertos tipos de proyectos de software. Ha demostrado su utilidad al entregar sistemas exitosos con rapidez Las actividades básicas del marco de trabajo: comunicación con el cliente, planeación, modelado, construcción, entrega y evolución; se conservan, pero éstas se conforman como un conjunto mínimo de tareas que empuja al equipo de proyecto nacía la construcción y la entrego (habrá quienes argumenten que esto se hace a costa del análisis del problema y del diseño de la solución). La Alianza Ágil define 12 principios para quienes quieren alcanzar la agilidad: i. Satisfacer al cliente mediante la entrega temprana y continua de software. ii. Requisitos cambiantes, incluso en fases tardías del desarrollo. La estructura de los procesos ágiles cambia para la ventaja competitiva del cliente. iii. Entrega frecuente de software en funcionamiento, desde un par de semanas hasta un par de meses, con una preferencia por la escala de tiempo más corta. iv. La gente de negocios y los desarrolladores deben trabajar juntos a diario a lo largo del proyecto. v. Construir proyectos alrededor de individuos motivados. El ambiente y el soporte que necesitan. vi. El método más eficiente y efectivo de transmitir información hacia y dentro de un equipo de desarrollo es la conversación cara a cara. vii. El software en funcionamiento es la medida primaria de progreso. viii. Los procesos ágiles promueven el desarrollo sustentable. Los patrocinadores, desarrolladores y usuarios deben ser capaces de mantener un paso constante de manera indefinida. ix. La atención continua a la excelencia técnica y al buen diseño mejora la agilidad.


UNIDAD III: HERRAMIENTAS DE SOFTWARE

Desarrollo de contenidos

x. La simplicidad es esencial.

Lecturas seleccionadas

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Glosario

xi. Las mejores arquitecturas, los mejores requisitos y los mejores diseños emergen de equipos auto organizados. Recordatorio xii. A intervalos regulares el equipo refleja la forma en que se puede volver más efectivo; entonces su comportamiento se ajusta y adecúa en concordancia.

La agilidad se puede aplicar en cualquier proceso de software. Sin embargo, para lograrlo es esencial que el proceso sea diseñado en una forma que permita al equipo del proyecto adaptar y coordinar las tareas, conducir la planeación en una forma que entienda la fluidez de un enfoque de desarrollo ágil, eliminar todo pero no los productos de trabajo esenciales y mantenerlos controlados, y enfatizar una estrategia de entrega incremental que proporcione software en funcionamiento al cliente tan rápido como sea factible para el tipo de producto y el ambiente operativo. Los defensores del desarrollo ágil del software resaltan la importancia de los factores de las personas en un desarrollo ágil exitoso. El desarrollo ágil se centra en los talentos y las habilidades de los individuos, puesto que el proceso se ajusta a personas y equipos específicos. El punto clave en esta afirmación es que el proceso se ajusta a las necesidades de las personas y del equipo, y no al revés. Si los miembros del equipo de software van a manejar las características del proceso que se aplica para construirlo, debe existir un gran número de rasgos clave entre la gente de un equipo ágil y el equipo mismo: • Competencia, abarca un talento innato, habilidades específicas relacionadas con el software, y un conocimiento general del proceso que el equipo haya elegido aplicar. La habilidad y el conocimiento del proceso pueden y deben enseñarse a toda la gente que funge como miembro de un equipo ágil. • Enfoque común, aunque los miembros del equipo ágil desempeñen tareas diferentes y aporten distintas habilidades al proyecto, todos deben enfocarse en una meta: entregar al cliente un incremento de trabajo de software dentro del tiempo establecido. • Colaboración, incluye evaluar, analizar y usar información que se comunica al equipo de software; crear información que ayudará al cliente y a otros a entender el trabajo del equipo; y construir información (software de computadora y bases de datos relevantes) que ofrezca un valor comercial para el cliente. • Habilidad para la toma de decisiones, implica que al equipo se le dé autonomía, es decir, autoridad para tomar decisiones en cuanto a cuestiones técnicas y del proyecto. • Capacidad de resolución de problemas confusos, en algunos casos, el equipo debe aceptar que el problema que está resolviendo hoy tal vez no sea el problema que debe resolverse mañana. • Confianza y respeto mutuo, un equipo muestra la confianza y el respeto necesarios para que se unan con tanta fuerza, que el todo sea mayor que la suma de las partes. • Organización propia, en el contexto del desarrollo ágil, la organización propia implica tres factores: 1) el equipo ágil se organiza a sí mismo para el trabajo que debe hacerse; 2) el equipo organiza el proceso que mejor se ajusta a su ambiente local; 3) el equipo organiza el programa de trabajo con el que se alcance de mejor manera la entrega del incremento del software. La organización propia tiene varios beneficios técnicos, pero lo más importante es que mejora la colaboración y eleva la moral del equipo. El equipo selecciona la cantidad de trabajo que cree que es capaz de hacer dentro de la iteración, y el equipo se compromete con el trabajo. Diagrama

Objetivos

Desarrollo de contenidos

Actividades

Lecturas seleccionadas

Inicio

ACTIVIDAD N° 2: Autoevaluación

Esta actividad puede consultarla en su aula virtual.

Glosario

Bibliografía

Anotaciones

Bibliografía

59


s

s

o

60

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD III: HERRAMIENTAS DE SOFTWARE

TEMA 3: EL INTERNET Anotaciones

La tendencia actual se centra en gran parte en el uso del Internet. Las aplicaciones en la intranet y otros adelantos apuntan al desarrollo de una nueva era del internet más comprometida con las actividades diarias del ser humano y un nuevo paradigma de comunicación en constante evolución. De allí la importancia de revisar el internet en un tema independiente.

1 HISTORIA DEL INTERNET El resumen mostrado a continuación fue compartido por Miquel Vidal y Carlos Gradín de forma libre y gratuita para el resto del mundo y se presenta con ligera modificación. (Gradín, 2004) Hace unos cincuenta años, la RAND Corporation, la principal fábrica de ideas de la América de la guerra fría, se enfrentó a un extraño problema estratégico. ¿Cómo se podrían comunicar con éxito las autoridades norteamericanas tras una guerra nuclear? La América postnuclear necesitaría una red de comando y control enlazado de ciudad a ciudad, estado a estado, base a base. Pero sin importar cómo esa red estuviera de protegida, sus líneas y equipos siempre serían vulnerables al impacto de bombas atómicas. Un ataque nuclear reduciría cualquier red imaginable a pedazos. ¿Cómo sería controlada esa red? Cualquier autoridad central, cualquier núcleo de red centralizado sería un objetivo obvio e inmediato para un misil enemigo. El centro de la red sería el primer lugar a derribar. La RAND le dio muchas vueltas a este difícil asunto en secreto militar y llegó a una solución atrevida. La propuesta de la RAND (ideada por uno de sus miembros, Paul Baran) se hizo pública en 1964. En primer lugar, la red no tendría autoridad central. Además, sería diseñada desde el principio para operar incluso hecha pedazos. Los principios eran simples. Se asumiría que una red era poco fiable en cualquier momento. Se diseñaría para trascender su propia falta de eficacia. Todos los nodos en la red serían iguales entre sí, cada nodo con autoridad para crear, pasar y recibir mensajes. Los mensajes se dividirían en paquetes, cada paquete dirigido por separado. Cada paquete saldría de un nodo fuente específico y terminaría en un nodo destino. Cada paquete recorrería la red según unos principios particulares. La ruta que tome cada paquete no tendría importancia. Solo contarían los resultados finales. Básicamente, el paquete sería lanzado como una patata de un nodo a otro, más o menos en dirección a su destino, hasta acabar en el lugar adecuado. Si grandes porciones de la red fueran destruidas eso simplemente no importaría; los paquetes permanecerían en la red en los nodos que hubieran sobrevivido. Este sistema de envío tan arbitrario podría parecer “ineficiente” en el sentido usual del término (especialmente comparado con, por ejemplo, el sistema telefónico). Durante los ‘60, este intrigante concepto de red de conmutación de paquetes descentralizada y a prueba de bombas caminó sin rumbo entre el RAND, el MIT (Massachusetts Institute of Technology) y la UCLA (University of California in Los Ángeles). El National Physical Laboratory (Laboratorio Nacional de Física) de Gran Bretaña preparó la primera red de prueba basada en estos principios en 1968. Poco


UNIDAD III: HERRAMIENTAS DE SOFTWARE

Desarrollo de contenidos

Lecturas seleccionadas

después, la Agencia de Proyectos de Investigación Avanzada del Pentágono (ARPA, Advanced Research Projects Agency) decidió financiar un proyecto más ambicioso y de mayor envergadura en los Estados Unidos. Los nodos de la red iban a ser superordenadores de alta velocidad (o lo que se llamara así en aquel momento). Eran Recordatorio máquinas poco usuales y de mucho valor y que estaban necesitadas de un buen entramado de red para proyectos nacionales de investigación y desarrollo. En el otoño (boreal) de 1969 el primero de esos nodos fue instalado en UCLA. En diciembre de ese año había cuatro nodos en la pequeña red, que se llamó ARPANET después de que fuera promocionada por el Pentágono. Los cuatro ordenadores podían transferir información sobre líneas dedicadas de alta velocidad. Incluso podían ser programados remotamente desde otros nodos. Gracias a ARPANET, científicos e investigadores podían compartir las facilidades de otros ordenadores en la distancia. Era un servicio muy útil ya que el tiempo de proceso de los ordenadores en los ‘70 era algo muy codiciado. En 1971 había quince nodos en ARPANET; en 1972, treinta y siete. Todo iba perfecto. En su segundo año de operatividad, sin embargo, algo extraño se hizo patente. Los usuarios de ARPANET habían convertido la red en una oficina de correos electrónica de alta velocidad subvencionada federalmente. La mayor parte del tráfico de ARPANET no era el proceso de datos a largas distancias. En vez de eso, lo que se movía por allí eran noticias y mensajes personales. Los investigadores estaban usando ARPANET para colaborar en proyectos, intercambiar notas sobre sus trabajos y, eventualmente, chismorrear. La gente tenía sus propias cuentas personales en los ordenadores de ARPANET y sus direcciones personales de correo electrónico. No es que sólo utilizaran ARPANET para la comunicación de persona a persona, pero había mucho entusiasmo por esta posibilidad –mucho más que por la computación a larga distancia. Eso no pasó mucho antes del invento de las listas de distribución, una técnica de emisión de información por ARPANET mediante la cual un mismo mensaje se podía enviar automáticamente a una gran cantidad de subscriptores. Es interesante que una de las primeras listas de distribución masivas se llamara “SF-LOVERS” (Amantes de la Ciencia Ficción). Discutir sobre ciencia ficción en la red no tenía nada que ver con el trabajo y eso enfadaba a muchos administradores de sistema de ARPANET, pero eso no impediría que la cosa siguiera. Durante los ‘70, ARPANET creció. Su estructura descentralizada facilitó la expansión. Contrariamente a las redes standard de las empresas, la red de ARPA se podía acomodar a diferentes tipos de ordenador. En tanto y en cuanto una máquina individual pudiese hablar el lenguaje de conmutación de paquetes de la nueva y anárquica red, su marca, contenidos e incluso su propietario eran irrelevantes. El estándar de comunicaciones de ARPA era conocido como NCP, “Network Control Protocol”, pero según pasaba el tiempo y la técnica avanzaba, el NCP fue superado por un estándar de más alto nivel y más sofisticado conocido como TCP/IP. El TCP o “Transmission Control Protocol”, convierte los mensajes en un caudal de paquetes en el ordenador fuente y los reordena en el ordenador destino. El IP, o “Internet Protocol”, maneja las direcciones comprobando que los paquetes caminan por múltiples nodos e incluso por múltiples redes con múltiples standards –no sólo ARPA fue pionera en el standard NCP, sino también Ethernet, FDDI y X.25. En 1977, TCP/IP se usaba en otras redes para conectarse a ARPANET. ARPANET estuvo controlada muy estrictamente hasta al menos 1983, cuando su parte militar se desmembró de ella formando la red MILNET. Pero el TCP/IP las unía a todas. Y ARPANET, aunque iba creciendo, se convirtió en un cada vez más pequeño barrio en medio de la vasta galaxia de otras máquinas conectadas. Según avanzaban los ‘70 y ‘80, distintos grupos sociales se encontraban en posesión de potentes ordenadores. Era muy fácil conectar esas máquinas a la creciente red de redes. Conforme el uso del TCP/IP se hacía más común, redes enteras caían abrazadas y adheridas a Internet. Siendo el software llamado TCP/IP de dominio

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Glosario

Anotaciones

Bibliografía

61


s

s

o

62

Actividades

Autoevaluación

Glosario

Bibliografía

Anotaciones

UNIDAD III: HERRAMIENTAS DE SOFTWARE

público y la tecnología básica descentralizada y anárquica por propia naturaleza, era muy difícil parar a la gente e impedir que se conectara. De hecho, nadie quería impedir a nadie la conexión a esta compleja ramificación de redes que llegó a conocerse como “Internet”. Conectarse a Internet costaba al contribuyente muy poco o nada desde que cada nodo era independiente y tenía que arreglárselas con la financiación y los requerimientos técnicos. Cuantos más, mejor. Como la red telefónica, la red de ordenadores era cada vez más valiosa según abarcaba grandes extensiones de terreno, gente y recursos. Un fax solo es útil si alguien más tiene un fax. Mientras tanto no es más que una curiosidad. ARPANET, también, fue una curiosidad durante un tiempo. Después la red de ordenadores se convirtió en una necesidad importante. En 1984 la Fundación Nacional para la Ciencia (National Science Foundation, NSF) entró en escena a través de su Oficina de Computación Científica Avanzada (Office of Advanced Scientific Computing). La nueva NSFNET supuso un paso muy importante en los avances técnicos conectando nuevas, más rápidas y potentes supercomputadoras a través de enlaces más amplios, rápidos, actualizados y expandidos según pasaban los años, 1986, 1988 y 1990. Otras agencias gubernamentales también se unieron: NASA, los Institutos Nacionales de la Salud, el Departamento de Energía, cada uno manteniendo cierto poderío digital en la confederación Internet. Los nodos de esta creciente red de redes se dividían en subdivisiones básicas. Los ordenadores extranjeros y unos pocos americanos eligieron ser denominados según su localización geográfica. Los otros fueron agrupados en los seis “dominios” básicos de Internet: gov, mil, edu, com, org y net (estas abreviaturas tan sosas pertenecen al estándar de los protocolos TCP/IP). Gov, Mil y Edu definen al gobierno, militares e instituciones educativas, las cuales fueron, por supuesto, pioneras de la ARPANET que comenzó como un experimento de alta tecnología en seguridad nacional. Com, sin embargo, definía a instituciones “comerciales”, que enseguida entraron a la red como toros de rodeo rodeadas por una nube de entusiastas organizaciones sin ánimo de lucro (los ordenadores tipo “net” servían como pasarelas entre redes). La red ARPANET propiamente dicha expiró en 1989 como víctima feliz de su éxito abrumador. Sus usuarios apenas se dieron cuenta, pero las funciones de ARPANET no solo continuaron sino que mejoraron firmemente. El uso del estándar TCP/IP para redes es ahora algo global. En 1971, hace 21 años, sólo había cuatro nodos en la ARPANET. Hoy existen decenas de miles en Internet esparcidos por cuarenta y dos países y muchos más que se conectan cada día. Tres millones de personas, posiblemente cuatro, usan esta gigantesca madre-de-todas-las-redes. Internet es especialmente popular entre los científicos y es probablemente su instrumento más importante de finales del siglo XX. Las posibilidades de acceso tan potente y sofisticado que ofrece a datos específicos y a la comunicación personal ha elevado la marcha de la investigación científica enormemente. El índice de crecimiento de Internet a comienzo de los ‘90 es espectacular, casi feroz. Se extiende más rápidamente que los teléfonos móviles y que el fax. En el año 1991 Internet crecía a un ritmo del 20% mensual. El número de ordenadores con conexión directa al TCP/IP se ha estado doblando anualmente desde 1988. Internet desplazó su origen militar y científico a las escuelas de enseñanza básica e institutos, al mismo tiempo que a bibliotecas públicas y el sector comercial. ¿Por qué la gente quiere estar “en la internet”? Una de las principales razones es simplemente la libertad. Internet es un raro ejemplo de anarquía verdadera, moderna y funcional. No existe Internet S.A. No hay censores oficiales, ni jefes, ni junta directiva, ni accionistas. En principio, cualquier nodo puede hablar de igual a igual a otros nodos siempre que obedezcan las leyes del protocolo TCP/IP, leyes que no son políticas sino estrictamente técnicas. (Ha existido controversia sobre el uso comercial de Internet, pero esta situación está cambiando según los negocios


UNIDAD III: HERRAMIENTAS DE SOFTWARE

Desarrollo de contenidos

Lecturas seleccionadas

proporcionan sus propios enlaces y conexiones.)

Internet también es una ganga. Internet en conjunto, a diferencia del sistema telefónico, no cuesta dinero según las distancias. Y a diferencia también de la mayoríaRecordatorio de las redes comerciales, no se cobra por tiempo de conexión. De hecho, “Internet” de por sí, que ni siquiera existe como una entidad, no cobra nada por nada. Cada grupo de personas que accede a Internet es responsable de su propio equipo y contenido. La “anarquía” de Internet puede parecer extraña o incluso poco natural, pero tiene cierta profundidad y sentido. Es como la “anarquía” del idioma inglés. Nadie alquila el inglés y nadie lo posee. Depende de uno mismo aprender hablar inglés correctamente y usarlo para lo que uno quiera. El interés pertenece a todos y a nadie. A pesar de esto, hay quién tiene intereses en Internet. Los negociantes quieren que Internet tenga una base financiera. Los gobernantes la quieren más regulada. Los académicos la quieren para fines de investigación. Los militares para la seguridad. Y así muchos más. Todas estas fuentes de conflicto permanecen en torpe equilibrio, e Internet, hasta ahora, se mantiene en próspera anarquía a pesar de recientes conflictos por la publicación de leyes como la SINDE o la ley SOPA. Hoy, incluso ordenadores móviles privados pueden convertirse en nodos de Internet. 1 DIRECCIONES IP 1.1. Protocolo IP Es un conjunto de reglas técnicas que definen como se comunican los equipos de una red. En la actualidad existen 2 versiones: IP versión 4 y IP versión 6. El IPv4 fue la primera versión del Internet Protocol que es usado en todo el mundo, especialmente en ámbitos de redes locales. Debido a su limitación en la cantidad de direcciones se plantearon nuevas versiones del protocolo. El IPv6 es el nuevo sistema de numeración que permitió tener un conjunto mayor de direcciones posibles que el IPv4. Desarrollado en 1999 empieza poco a poco a insertarse y utilizarse para la solución de las necesidades actuales y futuras. La mayor diferencia entre los protocolos es la cantidad de direcciones IP. Siendo 4,294,967,296 para IPv4 y 340,282,366,920,938,463,463,374,607,431,768,211,456 para IPv6. El principio técnico del funcionamiento de las dos versiones permanece intacto. Muchos equipos soportan la implementación de ambos tipos. A continuación se muestra algunas de las características de cada versión: IPv4

IPv6

DESPLIEGUE

1981

1999

TAMAÑO

32 bits

128 bits

FORMATO

Notación decimal: 192.168.25.75

Notación hexadecimal: 3FFE:F200:0234:AB00:0123:4567:8901:ABCD

PREFIJOS

192.168.25.75/24

3FFE:F200:0234::/48

# DIRECCIONES

232

2128

1.2. Los Puertos Tanto TCP como UDP utilizan puertos para pasarse información con las capas superiores. Con la definición de un puerto, es posible acceder a un mismo destino, un host, y aplicar sobre él distintos servicios.

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Glosario

Anotaciones

Bibliografía

63


s

s

o

64

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD III: HERRAMIENTAS DE SOFTWARE

Con la utilización de los puertos los servidores son capaces de saber qué tipo de petición a nivel de aplicación le están solicitando, si es http o ftp, y pueden mantener más de una comunicación simultánea con diferentes clientes. Anotaciones

Si se quiere acceder a la un sitio web como www.elgranyeoz.org cuya IP sería 120.40.142.205, este se accede por el puerto 80, lo que se lee como la dirección: 120.40.142.205:80 quedando claro su destino como servidor web. Para poder mantener una coherencia en los números de los puertos la IANA, organismo internacional regulador, establece que los puertos inferiores a 1024 se utilizan para los servicios comunes y el resto de números de puertos es para asignaciones dinámicas de programas o servicios particulares. A continuación se listan los puertos más utilizados: PUERTO

NOMBRE PROTOCOLO

FUNCIÓN

7

echo

20

Protocolo de transferencia de archivos (FTP)

21

Control de FTP

22

Shell segura (SSH)

23

Telnet

25

Protocolo simple de transMail (para enviar correo electrónico) ferencia de correo (SMTP)

53

Sistema de nombres de dominio (DNS)

MacDNS, FaceTime

67

Servidor de protocolo de inicio (BootP, bootps)

NetBoot vía DHCP

68

Cliente de protocolo de inicio (bootpc)

NetBoot vía DHCP

70

Finger World Wide Web, MobileMe, QuickTime Installer, iTunes Store y Radio, Actualización de Software, RAID Admin, Backup, publicación de calendarios iCal, iWeb, WebDAV (iDisk), Final Cut Server, AirPlay, Recuperación de OS X Lion por Internet, Gestor de Perfiles.

80

Protocolo de transferencia de hipertexto (HTTP)

110

Protocolo de oficina de correos (POP3) Mail (para enviar correo electrónico) Protocolo de oficina de correos autenticado (APOP)

115

Protocolo de oficina de correos (POP3) Protocolo de oficina de correos autenticado (APOP)

143

Protocolo de acceso a men- Mail (para recibir correo electrónico); cosajes de Internet (IMAP) rreo de MobileMe (IMAP)

161

Protocolo simple de administración de red (SNMP)

380

Protocolo ligero de acceso a directorios (LDAP)

Usado por aplicaciones que buscan direcciones, como Mail y Agenda.

427

Protocolo de ubicación de servicios (SLP)

Network Browser

443

Secure Sockets Layer (SSL o “HTTPS”)

Sitios web TLS, iTunes Store, FaceTime, Game Center, MobileMe (autenticación, iDisk, sincronización iDisk y sincronización con MobileMe), AirPlay, Recuperación de OS X Lion por Internet, Gestor de Perfiles.

636

LDAP seguro

993

Mail IMAP SSL

995

Mail POP SSL

Nota: algunas autoridades hacen referencia a un “protocolo simple de transferencia de archivos” o “protocolo seguro de transferencia de archivos” en este puerto.

Correo de MobileMe (SSL IMAP)


UNIDAD III: HERRAMIENTAS DE SOFTWARE

Desarrollo de contenidos

2 OTRAS TECNOLOGÍAS 2.1. Protocolos de Comunicación

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

Para poder enviar información entre dos equipos, es necesario que ambas estaciones puedan intercambiar datos entre ellas. A este medio se le llamará protocolo.

Los protocolos más representativos que figuran en la capa de Aplicación de la torre TCP/IP son: • File Transfer Protocol (FTP) • Hypertext Transfer Protocol (HTTP) • Simple Mail Transfer Protocol (SMTP) • Domain Name System (DNS) • Trivial File Transfer Protocol (TFTP) Los protocolos de la capa de Transporte son: • Transport Control Protocol (TCP) • User Datagram Protocol (UDP) El protocolo de dirección es: • Internet Protocol (IP) 2.2. El Protocolo HTTP El funcionamiento de los sitios web se basa en dos tecnologías fundamentales: el protocolo HTTP y el lenguaje HTML. El HyperText Transfer Protocol permite una implementación simple y sencilla de un sistema de comunicaciones que nos permite enviar cualquier tipo de ficheros de una forma fácil, simplificando el funcionamiento del servidor. El HyperText Markup Language nos proporciona un mecanismo de composición de páginas enlazadas simple y fácil, altamente eficiente y de uso muy simple. El protocolo HTTP es el protocolo base de la WWW. Se trata de un protocolo simple, orientado a conexión y sin estado. La razón de que esté orientado a conexión es que emplea para su funcionamiento un protocolo de comunicaciones (TCP) de modo conectado, un protocolo que establece un canal de comunicaciones de extremo a extremo (entre el cliente y el servidor) por el que pasa el flujo de datos que constituyen los datos que hay que transferir, en contraposición a los protocolos de datagrama o no orientados a conexión que dividen los datos en datagramas y los envían, pudiendo llegar por vías diferentes del servidor al cliente. El protocolo no mantiene estado, es decir, cada transferencia de datos es una conexión independiente de la anterior, sin relación alguna entre ellas, hasta el punto de que para transferir una página web tenemos que enviar el código HTML del texto, así como las imágenes que la componen, pues en la especificación inicial de HTTP, la 1.0, se abrían y usaban tantas conexiones como componentes tenía la página, transfiriéndose por cada conexión un componente (el texto de la página o cada una de las imágenes). Existe una variante de HTTP llamada HTTPS (Secure) que utiliza el protocolo de seguridad SSL (Secure Socket Layer) para cifrar y autenticar el tráfico entre cliente y servidor, siendo ésta muy usada por los servidores web de comercio electrónico, así como por aquellos que contienen información personal o confidencial. De manera esquemática, el funcionamiento de HTTP es el siguiente: el cliente establece una conexión TCP hacia el servidor, hacia el puerto HTTP (o el indicado en la dirección de conexión), envía un comando HTTP de petición de un

Bibliografía

65


s

s

o

66

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD III: HERRAMIENTAS DE SOFTWARE

recurso (junto con algunas cabeceras informativas) y por la misma conexión el servidor responde con los datos solicitados y con algunas cabeceras informativas. Anotaciones

2.3. El Lenguaje HTML Se trata de un lenguaje de marcas (<…> ó </…>) que nos permite representar de forma rica el contenido y también referenciar otros recursos como imágenes u objetos, enlaces a otros documentos, mostrar formularios para posteriormente procesarlos, etc. El lenguaje HTML actualmente se encuentra en el borrador de la versión 5 y empieza a proporcionar funcionalidades más avanzadas para crear páginas más ricas en contenido. Además se ha definido una especificación compatible con HTML, el XHTML (Extensible HyperText Markup Language) que se suele definir como una versión XML validable de HTML, proporcionándonos un XML Schema contra el que validar el documento para comprobar si está bien formado, etc. 2.4. Desarrollo de Aplicaciones Web Inicialmente la web era simplemente una colección de páginas estáticas, documentos, etc., que podían consultarse o descargarse. El siguiente paso en su evolución fue la inclusión de un método para confeccionar páginas dinámicas que permitiesen que lo mostrado fuese dinámico (generado o calculado a partir de los datos de la petición). Dicho método fue conocido como CGI (Common Gateway Interface) y definía un mecanismo mediante el cual podíamos pasar información entre el servidor HTTP y programas externos. Los CGI siguen siendo muy utilizados, puesto que la mayoría de los servidores web los soportan debido a su sencillez. Además, nos proporcionan total libertad a la hora de escoger el lenguaje de programación para desarrollarlos. El esquema de funcionamiento de los CGI tenía un punto débil: cada vez que recibíamos una petición, el servidor web lanzaba un proceso que ejecutaba el programa CGI. Como, por otro lado, la mayoría de CGI estaban escritos en algún lenguaje interpretado (Perl, Python, etc.) o en algún lenguaje que requería run-time environment (VisualBasic, Java, etc.), esto implicaba una gran carga para la máquina del servidor. Además, si la web tenía muchos accesos al CGI, esto suponía problemas graves. Por ello se empiezan a desarrollar alternativas a los CGI para solucionar este grave problema de rendimiento. Las soluciones vienen principalmente por dos vías. Por un lado se diseñan sistemas de ejecución de módulos más integrados con el servidor, que evitan que éste tenga que instanciar y ejecutar multitud de programas. La otra vía consiste en dotar al servidor de un intérprete de algún lenguaje de programación (RXML, PHP, VBScript, etc.) que nos permita incluir las páginas en el código de manera que el servidor sea quien lo ejecute, reduciendo así el tiempo de respuesta. A partir de este momento, se vive una explosión del número de arquitecturas y lenguajes de programación que nos permiten desarrollar aplicaciones web. Todas ellas siguen alguna de las dos vías ya mencionadas. De ellas, las más útiles y las que más se utilizan son aquellas que permiten mezclar los dos sistemas, es decir, un lenguaje de programación integrado que permita al servidor interpretar comandos que incrustemos en las páginas HTML y un sistema de ejecución de programas más enlazado con el servidor que no presente los problemas de rendimiento de los CGI. Otra de las tecnologías que más éxito ha obtenido y una de las que más se utiliza en Internet es el lenguaje de programación interpretado por el servidor PHP. Se trata de un lenguaje que permite incrustar HTML en los programas, con una sintaxis que proviene de C y Perl.


o os

as

io

UNIDAD III: HERRAMIENTAS DE SOFTWARE

Desarrollo de contenidos

Diagrama

Objetivos

Desarrollo de contenidos

Actividades

Objetivos Lecturas seleccionadas

Inicio

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

ACTIVIDAD N° 3: Autoevaluación

Esta actividad puede consultarla en su aula virtual. Inicio Glosario

Bibliografía

AUTOEVALUACIÓN DE LA UNIDAD N° III Actividades Recordatorio

Autoevaluación Anotaciones

1) Es un elemento de almacenamiento de datos similar a una BD. a) CSV

Glosario

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

b) Hoja impresa

Bibliografía

c) Impresora d) HDD Anotaciones

2) El ___________________ tiene el propósito de brindar las herramientas para la manipulación de la Base de Datos. 3) Es el profesional que se encarga de administrar la BD. a) BDA b) DBA c) ADB d) DAB 4) El ___________________ es el elemento usado para acelerar la búsqueda de estructuras de BD y tablas grandes. 5) Es conocido como el lenguaje que permite el almacenamiento de los datos en las tablas de la BD a) VDL b) DLL c) DDL d) SDL 6) En la arquitectura ___________________ existe un computador central que mantiene a la base de datos, a la que consultan otros computadores en la red de forma remota o local. 7) Señale una característica incorrecta del software a) No se degrada. b) Se manufactura. c) Representa la parte lógica. d) Responde a una necesidad. 8) ___________________ es un tipo de software que se encuentra almacenado directamente en un circuito electrónico. 9) ¿Cuál es el la razón del inicio de un proyecto de software? a) La moda. b) La innovación. c) La necesidad. d) El cambio.

Bibliografía

67


s

s

o

68

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD III: HERRAMIENTAS DE SOFTWARE

10) El SEI creó IMCM que en su nivel ___________________ en el que el software está adaptado al conjunto de procesos estándar de la organización y contribuye a su mejora. Anotaciones

11) Es el nivel IMCM en el que se satisface solo las metas específicas. a) Realizado. b) Mejorado. c) Definido. d) Incompleto. 12) ___________________ es el modelo que plantea un desarrollo lineal del proyecto. 13) Es la etapa que define el inicio del proyecto y la definición de los requerimientos. a) Inicio. b) Comunicación. c) Diseño. d) Despliegue. 14) ___________________ es un modelo o un software parcialmente terminado que ayuda a entender el resultado final. 15) Es un modelo iterativo y que puede contar con varios ciclos de producción: a) Piramidal. b) Continuo. c) Cónico. d) Espiral. 16) La visión de la simplicidad como elemento esencial de un proyecto de software es propio de las ___________________. 17) Es la red creada a inicios de los 70 con fines militares a) DARPA b) ARPANET c) CYCLADES d) RAND 18) __________________ es un ejemplo de una dirección IPv4 con prefijo 24. 19) Es la tecnología utilizada para la transferencia de archivos en el internet. a) UDP b) STP c) FTP d) HTTP 20) ___________________ es el protocolo utilizado para transferir un contenido de una página web.


Diagrama

Objetivos

Inicio

Desarrollo de contenidos

Actividades

Autoevaluación

UNIDAD III: HERRAMIENTAS DE SOFTWARE

Desarrollo de contenidos

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

LECTURA SELECCIONADAS Lecturas seleccionadas

Glosario

Bibliografía

1. CASO: SISTEMA SANITARIO CON WEB 3.0 Mayol, J. (2012, Feb 06). Cambiando nuestro sistema sanitario con computación en la nube y web 3.0. DiarioAnotaciones Médico, pp. 17 Recordatorio Internet tiene sus riesgos y sus beneficios, pero es innegable que los segundos son mucho mayores que los primeros. De esas ventajas que aporta la Red se pueden aprovechar todos los sectores. La Sanidad es uno de ellos, y su preocupante sostenibilidad es uno de los factores que más lo puede agradecer con un paso más: el cloud computing y la Web 3.0. Recientemente se ha celebrado con una gran participación de estudiantes el curso Comunicación y Salud enfocado a la Salud 2.0 en la Facultad de Ciencias de la Información de la Universidad Complutense de Madrid, con la colaboración de la Fundación Abbott y MadridSalud, lo que demuestra que existe un interés académico por la utilización de los social media aplicados al sector Salud en asistencia, docencia, investigación y gestión. Así, en los últimos ocho años, desde que Tim O’Reilly acuñara el término Web 2.0, se han popularizado conceptos y términos como eSalud, Salud 2.0 y m-Salud. Y todos los actores del sistema han visto una oportunidad, al intuir un gran negocio en la distribución de servicios a grandes grupos, de una manera rápida y sencilla. Ha resultado fácil para todos hacer la ecuación web 2.0 en salud = más servicios x menos gasto. Más aún cuando existe la convicción de que el sistema sanitario está en crisis y resulta difícilmente sostenible. Como consecuencia, están proliferando soluciones 2.0, que consumen poco tiempo en su desarrollo y que en el ámbito asistencial van enfocadas fundamentalmente a eso que se llama “promoción de la salud” y “gestión de pacientes crónicos”. Lamentablemente, con excelentes excepciones (O-Sarean u Osakidetza), la mayoría de los proyectos no pasan de ser estudios piloto o acciones concretas de profesionales sanitarios o de grupos de pacientes. ¿Por qué las soluciones 2.0 no están aumentando los servicios y disminuyendo el gasto en salud de la manera que se esperaba? A mi entender, por varias barreras: 1. Arquitectura: el sistema sanitario se estructura sobre conceptos que han cambiado: salud e información. Actualmente la salud es vista como la capacidad del individuo para gestionar su propia vida (según Alejandro Jadad). Por otro lado, la información sanitaria, que era materia reservada a la que sólo tenían acceso los profesionales, tiende a difundirse masivamente en internet. Con información, el ciudadano ya no es un sujeto pasivo.2. Falta de interoperabilidad: el sistema sanitario en su conjunto no utiliza un sistema operativo compatible entre sí y con el 2.0. Se utilizan diferentes lenguajes entre profesionales, gestores, políticos, ciudadanos...3. Consumo de recursos: la conversación entre seres humanos consume recursos, sobre todo tiempo, independientemente de cuál sea la herramienta. De manera que, a más conversación, más recursos dedicados, sin poder eliminar los que hay que dedicar al sistema tradicional. 4. Antivirus: el aumento de los canales de comunicación abre vías para la parasitación. Esto genera precaución entre los administradores del sistema, que se deciden a implantar antivirus -bloqueo de puertos de acceso y de aplicaciones- que hacen imposible que el sistema operativo corra. 5. Firewalls: en sanidad, las leyes y los procesos administrativos vigentes están pensados para un sistema basado en la imprenta, no en la digitalización de la información. 6. Hardware: cambiar el papel por ordenadores y software no es barato. Con el modelo actual no es posible adquirir ni las infraestructuras ni los dispositivos necesarios para hacer realidad la Salud 2.0.7. Humanware: incluso a finales de 2011, a la mayoría de los usuarios del sistema y a muchos de los profesionales ni les interesa ni les importa la Salud 2.0 ni la manera en que se consiga aumentar la productividad, la eficiencia y la calidad del sistema sanitario. Están interesados en el resultado final, no en las herramientas para conseguirlo. Así las cosas, no podemos detenernos. Si no queremos reducir ni la calidad ni la cantidad de los servicios sanitarios prestados, a la vez que mantenemos las cuotas de equidad actuales, no queda más remedio que cambiar el funcionamiento de nuestro SNS y apostar por las tecnologías de la información y de la comunicación (TIC) en el ámbito sanitario. Y si la Web 2.0 no va a ser la solución, tendremos que buscar herramientas que aumenten las prestaciones, con una reducción drástica en los costes, de manera ubicua y que faciliten la gestión de las cantidades ingentes de información que se genera en la atención sanitaria. Y para ello ayudaría el desarrollo de la computación en nube (cloud computing) y de la Web

Bibliografía

69


s

s

o

70

Actividades

Autoevaluación

Glosario

Bibliografía

Anotaciones

UNIDAD III: HERRAMIENTAS DE SOFTWARE

3.0 (inteligencia artificial, web semántica y web 3D).La computación en nube, con la estructura XaaS (X as a Service, “todo como un servicio” en internet) serviría para que el sistema sanitario tuviera acceso a las mejores aplicaciones informáticas, compartidas desde cualquier punto, con cualquier hardware, en cualquier momento y sin necesidad de hacer inversiones insoportables de inicio ni de mantenimiento en servidores y software. Se podrían solucionar los problemas de interoperabilidad, y la ubicuidad en el acceso a la información se convertiría en realidad. De esa manera sería posible usar los servicios deseados, pagando por consumo y optimizando la gestión de procesos como documentación, admisión y codificación, gestión económica y formación continuada del profesional. Pero habría que disponer de infraestructuras a la altura de las necesidades del tráfico de datos generado. Web 3.0En cuanto a la Web 3.0 -término acuñado por Jeffrey Zeldman-, se trata de una evolución de internet en la que los sistemas expertos proveerían de inteligencia artificial (por ejemplo, capacidad de predecir resultados en salud a partir de la información suministrada), y la web semántica maneja la información de forma autónoma mediante agentes inteligentes, es decir, software capaz de buscar información sin operadores humanos. Además, la presentación de las imágenes evolucionaría hacia las tres dimensiones. Globalmente, sería posible responder a las crecientes demandas de información por parte de los usuarios y liberaría tiempo de los profesionales para dedicarlo a la conversación con los pacientes y no a la burocracia. Para finalizar, tan importante como todo lo anterior es conseguir la innovación social que haga posible la asunción por todos los agentes, desde políticos hasta usuarios, de los nuevos paradigmas. Cierto que los cambios vienen cargados de riesgos que hay que entender y afrontar, porque no hay acción humana que merezca la pena y tenga un riesgo nulo. CIRUJANO DEL HOSPITAL CLÍNICO SAN CARLOS, EN MADRID Si no queremos reducir ni la calidad ni la cantidad de los servicios prestados, no queda más remedio que apostar por las TIC sanitarias. Los cambios vienen cargados de riesgos que hay que entender y afrontar, porque no hay acción humana que merezca la pena y tenga un riesgo nulo

2. OPORTUNIDAD: TRABAJAR CON LA NUBE Carbajal, O. (2011, Nov 28). Falta talento para explotar la nube. Reforma, pp. 7. Poco más de la mitad del personal de Tecnologías de la Información (TI) de las empresas mexicanas cuenta con poca o nula preparación para la implementación de servicios en la nube, de acuerdo con la Encuesta sobre el Estado de la Nube en América Latina (AL), realizada por Symantec. El director de ingeniería de Symantec Latinoamérica Nicolás Severino consideró que, hasta cierto punto, es normal la inexperiencia y falta de capacitación de los profesionales en TI, ya que el cómputo en la nube es una tecnología relativamente nueva. “Por cifra puede ser alarmante, pero cuando lo ponemos en el contexto de que es una tecnología nueva, que la historia del cómputo en la nube apenas se está escribiendo, hay cierta congruencia entre la realidad de los datos y la expectativa”, aseguró. A causa de la inexperiencia del personal, el 81 por ciento de las empresas en el País se ha visto en la necesidad de contratar servicios de consultoría para la mejor implementación o mejora de sus servicios en la nube. “Las organizaciones están conscientes de la falta de experiencia de su personal y están buscando la ayuda necesaria. El 81 por ciento de las empresas en México que usan servicios en la nube han contratado consultoría externa, porcentaje mayor al resto de América Latina, en donde es del 66 por ciento”, explicó. El director regional de ingeniería de Symantec aseguró que el porcentaje de desconocimiento en México no es muy diferente con respecto al resto del mundo, en donde el promedio de inexperiencia se encuentra entre el 40 y 50 por ciento, por lo que en un mediano plazo se llegará a un punto de equilibrio, según prevé.


UNIDAD III: HERRAMIENTAS DE SOFTWARE

Desarrollo de contenidos

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

Debido a la reciente adopción y cierto desconocimiento del alcance de los servicios en la nube, el 89 por ciento de los encuestados en América Latina dijo esperar que la nube mejorara su agilidad de TI, pero sólo ocurrió en 47 por ciento de los casos. Ante esto, Nicolás Severino recomendó a las empresas conocer claramente los niveles de información e infraestructura que desean alcanzar para establecerlos como objetivos manejables y razonables. “Cuando hay incertidumbre sobre algún producto o servicio hay expectativas muy altas con respecto a lo que se podría lograr con ellos, los objetivos planteados hasta el momento para la nube son muy altos, son posibles, pero hay que seguir un proceso para alcanzarlos, es complicado llegar a lo máximo de inmediato”. Severino invitó al 20 por ciento de empresas que aún no se plantean la utilización de servicios en la nube a hacerlo pronto pues, dijo, está revolucionando la menara de trabajar. ¿Cómo va la nube? Cifras de la Encuesta sobre el Estado de la Nube en AL. 17% de las empresas dijo tener personal sumamente preparado en servicios en la nube. 76% reconoció que el dinero es el principal obstáculo de adopción. 1 de cada cuatro empresas está en una fase de implementación. 15 por ciento se encuentra en proceso de planeación. 20 por ciento aún no considera contratar servicios en la nube.

3. FUTURO DE LAS REDES SOCIALES Herrera, X. (2011, May 11). Detallan el futuro de redes sociales. El Norte, pp. 2 El papel de las últimas tecnologías a través de Internet y las redes sociales en la construcción de las sociedades del futuro se analizó hoy en la sede de la Unesco por periodistas, comunicadores, directivos de las telecomunicaciones y especialistas en derechos humanos y activistas por una democracia ciudadana. El coloquio, moderado por el periodista español Iñaki Gabilondo ante un centenar de personas, clausuró dos jornadas de reflexión sobre el “nuevo humanismo” celebradas en la Unesco a iniciativa de la plataforma “Nunc!” y gracias al apoyo de España. “El mundo de estas nuevas tecnologías acaba de comenzar” y “es mucho más claro que nos estamos moviendo que hacia dónde nos estamos moviendo”, señaló Gabilondo al abrir el debate. El periodista subrayó que se emiten “infinitas señales” que aún no se han transformado en “nuevas estructuras” y que esa “nueva realidad” que germina debe de ser sometida a una “autocrítica”. Cuando se cumplen exactamente 6 meses del nacimiento del movimiento 15-M, Gabilondo reivindicó, además, el papel de la política para que los ciudadanos puedan decidir el rumbo de las posibilidades que abre la nueva realidad. El periodista se preguntó si “no se ha dado demasiado rápido por supuesto que las redes sociales no son algo más que una herramienta”.

Bibliografía

71


s

s

o

72

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD III: HERRAMIENTAS DE SOFTWARE

En ese sentido la ex responsable de Google para España, Isabel Aguilera, recordó que “la tecnología no es buena o mala en sí misma” y reivindicó la necesidad de mejorar la “educación para distinguir lo que es información de lo que no lo es”. Anotaciones

Entre los peligros que atisba Aguilera se cuenta el evitar que se formen “nuevas clases sociales” en base al “conocimiento”, la necesidad de actualizar la justicia a los nuevos tiempos y de innovar “dentro de la innovación” para garantizar la seguridad y la privacidad de los ciudadanos porque “los efectos colaterales sí importan”. Aguilera, además, señaló que el soporte económico de todos esos medios no puede ser solamente la publicidad, por lo que abogó por fomentar la “exploración de modelos de negocios alternativos”. Invitado como representante del 15-M, el abogado Fabio Gándara, comentó que España, a través de ese movimiento, es la “directa heredera” de la utilización de las redes sociales que se hizo durante la “primavera árabe”. Gándara, que defendió el papel de las últimas tecnologías como instrumento para acceder a mayores cotas de libertad y de transparencia, agregó que fue necesaria una “conciencia previa de que algo funciona mal en nuestras democracias”, que después se ha canalizado a través de las redes sociales. Más escéptico con la supuesta bonanza automática de las redes sociales se mostró el periodista francés de “Le Point” François Malye, quien dijo que internet es una “formidable ilusión de transparencia” y abogó por habilitar mecanismos jurídicos para garantizar la transparencia. “Imagino que internet y el teléfono móvil es el sueño de aquellos que quieren vigilarnos”, añadió el periodista galo, que compartió mesa con la comunicadora española Mercedes Milá. El especialista británico en derechos humanos Sameer Padania, por su parte, abrió la reflexión a las transformaciones que acarrea la creciente presencia de cámaras de fotos y de vídeo en nuestro entorno, tanto en la vida cotidiana de los ciudadanos como en sucesos como las grabaciones de los últimos instantes del dictador libio Muamar el Gadafi. El responsable de información y comunicación en esa agencia de las Naciones Unidas, Janis Karklins se refirió a los desafíos a los que habrá que hacer frente en el mundo 2.0. Diagrama

Objetivos

Inicio

La libertad de prensa afrontará nuevos retos en el futuro, tales como el ciber espionaje o el ciber crimen, añadió Karklins, quien apuntó que “los proveedores de internet tendrán un importante papel que desempeñar”.

Desarrollo de contenidos

Actividades

Autoevaluación

Lecturas seleccionadas

Glosario

Bibliografía

BIBLIOGRAFIA DE LA UNIDAD III:

Navathe, R. E. (2007). Fundamentos de Sistemas de Bases de Datos. Madrid: Addison Diagrama Objetivos Inicio Wesley. Recordatorio

Anotaciones

Gradín, C. (2004). Internet, Hackers y Software Libre. Argentina: Editora Fantasma. Pressman, R. S. (2010). Ingeniería del Software. Mexico: Mc Graw Hill. Desarrollo de contenidos

Actividades

Autoevaluación

LECTURA SELECCIONADAS Lecturas seleccionadas

Glosario

Bibliografía

Mayol, J. (2012, Feb 06). Cambiando nuestro sistema sanitario con computación en la nube y web 3.0. Diario Médico, pp. 17. Recordatorio

Anotaciones

Carbajal, O. (2011, Nov 28). Falta talento para explotar la nube. Reforma, pp. 7. Herrera, X. (2011, May 11). Detallan el futuro de redes sociales. El Norte, pp. 2


UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Desarrollo de contenidos

Diagrama

Desarrollo de contenidos

Diagrama Lecturas seleccionadas

Desarrollo de contenidos Recordatorio

Objetivos

Inicio

Actividades

Glosario

Recordatorio

Anotaciones

Autoevaluación

DIAGRAMA DE PRESENTACIÓN DE LA UNIDAD Objetivos Glosario

Inicio Bibliografía

Actividades

Autoevaluación

Anotaciones

Glosario

EJEMPLOS

ACTIVIDADES

Bibliografía

BIBLIOGRAFÍA Recordatorio

Lecturas seleccionadas

UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

CONTENIDO Lecturas seleccionadas

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

AUTOEVALUACIÓN

Anotaciones

CONOCIMIENTOS

PROCEDIMIENTOS

ACTITUDES

Tema N°1: Introducción al diseño de algoritmos. 1. Programa de Computador 2. El proceso de Abstracción 3. El Algoritmo 4. Estructuras de control

1. Aplica el proceso de abstracción en su entorno, vida diaria y cada oportunidad que tenga.

1. Investiga constantemente sobre los temas que no entiende bien o que desea profundizar,

2. Comprende el uso de estructuras escritas y gráficas para la presentación Tema N°2: Introducción a un de un algoritmo.

2. Revisa los contenidos anteriores constantemente para consolidar sus conocimientos.

lenguaje de programación 1. El lenguaje de programación Phyton, 2. Mi primer programa en Phyton, 3. Tipado de Variables 4. Colecciones de Datos 5. Estructuras de control 6. Implementación de Funciones 1. Entrada / Salida y Ficheros

3. Perseverancia al intentar y sobreponer el fracaso Actividad N° 1 y procura continuar hasta Elaboración de algoritmos obtener la solución de los sobre actividades cotidianas. problemas. 3. Prueba las herramien4. Se concentra en los tas del programa Phyton, ejercicios únicamente, a través de ensayo/error evitando las distracciones al para una exploración más momento de elaborarlos. profunda. 5. Practica constantemen4. Conoce las estructuras te los ejercicios, logrando y funciones básicas del cierta soltura en su elaboralenguaje Phyton. ción y siendo incluso capaz de plantear soluciones distintas. Actividad N° 2 6. Utiliza la objetividad Elaboración de aplicacioy evita un juicio erróneo nes programadas básicas. basado en creencias no comprobadas Tarea Académica Nº 2

Lectura seleccionada 1: La Inteligencia Artificial nos Rodea; Marino, F. Lectura seleccionada 2: El Mercado Creciente de Aplicaciones Móviles; Cruz, A. Autoevaluación N° 4

Bibliografía

73


s

s

o

74

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

TEMA 1 INTRODUCCIÓN AL DISEÑO DE ALGORITMOS

Anotaciones

La abstracción del mundo real es necesaria en el proceso de construcción de un modelo, especialmente si este ha de servir para la construcción de un algoritmo que se convertirá en una aplicación de software. En las siguientes páginas revisaremos el proceso simplificado de planteamiento de algoritmos.

1 PROGRAMA DE COMPUTADOR 1.1. ¿Qué es un Programa? Un programa es un conjunto de instrucciones, ejecutables sobre una computadora, que tienen un propósito bien definido e intentan cumplirlo bien. Es así que el logro de satisfacer una necesidad o requerimiento es parte de la naturaleza de un programa. (Equipo LIDI, 2001) Es común que un programa alcance su objetivo en un tiempo finito. Sin embargo, se puede tener aplicaciones que van evolucionando adaptándose al requerimiento, que no deja de ser constante.

Recuerde que un programa es un conjunto de instrucciones, ejecutables y que obedece a la satisfacción de una necesidad. Un programa puede no tener errores de ejecución es decir estar escrito en un lenguaje de programación y no lanzar errores de funcionamiento, pero podría a la vez no cumplir con los requerimientos solicitados, por lo que sería incorrecto. Un ejemplo puede ser la siguiente aplicación que pretende repartir las cartas para un juego de casino a los dos jugadores: iniciar repetir hasta total_cartas_en_maso = 0 coger_carta_maso dar_carta_jugador1 coger_carta_maso dar_carta_jugador2 fin El programa anterior no posee errores o imposibilidades pero no cumple el propósito y termina acabando con todas las cartas del maso. Pero el siguiente ejemplo estaría mejor escrito: iniciar repetir 5 coger_carta_maso dar_carta_jugador1


UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Desarrollo de contenidos

coger_carta_maso

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

dar_carta_jugador2 fin En el ejemplo anterior, la interacción no contiene errores y se cumple con el requerimiento de repartir 5 cartas a cada jugador para que puedan iniciar el duelo. 1.2. Consideraciones de Juicio Suele ser difícil representar datos reales en modelos que se puedan escribir en una computadora. Esto en parte debido a que el computador no comprende más que instrucciones secuenciales sin juicio y que terminan traduciéndose en bits. Mientras más complejo un dato, se requieren más unidades para interpretarlo. Una letra requiere solo de 1 byte pero una imagen podría requerir de varios kilobytes o incluso megabytes, es mucha información, que cuidadosamente es interpretada por el Sistema Operativo y mostrada en pantalla. Un programa es similar, cada una de las instrucciones detallara un comportamiento que desencadenara órdenes en el sistema que deberán ser comprendidas por el usuario. La función especial del analista y el programador son la de explotar la potencialidad de las computadoras escribiendo códigos que busquen el buen uso de los recursos, la menor cantidad de errores, y que además satisfacen el requerimiento del usuario lo mejor posible. Esta tarea, de expresar el mundo real en líneas de código es compleja y debe hacerse cuidadosamente. 2 EL PROCESO DE ABSTRACCIÓN El mundo real es complejo y sintetizar los problemas que en él surgen, es una tarea que puede llegar a ser compleja. Debido a su complejidad, se requiere de un estudio y entendimiento profundo del mismo, más aun si se desea automatizar los procesos que en él se generan, generando una inversión intelectual, temporal y económica que no puede pasar desapercibida. 2.1. La Abstracción y el Modelo El proceso de análisis del mundo real para interpretar los aspectos esenciales de un problema y expresarlos en términos precisos se denomina el proceso de abstracción. Abstraer una situación del mundo real, ubicada en un momento y lugar, y simplificar dicha expresión, tratando de encontrar los aspectos principales que pueden ser tratados, identificando los datos que se van a procesar y las variables de dicho contexto se denomina modelamiento. El grado de exactitud de un modelo y su relación con los requerimientos a cubrir es un factor sujeto a discusión. Está claro que el modelo no será exacto y que ignora muchos detalles. Pero si el requerimiento ha sido bien definido este podrá ser cumplido con el uso de funciones simples correctamente programadas y utilizadas. Cada una de las acciones detalladas en un modelo corresponde a una instrucción que puede ser programada e interpretada luego. Todas estas acciones tendrán como objetivo final el cubrimiento del requerimiento señalado. Por ello las precondiciones (datos con los que se cuenta antes de iniciar el programa) y postcondiciones (datos presentes después de ejecutado el programa) deben ser claras y verdaderas. 2.2. Analizar un Problema en el Mundo Real El proceso de analizar problemas en el mundo real y determinar en forma clara y concreta el objetivo que se desea se denomina una especificación del requerimiento.

Bibliografía

75


s

s

o

76

Actividades

Autoevaluación

Glosario

Bibliografía

Anotaciones

UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Naturalmente para tener especificaciones univocas es necesario expresar los problemas en un lenguaje correcto, formalmente riguroso y que no permita múltiples interpretaciones. Es necesario tener en cuenta que el computador interpretará las órdenes programadas tal y cual están escritas y esto incluirá los errores programados por el usuario. Para representar un problema se pueden usar variedad de formas: graficas, algebraicas funcionales, textuales, etc. El proceso de abstracción debe ser practicado continuamente, pues de este dependerá la habilidad para definir un algoritmo y llevarlo a un programa. La calidad de la especificación condiciona todo el proceso de desarrollo de la solución programada en el computador. Normalmente el lenguaje utilizado para programar será muy diferente al mundo real y es aquí donde el rol del analista de traducir este modelo a un programa es vital. Un lenguaje de programación cuenta con reglas sintácticas y un valor semántico. Las instrucciones escritas en el deben regirse a estas reglas para que las expresiones sean correctas. Podemos resumir el proceso de programación en algunos simples pasos

(Equipo LIDI, 2001) A lo largo del proceso en importante considerar el contexto, pues es en este del que se originan muchas veces datos importantes y restricciones al requerimiento, además nos ayuda a definir elementos como: temporalidad, prioridad, posibilidades, niveles de seguridad, disponibilidad, costos, etc. 2.3. “Divide y Vencerás”: Modularización Descomponer un problema en problemas menores no es solo una estrategia común de lidiar con la complejidad de un problema, sino que ayuda tener funciones mejor definidas para un sistema. (Equipo LIDI, 2001). La modularización o descomposición de un programa es muy importante y no solo se refiere a los procesos o funciones a cumplir, sino también a la distribución y utilización de los datos de entrada y salida, así como de los datos intermedios necesarios para alcanzar una solución. 3 EL ALGORITMO 3.1. Definición de Algoritmo El algoritmo es la especificación sujeta una sintaxis y semántica bien definidas, de una secuencia de pasos o instrucciones a realizar sobre un autómata para alcanzar un resultado deseado en un tiempo determinado. El algoritmo al ser diseñado debe tener un inicio y un final indicados y claros, pudiendo terminar bajo ciertas condiciones o al cumplir con el objetivo deseado. Las instrucciones escritas representan las operaciones que el programa de computador deberá ejecutar. Estas instrucciones pueden ser una asignación de va-


UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Desarrollo de contenidos

Lecturas seleccionadas

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Glosario

lores a variables, decisiones basadas en condiciones o iteraciones de un subconjunto de instrucciones.

Recordatorio Existen datos constantes y variables dentro de la definición de un algoritmo y son representados siempre con un nombre. A lo largo del programa se usarán estos datos y se transformarán de acuerdo a las condiciones planteadas para cubrir el objetivo del requerimiento.

3.2. Etapas de la Resolución de un Problema Primero debemos analizar el problema en su contexto del mundo real, obteniendo los requerimientos de usuario. El resultado de este análisis es un modelo preciso del ambiente del problema y del objetivo a resolver. Un componente importante de este modelo son los datos a utilizar y las transformaciones que estos sufrirán para llegar al objetivo planteado por las satisfacción de los requerimientos. Después de evaluar la posibilidad de automatizar el proceso, se procede a diseñar la solución. La modularización del problema debe especificarse, estableciendo funciones bien definidas y también las formas de comunicaciones entre estos módulos. La escritura del programa en scripts simples podrá realizarse solo con la imaginación pero es una buena costumbre diseñar la estructura previamente. Los módulos específicos pueden traducirse en especificaciones de algoritmos, que servirán para la posterior programación de las rutinas descritas en estos algoritmos. La escritura del programa permitirá tomar la especificación simbólica del algoritmo y convertirlo en un programa. El lenguaje de computador (C++, java, python, php, etc) a su vez será interpretado en un lenguaje de maquina con la ayuda del uso de un compilador. Una vez escrito el programa, debe ser depurado, lo que quiere decir que se verificará y corregirá, para asegurar el buen funcionamiento del programa sometido a diferentes situaciones reales. Es imposible replicar todas las situaciones posibles, pero se debe tener estándares de calidad del sistema para que lograr cubrir los requerimientos del usuario. 4 ESTRUCTURAS DE CONTROL Las instrucciones representan operaciones que se ejecutarán en el computador después de implementado el algoritmo. Estas instrucciones utilizan información en forma de constantes o variables que contienen datos. Para manipular estos datos son necesarias estructuras de asignación, decisión e iteración. 4.1. Estructuras de Secuencia La estructura más simple es la sucesión de operaciones. Este recorrido se hace de forma secuencial, indicando el comienzo y fin del algoritmo:

Precondiciones: • Ingredientes disponibles Postcondiciones: •Taza de café lista

Anotaciones

Bibliografía

77


s

s

o

78

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

4.2. Estructuras de Repetición Otro tipo de estructura está basada en la repetición de un conjunto de instrucciones, mayormente sujeto al cumplimiento de una cantidad de veces. Anotaciones

Precondiciones: • Bandeja con 10 porciones de queques. • 0 queques recolectados Postcondiciones: • 4 queques en el bolsillo • 6 queques en la bandeja

Inicio repetir 4 coger_1_keke_de_bandeja guardar_keke fin 4.3. Estructuras Condicionadas Otra estructura es la decisión en base a una condición, esta condición tiene dos estados, uno en el que la condición es falsa y otra en la es verdadera.

Precondiciones: Edad actual de la persona Límite de edad Postcondiciones: Persona aceptada o rechazada Inicio Si edad >= 18 aceptar sino rechazar fin


UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Desarrollo de contenidos

4.4. Estructuras de Selección

Lecturas seleccionadas

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Glosario

Otra estructura, es la de selección que es muy similar al condicional, pero ofrece más de dos alternativas. Recordatorio

Precondiciones: Existe una lista de tarifas El origen y destino de trayecto Postcondiciones: Monto a pagar Inicio EnCaso (tipo_destino) Distrital: pago=0.7 Interdistrital: pago=1.2 Directo: pago=1.8 pagar_transporte fin 4.5. Estructura de Iteración Para casos en los que se desconoce la cantidad de veces que unas instrucciones deben ejecutarse, se puede usar una estructura iterativa condicionada.

Anotaciones

Bibliografía

79


s

s

o

80

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Precondiciones: Bolsa con 10 galletas Postcondiciones:

Anotaciones

Bolsa sin galletas Inicio Mientras hay_galletas Coger_galleta fin Diagrama

Objetivos

Desarrollo de contenidos

Actividades

Lecturas seleccionadas

Recordatorio

Inicio

ACTIVIDAD N° 1: Autoevaluación

Esta actividad puede consultarla en su aula virtual.

Glosario

Bibliografía

TEMA 2 INTRODUCCIÓN A UN LENGUAJE DE PROGRAMACIÓN El aprendizaje de un lenguaje de programación es una de las tareas más importantes en el Anotaciones desarrollo de la carrera de ingeniería de sistemas e informática, por ello este capítulo recuperará los conocimientos esenciales en la programación de un lenguaje denominado Python.

En este tema, debido a la naturaleza del software libre y las nuevas licencias como Common Creative, utilizamos el texto de Duque Raúl Gonzales (2010), el que es de libre reproducción, este texto nos servirá en el desarrollo de los contenidos sobre Phyton, mejorándolos y adaptándolos a nuestra necesidad. Es necesario decir que este en un lenguaje muy versátil e ideal para principiantes, pues se adapta a modelos no sofisticados de desarrollo de software. 1 EL LENGUAJE DE PROGRAMACIÓN PYTHON 1.1. ¿Qué es Python? Python es un lenguaje de programación creado por Guido van Rossum a principios de los años 90 cuyo nombre está inspirado en el grupo de cómicos ingleses “Monty Python”. Es un lenguaje similar a Perl, pero con una sintaxis muy limpia y que favorece un código legible.


UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Desarrollo de contenidos

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

Se trata de un lenguaje interpretado o de script, con tipado dinámico, fuertemente tipado, multiplataforma y orientado a objetos. 1.2. Lenguaje interpretado o de script

Un lenguaje interpretado o de script es aquel que se ejecuta utilizando un programa intermedio llamado intérprete, en lugar de compilar el código a lenguaje máquina que pueda comprender y ejecutar directamente una computadora (lenguajes compilados). La ventaja de los lenguajes compilados es que su ejecución es más rápida. Sin embargo los lenguajes interpretados son más flexibles y más portables. Un lenguaje interpretado es más fácil de escribir, aunque el resultado suele ser lento si el programa incluye demasiados cálculos recursivos. Python tiene, no obstante, muchas de las características de los lenguajes compilados, por lo que se podría decir que es semi interpretado. En Python, como en Java y muchos otros lenguajes, el código fuente se traduce a un pseudo código máquina intermedio llamado bytecode la primera vez que se ejecuta, generando archivos .pyc o .pyo (bytecode optimizado), que son los que se ejecutarán en sucesivas ocasiones. La característica de tipado dinámico se refiere a que no es necesario declarar el tipo de dato que va a contener una determinada variable, Python para todos, sino que su tipo se determinará en tiempo de ejecución según el tipo del valor al que se asigne, y el tipo de esta variable puede cambiar si se le asigna un valor de otro tipo. En un lenguaje fuertemente tipado no se permite tratar a una variable como si fuera de un tipo distinto al que tiene, es necesario convertir de forma explícita dicha variable al nuevo tipo previamente. Por ejemplo, si tenemos una variable que contiene un texto (variable de tipo cadena o string) no podremos tratarla como un número (sumar la cadena “9” y el número 8). En otros lenguajes el tipo de la variable cambiaría para adaptarse al comportamiento esperado, aunque esto es más propenso a errores. 1.3. Multiplataforma El intérprete de Python está disponible en multitud de plataformas (UNIX, Solaris, Linux, DOS, Windows, OS/2, Mac OS, etc.) por lo que si no utilizamos librerías específicas de cada plataforma nuestro programa podrá correr en todos estos sistemas sin grandes cambios. 1.4. Orientado a Objetos La orientación a objetos es un paradigma de programación en el que los conceptos del mundo real relevantes para nuestro problema se trasladan a clases y objetos en nuestro programa. La ejecución del programa consiste en una serie de interacciones entre los objetos. Python también permite la programación imperativa, programación funcional y programación orientada a aspectos. 1.5. ¿Por qué Python? Python es un lenguaje que todo el mundo debería conocer. Su sintaxis simple, clara y sencilla; el tipado dinámico, el gestor de memoria, la gran cantidad de librerías disponibles y la potencia del lenguaje, entre otros, hacen que desarrollar una aplicación en Python sea sencillo, muy rápido y, lo que es más importante, divertido. La sintaxis de Python es tan sencilla y cercana al lenguaje natural que los programas elaborados en Python parecen pseudocódigo. Por este motivo se trata

Bibliografía

81


s

s

o

82

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

además de uno de los mejores lenguajes para comenzar a programar.

Anotaciones

Python no es adecuado sin embargo para la programación de bajo nivel o para aplicaciones en las que el rendimiento sea crítico. Algunos casos de éxito en el uso de Python son Google, Yahoo, la NASA, Industrias Light & Magic, y todas las distribuciones Linux, en las que Python cada vez representa un tanto por ciento mayor de los programas disponibles. 1.6. Instalación de Python Existen varias implementaciones distintas de Python: CPython, Jython, IronPython, PyPy, etc. CPython es la más utilizada, la más rápida y la más madura. Cuando las personas hablan de Python normalmente se refiere a esta implementación. En este caso tanto el intérprete como los módulos están escritos en C. Jython es la implementación en Java de Python, mientras que IronPython es su contrapartida en C# (.NET). Su interés estriba en que utilizando estas implementaciones se pueden utilizar todas las librerías disponibles para los programadores de Java y .NET. PyPy, por último, como puede deducir por el nombre, se trata de una implementación en Python de Python. CPython está instalado por defecto en la mayor parte de las distribuciones Linux y en las últimas versiones de Mac OS. Es posible descargar la versión correspondiente a tu sistema operativo desde la web de Python, en http://www.python.org/download/. Existen instaladores para Windows y Mac OS. Si utilizas Linux es muy probable que puedas instalarlo usando la herramienta de gestión de paquetes de tu distribución, aunque también podemos descargar la aplicación compilada desde la web de Python. 1.7. Herramientas básicas Existen dos formas de ejecutar código Python. Podemos escribir líneas de código en el intérprete y obtener una respuesta del intérprete para cada línea (sesión interactiva), o bien podemos escribir el código de un programa en un archivo de texto y ejecutarlo. En el campo de IDEs y editores de código gratuitos PyDEV (http://pydev.sourceforge.net/) se alza como cabeza de serie. PyDEV es un plugin para Eclipse que permite utilizar este IDE multiplataforma para programar en Python. Cuenta con autocompletado de código (con información sobre cada elemento), resaltado de sintaxis, un depurador gráfico, resaltado de errores, explorador de clases, formateo del código, refactorización, etc. Sin duda es la opción más completa, sobre todo si instalamos las extensiones comerciales, aunque necesita de una cantidad importante de memoria y no es del todo estable. El IDE puede ser uno elegido por la persona que está aprendiendo y con el cual se sienta cómodo, siempre y cuando comprenda el funcionamiento del mismo.

2 MI PRIMER PROGRAMA EN PYTHON Existen dos formas de ejecutar código Python, bien en una sesión interactiva (línea a línea) con el intérprete, o bien de la forma habitual, escribiendo el código en un archivo de código fuente y ejecutándolo. El primer programa que vamos a escribir en Python es el clásico Hola Mundo, y en


UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Desarrollo de contenidos

este lenguaje es tan simple como:

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

print “Hola Mundo” Vamos a probarlo primero en el intérprete. Ejecuta python o ipython según tus preferencias, escribe la línea anterior y presione Enter. El intérprete responderá mostrando en la consola el texto Hola Mundo.

Vamos ahora a crear un archivo de texto con el código anterior, de forma que pudiéramos distribuir nuestro pequeño gran programa entre nuestros amigos. Abra su editor de texto preferido o bien el IDE que haya elegido y copie la línea anterior. Guárdalo como hola.py, por ejemplo. Ejecutar este programa es tan sencillo como indicarle el nombre del archivo a ejecutar al intérprete de Python hola.py pero vamos a ver cómo simplificarlo aún más. Si utiliza Windows los archivos .py ya estarán asociados al intérprete de Python, por lo que basta hacer doble clic sobre el archivo para ejecutar el programa. Sin embargo como este programa no hace más que imprimir un texto en la consola, la ejecución es demasiado rápida para poder verlo si quiera. Para remediarlo, vamos a añadir una nueva línea que espere la entrada de datos por parte del usuario. print “Hola Mundo” raw_input()

De esta forma se mostrará una consola con el texto Hola Mundo hasta que pulsemos Enter. Si utiliza Linux para conseguir este comportamiento, es decir, para que el sistema operativo abra el archivo .py con el intérprete adecuado, es necesario añadir una nueva línea al principio del archivo: #!/usr/bin/python

print “Hola Mundo” raw_input()

A esta línea se le conoce en el mundo Unix como shebang, hashbang o sharpbang. El par de caracteres #! indica al sistema operativo que dicho script se debe ejecutar utilizando el intérprete especificado a continuación. De esto se desprende, evidentemente, que si esta no es la ruta en la que está instalado nuestro intérprete de Python, es necesario cambiarla. 3 TIPADO DE VARIABLES 3.1. Uso de Tipos de Datos En Python los tipos básicos se dividen en: • Números, como pueden ser 3 (entero), 15.57 (de coma flotante) o 7 + 5j (complejos) • Cadenas de texto, como “Estamos en al UCCI” • Valores booleanos: True (verdadero) y False (falso). Vamos a crear un par de variables a modo de ejemplo. Una de tipo cadena y una de tipo entero: # esto es una cadena c = “Hola Mundo”

# y esto es un entero e = 23

# podemos comprobarlo con la función type type(c) type(e)

Bibliografía

83


s

s

o

84

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Como ve, en Python, a diferencia de muchos otros lenguajes, no es necesario declarar el tipo de la variable al crearla. En Java, por ejemplo, escribiríamos: String c = “Hola Mundo”; Anotaciones

int e = 23; Este pequeño ejemplo también nos ha servido para presentar los comentarios inline en Python: cadenas de texto que comienzan con el carácter # y que Python ignora totalmente. Hay más tipos de comentarios, de los que hablaremos más adelante. Números Como decíamos, en Python se pueden representar números enteros, reales y complejos. 3.2. Números Enteros Los números enteros son aquellos números positivos o negativos que no tienen decimales (además del cero). En Python se pueden representar mediante el tipo int (integer) o el tipo long. La única diferencia es que el tipo long permite almacenar números más grandes. Es aconsejable no utilizar el tipo long a menos que sea necesario, para no malgastar memoria. En la mayor parte de las máquinas el long de C se almacena utilizando 32 bits, es decir, mediante el uso de una variable de tipo int de Python podemos almacenar números de -2.147.483.648 a 2.147.483.647. En plataformas de 64 bits, el rango es de -9.223.372.036.854.775.808 hasta 9.223.372.036.854.775.807. El tipo long de Python permite almacenar números de cualquier precisión, estando limitados solo por la memoria disponible en la máquina. Al asignar un número a una variable esta pasará a tener tipo int, a menos que el número sea tan grande como para requerir el uso del tipo long. # type(entero) devolvería int entero = 23

También podemos indicar a Python que un número se almacene usando long añadiendo una L al final: # type(entero) devolvería long entero = 23L

El literal que se asigna a la variable también se puede expresar como un octal, anteponiendo un cero: # 027 octal = 23 en base 10 entero = 027

o bien en hexadecimal, anteponiendo un 0x: # 0×17 hexadecimal = 23 en base 10 entero = 0×17 3.3. Números Reales Los números reales son los que tienen decimales. En Python se expresan mediante el tipo float. En otros lenguajes de programación, como C, tenemos también el tipo double, similar a float pero de mayor precisión (double = doble precisión). Python, sin embargo, implementa su tipo float a bajo nivel mediante una variable de tipo double de C, es decir, utilizando 64 bits, luego en Python siempre se utiliza doble precisión, y en concreto se sigue el estándar IEEE 754: 1 bit para el signo, 11 para el exponente, y 52 para la mantisa. Esto significa que los valores que podemos representar van desde ±2,2250738585072020 x 10-308 hasta ±1,7976931348623157×10308.


UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Desarrollo de contenidos

Lecturas seleccionadas

La mayor parte de los lenguajes de programación siguen el mismo esquema para la representación interna. Pero como muchos sabréis esta tiene sus limitaciones, impuestas por el hardware. Por eso desde Python 2.4 contamos también con un nuevo tipo Decimal, para el caso de que se necesite representar fraccionesRecordatorio de forma más precisa. Para representar un número real en Python se escribe primero la parte entera, seguido de un punto y por último la parte decimal. real = 0.2703 También se puede utilizar notación científica, y añadir una e (de exponente) para indicar un exponente en base 10. Por ejemplo: real = 0.1e-3 Sería equivalente a 0.1 x 10-3 = 0.1 x 0.001 = 0.0001 3.4. Operadores Aritméticos Veamos ahora qué podemos hacer con nuestros números usando los operadores por defecto. Para operaciones más complejas podemos recurrir al módulo math.

OPERADOR

EJEMPLO r=3+2

# r es 5

r=4-7

# r es -3

+

Suma

-

Resta

-

Negativo

r = -7

# r es -7

*

Multiplicación

r=2*6

# r es 12

**

Potencia

r = 2 ** 6 # r es 64

/

División

r = 3.5 / 2 # r es 1.75

//

División Entera

r = 3.5 // 2 # r es 1.0

%

Módulo

NOMBRE

r=7%2

# r es 1

Puede que tenga dudas sobre cómo funciona el operador de módulo, y cuál es la diferencia entre división y división entera. El operador de módulo no hace otra cosa que devolvernos el resto de la división entre los dos operandos. La diferencia entre división y división entera no es otra que la que indica su nombre. En la división el resultado que se devuelve es un número real, mientras que en la división entera el resultado que se devuelve es solo la parte entera. No obstante hay que tener en cuenta que si utilizamos dos operandos enteros, Python determinará que queremos que la variable resultado también sea un entero, por lo que el resultado de, así que, 3 / 2 y 3 // 2 sería el mismo: 1. Si quisiéramos obtener los decimales necesitaríamos que al menos uno de los operandos fuera un número real, bien indicando los decimales r = 3.0 / 2 Esto es así porque cuando se mezclan tipos de números, Python con-Python para todos vierte todos los operandos al tipo más complejo de entre los tipos de los operandos. 3.5. Operadores a Nivel de Bit Estos operadores actúan sobre las representaciones en binario de los operandos. Por ejemplo, si veis una operación como 3 & 2, lo que se ve es un and bit a bit entre los números binarios 11 y 10 (las representaciones en binario de 3 y 2).

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Glosario

Anotaciones

Bibliografía

85


s

s

o

86

Actividades

Autoevaluación

Glosario

Bibliografía

Anotaciones

UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

El operador AND (&), devuelve 1 si el primer bit operando es 1 y el segundo bit operando es 1. Se devuelve 0 en caso contrario. El resultado de aplicar and bit a bit a 11 y 10 sería entonces el número binario 10, o lo que es lo mismo, 2 en decimal (el primer dígito es 1 para ambas cifras, mientras que el segundo es 1 sólo para una de ellas). El operador OR (|), devuelve 1 si el primer operando es 1 o el segundo operando es 1. Para el resto de casos se devuelve 0. El operador XOR (^) devuelve 1 si uno de los operandos es 1 y el otro no lo es. El operador NOT (~), sirve para negar uno a uno cada bit; es decir, si el operando es 0, cambia a 1 y si es 1, cambia a 0. Por último los operadores de desplazamiento (<< y >>) sirven para desplazar los bits n posiciones hacia la izquierda o la derecha. 3(10) = 11(2)

y

2(10) = 10(2)

OPERADOR

NOMBRE

EJEMPLO

&

AND

r = 3 & 2 # r es 2

0

OR

r = 3 | 2 # r es 3

^

XOR

r = 3 ^ 2 # r es 1

~

Negación

<<

Desplazar izq.

r = 3 << 1 # r es 6

>>

Desplazar der.

r = 3 >> 1 # r es 1

r = ~3

# r es -4

3.6. Cadena de Caracteres (Texto) Las cadenas no son más que texto encerrado entre comillas simples: ‘cadena’ o “cadena”. Dentro de las comillas se pueden añadir caracteres especiales escapándolos con \, como \n, el carácter de nueva línea, o \t, el de tabulación. Una cadena puede estar precedida por el carácter u o el carácter r, los cuales indican, respectivamente, que se trata de una cadena que utiliza codificación Unicode y una cadena raw (del inglés, cruda). Las cadenas raw se distinguen de las normales en que los caracteres escapados mediante la barra invertida (\) no se sustituyen por sus contrapartidas. unicode = u”äóè” raw = r”\n” También es posible encerrar una cadena entre triples comillas (simples o dobles). De esta forma podremos escribir el texto en varias líneas, y al imprimir la cadena, se respetarán los saltos de línea que introdujimos sin tener que recurrir al carácter \n, así como las comillas sin tener que escaparlas. triple = “““primera línea esto se verá en otra línea””” Las cadenas también admiten operadores como +, que funciona realizando una concatenación de las cadenas utilizadas como operandos y *, en la que se repite la cadena tantas veces como lo indique el número utilizado como segundo operando. a = “uno” b = “dos” c = a + b # c es “unodos” c = a * 3 # c es “unounouno”


UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Desarrollo de contenidos

Lecturas seleccionadas

3.7. Tipos Booleanos

Una variable de tipo booleano sólo puede tener dos valores: True (verdadero) y False (falso). Estos valores son especialmente importantes para las expresiones condicionales y los bucles, como veremos más adelante. En realidad el tipo bool Recordatorio es una subclase del tipo int. Estos son los distintos tipos de operadores con los que podemos trabajar con valores booleanos, los llamados operadores lógicos o condicionales:

OPERADOR

NOMBRE

EJEMPLO

==

¿se cumple a y b?

r = True and False # r es False

!=

¿se cumple a o b?

r = True or False # r es True

<

No es

r = not True

# r es False

Los valores booleanos son además el resultado de expresiones que utilizan operadores relacionales (comparaciones entre valores):

OPERADOR

NOMBRE

EJEMPLO

==

¿son iguales?

r = 5 == 3 # r es False

!=

¿son distintos?

r = 5 != 3 # r es True

<

¿es menor que?

r = 5 < 3 # r es False

>

¿es mayor que?

r = 5 > 3 # r es True

<=

¿es menor o igual que?

r = 5 <= 5 # r es True

>=

¿es mayor o igual que?

r = 5 >= 3 # r es True

4 COLECCIONES DE DATOS 4.1. Listas La lista es un tipo de colección ordenada. Sería equivalente a lo que en otros lenguajes se conoce por arrays, o vectores. Las listas pueden contener cualquier tipo de dato: números, cadenas, booleanos, y también otras listas. Crear una lista es tan sencillo como indicar entre corchetes, y separados por comas, los valores que queremos incluir en la lista: L = [22, True, “una lista”, [1, 2]] Podemos acceder a cada uno de los elementos de la lista escribiendo el nombre de la lista e indicando el índice del elemento entre corchetes. Tenga en cuenta sin embargo que el índice del primer elemento de la lista es 0, y no 1: L = [11, False] mi_var = L[0] # mi_var vale 11 Si queremos acceder a un elemento de una lista incluida dentro de otra lista tendremos que utilizar dos veces este operador, primero para indicar a qué posición de la lista exterior queremos acceder, y el segundo para seleccionar el elemento de la lista interior: L = [“una lista”, [1, 2]] Colecciones mi_var = L [1][0] # mi_var vale 1 También podemos utilizar este operador para modificar un elemento de la lista si lo colocamos en la parte izquierda de una asignación: L = [22, True] L [0] = 99 # Con esto L valdrá [99, True]

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Glosario

Anotaciones

Bibliografía

87


s

s

o

88

Actividades

Autoevaluación

Glosario

Bibliografía

Anotaciones

UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

El uso de los corchetes para acceder y modificar los elementos de una lista es común en muchos lenguajes, pero Python nos depara varias sorpresas muy agradables. Una curiosidad sobre el operador [] de Python es que podemos utilizar también números negativos. Si se utiliza un número negativo como índice, esto se traduce en que el índice empieza a contar desde el final, hacia la izquierda; es decir, con [-1] accederíamos al último elemento de la lista, con [-2] al penúltimo, con [-3], al antepenúltimo, y así sucesivamente. Otra cosa inusual es lo que en Python se conoce como slicing o particionado, y que consiste en ampliar este mecanismo para permitir seleccionar porciones de la lista. Si en lugar de un número escribimos dos números inicio y fin separados por dos puntos (inicio:fin) Python interpretará que queremos una lista que vaya desde la posición inicio a la posición fin, sin incluir este último. Si escribimos tres números (inicio:fin:salto) en lugar de dos, el tercero se utiliza para determinar cada cuantas posiciones añadir un elemento a la lista. L = [99, True, “una lista”, [1, 2]] mi_var = L[0:2] # mi_var vale [99, True] mi_var = L[0:4:2] # mi_var vale [99, “una lista”] Los números negativos también se pueden utilizar en un slicing, con el mismo comportamiento que se comentó anteriormente. Hay que mencionar así mismo que no es necesario indicar el principio y el final del slicing, sino que, si estos se omiten, se usarán por defecto las posiciones de inicio y fin de la lista, respectivamente: L = [99, True, “una lista”] mi_var = L[1:] # mi_var vale [True, “una lista”] mi_var = L[:2] # mi_var vale [99, True] mi_var = L[:] # mi_var vale [99, True, “una lista”] mi_var = L[::2] # mi_var vale [99, “una lista”] También podemos utilizar este mecanismo para modificar la lista: L = [99, True, “una lista”, [1, 2]] L[0:2] = [0, 1] # L vale [0, 1, “una lista”, [1, 2]] Pudiendo incluso modificar el tamaño de la lista si la lista de la parte derecha de la asignación tiene un tamaño menor o mayor que el de la selección de la parte izquierda de la asignación: L[0:2] = [False] # L vale [False, “una lista”, [1, 2]] En todo caso las listas ofrecen mecanismos más cómodos para ser modificadas a través de las funciones de la clase correspondiente, aunque no veremos estos mecanismos 4.2. Tuplas Todo lo que hemos explicado sobre las listas se aplica también a las tuplas, a excepción de la forma de definirla, para lo que se utilizan paréntesis en lugar de corchetes. t = (1, 2, True, “python”) En realidad el constructor de la tupla es la coma, no el paréntesis, pero el intérprete muestra los paréntesis, y nosotros deberíamos utilizarlos, por claridad. >>> t = 1, 2, 3 >>> type(t) type “tuple” Además hay que tener en cuenta que es necesario añadir una coma para tuplas de un solo elemento, para diferenciarlo de un elemento entre paréntesis.


UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Desarrollo de contenidos

>>> t = (1)

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

>>> type(t) type “int” >>> t = (1,) >>> type(t) type “tuple” Para referirnos a elementos de una tupla, como en una lista, se usa el operador []: mi_var = t[0] # mi_var es 1 mi_var = t[0:2] # mi_var es (1, 2) Podemos utilizar el operador [] debido a que las tuplas, al igual que las listas, forman parte de un tipo de objetos llamados secuencias. Las cadenas de texto también son secuencias, por lo que no es extraño hacer cosas como estas: c = “hola mundo” c[0] # h c[5:] # mundo c[::3] # hauo Volviendo al tema de las tuplas, su diferencia con las listas está en que las tuplas no poseen estos mecanismos de modificación. Además son inmutables, es decir, sus valores no se pueden modificar una vez creada; y tienen un tamaño fijo. A cambio de estas limitaciones las tuplas son más “ligeras” que las listas 4.3. Diccionarios Los diccionarios, también llamados matrices asociativas, deben su nombre a que son colecciones que relacionan una clave y un valor. d = {“Love Actually “: “Richard Curtis”, “Akira”: “Katsuiro” “Amélie”: “Jean-Pierre Jeunet”} El primer valor se trata de la clave y el segundo del valor asociado a la clave. Como clave podemos utilizar cualquier valor inmutable: podríamos usar números, cadenas, booleanos, tuplas, etc; pero no listas o diccionarios, dado que son mutables. Esto es así porque los diccionarios se implementan como tablas hash, y a la hora de introducir un nuevo par clave-valor en el diccionario se calcula el hash de la clave para después poder encontrar la entrada correspondiente rápidamente. Si se modificara el objeto clave después de haber sido introducido en el diccionario, evidentemente, su hash también cambiaría y no podría ser encontrado. La diferencia principal entre los diccionarios y las listas o las tuplas es que a los valores almacenados en un diccionario se les accede no por su índice, porque de hecho no tienen orden, sino por su clave, utilizando de nuevo el operador []. d[“Love Actually “] # devuelve “Richard Curtis” Al igual que en listas y tuplas también se puede utilizar este operador para reasignar valores. d[“Kill Bill”] = “Quentin Tarantino” Sin embargo en este caso no se puede utilizar slicing, entre otras cosas porque los diccionarios no son secuencias, si no mappings (asociados por el nombre de su índice)

Bibliografía

89


s

s

o

90

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

5 ESTRUCTURAS DE CONTROL 5.1. Sentencias Condicionales Anotaciones

Si un programa no fuera más que una lista de órdenes a ejecutar de forma secuencial, una por una, no tendría mucha utilidad. Los condicionales nos permiten comprobar condiciones y hacer que nuestro programa se comporte de una forma u otra, que ejecute un fragmento de código u otro, dependiendo de esta condición. Aquí es donde cobran su importancia el tipo booleano y los operadores lógicos y relacionales que aprendimos en el capítulo sobre los tipos básicos de Python. La forma más simple de un estamento condicional es un if (del inglés si) seguido de la condición a evaluar, dos puntos (:) y en la siguiente línea e indentado, el código a ejecutar en caso de que se cumpla dicha condición. fav = “tech_all.cnet” # si (if) fav es igual a “tech_all.cnet” if fav == “tech_all.cnet”: print “Tienes buen gusto!” print “Gracias” Eso sí, es necesario asegurarse de que el código este indentado tal cual se ha hecho en el ejemplo, es decir la misma tabulación antes de las dos órdenes print, dado que esta es la forma de Python de saber que la intención es la de que los dos print se ejecuten sólo en el caso de que se cumpla la condición, y no la de que se imprima la primera cadena si se cumple la condición y la otra siempre, cosa que se expresaría así: if fav == “tech_all.cnet”: print “Tienes buen gusto!” print “Gracias” En otros lenguajes de programación los bloques de código se determinan encerrándolos entre llaves, y el indentarlos no se trata más que de una buena práctica para que sea más sencillo seguir el flujo del programa con un solo golpe de vista. Por ejemplo, el código anterior expresado en Java sería algo así: String fav = “tech_all.cnet”; if (fav.equals(“tech_all.cnet”)){ System.out.println(“Tienes buen gusto!”); System.out.println(“Gracias”); } Sin embargo, como ya hemos comentado, en Python se trata de una obligación, y no de una elección. De esta forma se obliga a los programadores a indentar su código para que sea más sencillo de leer :) if … else Vamos a ver ahora un condicional algo más complicado. ¿Qué haríamos si quisiéramos que se ejecutaran unas ciertas órdenes en el caso de que la condición no se cumpliera? Sin duda podríamos añadir otro if que tuviera como condición la negación del primero: if fav == “tech_all.cnet”: print “Tienes buen gusto!” print “Gracias” if fav != “tech_all.cnet”: print “Vaya, que lástima” pero el condicional tiene una segunda construcción mucho más útil: if fav == “tech_all.cnet”: print “Tienes buen gusto!”


UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Desarrollo de contenidos

print “Gracias”

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

else: print “Vaya, que lástima” Vemos que la segunda condición se puede sustituir con un else (del inglés: si no, en caso contrario). Si leemos el código vemos que tiene bastante sentido: “si fav es igual a tech_all.cnet, imprime esto y esto, si no, imprime esto otro”. if … elif … elif … else Todavía queda una construcción más que ver, que es la que hace uso del elif. if numero < 0: print “Negativo” elif numero > 0: print “Positivo” else: print “Cero” elif es una contracción de else if, por lo tanto elif numero > 0 puede leerse como “si no, si número es mayor que 0”. Es decir, primero se evalúa la condición del if. Si es cierta, se ejecuta su código y se continúa ejecutando el código posterior al condicional; si no se cumple, se evalúa la condición del elif. Si se cumple la condición del elif se ejecuta su código y se continúa ejecutando el código posterior al condicional; si no se cumple y hay más de un elif se continúa con el siguiente en orden de aparición. Si no se cumple la condición del if ni de ninguno de los elif, se ejecuta el código del else. A if C else B También existe una construcción similar al operador ? de otros lenguajes, que no es más que una forma compacta de expresar un if else. En esta construcción se evalúa el predicado C y se devuelve A si se cumple o B si no se cumple: A if C else B. Veamos un ejemplo: var = “par” if (num % 2 == 0) else “impar”

5.2. Bucles: While Mientras que los condicionales nos permiten ejecutar distintos fragmentos de código dependiendo de ciertas condiciones, los bucles nos permiten ejecutar un mismo fragmento de código un cierto número de veces, mientras se cumpla una determinada condición. El bucle while ejecuta un fragmento de código mientras se cumpla una condición. edad = 0 while edad < 18: edad = edad + 1 print “Felicidades, tienes “ + str(edad) La variable edad comienza valiendo 0. Como la condición de que edad es menor que 18 es cierta (0 es menor que 18), se entra en el bucle. Se aumenta edad en 1 y se imprime el mensaje informando de que el usuario ha cumplido un año. Recuerde que el operador + para las cadenas funciona concatenando ambas cadenas. Es necesario utilizar la función str para crear una cadena a partir del número, dado que no podemos concatenar números y cadenas. Ahora se vuelve a evaluar la condición, y 1 sigue siendo menor que 18, por lo que se vuelve a ejecutar el código que aumenta la edad en un año e imprime la edad en la pantalla. El bucle continuará ejecutándose hasta que edad sea igual a 18, momento en el cual la condición dejará de cumplirse y el programa continuaría ejecutando las instrucciones siguientes al bucle.

Bibliografía

91


s

s

o

92

Actividades

Autoevaluación

Glosario

Bibliografía

Anotaciones

UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Ahora imaginemos que se nos olvidara escribir la instrucción que aumenta la edad. En ese caso nunca se llegaría a la condición de que edad fuese igual o mayor que 18, siempre sería 0, y el bucle continuaría indefinidamente escribiendo en pantalla Has cumplido 0.Esto es lo que se conoce como un bucle infinito. Sin embargo hay situaciones en las que un bucle infinito es útil. Por ejemplo, veamos un pequeño programa que repite todo lo que el usuario diga hasta que escriba adiós. while True: entrada = raw_input(“> “) if entrada == “adios”: break else: print entrada Para obtener lo que el usuario escriba en pantalla utilizamos la función raw_input. Comprobamos entonces si lo que escribió el usuario fue adiós, en cuyo caso se ejecuta la orden break o si era cualquier otra cosa, en cuyo caso se imprime en pantalla lo que el usuario escribió. La palabra clave break sale del bucle en el que estamos. Este bucle se podría haber escrito también, no obstante, de la siguiente forma: salir = False while not salir: entrada = raw_input() if entrada == “adiós”: salir = True else: print entrada Otra palabra clave que nos podemos encontrar dentro de los bucles es continue. Como habréis adivinado no hace otra cosa que pasar directamente a la siguiente iteración del bucle. edad = 0 while edad < 18 edad = edad + 1 if edad % 2 == 0: continue print “Felicidades, tienes “ + str(edad) En esta ocasión hemos añadido un if que comprueba si la edad es par, en cuyo caso saltamos a la próxima iteración en lugar de imprimir el mensaje. Es decir, con esta modificación el programa sólo imprimiría felicitaciones cuando la edad fuera impar. 5.3. Bucle For … In En Python for se utiliza como una forma genérica de iterar sobre una secuencia. Y como tal intenta facilitar su uso para este fin. Este es el aspecto de un bucle for en Python: secuencia = [“uno”, “dos”, “tres”] for elemento in secuencia: print elemento Como hemos dicho los for se utilizan en Python para recorrer secuencias, por lo que vamos a utilizar un tipo secuencia, como es la lista, para nuestro ejemplo.


UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Desarrollo de contenidos

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

Leamos la cabecera del bucle como si de lenguaje natural se tratara: “para cada elemento en secuencia”. Y esto es exactamente lo que hace el bucle: para cada elemento que tengamos en la secuencia, ejecuta estas líneas de código.

Lo que hace la cabecera del bucle es obtener el siguiente elemento de la secuencia y almacenarlo en una variable de nombre elemento. Por esta razón en la primera iteración del bucle elemento valdrá “uno”, en la segunda “dos”, y en la tercera “tres”. Fácil y sencillo. En C o C++, por ejemplo, lo que habríamos hecho sería iterar sobre las Control de flujo posiciones, y no sobre los elementos: int mi_array[] = {1, 2, 3, 4, 5}; int i; for(i = 0; i < 5; i++) { printf(“%d\n”, mi_array[i]); } Es decir, tendríamos un bucle for que fuera aumentando una variable i en cada iteración, desde 0 al tamaño de la secuencia, y utilizaríamos esta variable a modo de índice para obtener cada elemento e imprimirlo. Como se puede observar el enfoque de Python es más natural e intuitivo. Pero, ¿qué ocurre si quisiéramos utilizar el for como si estuviéramos en C o en Java, por ejemplo, para imprimir los números de 30 a 50?. Python proporciona una función llamada range que permite generar una lista que vaya desde el primer número que le indiquemos al segundo. 6 IMPLEMENTACIÓN DE FUNCIONES Una función es un fragmento de código con un nombre asociado que realiza una serie de tareas y devuelve un valor. A los fragmentos de código que tienen un nombre asociado y no devuelven valores se les suele llamar procedimientos. En Python no existen los procedimientos, ya que cuando el programador no especifica un valor de retorno la función devuelve el valor None, equivalente al null de Java. Además de ayudarnos a programar y depurar dividiendo el programa en partes las funciones también permiten reutilizar código. En Python las funciones se declaran de la siguiente forma: def mi_funcion(param1, param2): print param1 print param2 Es decir, la palabra clave def seguida del nombre de la función y entre paréntesis los argumentos separados por comas. A continuación, en otra línea, indentado y después de los dos puntos tendríamos las líneas de código que conforman el código a ejecutar por la función. También podemos encontrarnos con una cadena de texto como primera línea del cuerpo de la función. Estas cadenas se conocen con el nombre de docstring (cadena de documentación) y sirven, como su nombre indica, a modo de documentación de la función. def mi_funcion(param1, param2): “““Esta función imprime los dos valores pasados como parámetros””” print param1 print param2

Bibliografía

93


s

s

o

94

Actividades

Autoevaluación

Glosario

Bibliografía

Anotaciones

UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Esto es lo que imprime el operador “?” de iPython o la función help Funciones del lenguaje para proporcionar una ayuda sobre el uso y utilidad de las funciones. Todos los objetos pueden tener docstrings, no solo las funciones, como veremos más adelante. Volviendo a la declaración de funciones, es importante aclarar que al declarar la función lo único que hacemos es asociar un nombre al fragmento de código que conforma la función, de forma que podamos ejecutar dicho código más tarde referenciándolo por su nombre. Es decir, a la hora de escribir estas líneas no se ejecuta la función. Para llamar a la función se escribiría: mi_funcion(“hola”, 2) Es decir, el nombre de la función a la que queremos llamar seguido de los valores que queramos pasar como parámetros entre paréntesis. La asociación de los parámetros y los valores pasados a la función se hace normalmente de izquierda a derecha: como a param1 le hemos dado un valor “hola” y param2 vale 2, mi_funcion imprimiría hola en una línea, y a continuación 2. Sin embargo también es posible modificar el orden de los parámetros si indicamos el nombre del parámetro al que asociar el valor a la hora de llamar a la función: mi_funcion(param2 = 2, param1 = “hola”) El número de valores que se pasan como parámetro al llamar a la función tiene que coincidir con el número de parámetros que la función acepta según la declaración de la función. En caso contrario Python se quejará: >>> mi_funcion(“hola”) Traceback (most recent call last): File “<stdin>”, line 1, in <module> TypeError: mi_funcion() takes exactly 2 arguments (1 given) También es posible, no obstante, definir funciones con un número variable de argumentos, o bien asignar valores por defecto a los parámetros para el caso de que no se indique ningún valor para ese parámetro al llamar a la función. Los valores por defecto para los parámetros se definen situando un signo igual después del nombre del parámetro y a continuación el valor por defecto: def imprimir(texto, veces = 1): print veces * texto En el ejemplo anterior si no indicamos un valor para el segundo parámetro se imprimirá una sola vez la cadena que le pasamos como primer parámetro: >>> imprimir(“hola”) hola si se le indica otro valor, será este el que se utilice: >>> imprimir(“hola”, 2) holahola Para definir funciones con un número variable de argumentos colocamos un último parámetro para la función cuyo nombre debe precederse de un signo *: def varios(param1, param2, *otros): for val in otros: print val varios(1, 2) varios(1, 2, 3) varios(1, 2, 3, 4)


UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Desarrollo de contenidos

Lecturas seleccionadas

Esta sintaxis funciona creando una tupla (de nombre otros en el ejemplo) en la que se almacenan los valores de todos los parámetros extra pasados como argumento. Para la primera llamada, varios(1, 2), la tupla otros estaría vacía dado que no se han pasado más parámetros que los dos definidos por defecto, por lo tanto no se Recordatorio imprimiría nada. En la segunda llamada otros valdría (3, ), y en la tercera (3, 4).También se puede preceder el nombre del último parámetro con **, en cuyo caso en lugar de una tupla se utilizaría un diccionario. Las claves de este diccionario serían los nombres de los parámetros indicados al Funciones llamar a la función y los valores del diccionario, los valores asociados a estos parámetros. En el siguiente ejemplo se utiliza la función items de los diccionarios, que devuelve una lista con sus elementos, para imprimir los parámetros que contiene el diccionario. def varios(param1, param2, **otros): for i in otros.items(): print i varios(1, 2, tercero = 3) En Python al pasar una variable como argumento de una función estas se pasan por referencia o por valor. En el paso por referencia lo que se pasa como argumento es una referencia o puntero a la variable, es decir, la dirección de memoria en la que se encuentra el contenido de la variable, y no el contenido de la misma representado como un objeto. En el paso por valor, por el contrario, lo que se pasa como argumento es el valor que contenía la variable. La diferencia entre ambos estriba en que en el paso por valor los cambios que se hagan sobre el parámetro no se ven fuera de la función, dado que los argumentos de la función son variables locales a la función que contienen los valores indicados por las variables que se pasaron como argumento. Es decir, en realidad lo que se le pasa a la función son copias de los valores y no las variables en sí. Si quisiéramos modificar el valor de uno de los argumentos y que estos cambios se reflejaran fuera de la función tendríamos que pasar el parámetro por referencia. En C los argumentos de las funciones se pasan por valor, aunque se puede simular el paso por referencia usando punteros. En Java también se usa paso por valor, aunque para las variables que son objetos lo que se hace es pasar por valor la referencia al objeto, por lo que en realidad parece paso por referencia. En Python también se utiliza el paso por valor de referencias a objetos, Python para todos como en Java, aunque en el caso de Python, a diferencia de Java, todo es un objeto (para ser exactos lo que ocurre en realidad es que al objeto se le asigna otra etiqueta o nombre en el espacio de nombres local de la función). Sin embargo no todos los cambios que hagamos a los parámetros dentro de una función Python se reflejarán fuera de esta, ya que hay que tener en cuenta que en Python existen objetos inmutables, como las tuplas, por lo que si intentáramos modificar una tupla pasada como parámetro lo que ocurriría en realidad es que se crearía una nueva instancia, por lo que los cambios no se verían fuera de la función. Veamos un pequeño programa para demostrarlo. En este ejemplo se hace uso del método append de las listas. Un método no es más que una función que pertenece a un objeto, en este caso a una lista; y append, en concreto, sirve para añadir un elemento a una lista. def f(x, y): x=x+3 y.append(23) print x, y

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Glosario

Anotaciones

Bibliografía

95


s

s

o

96

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

x = 22 y = [22] f(x, y) Anotaciones

print x, y

El resultado de la ejecución de este programa sería 25 [22, 23] 22 [22, 23] Como vemos la variable x no conserva los cambios una vez salimos de la función porque los enteros son inmutables en Python. Sin embargo la variable y si los conserva, porque las listas son mutables. En resumen: los valores mutables se comportan como paso por referencia, y los inmutables como paso por valor. Con esto terminamos todo lo relacionado con los parámetros de las funciones. Veamos por último cómo devolver valores, para lo que se utiliza la palabra clave return: def sumar(x, y): return x + y print sumar(3, 2) Como vemos esta función tan sencilla no hace otra cosa que sumar los valores pasados como parámetro y devolver el resultado como valor de retorno. También podríamos pasar varios valores que retornar a return. def f(x, y): return x * 2, y * 2 a, b = f(1, 2) Sin embargo esto no quiere decir que las funciones Python puedan devolver varios valores, lo que ocurre en realidad es que Python crea una tupla al vuelo cuyos elementos son los valores a retornar, y esta única variable es la que se devuelve. 6 ENTRADA/SALIDA Y FICHEROS Nuestros programas serían de muy poca utilidad si no fueran capaces de interaccionar con el usuario. 7.1. Entrada Estándar La forma más sencilla de obtener información por parte del usuario es mediante la función raw_input. Esta función toma como parámetro una cadena a usar como prompt (es decir, como texto a mostrar al usuario pidiendo la entrada) y devuelve una cadena con los caracteres introducidos por el usuario hasta que pulsó la tecla Enter. Veamos un pequeño ejemplo: nombre = raw_input(“Como te llamas? “) print “Encantado, “ + nombre Si necesitáramos un entero como entrada en lugar de una cadena, por ejemplo, podríamos utilizar la función int para convertir la cadena a entero, aunque sería conveniente tener en cuenta que puede lanzarse una excepción si lo que introduce el usuario no es un número. try: edad = raw_input(“Cuantos anyos tienes? “) dias = int(edad) * 365


UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Desarrollo de contenidos

print “Has vivido “ + str(dias) + “ dias”

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

except ValueError: print “Eso no es un numero” La función input es un poco más complicada. Lo que hace esta función es utilizar raw_input para leer una cadena de la entrada estándar, y después pasa a evaluarla como si de código Python se tratara; por lo tanto input debería tratarse con sumo cuidado. 7.2. Parámetros de línea de comando Además del uso de input y raw_input, Python cuenta con otros métodos para obtener datos del usuario. Uno de ellos es el uso de parámetros a la hora de llamar al programa en la línea de comandos. Por ejemplo: python editor.py hola.txt En este caso hola.txt sería el parámetro, al que se puede acceder a través de la lista sys.argv, aunque, como es de suponer, antes de poder utilizar dicha variable debemos importar el módulo sys. sys.argv[0] contiene siempre el nombre del programa tal como lo ha ejecutado el usuario, sys.argv[1], si existe, sería el primer parámetro; sys.argv[2] el segundo, y así sucesivamente. import sys if(len(sys.argv) > 1): print “Abriendo “ + sys.argv[1] else: print “Debes indicar el nombre del archivo” 7.3. Salida estándar La forma más sencilla de mostrar algo en la salida estándar es mediante el uso de la sentencia print, como hemos visto multitud de veces en Entrada/Salida. Ficheros ejemplos anteriores. En su forma más básica a la palabra clave print le sigue una cadena, que se mostrará en la salida estándar al ejecutarse el estamento. >>> print “Hola mundo” Después de imprimir la cadena pasada como parámetro el puntero se sitúa en la siguiente línea de la pantalla, por lo que el print de Python funciona igual que el println de Java. En algunas funciones equivalentes de otros lenguajes de programación es necesario añadir un carácter de nueva línea para indicar explícitamente que queremos pasar a la siguiente línea. Este es el caso de la función printf de C o la propia función print de Java. Ya explicamos el uso de estos caracteres especiales durante la explicación del tipo cadena en el capítulo sobre los tipos básicos de Python. La siguiente sentencia, por ejemplo, imprimiría la palabra “Hola”, seguida de un renglón vacío (dos caracteres de nueva línea, ‘\n’), y a continuación la palabra “mundo” indentada (un carácter tabulador, ‘\t’). print “Hola\n\n\tmundo” Para que la siguiente impresión se realizara en la misma línea tendríamos que colocar una coma al final de la sentencia. Comparemos el resultado de este código: >>> for i in range(3): >>> ...print i, #0 1 2 Con el de este otro, en el que no utiliza una coma al final de la sentencia: >>> for i in range(3):

Bibliografía

97


s

s

o

98

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

>>> ...print i #0 #1

Anotaciones

#2 Este mecanismo de colocar una coma al final de la sentencia funciona debido a que es el símbolo que se utiliza para separar cadenas que queramos imprimir en la misma línea. >>> print “Hola”, “mundo” #Hola mundo Esto se diferencia del uso del operador + para concatenar las cadenas en que al utilizar las comas print introduce automáticamente un espacio para separar cada una de las cadenas. Este no es el caso al utilizar el operador +, ya que lo que le llega a print es un solo argumento: una cadena ya concatenada. >>> print “Hola” + “mundo” #Holamundo Además, al utilizar el operador + tendríamos que convertir antes cada argumento en una cadena de no serlo ya, ya que no es posible concatenar cadenas y otros tipos, mientras que al usar el primer método no es necesaria la conversión. >>> print “Cuesta”, 3, “euros” Cuesta 3 euros >>> print “Cuesta” + 3 + “euros” <type ‘exceptions.TypeError’>: cannot concatenate ‘str’ and ‘int’ objects La sentencia print, o más bien las cadenas que imprime, permiten también utilizar técnicas avanzadas de formateo, de forma similar al sprintf de C. Veamos un ejemplo bastante simple: print “Hola %s” % “mundo” print “%s %s” % (“Hola”, “mundo”) Lo que hace la primera línea es introducir los valores a la derecha del símbolo % (la cadena “mundo”) en las posiciones indicadas por los especificadores de conversión de la cadena a la izquierda del símbolo %, tras convertirlos al tipo adecuado. En la segunda línea, vemos cómo se puede pasar más de un valor a sustituir, por medio de una tupla. En este ejemplo sólo hemos tenido un especificador de conversión: %s. Los especificadores más sencillos están formados por el símbolo %seguido de una letra que indica el tipo con el que formatear el valor Por ejemplo: ESPECIFICADOR

FORMATO

%s

Cadena

%d

Entero

%o

Octal

%x

Hexadecimal

%f

Real

Se puede introducir un número entre el % y el carácter que indica el tipo al que formatear, indicando el número mínimo de caracteres que queremos que ocupe la cadena. Si el tamaño de la cadena resultante es menor que este número, se añadirán


o os

as

io

UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Desarrollo de contenidos

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

espacios a la izquierda de la cadena. En el caso de que el número sea negativo, ocurrirá exactamente lo mismo, sólo que los espacios se añadirán a la derecha de la cadena. >>> print “%10s mundo” % “Hola” ______Hola mundo >>> print “%-10s mundo” % “Hola” Hola_______mundo En el caso de los reales es posible indicar la precisión a utilizar precediendo la f de un punto seguido del número de decimales que queremos mostrar: >>> from math import pi >>> print “%.4f” % pi 3.1416

La misma sintaxis se puede utilizar para indicar el número de caracteres de la cadena que queremos mostrar >>> print “%.4s” % “hola mundo” holaPython para todo Diagrama

Objetivos

Desarrollo de contenidos

Actividades

Objetivos Lecturas seleccionadas

Inicio

ACTIVIDAD N° 2: Autoevaluación

Esta actividad puede consultarla en su aula virtual. Inicio Glosario

Bibliografía

AUTOEVALUACIÓN DE LA UNIDAD N° III Actividades Recordatorio

Autoevaluación Anotaciones

1) ¿Qué elemento determina el alcance del programa desarrollado? e) Algoritmo.

Glosario

f) Computador.

Bibliografía

g) Requerimiento. h) Tiempo. Anotaciones

2) Todo programa tiene ___________________ bien definido. 3) ¿Qué se usa para representar datos reales? a) Modelo. b) Instrucciones. c) Fotografía. d) Códigos. 4) Explotar la potencialidad del computador es tarea de ___________________

5) Es un enfoque útil utilizado para analizar un problema. a) Regla de Meier. b) Enfoque sistemático. c) Enfoque sistémico. d) Modelo mental. 6) _________________ es la acción de sintetizar una situación real, identificando los datos a procesar.

Bibliografía

99


s

s

o

100

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

7) ¿Qué debe definirse bien al escribir un algoritmo? a) Fonemas. b) Sintaxis. Anotaciones

c) Semiótica. d) Variables. 8) ___________________ es la primera y más importante etapa de la elaboración de un buen algoritmo. 9) Se utilizan para tomar decisiones e iteraciones. a) Estructuras de condición. b) Estructuras de variables. c) Estructuras secuenciales. d) Estructuras de control. 10) ___________________ solo puede tener como resultado verdadero o falso. 11) ¿Qué tipo de tipado tiene Phyton? a) Tipado. b) Variable. c) Fuerte. d) Dinámico. 12) ___________________ es la herramienta de software que permite la fácil manipulación de un lenguaje de programación. 13) Para mostrar en pantalla escribiré el comando a) Point. b) Show. c) Print. d) Present. 14) El tipo de dato ___________________ se utiliza para representar cadenas de caracteres 15) ¿Qué operador indica diferencia? a) <> b) >< c) =! d) != 16) El elemento [5, 7, 2, false] es una ___________________.

17) ¿Indique qué código devolverá “Samurái” cuando yo escriba D[“Character”]? a) D = [“Character”,”Samurai”] b) D = [“Character”:”Samurai”] c) D = {“Samurai”, Character“} d) D = {“Character”:”Samurai”} 18) ___________________ es la estructura de control condicional más utilizada.


UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Desarrollo de contenidos

19) Es un bucle que mantiene una condición inicial no necesariamente secuencial

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

a) for b) while c) if d) range Diagrama

Objetivos

Inicio

Desarrollo de contenidos

Actividades

Autoevaluación

20) ___________________ es la palabra clave usada para definir una rutina que puede ser llamada desde otra parte del código.

LECTURA SELECCIONADAS N° 2 Lecturas seleccionadas

Glosario

Bibliografía

1. LA INTELIGENCIA ARTIFICAL NOS RODEA Marino, F. (2011, Dec 05). Inteligencia artificial nos rodea. Reforma, pp. 4 Recordatorio

Anotaciones

La inteligencia artificial (IA) está en múltiples cosas con las que interactuamos todos los días, desde las búsquedas en Google, al revisar Facebook y para solicitar una tarjeta de crédito al banco, hasta escoger un producto en tiendas minoristas y departamentales, coinciden expertos en la materia. Andrew Ng, director del laboratorio de Inteligencia Artificial en la Universidad de Stanford, California, dijo que el usuario final echa mano diariamente de sus avances, sobre todo en internet. “Cuando utilizas Google, sus máquinas tienen software basado en aprendizaje que determinan los resultados más adecuados entre los millones de sitios que hay”, expresó el científico. El aprendizaje en máquinas, explicó Ng, es una ciencia de la inteligencia artificial enfocada en programar computadoras de tal modo que, a medida que ejecuta procesos e instrucciones, mejora su eficiencia y respuestas como lo harían los seres humanos, pero sin necesidad de una programación exhaustiva. “En la aplicación iPhoto de Apple, cuando reconoce a tus amigos de Facebook en las fotos, ahí está presente el aprendizaje en máquinas”, indicó el directivo de Stanford. Los sistemas de correo electrónico como Gmail, Hotmail y Yahoo cuentan con IA. la cual ayuda a determinar qué e-mail es correo basura y cuáles son necesarios para el usuario, de acuerdo con Ng. “Uno de los proyectos de investigación que hago es que las máquinas aprendan hacer la limpieza de la casa en el que los robots te ven haciendo las acciones y ellos los replican aún si no estás ahí”, mencionó el experto. Miguel Ángel Chanona, gerente del área de Information Management de IBM México, dijo que soluciones predictivas de negocio trabajan con algoritmos de inteligencia artificial que ayudan a las empresas a saber de manera anticipada cómo reaccionará su cliente. “En una tienda el sistema es capaz de decidir qué productos van ofertar, qué no le conviene vender y en donde posicionar los productos en los pasillos hasta predecir cuál va a ser el camino del cliente por la tienda departamental”, explicó Chanona. De acuerdo con el gerente de IBM, varias de las soluciones de análisis de negocio cuentan con IA para crear escenarios que podrían suceder si se toman ciertas decisiones.

Bibliografía

101


s

s

o

102

Actividades

Autoevaluación

Glosario

Bibliografía

Anotaciones

UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Por ejemplo, si las empresas bajan los precios de sus productos, el software de IA determina las ganancias o pérdidas de los próximos días o meses y así obtiene pronósticos para anticipar los resultados antes de ejecutar alguna acción. “La siguiente generación de software es la parte predictiva, que ya trae algoritmos de inteligencia, los otros tienen software estadístico”, aseguró Chanona. Estos avances ya están puestos en marcha con empresas de retail como Comercial Mexicana que, a través del monedero electrónico, predice cuál será el patrón de compra del cliente en su próxima visita al supermercado. El banco Banamex es otra compañía que usa la inteligencia artificial a su favor para reducir el riesgo al otorgar créditos y para prevenir de manera anticipada posibles fraudes. Para el académico de Stanford, el reto de la IA es que las máquinas imiten lo más posible al comportamiento humano. “Varios científicos pensamos que para dar progreso a la disciplina es necesario programar algoritmos de IA llamados neuronas en red que imitan el funcionamiento del cerebro humano”, prospectó.

2. MERCADO CRECIENTE DE APLICACIONES MÓVILES Cruz, A. (2011, Jul 25). Crece mercado de aplicaciones móviles para desarrolladores. Noticias Financieras, pp. n/a Con el nuevo mercado de aplicaciones móviles creciendo alrededor del mundo, los desarrolladores mexicanos tienen la oportunidad de mostrar su creatividad con opciones de ocio o empresariales que faciliten las labores en todo tipo de industrias. La Fundación Mexico-Estados Unidos para la Ciencia (Fumec) calcula que en nuestro país hay más de 500 desarrolladores trabajando en aplicaciones móviles, quienes consideran, deben captar las oportunidades de mercado que representan Canadá, EU y España, países que ya están en busca de talento. Brian Roberts, analista de Wave Front, explico que para 2013 en Estados Unidos el mercado móvil será dominado por los datos y ya no por la voz, debido a que las generaciones más jóvenes están adoptando cada vez más teléfonos inteligentes. Afirmo que en Canadá la tendencia es similar por lo que ambas naciones representan una ventana de crecimiento para los creadores de aplicaciones. Dijo que las ventas de tablets y smartphones ya rebasaron a las PC aumentando el número de usuarios móviles, especialmente bajo la plataforma Android que crece exponencialmente, “hay una oportunidad para los mexicanos de hacer grandes aplicaciones”. Dijo que las tiendas de aplicaciones son un gran canal para crecer y tener presencia a nivel mundial, sin embargo advirtió que deben verse como parte de una estrategia de negocio, “los desarrolladores no las ven como un lugar donde tienen que vender, pues aunque todavía no se ven grandes ingresos viniendo de ellas, si tienen que pensar en el marketing y promoción, porque ponen toda la atención en que la aplicación quede bien, pero es también importante saber venderla”. Wave Front, agrego que las aplicaciones móviles generaran 35 mil millones de dólares para 2016, siendo las empresariales las de mayor oportunidad, 58% de quienes tienen una Tablet la usan para negocios, afirma también que las opciones basadas en M2M (maquina a máquina) son las más buscadas en especial para los sectores de transportación, seguridad, retail y salud. En cuanto a ocio la oportunidad se basa en televisión satelital. Michael Kappler de International Venture Consultants (IVC) explico que en España el


os

s

o

UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Desarrollo de contenidos

Lecturas seleccionadas

mercado de aplicaciones móviles equivale a mil millones de euros, 5 veces más grande de lo que representa en Mexico, por lo que ubica a dicho país como una plataforma relevante para los mexicanos que desean crecer el alcance de sus desarrollos. “España es uno de los mercados más dinámicos en movilidad y a nivel tecnológico en Europa, Recordatorio está en una segunda generación de desarrollo, ya hay empresas que se encargan de dar posicionamiento y promoción a las aplicaciones”, explico.

Objetivos

Luego de detallar que 33% de los celulares son smartphones, siendo Android y Apple los de mayor penetración de mercado, Kappler opino que llevar soluciones a España facilita el acceso a otros mercados europeos, aunque advirtió que primero se debe alInicio canzar el éxito en el mercado nacional, estar dispuesto a destinar recursos y tener una organización estructurada.

Actividades

Autoevaluación

Glosario

Bibliografía

BIBLIOGRAFIA

Duque, R. G. (2010). Python para Todos. España: Creative Commons.

Anotaciones

Equipo LIDI. (2001). Algoritmos, datos y Programas. Buenos Aires: Pearson Education.

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Glosario

Anotaciones

Bibliografía

103


s

s

o

104

UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Actividades

Autoevaluación

Diagrama

Objetivos

Inicio

Glosario

Bibliografía

Desarrollo de contenidos

Actividades

Autoevaluación

LECTURA SELECCIONADAS N° 2 Anotaciones

Lecturas seleccionadas

Glosario

Bibliografía

Marino, F. (2011, Dec 05). Inteligencia artificial nos rodea. Reforma, pp. 4 Cruz, A. (2011, Jul 25). Crece mercado de aplicaciones móviles para desarrolladores. Noticias Financieras, pp. n/a Recordatorio

Anotaciones

CLAVES DE AUTOEVALUACIONES

UNIDAD I 1) d

2) Ciencia 3) c 4) La segunda revolución industrial 5) a 6) Bienes y Servicios 7) b 8) Sistémico 9) d 10) Incertidumbre 11) a 12) Feedback 13) d 14) Restringido y adaptable 15) b 16) Revolución pre-científica 17) c 18) Bertalanffy 19) d 20) Lenguaje de programación

UNIDAD II 1) c 2) Buses o Canales de Comunicación 3) c 4) Tubo de vacío 5) c 6) Cache 7) b 8) Ranura o Slot 9) d 10) Broadcasting 11) c 12) Pila de Red, 13) a 14) Host-To-Network 15) b 16) ISO o International Organization for Standarization 17) a 18) Router 19) a 20) Switching


UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Desarrollo de contenidos

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

UNIDAD III 1) a 2) DBMS 3) b 4) Índices 5) d 6) Cliente/Servidor 7) b 8) Software embebido o empotrado 9) c 10) Nivel 3 - Definido 11) a 12) Modelo en Cascada 13) b 14) Prototipo 15) d 16) Metodologías ágiles / Procesos ágiles 17) b 18) Desde 0.0.0.0/24 hasta 255.255.255.255/24 19) c 20) HTTTP

UNIDAD IV 1) c 2) Propósito bien definido 3) a 4) El analista y el programador 5) c 6) Abstraer 7) b 8) Analizar el problema 9) d 10) Estructura condicionada 11) d 12) IDE 13) c 14) String 15) d 16) Colección de datos 17) d 18) If … else 19) b 20) function

Bibliografía

105


s

s

o

106

UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Actividades

Autoevaluación

Diagrama

Objetivos

Inicio

Glosario

Bibliografía

Desarrollo de contenidos

Actividades

Autoevaluación

Lecturas seleccionadas

Glosario

GLOSARIO Anotaciones

Bibliografía

Debido al cambio veloz en algunos de los conceptos de este glosario, su contenido fue extraído de dos fuentes importantes: Recordatorio

• http://www.internetglosario.com/

Anotaciones

• Computing Essentials 2012 ACL: Access Control List. Lista de Control de Acceso. Un ACL es una lista que especifica los permisos de los usuarios sobre un archivo, carpeta u otro objeto. Active X: Un software desarrollado por Microsoft y lanzado al mercado en 1997, que permite que programas o contenido sea llevado a computadoras con Windows por medio del World Wide Web. ADSL: Línea de Subscripción Asimétrica Digital. Tecnología que mejora el ancho de banda de los hilos del cableado telefónico convencional que transporta hasta 16 Mbps gracias a una serie de métodos de compresión. AGP: Accelerated Graphics Port. Es una especificación de bus que proporciona una conexión directa entre el adaptador de gráficos y la memoria. Algoritmo: Palabra que viene del nombre del matemático árabe Al-Khwarizmi (780 850 aprox.). Define el conjunto de instrucciones que sirven para ejecutar una tarea o resolver un problema. Alias: Apodo o Pseudónimo. Nombre usualmente corto y fácil de recordar que se utiliza en lugar de otro nombre usualmente largo y difícil de memorizar. Almacenamiento Primario: La memoria da al procesador almacenamiento temporal para programas y datos. Todos los programas y datos deben transferirse a la memoria desde un dispositivo de entrada o desde el almacenamiento secundario (CD, DVD, etc), antes de que los programas puedan ejecutarse o procesarse los datos. Almacenamiento Secundario: El almacenamiento secundario es un medio de almacenamiento definitivo. AMD: El segundo más grande fabricante de microprocesadores, después de Intel. También fabrica memorias flash y circuitos integrados para aparatos para redes, entre otros. Fue fundada en el año 1969 y ha contribuido a que los precios de las PC sean menores por su alta calidad y buenos precios. Ancho de Banda: Bandwidth en inglés. Cantidad de bits que pueden viajar por un medio físico (cable coaxial, par trenzado, fibra óptica, etc.) de forma que mientras mayor sea el ancho de banda más rápido se obtendrá la información. Android: Android es una plataforma abierta para teléfonos móviles que fue desarrollado por Google y por el Open Handset Alliance. Google define a Android como un “grupo de programas” (software stack) para teléfonos móviles. ANSI: American National Standards Institute - Instituto de Normas de Estados Unidos. Antivirus: Programa cuya finalidad es prevenir los virus informáticos así como curar los ya existentes en un sistema.


UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Desarrollo de contenidos

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

API: Del ingles Application Programming Interface. Interfaz de Programación de Aplicaciones. Una serie de rutinas usadas por una aplicación para gestionar generalmente servicios de bajo nivel, realizados por el sistema operativo de la computadora. Aplicación: Cualquier programa que corra en un sistema operativo y que haga una función específica para un usuario.

Apple: Empresa fundada en 1976 por Steve Wozniak y Steve Jobs, pionera de tecnología, que cuenta con una extensa línea de productos como computadoras de escritorio y laptops (ej. Macbook Pro, Mac Air), reproductores de Mp3 (ej. iPod Touch, iPod Nano), tablets PC (iPad), tiendas de software (app store) y música en línea (itunes) entre otros. ARPANet: Advanced Research Projects Agency Network. Precursor del Internet desarrollado a finales de los 60’s y principios de los 70’s por el Departamento de Defensa de los Estados Unidos como un experimento de una red de área, no centralizada y amplia y que resista una guerra nuclear. ASCII: American Standard Code for Information Interchange, es un estándar para el código utilizado por computadoras para representar todas las letras mayúsculas, minúsculas, letras latinas, números, signos de puntuación, etc. ASP.Net: Acrónimo en inglés de Active Server Pages. Páginas de Servidor Activo. Son un tipo de HTML que además de contener los códigos y etiquetas tradicionales, cuenta con programas (o scripts) que se ejecutan en un servidor Microsoft Internet Information Server antes de que se desplieguen en la pantalla del usuario. ATA: Advanced Technology Attachment. Interface para conectar disco duro, cdroms, etc. También conocido como IDE. ATM: Acrónimo en inglés de Asynchronous Transfer Mode. Modo de Transferencia Asincrónica. Es una tecnología de redes de alta velocidad que transmite múltiples tipos de información (voz, vídeo, datos) mediante la creación de “paquetes de datos. Backbone: La parte de la red que transporta el tráfico más denso: conecta LANs, ya sea dentro de un edificio o a través de una ciudad o región. Backup: Copia de Respaldo o Seguridad. Acción de copiar archivos o datos de forma que estén disponibles en caso de que un fallo produzca la pérdida de los originales. Esta sencilla acción evita numerosos, y a veces irremediables, problemas si se realiza de forma habitual y periódica. Backup Remoto: Backup remoto es hacer respaldo de la data de una computadora, servidor, etc. en otra ubicación física, y por medio de “la nube” (Internet), la data se pueda accesar desde cualquier parte del mundo. Base de datos: Conjunto de datos que pertenecen al mismo contexto almacenados sistemáticamente. En una base de datos, la información se organiza en campos y registros. Los datos pueden aparecer en forma de texto, números, gráficos, sonido o vídeo. BBS: Del inglés Bulletin Board System, es un servicio de intercambio de información entre usuarios, descarga de archivos, emails, etc. Por lo general los bbs son basados en texto o gráficos ANSI limitados. Hoy en día los bbs no se usan como antes, pero en los años 80 y principios de los 90 los bbs dominaban. Beta: Es el proceso formal de solicitar información y comentarios sobre los resultados del software todavía en programación. Es la segunda parte de las pruebas que se realizan del software por los usuarios finales.

Bibliografía

107


s

s

o

108

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

BIOS: Del inglés “Basic Input/Output System” (Sistema Básico de Input/Output). El BIOS es un programa pre-instalado que la computadora usa para iniciar. Anotaciones

BIPS: Con el incremento del rendimiento de las computadoras, las medidas tradicionales pierden relevancia. El MIPS (Millones de Instrucciones por Segundo), ha sido sustituido por el BIPS (Miles de Millones de Instrucciones por Segundo), que se trata de una medida aproximada de la capacidad de proceso de un sistema. Bit: Dígito Binario. Unidad mínima de almacenamiento de la información cuyo valor puede ser 0 ó 1 (falso o verdadero respectivamente). Hay 8 bits en un byte. Bitrate: Término bastante utilizado al hablar de calidades de video y audio. Define cuánto (o el promedio) de espacio físico (en bits) toma un segundo de audio o video. BitTorrent: Herramienta peer-to-peer para la transferencia de archivos. Fue escrito por el programador Bram Cohen. Blog: Versión reducida del término “web log”. Es información que un usuario publica de forma fácil e instantánea en un sitio web. Generalmente un blog se lee en orden cronológico. Bluetooth: Estándar de transmisión de datos inalámbrico vía radiofrecuencia de corto alcance (unos 10 metros). Entre otras muchas aplicaciones, permite la comunicación entre videocámaras, celulares y computadoras que tengan este protocolo, para el intercambio de datos digitalizados (vídeo, audio, texto). Boot: En términos sencillos, boot es el sector de disco utilizado para arrancar el SO de la computadora. Bps: Bits por Segundo. Velocidad a la que se transmiten los bits en un medio de comunicación. Bridge: En redes de computadoras, un “bridge” (puente), conecta dos o más redes de área local (LAN) y WLAN entre sí. Broadband: Se refiere generalmente a conexiones a Internet con mucho más ancho de banda que con un modem de “dial-up” convencional. No hay una especificación sobre la velocidades, pero por lo general Cable Modem, DSL o ADSL. Browser: Aplicación para visualizar todo tipo de información y navegar por el www con funcionalidades plenamente multimedia. Como ejemplo de navegadores tenemos Internet Explorer, Firefox, Chrome y Safari. Buffer: El buffer contiene data que es almacenada por un corto periodo de tiempo, generalmente en el RAM de la computadora. El propósito del buffer es guardar data un poco antes que sea usada. Bug: Término aplicado a los errores descubiertos al ejecutar cualquier programa informático. Fue usado por primera vez en el año 1945 por Grace Murray Hooper, una de las pioneras de la programación moderna, al descubrir cómo un insecto (bug en inglés) había dañado un circuito de la computadora “Mark”. Bus: En una computadora, el bus es la ruta de data en el motherboard o tarjeta madre, que interconecta al microprocesador con extensiones adjuntas conectadas en espacios o slots de expansión.


UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Desarrollo de contenidos

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

Buscador: Los buscadores (o motor de búsqueda) son aquellos que están diseñados para facilitar encontrar otros sitios o páginas Web. Existen dos tipos de buscadores, los spiders (o arañas) como Google y los directorios, como Yahoo. C / C++: C++ es un lenguaje que abarca tres paradigmas de la programación: la programación estructurada, la programación genérica y la programación orientada a objetos. Cable Modem: Un cable módem es un dispositivo que permite conectar la computadora a una línea local de TV por cable a altas velocidades. Cableado: Columna vertebral de una red la cual utiliza un medio físico de cable, casi siempre del tipo de red de área local (LAN), de forma que la información se transmite de un nodo a otro. Cache: Copia que mantiene una computadora de las páginas web visitadas últimamente, de forma que si el usuario vuelve a solicitarlas, las mismas son leídas desde el disco duro sin necesidad de tener que conectarse de nuevo a la red; consiguiéndose así una mejora muy apreciable en la velocidad. Carrito de compras: Shopping Cart. Área de un sitio web de comercio electrónico donde el usuario va colocando los objetos o servicios a medida que los va comprando, de la misma manera que haría en un supermercado. Al final el usuario decide cuáles de ellos comprar. CBR: Constant Bitrate (Bitrate Constante): Término que describe cómo es codificado el audio y el video, en donde el bitrate no varía a lo largo del clip de audio o video. Certificado Digital: Acreditación emitida por una entidad o un particular debidamente autorizada garantizando que un determinado dato (una firma electrónica o una clave pública) pertenece realmente a quien se supone. Por ejemplo, VeriSign y Thawte CGA: Color Graphics Adapter. Una de las primeras tarjetas gráficas existentes para IBM y compatibles. Permitía resoluciones de 320x200 puntos con 4 colores y de 640x200 puntos en 2 colores. En la actualidad ya no se usan. CGI: Common Gateway Interface. Una interface escrita en un lenguaje de programación (Perl, C / C++, Visual Basic, etc.) y posteriormente ejecutada o interpretada por un servidor para contestar a pedidos del usuario desde una computadora con una aplicación cliente, casi siempre desde el WWW. Chat: Término utilizado para describir la comunicación de usuarios en tiempo real. Comunicación simultánea entre dos o más personas a través del Internet. Hasta hace poco tiempo sólo era posible la “conversación” escrita pero los avances tecnológicos ya permiten que la conversación se haga mediante audio y vídeo. Chip: Un chip de computadora es un pedazo de Silicon con un circuito electrónico incorporado en él. Sin embargo, el termino chip es usado popularmente, para referirse a varios componentes dentro de una computadora. Circuito integrado: Un circuito integrado es un pequeño chip que puede funcionar como un amplificador, oscilador, microprocesador o incluso una memoria de computadora. CMYK: Siglas en inglés para Cyan, Magenta, Yellow, Black (Cyan, Magenta, Amarillo, Negro). Uno de varios sistemas usados por impresoras para combinar colores primarios para producir una imágen a todo color.

Bibliografía

109


s

s

o

110

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

CODEC: Corto para comprimir/descomprimir, un códec es cualquier tecnología para comprimir y descomprimir data. Codecs pueden ser implementados en software, hardware o en la combinación de ambos. Anotaciones

Código fuente: Conjunto de instrucciones que componen un programa, escrito en cualquier lenguaje. En inglés se dice “source code”. Comercio electrónico: En inglés e-commerce. Es la compra y venta de bienes y servicios realizados a través del internet, habitualmente con el soporte de plataformas y protocolos de seguridad estandarizados. Conexión Remota: Operación realizada en una computadora remota a través de una red de computadoras, como si se tratase de una conexión local. Conmutación de Paquetes: Un portador separa los datos en paquetes. Cada paquete contiene la dirección de origen, la dirección de su destino, e información acerca de cómo volver a unirse con otros paquetes emparentados. Copyleft: Formula opuesta al copyright nacida en el ámbito del software libre (free software) mediante la cual el autor de un programa lo declara como de dominio público, incluyendo el código fuente (source code) del mismo, de forma que quien quiera puede usarlo y modificarlo. Copyright: Derecho de Copia. Derecho que tiene cualquier autor, sobre todas y cada una de sus obras de forma que podrá decidir en qué condiciones han de ser reproducidas y distribuidas. CPU: De las siglas en inglés Central Processing Unit (Unidad Central de Procesos). Es el cerebro de la computadora, y es el encargado de realizar y dirigir todas sus funciones. Cracker: Persona que trata de introducirse a un sistema sin autorización y con la intención de realizar algún tipo de daño u obtener un beneficio. Criptografía: Se dice que cualquier procedimiento es criptográfico si permite a un emisor ocultar el contenido de un mensaje de modo que sólo personas en posesión de determinada clave puedan leerlo, luego de haberlo descifrado. CRT: Siglas en inglés para Cathode Ray Tube (Tubo de Rayos Catódicos), es un dispositivo de visualización utilizado por monitores, televisiones, etc., aunque está siendo reemplazado rápidamente por nuevas tecnologías como plasma y LCD. CSS: Cascade Style Sheet. Conjunto de instrucciones HTML que definen la apariencia de uno o más elementos de un conjunto de páginas web con el objetivo de uniformizar su diseño. Data: El nombre genérico para cualquier cosa que entre, salga o se guarde en una computadora o cualquier otro medio, siempre y cuando sea todo en formato digital. Data center: Lugar para colocar grandes cantidades de servidores y equipos de comunicación; tiene todas las facilidades de ancho de banda, seguridad física, etc. DBMS: Database Management System (Sistema Gestor de Bases de Datos), es un conjunto de programas que permiten la completa administración de base de datos. Descomprimir: Acción de desempaquetar uno o más archivos que anteriormente han sido empaquetados, y habitualmente también comprimidos, en un solo archivo, con objeto de que ocupen menos espacio en disco y se precise menos tiempo para enviarlos por la red.


UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Desarrollo de contenidos

Lecturas seleccionadas

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Glosario

Desencriptación: Descifrado. Recuperación del contenido real de una información previamente encriptada o cifrada.

Desfragmentar: Desfragmentar un disco duro es el proceso en el cual se reorganizaRecordatorio la data del disco duro para que este de una manera más eficiente, por lo tanto, el disco duro funciona más rápido y mejor. DHCP: Siglas del inglés “Dynamic Host Configuration Protocol.” Protocolo Dinámico de Configuración del Host. Un servidor de red usa este protocolo para asignar de forma dinámica las direcciones IP a las diferentes computadoras de la red. Directorio Activo: El Directorio Activo, es un servicio de directorio para gestión de usuarios y redes. Directorio web: Las páginas que se incluyen en la base de datos del directorio son previamente revisadas por humanos. No se agrega la página completa, sino únicamente algunos datos tales como el título, la URL y un breve comentario redactado especialmente que explique el contenido, y se la ubica en una categoría. Disco duro: Disco de metal cubierto con una superficie de grabación magnética. Haciendo una analogía con los discos musicales, los lados planos de la placa son la superficie de grabación, el brazo acústico es el brazo de acceso y la púa (aguja) es la cabeza lectora/grabadora. Los discos magnéticos pueden ser grabados, borrados y regrabados como una cinta de audio. DLL o dll: “Dynamic Link Library” es un archivo para el sistema operativo Windows y un mini-programa ejecutable, que hace un enlace entre en el disco duro y los programas cuando son cargados. DNS: Servidor de Nombres de Dominio. Servidor automatizado utilizado en el internet cuya tares es convertir nombres fáciles de entender (como www.panamacom.com) a direcciones numéricas de IP. Dominio: Sistema de denominación de hosts en Internet el cual está formado por un conjunto de caracteres el cual identifica un sitio de la red accesible por un usuario. Driver: Un utilitario de software diseñado para decirle a la computadora como operar los aparatos externos o periféricos. Encriptación: Cifrado. Tratamiento de un conjunto de datos, contenidos o no en un paquete, a fin de impedir que nadie excepto el destinatario de los mismos pueda leerlos. Hay muchos tipos de cifrado de datos, que constituyen la base de la seguridad de la red. Eniac: Eniac, acrónimo del inglés, Electronic Numerical Integrator And Computer, fue la primera computadora electrónica de uso general (1946). Ergonomía: Ciencia que trata del encaje del hombre en su entorno técnico y laboral. Ethernet: Tipo de red de área local desarrollada en forma conjunta por Xerox, Intel y Digital Equipment. Se apoya en la topología de bus; tiene ancho de banda de 10 Mbps, por lo tanto tiene una elevada velocidad de transmisión y se ha convertido en un estándar de red. Extensión: Cadena de caracteres anexada al nombre de un archivo, usualmente antecedida por un punto y al final del nombre del archivo. Son usados para que la computadora (sistema operativo) pueda reconocer fácilmente los archivos y usar los programas asociados a sus extensiones para abrirlos y manipularlos.

Anotaciones

Bibliografía

111


s

s

o

112

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Extranet: Cuando una intranet tiene partes públicas, en donde posiblemente usuarios externos al intranet pueden llenar formularios que forman parte de procesos internos del intranet. Anotaciones

FAQ: Siglas del inglés Frequently Asked Questions (Preguntas Frecuentes), que como su nombre lo dice, es una compilación de las preguntas más frecuentes que se hacen de cualquier tema. Fibra óptica: Tipo de cable que se basa en la transmisión de información por técnicas opto eléctricas mediante una combinación de vidrio y materiales plásticos. Firewall: Combinación de hardware y software la cual separa una red de área local (LAN) en dos o más partes con propósitos de seguridad. Su objetivo básico es asegurar que todas las comunicaciones entre dicha red e Internet se realicen conforme a las políticas de seguridad de la organización que lo instala. Además, estos sistemas suelen incorporar elementos de privacidad, autentificación, etc. Firma digital: Información cifrada que identifica al autor de un documento electrónico y autentica su identidad. Frames: Opción que ofrece el lenguaje HTML de dividir una página web en varias zonas. Cada una de las cuales puede tener un contenido independiente de las demás de forma que cada zona es asimismo un frame. Freeware: Programas de Dominio Público. Aplicaciones que pueden obtenerse directamente de Internet con la característica de que no es necesario pagar por su utilización. FSF: Fundación para el Software Libre. Entidad que busca eliminar las restricciones de uso, copia, modificación y distribución del software. FTP: File Transfer Protocol. Protocolo de transferencia de archivos. Por medio de programas que usan este protocolo, se permite la conexión entre dos computadoras y se pueden cargar y descargar archivos entre el cliente y el host (servidor). Gateway: Un Gateway es un punto de red que actúa como entrada a otra red. GNU: La letras GNU se refieren en inglés a No es UNIX (Not UNIX); es un sistema de programas compatible con UNIX, desarrollado por el Free Software Foundation (FSF). GPL: Acrónimo en inglés de General Public License (Licencia Pública General). Esta licencia regula los derechos de autor de los programas de software libre (free software) promovido por el Free Software Foundation (FSF) en el marco de la iniciativa GNU. Hacker: Persona que tiene un conocimiento profundo acerca del funcionamiento de redes de forma que puede advertir los errores y fallas de seguridad del mismo. Al igual que un cracker busca acceder por diversas vías a los sistemas informáticos pero con fines no dañinos. Hacking ético: Hacking ético es una forma de referirse al acto de una persona usar sus conocimientos de informática y seguridad para realizar pruebas en redes y encontrar vulnerabilidades, para luego reportarlas y que se tomen medidas, sin hacer daño. Hipertexto: Cualquier documento que contiene vínculos con otros documentos de forma que al seleccionar un vínculo se despliega automáticamente el segundo documento. Hipervínculo: Vínculo existente en un documento hipertexto que apunta o enlaza a otro documento que puede ser o no otro documento hipertexto. Host: Servidor que nos provee de la información que requerimos para realizar algún procedimiento desde una aplicación cliente a la que tenemos acceso de diversas formas (ssh, FTP, www, email, etc.). Al igual que cualquier computadora conectada a Internet, debe tener una dirección o número IP y un nombre.


UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Desarrollo de contenidos

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

Hosting: El servicio de Web Hosting consiste en el almacenamiento de datos, aplicaciones o información dentro de servidores diseñados para llevar a cabo esta tarea. Hotspots: Áreas donde hay conexión WiFi accesible.

HTML: Siglas del inglés HyperText Markup Language (Lenguaje de Marcado Hipertexto). Es un lenguaje para crear documentos de hipertexto para uso en el www o intranets, por ejemplo. HTTP: En inglés HyperText Transfer Protocol. Protocolo de Transferencia de Hipertexto. HTTP es un protocolo con la ligereza y velocidad necesaria para distribuir y manejar sistemas de información hipermedia. HTTP ha sido usado por los servidores World Wide Web desde su inicio en 1993. HTTPS: Creado por Netscape Communications Corporation para designar documentos que llegan desde un servidor web seguro. Esta seguridad es dada por el protocolo SSL (Secure Socket Layer) basado en la tecnología de encriptación y autenticación desarrollada por RSA Data Security Inc. Hub: El punto central de conexión para un grupo de nodos; útil para la administración centralizada, la capacidad de aislar nodos de problemas y ampliar la cobertura de una LAN. Hz: unidad de frecuencia que equivale a un ciclo por segundo. ICMP: Internet Control Message Protocol. Protocolo de Control de Mensajes Internet. Es una extensión del IP (Internet Protocol) definida por RFC 792. IDE: Integrated/Intelligent Drive Electronics. Es una especificación ATA. Es la interface de disco más común para disco duros, CD ROMS, DVD, etc. Es fácil de usar, pero también tiene muchas limitaciones. IEEE: Siglas en inglés para Institute of Electrical and Electronics Engineers, organización profesional internacional sin fines de lucro, para el avance de la tecnología relacionada a la electricidad. IGP: Acrónimo del inglés “Integrated Graphics Processor” (Procesador Gráfico Integrado). Un IGP tiene el mismo propósito que una tarjeta de video, que es procesar las gráficas que la computadora despliega. Es un chip integrado a la tarjeta madre de la computadora. IIS: Microsoft Internet Information Services. Servicios de Información de Internet de Microsoft. IIS es un conjunto de servicios basados en Internet, para maquinas con Windows. IMAP: IMAP es un acrónimo del inglés Internet Message Access Protocol (Protocolo de Acceso a Mensajes de Internet). Diseñado con el fin de permitir la manipulación de cuentas de correos remotos como si fueran locales. Interface: Interfaz o interface es el punto de conexión ya sea dos componentes de hardware, dos programas o entre un usuario y un programa. Interfaz Gráfica de Usuario: En inglés Graphic User Interface, corto como GUI. Componente de una aplicación informática que el usuario visualiza gráficamente, y a través de la cual opera con ella. Está formada por ventanas, botones, menús e iconos, entre otros elementos. Internet: Una red mundial, de redes de computadoras. Es una interconexión de redes alrededor del mundo.

Bibliografía

113


s

s

o

114

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Internet2: Proyecto que trata de crear una nueva Internet de mayores y mejores prestaciones en el ámbito de las universidades norteamericanas. Anotaciones

Intranet: Red privada dentro de una compañía u organización que utiliza el navegador favorito de cada usuario, en su computadora, para ver menús con opciones desde cumpleaños del personal, calendario de citas, mensajería instantánea privada, repositorio de archivos y las normativas de la empresa entre otras. IP: Internet Protocol, Protocolo de Internet. Conjunto de reglas que regulan la transmisión de paquetes de datos a través de Internet. El IP es la dirección numérica de una computadora en Internet de forma que cada dirección electrónica se asigna a una computadora conectada a una red. IPv4: IPv4 es la cuarta revisión del Protocolo de Internet y la más usada hoy en día. Usa direcciones de 32 bits, con el formato “111.111.111.111.” Cada sección puede contener un numero de 0 hasta 255, lo cual da un total de 4,294,967,296 (2^32) direcciones IP posibles. IPv6: Con el crecimiento exponencial de las computadoras, el sistema de direcciones IP, IPv4, se va a quedar sin direcciones IP. Entra en acción IPv6, también llamado IPng (IP Next Generation - IP de Nueva Generación); es la siguiente versión planificada para el sistema de direcciones IP. ISO: International Standards Organization es una red de institutos nacionales de estándares constituido por 157 países, un miembro por país, con un secretariado central en Geneva, Suiza, en donde se coordina todo el sistema. Es el desarrollador y publicador de Estándares Internacionales más grande del mundo. ISP: Internet Service Provider. Proveedor de Servicio Internet. Empresa que provee la conexión de computadoras a Internet, ya sea por líneas dedicadas broadband o dial-up. IT: Del inglés Information Technology (Tecnología de Información). Término muy general que se refiere al campo entero de la tecnología informática, que incluye hardware de computadoras y programación hasta administración de redes. Java: Lenguaje de programación que permite ejecutar programas escritos en un lenguaje muy parecido al C++. Se diferencia de un CGI ya que la ejecución es completamente realizada en la computadora cliente, en lugar del servidor. JSP: Siglas de Java Server Pages o Páginas de servidor de Java, es la tecnología para generar páginas web de forma dinámica en el servidor, desarrollado por Sun Microsystems, basado en scripts que utilizan una variante del lenguaje java para construir páginas HTML en servidores. Kernel: Es el centro esencial de un sistema operativo, el núcleo que proporciona servicios básicos para todas las partes del sistema operativo. El kernel contrasta con el “shell”, la parte exterior del sistema operativo que interactúa con el usuario por medio de comandos. Línea Dedicada: Línea privada que se utiliza para conectar redes de área local de tamaño moderado a un proveedor de servicios de Internet y se caracteriza por ser una conexión permanente. LAN: Local Área Network. Red de área local. Red de computadoras personales ubicadas dentro de un área geográfica limitada que se compone de servidores, estaciones de trabajo, sistemas operativos de redes y un enlace encargado de distribuir las comunicaciones. LDAP: LDAP son las siglas de “Protocolo de Acceso Ligero a Directorio”. Linux: Se pronuncia Linux, y no “Lay-nux”. Es una versión de libre distribución del sistema operativo basada en UNIX.


UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Desarrollo de contenidos

Lecturas seleccionadas

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Glosario

Log Files: Registro de todos los hits que un servidor ha recibido en un período de tiempo dado el cual puede ser utilizado por auditores externos para registrar el uso del sitio.

Recordatorio Login: Clave de acceso que se le asigna a un usuario con el propósito de que pueda utilizar los recursos de una computadora. El login define al usuario y lo identifica dentro de Internet junto con la dirección electrónica de la computadora que utiliza.

Mac address: Siglas del inglés Media Access Control. Es una dirección que usualmente está compuesta por números y letras asignado a los equipos que forman parte de una red, que es único e identifica su lugar dentro de la red. Mac OS: Sistema operativo desarrollándose desde 1984 aprox., por la empresa Apple, para la Macintosh. Malware: Cualquier programa cuyo objetivo sea causar daños a computadoras, sistemas o redes y, por extensión, a sus usuarios. Mensajería instantánea: Instant Messaging (IM), en inglés, es un sistema de intercambio de mensajes entre personas, escritos en tiempo real a través de redes. Meta-tags: Son invisibles para el usuario, pero le indican a los buscadores algunos detalles sobre la página web donde están ubicados. Microprocesador: Microchip. Circuito integrado en un soporte de silicón el cual está formado por transistores y otros elementos electrónicos miniaturizados. Es uno de los elementos esenciales de una computadora. Microsoft: Fundada en 1975 por Bill Gates, entre otros. Una de las empresas más grandes de desarrollo de software a nivel mundial. Modelo Cliente-Servidor: Sistema que se apoya en terminales (clientes) conectadas a una computadora que los provee de un recurso (servidor). Modem: Equipo que permite conectar computadoras por medio de una llamada telefónica, mediante procesos denominados modulación (para transmitir información) y demodulación (para recibir información). Multimedia: Información digitalizada que combina texto, gráficos, video y audio. NAT: Network Address Translation o Network Address Translator es la traducción de IPs privados de una red en IP públicos, para que la red pueda enviar paquetes al exterior, y viceversa. Networking: Término utilizado para referirse a las redes de telecomunicaciones en general. Nodo: Cada una de las computadoras individuales u otros dispositivos de la red. NTFS: (NT file system o a veces New Technology File System) es el sistema de archivos que el sistema operativo Windows NT, Server, XP, Vista y 7 utiliza para grabar y cargar archivos en un disco duro. Offline: No estar conectado a la red. Online: Término en inglés que literalmente se traduce al español como “en línea”. Se refiere a estar conectado a una red (usualmente se usa para el internet).

Anotaciones

Bibliografía

115


s

s

o

116

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Open source: Código fuente abierto software libre, se refiere a un programa cuyo código fuente está disponible al público general, gratis, para usar y modificar. Anotaciones

Oracle: Oracle es una compañía y una herramienta cliente/servidor para la gestión de Bases de Datos. Ordenador: En Latinoamérica se le conoce comúnmente como computadora, pero en España les llaman ordenador. OSI: Interconexión de Sistemas Abiertos (Open Systems Interconnect). Es el protocolo en el que se apoya Internet. Establece la manera como se realiza la comunicación entre dos computadoras a través de siete capas: Física, Datos, Red, Transporte, Sesión, Presentación y Aplicación. Overclocking: En el mundo de las computadoras, un procesador rápido puede convertirse en aun más rápido al hacerle un “Overclocking”. Esto involucra incrementar la velocidad del reloj del CPU de como originalmente fue diseñado para correr. P2P: Peer-to-Peer. Comunicación bilateral exclusiva entre dos personas a través de Internet para el intercambio de información en general y de archivos en particular. Página Web: Su contenido puede ir desde un texto corto a un voluminoso conjunto de textos, gráficos estáticos o en movimiento, sonido, etc, en lenguaje HTML. Paquete: Un paquete es un bloque de información enviada a través de la red. La unidad de datos que se envía a través de una red la cual se compone de un conjunto de bits que viajan juntos. Par Trenzado: Cable que cuenta con hilos que vienen en pares de forma trenzada y se usan para conexiones de red. PCI: Acrónimo del inglés Peripheral Component Interconnect; es un standard creado por Intel Corporation para los bus locales. PDF: Portable Document Format (Formato de Documento Portable), formato gráfico creado por la empresa Adobe el cual reproduce cualquier tipo de documento en forma digital idéntica, permitiendo así la distribución electrónica de los mismos a través de la red en forma de archivos PDF. El programa gratuito Acrobat Reader, de Adobe, permite la visualización de los PDFs. Periféricos: Aparatos o equipos electrónicos, adicionales a una computadora (formada por memoria principal y CPU); se usa habitualmente para definir a los elementos que se conectan externamente a un puerto de la computadora. PHP: HyperText Preprocessor. Lenguaje de script diseñado para la creación de páginas web activas (similares a “.asp” de Microsoft), multiplataforma (puede correr en Windows, Mac, Linux). Usualmente se usa en conjunto con la base de datos MySQL, pero puede usar cualquier otro tipo de base de datos como por ejemplo Oracle, SQL o Postgres. Píxel: El componente más pequeño y discreto de una imagen en un monitor o pantalla. Es un punto minimo. Mientras mayor es el número de pixeles por pulgada, mayor es la resolución. Plug and Play: Característica del sistema operativo de un PC en orden de reconocer los dispositivos hardware a él conectados y ponerlos en funcionamiento de forma rápida y sencilla. Esta capacidad se popularizó a partir de la aparición del sistema operativo Windows 95 de Microsoft, que la incorporaba.


UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Desarrollo de contenidos

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Lecturas seleccionadas

Glosario

Recordatorio

Anotaciones

Plugins: Programas que se agregan a otros programas para expandir sus funciones. En el caso de los navegadores por ejemplo, producen la visualización de archivos multimedia, mp3, flash, etc.

Programación Orientada a Objetos: Programación Orientada a Objetos (POO) es una filosofía de programación que se basa en la utilización de objetos. El objetivo de la POO es “imponer” una serie de normas de desarrollo que aseguren y faciliten la mantenibilidad y reusabilidad del código. Puerto: Número que aparece tras un nombre de dominio en una URL. Dicho número va precedido del signo (dos puntos). Canal de entrada/salida de una computadora. RAM: Random Access Memory (memoria de acceso aleatorio), es la memoria temporal, que se borra apenas se apaga la computadora. Red Privada Virtual: Red en la que al menos alguno de sus componentes utiliza la red Internet pero que funciona como una red privada, empleando para ello técnicas de cifrado. Redes sociales: Las redes sociales como Facebook, Twitter, Google Plus, LinkedIn, entre otros, usualmente son sitios web que permiten la fácil interacción entre personas por medios digitales. Reverse Engineering: Se denomina al intento de descubrir el diseño a partir de la máquina. No es una actividad ilegal. También se conoce con este término la actividad del ‘cracking’, en su vertiente de desproteger programas. RGB: RGB es un modelo de color (Red Green Blue) utilizado normalmente para presentar color en los sistemas de video, cámaras, y monitores de ordenadores. Representa todos los colores como combinaciones de rojo, verde y azul. RJ45: Es un conector utilizado para el cable de red que consta de 8 hilos de cobre. ROM: Read Only Memory (memoria de solo lectura); de esta memoria, solo se puede leer pero no modificar bajo medios comunes. Router: Un router es un dispositivo que determina el siguiente punto de la red hacia donde se dirige un paquete de data en el camino hacia su destino. Ruby: Ruby es un lenguaje de programación orientado, para todo uso, dinámico y reflectivo. Se originó en Japón a mediados de los 90 por Yukihiro “Matz” Matsumoto y combina sintaxis inspirado por Perl y las funciones orientadas a objeto tipo Smalltalk. SATA: Siglas del inglés Serial ATA o Serial Advanced Technology Attachment; es un estándar (relativamente nuevo) para conectar disco duros a la computadora. Como lo indica su nombre, SATA está basado en tecnología serial, contrario a los disco duros IDE, que usan tecnología de ‘signaling’ paralela. Servidor: Un servidor es una computadora que maneja peticiones de data, email, servicios de redes y transferencia de archivos de otras computadoras (clientes). Servidor Web: Un servidor web es el programa, y la computadora que lo corre, que maneja los dominios y páginas web, interpretando lenguajes como HTML y php, entre otros. Ejemplos: Apache y Microsoft IIS. SGML: Lenguaje Estandarizado de Marcado General. Estándar internacional para la definición de métodos de representación de texto en forma electrónica no ligados a ningún sistema ni a ningún dispositivo.

Bibliografía

117


s

s

o

118

Actividades

Autoevaluación

Glosario

Bibliografía

UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Sistema Operativo: Operating System (OS) en inglés. Programa especial el cual se carga en una computadora al prenderla, y cuya función es gestionar los demás programas, o aplicaciones, que se ejecutarán. Anotaciones

SSH: Secure Shell (SSH) es un protocolo de red seguro para la comunicación de data, que permite la conexión de dos computadoras, usualmente una de ellas es un servidor Unix o Linux. SSL: Acrónimo en inglés de Secure Socket Layer. Protocolo creado por Netscape con el fin de hacer posible la transmisión encriptada y por ende segura, de información a través de la red donde sólo el servidor y el cliente podrán entender un determinado texto. Streaming video: Secuencia de video. Método de transmisión de imágenes en movimiento a través de Internet. Telefonía IP: La señal analógica de la voz es convertida en señal digital que puede transitar por Internet. La calidad del sonido en las redes TCP/IP depende del ancho de banda del que se dispone. Topología de Red: Se refiere a cómo se establece y se cablea físicamente una red. La elección de la topología afectará la facilidad de la instalación, el costo del cable y la confiabilidad de la red. Tráfico de un sitio web: Generalmente el número de personas que visitan un website. Se puede medir de distintas formas, siendo las “visitas únicas” las más cercanas a la realidad. Los “hits” son englobados y no proporcionan información útil. UDP: Acrónimo en inglés de User Datagram Protocol. Protocolo de Datagramas de Usuario. Protocolo dentro del TCP/IP que convierte mensajes de datos en paquetes para su envío vía IP pero que no pide confirmación de la validez de los paquetes enviados por la computadora emisora (no verifica que hayan sido entregados correctamente). Unicast: Comunicación establecida entre un solo emisor y un solo receptor en una red. Unidad Aritmético / Lógica: Esta unidad realiza cálculos (suma, resta, multiplicación y división) y operaciones lógicas (comparaciones). Transfiere los datos entre las posiciones de almacenamiento. Unidad de control: Es en esencia la que gobierna todas las actividades de la computadora, así como el CPU es el cerebro de la computadora, se puede decir que la UC es el núcleo del CPU. Unidad de Paquete: Pequeño programa situado entre la tarjeta de red y el programa de TCP de manera que proporciona un interfaz estándar que los programas pueden usar como si se tratase de una unidad de disco. UNIX: Sistema operativo especializado en capacidades de multiusuario y multitarea. Alta portabilidad al estar escrito en lenguaje C, lo que lo hace independiente del hardware. Upload: Proceso de transferir información desde una computadora personal a generalmente un servidor. URL: Acrónimo de Uniform Resource Locator. Localizador Uniforme de Recurso. Es el sistema de direcciones en Internet. El modo estándar de escribir la dirección de un sitio específico o parte de una información en el Web. Virtual: Término de frecuente utilización en el mundo de las tecnologías de la información y de las comunicaciones el cual designa dispositivos o funciones simulados.


UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Desarrollo de contenidos

Lecturas seleccionadas

INTRODUCCION A LA INGENIERÍA DE SISTEMAS Actividades Autoevaluación E INFORMATICA MANUAL AUTOFORMATIVO

Glosario

VoIP: La Voz sobre IP (VoIP, Voice over IP) es una tecnología que permite la transmisión de la voz a través de redes IP en forma de paquetes de datos.

Recordatorio W3C: El World Wide Web Consortium (W3C) es un consorcio internacional en donde organizaciones, los usuarios y empleados de tiempo completo desarrollan estándares y especificaciones relacionados al WWW. Se creó en 1994 por Tim Berners-Lee, inventor del World Wide Web y otros. http://www.w3.org/

WAN: Siglas del inglés Wide Área Network (Red de Área Amplia). Es una red de computadoras conectadas entre sí, usando líneas terrestres o incluso satélites para interconectar redes LAN en un área geográfica extensa que puede ser hasta de miles de kilómetros. WiFi: Abreviatura en inglés para “wireless fidelity”. Un tipo de red inalámbrica (WLAN - wireless local área networks), que usa el protocolo inalámbrico de alcance limitado IEEE 802.11b, que transmite datos en banda ancha en el rango espectral de 2.4 GHz. WiMAX: WiMAX, también conocido como “IEEE 802.16,” es parecido a WiFi, pero a diferencia del WiFi, que solo tiene un alcance de algunos cientos de pies, una señal WiMAX puede ser usada para proveer de Internet a grandes áreas, como por ejemplo edificios corporativos completos o ciudades enteras, desde una sola estación inalámbrica. Windows: Sistema operativo desarrollado por la empresa Microsoft cuyas diversas versiones (3.1, 95, 98, NT, 2000, XP, Vista, 7) han dominado el mercado de las computadoras personales, aunque no se puede decir lo mismo del mercado de redes corporativas. WLAN: Acrónimo en inglés para Wireless Local Área Network. Red inalámbrica de área local permite que un usuario móvil pueda conectarse a una red de área local (LAN) por medio de una conexión inalámbrica de radio. World Wide Web: Comúnmente conocido como WWW. Es el sistema de información basado en hipertexto, cuya función es buscar y tener acceso a documentos a través de la red de forma que un usuario pueda accesar usando un navegador web. Creada a principios de los años 90 por Tim Berners-Lee, investigador en el CERN, Suiza. La información transmitida por el www puede ser de cualquier formato: texto, gráfico, audio y video. WYSIWYG: La edición visual, también llamada WYSIWYG por What You See Is What You Get (en inglés, Lo Que Ve Es Lo Que Obtendrá), consiste en dar formato a su texto a medida que lo escribe. El editor visual va creando el código HTML “por detrás” mientras usted escribe. Tipos de letra, enlaces e imágenes se ven tal y como aparecerán en Internet, en el caso de un editor de HTML. Otros ejemplos, Microsoft Word es un procesador de palabras WYSIWYG. XML: eXtensible Markup Language. Lenguaje Extensible de Marcado. Lenguaje desarrollado por el W3 Consortium para permitir la descripción de información contenida en el WWW a través de estándares y formatos comunes, de manera que tanto los usuarios de Internet como programas específicos (agentes) puedan buscar, comparar y compartir información en la red.

Anotaciones

Bibliografía

119


s

s

o

120

UNIDAD IV: FUNDAMENTOS DE ALGORITMIA

Actividades

Autoevaluación

Diagrama

Objetivos

Glosario

Bibliografía

Desarrollo de contenidos

Actividades

Autoevaluación

Lecturas seleccionadas

Glosario

Bibliografía

Anotaciones

Inicio

BIBLIOGRAFIA

Auyang, S. Y. (2004). Engineering -- an Endless Frontier. Harvard University Press.

Recordatorio

Anotaciones

Bertalanffy, L. v. (s.f.). Teoría General de los Sistemas. Fondo de Cultura Económica de México. Bramante, J. E. (2009). Networking Self-Teaching Guide. Indianapolis: Wiley Publishing. Bunge, M. (1960). La Ciencia. su Método y su Filosofía. Mexico: Siglo XXI Editores. Duque, R. G. (2010). Python para Todos. España: Creative Commons. Equipo LIDI. (2001). Algoritmos, datos y Programas. Buenos Aires: Pearson Education. Gradín, C. (2004). Internet, Hackers y Software Libre. Argentina: Editora Fantasma. Navathe, R. E. (2007). Fundamentos de Sistemas de Bases de Datos. Madrid: Addison Wesley. Pressman, R. S. (2010). Ingeniería del Software. Mexico: Mc Graw Hill. Simon, P. (2010). The Next Wave of Technologies. New Jersey: John Wiley & Sons. Diagrama

Objetivos

Inicio

Sosinsky, B. (2009). Networking Bible. Wiley Publishing, Inc. Desarrollo de contenidos

Actividades

Autoevaluación

LECTURA SELECCIONADAS Lecturas seleccionadas

Glosario

Bibliografía

Oppenheimer, A. (2011, Jan 31). EL INFORME OPPENHEIMER / Latinoamérica requiere un ‘momento Sputnik’. Reforma, pp. 25. Recordatorio

Anotaciones

Mestres, F. (2011). Evolución: De la especie humana al cyborg/Evolution: From human species to cyborg. Sociologia y Tecno ciencia, 1(1), 37-46. BID: Nuevas tecnologías necesitan del capital humano para ganar efectividad. (2011, May 19). EFE News Service, pp. n/a. MIGUEL ÁNGEL, U. (2011, Nov 01). El Pingüino que revolucionó la Informática. Actualidad Económica, , 109 Mayol, J. (2012, Feb 06). Cambiando nuestro sistema sanitario con computación en la nube y web 3.0. Diario Médico, pp. 17 Carbajal, O. (2011, Nov 28). Falta talento para explotar la nube. Reforma, pp. 7. Herrera, X. (2011, May 11). Detallan el futuro de redes sociales. El Norte, pp. 2 Marino, F. (2011, Dec 05). Inteligencia artificial nos rodea. Reforma, pp. 4 Cruz, A. (2011, Jul 25). Crece mercado de aplicaciones móviles para desarrolladores. Noticias Financieras, pp. n/a


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.