1.- EL SOFTWARE “Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados, que forman parte de las operaciones de un sistema de computación”. Dicho en otras palabras, no es más que todos los programas o aplicaciones que integran un ordenador y que le permiten realizar tareas específicas. El software le da instrucciones al hardware de la forma como debe realizar una tarea, por esta razón, todos los programas que usamos en un pc son un software: navegadores web (Internet Explorer, Google Chrome, Mozilla Firefox), sistemas operativos, antivirus, Microsoft Word, Excel, Power Point, etc. El software de una computadora es todo aquel código ordenado de tal manera que le permite al usuario ordenarle a la misma que realice una tarea. También se deben subdividir en diversas categorías en base a las funciones que realizan en el sistema. Software es una secuencia de instrucciones que son interpretadas y/o ejecutadas para la gestión, redireccionamiento o modificación de un dato/información o suceso. Software también es un producto, el cual es desarrollado por la ingeniería de software, e incluye no sólo el programa para la computadora, sino que también manuales y documentación técnica. Un software de computadora está compuesto por una secuencia de instrucciones, que es interpretada y ejecutada por un procesador o por una máquina virtual. En un software funcional, esa secuencia sigue estándares específicos que resultan en un determinado comportamiento. En nuestra computadora, todos los programas que usamos son software: Windows, Outlook, el Firefox, Google Chrome, Microsoft Edge y los antivirus, entre otros. Incluso los virus pueden ser categorizados como software. Un software puede ser ejecutado por cualquier dispositivo capaz de interpretar y ejecutar las instrucciones para lo cual es creado. Cuando un software está representado como instrucciones que pueden ser ejecutadas directamente por un procesador decimos que está escrito en lenguaje de máquina. La ejecución de un software también puede ser realizada mediante un programa intérprete, responsable por entender y ejecutar cada una de sus instrucciones. Una categoría especial y notable de intérpretes son las máquinas virtuales, como la Máquina virtual Java (JVM). El dispositivo más conocido que dispone de un procesador es la computadora. Existen otras máquinas programables, como los teléfonos celulares y máquinas de automatización industrial, entre muchos otros dispositivos. CARACTERÍSTICA DEL SOTFWARE Características operativas del software: Alude a los factores de funcionalidad, así que se refiere a la manera en que el software se presenta y por ende se considera como esa parte exterior. Corrección: El software está obligado a satisfacer las especificaciones que el cliente especifique. Usabilidad: Relacionado con la facilidad de aprendizaje, que sea fácil de comprender. Integralidad: Para ser de buena calidad no puede ocasionar efectos secundarios. Fiabilidad: No tendría que presentar defectos, ni fallar al ser ejecutado. Eficiencia: Los recursos disponibles se deben usar de una manera eficiente. Seguridad: Todas las medidas que sean pertinentes se tendrán que aplicar para estar a salvo de amenazas externas. Características de transición del software: Son características vinculadas con la escalabilidad o la interconexión con otro software. Interoperabilidad: Es la capacidad que se le da para plantear o ejecutar intercambios de información con otras aplicaciones. Reutilización: Es la posibilidad de emplear el código de ese software con ciertas modificaciones para cumplir con propósitos diversos. Portabilidad: Es la capacidad para que se realicen las mismas funciones en plataformas o entornos distintos. Características de revisión de software: Los factores relacionados con la ingeniería se incluyen aquí y es la calidad al interior del software la que se evalúa. Capacidad de mantenimiento – Debe ser fácil para todos los usuarios. Flexibilidad: Los cambios tendrán que ser sencillos. Extensibilidad: Sus funciones se podrían aumentar sin problemas. Escalabilidad: Debe ser fácil de actualizar. Capacidad de prueba: Las pruebas tendrían que ser sencillas de aplicar. Modularidad: Que esté compuesto por módulos y unidades que sean independientes unas de otras. TIPOS DE SOFTWARE Software de sistema: Desarrollado para que el usuario y el programador se desvinculen de los detalles del sistema informático que se emplee, razón por la que se lo aísla más que nada en los procesos relacionados con las características internas de puertos, discos, memoria y dispositivos de comunicaciones. Los servidores. Sistemas operativos. Las utilidades. Herramientas de corrección y optimización. Controladores de dispositivos. Herramientas de diagnóstico. Software de programación: Es un conjunto de herramientas a partir de las cuales un programador puede desarrollar programas informáticos el usar alternativas diversas y lenguajes de programación. Los compiladores. Los intérpretes. Editores de texto. Los enlazadores. Los depuradores. Los entornos de desarrollo integrados o IDE. Software de aplicación: Es el que les permite a los usuarios que realicen o que cumplan una o distintas tareas específicas, en cualquier tipo de campo o sector que se puede automatizar o ser asistido en algún grado, aunque el énfasis es especial para los negocios. Aplicaciones ofimáticas. Aplicaciones para control de sistemas y automatización industrial. Los videojuegos. Las telecomunicaciones. Las bases de datos. Software educativo. Software empresarial. Software de diseño asistido. Software de control numérico. Software de cálculo numérico y simbólico. VENTAJAS Y DESVENTAJAS DEL SOFTWARE VENTAJAS Libre Uso. Cualquier persona puede disponer del software libre bajo las condiciones de la licencia. Bajo Costo. Es gratuito. Existe Libertad de Conocimiento y trabajo cooperativo entre sus usuarios lo que permite una mayor innovación tecnológica. Rápida corrección de errores facilitado por el trabajo comunitario a través de Internet y de su libre acceso al código fuente. Total, independencia de un proveedor. El usuario puede administrar libremente su crecimiento y operación con total autonomía. DESVENTAJAS Dificultad en el intercambio de archivos (doc. de texto), dan errores o se pierden datos. Mayor dificultad en la instalación y migración de datos para el usuario común. Desconocimiento. El usuario común está muy familiarizado con los soportes de Microsoft, lo que hace elevar el costo de aprendizaje. Ausencia de garantía. El software libre no se hace responsable por los daños. Para su configuración se requieren conocimientos previos de funcionamiento del sistema operativo. 2.- SISTEMA OPERATIVO Un sistema operativo es el conjunto de programas que establecen al usuario una interfaz (medio de comunicación) con la computadora (CPU) y sus periféricos. Un sistema operativo está compuesto por una serie de programas dispuestos ya sea en el software o en la memoria fija que hacen al hardware utilizable. Un sistema operativo (SO) es un conjunto de programas destinados a permitir la comunicación del usuario con un ordenador y gestionar sus recursos de manera eficiente. Comienza a trabajar cuando se enciende el ordenador, y gestiona el hardware de la máquina desde los niveles más básicos. CARACTERÍSTICA DEL SISTEMA OPERATIVO SISTEMA OPERATIVO PROPIETARIO 3.- LENGUAJE TIPOS DE LENGUAJE LENGUAJE DE BAJO NIVEL Son más fáciles de utilizar que los lenguajes máquina, pero al igual que ellos, dependen de la máquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador. El lenguaje ensamblador es el primer intento de sustituir el lenguaje maquina por otro más similar a los utilizados por las personas. A principios de la década de los 50 y con el fin de facilitar la labor de los programadores, se desarrollaron códigos mnemotécnicos para las operaciones y direcciones simbólicas. La computadora sigue utilizando el lenguaje máquina para procesar los datos, pero los programas ensambladores traducen antes los símbolos de código a lenguaje máquina. Estos programas de ensamble o ensambladores permiten a la computadora convertir las instrucciones en lenguaje ensamblador del programador en su propio código máquina. Un programa de instrucciones escrito en lenguaje ensamblador por un programador se llama programa fuente. Después de que el ensamblador convierte el programa fuente en código maquina a este se le denomina programa objeto. Para los programadores es más fácil escribir instrucciones en un lenguaje ensamblador que en código de lenguaje máquina. Un modo más fácil de comprender el código máquina es dando a cada instrucción un mnemónico, como por ejemplo STORE, ADD o JUMP. Los lenguajes de bajo nivel permiten crear programas muy rápidos, pero que son, a menudo, difíciles de aprender. Más importante es el hecho de que los programas escritos en un bajo nivel sean altamente específicos de cada procesador. Los lenguajes ensamblador tienen sus aplicaciones muy reducidas, se centran básicamente en aplicaciones de tiempo real, control de procesos y de dispositivos electrónicos. TIPOS DE LENGUAJES BAJO NIVEL Al hablar de lenguaje de bajo nivel no nos referimos a uno en concreto, de hecho, este término engloba a tres tipos diferentes de lenguaje de bajo nivel, aunque todos ellos comparten características similares. 1. El primero que nos encontramos es el famoso Código Binario. Seguro que has oído hablar en más de una ocasión de él y es que es el lenguaje más básico que forma parte de todos los sistemas informáticos. Es muy habitual por ser bastante sencillo de utilizar. Tan solo se usan dos números para formar el código, el 1 que representa al “todo” y el 0 que por el contrario es el “nada”. 2. En un segundo escalón se encuentra el lenguaje máquina. También bastante utilizado puesto que, como su propio nombre indica, este va a ser el código por el que se va a comunicar instrucciones a la máquina. Es indispensable el uso de este lenguaje, ya que con él se envían de forma literal todas las tareas que hay que llevar a cabo. 3. Por último tenemos el lenguaje ensamblador, algo más complicado porque los códigos que utiliza no los descifra directamente el ordenador, por lo que habrá que pasarlo a lenguaje de máquina para que la computadora entienda la orden que estamos queriendo transmitirle. Es un tipo de lenguaje muy ligado al hardware y además necesita herramientas especiales para convertirlo a otro lenguaje. LENGUAJES ENSAMBLADORES La siguiente evolución en programación vino con la idea de reemplazar el código binario por instrucciones y direcciones con símbolos o mnemónicos. Debido a que utilizaban símbolos, estos lenguajes fueron primeramente conocidos como lenguajes simbólicos. El lenguaje ensamblador para nuestro ordenador hipotético que reemplaza el lenguaje de máquina se muestra en la siguiente tabla. LENGUAJE MÁQUINA: El lenguaje máquina es el único que entiende directamente la computadora, ya que está escrito en lenguajes directamente inteligibles por la máquina), utiliza el alfabeto binario, que consta de los dos únicos símbolos 0 y 1, denominados bits. Sus instrucciones son cadenas binarias que especifican una operación y, las posiciones de memoria implicadas en la operación se denominan instrucciones de máquina o código máquina. Fue el primer lenguaje utilizado en la programación de computadoras, pero dejo de utilizarse por su dificultad y complicación, siendo sustituido por otros lenguajes más fáciles de aprender y utilizar, que además reducen la posibilidad de cometer errores. Generalmente, en la codificación de los programas se empleaba el sistema hexadecimal para simplificar el trabajo de escritura. Todas las instrucciones preparadas en cualquier lenguaje máquina tienen por lo menos dos partes. La primera es el comando u operación, que dice a las computadoras cual es la función que va a realizar. LENGUAJES DE ALTO NIVEL Estos lenguajes son los más utilizado por los programadores. Están diseñados para que las personas escriban y entiendan los programas de un modo mucho más fácil que los lenguajes máquina y ensamblador. Un programa escrito en lenguaje de alto nivel es independiente de la máquina. Los programas escritos en lenguaje de alto nivel pueden ser ejecutados con poca o ninguna modificación en diferentes tipos de computadoras. Son lenguajes de programación en los que las instrucciones enviadas para que el ordenador ejecute ciertas órdenes son similares al lenguaje humano. Dado que el ordenador no es capaz de reconocer estas órdenes, es necesario el uso de un intérprete que traduzca el lenguaje de alto nivel a un lenguaje de bajo nivel que el sistema pueda entender. TIPOS DE LENGUAJES BAJO NIVEL Al hablar de lenguaje de bajo nivel no nos referimos a uno en concreto, de hecho, este término engloba a tres tipos diferentes de lenguaje de bajo nivel, aunque todos ellos comparten características similares. 4. El primero que nos encontramos es el famoso Código Binario. Seguro que has oído hablar en más de una ocasión de él y es que es el lenguaje más básico que forma parte de todos los sistemas informáticos. Es muy habitual por ser bastante sencillo de utilizar. Tan solo se usan dos números para formar el código, el 1 que representa al “todo” y el 0 que por el contrario es el “nada”. 5. En un segundo escalón se encuentra el lenguaje máquina. También bastante utilizado puesto que, como su propio nombre indica, este va a ser el código por el que se va a comunicar instrucciones a la máquina. Es indispensable el uso de este lenguaje, ya que con él se envían de forma literal todas las tareas que hay que llevar a cabo. 6. Por último, tenemos el lenguaje ensamblador, algo más complicado porque los códigos que utiliza no los descifra directamente el ordenador, por lo que habrá que pasarlo a lenguaje de máquina para que la computadora entienda la orden que estamos queriendo transmitirle. Es un tipo de lenguaje muy ligado al hardware y además necesita herramientas especiales para convertirlo a otro lenguaje. 4.- PROGRAMACIÓN Programación es la acción de solucionar un problema, y/o satisfacer una necesidad de carácter informático. dicha solución es generar un programa o software utilizando un determinado lenguaje de programación. CARACTERÍSTICA DE LA PROGRAMACIÓN