Desarrollo de-software-poo-2-parte

14
Ing. Juan Cisneros [email protected] Desarrollo de Software 1 Ing. Elías Cisneros [email protected] República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Desarrollo de Software Trimestre I Fundamentos de Programación Orientada a Objetos ( POO ) - Parte 2 Desarrollo de Software

Transcript of Desarrollo de-software-poo-2-parte

Page 1: Desarrollo de-software-poo-2-parte

Ing. Juan [email protected]

Desarrollo de Software 1Ing. Elías [email protected]

República Bolivariana de VenezuelaFundación Misión Sucre

Aldea Fray Pedro de AgredaDesarrollo de Software

Trimestre I

Fundamentos de Programación Orientada a Objetos ( POO ) ­ Parte 2

Desarrollo de Software

Page 2: Desarrollo de-software-poo-2-parte

Ing. Juan [email protected]

Desarrollo de Software Ing. Elías [email protected]

Page 3: Desarrollo de-software-poo-2-parte

Ing. Juan [email protected]

Desarrollo de Software Ing. Elías [email protected]

¿Qué es la programación orientada a objetos?¿Qué es la programación orientada a objetos?

“Un método de implementación en el que los los programas se organizan como colecciones cooperativas de objetos, cada uno de los cuales representan una instancia de alguna clase, cuyas clases son todas miembros de una jerarquia de clases unidas mediante relaciones de herencia Grady Booch”

Cuando escribe un programa de computación en un lenguaje orientado a objetos esta creando en su computadora un modelo de alguna parte del mundo real. Las partes con que se construye el modelo provienen de los objetos que aparecen en el dominio del problema.

Los programas orientados a objetos constan de objetos, los objetos de un programa se comunican con cada uno de los restantes

pasando mensajes.

Page 4: Desarrollo de-software-poo-2-parte

Ing. Juan [email protected]

Desarrollo de Software Ing. Elías [email protected]

Conceptos fundamentales de la POOConceptos fundamentales de la POOClase

Definición de las propiedades y comportamiento de un tipo de objeto concreto. Una clase contiene una completa y detallada descripción de la información y las métodos que contendrá cada objeto de esa clase. Las clases se pueden ver como una generalización de una categoria. Las clases son tipos de datos definidos por el programador y pueden ser utilizados de igual manera que los tipos de datos propios del C++, tales como int o float. Una clase es una plantilla que define atributos y métodos que son comunes para todos los objetos de un cierto tipo.

Cada clase contiene :

• Atributos (datos miembro o campos), los cuales especifican las propiedades de los objetos, expresan el estado del objeto.

• Métodos (funciones miembro o métodos), mediante los cuales se modela su comportamiento y las acciones que puede realizar. Se utilizan en el intercambio de mensajes o comunicación con otros objetos.

Page 5: Desarrollo de-software-poo-2-parte

Ing. Juan [email protected]

Desarrollo de Software Ing. Elías [email protected]

Clase Carro

AtributosMarcaColorModeloPeso

MétodosEncenderApagarAvanzarDetenerGirar izquierdaGirar derecha

Ejemplo para clase CarroEjemplo para clase Carro

Diferentes modelos del término carro. • Un carro es la combinación (o composición) de diferentes partes, tales como motor, carrocería, cuatro ruedas, cinco puertas, etc. • Un carro es un concepto común para diferentes tipos de carros. Pueden clasificarse por el nombre del fabricante (Audi, BMW, SEAT, Toyota, Chrisler...), por su categoría (turismo, deportivo, todoterreno...), por el carburante que utilizan (gasolina, gasoil, gas, híbrido...) entre otros.

Page 6: Desarrollo de-software-poo-2-parte

Ing. Juan [email protected]

Desarrollo de Software Ing. Elías [email protected]

Objetos

Entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos) los mismos que consecuentemente reaccionan a eventos. Se corresponde con los objetos reales del mundo que nos rodea, o a objetos internos del sistema (del programa). Es una instancia a una clase.

El objeto es el centro de la programación orientada a objetos. Un objeto es algo que se visualiza, se utiliza y juega un rol o papel. Si se programa con enfoque orientado a objetos, se intentan descubrir e implementar los objetos que juegan un rol en el dominio del problema.

Conceptos fundamentales de la POOConceptos fundamentales de la POO

Page 7: Desarrollo de-software-poo-2-parte

Ing. Juan [email protected]

Desarrollo de Software Ing. Elías [email protected]

¿Qué tipos de cosas son objetos en los programas ¿Qué tipos de cosas son objetos en los programas orientados a objetos?orientados a objetos?

•Automóviles•Personas•Estudiantes•Polígonos•Impresoras•Aviones•Joystick•Trenes•Vendedores•Clientes.• Todo !!!

Page 8: Desarrollo de-software-poo-2-parte

Ing. Juan [email protected]

Desarrollo de Software Ing. Elías [email protected]

Propiedad o atr ibuto: contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus características predeterminadas, y cuyo valor puede ser alterado por la ejecución de algún método.

Método: Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la recepción de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en las propiedades del objeto, o 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ó.

Conceptos fundamentales de la POOConceptos fundamentales de la POO

Page 9: Desarrollo de-software-poo-2-parte

Ing. Juan [email protected]

Desarrollo de Software Ing. Elías [email protected]

Ejemplo para clase PersonaEjemplo para clase Persona

AtributosNombreApellidoSexoC.ITeléfono

MétodosRespirarCaminarHablarEscucharDormir

Clase Persona

La clase Persona es una plantillapara definir objetos que poseenlos mismos atributos y métodos.

Page 10: Desarrollo de-software-poo-2-parte

Ing. Juan [email protected]

Desarrollo de Software Ing. Elías [email protected]

Organización típica de una programa orientado Organización típica de una programa orientado a objetosa objetos

Page 11: Desarrollo de-software-poo-2-parte

Ing. Juan [email protected]

Desarrollo de Software Ing. Elías [email protected]

Pilares fundamentales de la programaciónPilares fundamentales de la programaciónorientadada a objetosorientadada a objetos

Page 12: Desarrollo de-software-poo-2-parte

Ing. Juan [email protected]

Desarrollo de Software Ing. Elías [email protected]

Carácteristicas de la programación orientada a objetosCarácteristicas de la programación orientada a objetos

Abstracción: La abstracción es la propiedad de los objetos que consiste en tener en cuenta sólo los aspectos más importantes desde un punto de vista determinado y no tener en cuenta los restantes aspectos. El término abstracción que se suele utilizar en programación se refiere al hecho de diferenciar entre las propiedades externas de una entidad y los detalles de la composición interna de dicha entidad. Es la abstracción la que permite ignorar los detalles internos de un dispositivo complejo tal como una computadora, un automóvil, una lavadora o un horno de microondas, etc., y usarlo como una única unidad comprensible. La abstracción posee diversos grados de complejidad que se denominan niveles de abstracción que ayudan a estructurar la complejidad intrínseca que poseen los sistemas del mundo real.

Edificios

CarrosPersonas

AutobusesSemáforos

Abstracción

Extraemoslos objetos

Page 13: Desarrollo de-software-poo-2-parte

Ing. Juan [email protected]

Desarrollo de Software Ing. Elías [email protected]

Carácteristicas de la programación orientada a objetosCarácteristicas de la programación orientada a objetos

Encapsulación de datos: es el proceso de agrupar datos y operaciones relacionadas bajo la misma unidad de programación. En el caso de los objetos que poseen las mismas características y comportamiento se agrupan en clases, que no son más que unidades o módulos de programación que encapsulan datos y operaciones.

La ocultación de datos permite separar el aspecto de un componente, definido por su interfaz con el exterior, de sus detalles internos de implementación.

El diseño de un programa orientado a objetos contiene, al menos, los siguientes pasos;

1. Identificar los objetos del sistema.

2. Agrupar en clases a todos objetos que tengan características y comportamiento comunes.

3. Identificar los datos (atributos) y operaciones (métodos) de cada una de las clases.

4. Identificar las relaciones que pueden existir entre las clases.

Page 14: Desarrollo de-software-poo-2-parte

Ing. Juan [email protected]

Desarrollo de Software Ing. Elías [email protected]

EjerciciosEjercicios

Definir atributos y métodos para las siguientes categorias o clases:

●Libro●Asignatura●Animal●Ciudad●Celular