¿Qué es el software? Tipos, Historia y Proyecto en Arduino

¿Qué es software? Explora su historia, tipos y su impacto en tu vida diaria. Descubre cómo se crea software con un proyecto práctico de Arduino.

Por un momento, analiza tu entorno, y ve todos los dispositivos que te rodean, porque probablemente todo aquello tecnológico que esté cerca de ti tenga software incrustado, por ejemplo: El teléfono, la computadora, el smartwatch, el smart tv, el vehículo, los estacionamientos, los aeropuertos, las universidades, etc. Considerando este contexto se puede decir que el software se ha convertido en parte fundamental de nuestras vidas, en el entorno humano y el mundo moderno. Puesto que se usa a diario, tanto que incluso pasa desapercibido, o ¿tu ves un dispositivo y dices haré uso del software?

Pero ¿Qué es el software?

En términos generales se suele definir a software como “la parte lógica de una computadora”, la parte no tangible, que si bien es cierto, la definición no es incorrecta, pero en este caso y para el propósito de este este curso se requiere de una definición con más contexto, así que…

Software traducido al español es Programa informático y un Programa informático es una secuencia de instrucciones lógicas que ejecuta la computadora, dispositivos electrónicos o aplicación web, las instrucciones le indican a la computadora o dispositivos qué tiene que hacer, en otros términos gobierna el funcionamiento del hardware o bien le da vida al hardware, las instrucciones son escritas por programadores o desarrolladores mediante un lenguaje de programación o ¡así era hasta hace poco!. Para la ejecución de un programa a veces es necesaria la intervención del usuario. El empaquetado de varios programas y algunos archivos recibe el nombre de aplicación informática. El programa, la aplicación informática, archivos y datos entran dentro del término software mismo que se clasifica según las necesidades que cubre.

Un ejemplo sería el sistema operativo, llámese Windows, Android, Mac os, Linux, Etc. y así podríamos poner más ejemplos como lo sería word, excel, el navegador google chrome, spotify, youtube, una base de datos, una carpeta de archivos etc.   

El software se clasifica en tipos

En la actualidad existen software para cubrir muchas necesidades en muchos aspectos de la vida cotidiana y en el entorno corporativo, militar, científico, educativo, salud etc. que está fuertemente relacionado con el hardware.  

Software de Programación 

Es el conjunto de herramientas para crear nuevos programas, que gestionan el comportamiento de los dispositivos físicos y lógicos, aunque las computadoras entienden únicamente valores de 0 y 1, existen lenguajes de programación de bajo y alto nivel sin olvidar el lenguaje máquina, muchos lenguajes de programación de alto nivel tiene sintaxis muy cercanas al lenguaje humano, sin embargo, usan programas especiales (compiladores o intérpretes) para convertir estas instrucciones en 0 y 1. Algunos ejemplos de este tipo de software son java, python, C, C++, Go, PHP, Javascript etc.

Lenguajes compilados y lenguajes interpretados

Software de Sistema 

El software de sistema es comúnmente conocido como sistema operativo, debido a que está compuesto de programas necesarios para comunicarse con el hardware, así mismo proporciona el soporte para la ejecución de otros programas, la comunicación con otros dispositivos externos y redes. Algunos ejemplos de este tipo de software serían Windows, Linux, MacOs, Android, Unix, etc.

Software de Aplicación

Este software solventa necesidades específicas de los usuarios y negocios, como la gestión de personal, gestión de inventario, navegador web, diseño gráfico, entretenimiento, algunos ejemplos: Word, Excel, Firefox, VLC, Outlook, photoshop, illustrator, Gimp, Inkscape, Autocad, etc. Es importante mencionar que este tipo de software también se puede dividir en programas utilitarios y programas hechos a medida. 

Software Malware

Programa malicioso: es cualquier programa o aplicación móvil diseñado para perjudicar a los usuarios, equipos de cómputo o empresas, este tipo de software ejecuta instrucciones sin la autorización de los usuarios con propósito malintencionado, poniendo en peligro la integridad de los usuarios, la disponibilidad de sitios web y en el caso de las empresas puede perjudicar la integridad, disponibilidad y confidencialidad de los datos.  

Software Controlador o Driver

Es un programa intermediario entre el sistema operativo y el hardware, su propósito es la correcta comunicación entre estos dos, se pueden encontrar genericos y especificos, generalmente son programados por los creadores de hardware, para brindar la mejor experiencia y aprovechar al máximo el hardware, por lo tanto se puede encontrar controladores o drivers para la tarjeta de ethernet, la tarjeta de audio, video, procesador, impresoras, micrófonos, etc.  

Histórico 

¿Por qué es tan importante el software?

Imaginate qué el software fuese como en sus inicios, que solo estuviese reservado y al alcance de expertos. Retrocedamos un poco en la historia.

Antes del software 

  • En 1822, Charles Babbage presentó la máquina diferencial, cabe mencionar que Charles Babbage en vida no pudo construirla pero entre el 1989 y 1991 fue reconstruida por el museo de ciencias de londres, por esa y otras aportaciones es conocido como el padre de la computación.
  • En 1837, Charles Babbage describió por primera vez la Máquina Analítica, un diseño de computadora moderna de uso general, sin embargo, el diseño fue evolucionando hasta el fallecimiento de Charles. 
  • En 1843, Augusta Ada Byron o mejor conocida como Ada Lovelace escribió el primer algoritmo para ser procesado por la máquina analítica, que si bien es cierto nunca se ejecutó, sin embargo fue el precursor del software que hoy en día conocemos. 
  • En 1889, se patentó el tabulador electromagnético de tarjetas perforadas  por el Ing. Herman Hollerith, también conocido como el primer informático, puesto que automatizó un proceso muy tedioso en su época. 
  • Entre 1939 y 1942 en Iowa State University se crea la Atanasoff Berry Computer (ABC) fue la primera computadora electrónica digital automática, diseñada por John Vincent Atanasoff y Clifford Berry
  • En 1941, Konrad Zuse crea la computadora Z3 a partir de relevadores, fue la primera máquina programable en binario. 
  • En 1944, Tommy Flowers diseña la primera computadora digital Colossus.
  • En 1937, Howard Aiken presenta la Mark 1 a IBM pero en 1944 la Mark 1 es trasladada a Harvard.
  • En 1946 es presentada la ENIAC, en donde John Presper Eckert y John William Mauchly estuvieron al frente del desarrollo de este proyecto que constaba de 18.000 válvulas de vacío, 70.000 resistencias y 10.000 condensadores.
  • En 1949, Mauricio V. Wilkes de la Universidad de Cambridge y otros científicos, lanzaron la EDSAC, que consigo trajo el primer lenguaje ensamblador, puesto que el propósito de esta computadora era para fines científicos y con ello la optimización de tiempo de desarrollo en temas matemáticos, pero realmente fue el primer lenguaje ensamblador?   Por otra parte, ¿Quién fue Kathleen Booth? En 1947 la matemática Kathleen Hylda Valerie Britten,creó un lenguaje simbólico para simplificar el proceso de programación de la máquina ARC (Automatic Relay Calculator), una computadora electromecánica. por lo tanto se puede decir también que Kathleen Booth fue la creadora del primer lenguaje ensamblador.  
  • En 1950, Konrad Zuse lanza la Z4 que fue la primera computadora comercial en Alemania.
  • En 1951, El Ferranti Mark I, también es catalogada como primera computadora comercial en Reino Unido. 
  • En 1951, fue lanzada la UNIVAC I como la primera computadora comercial en U.S.A diseñada por J. Presper Eckert y John William Mauchly.

Hasta este punto, la programación era muy primitiva, puesto que estos grandes inventos solo estaba al alcance de ingenieros, aún nado a eso, la programación se hacía en lenguaje máquina o peor aún mediante tableros de conexiones de circuitos eléctricos (plugboards). 

  • Posterior a ello en la década de los 1950 y con la llegada de los transistores, la computación dio en un gran salto, puesto que con la llegada de los transistores las computadoras empezaron a estar al alcance de las pequeñas y medianas empresas, así mismo, al alcance de cualquier cliente dispuesto a pagar por ellas, también se pudo reducir el tamaño de las mismas.
  • En 1954, la creación de fortran por todo un equipo dirigido por John Backus y en 1957 su lanzamiento comercial que fue el primer estándar de lenguaje informático o lenguaje de programación, pasando de programar en lenguaje máquina a un lenguaje más comprensible por humanos, haciendo uso de las tarjetas perforadas. 
  • En 1956, salió a la luz el primer sistema operativo de la historia fue el GM-NAA I/O, creado por General Motors y North American Aviation para la IBM 704 que era un sistema de gestión por lotes de un solo flujo.
  • En 1959, se crea el lenguaje de programación COBOL por el consorcio de organizaciones gubernamentales y empresariales llamado Conferencia sobre Lenguajes de Sistemas de Datos (CODASYL).
  • En 1961, se presenta por primera vez el CTSS (Sistema compatible de tiempo compartido), esta tecnología ayudó a optimizar el uso de CPU misma que fue desarrollada por el centro de computación del MIT(Instituto de Tecnología de Massachusetts).
  • En 1964, IBM introdujo la primera computadora con circuitos integrados, la IBM 360, con el sistema operativo OS/360 con la familia de computadoras System/360, que fue una de las revoluciones menos valoradas en la historia de software, puesto que, por primera vez, el software escrito para una máquina podría ejecutarse en cualquier otra máquina de la línea y diseñados específicamente para permitir el uso simultáneo, claro, esto solo aplicaba en los equipos de IBM. Este modelo de negocio sigue vigente hoy en día. 
  • En 1965, inicia el proyecto de investigación y desarrollo de multics, el sistema operativo pionero de los sistemas operativos actuales, este proyecto fue desarrollado por el MIT, GE y laboratorios BELL, sin embargo en 1969 este proyecto fue interrumpido ya que laboratorios BELL se salió. 
  • En 1968 y 1969, la OTAN organizó la conferencia para hablar y definir el término de  ingeniería de software, desarrollo de software, técnicas y procedimientos puesto que la industria de la informática estaba teniendo problemas en el desarrollo de software y complejos sistemas. 
  • En 1972,fue creado el lenguaje de programación C por el estadounidense Dennis M. Ritchie, en los laboratorios Bell. aunque se considera que desde 1969 al 1973 fue la duración de la creación del mismo.
  • En 1969, es creado el sistema UNICS, por 2 trabajadores de laboratorios Bell, Ken Thompson y Dennis Ritchie, este sistema fue desarrollado en ensamblador todo por optimizar el rendimiento de un juego (space travel), sin embargo fue rebautizado por Brian Kernighan como UNIX, así mismo, en el año 1970 laboratorios Bell empezó a financiar el proyecto y en 1973 es lanzada la primera versión reescrita en C.
  • En 1981, Microsoft compra 86-DOS a SCP y le cambia el nombre al sistema para llamarlo MS-DOS, mismo que le licencia a IBM, aunque suene raro el windows que conocemos hoy en día tiene parte del sistema ya mencionado. 
  • En 1989, fue lanzado NeXTSTEP que prácticamente es la base de lo que hoy conocemos como Mac Os, que es a su vez usa el Proyecto BSD como núcleo, por ende se puede decir que Apple usa Unix. 
  • En 1991, es creado el kernel de lo que hoy conocemos como el sistema operativo Linux, por el Filandes Linus Torvalds.

Aunque hay datos más importantes, todo lo que pasó después de la creación de los sistemas operativos ya es historia. 

Caso práctico, ¿cómo se crea el software?

Como ejemplo vamos a crear un pequeño proyecto con arduino, con la finalidad de consolidar la teoría, en donde aplicaremos lo aprendido. 

El proyecto será el siguiente: Crearemos con arduino un sistema que ayude a los invidentes o débiles visuales a detectar objetos que están a la altura de su frente. 

Como ya es bien sabido, los débiles visuales usan bastones para detectar objetos y entender el contexto de lo que hay a su paso. Ahora bien, ellos no tienen una forma de saber si hay algún objeto a la altura de su frente hasta que chocan con el mismo. 

Para este proyecto usaremos una placa de Arduino, un sensor de distancia y un buzzer que genere sonidos para avisar que hay un objeto próximo.

Para ejecutar el codigo de abajo puedes usar el IDE de Arduino o bien recrear el proyecto en la pagina de Thinkercad, pero si tienes dudas puedes ver el video publicado en youtube, en el minuto 14:08.

int pinEcho = 9;
int pinTriger = 10;
int pinBuzzer = 8;



unsigned int tiempo, distancia;


//definicion de sonido 
int c[5]={131,262,523,1046,2093}; // Do
int g[5]={196,392,784,1568,3136}; // Sol

void nota(int frecuencia, int duracion)
{
  tone(8, frecuencia);
  delay(duracion);
  noTone(8);
  delay(50);
}


void setup()
{
  Serial.begin(9600);
  
  pinMode(pinEcho, INPUT);
  pinMode(pinTriger, OUTPUT);
  pinMode(pinBuzzer, OUTPUT);
  
}

void loop()
{
  digitalWrite(pinTriger, LOW);
  delayMicroseconds(2); // Wait for 1000 millisecond(s)
  digitalWrite(pinTriger, HIGH);
  delayMicroseconds(10);// Wait for 1000 millisecond(s)
  digitalWrite(pinTriger, LOW);
  
  //calculo de tiempo 
  tiempo = pulseIn (pinEcho, HIGH);
  
  //calculo de distancia 
  distancia =  tiempo / 58; 
  
  //impresion de distancia en cm 
  Serial.print(distancia);
  Serial.println(" cm");
  delay(200);
  
 
  
  //condiciones para detectar objetos
  if (distancia < 150 && distancia >60){
  	nota(c[2],500);
  } else if (distancia <= 60){
  	nota(g[3],500);
  }

}

Conclusión

El software es la pieza lógica que permite usar dispositivos de forma sencilla, y está presente en el día a día de entornos empresariales como personales, actualmente forma parte importante de la economía mundial.

Sabías que puedes expresar tu ideas en internet por medio de tu propia pagina web? Para ello necesitas un alojamiento y Hostinger tiene las mejores promociones

Usa mi link de referido y obtén 20% de Descuento

Scroll al inicio