informticos y representar su solucin mediante herramientas de software orientado a objetos. 1.1 Evolucin de la programacin. Programa: es una secuencia de instrucciones escritas en un orden lgico con el propsito de realizar o resolver un problema especfico.
Desde el inicio de la computacin se han establecido modelos o paradigmas para construir programas los cuales establecen estrategias especficas para disear los programas
1.1 Evolucin de la programacin. Paradigma de la programacin secuencial Este paradigma se caracteriza por la ejecucin de un programa lnea por lnea, de principio a fin y adems del uso de la sentencia GOTO que permita realizar saltos hacia adelante y hacia atrs en el cdigo.
Este paradigma tiene la desventaja de complicar el seguimiento y modificacin del cdigo cuando los programas son muy grandes y hacen uso excesivo de la sentencia GOTO 1.1 Evolucin de la programacin. Paradigma de la programacin secuencial Considere el siguiente algoritmo en donde c divide a b y su resultado se almacena en a en enfoque secuencial.
1. Inicio 2. Define a=0, b = 0, c = 0 3. Leer b 4. Leer c 5. Si c == 0 6. goto fin1 7. a <- b / c 8. Imprimir El valor de a = a 9. Goto fin2 10. Fin1: Imprimir Error de divisin por cero 11. Fin 2: Imprimir Proceso terminado 12. Fin
Paradigma de la Programacin Estructurada. Este paradigma sustituye al secuencial, en el que adems de ejecutar las sentencias lnea a lnea permite crear subrutinas para sustituirlas por el uso del GOTO. A diferencia de GOTO al llamar a una subrutina, el control del programa se transfiere a otro segmento de cdigo donde se encuentra esta, una vez ah, ejecuta cada una de las lneas que la conforman y regresa al punto donde fue llamada la subrutina, para ejecutar la siguiente sentencia despus de la llamada.
En este paradigma los lenguajes integran las estructuras de control repetitivas for, while y do-while, ademas de las de decisin compuesta if-else y seleccin mltiple do-case o switch.
De esta manera hace ms fcil entender y modificar un programa.
1.1 Evolucin de la programacin. Paradigma de la Programacin Estructurada. Utiliza tcnicas tradicionales de programacin que datan de las dcadas de los 60s y 70s, especialmente desde la creacin del lenguaje Pascal. Este tipo de programa es un enfoque muy especfico que normalmente genera programas bien escritos y legibles aunque esto no necesariamente implique que se estructurado. Esta basado en la modularizacin
1.1 Evolucin de la programacin. La programacin estructurada incluye las estructuras o instrucciones bsicas de control: Secuencia Decisin o Seleccin Bucles, Lazos, Iteracin o Repeticin
1.1 Evolucin de la programacin. Paradigma de la programacin O.O. Es el paradigma de programacin dominante en la actualidad y ha remplazado las tcnicas de programacin estructurada
Se compone de objetos y son elementos autosuficientes de un programa de computadora que representa un grupo de caractersticas relacionadas entre s y se diseo para realizar una tarea dada; cada objeto tiene una funcionalidad especfica expuesta a sus usuarios y una implementacin oculta. Muchos de ellos se obtiene de una biblioteca y otros se disean a la medida. 1.1 Evolucin de la programacin. Paradigma de la programacin O.O. Los objetos constan de datos y operaciones que se realizan sobre esa informacin.
1.2 Conceptos fundamentales de la POO. La POO es un enfoque conceptual especfico para disear programas utilizando un lenguaje que se centra en los objetos cuyas propiedades mas importantes son:
Abstraccin Encapsulamiento y ocultacin de datos Herencia Polimorfismo Reusabilidad o reutilizacin de cdigo.
1.2 Conceptos fundamentales de laPOO. Abstraccin Es la propiedad que considera los aspectos mas significativos o notables de un problema y expresa una solucin en esos trminos. En esta esta etapa crucial se determinan grupos de entidades con sus datos y operaciones que conformaran las clases de datos y que representarn la interfaz con el usuario.
Encapsulamiento Significa reunir en cierta estructura de datos los elementos que, a determinado nivel de abstraccin, se pueden considerar de una misma entidad, y es el agrupamiento de datos y operaciones relacionadas bajo una misma unidad de programacin, lo que aumenta la cohesin de los elementos del sistema. Este mecanismo permite ocultar lo que hace un objeto de los que hacen otros objetos del mundo exterior, por lo que se denomina tambin ocultacin.
1.2 Conceptos fundamentales de la POO. Herencia El concepto de clases divididas en subclases se utiliza en la vida diaria y conduce al de herencia; por ejemplo la clase animal se divide en mamferos, anfibios, insectos, aves, etc. La idea bsica consiste en que cada subclase comparte caractersticas con la clase de la cual se deriva.
La clase principal de la que derivan las restantes se denomina clase base, padre o superclase, las subclases tambin se denominan derivadas o hijas
Polimorfismo Reusabilidad o reutilizacin de cdigo.
1.2 Conceptos fundamentales de la POO. Polimorfismo Es la propiedad que le permite a una funcin tener el mismo nombre en clases diferentes y actuar de otro modo distinto en cada una de ellas. Esto implica la capacidad de una operacin de ser interpretada slo por el propio objeto que lo invoca. Esto se da en tiempo de ejecucin.
Reusabilidad o reutilizacin de cdigo. Significa que una vez que se ha creado, escrito y depurado una clase se puede poner a disposicin de otros programadores de manera similar que el uso de bibliotecas de funciones en un lenguaje de programacin 1.3 Lenguajes orientados a objetos EL idioma que habla la computadora es el lenguaje nativo o lenguaje mquina; este es un conjunto de instrucciones primitivas construidas en cada computadora y difiere entre los diversos tipos de computadoras existentes; dichas instrucciones estn en formato de cdigo binario o digital.
Los lenguajes de programacin se utilizan para escribir programas fuentes que, en las computadores modernas, constan de secuencias de instrucciones que se codifican como serie de dgitos que dichas computadoras podran entender.
Cada lenguaje de programacin tiene un conjunto de instrucciones que la computadora entender directamente en su cdigo mquina o, en caso necesario, se traducirn a su cdigo. Las instrucciones bsicas y comunes en casi todos los lenguajes de programacin son :
1.3 Lenguajes orientados a objetos De entrada/salida: transferencia de informacin desde/hacia dispositivos: ejemplo, teclado y pantalla.
De clculo: indican a la computadora el calculo de operaciones aritmticas De control: modifican la secuencia en la ejecucin del programa
En realidad la computadora no entiende el lenguaje de programacin, en vez de eso requiere un programa que traduzca el cdigo(programa) fuente a cdigo mquina
1.3 Lenguajes orientados a objetos
Los lenguajes de programacin se clasifica en:
Lenguaje Mquina Lenguaje de bajo nivel o ensamblador: Lenguaje de alto nivel
1.3 Lenguajes orientados a objetos Lenguaje mquina.- un conjunto de instrucciones primitivas construidas en cada computadora y difiere entre los diversos tipos de computadoras existentes; dichas instrucciones estn en formato de cdigo binario o digital.
Lenguaje ensamblador.- los lenguajes ensambladores de programacin de bajo nivel se desarrollaron para facilitar el trabajo del programador; estos utilizan un nemnico o nemotcnico como abreviatura para representar las instrucciones y que sean mas fcil de recordar en comparacin con una sentencia de dgitos binarios. 1.3 Lenguajes orientados a objetos Lenguaje ensamblador Lenguaje mquina ADD(sumar) 10011001 LOAD(cargar) 10011010 SUB(restar) 10011011 MULT(multiplicar) 10011100 La siguiente tabla muestra un ejemplo de sentencias en lenguaje ensamblador a lenguaje mquina. 1.3 Lenguajes orientados a objetos Lenguaje ensamblador.- Como el lenguaje ensamblador depende de la mquina, entonces un programa ensamblador nicamente se puede ejecutar en un mquina especfica y los cdigos o palabras nemotcnicas solo sirven para la programacin de dichos aparatos
Por esta dificultad y con la intensin de superar el inconveniente de la dependencia en cuanto a plataforma, computadora y procesador especfico, se desarrollaron lenguajes de alto nivel que permiten la programacin independiente de la mquina sobre la que se ejecutan los programas. 1.3 Lenguajes orientados a objetos Lenguaje de alto nivel.- estos lenguajes utilizan palabras similares al ingls, as como smbolos, signos de puntuacin y aritmticos, de modo que facilitan el desarrollo de programas.
Con el paso de los aos se han diseado numerosos lenguajes de programacin de alto nivel. Los ms populares son:
COBOL (Common Business Oriented Lenguage) FORTRAN (Formula Translation) BASIC (Beginner All-porpuse Symbolic International Code) Pascal ADA Visual Basic Delphi C, C++, C# Java
1.3 Lenguajes orientados a objetos Programa fuente: es un programa escrito en algn lenguaje de programacin, ya sea ensamblador o de alto nivel.
Programa ejecutable: es el resultado del proceso de traduccin de programa fuente enlazados con otros cdigos o programas de biblioteca del lenguaje de programacin especfico al lenguaje mquina.
Existen 2 tipos de traductores de cdigo fuente a cdigo mquina:
Compilador: Es un programa que traduce un programa fuente a cdigo objeto para posteriormente ser enlazado y crear un programa ejecutable independiente del compilador. Pascal, C++, Cobol, V Basic.
Traductor: Es un programa que traduce y ejecuta un programa fuente, lnea por lnea. El programa traductor deber estar siempre presente para ejecutar el programa fuente. V Basic, Java,
1.4 Relaciones entre clases y objetos. Para entender la POO observe los siguientes conceptos bsicos:
Objetos Clases Herencia Envo de mensajes
Objetos Entender que es un objeto es la clave para entender cualquier lenguaje orientado a objetos.
Un objeto del mundo real es cualquier cosa que vemos a nuestro alrededor.
Que tiene que ver esto con la programacin?
Todo el Programa Orientado a Objetos est construido en base a diferentes componentes (Objetos) conformados por sus caractersticas y operaciones, cada uno tiene un rol especfico en el programa y todos los componentes pueden comunicarse entre ellos de formas predefinidas. 1.4 Relaciones entre clases y objetos. Las Clases En el mundo real, normalmente tenemos muchos objetos del mismo tipo. Por ejemplo, nuestro telfono celular es slo uno de los miles que hay en el mundo.
Si hablamos en trminos de la programacin orientada a objetos, podemos decir que nuestro objeto celular es una instancia de una clase conocida como "celular".
En el proceso de abstraccion podemos modelar conceptualmente a los celulares con las caractersticas: marca, modelo, sistema operativo, pantalla, teclado, etc; y comportamientos: hacer y recibir llamadas, enviar mensajes multimedia, transmisin de datos, etc.
A ese modelo o plantilla le llamamos CLASE, y a los equipos que creamos a partir de ella la llamamos OBJETOS.
1.4 Relaciones entre clases y objetos. Ejemplo de Clase-Objeto De este modo decimos que un_objeto es un objeto o instancia de la clase celular 1.5 Papel de clases y objetos en el anlisis y el diseo. El anlisis es la distincin y la separacin de las partes de un todo hasta llegar a conocer sus principios o elementos.
El anlisis se extiende luego para describir la manera en que interactan los actores u objetos y el sistema para manipular el modelo del dominio de aplicacin.
1.5 Papel de clases y objetos en el anlisis y el diseo. El diseo de clases y objetos es un proceso incremental e iterativo. Debe asegurar la optimizacin en los parmetros: Acoplamiento: Grado de acoplamiento entre mdulos. Cohesin: Mide el grado de conectividad entre elementos de un mdulo, y entre objetos de una clase. Suficiencia: Indica que las clases capturan suficientes caractersticas de la abstraccin para conseguir un comportamiento e interaccin eficiente y con sentido. Completitud: Indica que la interface de la clase captura todo el significado caracterstico de una abstraccin, escrito en el mnimo espacio. Primitividad: Las operaciones deben implementarse si dan acceso a una representacin fundamental de la abstraccin. Cuales son operaciones primitivas y cuales no (se pueden realizar a partir de otras) es un asunto subjetivo y afecta a la eficiencia en la implementacin.