Conceptos básicos del paradigma orientado a objetos MC Beatriz Beltrán Martínez Primavera 2015.

22
Conceptos básicos del paradigma orientado a objetos MC Beatriz Beltrán Martínez Primavera 2015

Transcript of Conceptos básicos del paradigma orientado a objetos MC Beatriz Beltrán Martínez Primavera 2015.

Page 1: Conceptos básicos del paradigma orientado a objetos MC Beatriz Beltrán Martínez Primavera 2015.

Conceptos básicos del paradigma orientado a objetosMC Beatriz Beltrán Martínez

Primavera 2015

Page 2: Conceptos básicos del paradigma orientado a objetos MC Beatriz Beltrán Martínez Primavera 2015.

Introducción

•Crisis del software programación estructurada

•Problemas con la programación estructurada• Sintácticos:a)Identificadores duplicados.b)Incompatibilidad de tipos.c) Incompatibilidad en el número de argumentos en un

llamado a subprograma.

2

BB

MF

CC

- B

UA

P

Prim

aver

a 20

15

Page 3: Conceptos básicos del paradigma orientado a objetos MC Beatriz Beltrán Martínez Primavera 2015.

Introducción

•Lógicos:a)Variables “globales” no iniciadas.b)Variables “globales” modificadas accidentalmente,c)Argumentos de subprogramas pasados por referencia creyéndose que era por valor.d)Modificación del código por otro(s) grupo(s) distinto(s) al que lo creó.

3

BB

MF

CC

- B

UA

P

Prim

aver

a 20

15

Page 4: Conceptos básicos del paradigma orientado a objetos MC Beatriz Beltrán Martínez Primavera 2015.

Introducción

•La programación estructurada tradicional se basa fundamentalmente en la ecuación de Wirth:

Algoritmos + Estructuras de Datos = Programas

•Esta ecuación significa que en la programación estructurada u orientada a procedimientos los datos y el código se trata por separado y lo único se realiza son funciones o procedimientos que tratan esos datos y los van pasando de unos a otros hasta que se obtiene el resultado que se desea.

4

BB

MF

CC

- B

UA

P

Prim

aver

a 20

15

Page 5: Conceptos básicos del paradigma orientado a objetos MC Beatriz Beltrán Martínez Primavera 2015.

SoluciónProgramación orientada a objetos•En lugar de tratar de modelar un problema en algo familiar a la computadora ahora se trata de acercar la computadora al problema.•Es decir, modelar la realidad del problema a través de entidades independientes pero que interactúan entre sí y cuyas fronteras no estén determinadas por su instrumentación computacional sino por la naturaleza del problema. Estas entidades serán denominadas objetos.•Resolver problemas consiste en definir objetos y sus acciones y entonces invocar las acciones enviando mensajes a los objetos que ocultan las características internas de cómo llevan a cabo estas acciones

5

BB

MF

CC

- B

UA

P

Prim

aver

a 20

15

Page 6: Conceptos básicos del paradigma orientado a objetos MC Beatriz Beltrán Martínez Primavera 2015.

• La Programación Orientada a Objetos, POO (OOP, Object Oriented Programming, en inglés), es una técnica de programación cuyo soporte fundamental es el objeto.

• Un objeto es una extensión de un Tipo de Dato Abstracto (TDA).

• Un TDA es un tipo definido por el usuario, que encapsula un conjunto de datos y las operaciones sobre estos datos.

• A la hora de definir TDA’s (u objetos) se usa un concepto que ayuda a representar la realidad, la abstracción.

• La diferencia entre el concepto de TDA y el de objeto radica en que existen dos procesos con los que se forma el núcleo principal de la programación orientada a objetos, estos son la herencia y el polimorfismo.

6

BB

MF

CC

- B

UA

P

Prim

aver

a 20

15Solución

Page 7: Conceptos básicos del paradigma orientado a objetos MC Beatriz Beltrán Martínez Primavera 2015.

Principios de la POO• Programar en un lenguaje orientado a objetos es definir clases

que expresan una determinada funcionalidad la cual es común a todos los individuos de la clase.

• A través de esta funcionalidad los objetos dan respuesta a las solicitudes (mensajes) que les envían otros objetos.

• Las clases deben ser lo suficientemente CERRADAS como para que cada objeto pueda ocultar información (datos) que lo caracteriza como individuo.

• Las clases deben ser lo suficientemente ABIERTAS para permitir la reutilización, adaptación y extensión de las mismas a nuevas funcionalidades sin correr el riesgo de afectar el funcionamiento de lo que ya es correcto.

• Principio ABIERTO-CERRADO piedra angular de la POO7

BB

MF

CC

- B

UA

P

Prim

aver

a 20

15

Page 8: Conceptos básicos del paradigma orientado a objetos MC Beatriz Beltrán Martínez Primavera 2015.

Principios de la POO

•Principio de Parnas u ocultamiento. No permitir que los usuarios modifiquen ni la representación de la información ni las operaciones sobre esa información.•Principio de compartir comportamiento. Reutilizar código, no reinventarlo.

•Los mensajes entre los objetos son síncronos, al conjunto de mensajes que responde un objeto le llamamos protocolo.•Un cálculo en la POO se lleva a cabo mediante el envío de mensajes entre objetos.

8

BB

MF

CC

- B

UA

P

Prim

aver

a 20

15

Page 9: Conceptos básicos del paradigma orientado a objetos MC Beatriz Beltrán Martínez Primavera 2015.

Lenguajes de POO

•Lenguajes de POOLISP SMALLTALKSIMULA

•Lenguajes de POO •Puros: Smalltalk, Eiffel, Actor•Híbridos: C++, Objetive-C, Object-Pascal, Java

Smalltalk Java9

BB

MF

CC

- B

UA

P

Prim

aver

a 20

15

Page 10: Conceptos básicos del paradigma orientado a objetos MC Beatriz Beltrán Martínez Primavera 2015.

Conceptos Básicos de la POO• Objeto: Abstracción del mundo real, en términos

computacionales, es un ente encapsulado que contiene datos y métodos, y que es capaz de recibir mensajes del exterior. Tiene un estado y una cierta identidad. Es la instancia de una clase.

• Clase: Conjunto o colección de objetos que tienen en común estructura, comportamiento y características. Es un tipo definido por el usuario.

10

BB

MF

CC

- B

UA

P

Prim

aver

a 20

15

Page 11: Conceptos básicos del paradigma orientado a objetos MC Beatriz Beltrán Martínez Primavera 2015.

•Método: Es la operación que se puede efectuar sobre los campos de un objeto (datos). Cuando el método es invocado se dice que se envía un mensaje al objeto a través del método, es esta la forma como el objeto cambia su estado.

•Identidad: Propiedad con la cual se puede distinguir un objeto de otros objetos (su nombre).

•Datos (atributos): Campos del objeto que representan características bien definidas de un objeto.

11

BB

MF

CC

- B

UA

P

Prim

aver

a 20

15Conceptos Básicos de la POO

Page 12: Conceptos básicos del paradigma orientado a objetos MC Beatriz Beltrán Martínez Primavera 2015.

•Encapsulamiento u ocultamiento: Es un recurso para poder manejar la abstracción. Nos permite ver a los datos y a las operaciones como una unidad, oculta detalles de implementación.

•Herencia: Es un mecanismo por el cual, una clase de objetos puede expresarse como un caso especial de una clase más general, con lo cual incluye automáticamente toda la definición de datos y métodos de la clase genera

12

BB

MF

CC

- B

UA

P

Prim

aver

a 20

15Conceptos Básicos de la POO

Page 13: Conceptos básicos del paradigma orientado a objetos MC Beatriz Beltrán Martínez Primavera 2015.

13

BB

MF

CC

- B

UA

P

Prim

aver

a 20

15Conceptos Básicos de la POOClase Base Clases Bases

Clases Derivadas Clase Derivada o Subclase

Herencia Simple Herencia Múltiple

Page 14: Conceptos básicos del paradigma orientado a objetos MC Beatriz Beltrán Martínez Primavera 2015.

•Las ventajas más importantes de la programación orientada a objetos son las siguientes:

• Mantenibilidad: Facilidad de mantenimiento.• Modificabilidad: Facilidad para modificar los programas.• Reusabilidad: Los objetos, si han sido correctamente

diseñados, se pueden usar numerosas veces y en distintos proyectos.

• Fiabilidad: Los programas orientados a objetos suelen ser más fiables ya que se basan en el uso de objetos ya definidos que están ampliamente testados.

14

BB

MF

CC

- B

UA

P

Prim

aver

a 20

15Ventajas de la POO

Page 15: Conceptos básicos del paradigma orientado a objetos MC Beatriz Beltrán Martínez Primavera 2015.

Introducción al Lenguaje Unificado de ModeladoMC Beatriz Beltrán Martínez

Primavera 2015

Page 16: Conceptos básicos del paradigma orientado a objetos MC Beatriz Beltrán Martínez Primavera 2015.

• UML es un lenguaje por que proporciona un vocabulario y las reglas para utilizarlo, además es un lenguaje de modelado lo que significa que el vocabulario y las reglas se utilizan para la representación conceptual y física del sistema.

• UML es un lenguaje que nos ayuda a interpretar grandes sistemas mediante gráficos o mediante texto obteniendo modelos explícitos que ayudan a la comunicación durante el desarrollo ya que al ser estándar, los modelos podrán ser interpretados por personas que no participaron en su diseño sin ninguna ambigüedad.

16

BB

MF

CC

- B

UA

P

Prim

aver

a 20

15Introducción

Page 17: Conceptos básicos del paradigma orientado a objetos MC Beatriz Beltrán Martínez Primavera 2015.

•El lenguaje UML se compone de tres elementos básicos, los bloques de construcción, las reglas y algunos mecanismos comunes.•Los bloques de construcción se dividen en tres partes: Elementos, que son las abstracciones de primer nivel, Relaciones, que unen a los elementos entre sí, y los Diagramas, que son agrupaciones interesantes de elementos.•Existen cuatro tipos de elementos en UML, dependiendo del uso que se haga de ellos: elementos estructurales, elementos de comportamiento, elementos de agrupación y elementos de anotación.

17

BB

MF

CC

- B

UA

P

Prim

aver

a 20

15Introducción

Page 18: Conceptos básicos del paradigma orientado a objetos MC Beatriz Beltrán Martínez Primavera 2015.

Introducción

•El desarrollo de software puede ser visto como una serie de transformaciones del modelo mental inicial al código actual

18

BB

MF

CC

- B

UA

P

Prim

aver

a 20

15

StakeholdersMental Model

Page 19: Conceptos básicos del paradigma orientado a objetos MC Beatriz Beltrán Martínez Primavera 2015.

Bloques de construcción

•A continuación se van a describir todos los elementos que componen los bloques estructurales de UML, así como su notación, para que nos sirva de introducción y se vaya generando un esquema conceptual sobre UML. En temas sucesivos se tratará con más profundidad cada uno de los bloques.•Elementos Estructurales:

• Los elementos estructurales en UML, es su mayoría, son las partes estáticas del modelo y representan cosas que son conceptuales o materiales.

19

BB

MF

CC

- B

UA

P

Prim

aver

a 20

15

Page 20: Conceptos básicos del paradigma orientado a objetos MC Beatriz Beltrán Martínez Primavera 2015.

• Clases:• Una clase es una descripción de un conjunto de objetos que

comparten los mismos atributos, operaciones, relaciones y semántica.

• Una clase implementa una o más interfaces. Gráficamente se representa como un rectángulo que incluye su nombre, sus atributos y sus operaciones.

20

BB

MF

CC

- B

UA

P

Prim

aver

a 20

15Bloques de construcción

Ventanaorigen tamañoabrir()

cerrar()mover()dibujar()

Page 21: Conceptos básicos del paradigma orientado a objetos MC Beatriz Beltrán Martínez Primavera 2015.

21

BB

MF

CC

- B

UA

P

Prim

aver

a 20

15Representación de clases• Una clase es una descripción de un conjunto de objetos que

comparten los mismos atributos, operaciones, relaciones y semántica.

• Un objeto es una instancia individual de una clase.• Una clase se identifica por un nombre que la distingue del

resto. Ese nombre sólo se denomina nombre simple; un nombre de camino consta del nombre de la clase precedido del nombre del paquete en el que se encuentra incluida.

Monitormarca

modeloencender()

Nombre

Atributos

Operaciones

Page 22: Conceptos básicos del paradigma orientado a objetos MC Beatriz Beltrán Martínez Primavera 2015.

• Un atributo es una propiedad de una clase identificada con un nombre.

• Describe un rango de valores que pueden tomar las instancias de la propiedad. Los atributos representan propiedades comunes a todos los objetos de una determinada clase Los atributos son propiedades interesantes de las clases.

• Una instancia de una determinada clase tendrá valores concretos para sus atributos, mientras que las clases tienen rangos de valores que pueden admitir sus atributos.

• Una operación es una implementación de un servicio que puede ser requerido a cualquier objeto de la clase para que muestre su comportamiento. Una operación representa algo que el objeto puede hacer.

22

BB

MF

CC

- B

UA

P

Prim

aver

a 20

15Representación de clases