SOFTWARE
Software
Se conoce como software al equipo lógico o soporte lógico de un sistema informático, que comprende el conjunto de los componentes lógicos' necesarios que hacen posible la realización de tareas específicas, en contraposición a los componentes físicos que son llamados hardware.
Los componentes lógicos incluyen, entre muchos otros, las aplicaciones informáticas, tales como el procesador de texto, que permite al usuario realizar todas las tareas concernientes a la edición de textos; el llamado software de sistema, tal como el sistema operativo, que básicamente permite al resto de los programas funcionar adecuadamente, facilitando también la interacción entre los componentes físicos y el resto de las aplicaciones, y proporcionando una interfaz con el usuario.
El anglicismo software es el más ampliamente difundido al referirse a este concepto, especialmente en la jerga técnica; en tanto que el término sinónimo «logicial», derivado del término francés logiciel, es utilizado mayormente en países y zonas de influencia francesa. Su abreviatura es Sw
Existen varias definiciones similares aceptadas para software, pero probablemente la más formal sea la siguiente:
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.
Considerando esta definición, el concepto de software va más allá de los programas de computación en sus distintos estados: código fuente, binario o ejecutable; también su documentación, los datos a procesar e incluso la información de usuario forman parte del software: es decir, abarca todo lo intangible, todo lo «no físico» relacionado.
El término software fue usado por primera vez en este sentido por John W. Tukey en 1957. En la ingeniería de software y las ciencias de la computación, el software es toda la información procesada por los sistemas informáticos: programas y datos.
El concepto de leer diferentes secuencias de instrucciones (programa) desde la memoria de un dispositivo para controlar los cálculos fue introducido por Charles Babbage como parte de su máquina diferencial. La teoría que forma la base de la mayor parte del software moderno fue propuesta por Alan Turing en su ensayo de 1936, «Los números computables», con una aplicación al problema de decisión.
Clasificación del software
Si bien esta distinción es, en cierto modo, arbitraria, y a veces confusa, a los fines prácticos se puede clasificar al software en tres tipos:
- Software de sistema: Su objetivo es desvincular adecuadamente al usuario y al programador de los detalles del sistema informático en particular que se use, aislándolo especialmente del procesamiento referido a las características internas de: memoria, discos, puertos y dispositivos de comunicaciones, impresoras, pantallas, teclados, etc. El software de sistema le procura al usuario y programador adecuadas interfaces de alto nivel, controladores, herramientas y utilidades de apoyo que permiten el mantenimiento del sistema global. Incluye entre otros:
- Software de programación: Es el conjunto de herramientas que permiten al programador desarrollar programas de informática, usando diferentes alternativas y lenguajes de programación, de una manera práctica. Incluyen en forma básica:
- Editores de texto
- Compiladores
- Intérpretes
- Enlazadores
- Depuradores
- Entornos de desarrollo integrados (IDE): Agrupan las anteriores herramientas, usualmente en un entorno visual, de forma tal que el programador no necesite introducir múltiples comandos para compilar, interpretar, depurar, etc. Habitualmente cuentan con una avanzada interfaz gráfica de usuario (GUI).
- Software de aplicación:
Es aquel que permite a los usuarios llevar a cabo una o varias tareas
específicas, en cualquier campo de actividad susceptible de ser
automatizado o asistido, con especial énfasis en los negocios. Incluye
entre muchos otros:
- Aplicaciones para Control de sistemas y automatización industrial
- Aplicaciones ofimáticas
- Software educativo
- Software empresarial
- Bases de datos
- Telecomunicaciones (por ejemplo Internet y toda su estructura lógica)
- Videojuegos
- Software médico
- Software de cálculo numérico y simbólico.
- Software de diseño asistido (CAD)
- Software de control numérico (CAM)
Instalación y paso a producción
La instalación, dependiendo del sistema desarrollado, puede consistir en una simple copia al disco rígido destino (casos raros actualmente); o bien, más comúnmente, con una de complejidad intermedia en la que los distintos archivos componentes del software (ejecutables, bibliotecas, datos propios, etc.) son descomprimidos y copiados a lugares específicos preestablecidos del disco; incluso se crean vínculos con otros productos, además del propio sistema operativo. Este último caso, comúnmente es un proceso bastante automático que es creado y guiado con herramientas software específicas (empaquetado y distribución, instaladores).
En productos de mayor complejidad, la segunda alternativa es la utilizada, pero es realizada o guiada por especialistas; puede incluso requerirse la instalación en varios y distintos computadores (instalación distribuida).
También, en software de mediana y alta complejidad normalmente es requerido un proceso de configuración y chequeo, por el cual se asignan adecuados parámetros de funcionamiento y se testea la operatividad funcional del producto.
En productos de venta masiva las instalaciones completas, si son relativamente simples, suelen ser realizadas por los propios usuarios finales (tales como sistemas operativos, paquetes de oficina, utilitarios, etc.) con herramientas propias de instalación guiada; incluso la configuración suele ser automática. En productos de diseño específico o «a medida» la instalación queda restringida, normalmente, a personas especialistas involucradas en el desarrollo del software en cuestión.
Una vez realizada exitosamente la instalación del software, el mismo pasa a la fase de producción (operatividad), durante la cual cumple las funciones para las que fue desarrollado, es decir, es finalmente utilizado por el (o los) usuario final, produciendo los resultados esperados.
Mantenimiento
De un buen diseño y documentación del desarrollo dependerá cómo será la fase de mantenimiento, tanto en costo temporal como monetario. Modificaciones realizadas a un software que fue elaborado con una documentación indebida o pobre y mal diseño puede llegar a ser tanto o más costosa que desarrollar el software desde el inicio. Por ello, es de fundamental importancia respetar debidamente todas las tareas de las fases del desarrollo y mantener adecuada y completa la documentación.
El período de la fase de mantenimiento es normalmente el mayor en todo el ciclo de vida.7 Esta fase involucra también actualizaciones y evoluciones del software; no necesariamente implica que el sistema tuvo errores. Uno o más cambios en el software, por ejemplo de adaptación o evolutivos, puede llevar incluso a rever y adaptar desde parte de las primeras fases del desarrollo inicial, alterando todas las demás; dependiendo de cuán profundos sean los cambios. El modelo cascada común es particularmente costoso en mantenimiento, ya que su rigidez implica que cualquier cambio provoca regreso a fase inicial y fuertes alteraciones en las demás fases del ciclo de vida.
Durante el período de mantenimiento, es común que surjan nuevas revisiones y versiones del producto; que lo liberan más depurado, con mayor y mejor funcionalidad, mejor rendimiento, etc. Varias son las facetas que pueden ser alteradas para provocar cambios deseables, evolutivos, adaptaciones o ampliaciones y mejoras.
Básicamente se tienen los siguientes tipos de cambios:
- Perfectivos: Aquellos que llevan a una mejora de la calidad interna del software en cualquier aspecto: Reestructuración del código, definición más clara del sistema y su documentación; optimización del rendimiento y eficiencia.
- Evolutivos: Agregados, modificaciones, incluso eliminaciones, necesarias en el software para cubrir su expansión o cambio, según las necesidades del usuario.
- Adaptivos: Modificaciones que afectan a los entornos en los que el sistema opera, tales como: Cambios de configuración del hardware (por actualización o mejora de componentes electrónicos), cambios en el software de base, en gestores de base de datos, en comunicaciones, etc.
- Correctivos: Alteraciones necesarias para corregir errores de cualquier tipo en el producto software desarrollado .
Shareware
Se denomina shareware a una modalidad de distribución de software, en la que el usuario puede evaluar de forma gratuita el producto, pero con limitaciones en el tiempo de uso o en algunas de las formas de uso o con restricciones en las capacidades finales.
Para adquirir una licencia de software que permita el uso del software de manera completa se requiere de un pago, aunque también existe el llamado "shareware de precio cero", pero esta modalidad es poco común.
No debe confundirse el shareware con el sistema freeware que indica que el software es totalmente gratuito. Tampoco debe confundirse el hecho de que el software sea shareware o freeware con el hecho de que sea de código abierto, ya que esto último depende de la disponibilidad o no del código fuente, mientras que los primeros son denominaciones de la forma o sistema de comercialización.
Ventajas
Para el usuario
- El usuario puede probar el producto antes de comprarlo, evitando el riesgo que significa un desembolso por algo que no está seguro si le será útil.
- Usualmente los de este tipo tienen un costo mucho menor que los que son estrictamente comerciales.
- La comunicación con los autores es mucho más simple y directa, permitiendo un soporte fluido y una buena retroalimentación. En la mayoría de los casos, las sucesivas versiones de los programas bajo esta modalidad, van incorporando mejoras con base en sugerencias y pedidos de los propios usuarios, de las que se beneficia el resto de ellos.
Para el autor
- A diferencia de lo que ocurre con el freeware, el autor tiene completo dominio sobre el programa, siendo posible que decida sobre su desarrollo futuro.
- Es mucho más probable que el/los programadores obtengan un nombre propio, como ocurrió -por ejemplo- con Id Software (DOOM, Quake), Nullsoft (Winamp) o tantos otros. La reputación que se consigue va promoviendo el nombre del autor, por más que sea de boca en boca.
- No se requiere un estatus legal especial, permitiendo que pequeños y medianos programadores, incluso menores de edad, comiencen a recibir ingresos por sus trabajos, sin por ello constituir una actividad ilegal.
- Los programas shareware exitosos, a menudo se ganan el respeto de los grandes y reconocidos creadores de software, quienes a la larga suelen crear fusiones, o contratar a los autores en sus compañías. Entre el 2004 y el 2005 vimos a JASC Software, quienes desarrollaron en la década del 90 el editor de imágenes Paint Shop Pro, ser comprada por la prestigiosa Corel, cuando ya iba por la versión 9, publicando las versiones posteriores como Corel Paint Shop Pro Photo.
Existen diferentes tipos de shareware disponibles en el mercado como:
- Crippleware se denomina a la aplicación shareware que bloquea varias características de uso durante la etapa de pruebas.
- Nagware es un tipo de shareware que periódicamente se recuerda al usuario si desea registrar, es decir pagar por el uso del programa.
El funcionamiento de esta forma de distribución es el siguiente manera:
– Primeramente, el autor del programa crea el software en cuestión y lo distribuye por medio de distintas alternativas, una de ellas es Internet.
– Después, cualquier de nosostros puede probar, como decíamos antes, el software por un período de tiempo muy concreto, pueden ser tres meses, seis meses… Además, tendras que indicar si estás satisfechos con el programa, una vez que lo has utilizado.
– Cuando el tiempo de prueba finaliza, y queres seguir utilizando el programa porque te ha servido de gran utilidad, ya tendras que pagar para adquirirlo.
– Por último, cuando el autor del programa recibe el pago, éste les enviará una versión completa del software o, si no es así, pondrá a su disposición una clave para habilitar las funciones del programa.
Firmware
El firmware es un programa informático que establece la lógica de más bajo nivel que controla los circuitos electrónicos de un dispositivo de cualquier tipo. Está fuertemente integrado con la electrónica del dispositivo, es el software que tiene directa interacción con el hardware, siendo así el encargado de controlarlo para ejecutar correctamente las instrucciones externas. De hecho el firmware es uno de los tres principales pilares del diseño electrónico.
En resumen, un firmware es un software que maneja físicamente al hardware.
El programa BIOS de una computadora es un firmware cuyo propósito es activar una máquina desde su encendido y preparar el entorno para cargar un sistema operativo en la [[Memoria de acceso aleatorio|memoria RAM] y disco duro].
Elfirmware ha evolucionado para significar casi cualquier contenido programable de un dispositivo de hardware, no solo código de máquina para un procesador, sino también configuraciones y datos para los circuitos integrados para aplicaciones específicas (ASIC), dispositivos de lógica programable, etc.
Hasta mediados de los años 1990 el procedimiento típico para actualizar un firmware a una nueva versión era reemplazar el medio de almacenamiento que contenía el firmware, usualmente un chip de memoria ROM enchufado en un zócalo. Hoy en día este procedimiento no es habitual ya que los fabricantes han añadido una nueva funcionalidad que permite grabar las nuevas instrucciones en la misma memoria, haciendo de la actualización un proceso mucho más cómodo y dinámico. Aun así el proceso de actualización de un firmware hay que realizarlo con mucho cuidado, ya que al ser un componente vital cualquier fallo puede dejar al equipo inservible. Por ejemplo, un fallo de alimentación a mitad del proceso de actualización evitaría la carga completa del código que gobierna el equipo, quizá incluso la carga del código que se encarga de actualizar el firmware, así que no podríamos actualizarlo de nuevo y por lo tanto el equipo dejaría de funcionar.
Ejemplos de firmware incluyen:
- Sistemas de temporización y control para las lavadoras.
- El BIOS encontrado en computadores personales compatibles con el IBM PC.
- El código de plataforma encontrado en los sistemas Itanium, las máquinas Mac OS X basadas en Intel y muchas tarjetas de escritorio de Intel tienen firmware EFI.
- Open Firmware, usado en computadores de Sun Microsystems, Apple Computer, y de Genesi.
- ARCS, usado en computadores de Silicon Graphics.
- Kickstart, usado en la línea de computadoras Amiga. Este es un ejemplo único de un firmware que mezclaba las capacidades del BIOS (POST, inicio del hardware + autoconfiguración, plug and play de periféricos, etc.), del kernel en sí mismo del AmigaOS y de partes del código usadas en el sistema operativo (como primitivas y bibliotecas de la interfaz gráfica).
- RTAS (Run Time Abstraction Services), usado en computadoras de IBM.
- Chips de EPROM usados en la serie Eventide H-3000 de procesadores digitales de música.
- El Common Firmware Environment (CFE).
- Controlar los atributos de sonido y vídeo y la lista de canales en los televisores modernos.
Freeware
El término freeware ("software gratis", del inglés free software, aunque esta denominación también se confunde a veces con "libre" por la ambigüedad del término en el idioma inglés) define un tipo de software que se distribuye sin costo, disponible para su uso,1 pero que mantiene el copyright, por lo que no se puede modificar o utilizar libremente como ocurre con el software libre. Se trata de una variante gratuita del shareware. El shareware tiene como meta lograr que un usuario pruebe el software durante un tiempo limitado y si le satisface, pague por él habilitando toda su funcionalidad. Mientras, el freeware se ofrece de manera gratuita con funcionalidad completa, aunque a veces se piden donativos o se trata de versiones reducidas de programas de pago como medio para darse a conocer.
El freeware suele incluir una licencia de uso comercial, que permite su redistribución pero con algunas restricciones, como no modificar la aplicación en sí ni venderla, y dar cuenta de su autor. También puede desautorizar el uso en una compañía con fines comerciales o en una entidad gubernamental, o bien requerir pagos si se le va a dar uso comercial. Hay que tener en cuenta que aunque se trate de software gratuito, mantiene el copyright, por lo que solo puede usarse según lo establecido en su licencia.
Confusiones entre licencias y versiones
Es también habitual confundir la licencia freeware como una licencia sin ningún tipo de restricciones. Pueden tener restricciones el uso de los mismos. Es decir, la licencia freeware puede permitir sólo el uso no comercial del producto (muy habitual), uso académico, uso comercial o combinación de ellos.
Hay confusión entre versiones Lite (Crippleware) y freeware, ya que ambas son gratuitas: las versiones Lite son versiones básicas de un producto más completo (de pago), y se ofrecen gratuitamente a modo de prueba para conocer las funcionalidades del software. La diferencia con freeware es que esta última licencia ofrece la funcionalidad completa del programa.
La calidad del software es un factor a tener en cuenta al escoger un programa. Habitualmente y por cuestiones de disponibilidad de recursos los programas de pago son mejores y más completos que los programas freeware. Aun así, existen muchos casos donde los productos freeware son tan malos o peores que sus alternativas de pago.
Comentarios
Publicar un comentario