You are on page 1of 17

...................................... .... conceptos y usos........ alexa_valerio@comunidad......mx No....unam......0 INTRODUCCIÓN.... así como sus principios........................................................ Hugo Díaz Fecha entrega: 23/02/2016 Contenido CONTENIDO...............................UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO Informática IV Programación Orientada a Objetos Unidad I: Mantenimiento preventivo y correctivo Alejandra Valerio Romero.............................: 412129496 Asesor: Lic.........................1 OBJETIVO....................................... Cta..............2 Entender y definir el paradigma orientado a objetos..............1 ¿EN QUÉ CONSISTE EL PARADIGMA ORIENTADO A OBJETOS?.

.................. 5 Comportamiento.................................................. 8 Criterio 5............................................................. 4 Objeto...................................................................................................... 8 Criterio 4.......................... 8 Criterio 3.............................................................................................................................................................................................................................. 7 Poliformismo.......................................Paradigma imperativo.......................................................................................................... 3 Herencia.................................. 6 Mensaje.......................................................... 8 Principio 2........................ 6 Principios....................................................................................................................................................................................................................................................................................................................................................................................................................................... 8 Principio 5................................................................................................................................................................. 5 Método................. 7 Herencia.................................................... 8 Regla 5................. 9 Concurrencia.............................................................................................. 7 Criterio 1.......................................................................................................................... 7 Modularidad................................................................................................................................... 8 Regla 3.6 Abstracción.................... 6 Atributos...................................................................................... 8 Regla 4.................................................................................................................................................................................................................................................... 8 Principio 1......... 8 Criterio 2............................................................................................................................................................................................................................................................................... 9 Principio de ocultación...........................................................................................................................2 Paradigma Orientado a Objetos......................................................................................7 Jerarquía....................................................3 Clase............................................................................ 5 Evento.............................................. 8 Regla 2.....................................................................................................................................................................................2 Paradigma lógico............................................................................ 8 Regla 1..... 8 Principio 4....................................................................................2 DEFINICIÓN Y EJEMPLO DE CADA PRINCIPIO Y CONCEPTO DEL PARADIGMA ORIENTADO A OBJETOS.............................................. 6 Propiedad o atributo........................................ 5 Identidad.............................................................................................. 6 Encapsulamiento............................................................................................................3 Conceptos.................................................................................................................... 5 Estado.....................................................................................................................6 Estado interno.................................................................................................................................... 8 Principio 3................................ 9 ...............................................................................................................................9 Persistencia........................................................................................................

....................................................................................10 Especificación frente a implementación......................10 Semántica y presentación............Paquete................10 Ejemplos de sistemas típicos o posibles............................................10 Especificaciones abstractas de la estructura esencial de un sistema............................................9 ¿PARA QUÉ SIRVEN LOS MODELOS?...............................11 Notación........................................................................................................... 9 Recolección de basura..........................................11 MESOGRAFÍA.............................................................................................................................................................11 ¿CUÁL ES LA DIFERENCIA ENTRE UNA METODOLOGÍA Y UNA NOTACIÓN?.....................12 ................................................................................................11 Metodología............10 Especificaciones completas de un sistema final.........10 Guía al proceso de pensamiento...........................................................................................................................

Esto provocó que grandes desarrollos tuvieran problemas de fiabilidad. un modo de ver el mundo. es decir. Por lo tanto. A menudo un nuevo paradigma es creado como respuesta a las deficiencias de paradigmas anteriores. Un paradigma de programación es una forma de conceptualizar en qué consiste la ejecución de un programa y cómo deben de estructurarse y organizarse las tareas que se llevaran a cabo en esa ejecución. el paradigma orientado a objetos. estándares y métodos que. juntos. adaptación a los cambios y escalabilidad. como tal nos enseña un método (probado y estudiado).  Definir los modelos y para qué sirven. Es importante que definamos primero qué es un paradigma. el cual se basa en las interacciones de objetos para resolver las necesidades de un sistema informático.  Aplicar y desarrollar el paradigma de la POO en el desarrollo de aplicaciones para la resolución de problemas y necesidades específicos. Tradicionalmente. Cada nuevo paradigma responde a una necesidad real de nuevas formas de afrontar problemas. suministra la base y modelo para resolver problemas. Un paradigma es una forma de entender y representar la realidad: un conjunto de teorías.  Diferenciar los tipos de paradigmas que existen. en su vigésima tercera edición. mantenimiento.Introducción La Programación Orienta a Objetos (POO u OOP por sus siglas en inglés). datos y procesamiento se han separado en áreas diferente del diseño y la implementación de software. un paradigma es una teoría cuyo núcleo central. es un paradigma de programación. 3 . representan un modo de organizar el pensamiento. Objetivo  Entender el paradigma orientado a objetos. Según la Real Academia Española.

pero no la instrucción GOTO.¿En qué consiste el paradigma orientado a objetos? Paradigma imperativo En la programación convencional los programas se dividen en dos componentes: Procedimientos y Datos. las instrucciones de control IF-THEN-ELSE y el ciclo condicional WHILE-DO. un objeto es una unidad que contiene datos y las funciones operan sobre esos datos. Un programa se divide en componente que contienen procedimientos y datos. la declarativa y la funcional. Edsger Dijkstra demostró en los años sesenta que todo programa puede escribirse utilizando únicamente la composición secuencial de instrucciones. Un objeto contiene toda la información que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases e incluso frente a objetos de una clase. En esencia los datos se tratan separadamente de los procedimientos. La declarativa gira en torno al concepto de predicado o relación entre elementos. Las estructuras de datos utilizadas en programación son globales o se pasan como parámetros. Paradigma Orientado a Objetos En la programación orientada a objetos. Este paradigma se basa en tomar un problema y subdividirlos sucesivamente en subproblemas. hasta llegar a unos subproblemas suficientemente sencillos de resolver. 4 . relacionable a su vez con otras entidades "objeto".. Estos objetos se comunican entre ellos para realizar tareas. de corte más matemático. Es decir. Cada componente se considera un objeto. El núcleo central de este paradigma es la unión de datos y procesamiento en una entidad llamada "objeto". Los programas que utilizan sólo estas tres instrucciones de control básicas o sus variantes. Los objetos con características comunes se agrupan en clases. Paradigma lógico Comprende dos paradigmas de la programación. al poder tener valores bien diferenciados en sus atributos. se llaman estructurados. Los objetos son entidades que combinan un estado (es decir. se combinan los datos y los procedimientos en una entidad única. datos) y un comportamiento (procedimientos o métodos). la funcional se basa en el concepto de función (que es una evolución de los predicados).

Consta de dos partes: la declaración que lista o identifica los miembros de la clase (atributos y métodos). Clase-interfaz determina la forma en la cual los elementos de la clase (atributos y métodos) pueden o no ser usados (son visibles) por cada uno de los tres tipos diferentes de usuarios: elementos de la misma clase. 5 . Descripción de los datos (atributos) y de las operaciones que describen el comportamiento de un cierto conjunto de elementos homogéneos. Es un patrón (plantilla) que define los atributos y métodos a ser incluidos. y la implementación. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ella. que define el cuerpo de los métodos de la clase. elementos de clases relacionadas (herencia) y elementos externos.Definición y ejemplo de cada principio y concepto del paradigma orientado a objetos Conceptos Clase Definiciones de las propiedades y comportamiento de un tipo de objeto concreto.

Tienen tres características: Estado: Contiene las propiedades (usualmente estáticas). Objeto Instancia de una clase. o con objetos internos del sistema (programa). además de los valores actuales de estas propiedades (usualmente dinámicas). refina las estructuras sin necesidad de duplicar información. se mantienen escondidos al programador y sólo pueden ser accedidos a través de otros métodos públicos. Esto es así para mantener hegemónico el ideal de POO. La clase nueva (jerarquía inferior) es conocida como subclase o clase derivada y la clase de mayor nivel se denomina superclase o clase base. Herencia Por ejemplo. herencia de la clase C a la clase D. los componentes registrados como “privados” (private) también se heredan. Entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos). Se corresponden con los objetos reales del mundo que nos rodea. para la definición de una clase nueva se pueden usar clases existentes. basado en el principio de jerarquía. como si esos atributos y operaciones hubiesen sido definidos por la misma D. por lo tanto. mismo que consecuentemente reaccionan a eventos. puede usar los mismos métodos y variables públicas declaradas en C. estableciendo niveles de jerarquía y programando sólo las diferencias. pero como no pertenece a la clase. es la facilidad mediante la cual la clase D hereda en ella cada uno de los atributos y operaciones de C. Permite crear clases nuevas a partir de clases ya existentes. Hace que cada objeto sea único 6 .Clase-relaciones. ya sea incorporando un objeto como atributo de clase (agrupación) o estableciendo una generalización (herencia).

Estado interno Es una variable que se declara privada. Está totalmente definido por sus acciones u operaciones. o en la generación de un “evento” con un nuevo mensaje para otro objeto del sistema. Mensaje Una comunicación dirigida a un objeto. que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó. la Atributos Características que tiene la clase. se conserva durante toda la vida del objeto aun cuando se realicen cambios de estado. Comportamiento: Indica la forma como el objeto actúa y reacciona en término de los cambios de estado. 7 . Desde el punto de vista del comportamiento. cuya ejecución se desencadena tras la recepción de un “mensaje”. que hace los datos visibles desde fuera del objeto y esto se define como sus características predeterminadas. es lo que el objeto puede hacer. es independiente del estado. es decir la acción que genera. que puede ser únicamente accedida y alterada por un método del objeto. También se puede definir como evento a reacción que puede desencadenar un objeto. y cuyo valor puede ser alterado por la ejecución de algún método. Evento Es un suceso en el sistema (tal como una interacción del usuario con la máquina. y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). o un mensaje enviado por un objeto). No es visible al programador que maneja una instancia de la clase. Método Algoritmo asociado a un objeto (o a una clase de objetos). Es la base para construir/armar un mensaje hacia el objeto correspondiente. Propiedad o atributo Contenedor de un tipo de datos asociados a un objeto (o una clase de objetos). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. Un método puede producir un cambio en las propiedades del objeto.Identidad: distingue a un objeto del resto.

pueden compartir el mismo nombre. Es la clave en el proceso de análisis y diseño orientado a objetos. Proteger los datos de un objeto del uso arbitrario. asociados a objetos distintos. Un ejemplo es cómo y qué capta cada una de las señoras el concepto de gato. y la invocación de un comportamiento en una referencia producirá el comportamiento correcto para el tipo real del objeto referenciado. ya que mediante ella podemos llegar a armar un conjunto de clases que permitan modelar la realidad o el problema que se quiere atacar. El proceso de abstracción permite seleccionar las características relevantes dentro de un conjunto e identificar comportamientos comunes para definir nuevos tipos de entidades en el mundo real. Encapsulamiento Significa reunir todos los elementos que pueden considerarse pertenecientes a una misma entidad. Nos ayuda a percibir que todas las instancias de un concepto más específico son también instancias de un concepto general. Las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos. al mismo nivel de abstracción. al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando. Permite examinar si los conceptos tienen algo en común. y “comunicarse” con otros objetos en el sistema sin revelar “cómo” se implementan estas características. Poliformismo Comportamientos diferentes. donde se capturan sus comportamientos.Principios Abstracción Denota las características esenciales de un objeto. Esto permite aumentar la cohesión (diseño estructurado) de los componentes del sistema. Informar y cambiar su estado. 8 . Se refiere a incluir dentro de un objeto todo lo que este necesita y hacerlo de forma tal que ningún otro objeto vea su estructura interna. Cada objeto en el sistema sirve como modelo de un “agente” abstracto que puede realizar trabajo. Jerarquía Es el resultado de distinguir un concepto que es más general que otro.

Cuando esto ocurre en “tiempo de ejecución”. Regla 1- Correspondencia directa: Compatible con cualquier otra estructura modular obtenida en el proceso de modelado del dominio del problema. 9 .Composición modular: Producción de elementos combinables unos con otros para producir nuevos sistemas. Modularidad Permite subdividir una aplicación en partes más pequeñas (módulos). Se pueden compilar por separado. cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes. pero tienen conexiones con otros módulos. Criterio 3- Comprensibilidad modular: Cada módulo puede ser entendido sin tener que conocer los otros. se le llama asignación tardía o dinámica. conectados con estructuras sencillas e independientes. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. siendo de alta complejidad técnica por lo cual suele recurrirse a la herencia virtual para evitar la duplicación de datos. sólo se propaga a módulos vecinos. Esto suele hacerse habitualmente agrupando los objetos en clases y estas en árboles o enrejados que reflejan un comportamiento común. Regla 3-Pequeñas interfaces: Si dos módulos se comunican deben intercambiar la menor información posible. La herencia organiza y facilita el poliformismo y el encapsulamiento. queda sólo en ese módulo. formando una jerarquía de clasificación. Criterio 2. Cuando hay una situación anormal dentro de un módulo durante su ejecución. Regla 2- Pocas interfaces: Cada módulo debe comunicarse con el menor número de módulos posibles. Herencia Las clases no se encuentran aisladas. sino que se relacionan entre sí. permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Pueden compartir y extender su comportamiento sin tener que volver a implementarlo. Criterio 1- Descomposición modular: Descomponer el problema de software en pequeños subproblemas. 5 reglas y 5 principios. en el peor de los casos. Criterio 5- Protección modular. Criterio 4- Continuidad modular: Un cambio en la especificación provoca cambios en uno o algunos módulos. Cuando un objeto hereda de más de una clase se dice que hay herencia múltiple. 5 criterios.

Toda la información relativa a un módulo debe formar parte del mismo módulo.Ocultamiento de información: Cada uno debe de tener seleccionada un subconjunto de propiedades como información oficial del módulo para ponerla a disposición de otros módulos. existe hasta que no sea más necesitado y el espacio que ocupa es reutilizado. y cada tipo de objeto expone una “interfaz” a otros objetos que especifica cómo pueden interactuar con los objetos de la clase. habrá sólo un módulo del sistema que conozca su lista completa. Principio 5- Elección única: Cuando se deba admitir un conjunto de alternativas. es un módulo natural. El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas. eliminando efectos secundarios e interacciones inesperadas. Concurrencia Es la propiedad que distingue un objeto activo de uno que no lo es.Acceso uniforme: Todos los servicios ofrecidos por un módulo deben estar disponibles a través de una notificación uniforme sin importar la forma como están implementados. Principio 2- Auto-documentación. Tanto la necesidad de espacio para almacenar el objeto como su recuperación. solamente los propios métodos internos del objeto pueden acceder a su estado. Principio 1- Unidades modulares lingüísticas: Deben corresponderse con las unidades sintácticas en el lenguaje utilizado. Principio de ocultación Cada objeto está aislado del exterior.Regla 4- Interfaces explícitas: Siempre que dos módulos A y B se comuniquen. Permite a diferentes objetos actuar al mismo tiempo. involucran a los dependientes (objetos relaciones) de dicho objeto. Persistencia Es la propiedad que tiene un objeto de existir en el tiempo y en el espacio. Principio 4. Regla 5. cada uno de ellos tiene autonomía. Principio 3.Abierto/Cerrado: Deben de ser a la vez abiertos (disponible para ser extendido) y cerrados (disponible para ser usado por otros módulos). de B o de ambos. debe ser obvio a partir del contexto de A. 10 .

Habilitan los grupos de clases para estar disponibles sólo si son necesarios y eliminan los conflictos potenciales entre los nombres de clases en grupos diferentes de clases.Paquete Son una forma de agrupar clases es interfaces asociadas. los objetos que hayan quedado sin ninguna referencia a ellos. y por tanto desvincular la memoria asociada. Recolección de basura Es la técnica por la cual el entorno de objetos se encarga de destruir automáticamente. 11 .

ayuda a explorar varias arquitecturas y soluciones de diseño antes de escribir el código.  Para captar y enumerar los requisitos y el dominio de conocimiento. El propósito es conseguir que los aspectos de alto nivel estén correctos antes de abordar los detalles más localizados. recuperar. sino también las declaraciones de organización sobre los artefactos del sistema que son necesarios. Un modelo de ejemplo o prototipo incluye instancias más que descriptores generales. y pueden validar las especificaciones e implementación del sistema. Ejemplos de sistemas típicos o posibles Algunos bien elegidos pueden facilitar el entendimiento a las personas. de algo en el mismo medio y otro medio.  Para organizar. 12 . Especificaciones abstractas de la estructura esencial de un sistema Los modelos en el análisis o en las etapas preliminares del diseño se centran en los conceptos y mecanismos claves del probable sistema. Según progresa el diseño. Guía al proceso de pensamiento Para enfocar el proceso el pensamiento de los participantes y destacar determinadas opciones.  Para pensar el diseño del sistema. examinar y corregir la información en grandes sistemas.¿Para qué sirven los modelos? Primero sería conveniente saber qué es un modelo. Debe incluir las construcciones para empaquetar el modelo. encontrar. para la comprensión de la persona. y simplifica u omite el resto. Especificaciones completas de un sistema final Debe incluir no solamente la semántica lógica del sistema y los algoritmos. Generalmente usan sólo un subconjunto de las construcciones de UML. Capturan requisitos y representan un punto de partida hacia un diseño del sistema. en cierto medio. El modelo capta los aspectos importantes de lo que estamos modelando. filtrar. Con base en esto. Un modelo es una representación. para que todos lo puedan entender y estar de acuerdo. las estructuras de datos y los mecanismos que aseguran su funcionamiento apropiado-. y para la conveniencia de la computadora. los primeros modelos son sustituidos por otros modelos más exactos. permitiendo así el trabajo cooperativo de las personas y el procesamiento por parte de las herramientas. desde cierto punto de vista.  Para explorar económicamente múltiples soluciones. veremos para qué nos sirven los modelos.

por ejemplo clases. metodologías y herramientas utilizadas. sino que agrega a menudo las connotaciones para un usuario. casos de uso y mensajes. Notación La notación no agrega significado a un modelo. La notación es algo más que figuras: incluye información en texto e hiperenlaces invisibles entre elementos de representación. Debe de considerar una variedad de aspectos. como el conjunto de personas estructuras organizacionales. estados. tal como la afinidad percibida de dos conceptos basados en su proximidad en un diagrama. asociaciones. sino que ayuda al usuario a entender su significado. Se utiliza para la generación del código. ¿Cuál es la diferencia entre una metodología y una notación? Metodología Es una versión ampliada del ciclo de vida completo del desarrollo de sistemas. reglas. componentes de software. la comprobación de la validez. funciones desempeñadas en cada tarea.  Debe existir un equilibrio entre la complejidad de la notación y la precisión que se requiere al hacer el modelo. etc. que incluyen tareas o pasos para cada fase. Información semántica El aspecto semántico capta el significado de una aplicación como una res de construcciones lógicas. Especificación frente a implementación Es importante determinar el qué. Diversos puntos de vista serán necesarios. Un modelo de proceso de software define cómo solucionar la problemática del desarrollo de sistemas de software. No tiene semántico. políticas. el comportamiento y la estructura de un sistema. antes de invertir tiempo en el cómo. La presentación visual muestra la información semántica de modo que se pueda ser considerada. productos resultantes. hojeada y corregida por los seres humanos. las métricas de complejidad. normas de calidad y técnicas de desarrollo que se utilizan en cada tarea. 13 . actividades. La notación debe ser un vehículo para capturar la forma de funcionar.Semántica y presentación Los modelos tienen dos aspectos importantes: (semántica) y presentación visual (notación).  No será posible encontrar la información relevante en un único diagrama.

14 . La notación es la representación o formato común o estándar que tienen o comparten las metodologías. Que símbolos se manejan. La notación no es un fin en si misma.

urjc.html  http://trevinca.es/~rlaza/teoria/OO_Transparencias.net/karlalopezbello/principios-orientacionobjetos 15 .pdf  https://es.ve/scielo.wikipedia.ei.gob.edu.pdf  http://www.Mesografía  http://www.mx/Cursos/Tecnologia %20amiga/desarrolladordesoftware/POO_SE.es/docencia/IS_LADE/2012-2013/Material/ %5BIS-LADE-2012-13%5DT10%20-%20Introducci%C3%B3n%20a%20la %20Orientaci%C3%B3n%20a%20Objetos.scielo.uvigo.co/lms/men_udea/mod/page/view.es/libro/python/capitulo_5/programacion_orientada_a_obj etos.php?script=sci_arttext&pid=S131648212009000100008  http://es.html  http://librosweb.capacinet.php? id=19537  http://librosweb.pdf  http://aprendeenlinea.etsii.org/wiki/Programaci%C3%B3n_orientada_a_objetos  http://www.udea.slideshare.org.es/libro/python/capitulo_5/pensar_en_objetos.kybele.