Recursos compartidos y su especificación
|
|
- Víctor Manuel Romero Moreno
- hace 6 años
- Vistas:
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 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 detallesPaso 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 detallesTé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 detallesLos 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 detallesIntroducció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 detallesANX-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 detallesPROGRAMACION 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 detallesAlgoritmos. 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 detallesSistema 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 detallesTipos 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 detallesDesde 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 detallesMercedes 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 detallesGuí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 detallesExterior 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 detallesINTRODUCCIÓ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 detallesEstructuras 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 detallesTECNICO 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 detallesEstructuras 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 detallesTodo 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 detallesLa 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 detallesIntroducció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 detallesAlgoritmos 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 detallesla 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 detallesProf. 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
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 detallesDIAGRAMAS 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 detallesCristian 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 detallesSolució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 detallesIngenierí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 detallesExpresiones 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 detallesUnidad 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 detallesESCUELA 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 detallesEl 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 detallesTema 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 detallesProgramació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 detallesNormas 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 detallesRequerimientos 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 detallesUNIÓ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 detalles2.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 detallesDISEÑ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 detallesPROGRAMACIÓ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 detallesCuando 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 detallesPrincipios 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 Capítulo 1: La computadora y los niveles de datos Computadora...3 Tipos de dispositivos...4
Más detallesTema 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 detallesFUNDAMENTOS 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 detallesTADs 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 detallesSISTEMAS 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 detallesConceptos 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 detallesDiseñ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 detallesTecnologí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 detallesDiagramas 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 detallesEspecificació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 detalles4. 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 detallesIntroducció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 detallesJava 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 detallesTema 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 detallesUnidad 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 detallesDefinició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 detallesModelos 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 detallesAPUNTADORES. 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 detallesTema 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 detallesMé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 detallesINGENIERÍ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 detallesFUNDAMENTOS 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 detallesProgramació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 detallesIngenierí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 detallesSecciones 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 detallesCaso 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 detallesINDICE. 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 detallesANEXO 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 detallesCapí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 detallesencontramos 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 detallesFUNDAMENTOS 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 detallesUnidad 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 detallesEl 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 detallesPROGRAMACIÓ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 detallesEs 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 detallesDesign 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 detallesMatemá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 detallesSí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 detallesDiagrama 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 detallesTECNOLOGÍ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 detallesTema 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 detalles3.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 detallesAgradecimientos. 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 detallesProgramació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 detallesEstructuras 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 detallesEn 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 detallesLICENCIATURA 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 detalles2007/ 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 detallesDISEÑ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 detallesGENERALIDADES 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 detallesPR1: 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 detallesPROGRAMACIÓ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 detallesINDICE 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 detallesTeorí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 detallesEl 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