33
Informática I Módulo 1 Paradigma Orientado a Objetos Ing. Julio Gonzalo Brito

Clase1

Embed Size (px)

Citation preview

Page 1: Clase1

Informática I

Módulo 1

Paradigma Orientado a Objetos

Ing. Julio Gonzalo Brito

Page 2: Clase1

2Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Ingeniería de Software

Page 3: Clase1

3

Su objetivo central versa en torno a encontrarformas de construir software de calidad,para ello se vale de principios, métodos yherramientas que le permitirán abordar lacomplejidad inherente al desarrollo deproductos software.

Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Ingeniería de Software

Page 4: Clase1

Ingeniería de Software

4Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Corrección: cumplimiento de las tareas especificadas.

Robustez: capacidad de funcionar en situacionesanómalas.

Extensibilidad: facilidad de adaptación a los cambios deespecificaciones.

Reusabilidad: posibilidad de reutilización parcial o totalen nuevas aplicaciones.

Compatibilidad: capacidad de integración ycombinación con otros productos software.

Calidad del Software (algunos principios)

Page 5: Clase1

Ingeniería de Software

5Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Calidad del Software (algunos principios)

Eficiencia: utilizar el mínimo de recursos para eldesarrollo de un producto de calidad.

Facilidad de Uso: dotar al producto de capacidades quefavorezcan la interacción.

Portabilidad: capacidad del producto de ejecutarse endiversas plataformas.

Mantenimiento: establecer mecanismo de mantención yevolución de manera amigable y gestionable.

Page 6: Clase1

Paradigmas de Programación

6Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Un paradigma es un modelo aceptado que nospermite investigar e interpretar lasobservaciones del mundo real.

Paradigma Estructurado: efectúa unadescomposición funcional para representar los hechosdel mundo real. La estructura de módulo resultante estápor lo tanto orientada a las operaciones más que sobrelos datos.

Paradigma Orientado a Objetos: efectúa unadescomposición en objetos para realizar lainterpretación de los hechos citados. Por consecuencia,los programas se estructuran por los datos más que porlas operaciones.

Page 7: Clase1

7Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Paradigma Orientado a Objetos

Page 8: Clase1

Paradigma Orientado a Objetos

8Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Énfasis en los objetos como módulos queencapsulan el estado y el comportamiento coninterfaces que especifican claramente los serviciosofrecidos por el módulo.

Con la aproximación orientada a objeto el sistemase representa como una colección de objetos queinteraccionan entre sí mediante mensajes.

Detalles de diseño, incluyendo implementación deprocedimientos y especificación de estructuras dedatos se retrasan en el proceso de diseño, y seocultan en la fase de implementación.

Basamento epistémico del Modelo

Page 9: Clase1

Paradigma Orientado a Objetos

9Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Pilares Fundamentales del Modelo

Abstracción Encapsulación Modularidad Jerarquía Polimorfismo

Page 10: Clase1

10Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Abstracción

Permite centrarse en los aspectos esencialesinherentes de una entidad, e ignorar suspropiedades accidentales.

constituye una de las formas esenciales de abordarla complejidad, evitando que noscomprometamos prematuramente con detalles.

Utiliza la encapsulación para reforzar laabstracción.

Page 11: Clase1

11Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Encapsulación

Acelera()

velocidad

Frena()

Facilita el manejo de la complejidad, ya que sólo se

conoce el comportamiento pero no los detalles internos.

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.

Page 12: Clase1

12Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Modularidad

Es la propiedad de un sistema que ha sidodescompuesto en un conjunto de módulos cohesivosy poco acoplados.

Dividir un sistema en subsistemas, reduce notoriamentela complejidad.

Abstracción, Encapsulación y Modularidad seemplean de forma sinérgica.

Conjunto Motor Chasis

arranca(ignición)

identificadortipo

Motor

potencia

Caja

denominación

cambios

Page 13: Clase1

13Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Jerarquía

Constituyen la ordenación o clasificación de lasabstracciones efectuadas.

Las dos jerarquías más importantes para abordar lacomplejidad son:

Generalización-Especialización, cuya semánticaes “es un”, determinando Herencia (simple omúltiple).

Agregación, cuya semántica es “partede”, permitiendo el agrupamiento físico deestructuras relacionadas lógicamente.

AutomóvilTransporte

Acelera

Frena

Page 14: Clase1

14Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Jerarquías de Clase

Transporte

Marítimo Aire Nieve Tierra

Atmosfera NoAtmosfera 1-Persona N-Personas

Page 15: Clase1

Establece la capacidad de que un mensaje seainterpretado de diferente manera según losobjetos instanciados.

La definición del método reside en la clase base.

La implementación del método reside en la clasederivada.

15Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Polimorfismo

Acelera

FrenaTransporte

Acelera

Frena

Acelera

Frena

Acelera

Frena

Caballo

Auto

Cohete

Page 16: Clase1

16Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Notación de Modelado UML

Page 17: Clase1

Constituye el acrónimo de Unified ModelingLanguage.

Es una notación empleada para el modeladoOrientado a Objetos.

Combina notaciones provenientes desde:

Modelado Orientado a Objetos

Modelado de Datos

Modelado de Componentes

Modelado de Flujos de Trabajo

17Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Notación UML

Page 18: Clase1

18Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Diagramasde Casos de

Uso

Diagramasde

Secuencia

Diagramasde Estados

ComponentDiagramsComponent

DiagramsDiagramas deComponentes

Modelos

Diagramasde Objetos

Diagramasde

Colaboración

Diagramas deActividad

Diagramasde Clases

Diagramas deImplantación

Notación UML

Page 19: Clase1

19Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Programación Orientada a Objetos

Page 20: Clase1

Constituye un método de programación enel que un programa se contempla como unconjunto de objetos limitados que, a suvez, son colecciones independientes deestructuras de datos y rutinas queinteractúan con otros objetos, dando accesopara modificar el contenido de un dato opropiedad del propio objeto. También seidentifica con las siglas POO y OOP (del inglésObject Oriented Programming).

20Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Programación Orientada a Objetos

Page 21: Clase1

Es la representación de un concepto paraun programa, y contiene la informaciónnecesaria para abstraer tal conceptomediante:

Los atributos o propiedades quedescriben su estado.

Las operaciones o métodos quepueden modificar dichoestado, determinando las capacidadesdel objeto.

21Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

¿Qué es un Objeto?

Page 22: Clase1

Los TDA definen la funcionalidad al ponerespecial énfasis en los datos involucrados, suestructura, operaciones, así como enaxiomas y precondiciones.

Consecuentemente, la programación orien-tada a objetos es "programación conTDA", al combinar la funcionalidad de distintosTDAs para resolver un problema.

En orientación a objetos, nos referimos a lostipos de dato abstractos (TDA) como clases.Por lo tanto, una clase define las propiedadesde objetos instancia en un ambiente orientadoa objetos.

22Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

TDA (Tipos de Datos Abstractos)

Page 23: Clase1

En tanto, una clase conforma un modeloabstracto de un objeto del mundo real, quedefine los atributos y operaciones dedicho objeto. Por tanto, es una plantillaque define un objeto.

Consecuentemente, un objeto constituyeuna instancia simple de una clase, quedetenta un estado y un comportamiento.Los objetos, retienen la estructura y lasoperaciones de una clase.

23Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Clases y Objetos

Page 24: Clase1

24Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Implementación en Java

Page 25: Clase1

25Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Creación de Clases

Page 26: Clase1

26Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Creación de Clases

Modificador de Acceso

Nombre de Clase

Método Público

Page 27: Clase1

27Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Creación de Objetos

Importo Biblioteca

Instancia de Clase

Page 28: Clase1

28Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Variables Primitivas y Objeto

Variable Primitiva

Variable Objeto

Page 29: Clase1

29Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Asignación de Referencias

Asignación de Referencia

Page 30: Clase1

30Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Encapsulación / Visibilidad

Una clase puede controlar la visibilidadque tendrán sus atributos y métodosdesde el exterior de la misma, mediante losmodificadores de acceso:

Private: el atributo o método sólo es visible dentro dela clase donde se define.

Protected: el campo o método es visible en la clasedonde se define y en cualquiera de sus subclases.

Public: El campo o método es visible en cualquier clase.

Ninguno de los anteriores (amistoso): el campo ométodo es visible en cualquiera de las clasespertenecientes al paquete donde se define.

Page 31: Clase1

31Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Operaciones permitidas

Encapsulación / Visibilidad

Modificadores de Acceso

Operaciones restringidas

Page 32: Clase1

32Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Operaciones permitidas

Encapsulación / Visibilidad

Modificadores de Acceso

Operaciones restringidas

Page 33: Clase1

33Instituto Universitario Aeronáutico – Cátedra de Informática I – Villa Dolores

Herencia Simple

Herencia / Polimorfismo

Variables propias de la

instancia

Instancia de Clase actual

Instancia de Clase Base

Imprime 1

Imprime 10