El Software del Ordenador
El software es todo aquello que se refiere a los programas y datos almacenados en un ordenador. Los programas son los encargados de dar instrucciones para realizar tareas con el hardware o para comunicarnos con otro software, y los datos son necesarios para la ejecución de los programas.
Podemos decir que el software se divide en categorías según el tipo de tarea que realiza y según el método de distribución. A continuación, destacamos los diferentes tipos y licencias.
Software según el Tipo de Tarea
Software del Sistema
Es aquel que permite que el hardware funcione. Lo forman los programas que permiten la administración de la parte física o los recursos del ordenador, y es el que interactúa entre el usuario y los componentes hardware del ordenador.
Software de Aplicación
Lo forman los programas que nos ayudan a realizar tareas específicas en cualquier campo susceptible de ser automatizado o asistido. Este software hace que el ordenador sea una herramienta útil para el usuario.
Software de Programación
Es el que proporciona al programador herramientas para ayudarle a escribir programas informáticos y a usar diferentes lenguajes de programación de forma práctica. Entre ellos se encuentran los entornos de desarrollo integrados.
Software según el Método de Distribución
Shareware
Es una modalidad de distribución de software, tanto juegos como programas utilitarios, para que el usuario pueda evaluar de forma gratuita el producto por un tiempo especificado. Para adquirir una licencia de software que permita el uso completo se requiere de un pago.
Freeware
Es un software que se distribuye sin cargo. Suele incluir una licencia de uso, 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.
Adware
Suelen ser programas Shareware que de forma automática descargan publicidad en nuestro ordenador cuando lo ejecutamos o instalamos. Hemos de estar atentos a la hora de instalarlos porque a veces se puede evitar su descarga.
Software Multimedia
El software multimedia se refiere a los programas utilizados para presentar de una forma integrada textos, gráficos, sonidos y animaciones.
Software de Uso Específico
Este tipo de software es el que se desarrolla especialmente para resolver un problema determinado de alguna organización o persona; utilizar este software requiere de un experto en informática para su creación o adaptación.
Licencias de Software: Libre, Propietario y Dominio Público
Licencia de Software
Una licencia de software es un contrato que se establece entre el desarrollador de un software, sometido a propiedad intelectual y a derechos de autor, y el usuario, en el cual se definen con precisión los derechos y deberes de ambas partes.
Software Libre
Es aquel en el cual el autor cede una serie de libertades básicas al usuario, en el marco de una licencia.
Software Propietario
Es aquel que habitualmente se distribuye en formato binario, sin posibilidad de acceso al código fuente, según una licencia en la cual el propietario restringe su uso, modificación o redistribución.
Software de Dominio Público
Es aquel que carece de licencia o no hay forma de determinarla, pues se desconoce al autor. Esta situación se produce bien cuando su propietario abandona los derechos que le acreditan como titular o bien cuando se produce la extinción de la propiedad por expiración del plazo de la misma.
Ciclo de Vida de un Software
Definición y Etapas
El ciclo de vida del software es el periodo que transcurre desde que el producto es concebido hasta que deja de estar disponible o es retirado.
Las etapas típicas son:
- Análisis: En esta etapa se debe entender y comprender de forma detallada el problema que se va a resolver.
- Diseño: En esta etapa ya sabemos qué es lo que hay que hacer, ahora hay que definir cómo se va a resolver el problema.
- Codificación: En esta etapa se traduce lo descrito en el diseño a una forma legible por la máquina.
- Pruebas: Se comprueba que se cumplen criterios de corrección y calidad.
- Mantenimiento: En ella hay que asegurar que el sistema pueda adaptarse a los cambios.
Modelos de Ciclo de Vida
Modelo en Cascada
En este modelo, las etapas para el desarrollo del software tienen un orden secuencial, de tal forma que para empezar una etapa es necesario finalizar la etapa anterior. Después de cada etapa se realiza una revisión para comprobar si se puede pasar a la siguiente.
Ventajas:
- Fácil de comprender, planificar y seguir.
- La calidad del producto resultante es alta.
- Permite trabajar con personal poco cualificado.
Inconvenientes:
- La necesidad de tener todos los requisitos definidos desde el principio.
- Es difícil volver atrás si se cometen errores en una etapa.
- El producto no está disponible para su uso hasta que no está completamente terminado.
Se recomienda cuando:
- El proyecto es similar a alguno que ya se haya realizado con éxito anteriormente.
- Los requisitos son estables y están bien comprendidos.
- Los clientes no necesitan versiones intermedias.
Modelos Evolutivos
El software evoluciona con el tiempo. Es normal que los requisitos del usuario y del producto cambien conforme se desarrolla el mismo. Permiten desarrollar versiones cada vez más completas hasta llegar al producto final deseado.
Modelo Iterativo Incremental
Está basado en varios ciclos cascada realimentados aplicados repetidamente. El MODELO INCREMENTAL entrega el software en partes pequeñas, pero utilizables, llamadas «incrementos».
Ventajas:
- No se necesitan conocer todos los requisitos al comienzo.
- Permite la entrega temprana al cliente de partes operativas del software.
- Las entregas facilitan la realimentación de los próximos entregables.
Desventajas:
- Es difícil estimar el esfuerzo y el coste final necesario.
- Se tiene el riesgo de no acabar nunca.
- No recomendable para desarrollo de sistemas de tiempo real, de alto nivel de seguridad, de procesamiento distribuido, y/o de alto índice de riesgos.
Se recomienda cuando:
- Los requisitos o el diseño no están completamente definidos y es posible que haya grandes cambios.
- Se están probando o introduciendo nuevas tecnologías.
Modelo Espiral
El proceso de desarrollo del software se representa como una espiral, donde en cada ciclo se desarrolla una parte del mismo. Durante los primeros ciclos la versión incremental podría ser maquetas en papel o modelos de pantallas.
Fases (por ciclo):
- Determinar objetivos: Cada ciclo de la espiral comienza con la identificación de los objetivos y las alternativas para alcanzarlos.
- Análisis del riesgo: A continuación, hay que evaluar las alternativas en relación con los objetivos y limitaciones.
- Desarrollar y probar: Desarrollar la solución al problema en este ciclo y verificar que es aceptable.
- Planificación: Revisar y evaluar todo lo que se ha hecho, y con ello decidir si se continúa. Si se continúa, hay que planificar las fases del ciclo siguiente.
Ventajas:
- No requiere una definición completa de los requisitos para empezar a funcionar.
- Análisis del riesgo en todas las etapas.
- Reduce riesgos del proyecto.
- Incorpora objetivos de calidad.
Desventajas:
- Es difícil evaluar los riesgos.
- El costo del proyecto aumenta a medida que la espiral pasa por sucesivas iteraciones.
- El éxito del proyecto depende en gran medida de la fase de análisis de riesgos.
Recomendado:
- Proyectos de gran tamaño y que necesitan constantes cambios.
- Proyectos donde sea importante el factor riesgo.
