¿Qué es el software?
El término software hace referencia a los componentes intangibles y no físicos que forman parte de dispositivos electrónicos como ordenadores, smartphones, tablets, robots, etc. Un software es fundamental para el correcto funcionamiento del sistema de un equipo electrónico, y está constituido por aplicaciones y programas especialmente diseñados con este propósito.
Los softwares operan de distintas maneras y con múltiples funciones para resolver problemas asociados a los dispositivos y a las necesidades de los usuarios que hacen uso de ellos. Los programas y aplicaciones le indican al hardware (parte física y tangible de los dispositivos) los pasos a seguir a través de instrucciones.
¿Qué tipos de software existen?
De acuerdo con su función, un software puede ser:
- De sistema: se trata de programas que les permiten a los usuarios la posibilidad de interactuar con el sistema, además de servir como soporte para otros programas. Un ejemplo de este tipo de software son los sistemas operativos o servidores, como iOS o Windows.
- De aplicación: son programas específicamente diseñados e instalados por el usuario en el sistema para realizar una o varias tareas en simultáneo. No tienen que ver con el funcionamiento del ordenador, sino que se instalan en él para dotarlo de funciones. Un ejemplo de este tipo de software son los videojuegos o un navegador web.
- De programación: son las herramientas que le permiten desarrollar programas informáticos a través de lenguajes de programación. Un ejemplo de este tipo de software es JavaScript.
¿Qué es la especificación de requisitos de software?
En las especificaciones de requisitos de software se describe de forma extensiva y completa el comportamiento del sistema que se va a desarrollar. En ellas se establecen las pautas, los pasos a seguir y los ejemplos de uso de las interacciones que tendrán los usuarios con el software.
En este tipo de manual, están los requisitos funcionales y no funcionales; estos últimos plantean las restricciones a nivel diseño o implementación del sistema, que son de carácter complementario, no indispensable para el correcto funcionamiento del sistema. El documento de especificaciones está dirigido tanto al cliente que solicita el diseño del software como al equipo de desarrollo.
Un buen manual de especificaciones de requisitos debe seguir las siguientes pautas:
- Definición correcta y completa.
- Consistencia: debe ser coherente con los requisitos establecidos al inicio.
- Claridad: el documento debe estar redactado de manera que su interpretación sea clara e inequívoca.
- Trazabilidad: debe permitir la correcta verificación de la historia de usuario, la ubicación o aplicación de un determinado punto o requisito, esto gracias al correcto almacenaje y documentación.
- Priorización: cada requisito debe estar organizado por orden de importancia para el cliente que quiere desarrollarlo.
- Modificable: debe ofrecer la opción de modificación y que esta sea fácil de realizar.
- Verificable: debe permitir ser probado.
Por otro lado, los requisitos pueden organizarse por tipo:
- De usuario.
- De sistema: componentes que debe tener el sistema para realizar ciertas tareas.
- Funcionales: servicios que el sistema debe proporcionar una vez terminado.
- No funcionales: que no están relacionados con el funcionamiento o las tareas del usuario, sino más bien asociados al rendimiento, portabilidad, seguridad, etc., del propio sistema.
¿Qué es un software de código abierto y de código libre?
También conocido como Open Source Software (OSS, por sus siglas en inglés), el software de código abierto es uno de los más populares. Se trata de programas gratuitos que hacen público el código fuente para que cualquier usuario pueda cambiarlo. Incluso, el código abierto puede ser de carácter contributivo.
Si bien los términos software de código abierto y software de código libre suelen usarse indistintamente, existen ligeras diferencias entre ambos. Este último fue un concepto introducido alrededor de 1984 que buscaba darle valor a la libertad del usuario en cuanto al uso de programas. Un software se considera de código libre cuando: se puede usar con cualquier fin, se puede estudiar para conocer su funcionamiento, se pueden distribuir copias y puede ser mejorado por cualquier usuario.
Por otra parte, el software de código abierto no necesariamente cumple con todas las cuatro pautas del libre. Muchas veces los creadores de software de código abierto son quienes modifican y regulan la distribución de dicho software.