Professional Documents
Culture Documents
03/24/09
ndice
Introduccin. Motivacin de la POO Definiciones. Tipos de datos abstractos
Clases y objetos
Caractersticas de la POO
Abstraccin Encapsulamiento Principio de ocultacin Polimorfismo Herencia Recoleccin de basura
POO. Definicin
Debera hablarse con propiedad de Diseo orientado a objetos (DOO) La construccin de software orientado a objetos es el mtodo de desarrollo de software que basa la arquitectura de cualquier sistema en mdulos deducidos a partir de los tipos de objetos que manipula (en lugar de basarse en la funcin o funciones que el sistema est destinado a asegurar) A diferencia de otros mtodos, el DOO da como resultado un diseo que interconexiona los objetos de datos (elementos de datos) y las operaciones de procesamiento, de forma tal que encapsula la informacin y el procesamiento. Este encapsulamiento es el paradigma fundamental de 4 la orientacin por objetos.
POO. Objetos
El trmino "orientacin por objeto" significa que organizaremos el software como una coleccin de objetos discretos que incorporan tanto estructuras de datos como procedimientos. (Un objeto es TDA) Esto contrasta con la programacin convencional, en la cual las estructura de datos y el comportamiento estn solo aproximadamente conectados El desarrollo orientado por objetos es una nueva forma de pensar acerca del software basado sobre abstracciones que existen en el mundo real En este contexto, el desarrollo es referido a la primera parte del ciclo de vida del software: anlisis, diseo e implantacin
8
La forma en que los objetos se comunican entre ellos es a travs de mensajes: Un mensaje encapsula la peticin de un servicio El receptor del mensaje presta el servicio y devuelve una respuesta al que solicit el servicio Cmo encontrar los objetos?
Una descripcin adecuada de los objetos debe:
Ser precisa y no ambigua Ser completa No debe especificar ms de lo necesario
En POO un objeto es una abstraccin de la realidad para modelar un problema con solucin va software.
10
11
12
POO. Clases
Clasificacin:
El proceso de clasificacin es el enfoque central de la orientacin por objeto y concierne a la agrupacin de objetos con propiedades (estructuras de datos o atributos) y comportamiento (operaciones) similares dentro de una clase
Una clase es la abstraccin que describe propiedades importantes para una aplicacin Los objetos que pertenecen a una clase se describen colectivamente por la definicin de una clase. En lugar de describir los objetos individuales la orientacin por objeto concentra en un patrn tanto el estado como el comportamiento que es comn a todos los objetos de la clase
Esta clase de estructura que abarca tantos propiedades como comportamiento es la unidad natural de la abstraccin en los sistemas de orientacin por objeto y puede ser utilizarse para modelar tanto entidades objetos como relaciones entre los objetos.
13
14
Instancia Compaa Nombre Oficina_general La Pedregosa Av. Los proceres Instancia de Compaia Instancia Persona Gerente Facilidades Instancia de Persona Piscina, Sauna, Golf Nombre Direccin Pedro perez Calle 22 entre Av. 2 y 3 Telfono Turisol Mrida 22454
15
POO. Notacin
Una clase se representa por una caja la cual puede tener 3 regiones.
Primera: nombre de la clase. Segunda: contiene la lista de atributos. cada nombre de atributo puede estar seguido por detalles opcionales tales como tipo de atributo y valores por defectos. Tercera: contiene los nombres de las operaciones. Cada nombre de operacin puede ser seguido por detalles opcionales tales como listas de argumentos y tipos de resultados.
16
17
Para acceder a propiedades privadas de la clase se definen mtodos de acceso. Un miembro puede ser esttico, si pertenece a la clase en s y no a los objetos de la clase.
18
POO. Herencia
La herencia consiste en el compartir atributos y mtodos entre clases basndose en una relacin jerrquica. Una clase puede definirse ampliamente y redefinirse sucesivamente en subclases ms refinadas. Cada subclase que se incorpora, hereda todas las propiedades de su superclase y adiciona sus propias y nicas propiedades. La herencia permite reutilizar cdigo
Vehculo Superclase (tipo)
Coche
Moto
Subclase (subtipo)
21
Tipos de Herencia
Simple Mltiple
Persona
Edad Direccin
Empleado
Idiomas
Unidad Antigedad
Mquina
Universidad
Mando
Equipo
Operario
Turno
Becario
Tutor
24
25
POO. Polimorfismo
Es la posibilidad de definir de forma distinta un mtodo,dependiendo del objeto.
Forma genrica
Forma.pintar()
Rectangulo.pintar()
Circulo.pintar()
Triangulo.pintar()
Capacidad que tienen los objetos de una clase de responder al mismo mensaje o evento en funcin de los parmetros utilizados durante su invocacin. Un objeto polimrfico es una entidad que puede contener valores de diferentes tipos durante la ejecucin del programa. 26 El polimorfismo existe gracias a la herencia
Clase derivada
class Director : public Empleado { public: /* OTROS MTODOS */ unsigned int sueldo() { return SUELDO_BASE*100; } }; class Ventas : public Empleado { private: unsigned int ventas_realizadas; // Contador de ventas realizadas por el vendedor public: /* OTROS MTODOS */ unsigned int sueldo() { return SUELDO_BASE + ventas_realizadas*60; } };
29
30
34
Programacin
No necesariamente es la que demanda mayor trabajo ni la ms complicada
Pruebas
Fundamental. Pruebas unitarias. Se disean e implementan incluso desde el anlisis de requisitos (en algunos casos, lo normal es a partir del diseo y arquitectura).
Documentacin
Fundamental. Se realiza desde la primera fase.
35
POO. Evolucin
Programacin dirigida a eventos
Paradigma de programacin en el que tanto la estructura como la ejecucin de los programas van determinados por los sucesos que ocurran en el sistema o que ellos mismos provoquen. Muy utilizada en la implantacin de aplicaciones de escritorio (con interfaces de usuario).
36