Informática I<br />Módulo 1<br />Paradigma Orientado a Objetos<br />Ing. Julio Gonzalo Brito<br />
Ingeniería de Software<br />Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />2<br />
Ingeniería de Software<br />Su objetivo central versa en torno a encontrar formas de construir software de calidad, para e...
Ingeniería de Software<br />Calidad del Software (algunos principios)<br /><ul><li>Corrección: cumplimiento de las tareas ...
Robustez: capacidad de funcionar en situaciones anómalas.
Extensibilidad: facilidad de adaptación a los cambios de especificaciones.
Reusabilidad: posibilidad de reutilización parcial o total en nuevas aplicaciones.
Compatibilidad: capacidad de integración y combinación con otros productos software.</li></ul>Instituto Universitario Aero...
Ingeniería de Software<br />Calidad del Software (algunos principios)<br /><ul><li>Eficiencia: utilizar el mínimo de recur...
Facilidad de Uso: dotar al producto de capacidades que favorezcan la interacción.
Portabilidad: capacidad del producto de ejecutarse en diversas plataformas.
Mantenimiento: establecer mecanismo de mantención y evolución de manera amigable y gestionable.</li></ul>Instituto Univers...
Paradigmas de Programación<br />Un paradigma es un modelo aceptado que nos permite investigar e interpretar las observacio...
Paradigma Orientado a Objetos: efectúa una descomposición en objetos para realizar la interpretación de los hechos citados...
Paradigma Orientado a Objetos<br />Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />7<b...
Paradigma Orientado a Objetos<br />Basamento epistémico del Modelo<br /><ul><li>Énfasis en los objetos como módulos que en...
Con la aproximación orientada a objeto el sistema se representa como una colección de objetos que interaccionan entre sí m...
Detalles de diseño, incluyendo implementación de procedimientos y especificación de estructuras de datos se retrasan en el...
Polimorfismo<br />Abstracción<br />Encapsulación<br />Modularidad<br />Jerarquía<br />Paradigma Orientado a Objetos<br />P...
Abstracción<br /><ul><li>Permite centrarse en los aspectos esenciales inherentes de una entidad,  e ignorar sus propiedade...
constituye una de las formas esenciales de abordar la complejidad, evitando que nos comprometamos prematuramente con detal...
Utiliza la encapsulación para reforzar la abstracción.</li></ul>Instituto Universitario Aeronáutico – Cátedra de Informáti...
125 km/h<br />300 km/h<br />40 km/h<br />Encapsulación<br /><ul><li>Facilita el manejo de la complejidad, ya que sólo se c...
nos interesa conocer qué hace la Clase pero no saber cómo lo hace.
La abstracción se centra en la vista externa y la encapsulación en la interna.</li></ul>Acelera()<br />velocidad<br />Fren...
Conjunto Motor<br />Chasis<br />Modularidad<br /><ul><li>Es la propiedad de un sistema que ha sido descompuesto en un conj...
Dividir un sistema en subsistemas, reduce notoriamente la complejidad.
Abstracción,Encapsulación y Modularidad se emplean de forma sinérgica.</li></ul>Motor<br />tipo<br />       Caja<br />    ...
Automóvil<br />Transporte<br />Acelera<br />Frena<br />Jerarquía<br /><ul><li>Constituyen la ordenación o clasificación de...
Las dos jerarquías más importantes para abordar la complejidad son:
Generalización-Especialización, cuya semántica es “es un”, determinando Herencia (simple o múltiple).
Agregación, cuya semántica es “parte de”, permitiendo el agrupamiento físico de estructuras relacionadas lógicamente.</li>...
Jerarquías de Clase<br />Transporte<br />Marítimo<br />Aire<br />Nieve<br />Tierra<br />Atmosfera<br />NoAtmosfera<br />1-...
Upcoming SlideShare
Loading in …5
×

Clase1

791 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
791
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
32
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Clase1

  1. 1. Informática I<br />Módulo 1<br />Paradigma Orientado a Objetos<br />Ing. Julio Gonzalo Brito<br />
  2. 2. Ingeniería de Software<br />Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />2<br />
  3. 3. Ingeniería de Software<br />Su objetivo central versa en torno a encontrar formas de construir software de calidad, para ello se vale de principios, métodos y herramientas que le permitirán abordar la complejidad inherente al desarrollo de productos software.<br />Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />3<br />
  4. 4. Ingeniería de Software<br />Calidad del Software (algunos principios)<br /><ul><li>Corrección: cumplimiento de las tareas especificadas.
  5. 5. Robustez: capacidad de funcionar en situaciones anómalas.
  6. 6. Extensibilidad: facilidad de adaptación a los cambios de especificaciones.
  7. 7. Reusabilidad: posibilidad de reutilización parcial o total en nuevas aplicaciones.
  8. 8. Compatibilidad: capacidad de integración y combinación con otros productos software.</li></ul>Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />4<br />
  9. 9. Ingeniería de Software<br />Calidad del Software (algunos principios)<br /><ul><li>Eficiencia: utilizar el mínimo de recursos para el desarrollo de un producto de calidad.
  10. 10. Facilidad de Uso: dotar al producto de capacidades que favorezcan la interacción.
  11. 11. Portabilidad: capacidad del producto de ejecutarse en diversas plataformas.
  12. 12. Mantenimiento: establecer mecanismo de mantención y evolución de manera amigable y gestionable.</li></ul>Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />5<br />
  13. 13. Paradigmas de Programación<br />Un paradigma es un modelo aceptado que nos permite investigar e interpretar las observaciones del mundo real.<br /><ul><li>Paradigma Estructurado: efectúa una descomposición funcional para representar los hechos del mundo real.La estructura de módulo resultante está por lo tanto orientada a las operaciones más que sobre los datos.
  14. 14. Paradigma Orientado a Objetos: efectúa una descomposición en objetos para realizar la interpretación de los hechos citados. Por consecuencia, los programas se estructuran por los datos más que por las operaciones.</li></ul>Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />6<br />
  15. 15. Paradigma Orientado a Objetos<br />Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />7<br />
  16. 16. Paradigma Orientado a Objetos<br />Basamento epistémico del Modelo<br /><ul><li>Énfasis en los objetos como módulos que encapsulan el estado y el comportamiento con interfaces que especifican claramente los servicios ofrecidos por el módulo.
  17. 17. Con la aproximación orientada a objeto el sistema se representa como una colección de objetos que interaccionan entre sí mediante mensajes.
  18. 18. Detalles de diseño, incluyendo implementación de procedimientos y especificación de estructuras de datos se retrasan en el proceso de diseño, y se ocultan en la fase de implementación.</li></ul>Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />8<br />
  19. 19. Polimorfismo<br />Abstracción<br />Encapsulación<br />Modularidad<br />Jerarquía<br />Paradigma Orientado a Objetos<br />Pilares Fundamentales del Modelo<br />Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />9<br />
  20. 20. Abstracción<br /><ul><li>Permite centrarse en los aspectos esenciales inherentes de una entidad, e ignorar sus propiedades accidentales.
  21. 21. constituye una de las formas esenciales de abordar la complejidad, evitando que nos comprometamos prematuramente con detalles.
  22. 22. Utiliza la encapsulación para reforzar la abstracción.</li></ul>Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />10<br />
  23. 23. 125 km/h<br />300 km/h<br />40 km/h<br />Encapsulación<br /><ul><li>Facilita el manejo de la complejidad, ya que sólo se conoce el comportamiento pero no los detalles internos.
  24. 24. nos interesa conocer qué hace la Clase pero no saber cómo lo hace.
  25. 25. La abstracción se centra en la vista externa y la encapsulación en la interna.</li></ul>Acelera()<br />velocidad<br />Frena()<br />Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />11<br />
  26. 26. Conjunto Motor<br />Chasis<br />Modularidad<br /><ul><li>Es la propiedad de un sistema que ha sido descompuesto en un conjunto de módulos cohesivos y poco acoplados.
  27. 27. Dividir un sistema en subsistemas, reduce notoriamente la complejidad.
  28. 28. Abstracción,Encapsulación y Modularidad se emplean de forma sinérgica.</li></ul>Motor<br />tipo<br /> Caja<br /> denominación <br />identificador<br />potencia<br /> cambios<br /> arranca(ignición)<br />Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />12<br />
  29. 29. Automóvil<br />Transporte<br />Acelera<br />Frena<br />Jerarquía<br /><ul><li>Constituyen la ordenación o clasificación de las abstracciones efectuadas.
  30. 30. Las dos jerarquías más importantes para abordar la complejidad son:
  31. 31. Generalización-Especialización, cuya semántica es “es un”, determinando Herencia (simple o múltiple).
  32. 32. Agregación, cuya semántica es “parte de”, permitiendo el agrupamiento físico de estructuras relacionadas lógicamente.</li></ul>Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />13<br />
  33. 33. Jerarquías de Clase<br />Transporte<br />Marítimo<br />Aire<br />Nieve<br />Tierra<br />Atmosfera<br />NoAtmosfera<br />1-Persona<br />N-Personas<br />Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />14<br />
  34. 34. Transporte<br />Acelera<br />Frena<br />Polimorfismo<br /><ul><li>Establece la capacidad de que un mensaje sea interpretado de diferente manera según los objetos instanciados.
  35. 35. La definición del método reside en la clase base.
  36. 36. La implementación del método reside en la clase derivada.</li></ul>Auto<br />Acelera<br />Frena<br />Cohete<br />Acelera<br />Frena<br />Caballo<br />Acelera<br />Frena<br />Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />15<br />
  37. 37. Notación de Modelado UML<br />Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />16<br />
  38. 38. Notación UML<br /><ul><li>Constituye el acrónimo de UnifiedModelingLanguage.
  39. 39. Es una notación empleada para el modelado Orientado a Objetos.
  40. 40. Combina notaciones provenientes desde:
  41. 41. Modelado Orientado a Objetos
  42. 42. Modelado de Datos
  43. 43. Modelado de Componentes
  44. 44. Modelado de Flujos de Trabajo</li></ul>Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />17<br />
  45. 45. Notación UML<br />Diagramas<br />de Clases<br />Diagramas<br />de Casos de<br />Uso<br />Diagramas<br />de Objetos<br />Diagramas de<br />Actividad<br />Diagramas<br />de Estados<br />Diagramas<br />de<br />Secuencia<br />Modelos<br />Component<br />Diagrams<br />Component<br />Diagrams<br />Diagramas de<br />Componentes<br />Diagramas<br />de <br />Colaboración<br />Diagramas de<br />Implantación<br />Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />18<br />
  46. 46. Programación Orientada a Objetos<br />Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />19<br />
  47. 47. Programación Orientada a Objetos<br />Constituye un método de programación en el que un programa se contempla como un conjunto de objetos limitados que, a su vez, son colecciones independientes de estructuras de datos y rutinas que interactúan con otros objetos, dando acceso para modificar el contenido de un dato o propiedad del propio objeto. También se identifica con las siglas POO y OOP (del inglés ObjectOrientedProgramming).<br />Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />20<br />
  48. 48. ¿Qué es un Objeto?<br />Es la representación de un concepto para un programa, y contiene la información necesaria para abstraer tal concepto mediante:<br /><ul><li>Los atributos o propiedades que describen su estado.
  49. 49. Las operaciones o métodos que pueden modificar dicho estado, determinando las capacidades del objeto.</li></ul>Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />21<br />
  50. 50. TDA(Tipos de Datos Abstractos)<br /><ul><li>Los TDA definen la funcionalidad al poner especial énfasis en los datos involucrados, su estructura, operaciones, así como en axiomas y precondiciones.
  51. 51. Consecuentemente, la programación orien-tada a objetos es "programación con TDA", al combinar la funcionalidad de distintos TDAs para resolver un problema.
  52. 52. En orientación a objetos, nos referimos a los tipos de dato abstractos (TDA) como clases. Por lo tanto, una clase define las propiedades de objetos instancia en un ambiente orientado a objetos.</li></ul>Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />22<br />
  53. 53. Clases y Objetos<br /><ul><li>En tanto, una clase conforma un modelo abstracto de un objeto del mundo real, que define los atributos y operaciones de dicho objeto. Por tanto, es una plantilla que define un objeto.
  54. 54. Consecuentemente, un objeto constituye una instancia simple de una clase, que detenta un estado y un comportamiento. Los objetos, retienen la estructura y las operaciones de una clase.</li></ul>Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />23<br />
  55. 55. Implementación en Java<br />Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />24<br />
  56. 56. Creación de Clases<br />Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />25<br />
  57. 57. Creación de Clases<br />Modificador de Acceso<br />Nombre de Clase<br />Método Público<br />Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />26<br />
  58. 58. Creación de Objetos<br />Importo Biblioteca<br />Instancia <br />de Clase<br />Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />27<br />
  59. 59. Variables Primitivas y Objeto<br />Variable Primitiva<br />Variable Objeto<br />Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />28<br />
  60. 60. Asignación de Referencias<br />Asignación de Referencia<br />Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />29<br />
  61. 61. Encapsulación / Visibilidad<br />Una clase puede controlar la visibilidad que tendrán sus atributos y métodos desde el exterior de la misma, mediante los modificadores de acceso:<br /><ul><li>Private: el atributo o método sólo es visible dentro de la clase donde se define.
  62. 62. Protected: el campo o método es visible en la clase donde se define y en cualquiera de sus subclases.
  63. 63. Public: El campo o método es visible en cualquier clase.
  64. 64. Ninguno de los anteriores (amistoso): el campo o método es visible en cualquiera de las clases pertenecientes al paquete donde se define.</li></ul>Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />30<br />
  65. 65. Encapsulación / Visibilidad<br />Modificadores de Acceso<br />Operaciones permitidas<br />Operaciones restringidas<br />Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />31<br />
  66. 66. Encapsulación / Visibilidad<br />Modificadores de Acceso<br />Operaciones permitidas<br />Operaciones restringidas<br />Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />32<br />
  67. 67. Herencia / Polimorfismo<br />Herencia Simple<br />Variables propias de la instancia<br />Instancia de Clase Base<br />Imprime 1<br />Instancia de Clase actual<br />Imprime 10<br />Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores<br />33<br />

×