Fundamentos de software Introducción a la Informática 2010-2011 Objetivos • Describir las 3 categorías principales de software y su relación • Explicar la correspondencia entre algoritmos y programas • Discutir los factores que hacen que una aplicación sea útil • Describir el papel del sistema operativo en un ordenador actual • Seguir la evolución de los interfaces entre las personas y los ordenadores 4626. Introducción a la Informática 2 ¿Cómo trabaja el software? • Un programa es una secuencia de instrucciones elementales sencillas – Los programadores comienzan diseñando un algoritmo: una “receta” en lenguaje natural – Problema: el lenguaje natural es ambiguo • Los algoritmos deben convertirse en instrucciones inteligibles para la CPU – Código fuente: lenguaje de programación – Código binario: secuencias de 0s y 1s 4626. Introducción a la Informática 3 ¿Cómo trabaja el software? algoritmo Pide un número al usuario Multiplícalo por 2 Muestra en pantalla el resultado 4626. Introducción a la Informática 4 ¿Cómo trabaja el software? código fuente #include <stdio.h> int main() { int num, doble; printf( "Introduce un número: " ); scanf( "%d", &num ); doble = num * 2; printf( "Su doble es: %d\n", doble ); } 4626. Introducción a la Informática 5 ¿Cómo trabaja el software? código binario 01011001110111000000100000111101000111101111100010111110 0010001001001111001001101011100001111001001101011000110 11100100110011110001011001110001000101101101101101011101 0010100011111000011001000111000100011101111000101010010 100100110011111110011100111000111110111110110100011100001 11000010010111101001111011001001110000110111001011010011 01100011100010111110011000100011111110100010010100010011 1110101001100100010001000010011111000110010110101111000 00011011111101110111011000110101000110100101110001000100 00011101111011011011110000100010001011010110110101101100 00111100100101111000110101011010000001000110111101010111 11000100010000011100111101100001000011011111101011111000 00101011101111011111101001101001100101011011000111010100 10010000100001101111000010011111011111111100010001100011 0000011011000011010111000100 4626. Introducción a la Informática 6 Tipos de programas • Software de desarrollo (compiladores y otros) – Permiten a los programadores escribir nuevos programas • Programas de aplicación – Herramientas de productividad que permiten a los usuarios resolver sus problemas • Software del sistema – Coordina las operaciones del hardware – Más cercano al hardware 4626. Introducción a la Informática 7 Programas de aplicación • ¿por qué utilizamos programas? – Son metáforas visuales de herramientas del mundo real – Expanden las capacidades humanas • Tipos de programas – Software vertical o a medida – Suites – Paquetes integrados 4626. Introducción a la Informática 8 Software vertical o a medida • Aplicaciones específicas de un sector: – Ej.: software de facturación, sw de catalogación para bibliotecas, administración de restaurantes… – Elevado coste por tener un mercado más reducido – Algunas veces incluso se desarrollan para un único cliente 4626. Introducción a la Informática 9 Suites • Aplicaciones de uso común – Ej.: proc. de textos, hoja de cálculo, bases de datos. – Uso extendido en ámbitos muy diversos: hogar, oficinas, administración, educación,… • Estas aplicaciones se reúnen en un único paquete denominado “suite” – Más económico que adquirir los programas por separado – Ej.: MS Office y OpenOffice (ofimática), Macromedia Studio (diseño web), Adobe Creative Suite (diseño gráfico) 4626. Introducción a la Informática 10 Paquetes integrados • Incorporan varias aplicaciones en un mismo programa – Comparten el mismo entorno facilita el aprendizaje – Más limitado que las aplicaciones equivalentes aisladas – Menor coste que las suites – Ej.: MS Works o AppleWorks 4626. Introducción a la Informática 11 Cuestiones sobre el sw de aplicación • Documentación – – – – – – Instrucciones para instalar la aplicación Tutoriales Manuales de referencia Ficheros de ayuda Ayuda en línea (a través de la web) Servicios de soporte, FAQ, etc. 4626. Introducción a la Informática 12 Cuestiones sobre el sw de aplicación • Actualización – Periódicamente, las empresas comercializan nuevas versiones de sus aplicaciones – Motivos: mejoras, corrección de errores, adaptación a otro software (S.O.) – Número para indicar la versión. Decimales para cambios menores – En ocasiones, el usuario tiene derecho a actualizaciones gratuitas durante un periodo de tiempo 4626. Introducción a la Informática 13 Cuestiones sobre el sw de aplicación • Compatibilidad – Hardware: • restricciones sobre el tipo de ordenador y recursos necesarios • Ej.: cpu, memoria, espacio libre en disco, etc. – Software: • Principalmente, el S.O. para el que está diseñado: Windows, Mac, Linux… • Además del S.O., es importante su versión: Windows 95, 98, NT, Me, 2000, XP… 4626. Introducción a la Informática 14 Cuestiones sobre el sw de aplicación • Licencias – Al adquirir el software, lo que realmente se compra es una licencia para utilizarlo – Licencias individuales y corporativas – Limitación principal en cuanto a la instalación en varios ordenadores y a la copia de los discos – EULA: End User License Agreement • Condiciones de la licencia • Términos de la garantía 4626. Introducción a la Informática 15 Cuestiones sobre el sw de aplicación • Distribución: formas de comercializar las aplicaciones – – – – – – propietario: cerrado por su dueño y de pago shareware: evaluación en tiempo limitado de demostración: limitaciones en la funcionalidad adware: financiado mediante publicidad (banners) freeware: sw gratuito, pero cerrado libre: sw que de puede usar, distribuir, copiar y modificar libremente – semilibre: sw libre para uso no lucrativo – de dominio público: renuncia a los derechos de autor 4626. Introducción a la Informática 16 Software del sistema • Gestiona la comunicación entre el hardware y el software • Permite abstraerse de los detalles del hardware (máquina virtual) • Incluye los siguientes tipos de programas – Controladores de dispositivos o “drivers” – Sistema operativo – Programas de utilidad 4626. Introducción a la Informática 17 Controladores de dispositivos (drivers) • Gestionan la comunicación entre el ordenador y los dispositivos de E/S • Facilitan la ampliación de los ordenadores (arquitectura abierta) • Actúan como intermediarios cuando el usuario requiere el acceso al dispositivo (lector CD, impresora, ratón, módem...) • Cómo conseguirlos – Algunos están incluidos en el propio S.O. – Otros se proporcionan con el dispositivo (en un CD de instalación) – A veces son propiedad de otras empresas y es necesario adquirirlos para poder usarlos. 4626. Introducción a la Informática 18 Sistema operativo • Intermediario entre el usuario y los programas de aplicación y el hardware – Proporciona una capa de aislamiento – Determina la compatibilidad de los programas • Tareas principales – Facilitar el manejo del ordenador – Utilizar el hardware de forma eficiente • Se ejecuta continuamente desde que arranca el ordenador 4626. Introducción a la Informática 19 Funciones del sistema operativo • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración de la memoria: – Protección de la memoria de cada proceso – Mecanismo de memoria virtual • Monitorización de recursos para contabilidad y seguridad • Gestión de archivos • Coordinación de las comunicaciones en red 4626. Introducción a la Informática 20 Programas de utilidad • Herramientas de mantenimiento del sistema • Se ejecutan como programas separados del S.O. (se cargan en la memoria cuando se necesitan) • Los encontramos – Incorporados al S.O. (desfragmentador de disco) – Suministrados por otros fabricante (cortafuegos) 4626. Introducción a la Informática 21 Interfaz de usuario • Sistemas operativos de sobremesa – Interfaz de caracteres: línea de comandos (MSDOS) 4626. Introducción a la Informática 22 Interfaz de usuario – Interfaz gráfica (GUI) • controla cada punto de la pantalla de forma individual • Mac OS de Apple (1984) – Metáforas: escritorio, carpetas, documentos… – Elementos activos: iconos, botones, ventanas, menús, barras de desplazamiento… 4626. Introducción a la Informática 23 Interfaz de usuario • Administración de ficheros – Carpetas específicas para los documentos de cada usuario – Herramientas de búsqueda por su nombre o su contenido (Google y Copernic Desktop Search) – Herramientas específicas para archivos especiales • iTunes, iMovie e iPhoto (Mac) • Herramientas similares en la próxima versión de MS Windows (Longhorn) 4626. Introducción a la Informática 24 Interfaz de usuario • Sistemas operativos multiusuario – UNIX • S.O. preferido para mainframes y estaciones de trabajo • Versiones: Solaris (Sun) HP-UX (HP), AIX (IBM), IRIX (Silicon Graphics) – Linux: • Versión de UNIX para ordenadores personales • Numerosas distribuciones para PC • MacOS X está construido sobre Linux (BSD) – Son S.O. multiusuario: permiten varios usuarios trabajando simultáneamente sobre la misma CPU 4626. Introducción a la Informática 25 Interfaz de usuario • Plataformas hw+sw – Windows XP (Pentium/Athlon): Home, Professional, Tablet PC – Windows Server 2003 (Xeon/Opteron) – Windows CE (Pocket PC/telefonía móvil) – Palm OS (Palm, Sony,telefonía móvil) – MacOS X Panther (PowerPC) – Linux (Intel/AMD/PowerPC/Alpha) • Alternativas para la compatibilidad de aplicaciones – Emulación – Plataformas cruzadas – Máquinas virtuales 4626. Introducción a la Informática 26