Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Introducción a la Programación Orientada a Objetos: Resumen de los Capítulos 2 y 3, Apuntes de Programación Orientada a Objetos

resumen del capitulo 2 y 3 del libro de programacion orientada a objetos y eventos

Tipo: Apuntes

2019/2020

Subido el 23/04/2020

patrick-fernando-sierra-sanchez
patrick-fernando-sierra-sanchez 🇲🇽

3 documentos

1 / 5

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Resumen capítulo 2 y 3:
Patrick Fernando Sierra Sánchez
Capítulo 2:
La tecnología orientada a objetos se basa en una sólida base de ingeniería, cuyos
elementos llamamos colectivamente el modelo de desarrollo del objeto o
simplemente el modelo de objeto. El modelo de objetos abarca los principios de
abstracción, encapsulación, modularidad, jerarquía, tipificación, concurrencia y
persistencia. Por sí mismos, ninguno de estos principios es nuevo. Lo importante
del modelo de objetos es que estos elementos se unen de manera sinérgica. No
hay duda de que el análisis y el diseño orientado a objetos es fundamentalmente
diferente de los enfoques de diseño estructurado tradicionales: requiere una forma
diferente de pensar sobre la descomposición, y produce arquitecturas de software
que están en gran medida fuera del ámbito de la cultura del diseño estructurado.
El desarrollo orientado a objetos no se generó espontáneamente a partir de las
cenizas. de los incontables proyectos de software fallidos que utilizaron tecnologías
anteriores. No es una desviación radical de los enfoques anteriores. De hecho, se
basa en las mejores ideas de tecnologías anteriores. En esta sección
examinaremos la evolución de las herramientas de nuestra profesión para
ayudarnos a comprender los fundamentos y el surgimiento de la tecnología
orientada a objetos.
Al mirar hacia atrás en la historia relativamente breve pero colorida de la ingeniería
de software, no podemos dejar de notar dos tendencias radicales:
1. El cambio de enfoque de la programación en pequeño a la programación en
grande.
2. La evolución de los lenguajes de programación de alto orden.
La mayoría de los nuevos sistemas de software de potencia industrial son más
grandes y complejos que sus predecesores, incluso hace unos pocos años. Este
crecimiento en complejidad ha provocado una cantidad significativa de investigación
aplicada útil en ingeniería de software. particularmente con respecto a la
descomposición, la abstracción y la jerarquía, el desarrollo de lenguajes de
programación más expresivos ha complementado estos avances.
¿Qué es, entonces, la programación orientada a objetos (O0P)? Lo definimos de la
siguiente manera:
pf3
pf4
pf5

Vista previa parcial del texto

¡Descarga Introducción a la Programación Orientada a Objetos: Resumen de los Capítulos 2 y 3 y más Apuntes en PDF de Programación Orientada a Objetos solo en Docsity!

Resumen capítulo 2 y 3: Patrick Fernando Sierra Sánchez Capítulo 2: La tecnología orientada a objetos se basa en una sólida base de ingeniería, cuyos elementos llamamos colectivamente el modelo de desarrollo del objeto o simplemente el modelo de objeto. El modelo de objetos abarca los principios de abstracción, encapsulación, modularidad, jerarquía, tipificación, concurrencia y persistencia. Por sí mismos, ninguno de estos principios es nuevo. Lo importante del modelo de objetos es que estos elementos se unen de manera sinérgica. No hay duda de que el análisis y el diseño orientado a objetos es fundamentalmente diferente de los enfoques de diseño estructurado tradicionales: requiere una forma diferente de pensar sobre la descomposición, y produce arquitecturas de software que están en gran medida fuera del ámbito de la cultura del diseño estructurado. El desarrollo orientado a objetos no se generó espontáneamente a partir de las cenizas. de los incontables proyectos de software fallidos que utilizaron tecnologías anteriores. No es una desviación radical de los enfoques anteriores. De hecho, se basa en las mejores ideas de tecnologías anteriores. En esta sección examinaremos la evolución de las herramientas de nuestra profesión para ayudarnos a comprender los fundamentos y el surgimiento de la tecnología orientada a objetos. Al mirar hacia atrás en la historia relativamente breve pero colorida de la ingeniería de software, no podemos dejar de notar dos tendencias radicales:

  1. El cambio de enfoque de la programación en pequeño a la programación en grande.
  2. La evolución de los lenguajes de programación de alto orden. La mayoría de los nuevos sistemas de software de potencia industrial son más grandes y complejos que sus predecesores, incluso hace unos pocos años. Este crecimiento en complejidad ha provocado una cantidad significativa de investigación aplicada útil en ingeniería de software. particularmente con respecto a la descomposición, la abstracción y la jerarquía, el desarrollo de lenguajes de programación más expresivos ha complementado estos avances. ¿Qué es, entonces, la programación orientada a objetos (O0P)? Lo definimos de la siguiente manera:

la programación orientada a objetos es un método de implementación en el que los programas se organizan como colecciones cooperativas de objetos, cada uno de los cuales representa una instancia de alguna clase, y cuyas clases son todos miembros de una jerarquía de clases unidas por herencia relaciones. Hay tres partes importantes en esta definición: (1) La programación orientada a objetos, utiliza objetos, no algoritmos, como sus componentes básicos lógicos fundamentales (la parte de la "jerarquía que presentamos en el Capítulo 1): (2) cada objeto es una instancia de alguna clase, y (3) las clases pueden estar relacionadas entre sí a través de relaciones de herencia (la jerarquía "es una" de la que hablamos en el Capítulo 1). Un programa puede parecer orientado a objetos, pero si existe falta de estos elementos, no es un programa orientado a objetos. Específicamente, la programación sin herencia claramente no está orientada a objetos; eso sería simplemente programar con tipos de datos abstractos. Según esta definición, algunos lenguajes están orientados a objetos, y algunos Stroustrup sugiere que "si el término 'lenguaje orientado a objetos significa algo, debe significar un lenguaje que tenga mecanismos que apoyen bien el estilo de programación orientado a objetos. incluye instalaciones que hacen que sea conveniente usar ese estilo. Un lenguaje no es compatible con una técnica si se requiere un esfuerzo o habilidad excepcional para escribir dichos programas; en ese caso, el lenguaje simplemente permite a los programadores usar las técnicas “. Desde una perspectiva teórica, se puede simular la programación orientada a objetos en lenguajes de programación no orientados a objetos como Pascal e incluso el lenguaje COBOL o asscm-blx, pero es horriblemente desgarbado hacerlo. Cardelli y Wegner dicen que un lenguaje soporta bien un estilo de programación si: El lenguaje [A] está orientado a objetos si y solo si cumple los siguientes requisitos:

  • Admite objetos que son abstracciones de datos con una interfaz de operaciones con nombre y un estado local oculto. - Los objetos tienen un tipo asociado [clase].
  • Los tipos [clases] pueden heredar atributos de supertipos (superclases). En conclusión: ■ La maduración de la ingeniería de software ha llevado al desarrollo de métodos de análisis, diseño y programación orientados a objetos, todos los cuales abordan los problemas de la programación en general. ■ Existen varios paradigmas de programación diferentes: orientado a procedimientos, orientado a objetos, orientado a la lógica, orientado a reglas y orientado a restricciones. ■ Una abstracción denota las características esenciales de un objeto que lo distingue de todos los demás tipos de objetos y, por lo tanto, proporciona límites conceptuales claramente definidos, en relación con la perspectiva del espectador.

normalmente desarrolla lo que se llama el concepto de objeto, una habilidad que es de importancia crítica para el desarrollo cognitivo futuro. Muestre una pelota a un niño de un año y luego escóndela, y ella generalmente la buscará aunque no sea visible. A través del concepto de objeto, un niño se da cuenta de que los objetos tienen una permanencia e identidad aparte de cualquier operación en ellos. En el Capítulo 1, definimos informalmente un objeto como una entidad tangible que exhibe un comportamiento bien definido. Desde la perspectiva de la cognición humana, un objeto es cualquiera de los siguientes: ■ Una cosa tangible y / o visible ■ Algo que pueda ser comprendido intelectualmente ■ Algo hacia el cual se dirige el pensamiento o la acción. Agregamos a nuestra definición informal la idea de que un objeto modela una parte de la realidad y, por lo tanto, es algo que existe en el tiempo y el espacio. En software, el término objeto primero se aplicó formalmente en el lenguaje Simula; Los objetos típicamente existían en los programas Simula para simular algún aspecto de la realidad. Los objetos del mundo real no son los únicos tipos de objetos que nos interesan durante el desarrollo de software. Otros tipos importantes de objetos son las invenciones del proceso de diseño cuyas colaboraciones con otros objetos similares sirven como mecanismos que proporcionan un comportamiento de nivel superior. Jacobson y col. defina los objetos de control como "los que unen cursos de eventos y por lo tanto mantendrán comunicación con otros objetos". Esto nos lleva a la definición más refinada de Smith y Tockey, que sugieren que "un objeto representa un elemento, unidad o entidad individual, identificable, real o abstracto, con un papel bien definido en el dominio del problema". Considere por un momento una planta de fabricación que procesa materiales compuestos para fabricar artículos tan diversos como cuadros de bicicleta y alas de avión. Las plantas de fabricación a menudo se dividen en tiendas separadas: mecánica, química, eléctrica, etc. Los talleres se dividen en celdas, y en cada celda tenemos una colección de máquinas, como sellos, prensas y tornos. A lo largo de una línea de fabricación, podríamos encontrar depósitos que contengan materias primas, que se utilizan en un proceso químico para producir bloques de materiales compuestos, y que a su vez se forman y forman para producir cuadros de bicicleta,

alas de avión y otros artículos finales. Cada una de las cosas tangibles que hemos mencionado hasta ahora es un objeto. Un torno tiene un límite definido que lo separa del bloque de material compuesto sobre el que opera; un cuadro de bicicleta tiene un límite definido que lo distingue de la celda de máquinas que produjo el cuadro en sí. Algunos objetos pueden tener límites conceptuales nítidos, pero representan eventos o procesos intangibles. Por ejemplo, un proceso químico en una planta de fabricación. puede tratarse como un objeto porque tiene un límite conceptual nítido, interactúa con ciertos otros objetos a través de una colección bien ordenada de operaciones que se desarrolla con el tiempo y exhibe un comportamiento bien definido. Del mismo modo, considere un sistema CAD / CAM para modelar sólidos. Cuando dos sólidos, como una esfera y un cubo, se cruzan, pueden formar una línea irregular de intersección. Aunque no existe aparte de la esfera o el cubo, esta línea sigue siendo un objeto con límites conceptuales claramente definidos. En conclusión: ■ Un objeto tiene estado, comportamiento e identidad. ■ La estructura y el comportamiento de objetos similares se definen en su clase común. ■ El estado de un objeto abarca todas las propiedades (generalmente estáticas) del objeto más los valores actuales (generalmente dinámicos) de cada una de estas propiedades. ■ Comportamiento es cómo un objeto actúa y reacciona en términos de sus cambios de estado y el paso de mensajes. ■ La identidad es la propiedad de un objeto que lo distingue de todos los demás objetos. ■ Una clase es un conjunto de objetos que comparten una estructura y un comportamiento comunes. ■ Los tres tipos de relaciones incluyen asociación, herencia y agregación. ■ Las abstracciones clave son las clases y los objetos que forman el vocabulario del dominio del problema. ■ Un mecanismo es una estructura mediante la cual un conjunto de objetos trabajan juntos para proporcionar un comportamiento que satisface algunos requisitos del problema. ■ La calidad de una abstracción puede medirse por su acoplamiento, cohesión, suficiencia, integridad y primitividad.