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.

Procesador

Salidas (output)

Entradas (input) Conceptos Iniciales Ing.. Ricardo Coppo

3

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

Ciclo de vida tradicional Planteo del problema

Modelo en “cascada”

Especificación Diseño Implementación Prueba y mantenimento Conceptos Iniciales Ing.. Ricardo Coppo

33

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

Conceptos Iniciales

Ing. Ricardo Coppo