Orígenes de la programación orientada a objetos

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

Download "Orígenes de la programación orientada a objetos"

Transcripción

1 1 Orígenes de la programación orientada a objetos Conceptos clave Evolución del software Programación orientada a procedimientos Programación orientada a objetos Objetos Clases Abstracción de datos Encapsulación Herencia Polimorfismo Ligadura dinámica Pase de mensajes Lenguajes orientados a objetos Lenguajes basados en objetos 1.1 La crisis del software Los avances en la tecnología del software siguen siendo espectaculares. Se anuncian nuevas técnicas y herramientas en una vertiginosa sucesión. Esto ha obligado a los ingenieros y a la industria del software a buscar continuamente nuevos enfoques para el diseño y el desarrollo de software, los cuales se vuelven cada vez más críticos en aras de la creciente complejidad de los sistemas de software así como de la naturaleza altamente competitiva de la industria. Estos rápidos avances parece que han creado una situación de crisis dentro de la industria. Es necesario dar respuesta a las siguientes cuestiones para afrontar esta crisis: Cómo representar entidades de problemas de la vida real en el diseño de sistemas? Cómo diseñar sistemas con interfaces abiertos? Cómo garantizar la reusabilidad y la extensibilidad de los módulos? Cómo desarrollar módulos que sean tolerantes a los cambios futuros? 1

2 Programación orientada a objetos con C++ Cómo mejorar la productividad del software y disminuir el coste del software? Cómo mejorar la calidad del software? Cómo gestionar las planificaciones temporales? Cómo industrializar el proceso de desarrollo de software? Muchos productos software o bien están no terminados, o no se usan o son entregados con errores importantes. La Figura 1.1 muestra el destino de los proyectos software de defensa de Estados Unidos acometidos en los años setenta. Alrededor del 50% de los productos software nunca fueron finalizados, y una tercera parte de los que fueron entregados nunca se usaron. Es interesante anotar que sólo el 2% fueron usados tal como se entregaron sin ninguna modificación. Esto ilustra que la industria del software tiene un récord notablemente malo en productos entregados. Los cambios en los requisitos del usuario han sido siempre el problema principal. Otro estudio (Fig. 1.2) muestra que más del 50% de los sistemas necesitaron modificaciones debido a cambios en los requisitos de usuario y en los formatos de los datos. Esto sólo ilustra que, en un mundo cambiante con un entorno de negocios dinámico, las solicitudes de cambios son inevitables y por tanto los sistemas deben ser adaptables y tolerantes a los cambios. Estos estudios y otros informes sobre implementación de software sugieren que los productos software deberían ser evaluados cuidadosamente para su calidad antes de que sean entregados e implementados. Algunos de los problemas de calidad que deben ser considerados con una evaluación crítica son: 1. Correctitud. 2. Mantenibilidad. 3. Reusabilidad. 4. Apertura e interoperabilidad. 5. Portabilidad. Fig. 1.1 El estado de los proyectos de defensa de Estados Unidos (según datos de su gobierno)

3 Orígenes de la programación orientada a objetos Fig. 1.2 Descomposición de los costes de mantenimiento 6. Seguridad. 7. Integridad. 8. Amabilidad con el usuario. La selección y el uso de herramientas software adecuadas ayudaría a resolver algunos de estos problemas. 1.2 Evolución del software Ernest Tello, un escritor de prestigio en el campo de la inteligencia artificial, comparó la evolución de la tecnología del software con el crecimiento de un árbol. Al igual que un árbol, la evolución del software tiene distintas fases o capas de crecimiento. Estas capas se construyeron una sobre otra durante las cinco últimas décadas, como se muestra en la Figura 1.3, en la que cada capa representa una mejora sobre las anteriores. Sin embargo, la analogía falla si consideramos la vida de estas capas. En los sistemas software, cada una de las capas continúa siendo funcional, mientras que en el caso de los árboles, sólo la capa superior es funcional. Alan Kay, uno de los promotores del paradigma orientado a objetos y el principal diseñador de Smalltalk, dijo: Cuando la complejidad aumenta, la arquitectura domina el material básico. Para construir software complejo hoy en día no basta con juntar una secuencia de instrucciones de programación y varios conjuntos de procedimientos y módulos; necesitamos incorporar técnicas sólidas de construcción y estructuras del programa que sean fáciles de comprender, implementar y modificar. Desde la invención de la computadora, se han probado muchos enfoques de programación. Entre éstos se incluyen técnicas tales como programación modular, programación descendente, programación ascendente y programación estructurada. La principal motivación de cada una ha sido la preocupación para manipular la complejidad creciente de los programas

4 Programación orientada a objetos con C++ Fig. 1.3 Capas del software de computadoras para que éstos sean fiables y de fácil mantenimiento. Estas técnicas se hicieron populares entre los programadores durante las dos últimas décadas. Con la aparición de lenguajes tales como C, la programación estructurada se hizo muy popular y fue la técnica principal de los años ochenta. La programación estructurada era una herramienta potente que permitió a los programadores escribir programas moderadamente complejos con bastante facilidad. Sin embargo, cuando los programas aumentaron más su tamaño, incluso el enfoque estructurado fracasó en mostrar los resultados deseados en términos de programas libres de errores, fáciles de mantener y reutilizables. La programación orientada a objetos (POO) es un enfoque para la organización y el desarrollo de programas que intenta eliminar algunos de los escollos de los métodos de programación convencionales al incorporar lo mejor de las características de la programación estructurada con varios conceptos nuevos y potentes. Es una nueva forma de organizar y desarrollar programas y no tiene nada que ver con un lenguaje particular. Sin embargo, no todos los lenguajes son adecuados para implementar fácilmente los conceptos de la POO. 1.3 Introducción a la programación orientada a procedimientos A la programación convencional, usando lenguajes tales como COBOL, FORTRAN y C, se conoce comúnmente como programación orientada a procedimientos (POP). En el enfoque orientado a procedimientos, el problema se visualiza como una secuencia de cosas a realizar tales como leer, calcular e imprimir. Se escribe una serie de funciones para realizar estas tareas. Se presta atención principalmente a las funciones. En la Figura 1.4 se muestra una estructura de programa típica para la programación orientada a procedimientos. Se

5 Orígenes de la programación orientada a objetos Fig. 1.4 Estructura típica de los programas orientados a procedimientos ha usado la técnica de descomposición jerárquica para especificar las tareas que se tienen que completar para resolver un problema. La programación orientada a procedimientos básicamente consiste en escribir una lista de instrucciones (o acciones) para que las realice la computadora, y organizar estas instrucciones en grupos denominados funciones. Normalmente usamos un diagrama de flujo para organizar estas acciones y representar el flujo de control de una acción a otra. Mientras nos concentramos en el desarrollo de funciones, se presta muy poca atención a los datos que están siendo usados por varias funciones. Qué le ocurre a los datos? Cómo se ven afectados por las funciones que trabajan sobre ellos? En un programa que consta de varias funciones, muchos elementos importantes de datos son declarados como globales de manera que pueden ser accedidos por todas las funciones. Cada función puede tener sus propios datos locales. La Figura 1.5 muestra la relación entre los datos y las funciones en un programa orientado a procedimientos. Los datos globales son más vulnerables a un cambio inadvertido por parte de una función. En un programa grande es muy difícil identificar qué dato es usado por cada función. En el caso de que necesitemos revisar una estructura de datos externa, también necesitamos revisar todas las funciones que acceden a tales datos. Esto proporciona una oportunidad para que surjan los errores sin enterarnos. Otro inconveniente serio con el enfoque orientado a procedimientos es que no modela muy bien los problemas del mundo real. Esto es debido a que las funciones están orientadas a la acción y no se corresponden realmente con los elementos del problema. Algunas de las características de la programación orientada a procedimientos son: El énfasis se pone en hacer cosas (algoritmos). Los programas grandes se dividen en programas más pequeños denominados funciones. La mayoría de las funciones comparten datos globales.

6 Programación orientada a objetos con C++ Fig. 1.5 Relaciones entre datos y funciones en programación orientada a procedimientos Los datos se mueven públicamente en el sistema de función en función. Las funciones transforman datos de una forma a otra. Emplea el enfoque descendente en el diseño del programa. 1.4 Paradigma de programación orientada a objetos El principal factor que motivó la invención del enfoque orientado a objetos fue eliminar algunos de los defectos encontrados en el enfoque orientado a procedimientos. POO trata a los datos como un elemento crítico en el desarrollo del programa y no permite que fluyan libremente por el sistema. Une los datos con las funciones que operan sobre ellos, y los protege de modificaciones accidentales por parte de funciones externas. POO permite la descomposición de un problema en una serie de entidades llamadas objetos y luego construye los datos y las funciones alrededor de estos objetos. En la Figura 1.6 se muestra la organización de los datos y las funciones en los programas orientados a objetos. Sólo las funciones asociadas con el objeto pueden acceder a los datos de un objeto. Sin embargo, las funciones de un objeto pueden acceder a las funciones de otros objetos. Algunas de las características llamativas de la programación orientada a objetos son: El énfasis radica en los datos en lugar de en los procedimientos. Los programas se dividen en lo que se conoce como objetos. Las estructuras de datos se diseñan de manera que caracterizan a los objetos. Las funciones que operan sobre los datos de un objeto se juntan con la estructura de datos. Se ocultan los datos y éstos no pueden ser accedidos por funciones externas. Los objetos se pueden comunicar entre sí a través de las funciones. Se pueden añadir fácilmente nuevos datos y funciones cuando sea necesario. Sigue un enfoque ascendente en el diseño del programa.

7 Orígenes de la programación orientada a objetos Fig. 1.6 Organización de datos y funciones en POO La programación orientada a objetos es el concepto más emergente entre los paradigmas de programación y todavía tiene un significado diferente para distintas personas. Es por tanto importante disponer de una definición de trabajo de la programación orientada a objetos antes de continuar. Definimos la programación orientada a objetos como un enfoque que suministra una forma de modularizar programas por medio de la creación de áreas de memoria particionadas para tanto datos como funciones que pueden ser usadas como plantillas para crear bajo demanda copias de tales módulos. De esta manera, se considera que un objeto es un área particionada de la memoria de la computadora que almacena datos y un conjunto de operaciones que pueden acceder a tales datos. Puesto que las particiones de memoria son independientes, se pueden usar los objetos en varios programas diferentes sin sufrir modificaciones. 1.5 Conceptos básicos de la programación orientada a objetos Es necesario comprender algunos de los conceptos usados ampliamente en programación orientada a objetos. Estos incluyen los siguientes: Objetos. Clases. Abstracción de datos y encapsulación. Herencia. Polimorfismo. Ligadura dinámica. Pase de mensajes. En esta sección, discutiremos algunos de estos conceptos con algo de detalle.

8 Programación orientada a objetos con C++ Objetos Los objetos son las entidades básicas en tiempo de ejecución en un sistema orientado a objetos. Pueden representar a una persona, un lugar, una cuenta bancaria, una tabla de datos o cualquier elemento que el programa tenga que manipular. También pueden representar datos definidos por el usuario tales como vectores, el tiempo y listas. El problema de programación es analizado en términos de objetos y de la naturaleza de la comunicación entre los mismos. Se deberían elegir los objetos del programa de tal manera que representen lo más fielmente posible a los objetos del mundo real. Los objetos ocupan espacio en la memoria y tienen una dirección asociada como un registro en Pascal o una estructura en C. Cuando se ejecuta un programa, los objetos interactúan entre sí mediante el envío de mensajes. Por ejemplo, si cliente y cuenta son dos objetos de un programa, entonces el objeto cliente puede enviar un mensaje al objeto cuenta solicitando un balance bancario. Cada objeto contiene datos y código para manipularlos. Los objetos pueden interaccionar sin tener que conocer los detalles de los datos y del código de los demás. Es suficiente con conocer el tipo de mensaje aceptado y el tipo de respuesta devuelto por los objetos. Aunque diferentes autores los representan de manera distinta, la Figura 1.7 muestra dos notaciones que son popularmente usadas en análisis y diseño orientado a objetos. Clases Ya hemos mencionado que los objetos contienen datos y código para manipular dichos datos. El conjunto completo de datos y código de un objeto puede constituir un tipo de dato definido por el usuario con la ayuda de una clase. De hecho, los objetos son variables del tipo clase. Una vez que se ha definido una clase, podemos crear cualquier número de objetos pertenecientes a dicha clase. Cada objeto se asocia con los datos del tipo de la clase con la que está creado. Una clase es por tanto una colección de objetos del mismo tipo. Por ejemplo, mango, manzana y naranja son miembros de la clase fruta. Las clases son tipos de datos definidos por el usuario y se comportan como los tipos intrínsecos de un lenguaje de programación. La sintaxis usada para crear un objeto no es diferente de la sintaxis usada para crear un objeto entero en C. Fig. 1.7 Dos formas de representar un objeto

9 Orígenes de la programación orientada a objetos Si se ha definido fruta como una clase, entonces la instrucción fruta mango; creará un objeto mango perteneciente a la clase fruta. Abstracción de datos y encapsulación A la envoltura de datos y funciones en una sola unidad (llamada clase) se conoce como encapsulación. La encapsulación de datos es la característica más llamativa de una clase. Los datos no son accesibles al mundo exterior y solamente aquellas funciones que están envueltas en la clase pueden acceder a ellos. Estas funciones proporcionan la interfaz entre los datos del objeto y el programa. A este aislamiento de los datos del acceso directo por el programa se le denomina ocultación de los datos u ocultación de la información. La abstracción se refiere al acto de representar las características esenciales sin incluir los detalles de fondo o las explicaciones. Las clases usan el concepto de abstracción y se definen como una lista de atributos abstractos tales como tamaño, peso y coste, y funciones para operar sobre estos atributos. Ellas encapsulan todas las propiedades esenciales de los objetos que van a ser creados. A los atributos se les denomina algunas veces miembros dato ya que ellos almacenan la información. A las funciones que operan sobre estos datos se les denomina algunas veces métodos o funciones miembro. Debido a que las clases usan el concepto de abstracción de datos, también se les conoce como Tipos Abstractos de Datos (TAD). Herencia La herencia es el proceso por el que los objetos de una clase adquieren las propiedades de los objetos de otra clase. Ello implica el concepto de clasificación jerárquica. Por ejemplo, el pájaro petirrojo forma parte de la clase pájaro volador la cual forma parte de nuevo de la clase pájaro. El principio que subyace en este tipo de división es que cada clase derivada comparte características comunes con la clase de la cual se deriva como se ilustra en la Figura 1.8. En POO, el concepto de herencia suministra la idea de reusabilidad. Esto significa que podemos añadir características a una clase existente sin modificarla. Ello es posible al derivar una nueva clase a partir de otra existente. La nueva clase tendrá las características combinadas de ambas clases. El verdadero atractivo y potencia del mecanismo de herencia es que permite al programador reutilizar una clase que es casi, pero no exactamente, lo que quiere, y adaptar la clase de tal manera que no introduzca efectos laterales indeseables en el resto de las clases. Observe que cada sub-clase define solamente aquellas características que son exclusivas de la misma. Sin el uso de la clasificación, cada clase tendría que incluir explícitamente todas sus características. Polimorfismo El polimorfismo es otro concepto importante en POO. Polimorfismo, un vocablo griego, significa la posibilidad de tomar más de una forma. Una operación puede exhibir diferen-

10 10 Programación orientada a objetos con C++ Fig. 1.8 Propiedad de herencia tes comportamientos en diferentes situaciones. El comportamiento depende de los tipos de datos usados en la operación. Por ejemplo, consideremos la operación de adición. Para dos números, la operación generará su suma. Si los operandos son cadenas de caracteres, entonces la operación generará una tercera cadena por concatenación. Al proceso de hacer que un operador exhiba diferentes comportamientos en diferentes situaciones se le conoce como sobrecarga del operador. La Figura 1.9 ilustra cómo un solo nombre de función se puede usar para manipular un número diferente y tipos diferentes de argumentos. Esto es algo similar a que una palabra concreta tenga varios significados dependiendo del contexto. Al uso de un solo nombre de función para realizar diferentes tipos de tareas se le conoce como sobrecarga de la función. El polimorfismo juega un papel importante al permitir que los objetos tengan diferentes estructuras internas para compartir la misma interfaz externa. Esto significa que se puede acceder de la misma manera a una clase general de operaciones incluso aunque las acciones específicas asociadas con cada operación puedan diferir. El polimorfismo es ampliamente usado al implementar la herencia. Ligadura dinámica Por ligadura se entiende el enlace de una llamada a un procedimiento con el código a ejecutar en respuesta a la llamada. Ligadura dinámica (también conocida como última ligadura)

11 Orígenes de la programación orientada a objetos 11 Fig. 1.9 Polimorfismo significa que el código asociado con una llamada a un procedimiento dado no es conocido hasta el instante de la llamada en tiempo de ejecución. Está asociada con el polimorfismo y la herencia. Una llamada a una función asociada con una referencia polimórfica depende del tipo dinámico de dicha referencia. Consideremos el procedimiento dibujar de la Figura 1.9. Por herencia, cada objeto tendrá este procedimiento. Sin embargo, su algoritmo es único para cada objeto y por tanto el procedimiento dibujar estará redefinido en cada clase que define al objeto. En tiempo de ejecución, se llamará al código que iguale al objeto bajo la referencia actual. Pase de mensajes Un programa orientado a objetos consta de un conjunto de objetos que se comunican entre sí. El proceso de programar en un lenguaje orientado a objetos, por tanto, involucra los siguientes pasos básicos: 1. Creación de las clases que definen los objetos y su comportamiento, 2. Creación de los objetos a partir de las definiciones de clase, y 3. Establecimiento de la comunicación entre objetos. Los objetos se comunican entre sí enviando y recibiendo información de la misma manera que las personas se pasan mensajes entre ellas. El concepto de pase de mensajes lo hace más fácil que hablar sobre la construcción de sistemas que directamente modelan o simulan a sus réplicas del mundo real. Un mensaje para un objeto es una solicitud para la ejecución de un procedimiento, y por tanto invocará a una función (procedimiento) en el objeto receptor que genere el resultado deseado. El pase de mensajes implica la especificación del nombre del objeto, el nombre de la función (mensaje) y la información a enviar.

12 1 Programación orientada a objetos con C++ Ejemplo: Los objetos tienen un ciclo de vida. Ellos pueden ser creados y destruidos. La comunicación con un objeto es factible sólo a lo largo de su vida. 1.6 Ventajas de la POO POO ofrece varias ventajas tanto para el diseñador del programa como para el usuario. La orientación a objetos contribuye a la solución de muchos problemas asociados con el desarrollo y la calidad de los productos software. La nueva tecnología promete mayor productividad del programador, mejor calidad del software y menor coste de mantenimiento. Las principales ventajas son: Por medio de la herencia, podemos eliminar código redundante y extender el uso de clases existentes. Podemos construir programas a partir de módulos de trabajo estándar que se comunican entre sí, en lugar de tener que empezar desde cero la escritura del código. Esto conduce a un ahorro en el tiempo de desarrollo y a una productividad mayor. El principio de ocultación de los datos ayuda al programador a construir programas seguros que no pueden ser invadidos por código de otras partes del programa. Es posible tener múltiples copias de un objeto que coexisten sin ninguna interferencia. Es posible transformar objetos del dominio del problema a otros en los programas. Es fácil dividir el trabajo de un proyecto basado en objetos. El enfoque del diseño centrado en los datos nos permite capturar más detalles de un modelo de forma que se puedan implementar. Se pueden mejorar y actualizar fácilmente los sistemas orientados a objetos desde los pequeños hasta los grandes sistemas. Las técnicas de pase de mensajes para la comunicación entre objetos simplifican mucho las descripciones de las interfaces con sistemas externos. Se puede gestionar fácilmente la complejidad del software. Mientras sea posible incorporar todas estas características en un sistema orientado a objetos, su importancia depende del tipo de proyecto y la preferencia del programador. Hay una serie de cuestiones que necesitan ser abordadas para recoger los beneficios establecidos anteriormente. Por ejemplo, las bibliotecas de objetos deben de estar disponibles para su reutilización. La tecnología está aún en desarrollo y los productos actuales pueden ser

13 Orígenes de la programación orientada a objetos 1 rápidamente sustituidos. Es necesario desarrollar controles y protocolos estrictos si no se quiere comprometer la reutilización. Desarrollar un software que sea fácil de usar lo hace difícil de construir. Se espera que las herramientas de la programación orientada a objetos ayudarán a gestionar este problema. 1.7 Lenguajes orientados a objetos La programación orientada a objetos no es lo que hace falta en un lenguaje particular. Lo mismo que la programación estructurada, los conceptos de POO se pueden implementar usando lenguajes tales como C y Pascal, Sin embargo, la programación se hace pesada y puede generar confusión cuando los programas crecen de tamaño. Un lenguaje que esté especialmente diseñado para soportar los conceptos de POO se vuelve más adecuado para implementarlos. Los lenguajes deberían soportar varios de los conceptos de POO para proclamar que están orientados a objetos. Dependiendo de las características que soportan, se pueden clasificar en las dos categorías siguientes: 1. Lenguajes de programación basados en objetos. 2. Lenguajes de programación orientados a objetos. La programación basada en objetos es el estilo de programación que soporta principalmente encapsulación e identidad de objetos. Las características principales que se requieren para la programación basada en objetos son: Encapsulación de datos. Ocultación de datos y mecanismos de acceso. Inicialización automática y aclarado de objetos. Sobrecarga de operadores. Se dice que los lenguajes que soportan programación con objetos son lenguajes de programación basados en objetos. No soportan la herencia ni la ligadura dinámica. Ada es un típico lenguaje de programación basado en objetos. La programación orientada a objetos incorpora todas las características de la programación basada en objetos junto con dos características adicionales, a saber, herencia y ligadura dinámica. La programación orientada a objetos puede por tanto estar caracterizada por la siguiente sentencia: Características basadas en objetos + herencia + ligadura dinámica Entre los lenguajes que soportan estas características se incluyen C++, Smalltalk, Object Pascal y Java. Hay un gran número de lenguajes de programación basados en objetos y orientados a objetos. La Tabla 1.1 lista algunos lenguajes POO populares de propósito general y sus características. Como se aprecia en la Tabla 1.1, todos los lenguajes proporcionan polimorfismo y ocultación de datos. Sin embargo, muchos de ellos no proporcionan facilidades para concurrencia, persistencia y genericidad. Eiffel, Ada y C++ proporcionan facilidad genérica, la cual es una construcción importante para soportar reutilización. Sin embargo, persistencia (un

14 1 Programación orientada a objetos con C++ Tabla 1.1 Características de algunos lenguajes POO Características Simula Smalltalk Objective C++ Ada Object Turbo Eiffel Java * * C ** Pascal Pascal * * Ligadura Ambas Última Ambas Ambas Primera Última Primera Primera Ambas (primera o última) Polimorfismo Ocultación de datos Concurrencia Pobre Pobre Pobre Difícil No No Prometida Herencia No Herencia No No No múltiple Recogida No de residuos Como Algo de Persistencia No Prometida No No L3G No No soporte Genericidad No No No No No No Bibliotecas de objetos No mucho * Auténticos lenguajes orientados a objetos ** Lenguajes basados en objetos Otros son extensiones de lenguajes convencionales proceso de almacenamiento de objetos) no está totalmente soportada por ninguno de ellos. En Smalltalk, aunque se puede grabar en disco todo el estado actual de ejecución, aún los objetos individuales no se pueden almacenar en un archivo externo. Comercialmente, C++ tiene solo 10 años de antigüedad, Smalltalk y Objetive C 13 años y Java sólo 5 años. Aunque Simula ha existido durante más de dos décadas, ha pasado la mayor parte de su vida en un entorno de investigación. Sin embargo, el campo es tan reciente que no debería ser juzgado tan severamente. El uso de un lenguaje concreto depende de las características y requisitos de una aplicación, del impacto de la elección en la organización y de la reutilización de los programas existentes. C++ se ha convertido en la actualidad en el lenguaje POO de propósito general más elegido, más práctico y más ampliamente usado en la industria. 1.8 Aplicaciones de la POO La POO se ha convertido en la actualidad en una de las palabras pegadizas de la programación. Aparece una gran cantidad de excitación e interés entre los ingenieros de software en usar POO. Las aplicaciones de la POO están empezando a ganar importancia en muchas áreas. La aplicación más popular de la programación orientada a objetos, hasta ahora, ha sido en el área del diseño de interfaces de usuario tales como Windows. Se han desarrollado cientos de sistemas de ventanas usando las técnicas de POO.

15 Orígenes de la programación orientada a objetos 1 Los sistemas reales de las empresas son a menudo mucho más complejos y contienen más objetos con atributos y métodos complicados. POO es útil en estos tipos de aplicaciones ya que puede simplificar un problema complejo. Entre las áreas que auguran en el futuro la aplicación de la POO se incluyen: Sistemas de tiempo real. Simulación y modelado. Bases de datos orientadas a objetos. Hipertexto, hipermedia y expertexto. IA y sistemas expertos. Redes neuronales y programación paralela. Soporte de decisión y sistemas de automatización de oficinas. Sistemas CIM/CAM/CAD. La riqueza del entorno POO ha permitido a la industria del software mejorar no sólo la calidad de los sistemas software sino también su productividad. La tecnología orientada a objetos está desde luego cambiando la forma de pensar, analizar, diseñar e implementar de los ingenieros del software. RESUMEN La tecnología del software ha evolucionado a lo largo de una serie de fases durante las cinco últimas décadas. La fase más popular hasta hace poco fue la programación orientada a procedimientos (POP). POP emplea el enfoque de programación descendente donde un problema se visualiza como una secuencia de tareas a realizar. Se escribe una serie de funciones para implementar dichas tareas. POP tiene dos inconvenientes principales, (1) los datos se mueven libremente en el programa y son por tanto vulnerables a cambios causados por cualquier función del programa, y (2) no modela muy bien los problemas del mundo real. La programación orientada a objetos (POO) fue inventada para superar los inconvenientes de la POP. Emplea el enfoque de programación ascendente. Trata a los datos como un elemento crítico en el desarrollo del programa y no permite que fluyan libremente por el sistema. Une los datos con las funciones que operan sobre ellos en una estructura de datos llamada clase. A esta característica se le denomina encapsulación de datos. En POO, un problema es considerado como una colección de entidades llamadas objetos. Los objetos son instancias de las clases. Al aislamiento de los datos del acceso directo por el programa se denomina ocultación de los datos. La abstracción de datos se refiere a juntar características esenciales sin incluir detalles de fondo.

16 1 Programación orientada a objetos con C++ La herencia es el proceso por el cual los objetos de una clase adquieren propiedades de objetos de otra clase. Polimorfismo significa un nombre, múltiples formas. Nos permite tener más de una función con el mismo nombre en un programa. También permite la sobrecarga de operadores de manera que una operación pueda exhibir diferentes comportamientos en diferentes situaciones. Ligadura dinámica significa que el código asociado con un procedimiento dado no se conoce hasta el instante de la llamada en tiempo de ejecución. El pase de mensajes implica especificar el nombre del objeto, el nombre de la función (mensaje) y la información a enviar. La tecnología orientada a objetos ofrece varias ventajas sobre los métodos de programación convencionales, la más importante es la reusabilidad. Las aplicaciones de la tecnología POO han adquirido importancia en casi todas las áreas de computación incluyendo los sistemas de negocios en tiempo real. Hay una serie de lenguajes que soportan el paradigma de la programación orientada a objetos. Son populares entre ellos C++, Smalltalk y Java. C++ se ha convertido en la actualidad en un lenguaje estándar de la industria. abstracción de datos Ada bibliotecas de objetos C++ clases clasificación jerárquica concurrencia datos globales datos locales diagramas de flujo Eiffel encapsulación de datos funciones funciones miembro herencia herencia múltiple Java lenguaje ensamblador lenguaje máquina lenguajes orientados a objetos ligadura dinámica ligadura primera ligadura última métodos Términos clave miembros dato Object Pascal Objective C objetos ocultación de datos pase de mensajes persistencia polimorfismo programación ascendente programación basada en objetos programación descendente programación estructurada programación modular programación orientada a objetos programación orientada a procedimientos recogida de residuos reusabilidad Simula Smalltalk sobrecarga de función sobrecarga de operador Turbo Pascal

17 Orígenes de la programación orientada a objetos 1 Preguntas de repaso 1.1 Cuáles piensa que son los principales retos a los que se enfrenta la industria del software en la actualidad? 1.2 Discuta brevemente la evolución del software durante el periodo Qué es la programación orientada a procedimientos? Cuáles son sus principales características? 1.4 Discuta un enfoque para el desarrollo de programas orientados a procedimientos. 1.5 Describa cómo comparten datos las funciones en un programa orientado a procedimientos. 1.6 Qué es la programación orientada a objetos? En qué difiere de la programación orientada a procedimientos? 1.7 Cómo se organizan las funciones y los datos en un programa orientado a objetos? 1.8 Cuáles son las ventajas exclusivas de un paradigma de programación orientada a objetos? 1.9 Distinga entre los siguientes términos: (b) Objetos y clases. (c) Abstracción de datos y encapsulación de datos. (d) Herencia y polimorfismo. (e) Ligadura dinámica y pase de mensajes Qué clases de cosas se pueden convertir en objetos en POO? 1.11 Describa la herencia cuando se aplica a la POO Qué entiende por ligadura dinámica? Qué utilidad tiene en POO? 1.13 En que difiere el enfoque orientado a objetos del enfoque basado en objetos? 1.14 Liste algunas áreas de aplicación de la tecnología POO Determine si las siguientes sentencias son VERDADERO o FALSO. (a) En programación orientada a procedimientos, todos los datos son compartidos por todas las funciones. (b) En programación orientada a procedimientos, se pone especial énfasis en los algoritmos en lugar de en los datos. (c) Una de las características destacables de la programación orientada a objetos es la división de los programas en objetos que representan entidades del mundo real. (d) La envoltura de datos de diferentes tipos en una sola unidad se conoce como encapsulación. (e) Un problema de la programación orientada a objetos es que una vez que se crea una clase, ésta nunca se puede modificar. (f) La herencia significa la posibilidad de reutilizar los valores de los datos de un objeto. (g) El polimorfismo se utiliza ampliamente al implementar la herencia. (h) Los programas orientados a objetos se ejecutan mucho más rápido que los programas convencionales. (i) Los sistemas orientados a objetos se pueden escalar mejor desde los pequeños hasta los grandes. (j) El enfoque orientado a objetos no se puede usar para crear bases de datos.

Introducción a la programación orientada a objetos

Introducción a la programación orientada a objetos Introducción a la programación orientada a objetos Cristina Cachero Castro Pedro J. Ponce de León Amador Estela Saquete Boró Departamento de lenguajes y sistemas informáticos Universidad de Alicante Índice

Más detalles

Algoritmos y Diagramas de flujo

Algoritmos y Diagramas de flujo Algoritmos y Diagramas de flujo En los pasos a seguir para el desarrollo de un problema, existen básicamente dos tipos de elementos con los cuales es posible especificar un problema en forma esquemática

Más detalles

Lenguajes de Cuarta Generación (4GL)

Lenguajes de Cuarta Generación (4GL) Lenguajes de Cuarta Generación (4GL) Herramientas de Diseño Prof. Víctor Valenzuela R. Contenido Introducción Breve Reseña Histórica Lenguaje de Cuarta Generación Áreas Funcionales Tipos de 4GL Componentes

Más detalles

Definimos un Sistema Gestor de Bases de Datos o SGBD, también llamado DBMS (Data Base Management System) como una colección de datos relacionados entr

Definimos un Sistema Gestor de Bases de Datos o SGBD, también llamado DBMS (Data Base Management System) como una colección de datos relacionados entr Introducción Arquitectura de los DBMS Lenguajes de los DBMS Diccionario de datos Seguridad e integridad de los datos Administrador del DBMS Arquitectura Cliente-Servidor Definimos un Sistema Gestor de

Más detalles

MICROSOFT ACCESS 2007

MICROSOFT ACCESS 2007 MICROSOFT ACCESS 2007 1. AVANZADO Nº Horas: 24 Objetivos: Descripción del funcionamiento del programa de gestión de bases de datos Microsoft Access 2007, estudiando los conceptos fundamentales de las bases

Más detalles

Microsoft Access 2003 (Completo)

Microsoft Access 2003 (Completo) Página 1 Horas de teoría: 27 Horas de práctica: 25 Precio del Curso: 167 Descripción del funcionamiento del programa de gestión de bases de datos Microsoft Access 2003, estudiando los conceptos fundamentales

Más detalles

4.1 Dispositivos y manejadores de dispositivos: device drivers

4.1 Dispositivos y manejadores de dispositivos: device drivers Unidad IV: Administración de entrada/salida 4.1 Dispositivos y manejadores de dispositivos: device drivers Se pueden clasificar en dos grandes categorías: 1. Dispositivos de bloque 2. Dispositivos de carácter

Más detalles

Introducción a los Sistemas Gestores de Bases de Datos

Introducción a los Sistemas Gestores de Bases de Datos Introducción a los Sistemas Gestores de Bases de Datos Gestión de Bases de Datos, módulo del ciclo de FP de Grado Superior, Administración de Sistemas Informáticos en Red [1] Datos y Archivos Gestión de

Más detalles

CLAVE ASIGNATURA REQUISITOS HORA/SEMANA CREDITOS TI-8 PROGRAMACION II 80% DE ASISTENCIA 4 6

CLAVE ASIGNATURA REQUISITOS HORA/SEMANA CREDITOS TI-8 PROGRAMACION II 80% DE ASISTENCIA 4 6 PRESENTACIÓN: La programación orientada a objetos es una evolución de la programación procedural basada en funciones. La POO permite agrupar secciones de código con funcionalidades comunes, pretende agrupar

Más detalles

BASE DE DATOS. Qué es una base de datos?

BASE DE DATOS. Qué es una base de datos? 1 BASE DE DATOS Qué es una base de datos? Una base de datos es una herramienta para recopilar y organizar información. En las bases de datos, se puede almacenar información sobre personas, productos, pedidos,

Más detalles

Programación Orientada a Objetos. Sesión 4: Herencia

Programació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 detalles

Una Clase: define un grupo de objetos que tienen propiedades similares y se comportan de manera similar.

Una Clase: define un grupo de objetos que tienen propiedades similares y se comportan de manera similar. Clases La programación orientada a objetos utiliza clases para encapsular (envolver, esconder) datos (atributos) y métodos (comportamientos). Por ejemplo, el estéreo de un auto encapsula todos los atributos

Más detalles

TEMA 5: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE. Definición de Ingeniería del Software

TEMA 5: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE. Definición de Ingeniería del Software TEMA 5: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE Definición de Estudio de los principios y metodologías para el desarrollo y mantenimiento de sistemas software [Zelkovitz, 1978]. Aplicación práctica del

Más detalles

METODOLOGÍA DE DISEÑO DE SISTEMAS

METODOLOGÍA DE DISEÑO DE SISTEMAS METODOLOGÍA DE DISEÑO DE SISTEMAS METODOLOGÍA DE HALL I. INTRODUCCIÓN Uno de los campos en donde con mas intensidad se ha sentido la necesidad de utilizar conceptos y metodologías de Ingeniería de Sistemas

Más detalles

descripción del argumento identificador tipo longitud condición restricción

descripción del argumento identificador tipo longitud condición restricción Recuerde que estos son apuntes muy simplificados que deberá completar con la bibliografía PROGRAMACIÓN 0 Prof. Dolores Cuiñas H. recomendada APUNTES Nº. METODOLOGÍA PARA LA CONSTRUCCIÓN DE PROGRAMAS. Presentaremos

Más detalles

Modulo 11. Clases y Objetos en Java

Modulo 11. Clases y Objetos en Java El siguiente texto es una traducción no oficial del documento publicado por el grupo JEDI, Introduction to Programming 1, no pretende en ningún momento reemplazar los contenidos generados por este grupo.

Más detalles

Cristian Blanco www.cristianblanco.es

Cristian Blanco www.cristianblanco.es UNIDAD DIDÁCTICA 7. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS. DIAGRAMA DE CLASES 7.1 Introducción La construcción de software es un proceso cuyo objetivo es dar solución a problemas utilizando una herramienta

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. Sistema complejo se estudia

Más detalles

REGLAS DE CODD DEL MODELO RELACIONAL

REGLAS DE CODD DEL MODELO RELACIONAL REGLAS DE CODD - 1 - REGLAS DE CODD DEL MODELO RELACIONAL En la década de los 80 s comenzaron a aparecer numerosos Sistemas de Gestión de Bases de Datos que se anunciaban como relacionales. Sin embargo

Más detalles

TEMA I PROGRAMACIÓN ORIENTADA A OBJETOS PROGRAMACIÓN N ORIENTADA A OBJETOS OBJETOS (I) OBJETOS (II)

TEMA I PROGRAMACIÓN ORIENTADA A OBJETOS PROGRAMACIÓN N ORIENTADA A OBJETOS OBJETOS (I) OBJETOS (II) PROGRAMACIÓN N ORIENTADA A OBJETOS TEMA I PROGRAMACIÓN ORIENTADA A OBJETOS Programación OO Se basa en la creación de objetos, con sus propiedades y métodos Ventajas Código optimizado Buena reutilización

Más detalles

Conceptos básicos de bases de datos

Conceptos básicos de bases de datos Conceptos básicos de bases de datos En este artículo se realiza una breve introducción a las bases de datos: qué son, por qué podría querer usar una y cuáles son las funciones de las distintas partes de

Más detalles

Sistemas Operativos. Clase 2: Administración de procesos.

Sistemas Operativos. Clase 2: Administración de procesos. Sistemas Operativos Clase 2: Administración de procesos. Administración de procesos Un concepto muy importante en el ambiente de diseño de todo sistema operativo, es el de proceso o tarea. De manera general,

Más detalles

Introducción a la Geometría Computacional

Introducción a la Geometría Computacional Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 8 de enero del 2013 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Introducción a la GC 8 de enero del 2013 1 / 17 1 Introducción a la Geometría Computacional

Más detalles

Clasificación de los planes:

Clasificación de los planes: Tipos de Planes Plan Es el producto de la planeación, el evento intermedio entre el proceso de planeación y el proceso de implementación del mismo. El propósito de los planes se encuentra en: La previsión,

Más detalles

HERENCIA Y TIPOS. Articulo. Video Audio Altavoces. Amplificador

HERENCIA 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 detalles

PROGRAMACIÓN ALGORITMOS y DIAGRAMAS

PROGRAMACIÓN ALGORITMOS y DIAGRAMAS PROGRAMACIÓN ALGORITMOS y DIAGRAMAS ALGORITMO DEFINICIÓN: CONSISTE EN LA DESCRIPCIÓN CLARA Y DETALLADA DEL PROCEDIMIENTO A SEGUIR PARA ALCANZAR LA SOLUCIÓN A UN PROBLEMA ESTABLECIENDOSE UNA SECUENCIA DE

Más detalles

LÓGICA DE PROGRAMACIÓN

LÓGICA DE PROGRAMACIÓN LÓGICA DE PROGRAMACIÓN Lógica de la Programación Lenguajes de Programación Ing CIP. Mike Joseph Palacios Juárez Clasificación del Software Sistemas Operativos 1. Multitarea 2. Multiusuario 3. Multiproceso

Más detalles

SISTEMAS OPERATIVOS SISTEMA DE ARCHIVOS

SISTEMAS OPERATIVOS SISTEMA DE ARCHIVOS UNIVERSIDAD INTERNACIONAL SAN ISIDRO LABARDOR Escuela de Ingeniería en Sistemas SISTEMAS OPERATIVOS SISTEMA DE ARCHIVOS Cuatrimestre II-2006 Recopilado por Ing. Fernely Artavia Fallas Visión del usuario

Más detalles

METODOLOGÍA COMMONKADS.

METODOLOGÍA COMMONKADS. METODOLOGÍA COMMONKADS. Figura A.1. Metodología CommonKads La metodología CommonKads se utiliza como un estándar por los responsables de la gestión del conocimiento e ingenieros del conocimiento para el

Más detalles

Presentación: Jessica Rivero Espinosa (100025022) Inteligencia en Redes de Comunicaciones. Ingeniería de Telecomunicación.

Presentación: Jessica Rivero Espinosa (100025022) Inteligencia en Redes de Comunicaciones. Ingeniería de Telecomunicación. Presentación: Historia de la programación Jessica Rivero Espinosa (100025022) Ingeniería de Telecomunicación 5º Curso La computadora fue inventada para facilitar el trabajo intelectual. Si el hombre tiene

Más detalles

Manejo de Entrada-Salida. Arquitectura de Computadoras

Manejo de Entrada-Salida. Arquitectura de Computadoras Manejo de Entrada-Salida Arquitectura de Computadoras Agenda 1.2.3.1Módulos de entrada/salida. 1.2.3.2Entrada/salida programada. 1.2.3.3Entrada/salida mediante interrupciones. 1.2.3.4Acceso directo a memoria.

Más detalles

CAPÍTULO 1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS

CAPÍTULO 1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS CONTENIDO PRÓLOGO XIX CAPÍTULO 1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS 1.1 Introducción 2 1.2 Resolución de problemas mediante la computadora 3 1.3 Conceptos de programación orientada a objetos

Más detalles

Unidad II: Metodologías de Desarrollo. 2.1 Metodologías clásicas 2.1.1 Cascada

Unidad II: Metodologías de Desarrollo. 2.1 Metodologías clásicas 2.1.1 Cascada Unidad II: Metodologías de Desarrollo 2.1 Metodologías clásicas 2.1.1 Cascada El modelo de cascada original se desarrolló entre las décadas de los años 60 y 706 y se define como una secuencia de actividades,

Más detalles

8 horas semanales 32 horas semestral. Suficientable

8 horas semanales 32 horas semestral. Suficientable IDENTIFICACIÓN NOMBRE ESCUELA NOMBRE DEPARTAMENTO ESCUELA DE INGENIERIA Informática Y Sistemas ÁREA DE CONOCIMIENTO NOMBRE ASIGNATURA EN ESPAÑOL NOMBRE ASIGNATURA EN INGLÉS CÓDIGO INGENIERIA DE SISTEMAS,

Más detalles

Modelo Cliente / Servidor. Gerardo Grinman 5D

Modelo Cliente / Servidor. Gerardo Grinman 5D Modelo Cliente / Servidor Gerardo Grinman 5D Introducción En el mundo de TCP/IP las comunicaciones entre computadoras se rigen básicamente por lo que se llama modelo Cliente-Servidor. Éste es un modelo

Más detalles

Las competencias que requieren los proveedores de servicios de enseñanza y formación de los Servicios Meteorológicos e Hidrológicos Nacionales

Las competencias que requieren los proveedores de servicios de enseñanza y formación de los Servicios Meteorológicos e Hidrológicos Nacionales Las competencias que requieren los proveedores de servicios de enseñanza y formación de los Servicios Meteorológicos e Hidrológicos Nacionales Los Servicios Meteorológicos e Hidrológicos Nacionales (SMHN),

Más detalles

TRABAJO DE APLICACIÓN

TRABAJO DE APLICACIÓN UNIVERSIDAD MARIANO GALVEZ DE GUATEMALA FACULTAD DE CIENCIAS ECONOMICAS DIRECCIÓN GENERAL DE CENTRO UNIVERSITARIOS SANTA CRUZ DEL QUICHE CURSO TEORIA ADMINISTRATIVA M. A. Licda. Claudia Isolina Ordoñez

Más detalles

La sintaxis básica para definir una clase es la que a continuación se muestra:

La sintaxis básica para definir una clase es la que a continuación se muestra: DEFINICIÓN DE CLASES Y OBJETOS EN C# Sintaxis de definición de clases La sintaxis básica para definir una clase es la que a continuación se muestra: class nombreclase miembros De este modo se definiría

Más detalles

Introducción a Extreme Programming

Introducción a Extreme Programming Introducción a Extreme Programming Ingeniería del Software II Gerardo Fernández Escribano 9-12-2002 Índice 1. Qué es extreme Programming (XP)? 2. Introducción a la metodología XP 3. Fases de la metodología

Más detalles

Soporte a la toma de decisiones

Soporte a la toma de decisiones INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE CÓMPUTO Soporte a la toma de decisiones M. En C. Eduardo Bustos Farías as 1 1.4.1. CONCEPTOS OS DE SISTEMAS DE APOYO A LAS DECISIONES (SAD) ES (SAD) Podemos

Más detalles

Overview GeneXus Qué es y para qué sirve GeneXus? Principales características y beneficios.

Overview GeneXus Qué es y para qué sirve GeneXus? Principales características y beneficios. Overview GeneXus Qué es y para qué sirve GeneXus? Principales características y beneficios. Qué es GeneXus?, GeneXus es la herramienta líder para crear, desarrollar y mantener en forma automática aplicaciones

Más detalles

Uso de centinelas para la toma de decisiones. Esquemas y diagramas de flujo. Ejemplos resueltos. (CU00167A)

Uso de centinelas para la toma de decisiones. Esquemas y diagramas de flujo. Ejemplos resueltos. (CU00167A) aprenderaprogramar.com Uso de centinelas para la toma de decisiones. Esquemas y diagramas de flujo. Ejemplos resueltos. (CU00167A) Sección: Cursos Categoría: Curso Bases de la programación Nivel I Fecha

Más detalles

PROGRAMACION ORIENTADA A OBJETOS EN C++

PROGRAMACION 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 detalles

1.2. Es Java un lenguaje ideal para aprender a programar? 1.4. Cuáles son las versiones y distribuciones Java y cuál usar?

1.2. Es Java un lenguaje ideal para aprender a programar? 1.4. Cuáles son las versiones y distribuciones Java y cuál usar? 1 1. Introducción 1.1. Qué es Java? 1.2. Es Java un lenguaje ideal para aprender a programar? 1.3. Es Java software libre? 1.4. Cuáles son las versiones y distribuciones Java y cuál usar? 1.5. Qué sistema

Más detalles

DISEÑO LOGICO CON DISPOSITIVOS LOGICOS PROGRAMABLES (PLD S) ING. LUIS F. LAPHAM CARDENAS PROFESOR INVESTIGADOR DIVISION DE ELECTRONICA C.E.T.I.

DISEÑO LOGICO CON DISPOSITIVOS LOGICOS PROGRAMABLES (PLD S) ING. LUIS F. LAPHAM CARDENAS PROFESOR INVESTIGADOR DIVISION DE ELECTRONICA C.E.T.I. DISEÑO LOGICO CON DISPOSITIVOS LOGICOS PROGRAMABLES (PLD S) ING. LUIS F. LAPHAM CARDENAS PROFESOR INVESTIGADOR DIVISION DE ELECTRONICA C.E.T.I. RESUMEN En este artículo intentamos mostrar el cambio dramático

Más detalles

Análisis y Diseño de Sistemas Departamento de Sistemas - Facultad de Ingeniería

Análisis y Diseño de Sistemas Departamento de Sistemas - Facultad de Ingeniería Objetivos: DESARROLLO DE SOFTWARE - ESTUDIO DE FACTIBILIDAD 1. Determinar la factibilidad técnica, económica, operativa y jurídica (y de ser necesarias otras) del proyecto. 2. Lograr el conocimiento general

Más detalles

Sesión No. 12. Contextualización INFORMÁTICA 1. Nombre: Editor de Publicaciones (Microsoft Publisher)

Sesión No. 12. Contextualización INFORMÁTICA 1. Nombre: Editor de Publicaciones (Microsoft Publisher) INFORMÁTICA INFORMÁTICA 1 Sesión No. 12 Nombre: Editor de Publicaciones (Microsoft Publisher) Contextualización Microsoft Publisher es un editor de publicaciones y forma parte de la suite de Microsoft

Más detalles

Introducción al desarrollo de Software

Introducción al desarrollo de Software 7 al 18 de Marzo@ Df UBA CABA, Argentina Introducción al desarrollo de Software Cecilia Jarne [email protected] 2 Ideas básicas para empezar 1)Herramientas y procesos de organización, desarrollo

Más detalles

Su empresa Está preparada para un ERP?

Su empresa Está preparada para un ERP? Su empresa Está preparada para un ERP? Aunque es indiscutible la importancia que para una empresa tiene el alineamiento entre ventas y operaciones, no hay una definición tan tajante sobre cuál es el momento

Más detalles

Explican las características de el modelo entidad relación. Utilizar la simbología del modelo entidad relación. Resolver problemas utilizando el

Explican las características de el modelo entidad relación. Utilizar la simbología del modelo entidad relación. Resolver problemas utilizando el Explican las características de el modelo entidad relación. Utilizar la simbología del modelo entidad relación. Resolver problemas utilizando el modelo entidad relación. Realizar el modelo entidad relación

Más detalles

Ayuda. Mensajes del sistema. Iniciar/Cerrar sesión. Iconos del panel de control

Ayuda. Mensajes del sistema. Iniciar/Cerrar sesión. Iconos del panel de control Ayuda Para obtener información y asistencia, compruebe lo siguiente: Guía del usuario para obtener información sobre el uso del sistema Xerox 4595. Para obtener asistencia en línea, vaya a: www.xerox.com

Más detalles

PLANEACIÓN ESTRATÉGICA

PLANEACIÓN ESTRATÉGICA PLANEACIÓN ESTRATÉGICA CÓDIGO: EST1-P-004 PROCEDIMIENTO VERSIÓN: 1 PLANEACIÓN DE LA GESTIÓN Y CONTROL POR PROCESOS FECHA DE VIGENCIA 09/May/2014 1. OBJETIVO Determinar los lineamientos metodológicos para

Más detalles

Capítulo 4 Memoria virtual

Capítulo 4 Memoria virtual Capítulo 4 Memoria virtual Cómo la memoria virtual se mapea a la memoria física. La memoria virtual es una técnica de gestión de la memoria que permite que el sistema operativo disponga, tanto para el

Más detalles

Capítulo 3. Diseño de un Ambiente para Apoyar la Investigación Usando. Documentos Digitales

Capítulo 3. Diseño de un Ambiente para Apoyar la Investigación Usando. Documentos Digitales Capítulo 3 Diseño de un Ambiente para Apoyar la Investigación Usando Documentos Digitales En el capítulo 2 mostramos diversos ambientes de trabajo que permiten realizar anotaciones a documentos digitales.

Más detalles

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA SUR INGENIERÍA EN TECNOLOGÍA COMPUTACIONAL. ASIGNATURA Programación I. Básica ETAPA DE FORMACIÓN.

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA SUR INGENIERÍA EN TECNOLOGÍA COMPUTACIONAL. ASIGNATURA Programación I. Básica ETAPA DE FORMACIÓN. ASIGNATURA Programación I ÁREA DE CONOCIMIENTO ETAPA DE FORMACIÓN UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA SUR Básica Profesional CLAVE ICC203 SEMESTRE II CRÉDITOS 8 HORAS TEORÍA 4 HORAS PRÁCTICA 0 CARÁCTER

Más detalles

Manejo de Entrada-Salida. Arquitectura de Computadoras

Manejo de Entrada-Salida. Arquitectura de Computadoras Manejo de Entrada-Salida Arquitectura de Computadoras Agenda 1.2.3.1Módulos de entrada/salida. 1.2.3.2Entrada/salida programada. 1.2.3.3Entrada/salida mediante interrupciones. 1.2.3.4Acceso directo a memoria.

Más detalles

Representación del conocimiento

Representación del conocimiento Introducción Representación del conocimiento Todo problema es más sencillo de resolver si disponemos de conocimiento específico sobre él Este conocimiento dependiente del dominio se combina con el conocimiento

Más detalles

Sus socios en ISO 9000. Manual de Calidad

Sus socios en ISO 9000. Manual de Calidad Sus socios en ISO 9000 Manual de Calidad ESTRUCTURA DE DOCUMENTACION GERENCIA NIVEL 1: Manual de Calidad - Políticas (Política de la compañía, autorización y alcance del sistema ) NIVEL 2: Procedimientos

Más detalles

Módulo 2: Cómo funcionan las computadoras

Módulo 2: Cómo funcionan las computadoras Módulo 2: Cómo funcionan las computadoras Descripción general Este módulo trata cómo funcionan las computadoras. Comienza con una descripción general del sistema. El alumno aprenderá el proceso de inicio.

Más detalles

Excel 2007 Completo. Duración: Objetivos: Contenido: 75 horas

Excel 2007 Completo. Duración: Objetivos: Contenido: 75 horas Excel 2007 Completo Duración: 75 horas Objetivos: Curso para aprender a utilizar la hoja de cálculo Microsoft Excel 2007, explicando todas las funciones que la aplicación posee y viendo el uso de este

Más detalles

LENGUAJES DE PROGRAMACION I. Propósito del curso :

LENGUAJES DE PROGRAMACION I. Propósito del curso : UNIVERSIDAD AUTÓNOMA DE CHIHUAHUA Clave: 08MSU0017H Clave: 08USU4053W FACULTAD DE INGENIERÍA PROGRAMA DEL CURSO: LENGUAJES DE PROGRAMACION I DES: Ingeniería Ingeniería en Sistemas Programa(s) Educativo(s):

Más detalles

La ayuda y referencia de Visual Basic y otros recursos como herramientas para los programadores. (CU00306A)

La ayuda y referencia de Visual Basic y otros recursos como herramientas para los programadores. (CU00306A) aprenderaprogramar.com La ayuda y referencia de Visual Basic y otros recursos como herramientas para los programadores. (CU00306A) Sección: Cursos Categoría: Curso Visual Basic Nivel I Fecha revisión:

Más detalles

Práctica final. Emilia Cruz Fernández Martínez

Práctica final. Emilia Cruz Fernández Martínez Guadalinex Práctica final Curso 2003/2004 Emilia Cruz Fernández Martínez Desarrollo de una unidad didáctica usando software libre ELEMENTOS FUNCIONALES DE UN ORDENADOR Qué es un ordenador? Es un dispositivo

Más detalles

MICROSOFT ACCESS 2013 (COMPLETO)

MICROSOFT ACCESS 2013 (COMPLETO) MICROSOFT ACCESS 2013 (COMPLETO) Descripción del funcionamiento del programa de gestión de bases de datos Microsoft Access 2013, estudiando los conceptos fundamentales de las bases de datos: desde su análisis

Más detalles

TEMA 2: CICLO DE VIDA DEL SOFTWARE. Profesora: Elisa Herrmann

TEMA 2: CICLO DE VIDA DEL SOFTWARE. Profesora: Elisa Herrmann TEMA 2: CICLO DE VIDA DEL SOFTWARE Profesora: Elisa Herrmann Índice 2.1. Qué es el ciclo de vida del Software?. 2.2. La norma 12207-2008. 2.3. Modelos de desarrollo. Ingeniería del Software - 2010/2011

Más detalles

DISEÑO CURRICULAR ALGORITMOS, ESTRUCTURAS Y PROGRAMACIÓN I

DISEÑO CURRICULAR ALGORITMOS, ESTRUCTURAS Y PROGRAMACIÓN I DISEÑO CURRICULAR ALGORITMOS, ESTRUCTURAS Y PROGRAMACIÓN I FACULTAD (ES) CARRERA (S) Ingeniería Computación y Sistemas CÓDIGO HORAS TEÓRICAS HORAS PRÁCTICAS UNIDAS CRÉDITO SEMESTRE 122643 02 02 03 II PRE-REQUISITO

Más detalles

Programación Java SE 7

Programación Java SE 7 Programación Java SE 7 : 5 Este curso, que es el segundo de una serie de dos cursos que tratan de la plataforma Java Standard Edition 7 (Java SE 7), describe las principales interfaces de programación

Más detalles

BASE DE DATOS_I Qué son las bases de datos?

BASE DE DATOS_I Qué son las bases de datos? BASE DE DATOS_I Qué son las bases de datos? Una base de datos es un almacén que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar fácilmente.

Más detalles

La estadística en Internet

La estadística en Internet 5 La estadística en Internet Neus Canal Díaz 5.1. Introducción Actualmente, Internet se está convirtiendo en una de las principales fuentes de información en muchas áreas, como es la investigación científica.

Más detalles

Etapas para la solución de un problema por medio del computador

Etapas para la solución de un problema por medio del computador Algoritmos. Definición Un algoritmo se puede definir como una secuencia de instrucciones que representan un modelo de solución para determinado tipo de problemas. O bien como un conjunto de instrucciones

Más detalles

PROBLEMAS TEMA 1: Estructuras de interconexión de un computador

PROBLEMAS TEMA 1: Estructuras de interconexión de un computador PROBLEMAS TEMA 1: Estructuras de interconexión de un computador Problemas propuestos en examen PROBLEMA 1. Una CPU que emplea un tamaño de palabra de 16 bits tiene un repertorio de 16 instrucciones con

Más detalles

CAPITULO I. Delimitación de la investigación. Durante las últimas décadas, la calidad en el servicio se ha convertido en una

CAPITULO I. Delimitación de la investigación. Durante las últimas décadas, la calidad en el servicio se ha convertido en una Delimitación de la investigación CAPITULO I Delimitación de la investigación 1.1 Durante las últimas décadas, la calidad en el servicio se ha convertido en una de las áreas prioritarias de administradores

Más detalles

UNIDAD I. ALGORITMOS

UNIDAD I. ALGORITMOS UNIDAD I. ALGORITMOS 1.1 Definición Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solución a un problema específico. 1.2 Tipos Cualitativos: Son aquellos

Más detalles

Análisis de problemas

Análisis de problemas Análisis de problemas La resolución de problemas implica el desarrollo de habilidades del pensamiento. Nuestra capacidad d de enfrentar problemas aumenta con la práctica. Existen algunos textos con problemas

Más detalles

Objetivos y Temario CURSO SQL SERVER 2012

Objetivos y Temario CURSO SQL SERVER 2012 Objetivos y Temario CURSO SQL SERVER 2012 OBJETIVOS Este curso está dirigido a todos los que comienzan a trabajar con SQL Server 2012. De una forma rápida y concisa obtendrá el conocimiento necesario para

Más detalles

AUTORES SOBRE DISEÑO DE SISTEMAS: 1.- KENDALL Y KENDALL:

AUTORES SOBRE DISEÑO DE SISTEMAS: 1.- KENDALL Y KENDALL: AUTORES SOBRE DISEÑO DE SISTEMAS: 1.- KENDALL Y KENDALL: Ciclo de Vida de los sistemas de Información. El ciclo de vida de un sistema de información es el periodo de vida que tiene un sistema desde el

Más detalles

TEMA 10: Metodologías de desarrollo de aplicaciones. El ciclo de vida según Métrica.

TEMA 10: Metodologías de desarrollo de aplicaciones. El ciclo de vida según Métrica. Tema 10: Metodologías de desarrollo de aplicaciones. TEMA 10: Metodologías de desarrollo de aplicaciones. El ciclo de vida según Métrica. Índice 1 INTRODUCCIÓN 1 2 LAS METODOLOGÍAS DEL DESARROLLO DE APLICACIONES

Más detalles

CONCEPTO O DEFINICIÓN DE HERENCIA EN JAVA Y EN PROGRAMACIÓN ORIENTADA A OBJETOS. QUÉ ES? EXTENDS. EJEMPLOS. (CU00684B)

CONCEPTO O DEFINICIÓN DE HERENCIA EN JAVA Y EN PROGRAMACIÓN ORIENTADA A OBJETOS. QUÉ ES? EXTENDS. EJEMPLOS. (CU00684B) APRENDERAPROGRAMAR.COM CONCEPTO O DEFINICIÓN DE HERENCIA EN JAVA Y EN PROGRAMACIÓN ORIENTADA A OBJETOS. QUÉ ES? EXTENDS. EJEMPLOS. (CU00684B) Sección: Cursos Categoría: Curso Aprender programación Java

Más detalles

1. Programación y bases de datos

1. Programación y bases de datos Programación y bases de datos INTRODUIÓN En este módulo de 228 horas pedagógicas, se promueve el pensamiento algorítmico para que los y las estudiantes desarrollen la estructura lógica que les permita

Más detalles

BASES DE DATOS TEMA 2 MODELOS DE DATOS

BASES DE DATOS TEMA 2 MODELOS DE DATOS BASES DE DATOS TEMA 2 MODELOS DE DATOS 2.3 De red En este modelo las entidades se representan como nodos y sus relaciones son las líneas que los unen. En esta estructura cualquier componente puede relacionarse

Más detalles

Capítulo 3 CICLO DE VIDA DE UN PROGRAMA. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

Capítulo 3 CICLO DE VIDA DE UN PROGRAMA. 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 ([email protected]) Capítulo 3 CICLO DE VIDA DE UN PROGRAMA 1 OBJETIVOS Saber qué es la Ingeniería

Más detalles

230086 - POO - Programación Orientada a Objetos

230086 - POO - Programación Orientada a Objetos Unidad responsable: Unidad que imparte: Curso: Titulación: Créditos ECTS: 2016 230 - ETSETB - Escuela Técnica Superior de Ingeniería de Telecomunicación de Barcelona 701 - AC - Departamento de Arquitectura

Más detalles

PUNTOS DE CASOS DE USO

PUNTOS DE CASOS DE USO PUNTOS DE CASOS DE USO Roy K. Clemmons Project Estimation With Use Case Points Diversified Technical Services, Inc., Febrero 2006 PUNTOS DE CASOS DE USO (UCP) Introducido por Gustav Karner en 1993 (Universidad

Más detalles

PERFIL COMPETENCIA ANALISTA DESARROLLADOR DE APLICACIONES DE SOFTWARE (TIC-PROG)

PERFIL COMPETENCIA ANALISTA DESARROLLADOR DE APLICACIONES DE SOFTWARE (TIC-PROG) PERFIL COMPETENCIA ANALISTA DESARROLLADOR DE APLICACIONES DE SOFTWARE (TIC-PROG) FECHA DE EMISIÓN: 12/07/2016 00:25 FICHA DE PERFIL OCUPACIONAL ANALISTA DESARROLLADOR DE APLICACIONES DE SOFTWARE (TIC-PROG)

Más detalles

Tienda Online: WebCine. Jose Luis Del Hoyo Fernández Consultor: Antoni Oller Arcas 13/01/2014

Tienda Online: WebCine. Jose Luis Del Hoyo Fernández Consultor: Antoni Oller Arcas 13/01/2014 Tienda Online: WebCine Jose Luis Del Hoyo Fernández Consultor: Antoni Oller Arcas 13/01/2014 1 Introducción El proyecto que he realizado permite realizar la gestión y la venta de películas online. Por

Más detalles

PRÁCTICA 4. EL ENTORNO DE UN ROBOT EN C++

PRÁCTICA 4. EL ENTORNO DE UN ROBOT EN C++ PRÁCTICA 4. EL ENTORNO DE UN ROBOT EN C++ 0 Introducción y objetivos Los objetivos de esta práctica son dos: Aprender a realizar diseños muy sencillos de programas en C++. Aprender a gestionar un entorno

Más detalles

EJERCICIOS DEL TEMA 4

EJERCICIOS DEL TEMA 4 Computación de Altas Prestaciones 1 EJERCICIOS DEL TEMA 4 SISTEMAS MULTIPROCESADOR (MEMORIA COMPARTIDA) 1. Se diseña un procesador con un único nivel de memoria caché con tasa de fallos del 6% y tamaño

Más detalles

Fundamentos de Estadística y Simulación Básica

Fundamentos de Estadística y Simulación Básica Fundamentos de Estadística y Simulación Básica TEMA 5 Simulación SIMULACIÓN: Técnicas para imitar el funcionamiento procesos reales mediante programas de ordenador. de sistemas o SIMULACIÓN: Es la representación

Más detalles

Unidad 2. Componentes de LibreOffice. CURSO: Introducción LibreOffice

Unidad 2. Componentes de LibreOffice. CURSO: Introducción LibreOffice Unidad 2 Componentes de LibreOffice CURSO: Introducción LibreOffice 1 Introducción Como hemos dicho, LibreOffice es una suite ofimática, es decir que tiene diferentes programas para dar soporte a las tareas

Más detalles

El organigrama puede describirse como un instrumento utilizado por las ciencias administrativas para análisis teóricos y la acción práctica.

El organigrama puede describirse como un instrumento utilizado por las ciencias administrativas para análisis teóricos y la acción práctica. Los Organigramas El organigrama puede describirse como un instrumento utilizado por las ciencias administrativas para análisis teóricos y la acción práctica. Concepto de organigrama Para Henri Fayol: Una

Más detalles