fundamentos de software · • comunicación con los periféricos (e/s) • gestión de procesos:...

39
Fundamentos de software Informática Aplicada Grado en GAP Fac. de Admón. y Dir. de Empresas Univ. Politécnica de Valencia

Upload: others

Post on 14-Mar-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

Fundamentos de software

Informática Aplicada

Grado en GAP

Fac. de Admón. y Dir. de Empresas

Univ. Politécnica de Valencia

Page 2: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

210601. Informática Aplicada

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

Page 3: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

310601. Informática Aplicada

¿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

Page 4: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

410601. Informática Aplicada

¿Cómo trabaja el software?

¿Qué ocurre cuando alguien quiere escribir un programa?

Page 5: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

510601. Informática Aplicada

¿Cómo trabaja el software?

Piensa

Algoritmo

Problema: el lenguaje natural

es ambiguo

Page 6: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

610601. Informática Aplicada

¿Cómo trabaja el software?

Piensa

Algoritmo

… pero un ordenador no lo entiende

Escribe

Programa(cód. fuente)

Page 7: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

710601. Informática Aplicada

¿Cómo trabaja el software?

Piensa

AlgoritmoEscribe

Programa(cód. fuente)

Genera

Ejecutable(cód. binario)

Page 8: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

810601. Informática Aplicada

¿Cómo trabaja el software?

Pide un número al usuarioMultiplícalo por 2Muestra en pantalla el resultado

algoritmo

Page 9: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

910601. Informática Aplicada

¿Cómo trabaja el software?

#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 );}

código fuente

Page 10: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

1010601. Informática Aplicada

010110011101110000001000001111010001111011111000101111100010001001001111001001101011100001111001001101011000110111001001100111100010110011100010001011011011011010111010010100011111000011001000111000100011101111000101010010100100110011111110011100111000111110111110110100011100001110000100101111010011110110010011100001101110010110100110110001110001011111001100010001111111010001001010001001111101010011001000100010000100111110001100101101011110000001101111110111011101100011010100011010010111000100010000011101111011011011110000100010001011010110110101101100001111001001011110001101010110100000010001101111010101111100010001000001110011110110000100001101111110101111100000101011101111011111101001101001100101011011000111010100100100001000011011110000100111110111111111000100011000110000011011000011010111000100

código binario

¿Cómo trabaja el software?

Page 11: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

1110601. Informática Aplicada

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

Page 12: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

1210601. Informática Aplicada

Programas de aplicación

• ¿por qué utilizamos programas?– Son metáforas visuales de herramientas del

mundo real

– Expanden las capacidades humanas

Page 13: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

1310601. Informática Aplicada

Programas de aplicación

• Tipos de programas– Software vertical o a medida

– Suites

– Paquetes integrados

Page 14: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

1410601. Informática Aplicada

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

Page 15: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

1510601. Informática Aplicada

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), Adobe Creative Suite (diseño gráfico)

Page 16: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

1610601. Informática Aplicada

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

Page 17: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

1710601. Informática Aplicada

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

Page 18: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

1810601. Informática Aplicada

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.

Page 19: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

1910601. Informática Aplicada

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

Page 20: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

2010601. Informática Aplicada

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

Page 21: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

2110601. Informática Aplicada

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)

Page 22: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

2210601. Informática Aplicada

Consideraciones adicionales

• 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.

Page 23: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

2310601. Informática Aplicada

Consideraciones adicionales

• 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

Page 24: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

2410601. Informática Aplicada

Consideraciones adicionales

• 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…

Page 25: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

2510601. Informática Aplicada

Consideraciones adicionales

• 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

Page 26: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

2610601. Informática Aplicada

Consideraciones adicionales

• 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

Page 27: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

2710601. Informática Aplicada

Interfaz de usuario

• Sistemas operativos de sobremesa– Interfaz de caracteres: línea de comandos (MS-

DOS)– 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…

Page 28: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

2810601. Informática Aplicada

MS-DOS

Page 29: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

2910601. Informática Aplicada

Windows 3.11

Page 30: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

3010601. Informática Aplicada

Windows 95

Page 31: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

3110601. Informática Aplicada

Windows XP

Page 32: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

3210601. Informática Aplicada

Windows Vista

Page 33: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

3310601. Informática Aplicada

Windows 7

Page 34: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

3410601. Informática Aplicada

Windows 8

Page 35: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

3510601. Informática Aplicada

Linux

Page 36: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

3610601. Informática Aplicada

Mac OS X

Page 37: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

3710601. Informática Aplicada

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

Page 38: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

3810601. Informática Aplicada

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)

Page 39: Fundamentos de software · • Comunicación con los periféricos (E/S) • Gestión de procesos: – Coordina trabajos concurrentes (multitarea) – Aprovecha mejor la CPU • Administración

3910601. Informática Aplicada

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