Recursos compartidos y su especificación

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

Download "Recursos compartidos y su especificación"

Transcripción

1 ecursos compartidos y su especificación Lecturas: apuntes de especificación de la asignatura Manuel Carro Universidad Politécnica de Madrid 22 de noviembre de 2007 Este texto se distribuye bajo los términos de la Creative Commons License M. Carro (UPM) ecursos compartidos 22 de noviembre de / 20 Del problema a la solución Problema: Solución: muchos datos a tener en cuenta simultáneamente efinamiento progresivo Concentrarse en cada momento en pocos detalles: Análisis de procesos y recursos Estudio de condiciones de seguridad Estudio de condiciones de vivacidad Algunos pasos automáticos Otros necesitan estudio especial M. Carro (UPM) ecursos compartidos 22 de noviembre de / 20 ecursos compartidos Similares a cápsulas (Gehani) Tipo abstracto con: Estado interno Operaciones Condiciones de sincronización Exclusión mutua impĺıcita Notación alto nivel Independiente de la implementación M. Carro (UPM) ecursos compartidos 22 de noviembre de / 20

2 Especificación Nos centraremos en la especificación: Formal (no ambigua, teoría de prueba) Independiente del lenguaje Clara y breve (al menos eso queremos) Muchas posibilidades Usaremos lógica primer orden Estructurada por recursos En cierto sentido, aumento de TAD de estructuras de datos M. Carro (UPM) ecursos compartidos 22 de noviembre de / 20 ecursos y TADs Semejanzas: Encapsulamiento datos eusabilidad azonamiento corrección recurso independiente de su uso azonamiento uso correcto sin su implementación Diferencias: Estado recurso dependiente del mundo externo (tareas accediendo) No noción igualdad, no copia Notación aumentada Algunos argumentos privilegiados: recurso único cambios propagados inmediatamente M. Carro (UPM) ecursos compartidos 22 de noviembre de / 20 Historia de un recurso Qué problemas hay para copiar un recurso? T1 T1 T2 T1 T3 Copia T2 T3 M. Carro (UPM) ecursos compartidos 22 de noviembre de / 20

3 Especificación: visión general C-TADSOL Nombre ecurso OPEACIONES ACCIÓN Op 1 : Tipo ecurso[es]... SEMÁNTICA DOMINIO: TIPO: Tipo ecurso =... INVAIANTE: r Tipo ecurso Inv(r) INICIAL(r): Ini(r) CPE: P(r, a 1,..., a n ) Op 1 (r, a 1,..., a n ) POST: Q(r, a 1,..., a n ) M. Carro (UPM) ecursos compartidos 22 de noviembre de / 20 Declaración de interfaz Nombre de operaciones + tipos y modos de argumentos Modos: no necesarios, ayudan a documentar: [es], [e], [s] Tipos: Básicos: B, N, Z, Algebraicos: tuplas [ (Ta Tb) ], constructores [ Nombre(Ta Tb) ], unión de tipos [ (Ta Tb) ] Especiales: secuencias [ Secuencia(Ta) ], conjuntos [ Conjunto(Ta) ], tablas / maps / funciones parciales [ Ta Tb ] Tipo Ejemplo valor N B (3, falso) par(z ) par(-7, π) Secuencia(B) cierto, falso, falso, cierto Conjunto() {3.4, e, log 2} N B {(2, true),(3,true),(4,false),(9,false)} M. Carro (UPM) ecursos compartidos 22 de noviembre de / 20 Dominio: tipo + invariante Tipos: admitimos campos con nombre en tuplas ( registros / records) TIPO: TipoComplejo = Par(real: imaginario: ) Invariante: restringe valores permitidos por el tipo TIPO: Tipo Irracional = INVAIANTE: i Tipo Irracional p, q Z i = p q TIPO: Tipo Creciente = Secuencia(N) INVAIANTE: s Tipo Creciente (l = Longitud(s) k, 1 k l 1 s(k) < s(k + 1)) M. Carro (UPM) ecursos compartidos 22 de noviembre de / 20

4 Invariante INVAIANTE: I (r) Magnitud o ley que se mantiene tras una transformación Verdad antes de la entrada y tras la salida de cada operación Puede violarse dentro de una operación Muy importante: Permite establecer propiedades generales Permite trabajar contra esas propiedades M. Carro (UPM) ecursos compartidos 22 de noviembre de / 20 Estado inicial recurso INICIAL(r): In(r) Determina valor inicial recurso (corrección en base a la historia del recurso) Operación separada? Sería algo especial Sólo podría ser llamada una vez Muchos lenguajes permiten especificar estado inicial M. Carro (UPM) ecursos compartidos 22 de noviembre de / 20 Especificación de operaciones PE: P(a 1,..., a n ) CPE: C(r, a 1,..., a n ) Op 1 (r, a 1,..., a n ) POST: Q(r, a 1,..., a n ) Precondición secuencial (PE): Condiciones no relacionadas con la concurrencia Precondición de concurrencia (CPE): Sincronización entre operaciones Postcondición (POST): Cambio en el recurso / argumentos M. Carro (UPM) ecursos compartidos 22 de noviembre de / 20

5 Especificación de operaciones (Cont.) División precondiciones: P(a 1... a n ) C(r, a 1,..., a n ) elacionadas con el recurso compartido: CPE Determinan sincronización Pueden causar suspensión ecurso cambiado por otras tareas elacionadas con otros argumentos: PE Determinan corrección llamada Pueden causar error de ejecución, excepciones, etc. M. Carro (UPM) ecursos compartidos 22 de noviembre de / 20 Uso de aparcamiento Aparcamiento: Tipo Aparcamiento loop Entrada Barrera Entrada ; E n t r a r ( Aparcamiento ) ; A b r i r E n t r a d a ; end loop ; loop Salida B a r r e r a S a l i d a ; S a l i r ( Aparcamiento ) ; A b r i r S a l i d a ; end loop ; Aparcamiento Barrera_Entrada Proceso Entrada Entrar Salir Abrir_Entrada Estado Aparcamiento Barrera_Salida Proceso Salida Abrir_Salida! M. Carro (UPM) ecursos compartidos 22 de noviembre de / 20 Aparcamiento ACCIÓN Entrar: Tipo Aparcamiento[es] ACCIÓN Salir: Tipo Aparcamiento[es] TIPO: Tipo Aparcamiento = 0..Max INVAIANTE: cierto INICIAL(a): a = 0 CPE: cierto Salir(a) POST: a sal = a ent 1 CPE: a < Max Entrar(a) POST: a sal = a ent + 1 a < Max necesaria? M. Carro (UPM) ecursos compartidos 22 de noviembre de / 20

6 Almacén de un dato ACCIÓN Poner: Tipo Almacen[es] Tipo Dato[e] ACCIÓN Tomar: Tipo Almacen[es] Tipo Dato[s] TIPO: Tipo Almacén = (Dato: Tipo Dato HayDato: B) INVAIANTE: cierto INICIAL(b): b.haydato CPE: b.haydato Tomar(b, e) POST: e sal = b ent.dato b sal.haydato Poner(b, e) POST: b sal.dato = e ent b sal.haydato ecordad implementación: sólo un semáforo Veremos prueba corrección seguridad M. Carro (UPM) ecursos compartidos 22 de noviembre de / 20 Almacén un dato (Cont.) Separación estado recurso / dato almacenado Operaciones excluyentes: CPE: b.haydato Tomar(b, e) POST: e sal = b ent.dato b sal.haydato Poner(b, e) POST: b sal.dato = e ent b sal.haydato CPE(Tomar(b, e 1 )) CPE(Poner(b, e 2 )) b.haydatos b.haydatos false espetar acceso a dato asegura exclusión mutua = no necesario semáforo dedicado M. Carro (UPM) ecursos compartidos 22 de noviembre de / 20 Buffer ACCIÓN Poner: Tipo Buffer[es] Tipo Dato[e] ACCIÓN Tomar: Tipo Buffer[es] Tipo Dato[s] TIPO: Tipo Buffer = Secuencia(Tipo Dato) INVAIANTE: b Tipo Buffer Longitud(b) MAX INICIAL(b): Longitud(b) = 0 CPE: Longitud(b) > 0 Tomar(b, d) POST: l = Longitud(b ent ) b ent (1) = d sal b sal = b ent (2..l) CPE: Longitud(b) < MAX Poner(b, d) POST: l = Longitud(b ent ) Longitud(b sal ) = l + 1 b sal (l + 1) = d ent b sal (1..l) = b ent M. Carro (UPM) ecursos compartidos 22 de noviembre de / 20

7 Productor/Consumidor de pares e impares ACCIÓN Poner: Tipo PI[es] N[e] ACCIÓN Tomar: Tipo PI[es] N[s] TIPO: Tipo PI = (Dato : N HayDato : B) INVAIANTE: cierto INICIAL(b): b.haydato Poner(b, d) POST: b sal.dato = d ent b sal.haydato CPE: b.haydato (b.dato mod 2 = 0) TomarPar(b, d) POST: b sal.dato = d ent b sal.haydato CPE: b.haydato (b.dato mod 2 = 1) TomarImpar(b, d) POST: b sal.dato = d ent b sal.haydato M. Carro (UPM) ecursos compartidos 22 de noviembre de / 20 Productor/Consumidor de pares e impares Variante con una sola operación de tomar ACCIÓN Poner: Tipo PI[es] N[e] ACCIÓN Tomar: Tipo PI[es] N[s] Tipo Paridad[e] TIPO: Tipo PI = (Dato : N HayDato : B) Tipo Paridad = Par Impar INVAIANTE: cierto INICIAL(b): b.haydato Poner(b, d) POST: b sal.dato = d ent b sal.haydato CPE: b.haydato ((b.dato mod 2 = 0) (t = Par)) Tomar(b, d, t) POST: b sal.dato = d ent b sal.haydato M. Carro (UPM) ecursos compartidos 22 de noviembre de / 20

Diseño de sistemas concurrentes

Diseño de sistemas concurrentes Diseño de sistemas concurrentes Manuel Carro Universidad Politécnica de Madrid Necesidad de diseño Hasta ahora, problemas ya cerrados: Número de procesos, recursos Código de procesos Especificación de

Más detalles

Paso de mensajes. Lecturas: Burns & Wellings, Cap.??? Transparencias y apuntes de la asignatura. Filosofía cliente-servidor.

Paso de mensajes. Lecturas: Burns & Wellings, Cap.??? Transparencias y apuntes de la asignatura. Filosofía cliente-servidor. Paso de mensajes Lecturas: Burns & Wellings, Cap.??? Transparencias y apuntes de la asignatura Manuel Carro Universidad Politécnica de Madrid Este texto se distribuye bajo los términos de la Creative Commons

Más detalles

Técnicas de implementación con objetos protegidos

Técnicas de implementación con objetos protegidos Técnicas de implementación con objetos protegidos Lecturas: Transparencias y apuntes de la asignatura Manuel Carro Universidad Politécnica de Madrid Este texto se distribuye bajo los términos de la Creative

Más detalles

Los Tipos Abstractos de Datos. Estructuras de Datos y Algoritmos 03/04

Los Tipos Abstractos de Datos. Estructuras de Datos y Algoritmos 03/04 Los Tipos Abstractos de Datos Estructuras de Datos y Algoritmos 03/04 Qué son los TAD s? Metodología de programación con TAD s Especificación Algebraica de TAD s Qué son los TAD s? Con los lenguajes de

Más detalles

Introducción (Informal)

Introducción (Informal) Redes de Petri Introducción (Informal) Cesáreo Raimúndez Depto. de Ingeniería de Sistemas y Automática ETSII-Vigo Redes de Petri p. 1/18 Introducción Herramienta gráfica para modelar la concurrencia y

Más detalles

ANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Concurrencia. CURSO ACADÉMICO - SEMESTRE Segundo semestre

ANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Concurrencia. CURSO ACADÉMICO - SEMESTRE Segundo semestre ANX-PR/CL/001-02 GUÍA DE APRENDIZAJE ASIGNATURA Concurrencia CURSO ACADÉMICO - SEMESTRE 2015-16 - Segundo semestre GA_10II_105000018_2S_2015-16 Datos Descriptivos Nombre de la Asignatura Titulación Centro

Más detalles

PROGRAMACION CONCURRENTE Y DISTRIBUIDA

PROGRAMACION CONCURRENTE Y DISTRIBUIDA PROGRAMACION CONCURRENTE Y DISTRIBUIDA V.2 Redes de Petri: Análisis y validación. J.M. Drake 1 Capacidad de modelado y capacidad de análisis El éxito de un método de modelado es consecuencia de su capacidad

Más detalles

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten

Más detalles

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria 1.2. Jerarquía de niveles de un computador Qué es un computador? Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria Es un sistema tan complejo

Más detalles

Tipos Abstractos de Datos

Tipos Abstractos de Datos Objetivos Repasar los conceptos de abstracción de datos y (TAD) Diferenciar adecuadamente los conceptos de especificación e implementación de TAD Presentar la especificación algebraica como método formal

Más detalles

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los

Más detalles

Mercedes Granda Departamento de Electrónica y Computadores. Las propiedades de las redes de Petri nos permiten

Mercedes Granda Departamento de Electrónica y Computadores. Las propiedades de las redes de Petri nos permiten 22//22 REDES DE PETRI: PROPIEDADES Y MÉTODOS DE ANÁLISIS PROGRAMACIÓN CONCURRENTE MASTER EN COMPUTACIÓN DEPARTAMENTO DE ELECTRÓNICA Y COMPUTADORES UNIVERSIDAD DE CANTABRIA CURSO 22/3 REDES DE PETRI: PROPIEDADES

Más detalles

Guía práctica de estudio 05: Diagramas de flujo

Guía práctica de estudio 05: Diagramas de flujo Guía práctica de estudio 05: Diagramas de flujo Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 05: Diagramas de

Más detalles

Exterior del algoritmo. Entorno. Usuario. Procesador. Escribir. v1 v2 v3. Leer. <acción> {; <acción>}

Exterior del algoritmo. Entorno. Usuario. Procesador. Escribir. v1 v2 v3. Leer. <acción> {; <acción>} Bloque II. 2. Objetos y acciones elementales Bloque II. 2. Objetos y acciones elementales Objetivos: Familiarizarse con conceptos de entorno, objeto y tipo Entender qué significa que un objeto sea de un

Más detalles

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008 INTRODUCCIÓN Estructura de Datos Tipos Abstractos de Datos (TAD S) Para poder obtener un programa que resuelva un problema dado, son necesarios varios pasos : La formulación y especificación del problema

Más detalles

Estructuras de Control

Estructuras de Control Algorítmica y Lenguajes de Programación Estructuras de Control Estructuras de Control. Introducción Hasta ahora algoritmos han consistido en simples secuencias de instrucciones Existen tareas más complejas

Más detalles

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL 1 TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL TECNOLOGÍA DE LA COMPUTADORA FACILITADOR: PARTICIPANTE: DAVID, CHIRIQUÍ 2015 2 Qué es un programa? Un programa informático es un conjunto

Más detalles

Estructuras en LabVIEW.

Estructuras en LabVIEW. Estructuras en LabVIEW. Sumario: 1. Ejecución según el flujo de datos. 2. Estructuras básicas disponibles en LabVIEW. a) Estructura Sequence. b) Estructura Case. c) Estructura For Loop. d) Estructura While

Más detalles

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main. LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan

Más detalles

La Máquina de Acceso Aleatorio (Random Access Machine)

La Máquina de Acceso Aleatorio (Random Access Machine) La Máquina de Acceso Aleatorio (Random Access Machine) Nuestro modelo de cómputo secuencial es la máquina de acceso aleatorio (RAM, Random Access Machine) mostrada en la Figura 2.1, y que consiste de:

Más detalles

Introducción a los Tipos Abstractos de Datos

Introducción a los Tipos Abstractos de Datos Página 1 de 8 Introducción a los Tipos Abstractos de Datos Introducción: Concepto de abstracción Abstracción funcional y abstracción de datos Construcción de tipos abstractos de datos Especificación de

Más detalles

Algoritmos y Estructuras de Datos II

Algoritmos y Estructuras de Datos II 8 de abril de 2015 Clase de hoy 1 Repaso Tipos concretos versus abstractos Tipos abstractos de datos 2 3 4 TAD Pila Especificación del TAD Pila Repaso Tipos concretos versus abstractos Tipos abstractos

Más detalles

la solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación.

la solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación. ALGORITMOS SECUENCIALES: La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente

Más detalles

Prof. Mariano Mancuso. Sistemas de información y control diagrama de clases

Prof. Mariano Mancuso. Sistemas de información y control diagrama de clases Prof. Mariano Mancuso Sistemas de información y control diagrama de clases UML Qué son los modelos? Para qué sirven los modelos? Cuáles son los modelos de UML? Se usan todos...? Qué son los modelos? Un

Más detalles

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos PROGRAMACIÓN DE SHELL SCRIPTS EN LINUX El shell es un intérprete de órdenes, pero el shell no es solamente eso; los intérpretes de órdenes de Linux son auténticos lenguajes de programación. Como tales,

Más detalles

DIAGRAMAS DE ACTIVIDAD SESION 9. Cap. 9 Kendall & Kendall Cap 5 Jacobson

DIAGRAMAS DE ACTIVIDAD SESION 9. Cap. 9 Kendall & Kendall Cap 5 Jacobson DIAGRAMAS DE ACTIVIDAD Cap. 9 Kendall & Kendall Cap 5 Jacobson SESION 9 Ana Mercedes Cáceres mercycaceres@gmail.com Instructora: Carmen Morales Año 2006. OBJETIVOS Representar gráficamente los problemas

Más detalles

Cristian Blanco

Cristian Blanco UNIDAD DIDÁCTICA 8. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS. DIAGRAMAS DE COMPORTAMIENTO En el siguiente enlace tienes una descripción y algunos ejemplos de todos los diagramas UML.: http://jms32.eresmas.net/tacticos/uml/umlindex.html

Más detalles

Solución 1: Funcional. Estilos arquitectónicos. Solución 1: Funcional (2) Key word in context

Solución 1: Funcional. Estilos arquitectónicos. Solución 1: Funcional (2) Key word in context Solución 1: Funcional Estilos arquitectónicos Se descompone el problema de acuerdo con las funciones básicas: entrada, shift, ordenar, salida. Un programa principal coordina el flujo de control llamando

Más detalles

Ingeniería del Software I

Ingeniería del Software I - 1 - Ingeniería del Software I 2do. Cuatrimestre 2005 INTRODUCCIÓN... 2 SEMÁNTICA... 2 NOTACIÓN... 3 ESTADO ACCIÓN... 3 Transiciones Simples... 3 Estados Acción Compuestos... 3 Estados Acción Iniciales

Más detalles

Expresiones y sentencias

Expresiones y sentencias Expresiones y sentencias Expresión Construcción (combinación de tokens) que se evalúa para devolver un valor. Sentencia Representación de una acción o una secuencia de acciones. En Java, todas las sentencias

Más detalles

Unidad II. Conjuntos. 2.1 Características de los conjuntos.

Unidad II. Conjuntos. 2.1 Características de los conjuntos. Unidad II Conjuntos 2.1 Características de los conjuntos. Es la agrupación en un todo de objetos bien diferenciados en el la mente o en la intuición, por lo tanto, estos objetos son bien determinados y

Más detalles

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF ESCUELA POLITÉCNICA SUPERIOR GRADO EN DISEÑO IND. INFORMÁTICA CURSO 2012-13 PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF HASTA AHORA... En prácticas anteriores se ha aprendido: La estructura principal de un

Más detalles

El TAD Grafo. El TAD Grafo

El TAD Grafo. El TAD Grafo Objetivos! Estudiar la especificación del TAD Grafo! Presentar diferentes alternativas de implementación! Conocer los algoritmos más importantes de manipulación de grafos Contenidos.1 Conceptos. Especificación

Más detalles

Tema 3. El modelo Relacional

Tema 3. El modelo Relacional Tema 3. El modelo Relacional Juan Ignacio Rodríguez de León Resumen Presenta el modelo entidad-relación. Visión de alto nivel de las cuestiones referentes a diseño de bases de datos y los problemas encontrados

Más detalles

Programación en java. Estructuras algorítmicas

Programación en java. Estructuras algorítmicas Programación en java Estructuras algorítmicas Estructuras algoritmicas 1. Conceptos basicos 1. Dato 2. Tipos de datos 3. Operadores 2. dsd Conceptos Basicos DATO: se considera una representación simbólica

Más detalles

Normas de estilo para la codificación de programas

Normas de estilo para la codificación de programas Normas de estilo para la codificación de programas v.1.0 11/09/97 12.17 Departamento de Informática e Ingeniería de Sistemas Centro Politécnico Superior Universidad de Zaragoza María de Luna 3 50015, Zaragoza

Más detalles

Requerimientos de Software

Requerimientos de Software Requerimientos de Software Ingeniería de Requerimientos Se define como el proceso de establecer los servicios que el consumidor requiere de un sistema y las restricciones sobre las cuales de funcionar

Más detalles

UNIÓN INTERNACIONAL DE TELECOMUNICACIONES RED DIGITAL DE SERVICIOS INTEGRADOS (RDSI) ESTRUCTURA GENERALES

UNIÓN INTERNACIONAL DE TELECOMUNICACIONES RED DIGITAL DE SERVICIOS INTEGRADOS (RDSI) ESTRUCTURA GENERALES UNIÓN INTERNACIONAL DE TELECOMUNICACIONES UIT-T I.130 SECTOR DE NORMALIZACIÓN DE LAS TELECOMUNICACIONES DE LA UIT RED DIGITAL DE SERVICIOS INTEGRADOS (RDSI) ESTRUCTURA GENERALES MÉTODO DE CARACTERIZACIÓN

Más detalles

2.2 Nombres, Ligado y Ámbito

2.2 Nombres, Ligado y Ámbito 2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el

Más detalles

DISEÑO DEL SISTEMA DE INFORMACION (DSI)

DISEÑO DEL SISTEMA DE INFORMACION (DSI) DISEÑO DEL SISTEMA DE INFORMACION (DSI) El objetivo del proceso de Diseño del Sistema de Información (DSI) es la definición de la arquitectura del y del entrono tecnológico que le va a dar soporte, junto

Más detalles

PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY

PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY ALGORITMO DEFINICIÓN: CONSISTE EN LA DESCRIPCIÓN CLARA Y DETALLADA DEL PROCEDIMIENTO A SEGUIR PARA ALCANZAR LA SOLUCIÓN A UN PROBLEMA EN DONDE SE ESTABLECE

Más detalles

Cuando el lenguaje si importa

Cuando el lenguaje si importa Cuando el lenguaje si importa de software financiero J. Daniel Garcia Grupo ARCOS Universidad Carlos III de Madrid 11 de mayo de 2016 cbed J. Daniel Garcia ARCOS@UC3M (josedaniel.garcia@uc3m.es) Twitter

Más detalles

Principios de Computadoras II

Principios de Computadoras II Departamento de Ingeniería Electrónica y Computadoras Operadores y Expresiones rcoppo@uns.edu.ar Primer programa en Java 2 Comentarios en Java Comentario tradicional (multi-línea) Comentario de línea Comentario

Más detalles

Índice de contenido. Índice de contenido... i Indice de prácticas...ix Prólogo...xi Cómo utilizar este libro...xv

Índice de contenido. Índice de contenido... i Indice de prácticas...ix Prólogo...xi Cómo utilizar este libro...xv Índice de contenido Índice de contenido... i Indice de prácticas...ix Prólogo...xi Cómo utilizar este libro...xv Capítulo 1: La computadora y los niveles de datos Computadora...3 Tipos de dispositivos...4

Más detalles

Tema 1. Introducción a los TAD

Tema 1. Introducción a los TAD Tema 1. Introducción a los TAD Objetivos En este tema nos ocupamos inicialmente del concepto de abstracción, dedicando la mayor atención a la abstracción de datos, estudiando aspectos relacionados con

Más detalles

FUNDAMENTOS DE INFORMÁTICA

FUNDAMENTOS DE INFORMÁTICA FUNDAMENTOS DE INFORMÁTICA Tema 2 Expresiones, operadores y estructuras de control Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo Fundamentos de Informática. Departamento de Ingeniería

Más detalles

TADs en C. Matías Bordese Algoritmos y Estructuras de Datos II - Laboratorio 2013

TADs en C. Matías Bordese Algoritmos y Estructuras de Datos II - Laboratorio 2013 TADs en C Matías Bordese Algoritmos y Estructuras de Datos II - Laboratorio 2013 1. Objetivos Definición de TADs en C Ocultación de la implementación del TAD Manejo básico de memoria dinámica 2. Usando

Más detalles

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos TEMA 2 Diseño de Algoritmos 7 2. DISEÑO DE ALGORITMOS 2.1. Concepto de Algoritmo En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus

Más detalles

Conceptos de Programación Orientada a Objetos

Conceptos de Programación Orientada a Objetos Paradigmas de programación Prog. orientada a objetos Conceptos de Programación Orientada a Objetos Abstracción de Programación estructurada Programación imperativa 2 Programación estructurada (I) Programación

Más detalles

Diseño por Contratos y Aserciones

Diseño por Contratos y Aserciones UNIVERSIDAD DE CHILE DEPARTAMENTO DE CIENCIAS DE COMPUTACION Diseño por Contratos y Aserciones Bertrand Meyer. Construcción de Software Orientado a Objetos EDUARDO JARA Diseño por Contratos y Aserciones

Más detalles

Tecnología de software para sistemas de tiempo real

Tecnología de software para sistemas de tiempo real 1 dit UPM Tecnología de software para sistemas de tiempo real Juan Antonio de la Puente DIT/UPM Motivación Las herramientas y la tecnología de software que se usan para construir otros tipos de sistemas

Más detalles

Diagramas de interacción

Diagramas de interacción Tema 6: Diagramas de Interacción Diagramas de interacción Los diagramas de interacción son diagramas que describen cómo grupos de objetos colaboran para conseguir algún fin. Estos diagramas muestran objetos,

Más detalles

Especificación y uso de módulos en C++(II)

Especificación y uso de módulos en C++(II) Sesión 3 Especificación y uso de módulos en C++(II) 3.1 La clase Poli para representar polinomios Disponemos de la clase Poli que permite operar con polinomios de coeficientes enteros. Se basa en el módulo

Más detalles

4. Algebra relacional

4. Algebra relacional Tema 7: Modelo Relacional. Dinámica 4. Algebra relacional Operaciones unarias Operaciones de conjuntos Operaciones de combinación Operación de división Operación de agregación y agrupamiento Tema 7: Dinámica

Más detalles

Introducción al álgebra relacional. Con ejemplos en SQL

Introducción al álgebra relacional. Con ejemplos en SQL OpenStax-CNX module: m18351 1 Introducción al álgebra relacional. Con ejemplos en SQL Miguel-Angel Sicilia This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License

Más detalles

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 1 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 2 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo

Más detalles

Tema V Generación de Código

Tema V Generación de Código Tema V Generación de Código Una vez que se ha realizado la partición HW/SW y conocemos las operaciones que se van a implementar por hardware y software, debemos abordar el proceso de estas implementaciones.

Más detalles

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice

Más detalles

Definición de Tipo de Dato Abstracto (TDA)

Definición de Tipo de Dato Abstracto (TDA) Definición de Tipo de Dato Abstracto (TDA) 1 John Guttag (1974): Un tipo de dato abstracto es aquél definido por el programador que puede ser manipulado de forma similar a los definidos por el sistema.

Más detalles

Modelos de Desarrollo de Programas Y Programación Concurrente Clase N 3

Modelos de Desarrollo de Programas Y Programación Concurrente Clase N 3 PROGRAMACION FUNCIONAL - Un lenguaje de programación funcional tiene gran flexibilidad, es conciso en su notación y su semántica es sencilla. El inconveniente principal de estos lenguajes ha sido la ineficiencia

Más detalles

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. APUNTADORES Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No hay que confundir una dirección de memoria con el contenido

Más detalles

Tema 4 : Lenguajes formales del modelo relacional

Tema 4 : Lenguajes formales del modelo relacional Bases de Datos y Sistemas de la Información Facultad de Informática Universidad Complutense de Madrid Tema 4 : Lenguajes formales del modelo relacional Se trata de los lenguajes formales de manipulación

Más detalles

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA 1. Definición de Algoritmo 1.1. Propiedades de los Algoritmos 2. Qué es un Programa? 2.1. Cómo se construye un Programa 3. Definición y uso de herramientas para

Más detalles

INGENIERÍA DEL SOFTWARE I Práctica 5 Modelado de Diseño

INGENIERÍA DEL SOFTWARE I Práctica 5 Modelado de Diseño INGENIERÍA DEL SOFTWARE I Práctica 5 Modelado de Diseño Univ. Cantabria Fac. de Ciencias Patricia López Introducción al Diseño Modelamos la estructura software del sistema (incluida la arquitectura) para

Más detalles

FUNDAMENTOS DE PROGRAMACIÓN

FUNDAMENTOS DE PROGRAMACIÓN ASIGNATURA DE GRADO: FUNDAMENTOS DE PROGRAMACIÓN Curso 2015/2016 (Código:71901020) 1.PRESENTACIÓN DE LA ASIGNATURA El objetivo de esta guía es orientar al alumno en el estudio de la asignatura de Fundamentos

Más detalles

Programación orientada a objetos. Resumen de Temas Unidad 4: Sobrecarga

Programación orientada a objetos. Resumen de Temas Unidad 4: Sobrecarga Programación orientada a objetos Resumen de Temas Unidad 4: Sobrecarga 4.1 Conversión de tipos (1) Conversiones implícitas: La conversión entre tipos primitivos se realizan de modo automático de un tipo

Más detalles

Ingeniería del Software. Índice

Ingeniería del Software. Índice Índice Introducción a los TADs Medida de la eficiencia de las implementaciones Estructuras lineales: pilas, colas, listas Tablas asociativas: hash Árboles Grafos 1 Introducción a los TADs Los Tipos Abstractos

Más detalles

Secciones críticas y exclusión mutua

Secciones críticas y exclusión mutua Secciones críticas y exclusión mutua Lecturas: Andrews, secciones 3.1, 3.2, 3.3, 3.4 Ben-Ari, sección 2.2 Manuel Carro Universidad Politécnica de Madrid Este texto se distribuye bajo los términos de la

Más detalles

Caso de uso y procedimiento para generación de cadena para factura electrónica. Febrero de 2012

Caso de uso y procedimiento para generación de cadena para factura electrónica. Febrero de 2012 Caso de uso y procedimiento para generación de cadena para factura electrónica Febrero de 2012 Tabla de Contenido Introducción 3 Definiciones 4 Simbología 5 Objetivo, alcance y políticas 6 Documentos que

Más detalles

INDICE. XVII Prólogo a la edición en español. XXI 1. Calculo proporcional 1.1. Argumentos y proporciones lógicas

INDICE. XVII Prólogo a la edición en español. XXI 1. Calculo proporcional 1.1. Argumentos y proporciones lógicas INDICE Prologo XVII Prólogo a la edición en español XXI 1. Calculo proporcional 1.1. Argumentos y proporciones lógicas 1 1.1.1. Introducción 1.1.2. Algunos argumentos lógicos importantes 2 1.1.3. Proposiciones

Más detalles

ANEXO XVII DE LA RESOLUCION N

ANEXO XVII DE LA RESOLUCION N Hoja 1 de 7 UNIVERSIDAD NACIONAL DE CÓRDOBA Facultad de Ciencias Exactas Físicas y Naturales República Argentina Programa de: Código: Informática Carrera: Materia común Res. Nº Plan: Puntos:3.5 Escuela:

Más detalles

Capítulo 7 OPERADORES Y EXPRESIONES. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

Capítulo 7 OPERADORES Y EXPRESIONES. Presentación resumen del libro: EMPEZAR DE CERO A PROGRAMAR EN lenguaje C Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C" Autor: Carlos Javier Pes Rivas (correo@carlospes.com) Capítulo 7 OPERADORES Y EXPRESIONES 1 OBJETIVOS Conocer los tipos de operadores

Más detalles

encontramos dos enunciados. El primero (p) nos afirma que Pitágoras era griego y el segundo (q) que Pitágoras era geómetra.

encontramos dos enunciados. El primero (p) nos afirma que Pitágoras era griego y el segundo (q) que Pitágoras era geómetra. Álgebra proposicional Introducción El ser humano, a través de su vida diaria, se comunica con sus semejantes a través de un lenguaje determinado (oral, escrito, etc.) por medio de frases u oraciones. Estas

Más detalles

FUNDAMENTOS DE INFORMÁTICA

FUNDAMENTOS DE INFORMÁTICA FUNDAMENTOS DE INFORMÁTICA Tema 1 Introducción a la Programación en Visual Basic Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo undamentos de Informática. Departamento de Ingeniería

Más detalles

Unidad V Análisis Semántico. M.C. Juan Carlos Olivares Rojas

Unidad V Análisis Semántico. M.C. Juan Carlos Olivares Rojas Unidad V Análisis Semántico M.C. Juan Carlos Olivares Rojas Agenda 5.1 Analizador semántico 5.2 Verificación de tipos en expresiones. 5.3 Conversión de tipos. 5.4 Acciones agregadas en un analizador sintáctico

Más detalles

El concepto de número

El concepto de número Los Números Reales El concepto de número El concepto de número es una de las más importantes abstracciones de la mente humana. Los números han surgido a lo largo de la historia como herramienta para resolver

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez Elementos de lenguaje: Identificadores Tipos de datos 2 Tipos de datos primitivos 3 Tipos de datos referenciados Clases Interfaces Arrays

Más detalles

Es aquel formado por todos los elementos involucrados en el problema.

Es aquel formado por todos los elementos involucrados en el problema. 1. TEORÍA DE CONJUNTOS CONCEPTO DE PERTENENCIA: "ð" Sea el conjunto A = ða, bð ð a ð A ð b ð A ð c ð A CONCEPTO DE SUBCONJUNTO: "ð" A ð B ð ð x ð A ð x ð B, ð x ð ð ð A, ð A A ð A, ð A CONJUNTOS ESPECIALES

Más detalles

Design by Contract with JML. Gary T. Leavens y Yoonsik Cheon

Design by Contract with JML. Gary T. Leavens y Yoonsik Cheon Design by Contract with JML Gary T. Leavens y Yoonsik Cheon Diseño por Contrato con JML Java Modeling Language combina: Mi logo es mas lindo que el de Martín.. :P Diseño por Contrato de Eiffel (Meyer).

Más detalles

Matemáticas Básicas para Computación

Matemáticas Básicas para Computación Matemáticas Básicas para Computación MATEMÁTICAS BÁSICAS PARA COMPUTACIÓN 1 Sesión No. 6 Nombre: Álgebra Booleana Objetivo Durante la sesión el participante identificará las principales características

Más detalles

Síntesis arquitectónica y de alto nivel

Síntesis arquitectónica y de alto nivel Síntesis arquitectónica y de alto nivel Módulo 1. Concepto y fases de la Síntesis de Alto Nivel 1 Diseño de circuitos: la complejidad Tratamiento de problemas de complejidad creciente Rápido desarrollo

Más detalles

Diagrama de Actividades. Fuente: Profesor Guillermo Bustos.

Diagrama de Actividades. Fuente: Profesor Guillermo Bustos. Diagrama de Actividades Prof. Guillermo E. Badillo Fuente: Profesor Guillermo Bustos. Diagrama de Actividades (DAct) Características del DAct Componentes del DAct Contracciones Repetición de actividades

Más detalles

TECNOLOGÍA DE REDES. Temario (Segunda Parte) 18/04/2008. Unidad 3. Introducción a los Routers (Segunda Parte)

TECNOLOGÍA DE REDES. Temario (Segunda Parte) 18/04/2008. Unidad 3. Introducción a los Routers (Segunda Parte) TECNOLOGÍA DE REDES Profesor: Héctor Abarca A. Unidad 3. Introducción a los Routers (Segunda Parte) Profesor: Héctor Abarca A. Historial de s del router Diagnóstico de fallas de los errores de línea de

Más detalles

Tema 3. Tipos de datos simples

Tema 3. Tipos de datos simples Tema 3. Tipos de datos simples Contenido del tema: Concepto de tipo. Tipos simples. Operadores. Expresiones. Semántica. Tipos y expresiones en lenguaje C++ Francisco J. Veredas Dpto. Lenguajes y Ciencias

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

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1 Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos

Más detalles

Programación Modular. Informática aplicada al medio ambiente curso 2010/2011

Programación Modular. Informática aplicada al medio ambiente curso 2010/2011 Programación Modular Informática aplicada al medio ambiente curso 2010/2011 Elementos básicos Estructuras de datos Modelización de la información Entrada, salida, datos intermedios, etc. Funciones Transformación

Más detalles

Estructuras de control

Estructuras de control Estructuras de control Introducción Los algoritmos vistos hasta el momento han consistido en simples secuencias de instrucciones; sin embargo, existen tareas más complejas que no pueden ser resueltas empleando

Más detalles

En matemáticas el concepto de conjunto es considerado primitivo y no se da una definición de este, por lo tanto la palabra CONJUNTO debe aceptarse

En matemáticas el concepto de conjunto es considerado primitivo y no se da una definición de este, por lo tanto la palabra CONJUNTO debe aceptarse En matemáticas el concepto de conjunto es considerado primitivo y no se da una definición de este, por lo tanto la palabra CONJUNTO debe aceptarse lógicamente como un término no definido. Un conjunto se

Más detalles

LICENCIATURA EN MATEMÁTICA. Práctico N 1 Lenguaje de la lógica. proposicional VICTOR GALARZA ROJAS 1 5 / 0 5 /

LICENCIATURA EN MATEMÁTICA. Práctico N 1 Lenguaje de la lógica. proposicional VICTOR GALARZA ROJAS 1 5 / 0 5 / Práctico N 1 Lenguaje de la lógica LICENCIATURA EN MATEMÁTICA proposicional VICTOR GALARZA ROJAS 1 5 / 0 5 / 2 0 1 0 PRÁCTICO N 1 1. Fundamentación: fundamentar la expresión Por lo tanto del siguiente

Más detalles

2007/ PROGRAMACIÓN. Tipo: TRO Curso: 1 Semestre: AB CREDITOS Totales TA TS AT AP PA OBJETIVOS. 1.-Introducción.

2007/ PROGRAMACIÓN. Tipo: TRO Curso: 1 Semestre: AB CREDITOS Totales TA TS AT AP PA OBJETIVOS. 1.-Introducción. 2007/2008 Tipo: TRO Curso: 1 Semestre: AB CREDITOS Totales TA TS AT AP PA OBJETIVOS 1.-Introducción. -Comprender cómo funciona un lenguaje de programación 2. Características del lenguaje C -Entender las

Más detalles

DISEÑO DE COMPONENTES DE SOFTWARE *

DISEÑO DE COMPONENTES DE SOFTWARE * DISEÑO DE COMPONENTES DE SOFTWARE * NOTAS DEL CURSO Ingeniería de Software I DRA. MARIA DEL PILAR GÓMEZ GIL INAOEP * Resumen del capítulo 10 de libro de [Pressman 2010] V:18-11-2008 (c) P. Gomez-Gil, INAOE.

Más detalles

GENERALIDADES DEL LENGUAJE C

GENERALIDADES DEL LENGUAJE C GENERALIDADES DEL LENGUAJE C La cadena con formato debe ir encerrada entre comillas dobles, no simples. El carácter de retorno de carro (\n) es obligatorio si se desea finalizar la impresión con un salto

Más detalles

PR1: Programación I 6 Fb Sistemas Lógicos 6 Obligatoria IC: Introducción a los computadores 6 Fb Administración de

PR1: Programación I 6 Fb Sistemas Lógicos 6 Obligatoria IC: Introducción a los computadores 6 Fb Administración de CUADRO DE ADAPTACIÓN INGENIERÍA INFORMÁTICA - Campus Río Ebro Código Asignaturas aprobadas Créditos Carácter Asignaturas/Materias reconocida Créditos Carácter 12007 Cálculo 7,5 MAT1; Matemáticas I 12009

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA

PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA Angel García Beltrán y José María Arranz Santamaría Sección de Publicaciones Escuela Técnica Superior de Ingenieros Industriales Universidad Politécnica de Madrid

Más detalles

INDICE Parte I. Conceptos 1. El estudio de los lenguajes de programación 2. Cuestiones de diseño de lenguajes

INDICE Parte I. Conceptos 1. El estudio de los lenguajes de programación 2. Cuestiones de diseño de lenguajes INDICE Parte I. Conceptos 1 1. El estudio de los lenguajes de programación 1.1. Por qué estudiar lenguajes de programación? 2 1.2. Breve historia de los lenguajes de programación 1.2.1. Desarrollo de los

Más detalles

Teoría de Conjuntos y Conjuntos Numéricos

Teoría de Conjuntos y Conjuntos Numéricos Teoría de Conjuntos y Conjuntos Numéricos U N I V E R S I D A D D E P U E R T O R I C O E N A R E C I B O D E P A R T A M E N T O DE M A T E M Á T I C A S P R O F A. Y U I T Z A T. H U M A R Á N M A R

Más detalles

El lenguaje C. 1. Identificadores, constantes y variables

El lenguaje C. 1. Identificadores, constantes y variables Principios de Programación El lenguaje C 1. Identificadores, constantes y variables 1.1. Conceptos de memoria Los nombres de variable como x, y, suma corresponden a localizaciones o posiciones en la memoria

Más detalles