26
Fundamentos de software Introducción a la Informática 2009-2010

Fundamentos de software

Embed Size (px)

Citation preview

Page 1: Fundamentos de software

Fundamentos de software

Introducción a la Informática

2009-2010

Page 2: Fundamentos de software

4626. Introducción a la Informática 2

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

4626. Introducción a la Informática 3

¿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

4626. Introducción a la Informática 4

¿Cómo trabaja el software?

Pide un número al usuario

Multiplícalo por 2

Muestra en pantalla el resultado

algoritmo

Page 5: Fundamentos de software

4626. Introducción a la Informática 5

¿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 6: Fundamentos de software

4626. Introducción a la Informática 6

01011001110111000000100000111101000111101111100010111110

0010001001001111001001101011100001111001001101011000110

11100100110011110001011001110001000101101101101101011101

0010100011111000011001000111000100011101111000101010010

100100110011111110011100111000111110111110110100011100001

11000010010111101001111011001001110000110111001011010011

01100011100010111110011000100011111110100010010100010011

1110101001100100010001000010011111000110010110101111000

00011011111101110111011000110101000110100101110001000100

00011101111011011011110000100010001011010110110101101100

00111100100101111000110101011010000001000110111101010111

11000100010000011100111101100001000011011111101011111000

00101011101111011111101001101001100101011011000111010100

10010000100001101111000010011111011111111100010001100011

0000011011000011010111000100

código binario

¿Cómo trabaja el software?

Page 7: Fundamentos de software

4626. Introducción a la Informática 7

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 8: Fundamentos de software

4626. Introducción a la Informática 8

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

Page 9: Fundamentos de software

4626. Introducción a la Informática 9

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 10: Fundamentos de software

4626. Introducción a la Informática 10

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)

Page 11: Fundamentos de software

4626. Introducción a la Informática 11

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 12: Fundamentos de software

4626. Introducción a la Informática 12

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.

Page 13: Fundamentos de software

4626. Introducción a la Informática 13

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

Page 14: Fundamentos de software

4626. Introducción a la Informática 14

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…

Page 15: Fundamentos de software

4626. Introducción a la Informática 15

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

Page 16: Fundamentos de software

4626. Introducción a la Informática 16

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

Page 17: Fundamentos de software

4626. Introducción a la Informática 17

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

4626. Introducción a la Informática 18

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

4626. Introducción a la Informática 19

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

4626. Introducción a la Informática 20

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

4626. Introducción a la Informática 21

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

4626. Introducción a la Informática 22

Interfaz de usuario

• Sistemas operativos de sobremesa

– Interfaz de caracteres: línea de comandos (MS-

DOS)

Page 23: Fundamentos de software

4626. Introducción a la Informática 23

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…

Page 24: Fundamentos de software

4626. Introducción a la Informática 24

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 25: Fundamentos de software

4626. Introducción a la Informática 25

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 26: Fundamentos de software

4626. Introducción a la Informática 26

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