Herencia en Eiffel Gerardo Rossel -
|
|
- Gustavo Torregrosa Silva
- hace 6 años
- Vistas:
Transcripción
1 Herencia en Eiffel Gerardo Rossel - grossel@bigfoot.com La intención del presente trabajo es discutir algunos aspectos de la herencia en el Lenguaje Eiffel. Los aspectos a discutir trataran temas de redefinición, junta, múltiple herencia y soporte de correctitud sobre la herencia. La herencia introduce las relaciones Padre e Hijo y su clausura transitiva ntecesor y Desciente. La inclusión del nombre de una clase en la cláusula de herencia de otra determina que aquella es padre de esta última: Class C inherit... es padre de C. La noción de herencia no admite ciclos, así si es antecesor de entonces no puede ser antecesor de. Esto es así en cualquier lenguaje basado en clases. daptación de Features La adaptación de Features se realiza mediante la redeclaración lo cual incluye dos importantes conceptos: refefinición y efectivización. La redefinición implica un cambio en la implementación, signatura o especificación de la original; mientras que efectivización es proveer la implementación de un deferred (abstracta) en el padre. Estos conceptos se suman al de junta de s y la indefinición de s (undefining). Veremos después como se trata el caso de la herencia repetida utilizando los conceptos mencionados y otros que surjan según se necesiten. Renombre El renombre de s heredadas es una de las facilidades del sistema de herencia provisto por el Lenguaje Eiffel. Como veremos más adelante esto se relaciona con la múltiple herencia pero además permite adaptar los nombres al contexto de la nueva clase. La sintaxis es: as C as D Se puede insertar una parte para cada padre. No se permite dos renombres de una misma para la misma clase padre. Redefinición La redefinición es un mecanismo que nos permite generar una nueva implementación de una heredada. Se puede combinar renombre y redefinición: class inherit f as newf redefine newf newf...is class
2 El renombre no cambia la sino su nombre final mientras que la redefinición no cambia el nombre sino su implementación, signature o especificación. El mecanismo de anchored (anclaje) permite la redefinición de s en forma implícita. Efectivización Efectivización es la redeclaración como efectiva de una declarada en un antecesor como deferred. Es decir transformar en concreta una abstracta. En la efectivización no es necesario incluir esta en la cláusula de redefinición. Lo cual es lógico ya que la en cuestión nunca fue "definida". Se debe hacer la salvedad del caso en el cual la nueva aún permanezca deferred o sea que solamente se cambia su signatura. Las clases deferred pueden eventualmente implementar algunas s y otras no, la condición necesaria y suficiente para que una clase sea considerada deferred es que posea al menos una deferred. Las clases deferred no pueden ser instanciadas. Un tipo de clase deferred que cumple un rol de suma importancia en la construcción de abstracciones útiles a la modelización e implementación de software son las clases de comportamiento(behavior class). Un ejemplo de ellas sería la clase ITERTOR la cual implementa y especifica mecanismos de iteración. Undefining La abstractización de s efectivas se conoce como undefining. Esta característica es útil en contextos de múltiple herencia donde exista un conflicto de nombres y no se redefinan ni renombren las s implicadas. Una declarada como deferred en el padre o abstractizada mediante el mecanismo de undefining se dice que es heredada como deferred en otro caso se dice que es heredada como efectiva class inherit _efectiva as _abstracta undefine _abstracta redefine _anstracta _abstracta(x:i, y: H) is deferred -- class Mecanismo de Junta Este mecanismo soporta un concepto muy importante en el modelo orientado a objetos de Eiffel: la fusión de abstracciones. La fusión de abstracciones se utiliza cuando diversas abstracciones provenientes de varias clases necesitan ser combinadas. Supongamos que tenemos dos s heredadas de distintas clases pero que nos interesa que se comporten como una nueva, en este caso el mecanismo de junta se implementaría mediante dos renombres
3 class C inherit f as nuevaf g as nuevaf Otro caso se presenta cuando heredamos varias s con y nos interesa una sola versión: class D inherit g as f undefine f h as f C undefine f -- class D En este caso estamos utilizando la implementación de la h en como junta de g, h y f provenientes de,,c y con el nombre f. Herencia repetida La múltiple herencia presenta la propiedad de que en determinado momento se puede heredar de una misma clase varias veces por distintos caminos. Los gráficos nos muestran dos ejemplos comunes: C D
4 Los gráficos nos muestran casos clásicos de herencia repetida. En el primer gráfico la clase D hereda de dos veces una por medio de C y otra por medio de. En el otro ejemplo la clase hereda dos veces de. La regla de nombres de s nos dice que: una clase que hereda diferentes s del mismo nombre desde diferentes padres es invalida. Eiffel nos da una forma de resolver conflictos mediante la siguiente regla de la herencia repetida: una heredada repetidamente bajo el mismo nombre representa una simple; versiones heredadas bajo distintos nombres representan s separadas replicadas desde el antecesor común. La herencia repetida presenta problemas potenciales: redeclaración sobre caminos separados, duplicación de atributos, conflicto con derivaciones genéricas. El caso de la redeclaración puede ser resuelto mediante el renombre (el compilador Eiffel no permite que se violen las reglas) tenio en ese caso todas las versiones redeclaradas con un nuevo nombre. Si por ejemplo la clase de la figura tiene una f que es redeclarada en y en C entonces en D se presenta el problema de heredar dos s con el mismo nombre lo cual es invalido, en este caso se necesita renombrar alguna o ambas s. Debemos aclarar que esta solución se considera buena por ahora, pero que no alcanza debido a las asignaciones polimórficas que trataremos después. El caso de los atributos es similar, supongamos siguio la segunda figura que la clase tiene un atributo at en ese caso solo trá un atributo at ya que según la regla de herencia repetida se representaría como un solo atributo. Pero sí en se renombra at como at1 y at2 (en cada cláusula de padre ) entonces en se trán dos atributos. class inherit at as at1 ; at as at2 ; Nuevamente se plantea el problema de las asignaciones polimórficas. Para enterlo pongamos un ejemplo: supongamos en el caso planteado en la primera figura con una f en la clase a redeclarada en y en C y renombrada en D como fb y fc respectivamente. Si tenemos el siguiente código: d:d!!dl; d.bf; d.cf no habría problema ya que se ejecutaría en el primer caso la versión heredada de y en el segundo la versión heredada de C. Pero si se plantea el siguiente código:
5 a:, d:d;!!d; a:= d; a.f En este caso la asignación polimórfica es permitida ya que D conforma con según las reglas de tipos, pero surge el problema de determinar que versión de f se ejecutará. Esta ambigüedad se resuelve en Eiffel mediante la incorporación de la sentencia select. En el renombre se debe especificar cual se selecciona como la a aplicar en asignaciones polimórficas: class D inherit f as bf select bf C f as cf La utilización de la sentencia select no es optativa, cada vez que se presenten conflictos de binding dinámico debido a la herencia de dos o más declaraciones de s es obligatorio seleccionar una. El conflicto sobre derivaciones genéricas se presenta cuando una clase hereda de dos o más clases que a su ves heredan de un clase genérica pero instanciando el parámetro genérico en diferentes tipos. Para que la repetida herencia sea valida es posible utilizar las soluciones presentadas anteriormente: sobreescribir a través de la abstractización, (undefining), utilizar el select para permitir replicación, el sharing es imposible ya que la elección de una puede causar incompatibilidad de tipos. En el caso de la abstractización hay que tener una precaución adicional ya que al sobreescribir se necesita que las signaturas conformen, pero en el caso de derivaciones genéricas puede haber conflicto. Si las clases intermedias instancian el tipo genérico en tipos que no conforman entonces se debe abstractizar todas las s heredadas en conflicto y proveer una redeclaración nueva, tenio en cuenta que la nueva versión debe proveer tipos que conformen con los originales, en el peor caso NONE. Herencia y serciones Para que una clase sea correcta debe respetar las invariantes de sus padres. Esto se puede expresar por la regla: Las invariantes de todos los padres se aplican a la clase en si. Si la clase no tiene invariante se considera la invariante true lo que implica que se aplican las invariantes de sus padres. El caso de la redeclaración de s presenta un tratamiento especial, se debe tener cuidad debido al polimorfismo y al binding dinámico. En la redeclaración si se necesita incorporar aserciones se incorporan con la siguiente sintaxis: require else alternativa_precondicion ensure then extra_poscondicion Para la precondición se toma la misma o más débil, es decir si las precondiciones anteriores fueran: pre 1,...,pre n y la nueva alternativa_precondicion la semántica sería: alternativa_precondicion or else pre 1 or else...or else pre n Para la postcondición se toma las misma o una postcondición mas fuerte, es decir si las postcondición anteriores fueran: pos 1,...,pos n y la nueva extra_precondicion la semántica sería: extra_precondicion and then pos 1 and then... and then pos n
6 Tener una precondición más débil no impone ningún nuevo requerimiento a los clientes originales, mientras que una postcondición más fuerte garantiza un resultado que satisface las originales, tal cual lo espera el cliente (el término cliente se refiere a una entidad que toma servicios de la clase). Eiffel no soporta métodos de clase ya que toma una distinción conceptual entre clases y objetos, pero permite definir rutinas once, las cuales se ejecutan solo una vez, y utiliza la herencia múltiple para acceder a propiedades de otras clases. Para poder mostrar algo por pantalla en JV se utiliza la clase System que cuenta con atributos declarados como static, en Eiffel bastaría con heredar de ella. Smalltalk soporta métodos y variables de clase pero además variables globales. Lo visto en este apunto no cubre completamente el tema de herencia en Eiffel, pero sirve como una introducción general a la problemática y nos muestra como la múltiple herencia puede tratarse con elegancia dando un lenguaje de programación altamente flexible sin perder cualidades que facilitan la construcción de software correcto y robusto. uenos ires, Mayo de 1998
Introducción a la herencia.
Programación III Herencia 1 Programación III I.T.Informática de Sistemas Introducción a la herencia. Prof. Félix Prieto Arambillet Departamento de Informática Universidad de Valladolid Curso 2003/2004
Más detallesProgramación orientada a objetos. Resumen de Temas Unidad 5: Herencia
Programación orientada a objetos Resumen de Temas Unidad 5: Herencia 5.1 Introducción a la Herencia La herencia es el mecanismo fundamental de relación entre clases en la orientación a objetos. Relaciona
Más detallesHERENCIA Y TIPOS. Articulo. Video Audio Altavoces. Amplificador
HERENCIA Y TIPOS. Las clases con propiedades y funciones comunes se agrupan en una superclase. Las clases que se derivan de una superclase son las subclases. Las clases se organizan como jerarquía de clases.
Más detallesDefinición. Mónica E. García García Feb 07
Tema 11: Herencia 0 Definición Cuando inicialmente se modelan dos cosas y se tienen datos duplicados y además pudiera darse que el número de métodos también es similar así como la implementación, se requiere
Más detalles! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes
Introducción Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual smuelas@fi.upm.es! Qué es la POO?! Un paradigma de programación! Un paradigma es una forma de afrontar
Más detallesLa Herencia: Teoría (1)
Introducción a la Herencia Presentación basada en: 1. Construcción de Software Orientado a Objetos. Bertrand Meyer.1998. 2. Java 2., Curso de programación. Fco. Javier Ceballos. Ed. Alfoomega&RA-MA, 2003.
Más detallesPROGRAMACION ORIENTADA A OBJETOS EN C++
PROGRAMACION ORIENTADA A OBJETOS EN C++ 1- INTRODUCCIÓN El lenguaje C++ representa el resultado de los esfuerzos realizados para proporcionar las ventajas de la programación Orientada a Objetos a un lenguaje
Más detallesEl lenguaje Eiffel Por: Gerardo Rossel
El lenguaje Eiffel Por: Gerardo Rossel E-mail: grossel@dc.uba.ar La idea del presente apunte es introducir a los conceptos y características básicas del lenguaje Eiffel 3. Los conceptos de este apunte
Más detallesProgramación orientada a objetos. Capítulo 8 Mejora de las estructuras mediante herencia
Programación orientada a objetos Capítulo 8 Mejora de las estructuras mediante herencia Clases y objetos de DoME Modelo de objetos Modelo de clases Crítica de la v1 de DoME - Duplicación de código - Las
Más detallesAlgoritmos y programas. Algoritmos y Estructuras de Datos I
Algoritmos y programas Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2012 Departamento de Computación - FCEyN - UBA Programación funcional - clase 1 Funciones Simples - Recursión - Tipos de
Más detallesUNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES
UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES Área de formación: Disciplinaria Unidad académica: Programación Orientada a Objetos Ubicación: Cuarto Semestre Clave: 2087 Horas
Más detallesTecnología de Programación
Tecnología de Programación Diego C. Martínez Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur UML - Diagramas de clases El diagrama de clases es un diagrama de la estructura
Más detallesJava Avanzado Facultad de Ingeniería. Escuela de computación.
2 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 5 3 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo de sus prácticas
Más detallesINICIACIÓN A LA PROGRAMACIÓN 1ª parte
TEMA 4 INICIACIÓN A LA PROGRAMACIÓN 1ª parte Qué es la programación? La programación es el proceso de diseñar, codificar, depurar y mantener el código fuente de programas computacionales. En la actualidad,
Más detallesSentencias de Procesamiento Iterativo: while y do-while
ESTRUCTURAS CÍCLICAS Se discuten en este documento las sentencias que se utilizan en el lenguaje C++ para representar la tercera de las estructuras utilizadas en la programación estructurada: La Estructura
Más detallesESTRUCTURAS DE CONTROL
ESTRUCTURAS DE CONTROL En lenguajes de programación, las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa. Con las estructuras de control se puede: De
Más detallesLos diagramas de clases y de objetos sirven para modelar diversos aspectos estructurales o estáticos de un sistema: Modelado - Vocabulario del Sistema
Modelado Los diagramas de clases y de objetos sirven para modelar diversos aspectos estructurales o estáticos de un sistema: Vocabulario del Sistema Distribución de Responsabilidades Semántica de una Clase
Más detallesLas redes semánticas intentan trasladar esa afirmación a un formalismo Una red semántica será un grafo donde:
Redes Semánticas Redes semánticas La lógica como lenguaje de representación tiene dificultades prácticas Son necesarios mecanismos mas intuitivos y fáciles de usar La psicología cognitiva afirma: La representació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 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 detallesProgramación Orientada a Objetos
Programación Orientada a Objetos E.T.S.I. Informática Universidad de Málaga http://www.lcc.uma.es/ Contenido Introducción histórica Conceptos básicos de la Programación O. O. Conceptos avanzados de la
Más detallesINTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA
Objetivo: Identificar los concentos principales en java POO, que es una clase, un objeto así como sus características principales abstracción, modularidad, encapsulamiento, herencia, polimorfismo. INTRODUCCIÓN
Más detallesFábricas de Software y Líneas de Producto: del Estado de la Práctica al Estado del Arte. Jorge A. Villalobos.
Fábricas de Software y Líneas de Producto: del Estado de la Práctica al Estado del Arte Jorge A. Villalobos jvillalo@uniandes.edu.co 1 Agenda Cuál es la situación actual? Por qué el problema es tan complejo?
Más detallesProgramación Orientada a Objetos
Programación Orientada a Objetos Departamento de Lenguajes y Ciencias de la Computación E.T.S.I. Informática Universidad de Málaga Contenido Introducción histórica Conceptos básicos de la Programación
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 detallesCasos de Uso. Introducción. Actores
Casos de Uso Introducción Los diagramas de casos de uso documentan el comportamiento de un sistema desde el punto de vista del usuario. Representan las funciones que un sistema puede ejecutar. Por tanto
Más detallesAplicaciones de Escritorio
Aplicaciones de Escritorio Introducción n a la Programación Orientada a Objetos con Java Disertantes: Ing. Rasjido, Jose. AdeS Montenegro, Cristian. Agenda Clases y Paquetes. Clases y Paquetes. Modificadores
Más detallesQué es SGBD? Mencionar 4 tipos de SGBD. SGBD de red. Román Gutiérrez Sosa. SGBD jerárquicos. Modelo de datos relacionales.
Qué es SGBD? Es un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. El propósito general de los sistemas de gestión
Más detallesUniversidad de Chile
Capítulo 1 Conceptos básicos: clases y objetos Universidad de Chile Departamento de Cs. De la Computación Prof.: Nancy Hitschfeld Kahler Programación orientada a objetos 1-1 1 Contenido Clases y objetos
Más detallesFederico Peinado
Federico Peinado www.federicopeinado.es Depto. de Ingeniería del Software e Inteligencia Artificial disia.fdi.ucm.es Facultad de Informática www.fdi.ucm.es Universidad Complutense de Madrid www.ucm.es
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 detallesProgramación Avanzada
Programación Avanzada Referencias Circulares y Namespaces 1 Índice 1. INTRODUCCIÓN.. 3 2. REFERENCIAS CIRCULARES.. 4 Ejercicio 1 4 Ejercicio 2 4 Ejercicio 3 5 3. NAMESPACES 6 Introducción 6 Creación de
Más detalles4. POLIMORFISMO. Figura 6: Funciones virtuales
página 1 4. POLIMORFISMO Polimorfismo, por definición, es la capacidad de adoptar formas distintas. En el ámbito de la Programación Orientada a Objetos se entiende por polimorfismo la capacidad de llamar
Más detalles//Sección de manejo de excepciones. Las rutinas de manejo de errores //aparecen aqui
PL/SQL - Oracle PL/SQL (Procedural Language/SQL) es una extensión de SQL, que agrega ciertas construcciones propias de lenguajes procedimentales, obteniendose como resultado un lenguaje estructural mas
Más detallesCurso de Java POO: Programación orientada a objetos
Curso de Java POO: Programación orientada a objetos Luis Guerra l.guerra@upm.es Curso INEM. Programación en Java Marzo 2011 Índice Previo Repaso y encapsulación Empaquetado Relaciones entre clases Herencia
Más detallesCapítulo 16. Diagrama de Clases UML
Capítulo 16. Diagrama de Clases UML Florentino TORRES M. CINVESTAV-Tamaulipas 15 de Oct del 2012 Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 1 / 70 1 Capítulo 16. Diagrama de Clases UML Aplicando
Más detallesResultado de Aprendizaje:
10. Matriz de Valoración o Rúbrica MATRIZ DE VALORACIÓN O RÚBRICA Siglema: PROO-02 Nombre del Módulo: Nombre del Alumno: Docente evaluador: Grupo: Fecha: Resultado de Aprendizaje: 1.1 Diseña modelos bajo
Más detallesCarlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas
2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos
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 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 detallesUnidad II: Análisis semántico
Unidad II: Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico
Más detallesTema 4: Corrección y Robustez en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle
Tema 4: Corrección y Robustez en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Asertos en C++ Mecanismo de excepciones: Declaración de excepciones Lanzar excepciones
Más detallesM. en E. Noemí López García
La forma de indicar al servidor que nuestro código PHP comienza es: M. en E. Noemí López García sentencias php Existen otros métodos de indicar el inicio de código php pero el indicado es el más común
Más detallesINTRODUCCION A LA PROGRAMACIÓN ORIENTADA A OBJETOS
INTRODUCCION A LA PROGRAMACIÓN ORIENTADA A OBJETOS Introducción La programación orientada a objetos es un enfoque de programación de los más populares y viene teniendo gran aceptación en el desarrollo
Más detallesPROGRAMA DE ESTUDIO. : Tecnologías de Información II : UN SEMESTRE ACADÉMICO : SEGUNDO AÑO, PRIMER SEMESTRE
PROGRAMA DE ESTUDIO A. Antecedentes Generales ASIGNATURA : Tecnologías de Información II CÓDIGO : III222A DURACIÓN : UN SEMESTRE ACADÉMICO PRE- REQUISITO : TECNOLOGIAS DE INFORMACION I CO REQUISITO : NO
Más detallesPROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas
PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas Instituto Tecnológico de Nuevo Laredo 1 Qué es UML? UML = Unified Modeling Language Un lenguaje de propósito general
Más detalles1. DML. Las consultas multitabla
1.1 Introducción 1. DML. Las consultas multitabla Hasta ahora hemos visto consultas que obtienen los datos de una sola tabla, en este tema veremos cómo obtener datos de diferentes tablas en una sola instrucción
Más detallesUML Unifield Modeling Languaje
UML Unifield Modeling Languaje 1 Modelo: Representación abstracta de una especificación, un diseño o un sistema. Generalmente, basada en una visión particular y compuesta por uno o más diagramas. Lenguaje
Más detallesEvaluación Diagnóstico puesta en común. Escuela Técnica ORT - TIC
Evaluación Diagnóstico puesta en común Escuela Técnica ORT - TIC 2009 1 Ojo La mayoría de los conceptos que vamos a discutir los vamos a ver en profundidad en clase, por l otanto hoy no vamos a discutirlos
Más detallesEscribir programas a partir de un diagrama de flujo
Escribir programas a partir de un diagrama de flujo por Iván Cruz En esta lectura se revisará una estrategia específica para lograr implementar un programa computacional a partir de un diagrama de flujo,
Más detallesCONTENIDOS. La herencia permite: - Adoptar automáticamente características ya implementadas. Ahorro de tiempo y esfuerzo
CONTENIDOS 1. Introducción 2. Cuándo se aplica el mecanismo de herencia 3. Un ejemplo de herencia 4. Terminología 5. Clase derivada. Creación de una clase derivada 6. Miembros que no se heredan automáticamente
Más detallesTema 1: Análisis y Diseño de la Aplicación
Tema 1: Análisis y Diseño de la Aplicación Índice de contenido Introducción...1 Diseñador de clases...1 Creación de nuevos tipos...2 Visualización y modificación de tipos existentes...5 Relaciones entre
Más detallesProgramación con Visual C#
Programación con Visual C# Duración: 40.00 horas Descripción Visual C# es uno de los lenguajes de programación desarrollados por Microsoft, basado en la programación orientada a objetos. Es imprescindible
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 detallesClase 3: Repaso POO. DSIW1:Ing. Tomás Eduardo Urbina 1
DSIW1:Ing. Tomás Eduardo Urbina 1 Declaración de una clase y creación de un objeto. La programación orientada a objetos se basa en la programación de clases; a diferencia de la programación estructurada,
Más detallesTema I Testing Estructurado
Tema I Testing Estructurado 4ta Parte Verificación y Validación de Software UNS Contenido Testing de Unidad: Caja Negra Grafos Causa Efecto Clases de Equivalencia Valores Límite Verificación y Validación
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 detallesEspecificación de TAD. Lección 2
Especificación de TAD Lección 2 Esquema Características generales de una especificación Especificación algebraica Especificación no formal Lectura recomendada: sección 1.3 del libro de Z.J. Hernández et
Más detallesAvance del Proyecto Arcasa. Proyecto de Grado 2007 Instituto de Computación Facultad de Ingeniería UdelaR Montevideo - Uruguay
Avance del Proyecto Arcasa Proyecto de Grado 2007 Instituto de Computación Facultad de Ingeniería UdelaR Montevideo - Uruguay Agenda Introducción Estado del Arte Modelos de Seguridad Políticas de Control
Más detalles16. Herencia Definición de herencia. 168 A. García-Beltrán y J.M. Arranz
168 A. García-Beltrán y J.M. Arranz 16. Herencia Objetivos: a) Definir el concepto de herencia entre clases b) Interpretar el código fuente de una aplicación Java donde aparecen clases relacionadas mediante
Más detallesPrueba N o 1. Programación II
UNIVERSIDAD ANDRÉS BELLO 1 Prueba N o 1 Programación II Profesores: José Luis Allende y Carlos Beyzaga. Fecha: 10 de Septiembre de 2013 Nombre: Nota: Instrucciones: Coloque su nombre a todas las hojas.
Más detallesGRAMATICAS LIBRES DEL CONTEXTO
GRMTICS LIBRES DEL CONTEXTO Estas gramáticas, conocidas también como gramáticas de tipo 2 o gramáticas independientes del contexto, son las que generan los lenguajes libres o independientes del contexto.
Más detallesESTIMACIÓN DE TIEMPO Y COSTO DE PRODUCTOS SOFTWARE
Análisis y costo de algoritmos Algoritmos Un algoritmo es un conjunto de pasos claramente definidos que a partir de un cierta entrada (input) produce una determinada salida (output) Algoritmos y programas
Más detallesTEMA 6: INTRODUCCIÓN A UML
TEMA 6: INTRODUCCIÓN A UML Por qué modelamos? El modelado es una parte central de todas las actividades que conducen a la producción de un software de calidad. Como tal la ingeniería software debe basarse
Más detallesTema 7.- Fundamentos de la Programación Orientada a Objetos
Tema 7.- Fundamentos de la Programación Orientada a Objetos 7 de enero de 2014 Objetivos Saber definir clases propias. Saber crear objetos de una clase determinada e interactuar con ellos (Problema 1).
Más detallesPROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07
PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07 1. En qué método de análisis sintáctico puede suceder que en la construcción del árbol de derivación de las posibles expansiones de un símbolo no terminal
Más detallesConstrucciones del Lenguaje Java
Construcciones del Lenguaje Java Autor: Juan Alberto López Cavallotti Versión de Java: 5 / 6 Comentarios Comentario de Línea Comentario Multilínea //Esto es un comentario. /* Esto comenta varias lineas.
Más detallesTransformaciones entre el modelo Relacional y el modelo de Clases.
Gestión de la Información Transformaciones entre el modelo Relacional y el modelo de Clases. José Luis Pastrana Brincones (pastrana@lcc.uma.es) 2 Supongamos que tenemos un modelo de objetos como el siguiente:
Más detallesDiseño Basado en Componentes. Curso 2008 / 09
Beneficios de OOP Diseño Basado en Componentes Ingeniería Informática Universidad Carlos III de Madrid Programación Orientada a Objetos (OOP) en VB.NET Diseño Basado en Componentes. Curso Conceptos orientados
Más detallesDiagrama de Casos de Uso. Casos de Uso
Diagrama de Casos de Uso 1 Casos de Uso Un requerimiento funcional describe un servicio o función del sistema. Un requerimiento no-funcional es una restricción sobre el sistema (por ejemplo el tiempo de
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 detallesBases de datos 1. Teórico: Introducción
Bases de datos 1 Teórico: Introducción Conceptos generales Base de Datos: Es un conjunto de datos relacionados Representa algún aspecto del mundo real Es construida para un propósito específico Database
Más detallesTema 3 - Modelado con HDL a nivel RTL
- Modelado con HDL a nivel RTL Eduardo Rodríguez Martínez Departamento de Electrónica División de Ciencias Básicas e Ingeniería Universidad Autónoma Metropolitana Unidad Azcapotzalco Email: erm@correo.azc.uam.mx
Más detallesCurso Querying Microsoft SQL Server 2014 (20461)
Curso Querying Microsoft SQL Server 2014 (20461) Programa de Estudio Curso Querying Microsoft SQL Server 2014 (20461) Aprende las habilidades técnicas necesarias para escribir consultas Transact-SQL básicas
Más detallesUNIVERSIDAD DE GUADALAJARA CENTRO UNIVERSITARIO DE CIENCIAS EXACTAS E INGENIERÍAS SEMINARIO DE SOLUCIÓN DE PROBLEMAS DE PROGRAMACIÓN PROYECTO
UNIVERSIDAD DE GUADALAJARA CENTRO UNIVERSITARIO DE CIENCIAS EXACTAS E INGENIERÍAS SEMINARIO DE SOLUCIÓN DE PROBLEMAS DE PROGRAMACIÓN PROYECTO NUCLEO DE DIAGNOSTICO INTEGRAL NDI En la ciudad de Guadalajara,
Más detallesControl de Acceso Discrecional.
Control de Acceso Discrecional. Esta estrategia de control de acceso está basada en la idea de que los sujetos acceden a los objetos en base a su identidad y a unas reglas de autorización, que indican
Más detalles1. Asignar Responsabilidades a componentes de software es la habilidad más importante del AOO. Porque:
Análisis y Diseño O.O. Preguntas del diseño : Cómo podrían asignarse responsabilidades a las clases de los objetos? Cómo podrían interactuar los objetos? Qué deberían hacer las clases? Patrones : Ciertas
Más detallesBase de Datos Oracle 10g: Programación con PL/SQL Código: D Duración: 5 días (40 horas)
Base de Datos Oracle 10g: Programación con PL/SQL Código: D17214 - Duración: 5 días (40 horas) Lo que aprenderá Esta clase es aplicable para los usuarios de Oracle8i, Oracle9i y Oracle Database 10g. Este
Más detallesPMK SATCA 1 : Carrera:
1. Datos Generales de la asignatura Nombre de la asignatura: Programación Visual Clave de la asignatura: PMK -1601 SATCA 1 : 0-2 - 2 Carrera: Ingeniería Informática 2. Presentación Caracterización de la
Más detallesIntroducción a la Orientación a Objetos
Introducción a la Orientación a Objetos Breve historia de la OO 1960s. Simula incorpora características propias de la OO. 1970s. Smalltalk. Lenguaje totalmente OO. 1990s. Boom de la OO. 2000-Hoy. Época
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 detallesMétodo SQL para Calcular el valor máximo de un conjunto de columnas de una Tabla.
Método SQL para Calcular el valor máximo de un conjunto de columnas de una Tabla. Utilización de subconsultas para realizar cálculos sobre N cantidad de columnas sin utilizar sentencias CASE Nombre Puntaje
Más detallesFigura 2. Figura 1. Figura 3. Figura 4
Examen 1. Se desea construir un sistema de gestión de ventas para comercios. El sistema constará de una base de datos en la que, entre otras cosas, se almacena la información del inventario de productos
Más detallesSolución al parcial 14
Solución al parcial 14 Marque V(erdadero) o F(also) según considere la proposición. 1. La lógica difusa es la emulación del razonamiento aproximado que realizan las máquinas. F: Las máquinas no realizan
Más detallesPrograma de la asignatura Curso: 2009 / 2010 METODOLOGÍA DE LA PROGRAMACIÓN (1298)
Programa de la asignatura Curso: 2009 / 2010 METODOLOGÍA DE LA PROGRAMACIÓN (1298) PROFESORADO Profesor/es: RAUL MARTICORENA SANCHEZ - correo-e: rmartico@ubu.es DAVID HERMINDO MARTIN ALONSO - correo-e:
Más detallesModelo Conceptual de datos. Yenifer Laurens.
Modelo Conceptual de datos Yenifer Laurens. Modelo de datos Es un conjunto de conceptos que pueden servir para describir la estructura de una Base de Datos; tipo de datos, las relaciones y que deben cumplirse
Más detallesBases de Datos OTROS ASPECTOS MODELO E-R
Bases de Datos OTROS ASPECTOS MODELO E-R Bases de Datos GENERALIZACIÓN Y ESPECIALIZACIÓN Bases de Datos ESPECIALIZACIÓN Bases de Datos -> Especialización Un conjunto de entidades, puede incluir subgrupos
Más detallesSintaxis básica, variables y 7pos
Contenidos Sintaxis básica, variables y 7pos Curso de Programación en Java! Sintaxis básica! Variables y 7pos! Entrada/Salida básica! Operadores y expresiones Jesús Montes Sánchez jmontes@fi.upm.es Estructura
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 detallesProgramación orientada a objetos. Resumen de Temas Unidad 6: Polimorfismo y reutilización
Programación orientada a objetos Resumen de Temas Unidad 6: Polimorfismo y reutilización 6.1 Concepto de Polimorfismo Polimorfismo quiere decir "un objeto y muchas formas". Esta propiedad permite que un
Más detallesBASE DE DATOS Modelos de Datos
BASE DE DATOS Modelos de Datos Autor: Lic. Jaquelina E. Escalante Desarrollo de una Base de datos 1 Análisis de requisitos, es decir, el estudio del sistema que se pretende modelar de la forma más precisa
Más detallesPHP 7 Desarrollar un sitio web dinámico e interactivo
Preámbulo 1. Objetivo del libro 11 2. Breve historia de PHP 12 3. Dónde conseguir PHP? 13 4. Convenciones de escritura 14 Introducción a PHP 1. Qué es PHP? 15 2. Estructura básica de una página PHP 17
Más detalles4.1 CONGRUENCIA ENTRE LOS OBJETIVOS DEL PLAN DE ESTUDIOS Y EL PERFIL DE EGRESO CON LAS LGAC:
4.1 CONGRUENCIA ENTRE LOS OBJETIVOS DEL PLAN DE ESTUDIOS Y EL PERFIL DE EGRESO CON LAS LGAC: A continuación se muestran los objetivos así como los mapas funcionales según la línea de acentuación y la línea
Más detallesInformática I para Bachillerato
CIMAT C++ C/C++ de Datos CIMAT Sesión 15 Una estructura es un grupo de variables las cuales pueden ser de diferentes tipos sostenidas o mantenidas juntas en una sola unidad, a diferencia de los arreglos
Más detallesProgramación Orientada a Objetos. Sesión 4: Herencia
Programación Orientada a Objetos Sesión 4: Herencia Contextualización Cuando hablamos de informática, podemos contemplar varios elementos que se utilizan dentro de ésta misma, por ejemplo, la herencia
Más detallesParte I: Elementos del lenguaje Ada
Parte I: Elementos del lenguaje Ada 1. Introducción a los computadores y su programación 2. Elementos básicos del lenguaje 3. Modularidad y programación orientada a objetos 4. Estructuras de datos dinámicas
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 detallesClases y objetos en python (Programacion Orientada a Objetos)
Clases y objetos en python (Programacion Orientada a Objetos) pythondiario.com /2014/10/clases-y-objetos-en-python-programacion.html Python es un lenguaje de programación orientada a objetos (POO). La
Más detalles1. Preparar al estudiante para desarrollar aplicaciones de software utilizando un enfoque orientado a objetos.
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS NOMBRE DEL CURSO: Computación y Programación 2 CODIGO: 771 CREDITOS: 5 ESCUELA: Ciencias y Sistemas AREA A LA QUE PERTENECE:
Más detalles4. Operadores Operador asignación
Programación orientada a objetos con Java 43 4. Operadores Objetivos: a) Describir los operadores (aritméticos, incrementales, de relación, lógicos y de asignación) y los tipos de dato primitivos sobre
Más detalles