El software [1] [2] [3] ( el software de pronunciación [3] [4] [5] [6] también es aceptable ) ( software ) es un programa o conjunto de programas utilizados para controlar una computadora ( ISO/IEC 26514: 2008 ) [7] .
Hay otras definiciones de los estándares internacionales y rusos:
El software es uno de los tipos de software de sistemas informáticos , junto con soporte técnico (hardware), matemático, informativo, lingüístico, organizacional, metodológico y legal [13] .
Los campos académicos que estudian el software son la informática y la ingeniería de software .
En la jerga informática , se suele utilizar la palabra “ soft ” , derivada de la palabra inglesa “ software ”, que se utilizó por primera vez con este sentido en un artículo del American Mathematical Monthly del matemático John Tukey de la Universidad de Princeton en 1958 [14] .
El primer programa fue escrito por Ada Lovelace para la máquina diferencial de Charles Babbage , pero dado que esta máquina nunca se completó, los desarrollos de Lady Lovelace siguieron siendo puramente teóricos [15] .
La primera teoría sobre el software fue propuesta por el matemático inglés Alan Turing en 1936 en su ensayo "Sobre números computables con una aplicación al Entscheidungsproblem" [ 16 ] [17] [18] . Creó lo que se conoce como máquina de Turing , un modelo matemático de una máquina abstracta capaz de realizar secuencias de operaciones rudimentarias que llevan a la máquina de un estado fijo a otro. La idea principal era probar matemáticamente el hecho de que cualquier estado predeterminado del sistema siempre se puede lograr mediante la ejecución secuencial de un conjunto finito de comandos elementales (programas) a partir de un conjunto fijo de comandos.
Las primeras computadoras electrónicas de las décadas de 1940 y 1950 se reprogramaron cambiando interruptores de palanca y reconectando cables, lo que requería una comprensión profunda de su estructura interna. Estas máquinas, en particular, incluían ENIAC (que, sin embargo, fue modificada posteriormente para que pudiera programarse, al menos en parte, mediante tarjetas perforadas ) [19] .
Un paso importante hacia las computadoras modernas fue la transición a la arquitectura de John von Neumann , plasmada por primera vez en el Reino Unido , en la computadora desarrollada bajo la dirección de J. R. Womersley y con la participación de Alan Turing , conocido como Mark I. El primer programa almacenado en la memoria de la computadora se lanzó el 21 de junio de 1941. Para facilitar la programación de esta máquina, Turing ideó un sistema de codificación abreviado en el que se usaba una secuencia de símbolos de teletipo enviados a una cinta perforada para representar un código binario de máquina [20] .
Uno de los empleados de Turing, John Mauchly , que luego se convirtió (junto con John Presper Eckert ) en el director y fundador de Eckert-Mauchly Computer Corporation , que desarrolló computadoras como BINAC y UNIVAC , instruyó a sus empleados para crear un traductor de fórmulas algebraicas. Si bien esta ambiciosa meta no se logró en la década de 1940, bajo el liderazgo de Mauchly se desarrolló el llamado “ Código Corto ”, en el cual las operaciones y variables se codificaban con combinaciones de dos caracteres. El código corto se implementó utilizando el intérprete [21] . Grace Hopper , trabajando desde principios de la década de 1950 en un conjunto de subrutinas matemáticas para UNIVAC I , inventó el programa enlazador " A-0 " , que, dado un identificador , buscaba la subrutina deseada de una biblioteca almacenada en cinta magnética y escribía hasta el lugar asignado en la RAM [22] .
Los primeros lenguajes de programación de alto nivel aparecieron en la década de 1950, con John Backus desarrollando FORTRAN y Grace Hopper desarrollando COBOL . Tales desarrollos simplificaron enormemente la escritura de software de aplicación, que luego fue escrito por cada empresa que compra una computadora [23] .
A principios de la década de 1950, el concepto de software aún no se había desarrollado. Así que no se dijo nada sobre él en el artículo de Fortune de enero de 1952 "Robots de oficina", que describía las computadoras Univac. Aunque el artículo ya habla de la computadora como un dispositivo universal, el proceso de programación en este artículo se describió anacrónicamente como "cambiar interruptores de palanca" [24] . Sin embargo, a mediados de la década de 1950, el desarrollo de software a la medida [25] ya estaba bien establecido , aunque aún no se usaba el término “software” en sí, entonces simplemente se hablaba de “ programación a pedido ” o “ servicio de programación ” [26] . La primera compañía de software fue System Development Corporation , establecida en 1956 a partir de RAND Corporation , propiedad del gobierno de EE. UU . [27] . En esta etapa, los clientes del software (único y no replicable) eran grandes corporaciones y agencias gubernamentales, y el costo de un millón de dólares por el programa no era inusual [28] .
El término "software" en sí se ha generalizado desde principios de la década de 1960, cuando se volvió relevante para distinguir entre los comandos que controlan una computadora y sus componentes físicos: el hardware [29] . Al mismo tiempo, comenzó la formación de la industria del software como una industria independiente . La primera empresa de desarrollo de software fue Computer Sciences Corporation , fundada en 1959 por Roy Nutt y Fletcher Jones con un capital inicial de $100. Los primeros clientes de CSC, y las compañías de software que le siguieron, fueron corporaciones súper grandes y organizaciones gubernamentales como la NASA [30] , y la empresa continuó operando en el mercado de software personalizado, al igual que otras empresas emergentes de software privadas como Computer Usage Company (CUC ) [27] .
Los primeros productos de software autoeditados que no se suministran con hardware informático fueron el generador de documentación informática AUTOFLOW , que dibuja automáticamente diagramas de flujo, lanzado por Applied Data Research en 1965, y el traductor de lenguaje de programación MARK-IV , desarrollado en los años 1960-1967. en Informática, Inc. [26] [31] El auge del mercado de software empresarial está estrechamente relacionado con la llegada de la familia de computadoras IBM System/360 . Computadoras lo suficientemente masivas, relativamente baratas, compatibles entre sí a nivel de código de programa, abrieron el camino para el software replicado [32] .
Gradualmente, el círculo de clientes de software se expandió, lo que estimuló el desarrollo de nuevos tipos de software. Así aparecieron las primeras empresas especializadas en el desarrollo de sistemas de diseño asistido por ordenador [30] .
En noviembre de 1966, Business Week abordó por primera vez el tema de la industria del software. El artículo se titulaba "Brecha de software: una crisis creciente para las computadoras" y hablaba tanto de las perspectivas de este negocio como de la crisis asociada con la escasez de programadores [24] . Los productos de software típicos de la época sirvieron para automatizar tareas comerciales comunes como la nómina o automatizar los procesos comerciales de una empresa mediana como una planta de fabricación o un banco comercial . El costo de dicho software estaba típicamente entre $5,000 y $100,000 [26] .
La aparición en la década de 1970 de las primeras computadoras personales (como Altair 8800 ) creó las condiciones previas para el surgimiento de un mercado de software masivo. Inicialmente, los programas para computadoras personales se distribuían en forma de "cajas" a través de centros comerciales o por correo y tenían un precio de $ 100-500 [26] .
Importantes para el incipiente mercado masivo de software fueron productos como la hoja de cálculo VisiCalc , cuya idea se le ocurrió a Daniel Bricklin , cuando él, como graduado del MIT e ingeniero de software en DEC , tomó cursos en Harvard Business School y quería aliviarse con tediosos cálculos financieros [33 ] , y el procesador de textos WordStar , que fue desarrollado por Seymour Rubinstein , después de estudiar cuidadosamente las necesidades del mercado [34] . Primero se habló de VisiCalc como una aplicación asesina , es decir, una aplicación informática que, por el hecho mismo de su existencia, demuestra la necesidad (y muchas veces la necesidad de comprar) de la plataforma para la cual se implementa dicho programa. Para VisiCalc y WordStar, los ordenadores personales se han convertido en esa plataforma, que, gracias a ellos, han pasado de ser una herramienta de trabajo a un rico juguete para geeks . Comenzaron la revolución de las microcomputadoras , y estos programas tienen competidores: hojas de cálculo SuperCalc , Lotus 1-2-3 , sistema de gestión de bases de datos dBase II , procesador de textos WordPerfect , etc. [35] Procesadores de textos, hojas de cálculo, sistemas de gestión de bases de datos, así como gráficos editores , pronto se convirtió en elementos básicos del mercado de software de computadora personal [36] .
A mediados de la década de 1990, la replicación masiva permitió reducir el costo del software para computadoras personales de cien a quinientos dólares [26] , mientras que el negocio de los productores de software adquirió cierta similitud con el negocio de las compañías de grabación de sonido [35 ] .
Los enfoques para la clasificación del software se formalizan con suficiente detalle en la norma internacional ISO/IEC 12182 [37] . En particular, la primera versión del estándar proporcionó 16 criterios para clasificar las herramientas de software:
Ejemplos de clases de función PS son:
Ejemplos de clases de dominio de aplicación son:
Ejemplos de clases de escala PS son:
Ejemplos de clases de criticidad son:
Ejemplos de clases de usuario son:
Ejemplos de clases de estabilidad son:
Según el grado de portabilidad , los programas se dividen en
Según el método de distribución y uso, los programas se dividen en
Según la finalidad del programa, se dividen en:
Según los tipos de programas, se dividen [38] en:
La clasificación del software por sector industrial incluye varios enfoques. En general, el software se divide en personalizado , es decir, creado para un cliente específico, y producto , es decir, creado para la venta en el mercado. A su vez, según el tipo de consumidor, el software se divide en Business-to-Business ( B2B ), es decir, para empresas y organizaciones, y Business-to-Consumer ( B2C ), es decir, para particulares [39] .
Una de las opciones para clasificar por sector de la industria es la división en software para un cliente corporativo ( en inglés , Enterprise Software Vendors ), software para el consumidor masivo ( en inglés , Mass-Market Software Vendedores ) y servicios de TI [40] .
Otro enfoque consiste en dividir la industria del software en tres sectores: productos comerciales de propósito general ( English Business Function Software ), productos comerciales especializados ( English Industrial Business Software ) y productos para la vida privada ( English Consumer Software ). Los productos comerciales de propósito general están diseñados para respaldar el funcionamiento de empresas y organizaciones e incluyen sistemas de contabilidad, sistemas financieros, sistemas de registros de personal, etc. Los productos comerciales especializados se enfocan en las tareas de un tipo específico de negocio: sistemas de información geográfica, sistemas médicos , sistemas de logística , etc.
Un conjunto de programas que brindan control sobre los componentes del sistema informático , como un procesador , RAM , dispositivos de entrada y salida , equipos de red , actuando como una "interfaz entre capas", de un lado está el hardware y del otro, el usuario. aplicaciones A diferencia del software de aplicación , el software del sistema no resuelve problemas prácticos específicos, sino que solo garantiza el funcionamiento de otros programas, brindándoles funciones de servicio que abstraen los detalles de la implementación de hardware y firmware del sistema informático, administra los recursos de hardware del sistema informático. . La asignación de este o aquel software al sistema es condicional y depende de las convenciones utilizadas en un contexto particular. Como regla general, el software del sistema incluye sistemas operativos , utilidades , sistemas de administración de bases de datos , una amplia clase de middleware .
El software de aplicación es un programa diseñado para realizar ciertas tareas del usuario y está diseñado para la interacción directa con el usuario.
El usuario recibe el software junto con una licencia , que le otorga el derecho a utilizar el producto de software, sujeto a los términos de la licencia. Como regla general, estas condiciones limitan la capacidad del usuario para transferir el producto de software a otros usuarios, cambiar el código.
Parte del software viene con una licencia gratuita. Estas licencias le permiten distribuir el software y modificarlo.
Parte del software se distribuye como freeware. También hay shareware. En este caso, el usuario suele recibir una versión de demostración gratuita del producto de software con funciones un tanto limitadas durante un determinado período de prueba y, una vez finalizado, está obligado a comprar el producto o desinstalarlo.
![]() | ||||
---|---|---|---|---|
|
Desarrollo de software | |
---|---|
Proceso | |
Conceptos de alto nivel | |
Direcciones |
|
Metodologías de desarrollo | |
Modelos |
|
Figuras notables |
|
de software | Distribución|
---|---|
Licencias | |
Modelos de ingresos | |
Métodos de envío |
|
Fraudulento/ilegal | |
Otro |
|