Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
REALIZADO POR: NOMBRES Y APELLIDOS DEL DOCENTE Registro Institucional Nro. 2215 INSTITUTO SUPERIOR TECNOLÓGICO VICERRECTORADO ACADÉMICO TECNOLOGÍA SUPERIOR EN DESARROLLO DE SOFTWARE MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PRIMER SEMESTRE REALIZADO POR: Ing. Patricio Gonzalez Mg. Ing. Gabriela Quintanilla Mg. Dirección: Sucre 0438 entre Laláma y Martínez www.itsbolivar.edu.ec MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 2 ASIGNATURA: INTRODUCCIÓN AL DESARROLLO DE SOFTWARE CÓDIGO: DSB1_FT_04 CARRERA: TECNOLOGÍA SUPERIOR EN DESARROLLO DE SOFTWARE SEMESTRE: PRIMER NOMBRE DEL DOCENTE: ING. PATRICIO GONZALEZ MG. – ING. GABRIELA QUINTANILLA MG. HORAS SEMESTRALES: 90 HORAS SEMANALES: 5 La presente materia tiene como finalidad proporcionar detalladamente el mundo del desarrollo del software identificando conceptos de ingeniería de sistemas contextualizados en el mundo, el recorrido evolutivo del computador, su aporte a la sociedad, algunos de los sistemas numéricos de almacenamiento y sus respectivas conversiones al igual que su aplicabilidad en lo lúdico como en la identificación de situaciones lógicas, incursionando en la elaboración de aplicaciones en pro de la metodología orientada a objetos y algunas herramientas de uso específico. • Identificar los conceptos de ingeniería de sistemas, su contextualización a nivel global, describiendo los factores diferenciales en la actualidad • Explorar las etapas evolutivas del computador a través de la historia el aporte a la sociedad en su cotidianidad, los diferentes sistemas numéricos y de almacenamiento incluyendo la conversión al igual que su aplicabilidad tanto en lo lúdico como en la identificación de situaciones lógicas respecto a las generalidades del desarrollo de software. • Describir los conceptos y las diferentes estructuras básicas del lenguaje de programación basados en la metodología objetual, su instalación, configuración, manejo del entorno y aplicación explorando algunas herramientas como los diagramas y del uso que permiten su interpretación, diseño y modelado para la elaboración de aplicaciones en pro de la metodología orientada a objetos por medio de proyectos aplicándolos adecuadamente el desarrollar software. DATOS INFORMATIVOS PRESENTACIÓN OBJETIVOS MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 3 1. PARTES Y FUNCIONES DE COMPUTADORES Y SERVIDORES…………………………..5 1.1 Objetivos de Aprendizaje: ............................................................................................................................ 5 1.2. Fundamentación teórica: ............................................................................................................................. 5 1.2.1. El computador y sus partes ....................................................................................................................... 5 1.2.2. Funciones del computador ........................................................................................................................ 8 1.2.3. Servidores ................................................................................................................................................. 10 1.3. Guía de prácticas ........................................................................................................................................ 13 1.4. Evaluación. .................................................................................................................................................. 16 1.5. Bibliografía Y Webgrafía Sugerida ........................................................................................................... 17 2. SISTEMAS OPERATIVOS………………………………………………………………………..19 2.1. Objetivos de Aprendizaje: ......................................................................................................................... 19 2.2. Fundamentación teórica: ........................................................................................................................... 19 2.2.1. Conceptos y características de los Sistemas Operativos ....................................................................... 19 2.2.2. Funciones y tipos de Sistemas Operativos ............................................................................................. 22 2.2.3. Sistemas operativos para PC – Sistemas operativos móviles ................................................................ 24 2.2.4. Software libre y propietario – licencias .................................................................................................. 28 2.3. Guía De Prácticas ....................................................................................................................................... 36 2.4. Evaluación: ................................................................................................................................................. 37 2.5. Bibliografía Y Webgrafía Sugerida: ......................................................................................................... 38 3. LENGUAJES DE PROGRAMACIÓN……………………………………………………………40 3.1. Objetivos de Aprendizaje: ......................................................................................................................... 40 3.2. Fundamentación teórica: ........................................................................................................................... 40 3.2.1. Definición – clasificación ......................................................................................................................... 40 3.2.2. Programación imperativa ....................................................................................................................... 44 3.2.3. Programación estructurada .................................................................................................................... 47 3.2.4. Programación orientada a objetos ......................................................................................................... 52 3.3. Guía De Prácticas ....................................................................................................................................... 54 ÍNDICE MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 4 3.4. Evaluación: ................................................................................................................................................. 56 3.5. Bibliografía Y Webgrafía Sugerida: ......................................................................................................... 57 4. CICLO DE VIDA DEL SOFTWARE…………………………………………………………….58 4.1. Objetivos de Aprendizaje: ......................................................................................................................... 58 4.2. Fundamentación teórica: ........................................................................................................................... 58 4.2.1. Ciclo de vida del software ....................................................................................................................... 58 4.2.2. Métodos de desarrollo de software .........................................................................................................60 4.2.3. Métodos cascada – espiral – Modelo V .................................................................................................. 61 4.2.4. Tendencias de desarrollo Clouds ............................................................................................................ 65 4.3. Guía De Prácticas ....................................................................................................................................... 70 4.4. Evaluación: ................................................................................................................................................. 72 4.5. Bibliografía Y Webgrafía Sugerida: ......................................................................................................... 72 MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 5 1. PARTES Y FUNCIONES DE COMPUTADORES Y SERVIDORES NUMERO DE HORAS TOTAL DOCENCIA:13 PRACTICA: 9 AUTONOMA: 10 32 1.1 Objetivos de Aprendizaje: • Conoce definiciones y conceptos de desarrollo de software, cómo la estructura de un computador en hardware y software 1.2. Fundamentación teórica: 1.2.1. El computador y sus partes Funciones del computador Una computadora básicamente es un dispositivo cuya principal función es la del procesar grandes cantidades de información en forma veloz y precisa, y que realiza este procedimiento gracias a una serie de elementos de hardware y software. Una PC es capaz de realizar gran cantidad de tareas muy complejas, y es allí en donde hace uso de un conjunto de instrucciones, llamadas programas o software, que son las ordenes que la computadora debe procesar mediante el hardware, produciendo una salida de datos en un formato entendible por sus usuarios. Ventajas del computador como herramienta tecnológica. La cantidad de tiempo que puede realizar tareas sin sentir cansancio. Almacena gran cantidad de información la que puede ser utilizada cuando sea necesaria, modificarla y si fuera el caso borrarla. Reproducir e imprimirla la cantidad de veces que sea necesario un texto, o cualquier material que se necesite. Enviar o recibir información desde cualquier lugar del mundo a través del medio tan importante, eficaz y económico como es Internet 1 MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 6 Desventajas del computador como herramientas tecnológicas. La tecnología cambia rápidamente. El costo de su mantenimiento cada vez es más elevado. PARTES EXTERNAS MONITOR: es un dispositivo de salida que, mediante una interfaz, muestra los resultados del procesamiento de una computadora. El concepto de monitor fue definido por primera vez por Charles Antony Richard Hoare en un artículo del año 1974. RATÓN: es un periférico de entrada de la computadora de uso electrónico, generalmente fabricado en plástico, utilizado como entrada o control de datos. Se utiliza con una de las manos del usuario y detecta su movimiento relativo en dos dimensiones por la superficie horizontal en la que se apoya, reflejándose habitualmente a través de un puntero o flecha en el monitor. TECLADO: es un periférico o dispositivo que consiste en un sistema de teclas, como las de una máquina de escribir, que permite introducir datos a un ordenador o dispositivo digital. Los teclados están compuestos por diferentes tipos de teclas que son: las teclas alfanuméricas, las de puntuación y las especiales. CPU: Unidad de procesamiento central, esta es la parte más importante ya que es el cerebro de la computadora, dentro de ella se realizan todas las tareas comandadas por el usuario, ella consta de partes específicas internas que serán explicadas más adelante. GABINETE: El gabinete es la parte externa de la computadora y hay dos tipos principales, torre y de escritorio. En la clase de torre, las hay mini torre, media torre y torre completa que son los que se utiliza para servidores. Dentro del gabinete se encuentran todos los dispositivos principales. BOCINAS: los parlantes se utilizan para escuchar los sonidos del computador, para escuchar música o sonidos de errores, etc IMPRESORAS: es un periférico de computadora que permite producir una copia permanente de textos o gráficos de documentos almacenados en formato electrónico, imprimiendo en papel de lustre los datos en medios físicos, normalmente en papel o transparencias, utilizando cartuchos de tinta o tecnología láser. MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 7 MICRÓFONO: Aparato electrónico destinado a captar las ondas sonoras y transformarlas en oscilaciones eléctricas. ESCÁNER: es un periférico que se utiliza para convertir, mediante el uso de la luz, imágenes o cualquier otro impreso a formato digital. PARTES INTERNAS FUENTE DE PODER: La fuente de poder es un accesorio sumamente importante en cualquier equipo de cómputo debido a que almacena la energía del equipo y en caso de que se vaya la luz, le permite salvar los documentos y apagar la computadora sin la pérdida de información. MICROPROCESADOR: que también lo llamaremos procesador o CPU (Central Processing Unit – Unidad Central de Procesamiento), constituye el cerebro de una computadora. Éste se encarga de tomar la información que recibe de diferentes fuentes, efectuar los procesos necesarios a dicha información y enviar el resultado al destino que se le indicó. MEMORIAS: es el lugar donde el ordenador almacena los programas y los datos que está utilizando. Existen dos tipos de memorias: La MEMORIA RAM (Random Acces Memory). Está integrada por uno o más chips y se utiliza como memoria de trabajo donde podemos guardar o borrar nuestros programas y datos. La MEMORIA ROM (Read Only Memory) consist e en un chip que tiene gravados una serie de programas y datos indispensables para funcionamiento del ordenador: sistema de autoarranque, control del hardware básico, diagnóstico. DISCO DURO: es un dispositivo de almacenamiento no volátil, es decir conserva la información que le ha sido almacenada de forma correcta aun con la perdida de energía, emplea un sistema de grabación magnética digital, es donde en la mayoría de los casos se encuentra almacenado el sistema operativo de la computadora. TARJETA DE VIDEO: es una tarjeta de expansión para una computadora, encargada de procesar los datos provenientes de la CPU y transformarlos en información comprensible y representable en un dispositivo de salida, como un monitor o televisor. MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 8 TARJETA DE SONIDO: es una tarjeta de expansión para computadoras que permite la entrada y salida de audio bajo el control de un programa informático llamado controlador (en inglés Driver). MOTHERBOARD: (placa madre) es una tarjeta en donde se ubican los componentes clave de una computadora. Contiene el microprocesador, la memoria y otros circuitos que son fundamentales para el funcionamiento de la PC. VENTILADORES: es un abanico que se encuentra en el procesador que permite enfriar los componentesen la tarjeta madre. 1.2.2. Funciones del computador El procesador CPU por central Processing Unit o unidad central de procesamiento es por decirlo de alguna manera, el cerebro del ordenador permite el procesamiento de información numérica, es decir, información ingresada en formato binario, así como en la ejecución de instrucciones almacenada en la memoria. FUNCIONAMIENTO .- El procesador es un circuito electrónico que funciona a la velocidad de un reloj interno gracias a un cristal de cuarzo que, sometido a una corriente eléctrica, envía pulsos, denominado “PICOS”. Con cada pico de reloj, el procesador ejecuta una acción que corresponde a su vez a una instrucción o bien a una parte de ella. La medida CPI (Cicles Per Instrucción o Ciclos por Instrucción) representa el número promedio de ciclos de reloj necesarios para que el microprocesador ejecute una instrucción. En consecuencia, la potencia del microprocesador puede caracterizarse por el número de instrucciones por segundo que es capaz de procesar. Los MIPS (millones de instrucciones por segundo) sin las unidades que se utilizan, y corresponden a la frecuencia del procesador dividida por el número. PARTES PRINCIPALES DE UN PROCESADOR 1. PARTES LOGICAS La unidad central de procesamiento (CPU) es el cerebro de un ordenador su función es ejecutar problemas almacenados en la memoria de una RAM tomando sus instrucciones, examinándolas y luego ejecutándolas con otras. La CPU se compone de varias partes: 2. UNIDAD DE CONTROL MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 9 Es la encargada de activar o desactivar los diversos componentes del microprocesador en función de la instrucción que el microprocesador este ejecutando y que en función también de la etapa de dicha instrucción que se está ejecutando. La unidad de control (UC) interpreta y ejecuta las instrucciones almacenadas de la memoria principal y genera las señales de control necesarias para ejecutarlas. 3. UNIDAD ARITMETICA Y LOGICA Es la que se encarga de realizar todas las operaciones que transforma los datos, en especial operaciones matemáticas como la suma y la resta y tomar decisiones lógicas. El coprocesador matemático: o, más correctamente, la FPU (Floating Point Unit, Unidad De Coma Flotante). 4. LOS REGISTROS El procesador necesita su funcionamiento de ciertas áreas de almacenamiento de forma temporal, durante la ejecución de instrucciones, que aquí se llama registros, y que son de dimensiones mínimas; sin embargo, tiene la ventaja de ser extremadamente rápidos. Comparados con los accesos, los procesos son como mínimo diez veces más veloces. GRAFICOS DE LAS PARTES LOGICAS DEL PROCESADOR El procesador en términos generales es el cerebro de un computador, cuyas partes básicas son: el contador de un programa, el decodificador de instrucciones, los registros de unidad aritmética y lógica. Todos los datos (las instrucciones y los datos) son leídos por la CPU a través de los registros las instrucciones (el código de programa) son las ideas en un registro llamado Instruction Register y luego son decodificados mediante un decodificado, que interpreta el tipo de instrucción. MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 10 Dependiendo de la instrucción, se leen a continuación los datos a procesar los cuales se almacenan en un registro llamado acumulador o registro de trabajo que se encuentra directamente relacionado con la Unidad Aritmética y Lógica. 1.2.3. Servidores El servidor es uno de los factores clave de la transformación digital que progresivamente se va dando en las empresas. El servidor es el sistema encargado de transmitir la información para el correcto funcionamiento de la organización. De ahí que se constituya un ámbito inmerso en la evolución y que trata de perfeccionarse poco a poco y llegar a una de las más novedosas fases, como el servidor cloud o los servidores en la nube. Unas herramientas indispensables para mejorar la competitividad y gestión de las corporaciones. ¿Qué es un servidor? Un servidor es un ordenador u otro tipo de equipo informático encargado de suministrar información a una serie de clientes, que pueden ser tanto personas como otros dispositivos conectados a él. La información que puede transmitir es múltiple y variada: desde archivos de texto, imagen o vídeo y hasta programas informáticos, bases de datos, etc. El servidor dedicado es aquel que se encarga exclusivamente de atender solicitudes de los equipos clientes. Existen distintos servidores dependiendo de las funciones que estos vayan a desempeñar: servidor de archivo, que almacena y distribuye información, servidor de correo, aquel que sirve para gestionar las comunicaciones mediante el correo electrónico de la empresa, así como para su almacenamiento, o servidor de fax, cuya función es la gestión de los envíos y recepciones de este tipo de comunicación. El servidor actúa como el gran cerebro del sistema informático de la empresa, pues constituye el elemento capaz de albergar la información necesaria para el funcionamiento de cada departamento. El server tiene una gran utilidad en el funcionamiento de la empresa, ya que es capaz de llevar a cabo funciones tanto de carácter físico (funcionamiento de las máquinas y los aparatos necesarios para la actividad empresarial) como a nivel de información, ya que registra, alberga y envía la información que los distintos clientes le van solicitando. ¿Qué son los cloud servers? MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 11 Los cloud servers son unas alternativas para llevar la herramienta de los servidores al mundo virtual. La infraestructura en la nube se consigue gracias a la existencia de diversos servidores físicos controlados mediante un software, que es el encargado de virtualizar la plataforma. Los servidores en la nube ofrecen a las empresas la posibilidad de tener un servidor a medida de sus necesidades, cuyos recursos y capacidades puedan ir incrementándose a conforme aumentan el tamaño y la actividad de la empresa, lo que permite un considerable ahorro para el presupuesto de las distintas corporaciones. Los cloud servers cuentan, además, con las mejores y últimas tecnologías para un funcionamiento óptimo y una fantástica capacidad de respuesta: sistemas de discos SSD, disponibilidad total en caso de fallo, actualización constante del sistema operativo y la práctica monitorización del funcionamiento mediante avisos. Ejemplo de un Servidor Un servidor no es necesariamente una máquina de última generación de grandes proporciones, es decir un Súper Ordenador; un servidor puede ser desde una Computadora de pocos recursos, hasta una máquina sumamente potente. Todo depende del uso que se le dé al servidor. Se puede convertir al equipo desde el cual usted está leyendo esto en un servidor instalando un programa que trabaje por la red y a la que los usuarios de su red ingresen a través de un programa, por ejemplo, un Servidor Web con el Apache. Por este motivo se puede llegar a la conclusión que un servidor también puede ser un proceso que entrega información o sirve a otro proceso. El modelo Cliente-Servidor no necesariamente implica tener dos Ordenadores, porque un proceso cliente puede solicitar una impresión a un procesoservidor en un mismo Ordenador. Tipos de servidores • Servidor de archivo: es el que almacena varios tipos de archivos y los distribuye a otros clientes en la red. MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 12 • Servidor de impresiones: controla una o más impresoras y acepta trabajos de impresión de otros clientes de la red, almacenando en cola los trabajos de impresión (aunque también puede cambiar la prioridad de las diferentes impresiones), y realizando la mayoría o todas las otras funciones que en un sitio de trabajo se realizaría para lograr una tarea de impresión si la impresora fuera conectada directamente con el puerto de impresora del sitio de trabajo. • Servidor de correo: almacena, envía, recibe, en ruta y realiza otras operaciones relacionadas con email para los clientes de la red. • Servidor de fax: almacena, envía, recibe, en ruta y realiza otras funciones necesarias para la transmisión, la recepción y la distribución apropiadas de los faxes. • Servidor de la telefonía: realiza funciones relacionadas con la telefonía, como es la de contestador automático, realizando las funciones de un sistema interactivo para la respuesta de la voz, almacenando los mensajes de voz, encaminando las llamadas y controlando también la red o el Internet. • Servidor Proxy: realiza un cierto tipo de funciones a nombre de otros clientes en la red para aumentar el funcionamiento de ciertas operaciones. Ej.: (Prefetching y depositar documentos u otros datos que se soliciten muy frecuentemente), también proporciona servicios de seguridad, o sea, incluye un cortafuegos. Permite administrar el acceso a Internet en una red de Computadoras permitiendo o negando el acceso a diferentes sitios Web. • Servidor del acceso remoto: controla las líneas de módem de los monitores u otros canales de comunicación de la red para que las peticiones conecten con la red de una posición remota, responde llamadas telefónicas entrantes o reconoce la petición de la red y realiza la autentificación necesaria y otros procedimientos necesarios para registrar a un usuario en la red. • Servidor de uso: realiza la parte lógica de la Informática o del negocio de un uso del cliente, aceptando las instrucciones para que se realicen las operaciones de un sitio de trabajo y sirviendo los resultados a su vez al sitio de trabajo, mientras que el sitio de trabajo realiza el interfaz operador o la porción del GUI del proceso (es decir, la lógica de la presentación) que se requiere para trabajar correctamente. MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 13 • Servidor Web: almacena documentos HTML, imágenes, archivos de texto, escrituras, y demás material Web compuesto por datos (conocidos colectivamente como contenido), y distribuye este contenido a clientes que la piden en la red. • Servidor de Base de Datos: provee servicios de base de datos a otros programas u otras Computadoras, como es definido por el modelo Cliente-Servidor. También puede hacer referencia a aquellas Computadoras (servidores) dedicadas a ejecutar esos programas, prestando el servicio. • Servidor de reserva: Tiene el software de reserva de la red instalado y tiene cantidades grandes de almacenamiento de la red en discos duros u otras formas del almacenamiento disponibles para que se utilice con el fin de asegurarse de que la pérdida de un servidor principal no afecte a la red. Esta técnica también es denominada Clustering. • Servidores de Chat: Los servidores de Chat permiten intercambiar información a una gran cantidad de usuarios ofreciendo la posibilidad de llevar a cabo discusiones en tiempo real. • Servidor DNS: Un servidor DNS (Domain Name System) se utiliza para proveer a las computadoras de los usuarios (clientes) un nombre equivalente a las direcciones IP. El uso de este servidor es transparente para los usuarios cuando éste está bien configurado. 1.3.Guía de prácticas 1.3.1. El computador y sus partes a) Tema de guía: El computaor y sus partes b) Recursos: - Computador - Software ofimático - Conexión a internet c) Metodología MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 14 - Ejemplificar por medio de la computadora para la comprensión del computador y sus partes. - Investigación en internet para contextualizar. d) Desarrollo o procedimiento a) En un organizador gráfico determinar las funciones principales del computador. b) Realizar un gráfico en el cuál se identifiquen cada una de las partes de un computador. c) Realice un cuadro en donde se indique la diferencia y clasificación entre software y hardware. e) Resultados a) b) MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 15 c) 1.3.2. Servidores a) Tema de guía: Servidores b) Recursos: - Computador - Software ofimático - Conexión a internet MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 16 c) Metodología - Investigación en internet para contextualizar las preguntas propuestas. d) Desarrollo o procedimiento - Responda las siguientes preguntas a) ¿Cuál es la diferencia entre un servidor y un computador? b) ¿Qué características mínimas debe tener un servidor? - Desarolle un organizador gráfico de la clasificación de los servidores. e) Resultados 1.4. Evaluación. • Seleccione la respuesta correcta; el teclado, mouse, scaner son dispositivos que permiten: a) Transportar información del computador b) Ingresar información el computador MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 17 c) Sacar información del computador d) Respaldar información del computador • Dado el siguiente concepto seleccione al dispositivo que corresponda. Está integrada por uno o más chips y se utiliza como memoria de trabajo donde podemos guardar o borrar nuestros programas y datos. a) Memoria externa b) Memoria ROM c) Memoria RAM d) Memoria flash • Dentro de las partes del procesador la que se encarga de realizar todas las operaciones que transforma los datos, en especial operaciones matemáticas como la suma y la resta y tomar decisiones lógicas es: a) Unidad de control b) Registros c) Unidad aritmético lógica d) Parte lógica • Dentro de los tipos de servidores seleccione el que corresponde a) Proxy b) Software c) Licencias d) Conexión 1.5. Bibliografía Y Webgrafía Sugerida • Baturone, A. O. (1991). Control por computador: descripción interna y diseño óptimo. Marcombo. MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________Ambato 18 • Lucio, M. A. Z. (2017). Partes de una computadora. Con-Ciencia Boletín Científico de la Escuela Preparatoria No. 3, 4(7). • http://www.bloginformatico.com/partes-de-la-computadora- hardware.php. • http://mantenimiento-de-computadores.weebly.com/partes- internas-y-externas-del- computador.html • Marchionni, E. A. (2011). Administrador de servidores (Vol. 210). USERSHOP. • Barrueco, J. M., & Subirats-Coll, I. (2003). Open Archives Initiative Protocol for Metadata Harvesting (OAI-PMH): descripción, funciones y aplicación de un protocolo. El profesional de la información, 12(2), 99-106. • https://www.ecured.cu/Servidorhttps:// • https://infortelecom.es/blog/que-es-un-servidor-y-para-que-sirve/ UNIDAD 2 MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 19 2. SISTEMAS OPERATIVOS NUMERO DE HORAS TOTAL DOCENCIA:13 PRACTICA: 9 AUTONOMA: 10 32 2.1. Objetivos de Aprendizaje: Conocer sobre los lenguajes de programación y sus diferentes tipos de aplicación. 2.2. Fundamentación teórica: 2.2.1. Conceptos y características de los Sistemas Operativos Un sistema operativo (SO o, frecuentemente, OS —del inglés operating system—) es el software principal o conjunto de programas de un sistema informático que gestiona los recursos de hardware y provee servicios a los programas de aplicación de software, ejecutándose en modo privilegiado respecto de los restantes (aunque puede que parte de él se ejecute en espacio de usuario). Nótese que es un error común muy extendido denominar al conjunto completo de herramientas sistema operativo, es decir, la inclusión en el mismo término de programas como el explorador de ficheros, el navegador web y todo tipo de herramientas que permiten la interacción con el sistema operativo. Otro ejemplo para comprender esta diferencia se encuentra en la plataforma Amiga, donde el entorno gráfico de usuario se distribuía por separado, de modo que, también podía reemplazarse por otro, como era el caso de director y Opus o incluso manejarlo arrancando con una línea de comandos y el sistema gráfico. De este modo, comenzaba a funcionar con el propio sistema operativo que llevaba incluido en una ROM, MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 20 por lo que era cuestión del usuario decidir si necesitaba un entorno gráfico para manejar el sistema operativo o simplemente otra aplicación. Uno de los más prominentes ejemplos de esta diferencia, es el núcleo Linux, usado en las llamadas distribuciones Linux, ya que, al estar también basadas en Unix, proporcionan un sistema de funcionamiento similar. Este error de precisión se debe a la modernización de la informática llevada a cabo a finales de los 80, cuando la filosofía de estructura básica de funcionamiento de los grandes computadores se rediseñó a fin de llevarla a los hogares y facilitar su uso, cambiando el concepto de computador multiusuario, (muchos usuarios al mismo tiempo) por un sistema monousuario (únicamente un usuario al mismo tiempo) más sencillo de gestionar. Véase AmigaOS, beOS o Mac OS como los pioneros de dicha modernización, cuando los Amiga fueron bautizados con el sobrenombre de Video Toasters por su capacidad para la Edición de vídeo en entorno multitarea round robin, con gestión de miles de colores e interfaces intuitivos para diseño en 3D. En ciertos textos, el sistema operativo es llamado indistintamente como núcleo o kernel, pero debe tenerse en cuenta que la diferencia entre kernel y sistema operativo solo es aplicable si el núcleo es monolítico, lo cual fue muy común entre los primeros sistemas. En caso contrario, es incorrecto llamar al sistema operativo núcleo. Uno de los propósitos del sistema operativo que gestiona el núcleo intermediario consiste en gestionar los recursos de localización y protección de acceso del hardware, hecho que alivia a los programadores de aplicaciones de tener que tratar con estos detalles. La mayoría de los aparatos electrónicos que utilizan microprocesadores para funcionar, llevan incorporado un sistema operativo (teléfonos móviles, reproductores de DVD, computadoras, radios, enrutadores, etc.). En cuyo caso, son manejados mediante una interfaz gráfica de usuario, un gestor de ventanas o un entorno de escritorio, si es un celular, mediante una consola o control remoto si es un DVD y, mediante una línea de comandos o navegador web si es un enrutador. Sistemas con almacenamiento temporal de E/S Los avances en el hardware crearon el soporte de interrupciones y posteriormente se llevó a cabo un intento de solución más avanzado: solapar la E/S de un trabajo con sus propios cálculos, por lo que se creó el sistema de búfers con el siguiente funcionamiento: MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 21 • Un programa escribe su salida en un área de memoria (búfer 1). • El monitor residente inicia la salida desde el buffer y el programa de aplicación calcula depositando la salida en el buffer 2. • La salida desde el buffer 1 termina y el nuevo cálculo también. • Se inicia la salida desde el buffer 2 y otro nuevo cálculo dirige su salida al buffer 1. • El proceso se puede repetir de nuevo. Los problemas surgen si hay muchas más operaciones de cálculo que de E/S (limitado por la CPU) o si por el contrario hay muchas más operaciones de E/S que de cálculo (limitado por la E/S). Spoolers Hace aparición el disco magnético con lo que surgen nuevas soluciones a los problemas de rendimiento. Se eliminan las cintas magnéticas para el volcado previo de los datos de dispositivos lentos y se sustituyen por discos (un disco puede simular varias cintas). Debido al solapamiento del cálculo de un trabajo con la E/S de otro trabajo se crean tablas en el disco para diferentes tareas, lo que se conoce como Spool (Simultaneous Peripherial Operation On-Line). Sistemas operativos multiprogramados Surge un nuevo avance: el hardware con protección de memoria, ofreciendo nuevas soluciones a los problemas de rendimiento: • Se solapa el cálculo de unos trabajos con la entrada/salida de otros trabajos. • Se pueden mantener en memoria varios programas. • Se asigna el uso de la CPU a los diferentes programas en memoria. Con los cambios anteriores el monitor residente debe abordar nuevas tareas, naciendo los Sistemas Operativos multiprogramados con las siguientes funciones: • Administrar la memoria. • Gestionar el uso de la CPU (planificación). • Administrar el uso de los dispositivos de E/S. MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 22 Cuando desempeña esas tareas, el monitor residente se transforma en un sistema operativo multiprogramado. 2.2.2. Funciones y tipos de Sistemas Operativos Un sistema operativo es el software principal o conjunto de programas de un sistema informático que gestiona los recursos de hardware y provee servicios a los programas de aplicación de software, ejecutándose en modo privilegiado respecto de los restantes (aunque puede que parte de él se ejecute enespacio de usuario). Los Sistemas Operativos son el primer componente de lo que a veces se denomina software de base. Todo otro componente de software que se utiliza en un computador de propósitos generales está justamente condicionado por el equipamiento físico y el Sistema Operativo. La presencia de los Sistemas Operativos, con diferentes grados de desarrollo y diferentes prestaciones, viene desde los albores de la computación, ya que muy pronto los computadores fundacionales incorporaron Sistemas Operativos para administrar el equipamiento físico disponible. Recientemente los Sistemas Operativos se han extendido a otros dispositivos como los teléfonos y otros equipos dedicados con características inimaginables hace unos pocos años. Esta proliferación de los Sistemas Operativos en equipamientos de características notoriamente similares entre ellos, no ha terminado, estrictamente está en la primera etapa de su difusión. La existencia de cada vez más sistemas operativos diferentes con interfaces, apariencias y servicios diferentes, ejecutándose sobre dispositivos también muy diferentes hace que la Universidad deba concentrarse en los conceptos esenciales que subyacen bajo esta dispersión de formas. Las tendencias observables actualmente sugieren una expansión de los denominados servicios en la nube (cloud computing). Una de las consecuencias está relacionada con varios proyectos de empresas líderes en el área de la computación, intentando avanzar en la dirección de transferir gran parte del procesamiento de los computadores aislados a grandes computadores centralizados y reducir el procesamiento local al ingreso de información y la visualización de los resultados. MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 23 La viabilidad de este tipo de soluciones tecnológicas es contingente, pero la educación universitaria en el dominio de la computación debe tener en cuenta este tipo de visiones e incorporarla a su curricula. Clases de sistemas operativos Los sistemas operativos pueden ser clasificados de la siguiente manera: A) Según la administración de tareas: – Monotarea: este tipo de sistemas operativos son capaces de manejar un programa o realizar una sola tarea a la vez. Son los más antiguos. Por ejemplo, si el usuario está escaneando, la computadora no responderá a nuevas indicaciones ni comenzará un proceso nuevo. – Multitarea: esta característica es propia de los S.O. más avanzados y permiten ejecutar varios procesos a la vez, desde uno o varios ordenadores, es decir que los pueden utilizar varios usuarios al mismo tiempo. Esto se puede realizar por medio de sesiones remotas una red o bien, a través de terminales conectadas a una computadora. B) Según la administración de usuarios: – Monousuario: Sólo pueden responder a un usuario por vez. De esta manera, cualquier usuario tiene acceso a los datos del sistema. Existe un único usuario que puede realizar cualquier tipo de operación. – Multiusuario: esta característica es propia de aquellos S.O. en los que varios usuarios pueden acceder a sus servicios y procesamientos al mismo tiempo. De esta manera, satisfacen las necesidades de varios usuarios que estén utilizando los mismos recursos, ya sea memoria, programas, procesador, impresoras, scanner, entre otros. Tipos de Sistemas Operativos Microsoft Windows El sistema operativo de Windows 7 se dio a conocer en el año 2009 Microsoft creó el sistema operativo Windows a mediados de 1980. A lo largo de los años, han ido apareciendo diferentes versiones de Windows, pero las más recientes son el Windows 8 (publicado en 2012), el Windows 7(2009) y el Windows Vista (2007). MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 24 Mac OS X MAC OS es una línea de sistemas operativos creados por Apple. Viene precargada en todos los ordenadores nuevos de Macintosh o Macs. Las versiones más recientes son conocidas como OS X, y versiones específicas incluyendo Yosemite (publicada en 2014), (2012), Lion (2011), y Snow Leopard (2009). Apple también ofrece una versión llamada Mac OS X Server, diseñada para ser ejecutada en los servidores. Linux Tux es la mascota del sistema operativo Linux, ideada por Linus Torvalds y diseñada por Larry Ewing en 1996 Linux es una familia de sistemas operativos de código abierto, lo que significa que ellos pueden ser modificados y distribuidos por cualquier persona alrededor de todo el mundo. Esta es la diferencia con respecto al software con propiedad como Windows, ya que solo puede ser modificado por la compañía a la que pertenece (Microsoft). Las ventajas de Linux son que es gratuito y que tiene muchas versiones diferentes, por lo que puedes elegir. Cada versión tiene una apariencia diferente, y las más populares incluyen Ubuntu, Mint y Fedora. 2.2.3. Sistemas operativos para PC – Sistemas operativos móviles Los sistemas operativos móviles Los Sistemas Operativos para teléfonos móviles se vuelven cada día más importantes pues la tecnología avanza y en materia de comunicaciones aún más, la telefonía celular cada vez se convierte más en una parte importante de nuestras vidas, y en una sociedad que exige más y más, es importante diseñar sistemas que soporten las aplicaciones que se demandan, que sean fluidos, fáciles, accesibles y hasta divertidos. Es por eso que las compañías móviles han desarrollado una competencia bastante reñida en cuanto al desarrollo de SO se refiere, desde los inicios en los años 90 con las versiones de EPOC32 para PDA’s hasta los más avanzados y sofisticados como Android, IOS, BlackBerry que además de ser MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 25 eficientes y estables son multiplataforma, lo que hace que cualquier persona tenga acceso a ellos desde un celular básico hasta un Smartphone. Además, cada vez más usuarios les agradan la idea de manipular y estilizar sus equipos y es lo que los nuevos SO están ofreciendo y esto implica más retos de programación e incluso en el Hardware. Un sistema operativo móvil o SO móvil es un sistema operativo que controla un dispositivo móvil al igual que las Computadoras más grandes utilizan Windows, Linux o Mac OS entre otros. Sin embargo, los sistemas operativos móviles son mucho más simples y están más orientados a la conectividad inalámbrica, los formatos multimedia para móviles y las diferentes maneras de introducir información en ellos. COMPONENTES DE LOS SISTEMAS OPERATIVOS EN DISPOSITIVOS MÓVILES: Capas: Al igual que los sistemas operativos presentes en los componentes informáticos más grandes, un sistema operativo móvil también se encuentra compuesto por varias capas Kernel: Una de las más importantes y esenciales piezas que componen cualquier sistema operativo, sea el de nuestro móvil, o el de la PC, es el denominado núcleo o Kernel, el cual es la capa de software que permite el acceso a los diferentes elementos de hardware que conforman nuestro móvil. Middleware: Esta capa es el conjunto de módulos que permite que las aplicaciones diseñadas y escritas para tales plataformas puedan ser ejecutadas. Su funcionamiento es totalmente trasparente para el usuario, no debiendo realizar ninguna acción ni configurar alguna para su correcto desenvolvimiento. El Middlewarebrinda la posibilidad de ejecutar servicios muy importantes para que otras aplicaciones, en capas superiores de la jerarquía, puedan ejecutarse. Entorno de ejecución de aplicaciones: Esta capa provee de todos los elementos necesarios para la creación y desarrollo de software a los programadores, es decir contiene elementos que serán de gran ayuda a los mismos, en el momento de escribir aplicaciones compatibles con ese sistema operativo. MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 26 Interfaz de usuario: La interfaz de usuario es el elemento del teléfono que usualmente utilizamos para interactuar con el aparato. Sin esta capa no sería posible utilizar nuestro dispositivo, ya que la misma 6 presenta todos los elementos necesarios para facilitar cualquier tipo de tarea que deseemos realizar en nuestra terminal. Además, incluye todos los elementos gráficos que harán posible el uso cómodo y sencillo del móvil: botones, menús, pantallas y listas, entre otros. LOS TRES SISTEMAS OPERATIVOS MÓVILES MÁS UTILIZADOS Android: Es un sistema operativo móvil basado en Linux, que junto con aplicaciones middleware está enfocado para ser utilizado en dispositivos móviles como teléfonos inteligentes, tabletas, Google TV y otros dispositivos. Es desarrollado por la Open Handset Alliance, la cual es liderada por Google. Este sistema por lo general maneja aplicaciones como Google Play. Fue desarrollado inicialmente por Android Inc., una firma comprada por Google en 2005. Es el principal producto de la Open Handset Alliance, un conglomerado de fabricantes y desarrolladores de hardware, software y operadores de servicio. iOS: iOS (anteriormente denominado iPhone OS) es un sistema operativo móvil de Apple. Originalmente desarrollado para el iPhone, siendo después usado en dispositivos como el iPod Touch, iPad y el Apple TV. Apple, Inc. no permite la instalación de iOS en hardware de terceros. Tenía el 26% de cuota de mercado de sistemas operativos móviles vendidos en el último cuatrimestre de 2010, detrás de Google Android y NokiaSymbian. En mayo de 2010 en los Estados Unidos, tenía el 59% de consumo de datos móviles (incluyendo el iPod Touch y el iPad). BlackBerry: BlackBerry: 6 es un sistema desarrollado por Research In Motion el cual fue presentado en el WES 2010 junto con un video promocional donde se muestra algunas novedades. RIM apuesta que su BlackBerry 6 estará enfocado en el mercado corporativo y no-corporativo. La mejor experiencia de este sistema se encontrará en los equipos touchscreen (Pantalla Táctil), aunque RIM aseguro que en los equipos que cuenten con un TouchPad o TrackPad podrán ejecutarlo ya que ejerce casi la misma función. Así mismo todavía RIM MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 27 no ha aclarado cúales son los equipos que se podrán actualizar a esta versión, aunque hay muchos rumores al respecto. Sistemas operativos para PC El sistema operativo comienza a trabajar en cuanto se enciende el ordenador y es completamente fundamental para que el usuario trabaje con él. Los sistemas operativos realizan tareas básicas y, sin ellos, el ordenador no funcionaría. Así, por ejemplo, el sistema operativo reconoce la conexión del teclado, organiza y ordena los archivos, controla la impresora, la pantalla, etc. Es como un policía de tráfico pues, se encarga de que los programas no interfieran entre ellos. Sobre el sistema operativo se instalan los programas que vaya a usar el usuario. Los programas, también llamados aplicaciones son muy diversos. Ejemplo: El procesador de textos Word. Sistemas operativos hay muchos, aunque mucha gente piensa que sólo existe el famoso Windows. Veamos algunos: 1. Windows (en sus diferentes versiones): Windows XP, Windows Vista, ... Es un sistema operativo propiedad de la empresa Microsoft que es privativo (de pago). 2. Mac OS: Es un sistema operativo propiedad de la empresa Apple, (el creador del IPod) que es privativo. 3. Unix: Sistema operativo empleado por las supercomputadoras y ordenadores de grandes empresas, propiedad de la empresa AT&T y es privativo. Es un sistema muy seguro. 4. GNU/Linux: Sistema operativo que está en alza, completamente gratuito. Cualquiera lo puede modificar según sus necesidades. Además, es bastante seguro. 5. FreeBSD: Sistema operativo gratuito y según algunos autores uno de los más seguros. Los sistemas operativos tienen numerosas funciones: 1. Gestionan la memoria RAM de los distintos procesos. Un proceso es simplemente, un programa en ejecución, es decir, una tarea que realiza el ordenador. 2. Gestiona el almacenamiento de información de forma permanente en unidades de disco (disco duro, disquetes, pen drives, etc). 3. Gestiona el sistema de archivos que nos permite crear, eliminar y manipular archivos y carpetas (también llamadas directorios). 4. Crea mecanismos de protección para evitar el acceso de intrusos a recursos o servicios no autorizados. MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 28 5. Dispone de un intérprete de comandos. Es un recurso que permite al usuario comunicarse con el sistema operativo a través de órdenes o comandos que son escritos. También se llama consola o shell. 6. El Sistema Operativo gestiona los sistemas de entrada/salida, es decir, controla los diferentes dispositivos conectados al ordenador (monitor, impresora, etc.) La parte más importante del Sistema Operativo se llama núcleo o kernell. Asigna tareas al procesador siguiendo un orden y administrando los tiempos que lleva cada tarea. Hoy en día los sistemas operativos llevan incluidas diferentes aplicaciones. Así, por ejemplo, Windows se vende con aplicaciones como Paint, Notepad, el juego del solitario, etc. Al conjunto del Sistema Operativo con las aplicaciones se le llama distribución. Ejemplo: El famoso Sistema Operativo Windows Vista tiene diferentes distribuciones, por ejemplo: • Windows Vista Home Basic: Pensada para el usuario doméstico. • Windows Vista Home Premium: Pensada para usuarios domésticos más exigentes. • Windows Vista Business: Incluye aplicaciones pensadas para negocios. Controladores de dispositivos Para que los diferentes dispositivos conectados al ordenador funcionen (ratón, impresora, escáner, ...) es preciso tener instalados en el sistema operativo unos programas llamados controladores, también llamados drivers. Así, si no se tienen los drivers de una impresora que hayas comprado, la impresora no funcionará de ningún modo. Afortunadamente, los sistemas operativos actuales detectan la mayoría del hardware automáticamente, mediante el método “plug and play”. Ejemplo: Cuando conectas un Pen Drive a un ordenador, si el ordenador tiene instalado el Sistema Operativo Windows XP (o superior), automáticamente el sistema detecta la presencia del Pen Drive y posteriormente tras esperar un tiempo, instala automáticamente los drivers del Pen Drive. 2.2.4. Software libre y propietario – licencias Software libre: Software Libre se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar, cambiar y mejorar el software. De modo más preciso, se refiere a cuatro libertades de los usuarios del software: MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWAREPERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 29 La libertad de usar el programa, con cualquier propósito (libertad 0). La libertad de estudiar cómo funciona el programa, y adaptarlo a tus necesidades (libertad 1). El acceso al código fuente es una condición previa para esto. La libertad de distribuir copias, con lo que puedes ayudar a tu vecino (libertad 2). La libertad de mejorar el programa y hacer públicas las mejoras a los demás, de modo que toda la comunidad se beneficie. (libertad 3). El acceso al código fuente es un requisito previo para esto. Un programa es software libre si los usuarios tienen todas estas libertades. Así pues, deberías tener la libertad de distribuir copias, sea con o sin modificaciones, sea gratis o cobrando una cantidad por la distribución, a cualquiera y a cualquier lugar. El ser libre de hacer esto significa (entre otras cosas) que no tienes que pedir o pagar permisos. También deberías tener la libertad de hacer modificaciones y utilizarlas de manera privada en tu trabajo u ocio, sin ni siquiera tener que anunciar que dichas modificaciones existen. Si publicas tus cambios, no tienes por qué avisar a nadie en particular, ni de ninguna manera en particular. La libertad para usar un programa significa la libertad para cualquier persona u organización de usarlo en cualquier tipo de sistema informático, para cualquier clase de trabajo, y sin tener obligación de comunicárselo al desarrollador o a alguna otra entidad específica. La libertad de distribuir copias debe incluir tanto las formas binarias o ejecutables del programa como su código fuente, sean versiones modificadas o sin modificar (distribuir programas de modo ejecutable es necesario para que los sistemas operativos libres sean fáciles de instalar). Está bien si no hay manera de producir un binario o ejecutable de un programa concreto (ya que algunos lenguajes no tienen esta capacidad), pero debes tener la libertad de distribuir estos formatos si encontraras o desarrollaras la manera de crearlos. Para que las libertades de hacer modificaciones y de publicar versiones mejoradas tengan sentido, debes tener acceso al código fuente del programa. Por lo tanto, la posibilidad de acceder al código fuente es una condición necesaria para el software libre. Para que estas libertades sean reales, deben ser irrevocables mientras no hagas nada incorrecto; si el desarrollador del software tiene el poder de revocar la licencia, aunque no le hayas dado motivos, el software no es libre. MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 30 Son aceptables, sin embargo, ciertos tipos de reglas sobre la manera de distribuir software libre, mientras no entren en conflicto con las libertades centrales. Por ejemplo, copyleft es la regla que implica que, cuando se redistribuya el programa, no se pueden agregar restricciones para denegar a otras personas las libertades centrales. Esta regla no entra en conflicto con las libertades centrales, sino que más bien las protege. 'Software libre' no significa 'no comercial'. Un programa libre debe estar disponible para uso comercial, desarrollo comercial y distribución comercial. El desarrollo comercial del software libre ha dejado de ser inusual; el software comercial libre es muy importante. Software propietario: Se denomina con el falso amigo software propietario, o, dicho correctamente, privativo, al software del cual no existe una forma libre de acceso a su código fuente, el cual solo se encuentra a disposición de su desarrollador y no se permite su libre modificación, adaptación o incluso lectura por parte de terceros. El término ha sido creado para designar al antónimo del concepto de software libre, por lo cual en diversos sectores se le han asignado implicaciones políticas relativas al mismo. Para la Fundación para el Software Libre (FSF), este concepto se aplica a cualquier programa informático que no es libre o que solo lo es parcialmente (semilibre), sea porque su uso, redistribución o modificación está prohibida, o sea porque requiere permiso expreso del titular del software. La persona física o jurídica (compañía, corporación, fundación, etc.), al poseer los derechos de autor sobre un software, tiene la posibilidad de controlar y restringir los derechos del usuario sobre su programa, lo que en el software no libre implica por lo general que el usuario solo tendrá derecho a ejecutar el software bajo ciertas condiciones, comúnmente fijadas por el proveedor, que signifique la restricción de una o varias de las cuatro libertades. Software propietario: No existe consenso sobre el término a utilizar para referirse al opuesto del software libre. La expresión software propietario proviene del término en inglés "proprietary software". En la lengua anglosajona, "proprietary" significa «poseído o controlado privadamente» («privately owned and controlled»), que destaca la manutención de la reserva de derechos sobre el uso, modificación o redistribución del software. Inicialmente utilizado, pero con el inconveniente de que la acepción proviene de una MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 31 traducción inapropiada del inglés, no correspondiendo su uso como adjetivo en el español, de manera que puede ser considerado como un barbarismo. Visto desde la perspectiva de la traducción, el término "propietario" en español resultaría inadecuado, pues significa que «tiene derecho de propiedad sobre una cosa»,7 por lo que no podría calificarse de "propietario" al software,8 porque éste no tiene propiedad sobre nada (es decir, no es dueño de nada) y, además, no podría serlo (porque es una cosa y no una persona). Asimismo, la expresión "software propietario" podría ser interpretada como "software sujeto a propiedad" (derechos o titularidad) y su opuesto, el software libre, también tiene un propietario (quien desarrolla el código) y está sujeto al derecho de autor, siendo la diferencia entre ambos el modelo de licencia a aplicar. Otra interpretación es que contrariamente al uso popular del término, se puede afirmar de que "todo software es propietario", por lo que la forma correcta de referirse al software con restricciones de uso, estudio, copia o mejora es la de software privativo, según esta interpretación el término "propietario" podría aplicarse tanto para software libre como software privativo, ya que la diferencia entre uno y otro está en que el dueño del software privativo lo licencia como propiedad privada y el de software libre como propiedad social. Con la intención de corregir el defecto de la expresión "software propietario" aparece el llamado "software con propietario", sin embargo, se argumenta contra del término "con propietario" justamente su similitud con proprietary en inglés, que solo haría referencia a un aspecto del software que no es libre, manteniendo una de las principales críticas a éste (de "software sujeto a derechos" o "propiedad"). Adicionalmente, si "propietario" refiere al titular de los derechos de autor (y está claro que no puede referir al usuario, en tanto éste es simplemente un cesionario), no resuelve la contradicción: todo el software libre tiene también titulares de derechos de autor. Software privativo: Según la opinión de algunos activistas del Movimiento de Software Libre, el término "software propietario" fue introducido porempresas desarrolladoras como campaña publicitaria para desacreditar al software libre en cuanto a la propiedad de este haciéndola parecer como difusa y sin ninguna garantía de soporte legal para quien lo adquiría. La expresión software privativo comenzó al ser utilizada por Richard Stallman, desde el año 2003, en sus conferencias sobre software libre, siendo en su opinión más adecuada que "software propietario". MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 32 Según Stallman, el término "privativo" significa "que causa privación o restricción de derechos o libertades", justamente lo que se pretende describir con él: la privación a los usuarios de sus libertades en relación al software, esto desde el punto de vista de las organizaciones que apoyan las opciones de software libre.10 Por las cuestiones políticas implicadas en el término, en especial por la participación de la Free Software Foundation y de su líder y fundador, Richard Stallman, existe controversia acerca de la adopción de esta denominación como la oficial en torno a los desarrollos de software libre y/o de código abierto. La expresión software no libre (en inglés non-free software) es usado por la FSF para agrupar todo el software que no es libre, es decir, incluye al llamado en inglés semi-free software (software semilibre) y al propietary software.11 Asimismo, es frecuentemente utilizado para referirse al software que no cumple con las Directrices de software libre de Debian, las cuales siguen la misma idea básica de libertad en el software, propugnada por la FSF, y sobre las cuales está basada la definición de código abierto de la Open Source Initiative. Adicionalmente el software de código cerrado nace como antónimo de software de código abierto y por lo tanto se centra más en el aspecto de ausencia de acceso al código que en los derechos sobre el mismo. Éste se refiere solo a la ausencia de una sola libertad por lo que su uso debe enfocarse solo a este tipo de software y aunque siempre signifique que es un software que no es libre, no tiene que ser software de código cerrado. La expresión software privado es usada por la relación entre los conceptos de tener y ser privado. Este término sería inadecuado debido a que, en una de sus acepciones, la palabra "privado" se entiende como antónimo de "público", es decir, que «no es de propiedad pública o estatal, sino que pertenece a particulares»,7 provocando que esta categoría se interpretara como no referente al Estado, lo que produciría la exclusión del software no libre generado por el aparato estatal. Además, el "software público" se asocia generalmente con software de dominio público. MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 33 En Derecho, una licencia es un contrato mediante el cual una persona recibe de otra el derecho de uso, de copia, de distribución, de estudio y de modificación (en el caso del Software Libre) de varios de sus bienes, normalmente de carácter no tangible o intelectual, pudiendo darse a cambio del pago de un monto determinado por el uso de los mismos. Estos activos son propiedad del otorgante, y pueden ser bienes de propiedad intelectual como una marca, patentes o tecnologías. También pueden ser objeto de licencia otros bienes de carácter intangible como la distribución de obras intelectuales. Una licencia de software es un contrato entre el licenciante (autor/titular de los derechos de explotación/distribución) y el licenciatario (usuario consumidor, profesional o empresa) del programa informático, para utilizarlo cumpliendo una serie de términos y condiciones establecidas dentro de sus cláusulas, es decir, es un conjunto de permisos que un desarrollador le puede otorgar a un usuario en los que tiene la posibilidad de distribuir, usar o modificar el producto bajo una licencia determinada. Además, se suelen definir los plazos de duración, el territorio donde se aplica la licencia (ya que la licencia se soporta en las leyes particulares de cada país o región), entre otros. Las licencias de software pueden establecer entre otras cosas: la cesión de determinados derechos del propietario al usuario final sobre una o varias copias del programa informático, los límites en la responsabilidad por fallos, el plazo de cesión de los derechos, el ámbito geográfico de validez del contrato5 e incluso pueden establecer determinados compromisos del usuario final hacia el propietario, tales como la no cesión del programa a terceros o la no reinstalación del programa en equipos distintos al que se instaló originalmente. ¿Qué es el Copyleft? MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 34 Se puede definir como otra versión del famoso copyright; y está hecho para regular las licencias de software libre. Normalmente, la función del copyright es evitar que algún material sea modificado y distribuido por alguien ajeno a la autoría de dicho producto; sin embargo, esto se contrapone con la filosofía del software libre y es por ello que nació el copyleft. Así que, esta legislación se encarga de impedir que sea usado el código fuente sin autorización; y además, define las condiciones bajo las cuales se puede hacer uso de él. Licencia de Software libre sin protección Copyleft Al distribuir un software bajo está licencia, estás autorizando a terceros para no solo modificar tu producto; si no también, para poder licenciar el mismo bajo sus propios términos. Esto puede provocar, que un software libre hecho a partir de tu obra y que estaba destinado a apoyar la comunidad; pueda ser privatizado por algún desarrollador que lo modifique. Licencia de Software libre con protección Copyleft A diferencia de la licencia anterior, está obliga a que los programadores que quieran redistribuir tu código deban seguir los lineamientos y restricciones que les hayas impuesto, ni más, ni menos. Por ejemplo, si tu código es de acceso, modificación y distribución libre; los que se deriven de él también deben estar licenciados bajo los mismos términos y no podrían ser privatizados. Licencias GPL (Licencia Pública General Reducida de GNU) Es un ejemplo de software libre con protección copyleft; sin embargo, sus términos le permiten integrarse con módulos de software no libre y también poderse comercializar. Ya que está licencia declara de forma explicíta que cualquier obra con licencia GPL puede ser vendida a cualquier precio o distribuida gratuitamente; dando así libertad a las empresas para beneficiarse con el uso de su extenso acervo de librerías; o bien, seguir aportando más software gratuito a la comunidad. Elementos personales de una licencia de software: Licenciante El licenciante o proveedor-licenciante es aquel que provee el software más la licencia al licenciatario, la cual, le permitirá a este último tener ciertos derechos sobre el software. El rol de licenciante lo puede ejercer cualquiera de los siguientes actores: MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 35 ● Autor: el o conjunto de desarrolladores que crea el software son por antonomasia quienes en una primera instanciaposeen el rol de licenciante al ser los titulares originales del software. ● Titular de los derechos de explotación: es la persona natural o jurídica que recibe una cesión de los derechos de explotación de forma exclusiva del software desde un tercero, transformándolo en titular derivado y licenciantes del software. ● Distribuidor: es la persona jurídica a la cual se le otorga el derecho de distribución y la posibilidad de generar sub-licencias del software mediante la firma de un contrato de distribución con el titular de los derechos de explotación y producto. Garantía de titularidad Es la garantía ofrecida por el licenciante o propietario, en la cual, asegura que cuenta con suficientes derechos de explotación sobre el software como para permitirle proveer una licencia al licenciatario. Licenciatario El licenciatario o usuario-licenciatario es aquella persona física o jurídica que se le permite ejercer el derecho de uso más algún otro derecho de explotación sobre un determinado software cumpliendo las condiciones establecidas por la licencia otorgada por el licenciante. ● Usuario consumidor: persona natural que recibe una licencia de software otorgada por el licenciante, la cual, se encuentra en una posición desventajosa ante los términos y condiciones establecidas en ella. ● Usuario profesional o empresa: persona natural o jurídica que recibe una licencia de software otorgada por el licenciante, la cual, se encuentra en igualdad de condiciones ante el licenciante para ejercer sus derechos y deberes ante los términos y condiciones establecidos en la licencia. Elementos objetivos de una licencia de software Plazo El plazo determina la duración en el tiempo durante la cual se mantienen vigentes los términos y condiciones establecidos en licencia. Las licencias sobre la base de sus plazos se pueden clasificar en • Licencias con plazo específico. • Licencias de plazo indefinido. • Licencias sin plazo. Precio MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 36 El precio determina el valor el cual debe ser pagado por el licenciatario al licenciante por el concepto de la cesión de derechos establecidos en la licencia. 2.3. Guía De Prácticas 2.3.1. Sistemas Operativos a) Tema de guía: Sistemas Operativos b) Recursos: - Computador - Software ofimático - Conexión a internet c) Metodología - Investigar en internet para contextualizar la información requerida. - Utilizar aplicaciones tecnológicas para el desarrollo de la práctica. d) Desarrollo o procedimiento - Reaice un cuadro comparativo entre los diferentes Sistemas Operativos que existen en el cupal se compare: Características, ventajas, desventajas. e) Resultados MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 37 2.4. Evaluación: • Del siguiente listado seleccione la opción que no corresponda a los Sistemas Operativos multiprogramados. a) Se solapa el cálculo de unos trabajos con la entrada/salida de otros trabajos. b) Se pueden mantener en memoria varios programas. c) Gestionar el uso de la CPU (planificación). d) Se asigna el uso de la CPU a los diferentes programas en memoria. MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 38 • De las clases de Sistemas Operativos seleccione el Sistema Operativo que se clasifica según su tarea. a) Monousuario b) Mac OS X c) Microsoft Windows d) Multitarea • Del siguiente listado de tipos de Sistemas Operativos Móviles seleccione el que no pertenece a) Android b) iOS c) BlackBerry d) Huawei • Según el siguiente concepto: “Es el cual no existe una forma libre de acceso a su código fuente”. Seleccione a que tipo de Software corresponde. a) Software libre b) Software compartido c) Software propietario d) Software único 2.5. Bibliografía Y Webgrafía Sugerida: • Tanenbaum, A. S. (2003). Sistemas operativos modernos. Pearson Educación. • Silberschatz, A., Galvin, P. B., & Peterson, J. L. (1994). Sistemas operativos: conceptos fundamentales. Addison-Wesley Iberoamericana,. • https://definicion.de/sistema-operativo/ • https://docs.oracle.com/cd/E19127-01/ultra27.ws/821-0168/z400076f1018603/index.html • Stallman, R. (2004). Software libre para una sociedad libre. Madrid: Traficantes de Sueños, 2004. MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 39 • Adell, J., & Bernabé, Y. (2007). Software libre en educación. Tecnología educativa. • Madrid: McGraw-Hill, 173-195. • Sánchez, R. G. (2003). Software libre vs. Software propietario: programando nuestro futuro. Historia Actual Online, (2), 9. • Arriola Navarrete, O., Tecuatl Quechol, G., & González Herrera, G. (2011). Software propietario vs software libre: una evaluación de sistemas integrales para la automatización de bibliotecas. Investigación bibliotecológica, 25(54), 37-70. MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 40 3. LENGUAJES DE PROGRAMACIÓN NUMERO DE HORAS TOTAL DOCENCIA:13 PRACTICA: 9 AUTONOMA: 10 32 3.1. Objetivos de Aprendizaje: Conocer sobre los lenguajes de programación y sus diferentes tipos de aplicación. 3.2. Fundamentación teórica: 3.2.1. Definición – clasificación Un lenguaje de programación es un lenguaje diseñado para describir el conjunto de acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje de programación es un modo práctico para que los seres humanos puedan dar instrucciones a un equipo. Un lenguaje de programación es un lenguaje formal diseñado para realizar procesos que pueden ser llevados a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana. Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila (de ser necesario) y se mantiene el código fuente de un programa informático se le llama programación. UNIDAD 3 MÓDULO DE INTRODUCCIÓN AL DESARROLLO DE SOFTWARE PERÍODO ACADÉMICO: DICIEMBRE 2021 - ABRIL 2022 ___________________________________________________________________________________________________________________________ Ambato 41 También la palabra programación se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos: El desarrollo lógico del programa para resolver un problema en particular. • Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa). • Ensamblaje o compilación del programa hasta convertirlo
Compartir