MPLS MULTI PROTOCOL LABEL SWITCHING. Una Arquitectura de Backbone para la Internet del Siglo XXI

Tamaño: px
Comenzar la demostración a partir de la página:

Download "MPLS MULTI PROTOCOL LABEL SWITCHING. Una Arquitectura de Backbone para la Internet del Siglo XXI"

Transcripción

1 Universidad Nacional del Nordeste Facultad deciencias Exactas, Naturales yagrimensura Trabajo Final de Aplicación MPLS MULTI PROTOCOL LABEL SWITCHING Una Arquitectura de Backbone para la Internet del Siglo XXI por María Sol Canalis Prof. Coordinador: Agr. Castor Herrmann Prof. Orientador: Lic. Ricardo Monzón Licenciatura en Sistemas Corrientes Argentina Corrientes 2003

2

3 A mis padres, por el apoyo incondicional, y a la luz que hoy ilumina mi vida.

4

5 Prefacio El protocolo TCP / IP es hoy día una solución clásica y estándar al transporte de información en las redes. Aceptado por toda la comunidad de Internet, ha sido hasta hoy una solución aceptable para el envío de información, utilizando Routing de paquetes conciertas garantías de entrega. Asu vez, los avances en el hardware y en las metodologías de ingeniería del trá co están dando lugar al empleo creciente de las tecnologías de Conmutación, encabezadas por la tecnología ATM. Aportando velocidad, calidad de servicio y facilitando la gestión de los recursos en la red. El principal objetivo de este Trabajo es analizar y dar a conocer las soluciones que existen actualmente al problema de integrar trá co IP dentro de la tecnología ATM. Para ello, se comienza estudiando el protocolo IP, la tecnología ATM y las diferencias entre ellos. También se verán las necesidades crecientes por parte de proveedores y administradores de redes de mantener un control sobre el trá co, gestión de recursos, ancho de banda disponible y calidad de servicio (QoS). Comprobando cómo el protocolo de Internet actual, IP, puede bene ciarse de las características que aportan las nuevas tecnologías, principalmente ATM. Tras esto, se estudian a fondo las soluciones IP - ATM más destacadas, y se desarrolla una simulación sobre MPLS, la solución más sólida de todas las estudiadas, a mi parecer. Este simulador nos proporcionará una idea más clara de las ventajas, inconvenientes, costes de implantación del nuevo sistema, etc. El Simulador utilizado fue desarrollado en el Área Telemática del Departamento de Informática de la Universidad de Extremadura, agradeciéndose muy especialmente a Miguel Ángel Martín Tardío, Miguel Gaspar Rodríguez y José Luis Gonzalez Sánchez. Sobre el mismo se ha desarrollado una Interfaz de Captura de Datos de Entrada. Se ha optado por el lenguaje Java para realizar la implementación. Los motivos: su orientación a objetos, la posibilidad de manejar hilos de ejecución y la ejecución multiplataforma. A continuación pasamos a describir cada uno de los capítulos de los que consta este texto: ² Lenguaje Java. Debido a que se utilizó este lenguaje en la elaboración del Simulador de Redes MPLS y de la interfaz de Captura de Datos de Entrada, se dedicó

6 vi este capítulo a Java, lenguaje orientado a objetos (OO)y multiparadigma. ² Preparación de Documentos con Latex. Esta sección explica como se hace un libro con Latex; un sistema de composiciónprofesional que consiste en unconjunto de macrocomandos creado por Donald Knuth de la Universidad de Stanford en los años 1970s. También se utilizó para confeccionar este libro el editor Scienti c WorkPlace, que utiliza Latex como lenguaje de composición del texto. ² Introducción a MPLS. Esta sección nos introduce a la esencia misma del MPLS, explicando el porqué esta arquitectura es apta para la convergencia de las redes de altas prestaciones. También en este apartado se describen las diferentes alternativas que existen para mejorar la perfomance de las grandes redes, conluyendo que MPLS es la mejor opción. ² MPLS MultiProtocol Label Switching. Nos sumergidos por completo en el MPLS, explicando en detalle sutecnología, arquitectura, principales aplicaciones, etc. ² Simulador de Redes MPLS. Esta sección explica el desarrollo completo del Simulador de Redes MPLS, haciendo un estudio del sistema actual y del sistema propuesto aplicando MPLS. Se divide en las siguientes fases: Análisis, Diseño e Implementación. ² Interfaz de Captura de Datos de Entrada. Se desarrolló esta herramienta para hacer una interfaz más amigable con el usuario a la hora de cargar los datos del archivo de con guración que necesita el Simulador de Redes MPLS para su correcta ejecución. ² Ampliaciones y Conclusiones. Y por último, este apartado se re ere a las ampliaciones del Simulador de Redes MPLS, y de la Interfaz de Captura de Datos, nalizando con las conclusiones acerca de esta arquitectura. María Sol Canalis Licenciatura en Sistemas Universidad Nacional del Nordeste

7 Índice General 1 Java Introducción al Lenguaje Bibliotecas de Clases Estándares de Java Java es Multiplataforma Características del Lenguaje Java Estructura General de un Programa Java Conceptos Básicos Clase Herencia Interface Package La jerarquía de clases de Java (API) Variables dentro del Lenguaje Java Visibilidad y vida de las variables Operadores en Java Operadores aritméticos Operadores de asignación Operadores unarios Operadores incrementales Operadores relacionales Operador de concatenación de cadenas de caracteres (+) Precedencia de operadores Estructuras de Programación Sentencias o expresiones Comentarios Bifurcaciones Bucles Clases en Java vii

8 viii ÍNDICE GENERAL Características importantes de las clases Métodos o Funciones Miembros Algunas Clases de Utilidad Clase Arrays Clases String y StringBu er Clase Double Clase Integer El AWT (Abstract Windows Toolkit) Qué es el AWT Creación de una Interface Grá ca de Usuario Objetos event source y objetos event listener Proceso a seguir para crear una aplicación interactiva (orientada a eventos) Errores Frecuentes de Programación Scheduling de Hilos de Ejecución Errores en el Uso de las Características de Portabilidad de Java Uso de directorios de nidos Carga de Drivers JDBC Terminación de Líneas Entrada/Salida por Archivo Fuentes de Caracteres Preparación de documentos con LATEX Introducción Forma de trabajo con LATEX Modo de trabajo en LATEX Documentos en L A TEX El Preámbulo Especi cación y Estilo de Documento Estilo de Página La página del Título El Documento Propiamente Dicho División de un documento en partes Documento Tipo Libro Trabajo en Modo Texto Partes Flotantes Referencia Cruzada e Índice de Palabras Bibliografía

9 ÍNDICE GENERAL ix 3 Introducción al MPLS Presentación de una Nueva Arquitectura Estudio del Sistema Actual Protocolo IP Tecnología ATM El Protocolo IP sobre la estructura ATM Modelo lógico del sistema existente Evaluación de alternativas LANE IP clásico sobre ATM NHRP MPOA Arequipa IP Switching Tag Switching MPLS Selección de una alternativa Viabilidad técnica Viabilidad operacional Viabilidad económica MPLS Multi Protocol Label Switching Introducción a MPLS Objetivos Arquitectura Visión general Protocolo de Intercambio de Etiquetas LDP Aplicaciones MPLS Ingienería de Trá co Clases de Servicios (CoS) Redes Virtuales Privadas (VPNs) Simulador de Redes MPLS Fase de Análisis Diagrama de Contexto Descripción de las entidades externas Descripción de los almacenes de datos Descripción de los procesos Descripción de los ujos de datos Componentes de un LSR

10 x ÍNDICE GENERAL Diccionario de Datos Diseño del Sistema Diseño de las salidas Implementación Creación de las Clases en Java Implementación de los Procedimientos Ejemplos de Funcionamiento Ejemplo 1. Entrada de datos IP sin clasi car Ejemplo 2. Dos ujos de datos en la red Ejemplo 3. Dos tipos de datagramas asociados a un ujo de datos Captura de Datos de Entrada Reglas de codi cación del Archivo de Con guración Bloques del Archivo de Con guración Datos Generales de la Red Datos Especí cos para cada Nodo Interfaz con el Usuario Código Fuente Clase principal MPLS.java Clase FrPosiciones.java Clase FrEnlaces.java Clase FrLIB.java Clase FrRuteo.java Clase FrameConsola.java Clase FiltroCFG.java Clase FrAyuda.java Clase FrAcerca.java Ampliaciones y Conclusiones Ampliaciones y mejoras para el Simulador de Redes MPLS Mejoras para la Interfaz de Captura de datos de Entrada Mejoras sobre la arquitectura MPLS Conclusiones Bibliografía 293 Índice de Materias 295

11 Índice de Figuras 2.1 Algunos de los cheros resultantes del proceso de edición y composición de un documento con LATEX Niveles y comportamiento por defecto de las distintas unidades de seccionamiento, y según las clases de documento (se ha tomado art. y rep. como abreviatura de article y report) Esquema de un chero para preparar libros Formato del Datagrama IP Cabecera de una célula ATM Diagrama de Contexto del Sistema Actual DFD de Primer Nivel Esquema funcional de MPLS Componente de Control y Envío de Etiquetas Detalle de la tabla de envío de un LSR Ejemplo de envío de un paquete por un LSP Estructura de la cabecera genérica MPLS Ejemplo de las distribución de etiquetas Distribución DownStream bajo demanda DownStream sin Solicitar Funcionamiento de los LSP Comparación entre camino más corto IGP con Ingienería de Trá co Modelo superpuesto (túneles/pvcs) vs. modelo acoplado (MPLS) Diagrama de Contexto del Nuevo Sistema Diagrama de Nivel Superior Entrada de Datos Genéricos Datos de la tabla NHLFE xi

12 xii ÍNDICE DE FIGURAS 5.5 Disposición de la red del Ejemplo Disposición de la red del Ejemplo Disposición de la red del Ejemplo Disposición de las ventanas Menú Archivo Submenú Guardar Submenú Posiciones Mensaje de Error Datos de los nodos internos Datos de los nodos externos Submenú Enlaces Ventana de Enlaces Submenú Tabla LIB Datos de Entrada de la LIB: Información de Salida Información general Submenú Tabla de Ruteo Información de la Tabla de Ruteo

13 Índice de Tablas 1.1 Tipos de Variables Categorías de Variables Tipos Primitivos de Variables Operadores de asignación Operadores relacionales Precedencia de Operadores Programas implicados en la preparación de un documento con LaTeX Programas implicados en la preparación de un documento con LaTeX Dirección IP Pre jo de Dirección Siguiente Salto Etiqueta de Entrada Etiqueta de Salida Clase de Envio Equivalente Número Interfaz Salida Número Interfaz Entrada Interfaz de Entrada Interfaz de Salida Número Interfaz de Salida Número Interfaz de Entrada Interfaz de Entrada Interfaz de Salida Etiqueta de Entrada Etiqueta de Salida xiii

14

15 Capítulo 1 Java 1.1 Introducción al Lenguaje Java es un lenguaje orientado a objetos. Esto signi ca que posee ciertas características que hoy día se consideran estándares en los lenguajes OO: ² Objetos ² Clases ² Métodos ² Subclases ² Herencia simple ² Enlace dinámico ² Encapsulamiento Para programar orientado a objetos es necesario primero diseñar un conjunto de clases. La claridad, e ciencia y mantenibilidad del programa resultante dependerá principalmente de la calidad del diseño de clases. Un buen diseño de clases signi cará una gran economía en tiempo de desarrollo y mantención. Lamentablemente se necesita mucha habilidad y experiencia para lograr diseños de clases de calidad. Un mal diseño de clases puede llevar a programas OO de peor calidad y de más alto costo que el programa equivalente no OO. 1

16 2 CAPÍTULO 1. JAVA Por qué entonces la ventaja de programar en un lenguaje OO, si se requiere una experiencia que probablemente una persona nunca tendrá el tiempo de práctica para llegar a obtenerla. La respuesta a este interrogante es que Java es un lenguaje multiparadigma (como muchos otros lenguajes de programación). No se necesita hacer un diseño de clases para programar una aplicación de mil líneas. Entonces otro interrogante podrá ser porque no programar con otro lenguaje más simples, como puede ser Visual Basic, si no se necesita que sea OO. La respuesta a ésto es la gran ventaja de un lenguaje OO, que son las bibliotecas de clases que se pueden construir para la aplicación. Una biblioteca de clases cumple el mismo objetivo de una biblioteca de procedimientos en una lenguaje como C. Sin embargo: Una biblioteca de clases es mucho más fácil de usar que una biblioteca de procedimientos, incluso para programadores sin experiencia en orientación a objetos. Esto se debe a que las clases ofrecen mecanismos de abstracción más e caces que los procedimientos. Se puede distinguir entre varios tipos de programadores en Java: El diseñador de clases: Es el encargado de de nir qué clases ofrece una biblioteca y cuál es la funcionalidad que se espera de estas clases. Esta persona tiene que ser muy hábil y de mucha experiencia. Un diseño equivocado puede conducir a clases que son incomprensibles para los clientes de la biblioteca. El programador de clases de biblioteca: Sólo programa la clases especi cadas por el diseñador de clases. Esta persona debe entender orientación a objetos, pero no requiere mayor experiencia en diseño de clases. El cliente de bibliotecas: Es el programador de aplicaciones. Él sólo usa las clases que otros han diseñado y programado. Como en el caso anterior necesita entender orientación a objetos y conocer la biblioteca que va usar, pero no necesita mayor experiencia. Tanto programadores de clases como clientes de bibliotecas pueden llegar a convertirse en buenos diseñadores de clases en la medida que adquieran experiencia, comparando los diseños de las bibliotecas que utilicen. Por lo tanto es importante destacar que no se necesita gran experiencia en diseño orientado a objetos para poder aprovechar las ventajas de la orientación

17 1.1. INTRODUCCIÓN AL LENGUAJE 3 a objetos Bibliotecas de Clases Estándares de Java Toda implementación de Java debe tener las siguientes bibliotecas de clases: ² Manejo de archivos ² Comunicación de datos ² Acceso a la red internet ² Acceso a bases de datos ² Interfaces grá cas La interfaz de programación de estas clases es estándar, es decir en todas ellas las operaciones se invocan con el mismo nombre y los mismos argumentos Java es Multiplataforma Los programas en Java pueden ejecutarse en cualquiera de las siguientes plataformas, sin necesidad de hacer cambios: Windows/95 y /NT. Power/Mac. Unix (Solaris, Silicon Graphics,...). La compatibilidad es total: A nivel de fuentes: El lenguaje es exactamente el mismo en todas las plataformas. A nivel de bibliotecas: En todas las plataformas están presentes las mismas bibliotecas estándares. Aniveldelcódigo compilado: el código intermedio que genera el compilador es el mismo para todas las plataformas. Lo que cambia es el intérprete del código intermedio.

18 4 CAPÍTULO 1. JAVA Características del Lenguaje Java ² Robustez En Java no se pueden cometer los 4 errores que se mencionarán a continuación: Java siempre chequea los índices al acceder a un arreglo. Java realiza chequeo de tipos durante la compilación (al igual que C). En una asignación entre punteros el compilador veri ca que los tipos sean compatibles. Además, Java realiza chequeo de tipos durante la ejecución (cosa que C y C++ no hacen). Cuando un programa usa un cast para acceder a un objeto como si fuese de un tipo especí co, se veri ca durante la ejecución que el objeto en cuestión sea compatible con el cast que se le aplica. Si el objeto no es compatible, entonces se levanta una excepciónque informa al programador la línea exacta en donde está la fuente del error. Java posee un recolector de basuras que administra automáticamente la memoria. Es elrecolector elque determina cuando se puede liberar el espacio ocupado por un objeto. El programador no puede liberar explícitamente el espacio ocupado por un objeto. Java no posee aritmética de punteros, porque es una propiedad que no se necesita para programar aplicaciones. En C sólo se necesita la aritmética de punteros para programa malloc/free o para programar el núcleo del sistema operativo. Por lo tanto Java no es un lenguaje para hacer sistemas operativos o administradores de memoria, pero síes unexcelente lenguaje para programar aplicaciones. ² Flexibilidad Java combina exibilidad, robustez y legibilidad gracias a una mezcla de chequeo de tipos durante la compilación y durante la ejecución. En Java se pueden tener punteros a objetos de un tipo especí co y también se pueden tener punteros a objetos de cualquier tipo. Estos punteros se pueden convertir

19 1.1. INTRODUCCIÓN AL LENGUAJE 5 a punteros de un tipo especí co aplicando un cast, en cuyo caso se chequea en tiempo de ejecución de que el objeto sea de un tipo compatible. El programador usa entonces punteros de tipo especí co en la mayoría de los casos con el n de ganar legibilidad y en unos pocos casos usa punteros a tipos desconocidos cuando necesita tener exibilidad. Por lo tanto Java combina la robustez de Pascal con la exibilidad de Lisp, sin que lo programas pierdan legibilidad en ningún caso. ² Administración Automática de la Memoria En Java los programadores no necesitan preocuparse de liberar un trozo de memoria cuando ya no lo necesitan. Es el recolector de basuras el que determina cuando se puede liberar la memoria ocupada por un objeto. Un recolector de basuras es un gran aporte a la productividad. Se ha estudiado en casos concretos que los programadores han dedicado un 40% del tiempo de desarrollo a determinar en qué momento se puede liberar un trozo de memoria. Además este porcentaje de tiempo aumenta a medida que aumenta la complejidad del software en desarrollo. Es relativamente sencillo liberar correctamente la memoria enun programa de 1000 líneas. Sinembargo, es difícil hacerlo en un programa de líneas. Y se puede postular que es imposible liberar correctamente la memoria en un programa de líneas. Para entender mejor esta a rmación, se podría suponer que se realizó un programa de 1000 líneas hace un par de meses y ahora se necesita hacer algunas modi caciones. Ahora, para esta altura ya se habrán olvidado gran parte de los detalles de la lógica de ese programa y no será sencillo determinar si un puntero referencia un objeto que todavía existe, o si ya fue liberado. Peor aún, supóngase que el programa fue hecho por otra persona y evalúe cuán probable es cometer errores de memoria al tratar de modi car ese programa. Volviendo al caso de un programa de líneas. Este tipo de programas los desarrolla un grupo de programadores que pueden tomar años en terminarlo. Cada programador desarrolla un módulo que eventualmente utiliza objetos de otros módulos desarrollados por otros programadores. Entonces, quién libera la memoria de estos objetos, cómo se ponen de acuerdo los programadores sobre cuándo y quién libera un objeto compartido, o cómo probar el programa completo ante las in nitas condiciones de borde que pueden existir

20 6 CAPÍTULO 1. JAVA en un programa de líneas. Es inevitable que la fase de prueba dejará pasar errores en el manejo de memoria que sólo serán detectados más tarde por el usuario nal. Probablemente se incorporan otros errores en la fase de mantención. Resumiendo, se puede concluir que: todo programa de líneas que libera explícitamente la memoria tiene errores latentes, sin un recolector de basuras no hay verdadera modularidad y un recolector de basuras resuelve todos los problemas de manejo de memoria en forma trivial. El interrogante sería cuál es el impacto de un recolector de basura en el desempeño de un programa. El sobrecosto de la recolección de basuras no es superior al 100%. Es decir si se tiene un programa que libera explícitamente la memoria y que toma tiempo X, el mismo programa modi cado de modo que utilice un recolector de basuras para liberar la memoria tomará un tiempo no superior a 2X. Este sobrecosto no es importante si se considera el periódico incremento en la velocidad de los procesadores. El impacto que un recolector de basura en el tiempo de desarrollo y en la con abilidad del software. 1.2 Estructura General de un Programa Java En el siguiente ejemplo se presenta la estructura habitual de un programa realizado en cualquier lenguaje orientado a objetos u OOP (Object Oriented Programming), y en particular en el lenguaje Java. import java.awt.*; import java.lang.string; import java.lang.integer; import java.awt.event.windowevent; import java.util.*; import java.awt.textfield; public class Simuextends Frame implements ActionListener,ItemListener{ MenuBar barra;

21 1.3. CONCEPTOS BÁSICOS 7 m1 =new Menu( Archivo ); barra.add(m1); m2 =new Menu( Ver ); barra.add(m2);... public static void main(string argv [ ]){ Simu menus = new Simu(); menus.settitle( Simulaciónde Redes Neuronales ); menus.setvisible(true); } } Aparece una clase que contiene el programa principal Simu (aquel que contiene la función main()) y algunas clases de usuario (las especí cas de la aplicación que se está desarrollando) que son utilizadas por el programa principal. La aplicación se ejecuta por medio del nombre de la lase que contiene la función main(). Las clases de Java se agrupan en packages, que son librerías de clases. Si las clases no se de nen como pertenecientes a un package, se utiliza un package por defecto (default) que es el directorio activo. 1.3 Conceptos Básicos Clase Una clase es una agrupación de datos (variables o campos) y de funciones (métodos) que operan sobre esos datos. A estos datos y funciones pertenecientes a una clase se les denomina variables y métodos o funciones miembro. La programación orientada a objetos se basa enla programación de clases. Un programa se construye a partir de un conjunto de clases. Una vez de nida e implementada una clase, es posible declarar elementos de esta clase de modo similar a como se declaran las variables del lenguaje (int, double, String). Los elementos declarados de una clase se denominan objetos de la clase. De una única clase se pueden declarar o crear numerosos objetos. La clase es lo genérico: es el patrón o modelo para crear objetos. Cada objeto

22 8 CAPÍTULO 1. JAVA tiene sus propias copias de las variables miembro, con sus propios valores, en general distintos de los demás objetos de la clase. Las clases pueden tener variables static, que son propias de la clase y no de cada objeto. Ejemplo: public abstract class FuncionActivacion implements Cloneable,Serializable{ /*constructor sin argumentos que permite la herencia */ public FuncionActivacion () { } } Herencia La herencia permite que se puedan de nir nuevas clases basadas en clases existentes, lo cual facilita reutilizar código previamente desarrollado. Si una clase deriva de otra (extends) hereda todas sus variables y métodos. La clase derivada puede añadir nuevas variables y métodos y/o rede nir las variables y métodos heredados. En Java, a diferencia de otros lenguajes orientados a objetos, una clase sólo puede derivar de una única clase, con lo cual no es posible realizar herencia múltiple en base a clases. Sin embargo es posible simular la herencia múltiple en base a las interfaces Interface Una interface es un conjunto de declaraciones de funciones. Si una clase implementa (implements) una interface, debe de nir todas las funciones especi- cadas por la interface. Una clase puede implementar más de una interface, representando una forma alternativa de la herencia múltiple. Una interface puede derivar de otra o incluso de varias interfaces, en cuyo caso incorpora todos los métodos de las interfaces de las que deriva.

23 1.3. CONCEPTOS BÁSICOS 9 Ejemplo: La clase TangenteHiperbolica se extiende de la clase FuncionActivacion que implementa la interface Serializable. /*función de activación tangente hiperbólica */ public class TangenteHiperbolica extends FuncionActivacionimplements Serializable{ } /*constructor sin argumentos */ public TangenteHiperbolica () { } Package Un package es una agrupación de clases. Existen una serie de packages incluidos en el lenguaje. Además el programador puede crear sus propios packages. Todas las clases que formen parte de un package deben estar en el mismo directorio. Los packages se utilizan con las siguientes nalidades: 1. Para agrupar clases relacionadas. 2. Para evitar con ictos de nombres. En caso de con icto de nombres entre clases importadas, el compilador obliga a cuali car en el código los nombres de dichas clases con el nombre del package. 3. Para ayudar en el control de la accesibilidad de clases y miembros. Por las razones citadas, durante la etapa de Diseño del Software desarrollado, se ha decido crear dos paquetes, calculos e interfase, utilizando la sentencia package. package myprojects.simu; import myprojects.calculos.*; import myprojects.interfase.*;

24 10 CAPÍTULO 1. JAVA La jerarquía de clases de Java (API) Durante la generación de código en Java, es recomendable y casi necesario tener siempre a la vista la documentación on-line del API de Java 1.1 ó Java 1.2. En dicha documentación es posible ver tanto la jerarquía de clases, es decir la relación de herencia entre clases, como la información de los distintos packages que componen las librerías base de Java. Es importante distinguir entre lo que signi ca herencia y package. Un package es una agrupación arbitraria de clases, una forma de organizar las clases. La sin embargo consiste en crear nuevas clases en base a otras ya existentes. Las clases incluidas en un package no derivan en general de la misma clase. Enla documentación on-line se presentan ambas visiones: Package Index y Class Hierarchy. La primera presenta la estructura del API de Java agrupada por packages, mientras que en la segunda aparece la jerarquía de clases. Hay que resaltar el hecho de que todas las clases en Java son derivadas de la clase java.lang.object, por lo que heredantodos los métodos y variables de ésta. Si se selecciona una clase en particular, la documentación muestra una descripción detallada de todos los métodos y variables de la clase. A su vez muestra su herencia completa (partiendo de la clase java.lang.object). 1.4 Variables dentro del Lenguaje Java Una variable en Java es un identi cador que representa una palabra de memoria que contiene información. El tipo de información almacenado en una variable sólo puede ser del tipo con que se declaró esa variable. En Java hay dos tipos principales de variables: 1. Variables de tipos primitivos. Están de nidas mediante un valor único y almacenan directamente ese valor siempre que pertenezca al rango de ese tipo. Por ejemplo una variable int almacena un valor entero como 1, 2, 0, -1, etc. Esto signi ca que al asignar una variable entera a otra variable entera, se copia el valor de la primera en el espacio que ocupa la segunda variable.

25 1.4. VARIABLES DENTRO DEL LENGUAJE JAVA Variables referencia. Las variables referencia son referencias o nombres de una información más compleja: arrays u objetos de una determinada clase. Una referencia a un objeto es la dirección de un área en memoria destinada a representar ese objeto. El área de memoria se solicita con el operador new. Al asignar una variable de tipo referencia a objeto a otra variable se asigna la dirección y no el objeto referenciado por esa dirección. Esto signi ca que ambas variables quedan refenciando el mismo objeto. En Java una variable no puede almacenar directamente un objeto, como ocurre en C y C++. Por lo tanto cuando se dice en Java que una variable es un string, lo que se quiere decir en realidad es que la variable es una referencia a un string. Desde el punto de vista de su papel dentro del programa, las variables pueden ser: 1. Variables miembro de una clase: Se de nen en una clase, fuera de cualquier método; pueden ser tipos primitivos o referencias. 2. Variables locales: Se de nen dentro de un método o más en general dentro de cualquier bloque entre llaves {}. Se crean en el interior del bloque y se destruyen al nalizar dicho bloque. Puedenser tambiéntipos primitivos o referencias. En la Tabla 1.1 de la pág. 11 se muestra una declaración, el nombre de la variable introducida y el tipo de información que almacena la variable: Declaración Identi cador Tipo int i; i entero String s; s referencia a string int a []; a referencia a arreglo de enteros int[]b; b referencia a arreglo de enteros Tabla 1.1: Tipos de Variables. En la Tabla 1.2 de la pág. 12 se muestran las dos grandes categorías de tipos para las variables en Java:

26 12 CAPÍTULO 1. JAVA Tipos Primitivos int, short, byte, long char, boolean oat, double Referencias a Objetos Strings Arreglos otros objetos Tabla 1.2: Categorías de Variables. En la Tabla 1.3de la pág. 12 se indica para cada tipo primitivo el número de bits que se emplea en su representación y el rango de valores que se puede almacenar en las variables de estos tipos. Tipo Bits Rango Ejemplos int ,1,5,-120,... short :: ,1,5,-120,... byte :: ,1,5,-120,... long :: ,1,5,-120,... boolean 1 n/a false, true char 16 n/a a, A, 0, *,... oat 32 IEEE 1.2 double 64 IEEE 1.2 Tabla 1.3: Tipos Primitivos de Variables. Se dice que un tipo A es de mayor rango que un tipo B si A es un superconjunto de B. Esto quiere decir que las variables de tipo B siempre se pueden asignar a variables de tipo A (eventualmente con pérdida de signi cancia). Por ejemplo int es de mayor rango que short, que a su vez es de mayor rango que byte. Float y double son de mayor rango que int. Double es de mayor rango que oat. Esto se puede quedar resumido de la siguiente manera: double > oat > long > int > short > byte

27 1.4. VARIABLES DENTRO DEL LENGUAJE JAVA Visibilidad y vida de las variables Se entiende por visibilidad, ámbito o scope de una variable, la parte de la aplicación donde dicha variable es accesible y por lo tanto puede ser utilizada en cualquier expresión. En Java todos las variables deben estar incluidas en una clase. En general las variables declaradas dentro de unas llaves {}, es decir dentro de un bloque, son visibles y existen dentro de estas llaves. Por ejemplo las variables declaradas al principio de una función existen mientras se ejecute la función; las variables declaradas dentro de un bloque if no serán válidas al nalizar las sentencias correspondientes a dicho if y las variables miembro de una clase (es decir declaradas entre las llaves {} de la clase pero fuera de cualquier método) son válidas mientras existe el objeto de la clase. Las variables miembro de una clase declaradas como public son accesibles a través de una referencia a un objeto de dicha clase utilizando el operador punto (.). Las variables miembro declaradas como private no son accesibles directamente desde otras clases. Las funciones miembro de una clase tienen acceso directo a todas las variables miembro de la clase sin necesidad de anteponer el nombre de un objeto de la clase. Sin embargo las funciones miembro de una clase B derivada de otra A, tienen acceso a todas las variables miembro de A declaradas como public o protected, pero no a las declaradas como private. Una clase derivada sólo puede acceder directamente a las variables y funciones miembro de su clase base declaradas como public o protected. Otra característica del lenguaje es que es posible declarar una variable dentro de un bloque con el mismo nombre que una variable miembro, pero no con el nombre de otra variable local. La variable declarada dentro del bloque oculta a la variable miembro en ese bloque. Para acceder a la variable miembro oculta será preciso utilizar el operador this. Uno de los aspectos más importantes en la programación orientada a objetos (OOP) es la forma en la cual son creados y eliminados los objetos. La forma de crear nuevos objetos es utilizar el operador new. Cuando se utiliza el operador new, la variable de tipo referencia guarda la posición de memoria donde está almacenado este nuevo objeto. Para cada objeto se lleva cuenta de por cuántas variables de tipo referencia es apuntado. La eliminación de los objetos la realiza el denominado garbage collector, quien automáticamente libera o borra la memoria ocupada por un objeto cuando no existe ninguna referencia apuntando a ese objeto. Lo anterior signi ca que aunque una variable de tipo referencia deje de existir, el objeto al cual apunta no es eliminado si hay otras referencias apuntando a ese mismo objeto.

28 14 CAPÍTULO 1. JAVA 1.5 Operadores en Java Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++. Estos operadores se describen brevemente a continuación Operadores aritméticos Son operadores binarios (requieren siempre dos operandos) que realizan las operaciones aritméticas habituales: suma (+), resta (-), multiplicación (*), división (/) y resto de la división (%) Operadores de asignación Los operadores de asignación permiten asignar un valor a una variable. El operador de asignación por excelencia es el operador igual (=). La forma general de las sentencias de asignación con este operador es: variable = expression; Java dispone de otros operadores de asignación. Se trata de versiones abreviadas del operador (=) que realizan operaciones acumulativas sobre una variable. La siguiente Tabla 1.4 de la pág. 14, muestra estos operadores y su equivalencia con el uso del operador igual (=). Operador Utilización ExpresiónEquivalente + = op1 + = op2 op1 = op1 + op2 - = op1 - = op2 op1 = op1 - op2 = * op1 * = op2 op1 = op1 * op2 = / op1 / = op2 op1 = op1 / op2 % = op1% = op2 op1 = op1 % op2 Tabla 1.4: Operadores de asignación.

29 1.5. OPERADORES EN JAVA Operadores unarios Los operadores más (+) y menos (-) unarios sirven para mantener o cambiar el signo de una variable, constante o expresión numérica. Su uso en Java es el estándar de estos operadores Operadores incrementales Java dispone del operador incremento (++) y decremento ( ). El operador (++) incrementa en una unidad la variable a la que se aplica, mientras que ( ) la reduce en una unidad. Estos operadores se pueden utilizar de dos formas: 1. Precediendo a la variable (por ejemplo: ++i). En este caso primero se incrementa la variable y luego se utiliza (ya incrementada) en la expresión en la que aparece. 2. Siguiendo a la variable (por ejemplo: i++). En este caso primero se utiliza la variable en la expresión (con el valor anterior) y luego se incrementa. En muchas ocasiones estos operadores se utilizan para incrementar una variable fuera de una expresión. En este caso ambos operadores son equivalente. Si se utilizan en una expresión más complicada, el resultado de utilizar estos operadores en una u otra de sus formas será diferente. La actualización de contadores en bucles for es una de las aplicaciones más frecuentes de estos operadores Operadores relacionales Los operadores relacionales sirven para realizar comparaciones de igualdad, desigualdad y relación de menor o mayor. El resultado de estos operadores es siempre un valor boolean (true o false) según se cumpla o no la relación considerada. La siguiente Tabla 1.5 de la pág. 16 muestra los operadores relacionales de Java.

30 16 CAPÍTULO 1. JAVA Operador Utilización El resultado es true > op1 > op2 si op1 es mayor que op2 > = op1 >= op2 si op1 es mayor o igual que op2 < op1 < op2 si op1 es menor que op 2 < = op1 <= op2 si op1 es menor o igual que op2 = = op1 == op2 si op1 y op2 son iguales! = op1!= op2 sio p1 y op2 son diferentes Tabla 1.5: Operadores relacionales. Estos operadores se utilizan con mucha frecuencia en las bifurcaciones y en los bucles, que se verán luego. Ejemplo de Operadores Incrementales y Operadores Relacionales en un método. public void cambiarparesentrenamiento(double[ ] paresentrenamiento){ } /* inicialización de sus valores a partir de los valores pasados como argumentos */ for(int i = 0; i< paresentrenamiento.length; i++) {for(int j = 0; j< numeroneuronasentrada; j++) } {entradaentrenamiento[i][j] = paresentrenamiento[i][j]; } for(int j = 0; j< numerosalidas; j++) {salidaentrenamiento[i][j] = paresentrenamiento[i][j+numeroneuronasentrada]; }

31 1.6. ESTRUCTURAS DE PROGRAMACIÓN Operador de concatenación de cadenas de caracteres (+) El operador más (+) se utiliza también para concatenar cadenas de caracteres. Por ejemplo, para escribir una cantidad con un rótulo puede utilizarse la sentencia: editor.append( Error Obtenido: + String.valueOf(imprimoError) + nn ); editor.append( Iteraciones: + String.valueOf(imprimoIteraciones) + nn ); editor.append( Inicio: + horainicial.tostring() + nn ); editor.append( Final: + horafinal.tostring() + nn ); donde el operador de concatenación se utiliza dos veces para construir la cadena de caracteres que se desea imprimir. Las variables imprimoerrror, imprimoiteraciones, horainicial, horafinal son convertidas en cadena de caracteres para poder concatenarlas Precedencia de operadores El orden en que se realizan las operaciones es fundamental para determinar el resultado de una expresión. Por ejemplo, el resultado de x/y*z depende de qué operación (la división o el producto) se realice primero. La Tabla 1.6 de la pág. 18 muestra el orden en que se ejecutan los distintos operadores en una sentencia, de mayor a menor precedencia: En Java, todos los operadores binarios, excepto los operadores de asignación, se evalúan de izquierda a derecha. Los operadores de asignación se evalúan de derecha a izquierda, lo que signi ca que el valor de la izquierda se copia sobre la variable de la derecha. 1.6 Estructuras de Programación Las estructuras de programación o estructuras de control permiten tomar decisiones y realizar un proceso repetidas veces. Son los denominados bifurcaciones y bucles. En la mayoría de los lenguajes de programación, este tipo de

32 18 CAPÍTULO 1. JAVA Nombre Sintáxis Post jos [ ].(params) expr++ expr- Unarios ++expr expr +expr -expr! De creación (type) expr Multiplicativo * / % Adición + - Shift << >> >>> Relacional <> <= >= instanceof Igualdad = =! = AND & Or Excluyente ^ Or Incluyente j Logico AND && Logico OR jj Condicional?: Asignación = += -= *= /= %= &= ^= j= <<= >>= >>>= Tabla 1.6: Precedencia de Operadores. estructuras son comunes en cuanto a concepto, aunque su sintaxis varía de un lenguaje a otro. La sintaxis de Java coincide prácticamente con la utilizada en C/C++, lo que hace que para un programador de C/C++ no suponga ninguna di cultad adicional Sentencias o expresiones Una expresión es un conjunto variables unidos por operadores. Son órdenes que se le dan al computador para que realice una tarea determinada. Una sentencia es una expresión que acaba en punto y coma (;). Se permite incluir varias sentencias en una línea, aunque lo habitual es utilizar una línea para cada sentencia. A continuación se muestra un ejemplo de una línea compuesta de tres sentencias: i = 0; j = 5; x = i + j;

33 1.6. ESTRUCTURAS DE PROGRAMACIÓN Comentarios Existen dos formas diferentes de introducir comentarios entre el código de Java (en realidad son tres, como pronto se verá). Son similares a la forma de realizar comentarios en el lenguaje. Los comentarios son tremendamente útiles para poder entender el código utilizado, facilitando de ese modo futuras revisiones y correcciones. Además permite que cualquier persona distinta al programador original pueda comprender el código escrito de una forma más rápida. Se recomienda acostumbrarse a comentar el código desarrollado. De esta forma se simpli ca también la tarea de estudio y revisión posteriores. Java interpreta que todo lo que aparece a la derecha de dos barras // en una línea cualquiera del código es un comentario del programador y no lo tiene en cuenta. El comentario puede empezar al comienzo de la línea o a continuación de una instrucción que debe ser ejecutada. La segunda forma de incluir comentarios consiste en escribir el texto entre los símbolos /* */. Este segundo método es válido para comentar más de una línea de código. Por ejemplo: // Esta línea es un comentario int a=1; // Comentario a la derecha de una sentencia // Esta es la forma de comentar más de una línea utilizando // las dos barras. Requiere incluir dos barras al comienzo de cada línea /* Esta segunda forma es mucho más cómoda para comentar un número elevado de líneas ya que sólo requiere modi car el comienzo y el nal. */ En Java existe además una forma especial de introducir los comentarios (utilizando /***/ más algunos caracteres especiales) que permite generar automáticamente la documentación sobre las clases y packages desarrollados por el programador. Una vez introducidos los comentarios, el programa javadoc.exe (incluido en el JDK) genera de forma automática la información de forma similar a la presentada en la propia documentación del JDK. La sintaxis de estos comentarios y la forma de utilizar el programa javadoc.exe se puede encontrar en la información que viene con el JDK.

34 20 CAPÍTULO 1. JAVA Bifurcaciones Las bifurcaciones permiten ejecutar una de entre varias acciones en función del valor de una expresión lógica o relacional. Se tratan de estructuras muy importantes ya que son las encargadas de controlar el ujo de ejecución de un programa. Se exponen dos variantes del de tipo if. Bifurcación if Esta estructura permite ejecutar un conjunto de sentencias en función del valor que tenga la expresión de comparación. Ejemplo: se ejecuta si la expresión de comparación (error < errorminimo) tiene valor true: protected void comprobarnuevominimo() { if (error < errorminimo) {errorminimo = error; vectordisminimo = (double[ ])(vectordis.clone()); } /* n del if */ } Las llaves {} sirven para agrupar en un bloque las sentencias que se han de ejecutar, y no son necesarias si sólo hay una sentencia dentro del if. Bifurcación if else Análoga a la anterior, de la cual es una ampliación. Las sentencias incluidas en el else se ejecutan en el caso de no cumplirse la expresión de comparación (false), Ejemplo: public double decirsalidaactual(int indiceetapa) { if(pila!= null) {return pila[indiceetapa];}

35 1.6. ESTRUCTURAS DE PROGRAMACIÓN 21 } else {System.out.println( Fallo: Pila no creada ); return 0; } Bucles Un bucle se utiliza para realizar un proceso repetidas veces. Se denomina también lazo o loop. El código incluido entre las llaves {} (opcionales si el proceso repetitivo consta de una sola línea), se ejecutará mientras se cumpla unas determinadas condiciones. Hay que prestar especial atencióna los bucles in nitos, hecho que ocurre cuando la condición de nalizar el bucle (booleanexpression) no se llega a cumplir nunca. Se trata de un fallo muy típico, habitual sobre todo entre programadores poco experimentados. Bucle while En el siguiente ejemplo se muestra que se ejecutará la sentencia n++ mientras la expresión (capas.charat( n)!=, && capas.charat( n)!=-1)sea verdadera. for (int j=0; j < numerocapas; j++) {int n = principio; try { while (capas.charat( n)!=, && capas.charat( n)!= -1) { n++; } } } Bucle for A continuación se podrá apreciar la utilización del bucle for:

36 22 CAPÍTULO 1. JAVA /* calcular el nuevo vector de diseño */ for (int i = 0; i < vectordis.length; i++) {vectordis[i] = vectordis[i] + learningrate * S[i]; } La sentencia int i = 0 (inicialización) se ejecuta al comienzo del for, e i++ (incremento) después de vectordis[i] = vectordis[i] + learningrate *S[i] (sentencia). La expresión booleana (vectordis.length) se evalúa al comienzo de cada iteración; el bucle termina cuando la expresión de comparación toma el valor false. Bucle do while Es similar al bucle while pero con la particularidad de que el control está al nal del bucle (lo que hace que el bucle se ejecute al menos una vez, independientemente de que la condición se cumpla o no). Una vez ejecutados las sentencias, se evalúa la condición: si resulta true se vuelven a ejecutar las sentencias incluidas en el bucle, mientras que si la condición se evalúa a false naliza el bucle. do{ /* calcular el gradiente del vector jar el vector de diseño */ problema. jovector(vectordis); /* incrementar el contador de iteraciones*/ step++; } while (error > errordeseado && step < iteracionesmaximas); /*... hasta que el error sea menor o igual que el deseado o */ /* se alcance el número de iteraciones pasado como argumento */ problema. jovector(vectordis);

37 1.6. ESTRUCTURAS DE PROGRAMACIÓN 23 Sentencia return Una forma de salir de un bucle es utilizar la sentencia return. Esta sentencia sale también de un método o de una función. En el caso de que la función devuelva alguna variable, este valor se deberá poner a continuación del return. public double devuelveerrorminimo() {return errorminimo; } Bloque try{...} catch{...} nally{...} Java incorpora enelpropio lenguaje la gestión de errores. El mejor momento para detectar los errores es durante la compilación. Sin embargo prácticamente sólo los errores de sintaxis son detectados en esta operación. El resto de problemas surgen durante la ejecución de los programas. En el lenguaje Java, una Exception es un cierto tipo de error o una condición anormal que se ha producido durante la ejecución de un programa. Algunas excepciones son fatales y provocan que se deba nalizar la ejecución del programa. En este caso conviene terminar ordenadamente y dar un mensaje explicando el tipo de error que se ha producido. Otras excepciones, como por ejemplo no encontrar un chero en el que hay que leer o escribir algo, pueden ser recuperables. En este caso el programa debe dar al usuario la oportunidad de corregir el error (dando por ejemplo un nuevo path del chero no encontrado). Los errores se representan mediante clases derivadas de la clase Throwable, pero los que tiene que chequear un programador derivan de Exception (java.lang.exception que a su vez deriva de Throwable). Existen algunos tipos de excepciones que Java obliga a tener en cuenta. Esto se hace mediante el uso de bloques try,catch y nally. El código dentro del bloque try está vigilado : Si se produce una situación anormal y se lanza como consecuencia una excepción, el control pasa al bloque catch que se hace cargo de la situación y decide lo que hay que hacer. Se pueden incluir tantos bloques catch como se desee, cada uno de los cuales tratará un tipo de excepción. Finalmente, si está presente, se ejecuta el bloque nally,

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí

Más detalles

CONCEPTOS BASICOS DEL LENGUAJE JAVA

CONCEPTOS BASICOS DEL LENGUAJE JAVA CONCEPTOS BASICOS DEL LENGUAJE JAVA NOMENCLATURA GENERAL En Java se distinguen las letras mayúsculas y minúsculas. Las reglas del lenguaje respecto a los nombres de variables son muy amplias y permiten

Más detalles

Elementos léxicos del lenguaje de programación Java

Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices Operadores

Más detalles

Java Inicial (20 horas)

Java Inicial (20 horas) Java Inicial (20 horas) 1 Temario 1. Programación Orientada a Objetos 2. Introducción y Sintaxis Java 3. Sentencias Control Flujo 4. POO en Java 5. Relaciones entre Objetos 6. Polimorfismo, abstracción

Más detalles

Programación Orientada a Objetos con Java

Programación Orientada a Objetos con Java Programación Orientada a Objetos con Java M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx Sobrecarga de métodos Java permite la definición de dos o más métodos que tengan el mismo nombre, dentro de la

Más detalles

Tema 2. El lenguaje de programación Java (Parte 1)

Tema 2. El lenguaje de programación Java (Parte 1) Programación en Java Tema 2. El lenguaje de programación Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Elementos del lenguaje (I) El juego de caracteres. No utiliza ASCII, sino Unicode de

Más detalles

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System. CICLO: 01/2010 Universidad Don Bosco Materia: Lenguaje de Programación III Contenido: 1-Lectura de Datos de entrada. 2-Introduccion a JOPTIONPANE. 3-Estructuras de Control. ->LECTURA DE DATOS DE ENTRADA

Más detalles

Introducción a la programación orientada a objetos

Introducción a la programación orientada a objetos Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación

Más detalles

Modulo 1 El lenguaje Java

Modulo 1 El lenguaje Java Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto

Más detalles

19. Packages o paquetes

19. Packages o paquetes Programación orientada a objetos con Java 201 19. Packages o paquetes Objetivos: a) Definir el concepto de paquete b) Interpretar el código fuente de una aplicación Java donde se utilicen paquetes c) Construir

Más detalles

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores Las variables se utilizan en programación para almacenar temporalmente

Más detalles

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introduccion al Lenguaje C Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introducción C es un lenguaje de programación creado en 1972 por

Más detalles

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J.

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J. Sensor de Temperatura utilizando el Starter Kit Javelin Stamp Realizado por: Bertha Palomeque A. Rodrigo Barzola J. INTRODUCCION DIFERENCIAS EJEMPLOS JAVA Orientado a Objetos Multiplataforma Programar

Más detalles

Tema 1. Introducción a JAVA

Tema 1. Introducción a JAVA Tema 1. Introducción a JAVA Historia Características Plataforma Java Entorno de desarrollo Ejemplo: Hola mundo Estructura general de un programa Java 1 Historia de Java (i) Surge en 1991: Sun Microsystems

Más detalles

Preliminares. Tipos de variables y Expresiones

Preliminares. Tipos de variables y Expresiones Preliminares. Tipos de variables y Expresiones Felipe Osorio Instituto de Estadística Pontificia Universidad Católica de Valparaíso Marzo 5, 2015 1 / 20 Preliminares Computadoras desarrollan tareas a un

Más detalles

Curso de Java POO: Programación orientada a objetos

Curso de Java POO: Programación orientada a objetos Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Introducción a la POO 2 Herencia y polimorfismo 3 Empaquetado de proyectos

Más detalles

CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS

CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS 4.1 Antecedentes históricos El lenguaje de programación BASIC (Beginner's All purpose Symbolic Instruction Code)

Más detalles

GENERACIÓN DE CÓDIGO

GENERACIÓN DE CÓDIGO GENERACIÓN DE CÓDIGO INTRODUCCION La generación de código es la fase más compleja de un compilador, puesto que no sólo depende de las características del lenguaje fuente sino también de contar con información

Más detalles

2. Estructura de un programa en Java

2. Estructura de un programa en Java 24 A. García-Beltrán y J.M. Arranz 2. Estructura de un programa en Java Objetivos: a) Describir la estructura del código fuente de una aplicación Java b) Presentar los conceptos de comentario y de identificador

Más detalles

MACROS. Automatizar tareas a través del uso de las macros.

MACROS. Automatizar tareas a través del uso de las macros. OBJETIVOS MACROS Definiciones Automatizar tareas a través del uso de las macros. Grabar Ejecutar Manipular macros. Tipos de Macros en Excel Introducción Las operaciones tradicionales que se pueden realizar

Más detalles

9. Objetos y clases. 9.1. Clases

9. Objetos y clases. 9.1. Clases Programación orientada a objetos con Java 103 9. Objetos y clases Objetivos: a) Presentar el concepto de objeto, clase, atributo, método e instancia b) Interpretar el código fuente de una aplicación Java

Más detalles

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Tipos de herencia Herencia y niveles de visibilidad Herencia y creación Redefinición de métodos Conversión

Más detalles

Java en 2 horas. Rodrigo Santamaría

Java en 2 horas. Rodrigo Santamaría + Java en 2 horas Rodrigo Santamaría + Generalidades 2 Desarrollado por Sun en 1995 Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas a bytecode Gestión

Más detalles

Capítulo 9. Archivos de sintaxis

Capítulo 9. Archivos de sintaxis Capítulo 9 Archivos de sintaxis El SPSS permite generar y editar archivos de texto con sintaxis SPSS, es decir, archivos de texto con instrucciones de programación en un lenguaje propio del SPSS. Esta

Más detalles

Introducción a Protégé

Introducción a Protégé FACULTAD DE INFORMÁTICA LICENCIATURA EN DOCUMENTACIÓN SISTEMAS DE REPRESENTACIÓN Y PROCESAMIENTO AUTOMÁTICO DEL CONOCIMIENTO Práctica 1 1ª Parte Introducción a Protégé Febrero 2003 1. Objetivo La presente

Más detalles

Programación Orientada a Objetos en Java

Programación Orientada a Objetos en Java Programación Orientada a Objetos en Java Curso 2006-2007 Tema 4 Herencia y Polimorfismo Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Herencia

Más detalles

Visual Basic 1. Empleo de módulos y Procedimientos. Procedimientos definidos por el usuario

Visual Basic 1. Empleo de módulos y Procedimientos. Procedimientos definidos por el usuario Empleo de módulos y Procedimientos Procedimientos definidos por el usuario Según lo que hemos visto hasta ahora, Visual Basic, almacena el código en módulos. Hay tres clases de módulos: formularios (.frm),

Más detalles

Elementos requeridos para crearlos (ejemplo: el compilador)

Elementos requeridos para crearlos (ejemplo: el compilador) Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción

Más detalles

Tema 3 Elementos básicos de programación

Tema 3 Elementos básicos de programación Representación de Datos y Aplicaciones Tema 3 Elementos básicos de programación Natividad Martínez Madrid nati@it.uc3m.es Objetivos del tema 3 Conocer la estructura básica de un programa Java Comprender

Más detalles

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

En cualquier caso, tampoco es demasiado importante el significado de la B, si es que lo tiene, lo interesante realmente es el algoritmo. Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa

Más detalles

Estructuras de Sistemas Operativos

Estructuras de Sistemas Operativos Estructuras de Sistemas Operativos Definicion de Sistema Operativos Un sistema operativo es un programa que actua como inter entre el usuario y el hardware de un computador y su proposito es proporcionar

Más detalles

Repaso de las características más importantes de la programación Java y su adaptación a Android

Repaso de las características más importantes de la programación Java y su adaptación a Android Repaso de las características más importantes de la programación Java y su adaptación a Android 1. Entorno de programación en java 2. Variables y tipos de datos 3. Operaciones y operadores 4. Clases y

Más detalles

TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA

TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA Programa: Algoritmo (secuencia no ambigua, finita y ordenada de instrucciones para la resolución de un determinado problema) traducido

Más detalles

Fundamentos de la Programación

Fundamentos de la Programación Fundamentos de la Programación El Software Las operaciones que debe realizar el hardware son especificadas con una lista de instrucciones, llamadas programas o software. Dos grandes grupos de software

Más detalles

8. Sentencia return y métodos

8. Sentencia return y métodos 92 A. García-Beltrán y J.M. Arranz 8. Sentencia return y métodos Objetivos: a) Describir el funcionamiento de la sentencia return b) Interpretar el resultado de una sentencia return en el código fuente

Más detalles

Diseño orientado a los objetos

Diseño orientado a los objetos Diseño orientado a los objetos El Diseño Orientado a los Objetos (DOO) crea una representación del problema del mundo real y la hace corresponder con el ámbito de la solución, que es el software. A diferencia

Más detalles

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C)

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C) APRENDERAPROGRAMAR.COM GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado I

Más detalles

Tipos de variables en Visual Basic (integer, single, double, string, object, etc.). Ejemplos. (CU00308A)

Tipos de variables en Visual Basic (integer, single, double, string, object, etc.). Ejemplos. (CU00308A) aprenderaprogramar.com Tipos de variables en Visual Basic (integer, single, double, string, object, etc.). Ejemplos. (CU00308A) Sección: Cursos Categoría: Curso Visual Basic Nivel I Fecha revisión: 2029

Más detalles

PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas

PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas Departamento de Informática PROGRAMACIÓN DIDÁCTICA Curso 11-12 1 CONSEJERÍA DE EDUCACIÓN I.E.S. NERVIÓN Departamento de Informática CICLO FORMATIVO: TÉCNICO SUPERIOR EN DESARROLLO DE APLICACIONES MULTIPLATAFORMA.

Más detalles

Introducción a Java LSUB. 15 de enero de 2015 GSYC

Introducción a Java LSUB. 15 de enero de 2015 GSYC Introducción a LSUB GSYC 15 de enero de 2015 (cc) 2014 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial - SinObraDerivada

Más detalles

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Unidad I Sistemas numéricos 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS.

Más detalles

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3 UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3 INTRODUCCIÓN El elemento hardware de un sistema básico de proceso de datos se puede estructurar en tres partes claramente diferenciadas en cuanto a sus funciones:

Más detalles

Capitulo VI. Conclusiones.

Capitulo VI. Conclusiones. Capitulo VI. Conclusiones. VI.I. Conclusiones. Finalmente como conclusiones tenemos que resaltar el uso de varias tecnologías aparte de Java, como lo son el uso de la librería O reilly para pasar archivos

Más detalles

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE PRUEBAS DE SOFTWARE La prueba del software es un elemento crítico para la garantía de la calidad del software. El objetivo de la etapa de pruebas es garantizar la calidad del producto desarrollado. Además,

Más detalles

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas. El primer paso en el diseño de una base de datos es la producción del esquema conceptual. Normalmente, se construyen varios esquemas conceptuales, cada uno para representar las distintas visiones que los

Más detalles

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA Autor: Carlos Javier Martín González. Licenciado en Física Teórica por la Universidad Autónoma de Madrid. Analista programador y funcional. Desarrollador

Más detalles

LiLa Portal Guía para profesores

LiLa Portal Guía para profesores Library of Labs Lecturer s Guide LiLa Portal Guía para profesores Se espera que los profesores se encarguen de gestionar el aprendizaje de los alumnos, por lo que su objetivo es seleccionar de la lista

Más detalles

Programación orientada a objetos

Programación orientada a objetos Repaso Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual smuelas@fi.upm.es! Clase! Objeto! Atributo o variable de instancia! Método! Instanciar/crear un objeto!

Más detalles

Capitulo 5. Implementación del sistema MDM

Capitulo 5. Implementación del sistema MDM Capitulo 5. Implementación del sistema MDM Una vez que se concluyeron las actividades de análisis y diseño se comenzó la implementación del sistema MDM (Manejador de Documentos de MoProSoft). En este capitulo

Más detalles

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia. DISCOS RAID Raid: redundant array of independent disks, quiere decir conjunto redundante de discos independientes. Es un sistema de almacenamiento de datos que utiliza varias unidades físicas para guardar

Más detalles

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto INFORMÁTICA INFORMÁTICA 1 Sesión No. 4 Nombre: Procesador de Texto Contextualización La semana anterior revisamos los comandos que ofrece Word para el formato del texto, la configuración de la página,

Más detalles

PROPÓSITO... 2 DETERMINANTES PARA UNA BUENA EXPERIENCIA DE USO...

PROPÓSITO... 2 DETERMINANTES PARA UNA BUENA EXPERIENCIA DE USO... Tabla de Contenido PROPÓSITO... 2 DETERMINANTES PARA UNA BUENA EXPERIENCIA DE USO... 2 1. LA PRESENCIA DE INFORMACIÓN Y AYUDA ÚTIL PARA COMPLETAR LOS TRÁMITES EN LÍNEA.... 2 2. LA DISPONIBILIDAD DE DIVERSOS

Más detalles

Solución al Examen de Prácticas de Programación (Ingeniería Informática)

Solución al Examen de Prácticas de Programación (Ingeniería Informática) Solución al Examen de Prácticas de Programación (Ingeniería Informática) Junio 2006 Parte I. Cuestiones (3 puntos=50% nota del examen) 1) Se desea crear un conjunto de clases para representar en un programa

Más detalles

INTRODUCCIÓN A JAVA. Índice

INTRODUCCIÓN A JAVA. Índice INTRODUCCIÓN A JAVA Índice Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales Qué ventajas tengo como desarrollador? Bibliografía 2 1 Qué es Java? La tecnología Java

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Prácticas de C++ Practica Nº 8 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante ÍNDICE ÍNDICE... 1 1. INTRODUCCIÓN... 1 1.1 EJERCICIO 1: HERENCIA Y POLIMORFISMO I... 1 1.2 EJERCICIO

Más detalles

Capítulo 5. Cliente-Servidor.

Capítulo 5. Cliente-Servidor. Capítulo 5. Cliente-Servidor. 5.1 Introducción En este capítulo hablaremos acerca de la arquitectura Cliente-Servidor, ya que para nuestra aplicación utilizamos ésta arquitectura al convertir en un servidor

Más detalles

Curso de Python Inicial

Curso de Python Inicial Logo IAA-CSIC Curso organizado por el Gabinete de Formación del CSIC Curso de Python Inicial Clases Contenidos 1. Paradigmas de la Programación 2. Programación Orientada a objetos 3. Clases 4. Objetos

Más detalles

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Documento de trabajo elaborado para la Red Temática DocenWeb: Red Temática de Docencia en Control mediante Web (DPI2002-11505-E)

Más detalles

Definición de clases: Herencia, polimorfismo, ligadura dinámica

Definición de clases: Herencia, polimorfismo, ligadura dinámica Tema 7 Definición de clases: Herencia, polimorfismo, ligadura dinámica Con alguna frecuencia es necesario definir clases de objetos entre las cuales hay elementos comunes. En una aplicación en la cual

Más detalles

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente En este capítulo definimos los requisitos del modelo para un sistema centrado en la mejora de la calidad del código fuente.

Más detalles

Tema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código

Tema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código Tema 6 Reutilización de código Programación 2015-2016 Programación - Tema 6: Reutilización de código 1 Tema 6. Reutilización de código Modularidad. Implementación de métodos. Uso de métodos. Programación

Más detalles

App para realizar consultas al Sistema de Información Estadística de Castilla y León

App para realizar consultas al Sistema de Información Estadística de Castilla y León App para realizar consultas al Sistema de Información Estadística de Castilla y León Jesús M. Rodríguez Rodríguez rodrodje@jcyl.es Dirección General de Presupuestos y Estadística Consejería de Hacienda

Más detalles

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011 EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011 1. (0,75 PUNTOS) Identificad a continuación las sentencias que son ciertas, descartando

Más detalles

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador).

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador). CAPÍTULO 4 Requerimientos de software Este capítulo presenta las herramientas necesarias para la construcción y ejecución de programas en el lenguaje de programación JAVA, los requerimientos mínimos de

Más detalles

INTRODUCCION A LA PROGRAMACION DE PLC

INTRODUCCION A LA PROGRAMACION DE PLC INTRODUCCION A LA PROGRAMACION DE PLC Esta guía se utilizará para estudiar la estructura general de programación de um PLC Instrucciones y Programas Una instrucción u orden de trabajo consta de dos partes

Más detalles

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1.1 Introducción Este método proporciona un soporte para el diseño creativo de productos de software, inclusive a escala industrial.

Más detalles

Carmen. Estándares de codificación. Manuel Arias Calleja

Carmen. Estándares de codificación. Manuel Arias Calleja Carmen. Estándares de codificación Manuel Arias Calleja II Índice general 1. Estandares de codificación 1 1.1. Nombres de ficheros........................ 1 1.2. Organización de ficheros......................

Más detalles

DEPARTAMENTO: Informática. MATERIA: Programación. NIVEL: 1º Desarrollo de Aplicaciones Multiplataforma

DEPARTAMENTO: Informática. MATERIA: Programación. NIVEL: 1º Desarrollo de Aplicaciones Multiplataforma DEPARTAMENTO: Informática MATERIA: Programación NIVEL: 1º Desarrollo de Aplicaciones Multiplataforma 1. Objetivos. Competencias Profesionales, Personales y Sociales 1.1 Objetivos del ciclo formativo La

Más detalles

Edición de Ofertas Excel Manual de Usuario

Edición de Ofertas Excel Manual de Usuario Edición de Ofertas Excel Manual de Usuario Alfonso XI, 6 28014 Madrid F(+34) 91 524 03 96 www.omie.es Ref. MU_OfertasExcel.docx Versión 4.0 Fecha: 2012-11-26 ÍNDICE 1 INTRODUCCIÓN 3 2 CONSIDERACIONES DE

Más detalles

Tutoriales sobre Moodle. EOI de Murcia. 0. Instrucciones para el volcado de cursos entre profesores

Tutoriales sobre Moodle. EOI de Murcia. 0. Instrucciones para el volcado de cursos entre profesores Tutoriales sobre Moodle. EOI de Murcia 0. Instrucciones para el volcado de cursos entre profesores Se juntan las parejas que quieren compartir cursos con otro profesor para realizar el volcado. Ej. Antonio

Más detalles

Visual Studio 2008 es el conjunto de herramientas de

Visual Studio 2008 es el conjunto de herramientas de 1. VISUAL STUDIO 2008 Visual Studio 2008 es el conjunto de herramientas de desarrollo y programación creado por Microsoft tanto para aplicaciones Windows como aplicaciones web. La aparición de Visual Studio

Más detalles

FACULTAD DE INGENIERÍA

FACULTAD DE INGENIERÍA NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Variables y Tipos de Datos PRÁCTICA NÚM. [ 1 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería Computacional Lenguaje

Más detalles

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS GUIA PROGRAMACIÓN ORIENTADA A OBJETOS 1. Por qué la P.O.O? R= A medida que se van desarrollando los lenguajes, se va desarrollando también la posibilidad de resolver problemas más complejos. En la evolución

Más detalles

FACULTAD DE INGENIERÍA

FACULTAD DE INGENIERÍA NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Operadores y Expresiones PRÁCTICA NÚM. [ 3 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería Computacional Lenguaje

Más detalles

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN Tabla de Contenidos LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN... 1 Tabla de Contenidos... 1 General... 2 Uso de los Lineamientos Estándares...

Más detalles

Instalación y mantenimiento de servicios de Internet. U.T.3.- Servicio DNS

Instalación y mantenimiento de servicios de Internet. U.T.3.- Servicio DNS Instalación y mantenimiento de servicios de Internet U.T.3.- Servicio DNS 1 Qué es el servicio DNS? A los usuarios de Internet les resulta complicado trabajar con direcciones IP, sobre todo porque son

Más detalles

Definiciones. Tema 21_Módulos Menú 1

Definiciones. Tema 21_Módulos Menú 1 Definiciones Un menú es una lista de opciones o de órdenes que forman parte de un mismo título, mediante los cuales se podrán seleccionar determinadas operaciones de la aplicación. El conjunto de todos

Más detalles

Introducción al lenguaje Java

Introducción al lenguaje Java Tipo de entrega: Fecha límite: Lugar: Introducción al lenguaje Java por grupos de prácticas sesión de laboratorio Atenea Objetivos de la práctica: Escribir aplicaciones simples en Java Utilizar el entorno

Más detalles

FUNDAMENTOS DE PROGRAMACION CON C#

FUNDAMENTOS DE PROGRAMACION CON C# Capítulo 1 FUNDAMENTOS DE PROGRAMACION CON C# El lenguaje C# C# (léase, en inglés C sharp, y en español C almohadilla) es un lenguaje de programación que permite el desarrollo de aplicaciones para Internet,

Más detalles

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD Manual de usuario 1 - ÍNDICE 1 - ÍNDICE... 2 2 - INTRODUCCIÓN... 3 3 - SELECCIÓN CARPETA TRABAJO... 4 3.1 CÓMO CAMBIAR DE EMPRESA O DE CARPETA DE TRABAJO?...

Más detalles

Guías _SGO. Gestione administradores, usuarios y grupos de su empresa. Sistema de Gestión Online

Guías _SGO. Gestione administradores, usuarios y grupos de su empresa. Sistema de Gestión Online Guías _SGO Gestione administradores, usuarios y grupos de su empresa Sistema de Gestión Online Índice General 1. Parámetros Generales... 4 1.1 Qué es?... 4 1.2 Consumo por Cuentas... 6 1.3 Días Feriados...

Más detalles

GENERALIDADES DE BASES DE DATOS

GENERALIDADES DE BASES DE DATOS GENERALIDADES DE BASES DE DATOS A fin de evitar que idénticos datos se encuentren repetidos en múltiples archivos, parece necesario que los comunes se almacenen en un archivo único y que este archivo sea

Más detalles

MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA. Perfil Entidad Proveedora

MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA. Perfil Entidad Proveedora MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA Perfil Entidad Proveedora El objetivo del módulo de Gestión de Solicitudes vía Internet es facilitar el trabajo

Más detalles

INTELIGENCIA ARTIFICIAL 2015 TALLER RÁPIDO DE PROGRAMACIÓN EN JAVA

INTELIGENCIA ARTIFICIAL 2015 TALLER RÁPIDO DE PROGRAMACIÓN EN JAVA INTELIGENCIA ARTIFICIAL 2015 TALLER RÁPIDO DE PROGRAMACIÓN EN JAVA Fuente: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html Por qué Java? TIOBE Index for March 2015 Fuente: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Más detalles

Ejemplos de conversión de reales a enteros

Ejemplos de conversión de reales a enteros Ejemplos de conversión de reales a enteros Con el siguiente programa se pueden apreciar las diferencias entre las cuatro funciones para convertir de reales a enteros: program convertir_real_a_entero print

Más detalles

Modelo de Objetos Distribuidos

Modelo de Objetos Distribuidos Remote Method Invocation Modelo de Objetos Distribuidos Un objeto remoto es un objeto cuyos métodos pueden ser invocados desde otra máquina virtual de java, potencialmente en un host diferente. Modelo

Más detalles

SOLUCION EXAMEN junio 2006

SOLUCION EXAMEN junio 2006 SOLUCION EXAMEN junio 2006 1. Explique razonadamente si las siguientes afirmaciones son verdaderas o falsas: I) (1 p) En UNIX únicamente se distinguen dos tipos de procesos: los procesos de usuario y los

Más detalles

Introducción al desarrollo de RIA's con Adobe Flex 3.0 Dia 4

Introducción al desarrollo de RIA's con Adobe Flex 3.0 Dia 4 Introducción al desarrollo de RIA's con Adobe Flex 3.0 Dia 4 by S. Muñoz-Gutiérrez stalinmunoz@yahoo.com, informes@grupolinda.org Grupo LINDA Facultad de Ingeniería UNAM México Octubre-Diciembre 2009 Identificando

Más detalles

INTRANET DE UNA EMPRESA RESUMEN DEL PROYECTO. PALABRAS CLAVE: Aplicación cliente-servidor, Intranet, Área reservada, Red INTRODUCCIÓN

INTRANET DE UNA EMPRESA RESUMEN DEL PROYECTO. PALABRAS CLAVE: Aplicación cliente-servidor, Intranet, Área reservada, Red INTRODUCCIÓN INTRANET DE UNA EMPRESA Autor: Burgos González, Sergio. Director: Zaforas de Cabo, Juan. Entidad colaboradora: Colegio de Ingenieros del ICAI. RESUMEN DEL PROYECTO El proyecto consiste en el desarrollo

Más detalles

Pruebas de unidad con JUnit

Pruebas de unidad con JUnit Pruebas de unidad con JUnit Cuando se implementa software, resulta recomendable comprobar que el código que hemos escrito funciona correctamente. Para ello, implementamos pruebas que verifican que nuestro

Más detalles

Conceptos. ELO329: Diseño y Programación Orientados a Objetos. ELO 329: Diseño y Programación Orientados a Objetos

Conceptos. ELO329: Diseño y Programación Orientados a Objetos. ELO 329: Diseño y Programación Orientados a Objetos Conceptos ELO329: Diseño y Programación Orientados a Objetos 1 Paradigmas de Programación Historia: Los computadores parten cableados por hardware, Luego se introduce la programación en binario, Se desarrolla

Más detalles

Programación en Java. Programación en OO

Programación en Java. Programación en OO Programación en OO Lección 4:Programación en OO 1. Herencia 2. Modificadores de Acceso 3. Interfaces Herencia Es la acción en la que una clase obtiene los métodos y propiedades definidos en otra clase,

Más detalles

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora Plataforma e-ducativa Aragonesa Manual de Administración Bitácora ÍNDICE Acceso a la administración de la Bitácora...3 Interfaz Gráfica...3 Publicaciones...4 Cómo Agregar una Publicación...4 Cómo Modificar

Más detalles

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor.

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor. Sesión 03: Lenguajes web del servidor Competencias a Conseguir: - Conocer el entorno de trabajo a nivel de servidores web. - Instalación del localhost (Servidor Local). - Repaso general de PHP y ejercicios

Más detalles

Programación Orientada a Objetos. Java: Excepciones

Programación Orientada a Objetos. Java: Excepciones Programación Orientada a Objetos Java: Excepciones Eduardo Mosqueira Rey LIDIA Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España

Más detalles

Introducción al lenguaje de programación java

Introducción al lenguaje de programación java Introducción al lenguaje de programación java Algoritmia y Programación Slide 1 LENGUAJES DE PROGRAMACION Un lenguaje de programación es un idioma artificial diseñado y creado para expresar algoritmos

Más detalles

Ingº CIP Fabian Guerrero Medina Master Web Developer-MWD

Ingº CIP Fabian Guerrero Medina Master Web Developer-MWD 1 Java es un lenguaje de programación de Sun Microsystems originalmente llamado "Oak. James Gosling Bill Joy 2 Oak nació para programar pequeños dispositivos electrodomésticos, como los asistentes personales

Más detalles

GUÍA DE LABORATORIO 5 ARREGLOS DE UNA DIMENSIÓN

GUÍA DE LABORATORIO 5 ARREGLOS DE UNA DIMENSIÓN GUÍA DE LABORATORIO 5 ARREGLOS DE UNA DIMENSIÓN INTRODUCCION Un arreglo es una colección de variables del mismo tipo, referidos por un nombre común. En Java, los arreglos tienen una o más dimensiones,

Más detalles

Programación Orientada a Objetos. Java: Excepciones

Programación Orientada a Objetos. Java: Excepciones Programación Orientada a Objetos Java: Excepciones Eduardo Mosqueira Rey Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España

Más detalles