La informática es cualquier actividad orientada a objetivos que requiera, se beneficie o cree maquinaria informática . [1] Incluye el estudio y la experimentación de procesos algorítmicos y el desarrollo tanto de hardware como de software. La informática tiene aspectos científicos, de ingeniería, matemáticos, tecnológicos y sociales. Las principales disciplinas informáticas incluyen ingeniería informática , ciencias de la computación , ciberseguridad , ciencia de datos , sistemas de información , tecnología de la información e ingeniería de software . [2]
El término computación también es sinónimo de contar y calcular . En épocas anteriores, se utilizaba en referencia a la acción realizada por máquinas de computación mecánicas , y antes de eso, a las computadoras humanas . [3]
La historia de la informática es más larga que la historia del hardware informático e incluye la historia de los métodos pensados para el uso del lápiz y el papel (o de la tiza y la pizarra) con o sin la ayuda de tablas. La informática está íntimamente ligada a la representación de números, aunque los conceptos matemáticos necesarios para la computación existían antes de los sistemas numéricos . La primera herramienta conocida para su uso en computación es el ábaco , y se cree que fue inventado en Babilonia aproximadamente entre el 2700 y el 2300 a. C. Los ábacos, de diseño más moderno, todavía se utilizan como herramientas de cálculo en la actualidad.
La primera propuesta registrada para el uso de la electrónica digital en la informática fue el artículo de 1931 "El uso de tiratrones para el conteo automático de alta velocidad de fenómenos físicos" de CE Wynn-Williams . [4] El artículo de 1938 de Claude Shannon " Un análisis simbólico de circuitos de relés y conmutación " introdujo la idea de utilizar la electrónica para operaciones algebraicas booleanas .
El concepto de transistor de efecto de campo fue propuesto por Julius Edgar Lilienfeld en 1925. John Bardeen y Walter Brattain , mientras trabajaban con William Shockley en Bell Labs , construyeron el primer transistor funcional , el transistor de contacto puntual , en 1947. [5] [6] En 1953, la Universidad de Manchester construyó la primera computadora transistorizada , el Manchester Baby . [7] Sin embargo, los primeros transistores de unión eran dispositivos relativamente voluminosos que eran difíciles de producir en masa, lo que los limitaba a una serie de aplicaciones especializadas. [8]
En 1957, Frosch y Derick fueron capaces de fabricar los primeros transistores de efecto de campo de dióxido de silicio en Bell Labs, los primeros transistores en los que el drenaje y la fuente estaban adyacentes en la superficie. [9] Posteriormente, un equipo demostró un MOSFET funcional en Bell Labs en 1960. [10] [11] El MOSFET hizo posible construir circuitos integrados de alta densidad , [12] [13] lo que condujo a lo que se conoce como la revolución de la computadora [14] o la revolución de las microcomputadoras . [15]
Una computadora es una máquina que manipula datos de acuerdo con un conjunto de instrucciones llamadas programa de computadora . [16] El programa tiene una forma ejecutable que la computadora puede usar directamente para ejecutar las instrucciones. El mismo programa en su forma de código fuente legible por humanos , permite a un programador estudiar y desarrollar una secuencia de pasos conocida como algoritmo . [17] Debido a que las instrucciones se pueden llevar a cabo en diferentes tipos de computadoras, un solo conjunto de instrucciones fuente se convierte en instrucciones de máquina según el tipo de CPU . [18]
El proceso de ejecución lleva a cabo las instrucciones de un programa informático. Las instrucciones expresan los cálculos que realiza el ordenador y desencadenan secuencias de acciones simples en la máquina que las ejecuta. Esas acciones producen efectos de acuerdo con la semántica de las instrucciones.
El hardware de la computadora incluye las partes físicas de una computadora, incluida la unidad central de procesamiento , la memoria y la entrada/salida . [19] La lógica computacional y la arquitectura de la computadora son temas clave en el campo del hardware de la computadora. [20] [21]
El software de computadora, o simplemente software , es una colección de programas de computadora y datos relacionados, que proporciona instrucciones a una computadora. El software se refiere a uno o más programas de computadora y datos almacenados en el almacenamiento de la computadora. Es un conjunto de programas, procedimientos, algoritmos, así como su documentación relacionada con el funcionamiento de un sistema de procesamiento de datos. [ cita requerida ] El software de programa realiza la función del programa que implementa, ya sea proporcionando instrucciones directamente al hardware de la computadora o sirviendo como entrada a otra pieza de software. El término fue acuñado para contrastar con el antiguo término hardware (que significa dispositivos físicos). A diferencia del hardware, el software es intangible. [22]
A veces también se utiliza el término software en un sentido más estricto, es decir, únicamente software de aplicación.
El software de sistema, o software de sistemas, es un software de computadora diseñado para operar y controlar el hardware de la computadora y para proporcionar una plataforma para ejecutar software de aplicación. El software de sistema incluye sistemas operativos , software de utilidades , controladores de dispositivos , sistemas de ventanas y firmware . Las herramientas de desarrollo de uso frecuente, como compiladores , enlazadores y depuradores , se clasifican como software de sistema. [23] El software de sistema y el middleware administran e integran las capacidades de una computadora, pero normalmente no las aplican directamente en el desempeño de tareas que benefician al usuario, a diferencia del software de aplicación.
El software de aplicación, también conocido como aplicación o app , es un software de computadora diseñado para ayudar al usuario a realizar tareas específicas. Algunos ejemplos incluyen software empresarial , software de contabilidad , suites ofimáticas , software de gráficos y reproductores multimedia . Muchos programas de aplicación se ocupan principalmente de documentos . [24] Las aplicaciones pueden venir incluidas con la computadora y su software de sistema, o pueden publicarse por separado. Algunos usuarios están satisfechos con las aplicaciones incluidas y nunca necesitan instalar aplicaciones adicionales. El software de sistema administra el hardware y sirve a la aplicación, que a su vez sirve al usuario.
El software de aplicación aplica el poder de una plataforma informática particular o un software de sistema a un propósito particular. Algunas aplicaciones, como Microsoft Office , se desarrollan en múltiples versiones para varias plataformas diferentes; otras tienen requisitos más limitados y generalmente se las conoce por la plataforma en la que se ejecutan. Por ejemplo, una aplicación de geografía para Windows o una aplicación de Android para educación o juegos de Linux . Las aplicaciones que se ejecutan solo en una plataforma y aumentan la deseabilidad de esa plataforma debido a la popularidad de la aplicación, se conocen como aplicaciones asesinas . [25]
Una red de computadoras, a menudo denominada simplemente red, es una colección de componentes de hardware y computadoras interconectadas por canales de comunicación que permiten compartir recursos e información. [26] Cuando al menos un proceso en un dispositivo puede enviar o recibir datos hacia o desde al menos un proceso que reside en un dispositivo remoto, se dice que los dos dispositivos están en una red. Las redes se pueden clasificar de acuerdo con una amplia variedad de características, como el medio utilizado para transportar los datos, el protocolo de comunicaciones utilizado, la escala, la topología y el alcance organizacional.
Los protocolos de comunicaciones definen las reglas y formatos de datos para intercambiar información en una red informática, y proporcionan la base para la programación de redes . Un protocolo de comunicaciones muy conocido es Ethernet , un estándar de capa de enlace y hardware que es omnipresente en las redes de área local . Otro protocolo común es el conjunto de protocolos de Internet , que define un conjunto de protocolos para interconexión de redes, es decir, para la comunicación de datos entre múltiples redes, la transferencia de datos de host a host y los formatos de transmisión de datos específicos de la aplicación. [27]
Las redes de computadoras a veces se consideran una subdisciplina de la ingeniería eléctrica , las telecomunicaciones, la informática , la tecnología de la información o la ingeniería informática , ya que se basa en la aplicación teórica y práctica de estas disciplinas. [28]
Internet es un sistema global de redes informáticas interconectadas que utilizan el protocolo de Internet (TCP/IP) para dar servicio a miles de millones de usuarios. Esto incluye millones de redes privadas, públicas, académicas, empresariales y gubernamentales, cuyo alcance va desde lo local hasta lo global. Estas redes están conectadas entre sí mediante una amplia gama de tecnologías de redes electrónicas, inalámbricas y ópticas. Internet transporta una amplia gama de recursos y servicios de información, como los documentos de hipertexto interconectados de la World Wide Web y la infraestructura para dar soporte al correo electrónico. [29]
La programación informática es el proceso de escribir, probar, depurar y mantener el código fuente y la documentación de los programas informáticos. Este código fuente está escrito en un lenguaje de programación , que es un lenguaje artificial que a menudo es más restrictivo que los lenguajes naturales , pero que la computadora traduce fácilmente. La programación se utiliza para invocar algún comportamiento deseado (personalización) de la máquina. [30]
Para escribir un código fuente de alta calidad se necesitan conocimientos tanto del ámbito de la informática como del ámbito en el que se utilizará la aplicación. Por ello, el software de mayor calidad suele ser desarrollado por un equipo de expertos en el ámbito, cada uno de ellos especialista en algún área de desarrollo. [31] Sin embargo, el término programador puede aplicarse a una amplia gama de calidades de programas, desde piratas informáticos hasta colaboradores de código abierto y profesionales. También es posible que un solo programador realice la mayor parte o la totalidad de la programación informática necesaria para generar la prueba de concepto para lanzar una nueva aplicación revolucionaria . [32]
Un programador, programador de computadoras o codificador es una persona que escribe software de computadora. El término programador de computadoras puede referirse a un especialista en un área de programación de computadoras o a un generalista que escribe código para muchos tipos de software. Aquel que practica o profesa un enfoque formal de la programación también puede ser conocido como analista programador. [ cita requerida ] El lenguaje de computadora principal de un programador ( C , C++ , Java , Lisp , Python , etc.) a menudo se antepone a los títulos anteriores, y aquellos que trabajan en un entorno web a menudo anteponen sus títulos con Web . El término programador puede usarse para referirse a un desarrollador de software , ingeniero de software, científico informático o analista de software . Sin embargo, los miembros de estas profesiones generalmente poseen otras habilidades de ingeniería de software, más allá de la programación. [33]
La industria informática está formada por empresas involucradas en el desarrollo de software, el diseño de hardware e infraestructuras de redes informáticas , la fabricación de componentes informáticos y la prestación de servicios de tecnología de la información, incluidos la administración y el mantenimiento de sistemas . [ cita requerida ]
La industria del software incluye empresas dedicadas al desarrollo , mantenimiento y publicación de software. La industria también incluye servicios de software , como capacitación , documentación y consultoría. [ cita requerida ]
La ingeniería informática es una disciplina que integra varios campos de la ingeniería eléctrica y la informática necesarios para desarrollar hardware y software informáticos. [34] Los ingenieros informáticos suelen tener formación en ingeniería electrónica (o ingeniería eléctrica ), diseño de software e integración de hardware y software, en lugar de solo ingeniería de software o ingeniería electrónica. Los ingenieros informáticos están involucrados en muchos aspectos de hardware y software de la informática, desde el diseño de microprocesadores individuales , computadoras personales y supercomputadoras , hasta el diseño de circuitos . Este campo de la ingeniería incluye no solo el diseño de hardware dentro de su propio dominio, sino también las interacciones entre el hardware y el contexto en el que opera. [35]
La ingeniería de software es la aplicación de un enfoque sistemático, disciplinado y cuantificable al diseño, desarrollo, operación y mantenimiento de software, y el estudio de estos enfoques. Es decir, la aplicación de la ingeniería al software. [36] [37] [38] Es el acto de utilizar conocimientos para concebir, modelar y escalar una solución a un problema. La primera referencia al término es la Conferencia de Ingeniería de Software de la OTAN de 1968, y tenía la intención de provocar la reflexión sobre la crisis de software percibida en ese momento. [39] [40] [41] El desarrollo de software , un término ampliamente utilizado y más genérico, no necesariamente subsume el paradigma de la ingeniería. Los conceptos generalmente aceptados de la ingeniería de software como una disciplina de ingeniería se han especificado en la Guía del cuerpo de conocimientos de ingeniería de software (SWEBOK). El SWEBOK se ha convertido en un estándar aceptado internacionalmente en ISO / IEC TR 19759: 2015. [42]
La informática o ciencia de la computación (abreviada como CS o Comp Sci) es el enfoque científico y práctico de la computación y sus aplicaciones. Un científico informático se especializa en la teoría de la computación y el diseño de sistemas computacionales. [43]
Sus subcampos se pueden dividir en técnicas prácticas para su implementación y aplicación en sistemas informáticos , y áreas puramente teóricas. Algunas, como la teoría de la complejidad computacional , que estudia las propiedades fundamentales de los problemas computacionales , son altamente abstractas, mientras que otras, como los gráficos por computadora , enfatizan las aplicaciones del mundo real. Otras se centran en los desafíos en la implementación de los cálculos. Por ejemplo, la teoría del lenguaje de programación estudia los enfoques para la descripción de los cálculos, mientras que el estudio de la programación informática investiga el uso de lenguajes de programación y sistemas complejos . El campo de la interacción humano-computadora se centra en los desafíos para hacer que las computadoras y los cálculos sean útiles, utilizables y universalmente accesibles para los humanos. [44]
El campo de la ciberseguridad se refiere a la protección de los sistemas y redes informáticas. Esto incluye la privacidad de la información y los datos , la prevención de interrupciones de los servicios informáticos y la prevención del robo y los daños al hardware, el software y los datos. [45]
La ciencia de datos es un campo que utiliza herramientas científicas y computacionales para extraer información y conocimientos de los datos, impulsado por el creciente volumen y disponibilidad de datos. [46] La minería de datos , el big data , las estadísticas, el aprendizaje automático y el aprendizaje profundo están entrelazados con la ciencia de datos. [47]
Los sistemas de información (SI) son el estudio de redes complementarias de hardware y software (ver tecnología de la información) que las personas y las organizaciones utilizan para recopilar, filtrar, procesar, crear y distribuir datos . [48] [49] [50] La revista Computing Careers de la ACM describe a los SI como:
"La mayoría de los programas de grado en sistemas de información se imparten en escuelas de negocios; sin embargo, pueden tener diferentes nombres, como sistemas de información gerencial, sistemas de información computacional o sistemas de información empresarial. Todos los grados en sistemas de información combinan temas empresariales y de computación, pero el énfasis entre los temas técnicos y organizacionales varía entre los programas. Por ejemplo, los programas difieren sustancialmente en la cantidad de programación requerida". [51]
El estudio de los SI une los negocios y la informática , utilizando los fundamentos teóricos de la información y la computación para estudiar varios modelos de negocios y procesos algorítmicos relacionados dentro de una disciplina de la informática. [52] [53] [54] El campo de los Sistemas de Información Informática (CIS) estudia las computadoras y los procesos algorítmicos, incluyendo sus principios, sus diseños de software y hardware, sus aplicaciones y su impacto en la sociedad [55] [56] mientras que los SI enfatizan la funcionalidad sobre el diseño. [57]
La tecnología de la información (TI) es la aplicación de computadoras y equipos de telecomunicaciones para almacenar, recuperar, transmitir y manipular datos, [58] a menudo en el contexto de un negocio u otra empresa. [59] El término se usa comúnmente como sinónimo de computadoras y redes de computadoras, pero también abarca otras tecnologías de distribución de información como la televisión y los teléfonos. Varias industrias están asociadas con la tecnología de la información, incluido el hardware de computadoras, el software, la electrónica , los semiconductores , Internet, los equipos de telecomunicaciones , el comercio electrónico y los servicios informáticos . [60] [61]
La computación basada en ADN y la computación cuántica son áreas de investigación activa tanto para hardware como para software de computación, como el desarrollo de algoritmos cuánticos . La infraestructura potencial para tecnologías futuras incluye origami de ADN en fotolitografía [62] y antenas cuánticas para transferir información entre trampas de iones. [63] Para 2011, los investigadores habían entrelazado 14 qubits . [64] [65] Los circuitos digitales rápidos , incluidos los basados en uniones Josephson y tecnología cuántica de flujo único rápido , se están volviendo más factibles con el descubrimiento de superconductores a nanoescala . [66]
Los dispositivos fotónicos (ópticos) y de fibra óptica, que ya se han utilizado para transportar datos a largas distancias, están empezando a utilizarse en los centros de datos, junto con los componentes de memoria de semiconductores y de CPU. Esto permite la separación de la RAM de la CPU mediante interconexiones ópticas. [67] IBM ha creado un circuito integrado con procesamiento de información tanto electrónico como óptico en un chip. Esto se denomina nanofotónica integrada en CMOS (CINP). [68] Una ventaja de las interconexiones ópticas es que las placas base, que antes requerían un cierto tipo de sistema en un chip (SoC), ahora pueden sacar de las placas base la memoria y los controladores de red que antes estaban dedicados, esparciéndolos por el bastidor. Esto permite la estandarización de las interconexiones de la placa base y las placas base para varios tipos de SoC, lo que permite actualizaciones más oportunas de las CPU. [69]
Otro campo de investigación es la espintrónica , que puede proporcionar potencia de cálculo y almacenamiento sin generar calor. [70] Se están realizando algunas investigaciones sobre chips híbridos que combinan fotónica y espintrónica. [71] [72] También se están realizando investigaciones sobre la combinación de plasmónica , fotónica y electrónica. [73]
La computación en la nube es un modelo que permite el uso de recursos informáticos, como servidores o aplicaciones, sin necesidad de interacción entre el propietario de estos recursos y el usuario final. Normalmente se ofrece como un servicio, lo que lo convierte en un ejemplo de software como servicio , plataformas como servicio e infraestructura como servicio , según la funcionalidad ofrecida. Las características clave incluyen acceso bajo demanda, amplio acceso a la red y la capacidad de escalamiento rápido. [74] Permite que los usuarios individuales o las pequeñas empresas se beneficien de las economías de escala .
Un área de interés en este campo es su potencial para apoyar la eficiencia energética. Permitir que miles de instancias de computación ocurran en una sola máquina en lugar de miles de máquinas individuales podría ayudar a ahorrar energía. También podría facilitar la transición a fuentes de energía renovable, ya que sería suficiente para alimentar una granja de servidores con energía renovable, en lugar de millones de hogares y oficinas. [75]
Sin embargo, este modelo de computación centralizada plantea varios desafíos, especialmente en materia de seguridad y privacidad. La legislación actual no protege suficientemente a los usuarios del mal uso que las empresas hacen de sus datos en los servidores de la empresa, lo que sugiere que es posible que se adopten nuevas normas legislativas sobre la computación en la nube y las empresas tecnológicas. [76]
La computación cuántica es un área de investigación que reúne las disciplinas de la informática, la teoría de la información y la física cuántica. Si bien la idea de la información como parte de la física es relativamente nueva, parece haber un fuerte vínculo entre la teoría de la información y la mecánica cuántica. [77] Mientras que la computación tradicional opera en un sistema binario de unos y ceros, la computación cuántica utiliza qubits . Los qubits son capaces de estar en una superposición, es decir, en ambos estados de uno y cero, simultáneamente. Por lo tanto, el valor del qubit no está entre 1 y 0, sino que cambia dependiendo de cuándo se mide. Este rasgo de los qubits se conoce como entrelazamiento cuántico , y es la idea central de la computación cuántica que permite a las computadoras cuánticas hacer cálculos a gran escala. [78] La computación cuántica se utiliza a menudo para la investigación científica en los casos en que las computadoras tradicionales no tienen el poder de cómputo para hacer los cálculos necesarios, como en el modelado molecular . Las moléculas grandes y sus reacciones son demasiado complejas para que las calculen las computadoras tradicionales, pero el poder computacional de las computadoras cuánticas podría proporcionar una herramienta para realizar dichos cálculos. [79]
y los bajos requisitos de energía de los MOSFET han fomentado la revolución de las microcomputadoras actuales.
Tradicionalmente, la ingeniería de sistemas informáticos se ha considerado una combinación de ingeniería electrónica (EE) y ciencias de la computación (CS).
Creo que la idea de la primera Conferencia de Ingeniería de Software de la OTAN, y en particular la de adoptar el entonces prácticamente desconocido término
ingeniería de software
como su título (deliberadamente provocador), surgió originalmente del profesor
Fritz Bauer
.
El dominio de la ciencia de la computación: aunque la ciencia de la computación aborda tanto los procesos de información creados por el hombre como los naturales, el principal esfuerzo en la disciplina se ha dirigido a los procesos creados por el hombre, especialmente los sistemas y máquinas de procesamiento de información.
En 1999, la Universidad de Clemson estableció un programa de grado (de posgrado) que une las artes y las ciencias... Todos los estudiantes del programa deben completar un trabajo de nivel de posgrado tanto en artes como en ciencias de la computación.
De esto hemos llegado a la conclusión de que los SI son una ciencia, es decir, una disciplina científica en contraste con los campos supuestamente no científicos.
La ciencia de la computación es el estudio de todos los aspectos de los sistemas informáticos, desde los fundamentos teóricos hasta los aspectos muy prácticos de la gestión de grandes proyectos de software.
En 1988, se lanzó un programa de grado en Sistemas de Información Informática (CIS) con el objetivo de brindar una opción para estudiantes que estaban menos inclinados a convertirse en programadores y estaban más interesados en aprender a diseñar, desarrollar e implementar sistemas de información y resolver problemas comerciales utilizando el enfoque de sistemas.
La ciencia y la ingeniería informática necesitan un proceso de diseño intelectualmente riguroso, analítico y enseñable para garantizar el desarrollo de sistemas con los que todos podamos vivir ... Aunque las conexiones de los demás componentes con el software y su papel en el diseño general del sistema son fundamentales, la consideración central para un sistema intensivo en software es el software en sí mismo, y otros enfoques para sistematizar el diseño aún tienen que resolver el "problema del software", que no se resolverá hasta que el diseño del software se comprenda científicamente.