Ciclo de Vida, Tipos de Software y Sistemas Operativos Explicados
1. Introducción al Software
El software tiene características propias: es lógico, se desarrolla, se estropea con el tiempo y se puede hacer a medida.
Clasificación del Software
- Software de Sistema: Su objetivo es facilitar el uso, permitir administrar y asignar los recursos del sistema. Proporciona al usuario adecuadas interfaces y herramientas que permiten su uso y mantenimiento.
- Software de Aplicación: Permite llevar a cabo una o varias tareas específicas en diversos campos.
- Software de Programación: Conjunto de herramientas que permiten al programador desarrollar programas usando lenguajes de programación (editores de texto, intérpretes).
Etapas del Ciclo de Vida del Software
Fases por las cuales pasa el software en su creación y desarrollo:
- Definición de objetivos: Define el resultado del proyecto.
- Análisis de requisitos y viabilidad: Verifica los requisitos del cliente.
- Diseño: Determina los requisitos específicos de la arquitectura de la aplicación.
- Codificación: Se construye el software utilizando lenguajes de programación.
- Pruebas:
- Prueba de unidad: Prueba individual de cada subconjunto de la aplicación.
- Prueba de integración.
- Prueba beta: Garantiza que cumple con las especificaciones mínimas.
- Mantenimiento y evolución:
- Documentación: Papeles necesarios para los usuarios.
- Implantación.
- Mantenimiento: Procedimiento correctivo y mantenimiento continuo (actualizaciones).
2. Entorno Operativo
Abarca el sistema operativo (software base que controla el PC), la interfaz de usuario y las aplicaciones que vienen con él.
2.1 Funciones de los Sistemas Operativos (SO)
- Control de recursos: coordinación de todos los componentes.
- Control y manejo de los dispositivos de E/S (Entrada/Salida).
- Ejecución y secuenciación de tareas: control de varios programas a la vez, repartiendo recursos.
- Base estándar sobre la cual se ejecutan otros programas: permite diseñar software sin tener en cuenta el hardware del sistema.
- Administración y mantenimiento de los sistemas de archivos de disco.
- Interfaz gráfica (GUI) que permite la interacción del usuario con el sistema.
- Detección e información al usuario de los errores que ocurren.
Un buen sistema operativo aprovecha toda la potencia del hardware para funcionar de forma óptima. Un programa puede funcionar en varias versiones de un SO. En un ordenador se pueden tener varios sistemas operativos, pero solo uno puede cargarse a través de un gestor de arranque.
2.2 Componentes de un Sistema Operativo
- Gestión de procesos: programa en ejecución que necesita recursos para realizar su tarea.
- Gestión de la memoria principal: responsable de conocer la memoria usada y controlar el espacio libre.
- Gestión del almacenamiento secundario.
- Gestión de la E/S.
- Gestión de archivos: construir, eliminar y manipular archivos.
- Gestión de comunicación: control de envío y recepción de información a través de la red.
- Unidades de sistema: proporciona un entorno útil para el desarrollo y ejecución de programas.
2.3 El Entorno Operativo Hoy en Día
Siguen evolucionando, aunque tienen en común:
- El SO empieza a funcionar cuando acaba la BIOS.
- Posee interfaz gráfica (GUI) o línea de comandos.
- Son multiusuario (manejo del PC por varios usuarios) y multitarea (ejecutan varios programas a la vez).
- Soportan varios sistemas archivos.
- Proporcionan herramientas de mantenimiento similares.
También existen sistemas operativos para móviles como Android, Symbian, Palm OS, iPhone OS y Windows Mobile.
Principales Plataformas
- Plataforma Windows: La más usada, desarrollada por Microsoft. Su primera versión fue Windows 3.0. Hay varias distribuciones según su uso y es la que ofrece la más amplia gama de aplicaciones.
- Plataforma GNU/Linux: Es un sistema operativo libre que usa el núcleo Linux y herramientas del sistema GNU. Sus características incluyen:
- Soporta tecnología Plug & Play.
- Gama de aplicaciones cada vez mayor.
- Herramientas avanzadas de seguridad y administración de redes.
- Prácticamente inmune a virus o amenazas.
- Es libre, por lo que se puede cambiar y modificar.
- Plataforma Mac OS: Creada por Apple, fue el primer sistema operativo con interfaz GUI (primera versión en 1984). Mac OS X ofrece una plataforma muy estable y segura con elementos como la multitarea preventiva y la memoria protegida.
Virtualización de Entornos Operativos
Mediante un programa de control (como VMware o VirtualBox), se simula un entorno computacional que virtualiza un software invitado.
3. Tipos de Aplicación
El software de aplicación permite a los usuarios hacer una o varias tareas específicas en diversos campos. Todas las aplicaciones están diseñadas para ser ejecutadas en una única plataforma compatible.
Tipos de Aplicaciones
- Verticales: Para uso cerrado por parte de un perfil determinado.
- Horizontales: Útiles para un amplio sector de usuarios.
- De ámbito doméstico: Uso de entretenimiento y formación.
- De productividad empresarial: Usadas para mejorar la productividad en diversos sectores.
- Profesionales horizontales y verticales: Uso para realizar determinadas funciones de un sector específico.
- Utilitarias: Hacen tareas muy específicas siendo de menor complejidad y coste.
4. Tipos de Licencias de Software
Es el contrato donde se especifican todas las normas (plazo de cesión de derechos, límite de responsabilidad por fallos, soporte) que rigen el uso de un programa entre el propietario y el usuario final.
Tipos de Licencias
- Licencia propietaria: Uso en uno o varios ordenadores previo pago de un precio.
- Shareware: Uso limitado en tiempo o capacidades, tras el cual se requiere pago.
- Freeware: Uso y copia ilimitados y gratuitos.
- Software libre: Permite uso, copia, modificación y distribución libre con acceso al código fuente.
Clasificación de las Licencias de Software
Pueden ser de usuario final o de distribuidor:
- Licencia de software de código abierto con permisos: Permite crear una aplicación derivada sin que requiera protección alguna.
- Licencia de código abierto robusta (con restricciones):
- Licencia GPL: Contiene una cláusula que obliga a que las modificaciones u obras posteriores deban licenciarse bajo los mismos términos de la licencia original.
- Licencia LGPL: Las obras deben licenciarse bajo los mismos términos, pero las modificaciones posteriores pueden ser licenciadas bajo otros términos.
- Software propietario: El propietario retiene los derechos sobre el software, no permite que sea modificado o copiado, y ofrece soporte técnico y actualizaciones.
- Software de dominio público: No impone ninguna restricción.
5. Componentes de Aplicación y Arquitectura del Software
Toda aplicación está desarrollada por un programador usando un lenguaje de programación. La arquitectura define los componentes que llevan a cabo una tarea de computación en una aplicación.
Vistas Fundamentales
- Visión estática: Describe los componentes de la arquitectura.
- Visión dinámica: Describe el comportamiento de los componentes.
- Visión funcional: Describe la función de cada componente.
Estos modelos de arquitectura se pueden expresar con uno o varios lenguajes y herramientas como UML, que permiten implementar todas las vistas.
Diferentes Arquitecturas
- Monolítica: El software se estructura en componentes funcionales muy acoplados.
- Cliente-Servidor: El software divide su carga de cómputo en dos partes con un reparto claro de funciones.
- De 3 niveles: Es un tipo de arquitectura cliente-servidor donde la carga se divide en tres partes con un reparto claro de funciones.
6. Instalación, Configuración y Eliminación de Aplicaciones
Formas de Instalación
- Instalación por copia directa: Se usa habitualmente en Mac, que suele emplear librerías comunes del propio Mac OS X ubicadas en el directorio de aplicaciones. El software en Mac OS X son paquetes con extensión
.app; basta con arrastrar el fichero a la carpeta de aplicaciones y hacer doble clic para ejecutarlo, sin afectar al funcionamiento del SO. - Instalación con un instalador: Usa un archivo ejecutable (
.exeen Windows). Cada programa instalado reparte ficheros por subdirectorios, añadiendo líneas al registro y nuevas librerías (DLL). - Instalador usando un gestor de paquetes: Se usa una colección de herramientas para facilitar la instalación, actualización, configuración y eliminación. Es común en Linux. Muchas veces hay que resolver dependencias para garantizar el buen funcionamiento del software. Sistemas basados en paquetes binarios:
- dpkg: Usado por Linux Debian (archivos
.deb). - RPM: Creado por Linux Red Hat.
- TGZ: Usado por Linux Slackware (archivos
.tary.gz). - Pacman (archivos
.pkg.tar.xz).
- dpkg: Usado por Linux Debian (archivos
Pasos Básicos de una Instalación
- Comprobar si cumple los requisitos.
- Verificar que sea original.
- Crear los directorios necesarios.
- Crear usuarios y permisos necesarios.
- Copia y desempacado de los archivos.
- Compilación y enlace con las bibliotecas requeridas.
- Configuración de la aplicación.
- Registro de la instalación en la casa de software comercial.
En el caso de grandes empresas, hablamos de software a medida, que se hace de acuerdo a las necesidades del cliente y que a veces no puede permitirse dejar de funcionar. En tal caso, la aplicación incluirá la documentación necesaria. Hay dos escenarios:
- Sea el primer sistema automatizado que se ponga en la empresa.
- Haya un traspaso de un sistema antiguo a uno nuevo, para lo cual hay distintas formas de proceder: proceso encadenado, proceso directo, proceso en paralelo o proceso por subsistema.
Configuración de Aplicaciones
Es el conjunto de acciones que determinan el valor de las variables de una aplicación en su ejecución. Configuraciones típicas:
- Configuración predeterminada: Se hace por defecto.
- Configuración personalizada: Realizada de forma manual por el usuario.
Eliminación de Aplicaciones
Requiere realizar la desinstalación. Si se usó un instalador, hay que usar el desinstalador para que elimine los archivos correspondientes, ajuste la configuración y borre sus accesos directos. En Mac, basta con llevar el icono de la aplicación a la papelera. En Linux, basta con acceder al sistema de gestión y marcar el paquete a desinstalar para que de forma automática se elimine todo rastro.
7. Testing de Aplicaciones
Es el conjunto de procesos que permiten verificar y validar la calidad, así como detectar posibles errores. Está presente dentro de las diferentes fases del ciclo de vida del software.
Fallos del Software
Las razones de estos defectos son variadas. Destacan: la complejidad del software, la necesidad de personal experto, errores de programación causados por los desarrolladores, presión de tiempo y una pobre documentación del código. El tester debe probar el sistema a fondo para detectar fallos.
Tipos de Pruebas
- Verificación: Comprobar si se cumplen todas las especificaciones.
- Validación: Comprobar si el producto es correcto para el usuario.
- Tipos de pruebas: Pruebas de caja negra, caja blanca, de estrés y de seguridad.
8. Evaluación de Rendimiento de Aplicaciones
En los años 90 hubo una crisis del software caracterizada por la baja calidad del producto final, malas estimaciones de duración y recursos, y una tendencia al crecimiento desmesurado del volumen y la complejidad.
La calidad implica un buen funcionamiento, asistencia y soporte ante problemas. Para evaluar esto se utilizan benchmarks. Existen cuatro categorías de pruebas comparativas:
- Pruebas de aplicación base: Se encargan de ejecutar y cronometrar los tiempos de las mismas.
- Pruebas playback: Utilizan el sistema durante actividades específicas ejecutadas de forma aislada.
- Pruebas sintéticas: Enlazan actividades directas con su entorno productivo.
9. Categorías y Tipos de Software
Software de Propósito General y Específico
El software de propósito general está diseñado para un uso generalizado, mientras que el específico está diseñado para una tarea especializada.
Ofimática y Documentación Electrónica
- Procesadores de texto: MS Word.
- Hojas de cálculo: Documentos divididos en celdas para realizar operaciones matemáticas.
- Gestores de bases de datos: Consultas a BBDD (MS Access).
- Editores de presentación: Permiten crear presentaciones con imágenes y texto (PowerPoint).
- Agendas y organizadores: Guardan calendarios, citas y contactos (Evolution, Outlook).
- Visores de documentos: Necesarios para ver archivos PDF (Adobe Reader).
- Suites ofimáticas: Paquete que integra al menos un programa de cada tipo anterior.
Software Multimedia
Formado por programas dedicados a la edición y reproducción (VLC, Windows Media Player).
Gráficos
Programas para la creación, modificación, visualización e impresión de archivos gráficos:
- Visores: Permiten gestionar un catálogo de imágenes (Snow View).
- Editores de imagen de mapa de bits: Para crear y retocar imágenes (GIMP).
- Editores de imágenes vectoriales: CorelDRAW, Illustrator.
- Programas CAD: Usados por ingenieros para hacer planos.
- Diseño 3D: 3ds Max.
- Escaneo y OCR.
- Reproductores DVD: Capaces de reproducir DVD (PowerDVD).
Sonido y Vídeo
- Sonido: Reproductores de sonido (Windows Media Player) y editores de audio (Adobe Audition).
- Vídeo: Reproductores (VLC) y editores de vídeo (After Effects).
Otras Categorías de Software
- Programación: Conjunto de herramientas que permiten desarrollar programas informáticos usando lenguajes de programación.
- Educación: Sirve para el aprendizaje (enciclopedias, programas interactivos).
- Hogar, ocio y entretenimiento: Todos los tipos de videojuegos.
- Productividad y negocios: Agendas de contactos, calculadoras, contabilidad (ContaHogar), gestión de proyectos.
- Clientes para servicios de red: Navegadores (Chrome), clientes de correo electrónico, programas de chat, aplicaciones P2P, software cortafuegos (firewall).
- Software a medida vs. Software enlatado:
- Software a medida: Hecho a partir de los requerimientos de una empresa. Requiere tiempo de desarrollo, se adapta perfectamente a las necesidades, pero es más costoso.
- Software estándar: Genérico, resuelve muchas necesidades, ya ha sido desarrollado, tiene menos errores, es más barato, aunque muchas funciones no se utilicen.
- Otras categorías de interés: Software de tiempo real (gestión de tráfico aéreo), software científico y de ingeniería, software empotrado y software de inteligencia artificial.
10. Tipos de Archivos
- Documentos: doc, pdf, odt, txt
- Hojas de cálculo: xls, ods
- Presentaciones: ppt, pps, odp
- Imágenes de mapa de bits: bmp, jpg, gif, png, tif, raw, pcx
- Imágenes vectoriales: svg, eps
- Sonidos: wav, mp3, wma, mod, snd
- Vídeo: avi, mpg, wmv, mov, 3gp
- Páginas web: htm, html, php
- Programas ejecutables: exe, bat, com
- Archivos del sistema: dll, inf, sys
- Paquetes comprimidos: zip, rar, tar, gz