Sunteți pe pagina 1din 42

UNIDAD 1.

CONCEPTOS BASICOS DEL MODELO ORIENTADO A OBJETOS


Objetivo Particular: Conocer los conceptos bsicos del enfoque Orientada a Objetos (POO).
UNACH - LSC Programacin Orientada a Objetos

1.1 Reconocimiento de objetos y clases del mundo real y su interaccin

un programa orientado a objetos funciona a travs de objetos interactuando unos con otros a travs de mensajes.

UNACH - LSC

Programacin Orientada a Objetos

EJEMPLOS DE RECONOCIMIENTO DE OBJETOS:


Avin Atributos tiene alas, turbinas, llantas, ventanillas, cuerpo metlico, asientos, color. etc. Pasajero Atributos Nombre, Apellido, Edad, Direccin, RFC, CURP, Comportamiento: CompraBoleto, Embarca, Desembarca, Vuela

Comportamiento vuela, transporta cargas pesadas areamente.,

Piloto Atributos Nombre, Apellido, Edad, Puesto, CURP, Antigedad, Comportamiento Checa Tarjeta, Cobra un Salario, Vuela Avin
Programacin Orientada a Objetos

UNACH - LSC

1.2 La abstraccin y el encapsulamiento como un proceso natural


La abstraccin es el proceso de capturar los detalles fundamentales de un objeto mientras suprimen o ignoran los detalles. La abstraccin proporciona un mecanismo crucial para permitir que las personas comprendan, se comuniquen y razonen sistemas complejos.

UNACH - LSC

Programacin Orientada a Objetos

1.2 La abstraccin y el encapsulamiento como un proceso natural


Encapsulamiento: (ocultacin de informacin), es el proceso de ocultar todos los detalles de un objeto que no contribuyen a sus caractersticas esenciales.

UNACH - LSC

Programacin Orientada a Objetos

1.3 La POO y la complejidad del software


La complejidad del software segn Booch: 1. la complejidad del dominio del problema, 2. la dificultad de gestionar el proceso de desarrollo, 3. la flexibilidad que se puede alcanzar a travs del software y 4. los problemas de caracterizar el comportamiento de sistemas discretos.
UNACH - LSC Programacin Orientada a Objetos

Complejidad del dominio del problema

Este se produce cuando el cliente debe decirle al desarrollador del sistema lo que necesita.

UNACH - LSC

Programacin Orientada a Objetos

La dificultad de gestionar el proceso de desarrollo


el poder llevar a cabo el proceso de planteamiento, ejecucin y control de un proyecto, desde su comienzo hasta su conclusin, a fin de cumplir con el mismo en un plazo de tiempo determinado, con un costo y nivel de calidad determinados, a travs de la movilizacin de recursos tcnicos, financieros y humanos.
UNACH - LSC Programacin Orientada a Objetos

La posible flexibilidad a travs del software

El software desarrollado debe ofrecer flexibilidad para poder expresar cualquier tipo de abstraccin.

UNACH - LSC

Programacin Orientada a Objetos

los problemas de caracterizar el comportamiento de sistemas discretos:


Se tienen sistemas con un nmero finito de estados discretos, como no existen herramientas matemticas para modelar el comportamiento completo de los grandes sistemas discretos, se debe aceptar la prdida de cierto grado de confianza en cuanto a que las salidas sean correctas.

1.4 Conceptos del ciclo de vida del Software


Las etapas bsicas y los principios del modelo OO del ciclo de vida del software son: 1. Especificacin de requerimientos. 2. Anlisis. 3. Diseo. 4. Programacin. 5. Mantenimiento.
UNACH - LSC Programacin Orientada a Objetos

1.4.1 Especificaciones de requerimientos.


Comprende las tareas relacionadas con la determinacin de las necesidades o de las condiciones a satisfacer para un software nuevo o modificado, tomando en cuenta los diversos requerimientos de los clientes.

1.4.2 Anlisis Orientado a Objetos


Definicin. Es un mtodo de anlisis que examina los requisitos desde la perspectiva de las clases y objetos que se encuentran en el vocabulario del dominio del problema. Documentos de deben tenerse o desarrollarse durante el anlisis; los cuales se convierten en el diseo del sistema:

Especificacin de requisitos o requerimientos. Diagramas de casos de uso. Escenarios y subescenarios. Prototipos y su evaluacin.

Caso de uso.
Es una tcnica para la captura de requisitos potenciales de un nuevo sistema o una actualizacin de software. Cada caso de uso proporciona uno o ms escenarios que indican cmo debera interactuar el sistema con el usuario o con otro sistema para conseguir un objetivo especfico.
Caso de uso: Actores Tipo Propsito Precondiciones Flujo Principal Nombre del caso de uso Actores primarios y secundarios interaccionan con el caso de uso que

Tipo de flujo bsico, inclusin, extensin, generalizacin o algn otro Razn de ser del caso de uso Condiciones que deben satisfacer para poder ejecutar el caso de uso El flujo de eventos ms importante del caso de uso, donde dependiendo de las acciones de los actores se continuar con alguno de los subflujos. Excepciones que pueden ocurrir durante el caso de uso, numerados como E1, E2, etc.

Excepciones

EJEMPLO DE UN CASO DE USO


Caso de uso: Actores Tipo Propsito Precondiciones Flujo Principal Registrando Datos de Usuario Comprador, Vendedor Inclusin Cualquier persona debe registrarse como usuario para poder interactuar en el sitio. Solamente acceder al sitio. 1.- Usuario llena Formulario de Registro y acepta contrato y reglas de uso del sitio. 2.- Sistema almacena en la BD los datos del usuario 3.- Sistema verifica usuario y contrasea ingresadas por el usuario. 4.- Sistema enva cdigo de verificacin al correo electrnico del usuario a fin de verificar cuenta de correo electrnico. 5.- Usuario ingresa a sistema cdigo de verificacin recibido en el correo electrnico a fin de verificar su cuenta de correo. 6.- Sistema verifica cdigo 7.- Sistema confirma registro a usuario. E1.- Si el cdigo de verificacin no es recibido en el correo electrnico del usuario, es reenviado nuevamente al correo que el usuario indique

Excepciones

Escenarios
Es una descripcin parcial y concreta del comportamiento de un sistema en una determinada situacin.

Prototipo.
Es una representacin de aquellos aspectos del software que sern visibles para el cliente (por ejemplo, la configuracin de la interfaz con el usuario y el formato de los despliegues de salida). El prototipo, es evaluado por el cliente para una retroalimentacin; gracias a sta se refinan los requisitos del software que se desarrollar.

Programacin: Codificacin en el lenguaje de programacin, SGBD seleccionado; incluye pruebas, correcciones y verificaciones por parte de un usuario hasta obtener la versin final. Mantenimiento: implica el hacer que el SI trabaje correctamente durante un determinado tiempo.
.

1.4.3 Programacin Orientada a Objetos y caractersticas


Es el proceso de dividir una solucin en una cantidad determinada de objetos constituyentes Su uso induce a los programadores a pensar en trminos de objetos, en vez de procedimientos, cuando planifican su cdigo. Un objeto agrupa datos encapsulados y procedimientos para representar una entidad. El diseo orientado a objetos es la disciplina que define los objetos y sus interacciones para resolver un problema de negocio que fue identificado y documentado durante el anlisis orientado a objetos.

CLASE
Descripcin de los datos y operaciones que escriben el comportamiento de un cierto tipo de elementos homogneos.
Avin Atributo: Propiedad comn a todos los objetos de una clase. Atributos Entero: n_asientos, n_llantas, n_ventanillas: Cadena: color, modelo;. Mtodos vuela(), transporta cargas(), carga combustible().

Mtodo: Definicin e implementacin de las operaciones que pueden realizar todos los objetos de una clase.

OBJETO
Ejemplo concreto de una clase (instancia)
Avin Atributos Entero: n_asientos, n_llantas, n_ventanillas: Cadena: color, modelo;. Mtodos vuela(), transporta cargas (), carga combustible ().

Avin 1 N_asientos: 34 N_llantas: 12 Color: blanco Modelo : 1234 Vuela (), transporta cargas (), carga combustible (). Avin 2 N_asientos: 120 N_llantas: 20 Color: negro Modelo : 4567 Vuela (), transporta cargas (), carga combustible ().

ESTADO
Conjunto de valores de los atributos de un objeto en un determinado momento.
Avin 2 N_asientos: 120 N_llantas: 20 Color: negro Modelo : 4567 Vuela (520 KM/H)

MENSAJE
Invocacin de un mtodo de una clase sobre un objeto de dicha clase en un instante determinado.
avin TRANSPORTA_CARGA()

1.5 Elementos primordiales en el modelo OO.


La programacin Orientada a Objetos trata de cumplir las necesidades de los usuarios finales, ests tareas se realizan mediante la modelizacin del mundo real, el soporte fundamental es el modelo objeto. Los elementos ms importantes de este modelo son: Abstraccin Encapsulamiento Modularidad Jerarqua y Herencia Polimorfismo

1.5.1.- Abstraccin
Es el ver a un objeto con las caractersticas principales, es decir, que las caractersticas irrelevantes ya son innecesarias y se encapsulan para poder ver al objeto de una forma ms simple.

UNACH - LSC

Programacin Orientada a Objetos

ABSTRACCIN
Abstraccin es estructuras de datos se realiza mediante un tipo abstracto de dato TAD.

TAD: Modelo matemtico de una estructura de dato que especifica el tipo de dato almacenado, las operaciones soportadas por ellos y tipos de los parmetros de las operaciones.

UNACH - LSC

Programacin Orientada a Objetos

ABSTRACCIN
TAD: Especifica que hace cada operacin, pero no como lo hace.

En java TAD CLASE


CLASE Define los datos que se estn almacenando y las operaciones soportadas por los objetos.

UNACH - LSC

Programacin Orientada a Objetos

1.5.2.- Encapsulamiento

Es el proceso por el cual se ocultan las caractersticas innecesarias y se dejan nicamente los atributos necesarios para poder identificar al objeto en cuestin.

UNACH - LSC

Programacin Orientada a Objetos

ENCAPSULACIN
En Java, los fundamentos de la encapsulacin estn en la clase.

Una clase define la estructura y el comportamiento (datos y cdigo) que se compartir por un conjunto de objetos.

UNACH - LSC

Programacin Orientada a Objetos

ENCAPSULAMIENTO
CLASE CONTIENE: Datos definidos variables miembro o variables de instancia. El cdigo que acta sobre los datos miembros mtodo o mtodos.
Mtodos Pblicos Variables de Instancia privadas Mtodos Privados

UNACH - LSC

Programacin Orientada a Objetos

ENCAPSULAMIENTO
Se oculta lo que sucede dentro de una clase Una de las ventajas principales del encapsulamiento es que proporciona al programador libertad en la implementacin de los detalles de un sistema. La nica restriccin que tendr el programador es mantener la interfaz abstracta que ven los usuarios externos.

UNACH - LSC

Programacin Orientada a Objetos

1.5.3.- Modularidad

La Modularidad te permite subdividir a una aplicacin en partes ms pequeas llamadas mdulos, y cada una de ellas debe ser independiente de la aplicacin en si.

UNACH - LSC

Programacin Orientada a Objetos

1.5.4.- Jerarqua y Herencia

La jerarqua permite una ordenacin de todas las abstracciones hechas; mientras que herencia es la capacidad de compartir, datos, mtodos, objetos, y otras cosas, es decir la herencia define una relacin entre clases.
UNACH - LSC Programacin Orientada a Objetos

1.5.4.- Jerarqua y Herencia


Avin

Boeing

Jet

A340-600

Una clase puede no tener padres, en su caso es una clase base o clase raz. Una clase puede no tener descendientes (hijos), en cuyo caso es una clase hoja. Si la clase slo tiene una clase padre, tiene herencia simple, si tiene ms de una clase tiene herencia mltiple.
UNACH - LSC Programacin Orientada a Objetos

1.5.5 Polimorfismo
Es la posibilidad de que una entidad tome muchas formas. En trminos prcticos, el polimorfismo permite referirse a objetos de clases diferentes mediante el mismo elemento de programa y realizar la misma operacin de diferentes formas, segn sea el objeto que se referencia en ese momento. El polimorfismo adquiere su mxima expresin en la derivacin o extensin de clases, es decir, cuando se obtiene una clase a partir de una clase ya existente, mediante la propiedad de derivacin de clases o herencia.

1.5.5 Polimorfismo
Suponer una jerarqua de clases de figuras de dos dimensiones. Cada clase puede tener un mtodo que se llame igual, por ejemplo rea() pero cada clase tendr una formula de clculo de rea diferente segn la clase.

area() _____ _____

area( int x) _____ _____

area( char x) _____ _____

1.6 Historia de los paradigmas en el desarrollo del software.

Paradigmas: Representan un enfoque particular o filosofa para la construccin del software. No es mejor uno que otro sino que cada uno tiene ventajas y desventajas. Los ms comunes son el desarrollo en cascada(metodologa de desarrollo en cascada es: Anlisis de requisitos, Diseo, Programacin, Prueba, Implantacin, Mantenimiento),.

Los enfoques generales para la escritura del cdigo han sido: Programacin espagueti. Sin una secuencia de ejecucin definida. Sin mdulos. Programacin estructurada. Se usan los mdulos (basados en procedimientos) y las sentencias de programacin estructuradas. POO. Se afina el concepto de mdulo al incluir datos y procedimientos (en una clase). Incluye nuevos conceptos como herencia, polimorfismo, etc.

1.6 Historia de los paradigmas en el desarrollo del software.


Algunos paradigmas de programacin especficos (procedimientos computacionales para resolver un problema), son:

El desarrollo en espiral El desarrollo por prototipos El desarrollo incremental, Orientado a Objetos.

1.6 Historia de los paradigmas en el desarrollo del software.


Los Lenguajes de Programacin segn su nivel de acercamiento con el hardware se clasifican en: Lenguaje mquina (0, 1). Lenguaje ensamblador. Lenguajes de tercer nivel (palabras en ingls). Lenguajes declarativo (indicar que hacer y que se desea obtener; y no como hacerlo). Desde el punto de vistas de las metodologas que se aplican para el ciclo de vida del software, algunas son: Ciclo vida clsico o cascada. Modelo en espiral. Prototipos.

1.7 Beneficios del modelo de objetos y de la POO sobre otros paradigmas.


La programacin orientada a objetos beneficia a los desarrolladores debido a que: Los programas son fciles de disear debido a que los objetos reflejan elementos del mundo real. Las aplicaciones son ms sencillas para los usuarios debido a que los datos innecesarios estn ocultos. Los objetos son unidades autocontenidas. La productividad se incrementa debido a que puede reutilizar el cdigo. Los sistemas son fciles de mantener y se adaptan a las cambiantes necesidades de negocios. Es ms fcil crear nuevos tipos de objetos a partir de los ya existentes. Simplifica los datos complejos. Reduce la complejidad de la transaccin. Confiabilidad. Robustez. Capacidad de ampliacin. La OO permite una modelacin ms natural de los sistemas, parecido a como un humano los visualiza. El modelo refleja mejor la realidad. La OO proporciona soporte para todas las etapas del ciclo de vida del software.

1.7 Beneficios del modelo de objetos y de la POO sobre otros paradigmas.


La LPOO permite crear TDA (tipos de datos abstractos). Es decir nuevos tipos de datos que no estn predefinidos en el LP pero son necesarios para el usuario. Los LPOO proporcionan un rico conjunto de clases predefinidas que se pueden usar en las aplicaciones. Reutilizacin. Las clases se construyen a partir de otras clases.

1.7 Beneficios del modelo de objetos y de la POO sobre otros paradigmas.


Fiabilidad. Productividad del desarrollador. Calidad. Mantenimiento. Costo. Escalabilidad. Adaptabilidad (mejor independencia e interoperabilidad).

S-ar putea să vă placă și