TAREA #7 POO

  • Uploaded by: Dulce Lopez
  • Size: 145.2 KB
  • Type: PDF
  • Words: 2,319
  • Pages: 8
Report this file Bookmark

* The preview only shows a few pages of manuals at random. You can get the complete content by filling out the form below.

The preview is currently being created... Please pause for a moment!

Description

INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

UNIDAD CULHUACAN

INGENIERIA EN COMUNICACIONES Y ELECTRONICA

PROGRAMACION ORIENTADA A OBJETOS

PROF. JUAN CARLOS GONZALEZ AMADO

TAREA #7

DULCE MARIA LOPEZ MATA

GRUPO: 2EV15

TURNO: VESPERTINO

DESARROLLO DE UNIDAD 1 1.1

EVOLUCION DE LA PROGRAMACION Cada vez más, los lenguajes de programación tienden representar un modelo del mundo basándose en elementos que se alejan de la máquina y se acercan al humano. En los extremos encontramos el lenguaje puro de la máquina y la Programación Orientada a Objetos. Los lenguajes de alto nivel procedurals (Pascal, C) ganaron confianza entre los programadores para quienes, de no existir un impulse hacia la POO, no hallaban la necesidad de cambiarse. En esta unidad se mostrará la evolución de los lenguajes a través del tiempo a la par con las tecnologías que influyen en el desarrollo de software, y como esas tecnologías hacen que la POO se mantengan como el paradigma de programación más usado en la actualidad.

Lenguaje Máquina. Es el sistema de códigos directamente interpretable por un circuito microprogramable, como el microprocesador de una computadora o el microcontrolador de un autómata. Este lenguaje está compuesto por un conjunto de instrucciones que determinan acciones a ser tomadas por la máquina. Estas instrucciones son normalmente ejecutadas en secuencia, con eventuales cambios de flujo causados por el propio programa o eventos externos. El lenguaje máquina es específico de cada máquina o arquitectura de la máquina, aunque el conjunto de instrucciones disponibles puedan ser similares entre ellas. Los circuitos microprogramables son sistemas digitales, lo que significa que trabajan con dos únicos niveles de tensión. Dichos niveles, por abstracción, se simbolizan con el cero, 0, y el uno, 1, por eso el lenguaje de máquina solo utilice dichos signos. Esto permite el empleo de las teorías del algebra booleana y del sistema binario en el diseño de este tipo de circuitos y en su programación. La principal ventaja del lenguaje máquina es su alta velocidad, debida a la traducción inmediata de los códigos binarios. Ejemplo de una instrucción en lenguaje máquina: 1 0010111000000001 2 0000000000001010 Lenguaje ensamblador: Son la representación más entendible para el humano de los códigos del lenguaje máquina. Cada instrucción en lenguaje ensamblador aparece case a la par con el lenguaje máquina, esto debido a que los fabricantes de hardware diseñan sus chips pensando ya en las instrucciones de un lenguaje ensamblador. Un ejemplo de una instrucción en lenguaje ensamblador:

1 mov ax, 10 A pesar de que el lenguaje ensamblador es más fácil de entender por las personas sigue teniendo las desventajas del lenguaje máquina. Realmente lo que hace es ayudar un poco a que el código sea más legible. El lenguaje ensamblador adicionalmente necesita un traductor (ensamblador) capaz de convertir dichos códigos en lenguaje máquina. Ejemplos de ensambladores: TASM (Turbo Assembler de Borland), MASM (Microsoft Macro Assembler), NASM (Netwide Assembler- Libre). Son lenguajes más afines con el programador en los que una instrucción puede representar varias instrucciones en lenguaje máquina. Incluyen los lenguajes estructurados y no estructurados. Como ejemplos tenemos: Basic, Pascal, C, APL, FORTRAM, COBOL, LISP y PROLOG, etc. Los lenguajes de alto nivel necesitan de un traductor que puede ser interpretador o compilador. Los interpretadores o intérpretes, necesitan de un programa auxiliar y que traduce en tiempo real las instrucciones al lenguaje máquina, por lo tanto, cada vez que un programa interpretado se ejecuta debe ejecutarse también su intérprete. Ejemplos de lenguajes interpretados: Basic, PROLOG, LISP, entre otros. Los lenguajes compilados son aquellos que necesitan de un compilador para la traducción al lenguaje máquina. La traducción o compilación se hace solo una vez, y el resultado es un código objeto entendible por la máquina. Para ejecutar un programa compilado no se necesita de su compilador. Ejemplos de lenguajes compilados: Pascal, C, Fortran, Cobol, Modula-2, etc. Algunas de las características de los lenguajes de alto nivel:  Depuración más sencilla: debido a que el código es más legible, la depuración también se hace más fácil. Con la ayuda de editores (IDES - Entorno de Desarrollo Integrados) la compilación, depuración y ejecución se hacen más fácilmente.  Productividad aceptable: son más productivos que los lenguajes de alto nivel.  Algunos permiten la portabilidad: generalmente los interpretados.  La evolución de los lenguajes de programación es vista también desde el punto de vista de las generaciones. Los lenguajes de primera generación son los mismos lenguajes del nivel de la máquina. Los lenguajes de segunda generación son los ensambladores. Y los lenguajes de tercera generación son los nombrados en los lenguajes de alto nivel. Una cuarta generación de lenguajes de programación es aun confusa de definir, algunos autores la relacionan con lenguajes visuales con facilidades de acceso a base de datos que aparecieron para desarrollar bajo la plataforma Windows. Entre ellos encontramos los lenguajes del Visual Studio de Microsoft (como Visual Basic, Visual

FoxPro, Visual C ); las herramientas de Borland (Delphi, JBilder, C Builder); entre otros. También se puede incluir en esta generación, las herramientas que generan el código a partir de plantillas y configuraciones, lenguajes de consulta como SQL, los lenguajes script (JavaScript) y los lenguajes de marcado (HTML, XML). La programación orientada a Objetos (POO) no es algo nuevo, pues existe desde los años 60 con lenguajes como Smaltalk, Simula, Ada. Se ha hecho más populares en los últimos 10 años con la aparición de Java y C#. La POO es una extensión de los lenguajes de Alto Nivel Estructurados que tratan de representar de una forma más sencilla el modelo del mundo real. El concepto de programación Orientada a Objetos: agrupa un conjunto de técnicas que nos permiten desarrollar y mantener muchos más fácilmente programas de gran complejidad. La POO intenta resolver principalmente problemas de la Ingeniería de Software como: portabilidad, reusabilidad, mantenibilidad, entre otros. Para ello se basa en las características claves como el encapsulamiento, la herencia, polimorfismo, y el desarrollo orientado primero hacia el que, y luego hacia el cómo (interfaces). Lenguajes Orientados a Objetos: Java, C#, Ruby, Php, V.B.Net, Python, Perl, JavaScript, C , Delphi. 1.2

CONCEPTOS FUNDAMENTALES DE LA PROGRAMACION ORIENTADA A OBJETOS

El concepto de Sistema de Programación Orientado a Objetos - Object Oriented Programming System (OOPS), agrupa un conjunto de técnicas que nos permiten desarrollar y mantener mucho más fácilmente programas de una gran complejidad. La orientación a objetos es una forma de hacer frente a la comprensión y solución de problemas, usando modelos organizados a partir de conceptos del mundo real. Su pieza fundamental es el objeto, el cual combina en una sola entidad, los datos que lo identifican y su comportamiento. En particular, nosotros utilizaremos la orientación a objetos para analizar, diseñar e implementar programas de computadora, es decir, vamos a efectuar programación orientada a objetos. Entonces lo primero que tenemos que aprender si queremos hacer programas orientados a objetos, es conocer el concepto de lo que es: Clase, Objeto, Herencia, Encapsulación y Polimorfismo. Estas son las ideas más básicas que todo aquel que trabaja en POO debe de comprender y manejar constantemente, es por lo tanto de suma importancia que lo entienda claramente.

Características del paradigma orientado a objetos (clases, objetos, herencia, polimorfismo, generalización): Objeto: Un objeto se puede definir desde el punto de vista conceptual como una entidad individual de un sistema y que se caracteriza por un estado y un comportamiento. Desde el punto de vista de implementación un objeto es una entidad que posee un conjunto de datos y un conjunto de operaciones (funciones o métodos). Los datos se denominan también atributos y componen la estructura del objeto y las operaciones -también llamadas métodos- representan los servicios que proporciona el objeto. Clase: Las clases son declaraciones o abstracciones de objetos. Una clase es un contenedor de uno o más datos (variables o propiedades miembro) junto a las operaciones de manipulación de dichos datos (funciones/métodos). En POO los objetos son miembros de clases. En esencia, una clase es un tipo de datos al igual que cualquier otro tipo de dato definido en un lenguaje de programación. La diferencia reside en que la clase es un tipo de dato que contiene datos y funciones. Una clase es, por consiguiente, una descripción de un número de objetos similares. En C una clase es una estructura de dato o tipo de dato que contiene funciones (métodos) como miembros y datos. Una clase es una descripción general de un conjunto de objetos similares. Por definición todos los objetos de una clase comparten los mismos atributos (datos) y las mismas operaciones (métodos). Una clase encapsula las abstracciones de datos y operaciones necesarias para describir una entidad u objeto del mundo real. Sintaxis de una clase: 1 Class nombreClase 2 { 3     miembros 4 } Generalización: La generalización es la propiedad que permite compartir información entre dos entidades evitando la redundancia. En el comportamiento de objetos existen con frecuencia propiedades que son comunes en diferentes objetos y esta propiedad se denomina generalización. Por ejemplo, máquinas lavadoras, frigoríficos, hornos de microondas, tostadoras, lavavajillas, etc., son todos electrodomésticos (aparatos del hogar). En el mundo de la orientación a objetos, cada uno de estos aparatos es un subclase de la clase Electrodoméstico y a su vez Electrodoméstico es una superclase de todas las otras clases (máquinas lavadoras, frigoríficos, hornos de microondas, tostadoras, lavavajillas,...).

Especialización: El proceso inverso de la generalización por el cual se definen nuevas clases a partir de otras ya existentes se denomina especialización. Herencia: En orientación a objetos, el mecanismo que implementa la propiedad de generalización se denomina herencia. La herencia permite definir nuevas clases a partir de otras clases ya existentes, de modo que presentan las mismas características y comportamiento de éstas, así como otras adicionales. Se refiere a compartir atributos y métodos entre clases, que se relacionan de manera jerárquica. Polimorfismo: La propiedad de polimorfismo es aquella en que una operación tiene el mismo nombre en diferentes clases, pero se ejecuta de diferentes formas en cada clase. Es una característica de la programación orientada a objetos, que significa que un mismo método puede tener diferentes maneras de realizarse. Abstracción: La abstracción es la propiedad de los objetos que consiste en tener en cuenta sólo los aspectos más importantes desde un punto de vista determinado y no tener en cuenta los restantes aspectos. El término abstracción que se suele utilizar en programación se refiere al hecho de diferenciar entre las propiedades externas de una entidad y los detalles de la composición interna de dicha entidad. Encapsulación: El encapsulado o encapsulación de datos es el proceso de agrupar datos y operaciones relacionadas bajo la misma unidad de programación. En el caso de los objetos que poseen las mismas características y comportamiento se agrupan en clases, que no son más que unidades o módulos de programación que encapsulan datos y operaciones.

1.2.1 LOS LENGUAJES ORIENTADOS A OBJETOS En la actualidad existe una diversidad de Lenguajes Orientados a Objetos, cada uno de ellos tiene sus propias características y funcionalidades que pueden ser explotadas dependiendo del sistema o proyecto de software que se desee resolver, dentro de los cuales se encuentran: C#, J#, C , Objective C, Java, Ruby, Python, Object Pascal, CLIPS, Visual .net, Actionscript, Perl, Visual Basic.NET, PHP, Simula, Delphi, PowerBuilder, etre otros.

1.3

RELACIONES ENTRE CLASES Y OBJETO

Ahora que ya conocemos los objetos, sus tipos, sus atributos, su comportamiento (métodos), sus características, podemos seguir con el reconocimiento de ellos dentro de la especificación de problemas que deseamos solucionar aplicando la orientación a objetos. La interacción entre objeto se efectúa mediante mensajes. Un mensaje se envía a un objeto utilizando un método de la clase. En ocasiones un objeto envía un mensaje a otro objeto de la misma clase o de otra clase, a veces un objeto se envía asimismo el mensaje. Por ejemplo, un chofer (objeto) envía el mensaje Avanzar a un objeto carro. La forma del mensaje seria: carro.Avanza. Vemos que la sintaxis para construir un mensaje está compuesta de 2 partes: el nombre del objeto y el nombre del método. Ambos deben pertenecer a la clase, tanto el objeto como el método. Otro mensaje podría ser el que usa el método Arrancar, carro.Arrancar. Los métodos reciben parámetros para caracterizar de manera definida a su acción. Por ejemplo cuando usamos el mensaje carro.Avanzar, podemos enviar al metodoAvanzar un parámetro que indique la velocidad, de manera que ahora escribiríamos el mensaje de la siguiente forma: carro.Avanzar o carro.Avanzar (reversa) o carro.Avanzar (segunda), y así por el estilo. Observamos que el parámetro se ha incluido entre paréntesis. Un método que no reciba parámetro, puede escribirse con los paréntesis vacíos. Por ejemplo: carro.Encender () Cuando escribimos programas orientados a objetos, estos están compuestos de mensajes.

1.4

EL PAPEL DE CLASES Y OBJETOS EN EL ANALISIS Y EL DISEÑO

El Diseño Orientado a Objetos (DO) difiere considerablemente del diseño estructurado ya que en Diseño Orientado a Objetos (DOO) no se realiza un problema en términos de tareas (subrutinas) ni en términos de datos, sino se analiza el problema como un sistema de objetos que interactúan entre sí. Un problema desarrollado con técnicas orientadas a objetos requiere, en primer lugar saber cuáles son los objetos del programa. Como tales objetos son instancias de clases, la primera etapa en el desarrollo orientado a objetos requiere de la identificación de dichas clases (atributos y comportamiento), así como las relaciones entre estas y su posterior implementación en un lenguaje de programación.

Existen numerosos métodos de diseño orientado a objetos, pero en general como ocurre en cualquier proyecto estructurado, un proyecto software Orientado a Objetos se compone de las siguientes etapas:  Análisis Orientado a Objetos (AOO).  Diseño Orientado a Objetos (DOO).  Programación Orientada a Objetos (POO). Aunque no siempre están bien delimitadas las etapas del análisis y diseño en la Programación Orientada a Objetos, se puede sintetizar de alguna forma las ideas claves de las distintas tecnologías existentes dentro del desarrollo orientado a objetos al que denominaremos diseño.

Similar documents

TAREA #7 POO

Dulce Lopez - 145.2 KB

TAREA 7

Natali Rodriguez - 4.3 MB

Tarea 7

victor carrasco - 171.5 KB

Tarea 7

Rafi Pineda Montero - 225.1 KB

Tarea 7 Cristina

María José Paiz - 80.7 KB

tarea 7 aprendizaje

maria virgen - 81 KB

Tarea 2 (7)

Lina Maria Gonzalez Arango - 472.5 KB

TAREA N°-7 INFOGRAFIA

AZUCENA LISSETH DOMINGUEZ VARGAS - 1.1 MB

TAREA 7 DDHHYCC

Sebastian Ruiz - 63.2 KB

Tarea 7, Octavo año Matemática

Cristian Pérez - 265.7 KB

modul 7

Malik Alfiyan - 76.3 KB

MKA_APPinvertor_DZ_06_1544024844 (7)

Артем Соломко - 470.1 KB

© 2024 VDOCS.RO. Our members: VDOCS.TIPS [GLOBAL] | VDOCS.CZ [CZ] | VDOCS.MX [ES] | VDOCS.PL [PL] | VDOCS.RO [RO]