Вы находитесь на странице: 1из 47

Unidad 1: Desarrollo del software

Qu es la informtica?

Segn la RAE: Conjunto de


conocimientos cientficos y tcnicas
que hacen posible el tratamiento
automtico de la informacin por
medio de computadoras electrnicas.
Qu es un ordenador?
Un sistema digital con tecnologa microelectrnica
capaz de procesar informacin a partir de un
grupo de instrucciones denominado programa
Componentes principales:
Procesador
CPU: Unidad central de procesos
ALU: Unidad aritmtica y lgica
Memoria (RAM: Random Access Memory)
Componentes auxiliares:
Disco duro
Lector CD-ROM
Teclado
Pantalla

3
Elementos de un
ordenador
(hardware)

Unidad aritmetica Memoria Principal


Procesador
y logica (ALU)
(RAM)
Unidad
(CPU) de
Control (CU) Programa

Dispositivos de entrada Dispositivos de salida Dispositivos de


teclado pantalla almacenamiento de datos
ratn impresora disco duro
lector/grabador de CD-ROM
lector/grabador de disquete4
Representacin de los datos en el
ordenador
Informacin
representada en
un cdigo
binario.
Formada como
una secuencia
de 1s y 0s de
grandes
proporciones.
La unidad
bsica en la
informtica es
el bit.
5
Representacin de textos

TEXTO: My name is Luis.


ASCII: 77-121-32-110-97-109-101-32-105-115-32-76-117-105-115-46
16 bytes
6
Representacin de imagen
00000000
00110110
00100010
00100010
00110110
00000000
00110110
00000000

Divisin de la imagen en una matriz de pixels (unidad


de la imagen)
Cada pixel asociado con un color

7
Representacin de sonido
Discretizacin de la amplitud
Un byte para cada valor

48121312108

8
Qu es un programa?
Un ordenador no entiende el lenguaje
natural pero s es capaz de interpretar una
serie de rdenes.
Un programa es una secuencia de
instrucciones que ejecuta la CPU de manera
secuencial con el objetivo de realizar varias
tareas.
Utilizan datos o informacin para realizar su
tarea.
Un programa se considera un conjunto de
instrucciones y datos.
9
Hardware y software

Hardware es la parte fsica y


tangible de un ordenador.
Software es el conjunto de
programas que utilizamos (las
aplicaciones). Tambien incluye la
BIOS y el sistema operativo.
Forma de ejecucin de los
programas
Los programas antes de ser
ejecutados tienen que ser traducidos
a un idioma que entienda la
mquina.
Los programas son manejados
mediante programas externos
asociados al lenguaje programacin
del programa y a la arquitectura del
ordenador

11
Cdigo fuente, cdigo objeto y
cdigo ejecutable

Cdigo fuente: secuencia de


instrucciones que tiene que ejecutar
el ordenador en formato texto tal
como lo escribe el programador.
Cdigo objeto: Resultado de
compilar el cdigo fuente que
hemos programado.
Cdigo ejecutable: Resultado final
del proceso. Se conoce como cdigo
mquina.
Cdigo fuente, cdigo objeto y
cdigo ejecutable
Forma de ejecucin de los programas:
Lenguaje de programacin

Es un lenguaje artificial con el que se


expresa las instrucciones que queremos
que ejecute el ordenador.
Est formado por palabras reservadas que
forman partes de las instrucciones de los
programas
Dependiendo de cmo un programa se
ejecute dentro de un sistema, tenemos 3
categoras de lenguajes:
Lenguajes compilados
Lenguajes interpretados
Lenguajes virtuales
Formas de ejecucin de los
programas: lenguajes compilados

Lenguajes compilados
Un programa traductor (o compilador)
convierte el cdigo fuente en cdigo
objeto.
Un programa enlazador unir el cdigo
objeto con las libreras necesarias para
producir el cdigo ejecutable.
Ejemplos: Fortran, Familia de lenguaje
C, incluyendo C++, objective C pero no
JAVA, Ada, Pascal, Algol.
Forma de ejecucin de los
programas: lenguajes compilados

OPCION 1 OPCION 2
PROGRAMA FUENTE
Fase de compilacin

Fase de compilacin COMPILADOR


programa
ENLAZADOR objeto
programa
ejecutable (binder, linker)
Fase de ejecucin

Fase de ejecucin
EJECUCION

16
Formas de ejecucin de los
programas: lenguajes compilados
Formas de ejecucin de los
programas: lenguajes interpretados

Lenguajes interpretado
Un programa interprete traduce el
lenguaje fuente a lenguaje mquina
paso a paso o instruccin por
instruccin.
Se les conoce como lenguajes de
scripts.
Ejemplos: Perl, PHP, Cobol,
ActionScript, Javascript, ASP, Bash,
etc.
Forma de ejecucin de los
programas: lenguajes interpretados

PROGRAMA FUENTE

INTERPRETE

EJECUCION DE LA(S)
INSTRUCCION(ES)
INTERPRETADA(S)

19
Formas de ejecucin de los
programas: lenguajes interpretados
Formas de ejecucin de los
programas: lenguajes virtuales

Lenguajes virtuales
Funcionamiento similar a lenguajes
compilados pero en vez de generar un
cdigo objeto genera un bytecode.
El bytecode ser interpretado puede
ser interpretado por cualquier
arquitectura que tenga la mquina
virtual correspondiente.
Formas de ejecucin de los
programas: tipos de lenguajes
Desarrollo histrico de los
lenguajes de programacin
1 generacin:
Lenguajes de bajo nivel. Muy prximos al
lenguaje de la mquina.
Ejemplos: lenguajes mquina, lenguaje
ensamblador.

2 generacin:
Lenguajes de medio nivel.
Propsito general con un alto nivel de
abstraccin.
Programacin mas entendible e
intutitiva.
Ejemplos: Fortran, Basic, Cobol, etc. 23
Desarrollo histrico de los
lenguajes de programacin

3 generacin:
Lenguajes de alto nivel.
Lenguajes imperativos.
Programacin estructurada, modular y
orientada a objetos.
Ejemplos: Pascal, Modula-2, C, ADA,
Perl, PHP, Java, C/C++
Desarrollo histrico de los
lenguajes de programacin

3 generacin (continuacin):
ADA, descendiente de pascal, mucho ms potente
y complejo. Incorpora modularidad, abstraccin,
ocultacin, concurrencia y sincronizacin.
SMALLTALK, precursor de los lenguajes orientados
a objetos (LOO). La POO es una forma especial de
programacin que expresa las cosas mas cercana
a nuestra forma de pensar.
C++, incorpora en C los mecanismos de la POO.
JAVA, incorpora mecanismos de la POO, parecido a
C pero mas simple y multiplataforma.
LISP, lenguaje funcional usado en IA y sistemas
expertos.
PROLOG, lenguaje lgico en que se construye una
base de conocimiento basada en reglas a partir de
la cual podemos inferir nuevos hechos o reglas.
Desarrollo histrico de los
lenguajes de programacin

4 generacin:
Mayor grado de abstraccin. Se
alejan an mas de la mquina. Se
centran en la resolucin del
problema.
Lenguajes declarativos

Ejemplos: SQL, Prolog, LISP,


Herramientas CASE, etc.
Java
La tecnologa java es un lenguaje de
programacin y una plataforma.
Creada por Sun Microsystems en 1995.
Existen varias plataformas de java:
Java platform, Standard edition (Java SE)
Java platform, enterprise edition (Java EE)
Java platform, micro edition (Java ME)
Java FX (Aplicaciones ricas para internet)
Todas las plataformas constan de la
mquina virtual Java (JVM) y una interfaz
de programacin de aplicaciones (API).

27
La plataforma Java
Una plataforma software que se ejecuta
sobre otra plataforma hardware/software.

La Mquina Virtual Java La interfaz de Programacin


(JVM) de Aplicaciones (API)

Intrprete de Java Conjunto de clases ya desarrolladas

E.T.S de Ingenieros de
22/11/2005 Telecomunicacin - UPNA .28
La plataforma Java

E.T.S de Ingenieros de
22/11/2005 Telecomunicacin - UPNA .29
Caractersticas Principales

Sencillo Arquitectura
Orientado a neutra
objetos Portable
Distribuido Altas
Interpretado prestaciones
Robusto Multithread
Seguro (multihilo)
Dinmico

E.T.S de Ingenieros de
22/11/2005 Telecomunicacin - UPNA .30
Caractersticas: Sencillo

Elimina algunas de las caractersticas


de C y C++:
No aritmtica de punteros.
No existen referencias.
No existe typedef ni #define.
No sobrecarga operadores.
No herencia mltiple.
Posee clase String.
No necesidad de asignar y liberar
memoria (Garbage Collector).
E.T.S de Ingenieros de
22/11/2005 Telecomunicacin - UPNA .31
Caractersticas: Orientado a
objetos

Se refiere al mtodo de
programacin y al diseo del
lenguaje.
Los datos estn unidos a sus
operaciones (funciones o mtodos)
formando entidades denominadas
objetos.
Implementa:
Encapsulacin, herencia, polimorfismo,
abstraccin, reutilizacin, interfaces,
E.T.S de Ingenieros de
22/11/2005
paquetes,Telecomunicacin
etc. - UPNA .32
Caractersticas: Distribuido

Concebido para trabajar en un


entorno conectado en red.
Permite la comunicacin entre
diferentes objetos que se pueden
ejecutar en distintas mquinas.

E.T.S de Ingenieros de
22/11/2005 Telecomunicacin - UPNA .33
Caractersticas: Interpretado
Compilador Intrprete de
tradicional ByteCodes

E.T.S de Ingenieros de
22/11/2005 Telecomunicacin - UPNA .34
Caractersticas: Robusto

No se interrumpe fcilmente.
Al no trabajar directamente con
punteros ni posiciones de memoria
evita que programa acceda a
posiciones de memoria que no le
corresponde.
Manejo de excepciones.
Verificacin de ByteCodes (por
ejemplo no acceso ilegal de
22/11/2005
memoria).Telecomunicacin
E.T.S de Ingenieros de
- UPNA .35
Caractersticas: Seguro

Los programas no acceden


directamente a los recursos de la
mquina fsica.
Se ejecutan en la mquina virtual
de forma que el entorno est mas
controlado.

E.T.S de Ingenieros de
22/11/2005 Telecomunicacin - UPNA .36
Caractersticas: Arquitectura neutra

Java compila el cdigo a un fichero


objeto de formato independiente de la
arquitectura de la mquina en que se
ejecutar.
Cualquier plataforma donde exista una
JVM puede ejecutar un programa en
java independientemente de la
mquina (o arquitectura real) en el
que ha sido generado.
E.T.S de Ingenieros de
22/11/2005 Telecomunicacin - UPNA .37
Caractersticas: Portable

El cdigo generado por el


compilador de java es muy
portable.
Es independiente de la plataforma
puesto que solo de la mquina
virtual en la que se vaya a ejecutar.

E.T.S de Ingenieros de
22/11/2005 Telecomunicacin - UPNA .38
Caractersticas: Altas prestaciones

Cuenta con un gran nmero de


paquetes muy probados para
resolver diferentes problemas.
Permite un buen rendimiento
utilizando elementos estndar del
lenguaje.

E.T.S de Ingenieros de
22/11/2005 Telecomunicacin - UPNA .39
Caractersticas: Multithread

Ejecucin de varias tareas a la vez.


Permite muchas actividades
simultneas en un programa.
Uso de diferentes hilos de ejecucin
(o threads).
Mejor rendimiento interactivo y
mejor comportamiento en tiempo
real.

E.T.S de Ingenieros de
22/11/2005 Telecomunicacin - UPNA .40
Caractersticas: Dinmico

Java es un lenguaje en constante


evolucin.
Incorpora mejores rendimientos y
nuevas funcionalidades a medida
que aparecen nuevas versiones.

E.T.S de Ingenieros de
22/11/2005 Telecomunicacin - UPNA .41
Qu ventajas tengo como
desarrollador?

Comenzar rpidamente.
Escribir menos cdigo, 4 veces
menos que en C++.
Escribir mejor cdigo.
Desarrollar programas ms
rpidamente.
Eliminar dependencias de la
plataforma.
Escribir una vez, ejecutar en
cualquier parte. - UPNA
E.T.S de Ingenieros de
22/11/2005 Telecomunicacin .42
Desarrollo en JAVA
Antes de desarrollar aplicaciones java, el
JDK debe ser instalado y configurado en el
sistema.
El cdigo fuente se guarda en un archivo
con extensin .java
Un compilador traduce el cdigo fuente en
cdigo de byte (bytecode), y lo guarda en
un archivo con extensin .class
Un intrprete especfico al sistema
operativo interpreta el bytecode para
ejecutar el programa.
43
Desarrollo en JAVA
PROGRAMA FUENTE
.java

COMPILADOR JAVA

PROGRAMA OBJETO Programa bytecode para JVM


.class

INTERPRETE (JVM) INTERPRETE (JVM) INTERPRETE (JVM)


para Windows para Linux para Macintosh
WINDOWS LINUX MACINTOSH
44
Desarrollo en JAVA

crear el programa HolaMundo.java


en un editor

compilador Java javac HolaMundo.java

HolaMundo.class System.class

llamar a la JVM java HolaMundo


SISTEMA OPERATIVO
45
Prctica n 1: Uso de JDK (desde
consola)
Descarga e instalacin de la ltima versin de Java
Development kit (JDK 7 para windows). Herramienta
de desarrollo para la creacin de programas en java.
Creacin de nuestro primer programa en java:
Edicin con el bloc de notas de windows el
programa Holamundo.java
Class Holamundo {
/* Punto de entrada a la aplicacin*/
Public static void main (String args[]) {
System.out.println(Hola mundo, esto es java); }
}
Compilacin de la aplicacin
javac Holamundo.java
Ejecucin del programa
java holamundo
Prctica n 2: Uso Netbeans IDE

Descarga e instalacin del IDE


Netbeans (versin 7.3 para windows
y en espaol).
Creacin del proyecto Holamundo
Edicin cdigo de la aplicacin.
Class Holamundo {
/* Punto de entrada a la aplicacin*/
Public static void main (String args[]) {
System.out.println(Hola mundo, esto es java); }
}

Compilacin aplicacin.
Ejecucin de la aplicacin.

Вам также может понравиться