Principios de Computadoras II - Universidad Nacional del Sur

36
Principios de Computadoras II Conceptos Iniciales Departamento de Ingeniería Electrónica y Computadoras Universidad Nacional del Sur Ing. Ricardo Coppo

Transcript of Principios de Computadoras II - Universidad Nacional del Sur

Page 1: Principios de Computadoras II - Universidad Nacional del Sur

Principios de Computadoras II

Conceptos Iniciales

Departamento de Ingeniería Electrónica y ComputadorasUniversidad Nacional del Sur

Ing. Ricardo Coppo

Page 2: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 2

Principios de Computadoras IIUniversidad Nacional del Sur

¿Qué es una computadora?� Una computadora es…

� una máquina digital y sincrónica� con capacidad de cálculo numérico y lógico� controlada por un programa almacenado� con posibilidad de comunicación

con el mundo exterior.

Page 3: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 3

Principios de Computadoras IIUniversidad Nacional del Sur

Estructura de la computadora� Son controlados por programas o secuencias

de instrucciones almacenados en su memoria.

Procesador

Entradas(input)

Salidas(output)

Page 4: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 4

Principios de Computadoras IIUniversidad Nacional del Sur

Componentes Principales

Bus o Canal

MemoriaPrincipal

MemoriaSecundariaDispositivos

deEntrada

Dispositivosde

Salida

UC

ALU

EntradasSalidas

Registros

CPU

Page 5: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 5

Principios de Computadoras IIUniversidad Nacional del Sur

Ciclo de instrucción básico1. Buscar la siguiente instrucción en la memoria principal

2. Decodificar la instrucción para conocer su tipo

3. Ejecutar la operación

4. Calcular la dirección de la próxima instrucción.

5. Volver al paso 1.

Decode Execute NextFetch

Page 6: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 6

Principios de Computadoras IIUniversidad Nacional del Sur

Niveles de abstracción� Para poder estudiar sistemas electrónicos tan

complejos es necesario crear capas o “niveles” de abstracción.

� La “abstracción” es una poderosa herramienta de diseño y de análisis de sistemas.

� Jerarquiza el sistema en componentes de complejidad lógica aceptable.

Page 7: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 7

Principios de Computadoras IIUniversidad Nacional del Sur

Ejemplo de abstracción� A nivel mundial se puede

estudiar fenómenos meteorológicos� La capa de ozono

� En un nivel menor se puede analizar fenómenos regionales� Producción triguera

Page 8: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 8

Principios de Computadoras IIUniversidad Nacional del Sur

Ejemplo de abstracción� A un nivel de mayor detalle se

pueden estudiar actividades industriales� Contaminación en la ría

� En una escala de aún mas detalle se analizan los problemas municipales.� Construcciones sin permiso

Page 9: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 9

Principios de Computadoras IIUniversidad Nacional del Sur

Lenguajes, niveles y máquinas virtuales� Los sistemas complejos se pueden estudiar

combinando lenguajes cada vez mas abstractos que se traducen a los de un nivel inferior

� En cada nivel se define un lenguaje y máquina virtual

� En los niveles superiores los lenguajes se acercan a los utilizados por el hombre.

� Los lenguajes del nivel inferior pueden ser señales, corrientes electrónicas, etc.

Nivel 4

Nivel 3

Nivel 2

Nivel 1

Nivel 0

Page 10: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 10

Principios de Computadoras IIUniversidad Nacional del Sur

Estructura multinivel� El ingeniero electrónico estudia

exhaustivamente los tres primeros niveles de abstracción (Niveles 0 a 2).

� El término “hardware” se refiere al estudio de los niveles 0 y 1.

� El término “software” se refiere a los niveles de abstracción superior

L4 – Orientación aObjetos

L3 – Programa Pascal

L2 - Ensamblador

L1 - Componentes

L0 – Lógica digital

Page 11: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 11

Principios de Computadoras IIUniversidad Nacional del Sur

L0 – Lógica digital

Los componentes electrónicosse interconectan de acuerdo aun circuito esquemático.

El circuito representa un “lenguaje”gráfico que es implementado o “traducido” para obtener un circuito

Page 12: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 12

Principios de Computadoras IIUniversidad Nacional del Sur

L1 - Componentes

El siguiente nivel deabstracción son los circuitos quese representan con un lenguajede diagramas en bloque interconectados

Page 13: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 13

Principios de Computadoras IIUniversidad Nacional del Sur

L2 - Assembler

Cada líneade programacorrespondea una instruccióndel hardware

Encabezamiento del programa

Directivas para el traductor

Etiquetas

Instrucciones Comentarios

Page 14: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 14

Principios de Computadoras IIUniversidad Nacional del Sur

L3 – Lenguaje de programación estructurado

1. Leer el valor de radio del teclado (x)2. Calcular area = π * x * x3. Imprimir (o mostrar en pantalla) el valor de “area”4. Parar

program Circle (input, output);const

PI = 3.14;var

radio, superficie : real; begin

writeln( ‘Ingresar el radio:’ );readln( radio );superficie := PI * radio * radio;writeln( ‘La superficie es :’, superficie );readln;

end.

Page 15: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 15

Principios de Computadoras IIUniversidad Nacional del Sur

L4 – Programación Orientado a Objetos

� Los componentes del programa modelan a los “objetos” de la vida real.

� Los objetos son de un determinado tipo o “clase”. La “clase” describe sus atributos o propiedades.

� Los objetos intercambian “mensajes” entre si y esto constituye un nuevo paradigma de programación.

� Java es orientado a objetos desde su concepción

Page 16: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 16

Principios de Computadoras IIUniversidad Nacional del Sur

L5 – Lenguajes de alto nivel de abstracción

Los niveles más altos de abstracción se basan en los conceptos matemáticos

La resolución de problemas se hace contotal independencia de la computadoray de su software.

Los problemas resueltos en este lenguajeluego se “implementan” en algún tipode dispositivo.

Un nivel de abstracción similar es la derepresentación gráfica o visual

Page 17: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 17

Principios de Computadoras IIUniversidad Nacional del Sur

Traductores, Compiladores e Intérpretes

� Traducir un lenguaje es convertir las sentencias de un lenguaje en las de otro

� Compilar un lenguaje es realizar toda la traducción antes de la ejecución de los comandos

� Interpretar un lenguaje es repetir en forma cíclica la operación de traducción y de ejecución

Page 18: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 18

Principios de Computadoras IIUniversidad Nacional del Sur

Programas compilados� El proceso de compilación genera un programa

ejecutable solamente apto para la plataforma elegida

� La especialización permite obtener programas muy rápidas y eficientes en el uso de la CPU.

� Si bien los programas no son “portables” a otra plataforma, se puede compilar reiteradas veces. (Sujeto a la existencia de las herramientas y bibliotecas adecuadas)

Page 19: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 19

Principios de Computadoras IIUniversidad Nacional del Sur

Compilación y generación del ejecutable

CódigoFuente

Compilador Códigoobjeto

Vinculador(Linker) Código

ejecutable

CódigoFuente

Compilador Códigoobjeto

Page 20: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 20

Principios de Computadoras IIUniversidad Nacional del Sur

Programas interpretados� Requieren del intérprete o “máquina virtual” para su

ejecución.

� No hacen un uso eficiente de la CPU.

� Son muy portables, basta disponer del intérprete en la nueva plataforma y todas las aplicaciones funcionan sin cambios

� Muy aptas en entornos de red (donde la eficiencia del procesador queda limitada por la velocidad de la red)

Page 21: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 21

Principios de Computadoras IIUniversidad Nacional del Sur

Programas interpretados

CódigoFuente

Intérprete Ejecución

Page 22: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 22

Principios de Computadoras IIUniversidad Nacional del Sur

Tecnología Java� Es un lenguaje de programación

� Permite expresar programas en el paradigma “orientado a objetos”, es decir mediante abstracciones de más alto nivel que la del hardware subyacente y la de los lenguajes del “paradigma” imperativo como C, Pascal, Fortran

� Es una plataforma tecnológica� Brinda abstracciones que permite escribir programas en

forma independiente al sistema operativo y a la máquina sobre la que se ejecutan

Page 23: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 23

Principios de Computadoras IIUniversidad Nacional del Sur

Tecnología Java� Propiedades de Java como lenguaje

� Orientado a objetos� Aplicaciones altamente portables� Independiente del hardware� Admite programación multitarea� Aplicable a la programación de redes� Versiones para dispositivos portátiles

Page 24: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 24

Principios de Computadoras IIUniversidad Nacional del Sur

Programas interpretados en Java

Archivos.java

Archivos.class

Compiladorjava

IntérpreteJava

(JVM)

Archivos.jar

Archivos Fuente

ArchivosByteCode

Bibliotecade soporte

Ejecuciónprograma

Page 25: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 25

Principios de Computadoras IIUniversidad Nacional del Sur

Tecnología Java� Propiedades de Java como plataforma tecnológico

� La plataforma Java es un entorno exclusivamente de software.

� Es independiente del hardware y del sistema operativo

� Está conformado por dos partes:� Una máquina virtual (JVM)� Una API (Application Interface)

MiPrimerPrograma.java

Plataforma HW y S.Op.

JVMMáquina Virtual Java

API

Page 26: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 26

Principios de Computadoras IIUniversidad Nacional del Sur

Distribuciones de Java� Ejecución de programas� JRE – Java Runtime Enviornment

� Desarrollo de aplicaciones � Java SE – (JDK, J2SE) Standard Edition� J2EE – Java 2 Enterprise Edition� JME – Java Micro Edition

No todos los JVM son desarrollados por SUN

Page 27: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 27

Principios de Computadoras IIUniversidad Nacional del Sur

Plataforma Java

Page 28: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 28

Principios de Computadoras IIUniversidad Nacional del Sur

Mi Primer ProgramaComentario de

varias líneas

Comentario de final de línea

Operación de escritura en terminal El procedimiento “main” es el

primero que invoca el intérprete

Page 29: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 29

Principios de Computadoras IIUniversidad Nacional del Sur

El entorno de desarrollo (IDE)

Page 30: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 30

Principios de Computadoras IIUniversidad Nacional del Sur

Conceptos de Ingeniería del Software� La necesidad de crear productos de software

condujo a la necesidad de cierta disciplina en el desarrollo de los proyectos.

� Muchos fracasos de programación se debieron a errores de software.

� La “ingeniería del software” estudia métodos y técnicas de desarrollo de software

Page 31: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 31

Principios de Computadoras IIUniversidad Nacional del Sur

El software como “producto”

RequerimientoInicial

Especificaciónde requisitos

Implementación

CódigoFuente

Manual deReferencia

(programador)

Procedimientode prueba

Archivos deayuda

Manual deusuario

CódigoEjecutable

Producto final

Page 32: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 32

Principios de Computadoras IIUniversidad Nacional del Sur

El “proyecto” de software� Se refiere a las etapas o tareas que se deben

realizar para obtener un producto de software

� También es conocido como el “proceso” de desarrollo del software

� Se caracteriza por un paradigma de desarrollo también conocido como “ciclo de vida”.

Page 33: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 33

Principios de Computadoras IIUniversidad Nacional del Sur

Ciclo de vida tradicionalPlanteo delproblema

Especificación

Diseño

Implementación

Prueba y mantenimento

Modelo en “cascada”

Page 34: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 34

Principios de Computadoras IIUniversidad Nacional del Sur

Etapas en la construcción de programas

El usuario final pide modificaciones y se corrigen fallas para generar nuevas versiones

Mantenimiento y modificación

Programación del código fuente en el lenguaje de programación elegido y generación del ejecutable

Implementación

Se define el COMO se obtiene la solución. Se puede usar seudocódigo, diagramas de flujo, diagramas en bloque, entre otras herramientas para facilitar la tarea de programación siguiente

Diseño

El analista /programador describe QUE es lo el programa debe hacer. Se describe la solución sin tomar decisiones sobre la plataforma (hardware) o el software. En ingeniería frecuentemente describe una solución matemática del problema

Análisis

El usuario describe el problema en forma informal y en forma incompleta. Expresa opiniones sobre cómo desea obtener la solución. Faltan detalles

Requerimiento

Tarea principalEtapa

Page 35: Principios de Computadoras II - Universidad Nacional del Sur

Conceptos InicialesIng.. Ricardo Coppo 35

Principios de Computadoras IIUniversidad Nacional del Sur

Estadísticas� Un buen proyecto requiere:

� 40% - Especificación y diseño� Asignar tiempo suficiente a esta tarea mejora la calidad

del producto y simplifica los pasos siguientes

� 20% - Implementación � En esta etapa incide el lenguaje de programación y las

técnicas de desarrollo de programa.

� 40% - Prueba y aceptación� Verificación de las especificaciones y aceptación del

cliente.

Page 36: Principios de Computadoras II - Universidad Nacional del Sur

Principios de Computadoras II

Conceptos Iniciales

Departamento de Ingeniería Electrónica y ComputadorasUniversidad Nacional del Sur

Ing. Ricardo Coppo