Guia Ets Fund Prog Orienta Objetos

  • View
    12

  • Download
    2

Embed Size (px)

Text of Guia Ets Fund Prog Orienta Objetos

  • Fundamentos de Programacin Orientada a Objetos

    Pgina 1 Ing. Isis Espinosa Salazar

    I.- FUNDAMENTOS DE PROGRAMACIN ORIENTADA A OBJETOS 1.1 Evolucin de la programacin 1.2 Conceptos fundamentales de la Programacin Orientada a Objetos

    1.2.1 Los lenguajes orientados a objetos 1.3 Relaciones entre clases y objetos 1.4 El papel de clases y objetos en el anlisis y el diseo

  • Fundamentos de Programacin Orientada a Objetos

    Pgina 2 Ing. Isis Espinosa Salazar

    I.- FUNDAMENTOS DE PROGRAMACIN ORIENTADA A OBJETOS 1.1 Evolucin de la programacin 1.2 Conceptos fundamentales de la Programacin Orientada a Objetos

    1.2.1 Los lenguajes orientados a objetos 1.3 Relaciones entre clases y objetos 1.4 El papel de clases y objetos en el anlisis y el diseo

    1.1 Evolucin de la programacin La evolucin de la programacin puede sintetizarse en tres modelos o paradigmas:

    El significado de paradigma (paradigma en latn; paradeigma en griego) en su origen significaba un ejemplo ilustrativo; en particular, enunciado modelo que mostraba todas las inflexiones de una palabra. Un paradigma es una forma establecida de pensar acerca de cmo hacer algo. En el libro The Structure of Scientific Revolutions, el historiador Thomas Kuhn describa un paradigma como un conjunto de teoras, estndares y mtodos que juntos representan un medio de organizacin del conocimien-to: es decir, un medio de visualizar el mundo.

    La programacin mediante procedimientos (procedural), La programacin estructurada y La programacin orientada a objetos

    PROGRAMACION MEDIANTE PROCEDIMIENTOS [PROCEDURAL]

    Programacin y abstraccin La abstraccin es el proceso de extraer las propiedades relevantes de un objeto al tiempo que se ignoran los detalles

    no esenciales. Las propiedades extradas definen una vista del objeto. En esencia, la abstraccin supone la capaci-dad de encapsular y aislar, la informacin del diseo, de la ejecucin.

    Definir una abstraccin significa describir una entidad del mundo real, no importa lo compleja que pueda ser y, a

    continuacin, utilizar esta descripcin en un programa. La abstraccin es fundamental para gestionar la complejidad del diseo y escritura del software. La abstraccin es la

    clave para disear buen software. La abstraccin es uno de los medios ms importantes, mediante el cual nos enfren-tamos con la complejidad inherente al software.

    Una abstraccin se centra en la vista externa de un objeto, de modo que sirva para separar el comportamiento esencial

    de un objeto de su implementacin Como describe Wulft: Los humanos hemos desarrollado una tcnica excepcionalmente potente para tratar la comple-

    jidad: abstraemos de ella. Incapaces de dominar en su totalidad los objetos complejos, se ignora los detalles no esen-ciales, tratando en su lugar con el modelo ideal del objeto y centrndonos en el estudio de sus aspectos esenciales.

    El proceso de abstraccin fue evolucionando desde la aparicin de los primeros lenguajes de programacin. La abstraccin es esencial para el funcionamiento de una mente humana normal y es una herramienta muy potente

    para tratar la complejidad. El mtodo ms idneo para controlar la complejidad es aumentar los niveles de abstraccin. Las personas normalmente comprenden el mundo construyendo modelos mentales de partes del mismo; tratan de

    comprender cosas con las que pueden interactuar. Un modelo mental es una vista simplificada de cmo funciona, de modo que se pueda interactuar con ella.

    En esencia, este proceso de construccin de modelos es lo mismo que el diseo de software, aunque el desarrollo de

    software es nico: el diseo de software produce el modelo que puede ser manipulado por una computadora. Sin embargo, los modelos mentales deben ser ms sencillos que el sistema al cual imitan, o en caso contrario sern

    intiles. Por ejemplo, consideremos un mapa como un modelo de su territorio. A fin de ser til, el mapa debe ser ms sencillo que el territorio que modela. Un mapa nos ayuda, ya que abstrae slo aquellas caractersticas del territorio que deseamos modelar. Un mapa de carreteras modela cmo conducir mejor de una posicin a otra. Un mapa topogrfico modela el contorno de un territorio, quiz para planear un sistema de largos paseos o caminatas.

  • Fundamentos de Programacin Orientada a Objetos

    Pgina 3 Ing. Isis Espinosa Salazar

    De igual forma que un mapa debe ser ms pequeo significativamente que su territorio e incluye slo informacin seleccionada cuidadosamente, as los modelos mentales abstraen esas caractersticas de un sistema requerido para nuestra comprensin, mientras ignoran caractersticas irrelevantes. Este proceso de abstraccin es psicolgicamente necesario y natural: la abstraccin es crucial para comprender este complejo mundo.

    Un conjunto se puede definir por abstraccin como una coleccin no ordenada de elementos en el que no existen

    duplicados. Utilizando esta definicin, se puede especificar si sus elementos se almacenan en un arreglo, una lista en-lazada o cualquier otra estructura de datos.

    Un vendedor de coches podra ver un coche desde el punto de vista de sus caractersticas de venta. Propiedades

    relevantes seran el precio, el color, el equipo opcional y la duracin de la garanta. Por otro lado, un mecnico vera el coche desde el punto de vista de los sistemas que necesitan mantenimiento. Para l, propiedades relevantes seran el motor, sistema electrnico de encendido, tipo de aceite, el tamao del filtro de aceite y el nmero y tipo de bujas. Las propiedades relevantes de un objeto vienen definidas por la forma en que se usa o manipula el objeto.

    Claramente las propiedades de un coche, importantes para un vendedor, son distintas de las de un mecnico. En-

    focndose sobre las propiedades relevantes e ignorando los detalles irrelevantes, se puede reducir la complejidad de manejo de un objeto.

    Consideremos la tarea de encontrar un archivo en un disco y leer su contenido. Si tuvisemos que manejar todos los

    detalles de bajo nivel para saber cmo encontrar un archivo concreto en el disco y cmo leer sus contenidos, sera una tarea bastante difcil. Deberamos comprender cmo se almacenan los datos en los discos y todos los mandatos de ba-jo nivel que controlan las operaciones del manejador de disco. Afortunadamente, existe un sistema de archivos que proporciona una visin abstracta de la informacin en un disco, de forma que se pueden ignorar los detalles de bajo ni-vel. Se puede acceder al archivo sin ms que proporcionar su nombre. El sistema de archivos maneja los detalles de bajo nivel para leer los datos en el disco y devolverlos al programa.

    El arte de la programacin es el mtodo por el que se describir a una computadora (mediante un lenguaje de pro-

    gramacin) un fenmeno, una accin, un comportamiento o una idea. En general, un programa no es ms que una descripcin abstracta de un procedimiento o fenmeno que existe o sucede en el mundo real. Frecuentemente, un programa imita un comportamiento o accin humana; otras veces simula (es decir, reproduce) un fenmeno fsico.

    Sin embargo, la relacin entre abstraccin y lenguaje de programacin es doble: por un lado se utiliza el lenguaje de programacin para escribir un programa que es una abstraccin del mundo real; por otro lado se utiliza el lenguaje de programacin para describir de un modo abstracto el comportamiento fsico de la computadora que se est utilizando (por ejemplo, utilizando nmeros decimales en lugar de nmeros binarios, variables en lugar de celdas de memoria di-reccionadas explcitamente, etc.).

    En los primeros das de la informtica, los programadores enviaban instrucciones binarias a una computadora, manipu-lando directamente interrupciones en sus paneles frontales.

    En la dcada de los cincuenta, los nicos mecanismos de abstraccin eran el lenguaje de mquina y el lenguaje en-

    samblador. El lenguaje ensamblador ofreca la posibilidad de utilizar mnemnicos, que eran abstracciones diseadas para evitar que los programadores tuvieran que recordar las secuencias de bits que componen las instrucciones de un programa. Ofrece tambin la posibilidad de utilizar nombres simblicos para representar celdas de memoria.

    El siguiente nivel de abstraccin se consigue agrupando instrucciones primitivas para formar macroinstrucciones. Un

    conjunto de instrucciones realizadas por un usuario se pueden invocar por una macroinstruccin; una macroinstruccin instruye a la mquina para que realice muchas cosas.

    Tras los lenguajes de programacin ensambladores aparecieron los lenguajes de programacin de alto nivel, que

    supusieron un nuevo nivel de abstraccin. Los lenguajes de programacin de alto nivel permitieron a los programadores distanciarse de las caractersticas arqui-

    tectnicas especficas de una mquina dada. Cada instruccin en un lenguaje de alto nivel puede invocar varias ins-trucciones mquina, dependiendo de la mquina especfica donde se compila el programa. Esta abstraccin permita a los programadores escribir software para propsito genrico, sin preocuparse sobre qu mquina ejecutara el progra-ma.

    Secuencias de sentencias de lenguajes de alto nivel se pueden agrupar en procedimientos y se invocan por una sen-

    tencia. El mundo en que vivimos se halla plagado de objetos: aviones, trenes, automviles, telfonos, libros, computadoras,

    etctera. Sin embargo, en esa poca las tcnicas de programacin no reflejaban esto. Lo procedural [procedimientos] fue el paradigma principal de la programacin, el cual define un programa como un algoritmo escrito en algn lenguaje de programacin. Las razones d