Principios de Computadoras II Departamento de Ingeniería Electrónica y Computadoras Universidad Nacional del Sur
Conceptos Iniciales
Ing. Ricardo Coppo
¿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.
Conceptos Iniciales Ing.. Ricardo Coppo
2
Principios de Computadoras II Universidad Nacional del Sur
Estructura de la computadora
Son controlados por programas o secuencias de instrucciones almacenados en su memoria.
Principios de Computadoras II Universidad Nacional del Sur
Componentes Principales CPU
UC Memoria Principal
ALU Registros
Bus o Canal
Entradas
Dispositivos de Entrada
Conceptos Iniciales Ing.. Ricardo Coppo
Memoria Secundaria
4
Salidas Dispositivos de Salida
Principios de Computadoras II Universidad Nacional del Sur
Ciclo de instrucción básico 1.
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.
Fetch Conceptos Iniciales Ing.. Ricardo Coppo
Decode
5
Execute
Next
Principios de Computadoras II Universidad 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.
Conceptos Iniciales Ing.. Ricardo Coppo
6
Principios de Computadoras II Universidad Nacional del Sur
Ejemplo de abstracción
A nivel mundial se puede estudiar fenómenos meteorológicos
En un nivel menor se puede analizar fenómenos regionales
Conceptos Iniciales Ing.. Ricardo Coppo
La capa de ozono
Producción triguera
7
Principios de Computadoras II Universidad Nacional del Sur
Ejemplo de abstracción
A un nivel de mayor detalle se pueden estudiar actividades industriales
En una escala de aún mas detalle se analizan los problemas municipales.
Conceptos Iniciales Ing.. Ricardo Coppo
Contaminación en la ría
Construcciones sin permiso
8
Principios de Computadoras II Universidad Nacional del Sur
Lenguajes, niveles y máquinas virtuales Nivel 4
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 3
Nivel 2
Nivel 1
Nivel 0 Conceptos Iniciales Ing.. Ricardo Coppo
9
Principios de Computadoras II Universidad Nacional del Sur
Estructura multinivel
El ingeniero electrónico estudia exhaustivamente los tres primeros niveles de abstracción (Niveles 0 a 2).
L4 – Orientación a Objetos L3 – Programa Pascal
El término “hardware” se refiere al estudio de los niveles 0 y 1.
L2 - Ensamblador
El término “software” se refiere a los niveles de abstracción superior
L1 - Componentes
L0 – Lógica digital Conceptos Iniciales Ing.. Ricardo Coppo
10
Principios de Computadoras II Universidad Nacional del Sur
L0 – Lógica digital
Los componentes electrónicos se interconectan de acuerdo a un circuito esquemático. El circuito representa un “lenguaje” gráfico que es implementado o “traducido” para obtener un circuito Conceptos Iniciales Ing.. Ricardo Coppo
11
Principios de Computadoras II Universidad Nacional del Sur
L1 - Componentes
El siguiente nivel de abstracción son los circuitos que se representan con un lenguaje de diagramas en bloque interconectados Conceptos Iniciales Ing.. Ricardo Coppo
12
Principios de Computadoras II Universidad Nacional del Sur
L2 - Assembler
Encabezamiento del programa
Directivas para el traductor
Etiquetas
Cada línea de programa corresponde a una instrucción del hardware Conceptos Iniciales Ing.. Ricardo Coppo
Instrucciones
Comentarios
13
Principios de Computadoras II Universidad Nacional del Sur
L3 – Lenguaje de programación estructurado 1. 2. 3. 4.
Leer el valor de radio del teclado (x) Calcular area = π * x * x Imprimir (o mostrar en pantalla) el valor de “area” 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.
Conceptos Iniciales Ing.. Ricardo Coppo
14
Principios de Computadoras II Universidad 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
Conceptos Iniciales Ing.. Ricardo Coppo
15
Principios de Computadoras II Universidad 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 con total independencia de la computadora y de su software. Los problemas resueltos en este lenguaje luego se “implementan” en algún tipo de dispositivo. Un nivel de abstracción similar es la de representación gráfica o visual Conceptos Iniciales Ing.. Ricardo Coppo
16
Principios de Computadoras II Universidad 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
Conceptos Iniciales Ing.. Ricardo Coppo
17
Principios de Computadoras II Universidad 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)
Conceptos Iniciales Ing.. Ricardo Coppo
18
Principios de Computadoras II Universidad Nacional del Sur
Compilación y generación del ejecutable Código Fuente
Código objeto
Compilador
Vinculador (Linker) Código Fuente
Conceptos Iniciales Ing.. Ricardo Coppo
Código ejecutable
Código objeto
Compilador
19
Principios de Computadoras II Universidad 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)
Conceptos Iniciales Ing.. Ricardo Coppo
20
Principios de Computadoras II Universidad Nacional del Sur
Programas interpretados
Código Fuente
Conceptos Iniciales Ing.. Ricardo Coppo
Intérprete
21
Ejecución
Principios de Computadoras II Universidad 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
Conceptos Iniciales Ing.. Ricardo Coppo
22
Principios de Computadoras II Universidad 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
Conceptos Iniciales Ing.. Ricardo Coppo
23
Principios de Computadoras II Universidad Nacional del Sur
Programas interpretados en Java Archivos ByteCode Archivos .java
Compilador java
Archivos .class Intérprete Java (JVM)
Archivos Fuente Archivos .jar
Conceptos Iniciales Ing.. Ricardo Coppo
24
Ejecución programa
Biblioteca de soporte Principios de Computadoras II Universidad 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
MiPrimerPrograma.java
Está conformado por dos partes:
Una máquina virtual (JVM) Una API (Application Interface)
Conceptos Iniciales Ing.. Ricardo Coppo
25
JVM API Máquina Virtual Java Plataforma HW y S.Op. Principios de Computadoras II Universidad 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
Conceptos Iniciales Ing.. Ricardo Coppo
No todos los JVM son desarrollados por SUN 26
Principios de Computadoras II Universidad Nacional del Sur
Plataforma Java
Conceptos Iniciales Ing.. Ricardo Coppo
27
Principios de Computadoras II Universidad Nacional del Sur
Mi Primer Programa Comentario de varias líneas
Comentario de final de línea
Operación de escritura en terminal
Conceptos Iniciales Ing.. Ricardo Coppo
El procedimiento “main” es el primero que invoca el intérprete
28
Principios de Computadoras II Universidad Nacional del Sur
El entorno de desarrollo (IDE)
Conceptos Iniciales Ing.. Ricardo Coppo
29
Principios de Computadoras II Universidad 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
Conceptos Iniciales Ing.. Ricardo Coppo
30
Principios de Computadoras II Universidad Nacional del Sur
El software como “producto” Código Fuente
Requerimiento Inicial
Especificación de requisitos
Manual de Referencia (programador)
Manual de usuario
Procedimiento de prueba
Código Ejecutable
Archivos de ayuda
Conceptos Iniciales Ing.. Ricardo Coppo
Implementación 31
Producto final
Principios de Computadoras II Universidad 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”.
Conceptos Iniciales Ing.. Ricardo Coppo
32
Principios de Computadoras II Universidad Nacional del Sur
Principios de Computadoras II Universidad Nacional del Sur
Etapas en la construcción de programas Etapa
Tarea principal
Requerimiento
El usuario describe el problema en forma informal y en forma incompleta. Expresa opiniones sobre cómo desea obtener la solución. Faltan detalles
Análisis
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
Diseño
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
Implementación
Programación del código fuente en el lenguaje de programación elegido y generación del ejecutable
Mantenimiento y modificación
El usuario final pide modificaciones y se corrigen fallas para generar nuevas versiones
Conceptos Iniciales Ing.. Ricardo Coppo
34
Principios de Computadoras II Universidad Nacional del Sur
Estadísticas
Un buen proyecto requiere:
40% - Especificación y diseño
20% - Implementación
Asignar tiempo suficiente a esta tarea mejora la calidad del producto y simplifica los pasos siguientes
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.
Conceptos Iniciales Ing.. Ricardo Coppo
35
Principios de Computadoras II Universidad Nacional del Sur
Principios de Computadoras II Departamento de Ingeniería Electrónica y Computadoras Universidad Nacional del Sur