Вы находитесь на странице: 1из 6

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingeniera de Sistemas INTRODUCCIN A LA PROGRAMACIN

ORIENTADA A OBJETOS
PCMOB = MNA + UMOO PCMOB: pasos centrales en el modelado orientado a objetos MNA: modelos que representan la realidad desde distintos puntos de vista o modelos en cada nivel de abstraccin UMOO: uso de la metodologa orientada a objetos

LA ALGORITMIA V.S LA PROGRAMACION ORIENTADA A OBJETOS PROBLEMAS A RESOLVER CON EL SOFTWARE (ENTRE OTROS): a. b. c. d. e. f. g. h. i. j. Cantidad muy grande de requisitos que compiten entre s. Requisitos que se contradicen. Dificultad de los usuarios para expresar con precisin sus necesidades para que los desarrolladores entiendan. Usuarios con ideas vagas de lo que desean de un sistema de software. Cada grupo no conoce bien el dominio del otro. Los usuarios y los desarrolladores tienen perspectivas diferentes sobre la naturaleza del problema y realizan distintas suposiciones sobre la naturaleza de la solucin. Las necesidades de un entorno se expresan mediante grandes cantidades de texto (documentos son difciles de comprender y abiertos a diversas interpretaciones. Los Requisitos de un sistema de software cambian frecuentemente durante su desarrollo. No es admisible desplazar un sistema existente cada vez que los requerimientos cambian, debido a la inversin considerable que pudo haberse realizado. Los sistemas grandes tienden a evolucionar en el tiempo. PERSPECTIVA ALGORTMICA. 1. 2. 3. 4. 5. 6. 7. BLOQUE PRINCIPAL DE CONSTRUCCIN DE TODO EL SOFTWARE ES EL PROCEDIMIENTO O FUNCIN: programas o conjuntos de instrucciones ejecutables, que se dividen en subrutinas. Los datos = con lo que se alimenta a los programas para que realicen su funcin (papel secundario). Algoritmos + Estructura de datos = Programas Clave = decidir qu procedimientos se quieren y en utilizar los mejores algoritmos que se encuentren. Descomposicin = descomposicin algortmica (descomposicin de algoritmos grandes en otros ms pequeos Cada mdulo del sistema representa un paso importante de algn proceso global. Se tiende a producir sistemas frgiles, ya que si los requisitos cambian y el sistema aumenta, los sistemas sern tediosos de mantener. DESCOMPOSICIN ORIENTADA A OBJETOS. 1. 2. El principal bloque de construccin de todos los sistemas software es el objeto o clase. Todo objeto tiene: identidad, estado (existen datos asociados a l), y comportamiento (se le pueden hacer cosas al objeto, y l a su vez puede hacer cosas a otros objetos). 3. En esta descomposicin el mundo es un conjunto de agentes autnomos (objetos) que colaboran para llevar a cabo algn comportamiento de nivel superior. 4. No existen algoritmos concebidos como elementos independientes 5. Existen operaciones asociadas a los objetos pertenecientes al sistema. 6. Cada objeto posee su propio comportamiento bien definido. 7. Los objetos hacen cosas, y se les pide que hagan lo que saben hacer mediante el paso de mensajes. 8. Los datos forman la jerarqua bsica. 9. Una clase son unos datos y unos mtodos que operan sobre esos datos. 10. Objetos + Flujo de mensajes = Programas

COMPARACION ENTRE DESCOMPOSICIN ALGORTMICA CONTRA DESCOMPOSICIN ORIENTADA A OBJETOS.

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingeniera de Sistemas
CUL ES LA MEJOR FORMA DE DESCOMPONER UN SISTEMA COMPLEJO. POR ALGORITMOS O POR OBJETOS? Segn Booch (1996): 1. 2. 3. Ambas visiones son importantes ya que: la visin algortmica enfatiza el orden de los eventos, y la visin orientada a objetos resalta los agentes que o bien causan acciones o bien son sujetos de estas acciones. Sin embargo, dice Booch: No se puede construir un sistema complejo de las dos formas a la vez porque son vistas completamente perpendiculares. Existe una gran ventaja de la descomposicin orientada a objetos ya que produce sistemas ms pequeos a travs de la reutilizacin de mecanismos comunes, proporcionando as una importante economa de expresin. Adems, Los sistemas orientados a objetos son tambin ms resistentes al cambio y por tanto estn mejor preparados para evolucionar en el tiempo, porque su diseo est basado en formas intermedias estables. En realidad, la descomposicin orientada a objetos reduce en gran medida el riesgo que representa construir sistemas de software complejos, porque estn diseados para evolucionar de forma incremental partiendo de sistemas ms pequeos en los que ya se tiene confianza. Es ms, la descomposicin orientada a objetos resuelve directamente la complejidad innata del software ayudando a tomar decisiones respecto a la separacin de intereses en un gran espacio de estados.

4.

PARADIGMA EN EL DESARROLLO DE SOFTWARE: LA ORIENTACIN A OBJETOS (OO) COMPONENTES DE LA OO: Contiene un conjunto de metodologas y herramientas para el modelado y el desarrollo de software. OBJETIVO DE LA OO: Hacer ms fcil el desarrollo de sistemas complejos a partir de componentes individuales. ANTECEDENTES DE LA OO: AO: 1960 INVESTIGADORES: Dr. Nygaard, Dahl y Myrhaug ENTORNO: Universidad de Noruega TRABAJO: Desarrollo de sistemas informticos para simular sistemas fsicos (funcionamiento de motores) DIFICULTADES ENCONTRADAS: a. Programas existentes muy complejos y b. necesariamente tenan que ser muy modificables. SOLUCION: Si un sistema fsico estaba compuesto por N componentes, el software debera contener N mdulos, uno por cada componente (diseo de software con estructura paralela al sistema fsico que incidiera en una mxima correspondencia entre el sistema e informtico). Lo anterior teniendo en cuenta que cada componente contenia su abstraccin en un mdulo informtico y que los mdulos interactuaban envindose mensajes, al igual que los sistemas fsicos los cuales se comunican envindose seales. PRODUCTO: Lenguaje Simula-67 RESULTADOS: a. Ofrecer una forma dividir un programa muy complejo en partes ms sencillas y, b. simplificar al maximo el mantenimiento del software, permitiendo el cambio de componentes completos, o la modificacin del comportamiento de uno de ellos, sin producir efectos colaterales. AO: Dcada de los 70 INVESTIGADORES: Alan Kay, Adele Goldberg y Dan Ingalls ENTORNO: de la Universidad de Utah

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingeniera de Sistemas
TRABAJO diseo de un entorno y un lenguaje de programacin llamado Smalltalk , que incorporaba las ideas de la orientacin a objetos AO: Decada de los 80 INVESTIGADORES: Bjarne Stroustrup, ENTORNO: ATT-Bell TRABAJO: diseo del lenguaje C++ , como sucesor del C (Stroustrup, 1986) AO: 1991 INVESTIGADORES: Bertrand Meyer ENTORNO: ATT-Bell TRABAJO: cre el lenguaje Eiffel, reconocido en su momento como el ms completo y elegante de los lenguajes orientados a objetos (LOO). En forma simultanea se diseo para la inteligencia artificial el lenguaje CLOS ( Common Lisp Object System ), sucesor del lenguaje Lisp (Moon, 1989; Steel, 1990). En la actualidad existe un lenguaje de gran impacto en la industria de desarrollo de software: el lenguaje Java , lenguaje OO desarrollado por Sun Microsystems en 1995. ESTANDARIZACIN DE LAS METODOLOGAS ORIENTADAS A OBJETOS Aparece el OMG (Object Management Group ), utilizado por muchas empresas y casas de software. OMG produce especificaciones, para proyectos de desarrollo de software cumpliendo el ciclo de vida desde el anlisis hasta la implementacin, instalacin, realizacin de pruebas en tiempo de ejecucin y mantenimiento. Dentro del marco de la metodologa OMG cobra gran importancia la especificacin UML ( Unified Modeling Language ), que estandariza la representacin del anlisis y diseo orientado a objetos. Revisando antecedentes histricos y la actualidad de la OO, se puede concluir que el Paradigma Orientado a objetos resalta el uso del modelado de un sistema, detallando el domino del problema como un conjunto de objetos que se comunican entre s mediante mensajes, permitiendo que la estructura de los programas refleje directamente el del problema que se desea simular. Con el uso de las metodologas de anlisis orientado a objetos (AOO) y diseo orientado a objetos DOO, y sus lenguajes orientados a objetos (LOO), el software se implementa con base en objetos que tienen comportamientos especficos. Cada objeto se puede construir a partir de otros, los cuales a su vez pueden estar formados por otros objetos. Estos conceptos conducen a un beneficio muy importante, razn fundamental por la cual la ingeniera del software ha optado por el uso de este nuevo paradigma: la reutilizacin. Lo anterior, permite que al crear nuevos programas, se obtengan componente que puedan usarse para futuros desarrollos, osea que el software se implemente por ensamblamiento de objetos generados por nuestra aplicacin o por otras aplicaciones. Los objetos pueden ms complejos vistos internamente, pero ms sencillos para la interaccin con ellos, debido a que se pueden conceptuar como cajas negras disponibles para ser utilizadas sin conocer su parte interna. La idea es crear un gran depsito de objetos, y de herramientas para hallar el tipo de objeto necesario, reusarlo y optimizar su comportamiento como mas convenga. Para terminar, podemos mencionar que las caractersticas del DOO minimiza la posibilidad de incurrir en errores durante la programacin o reprogramacin.

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingeniera de Sistemas
Recordemos: que la mayora de los errores que se han producido a lo largo de la historia tienen relacin con programas que han fallado por el hecho de haber realizado modificaciones en ellos (reprogramacin).

Existen 1. 2. 3.

BASES DE LA ORIENTACION A OBJETOS tres (3) conceptos bsicos de la OO: Encapsulamiento-ocultamiento de informacin. Clasificacin, tipos abstractos de datos y herencia. Polimorfismo. ENCAPSULAMIENTO U OCULTAMIENTO DE LA INFORMACIN

Definicin de objeto en el nivel conceptual: es una entidad percibida en el sistema que se est desarrollando. Definicin de objeto en el nivel de implementacin: es un conjunto de operaciones, mtodos o servicios encapsuladas que pueden recibir mensajes de agentes externos y un conjunto de atributos, caractersticas, o propiedades las cuales albergan el estado de las operaciones. Principio bsico: nicamente el mismo objeto tiene la capacidad de acceder y modificar sus datos, mediante las operaciones o mtodos que tiene implementados. Definicin de evento: Existe cuando un atributo es modificado por la ejecucin de una operacin o mtodo. Accin del encapsulado: permitir ocultar la programacin e instrumentos a los diferentes usuarios. El encapsulado ofrece solo una interfaz externa para interactuar con el objeto. El Encapsulamiento es un principio fundamental: Ya que permite modificar los aspectos privados de un objeto sin crear efectos colaterales (sin afectar los dems objetos que interactan con l, con la condicin que se utilice la misma interfaz externa). Es decir, hay total libertad para los desarrolladores en la codificacin de detalles de un sistema, teniendo en cuenta el uso permanente de una interfaz abstracta, a la cual acceden los usuarios externos. Analoga de David Taylor sobre encapsulamiento (1992) El diseo orientado a objetos refleja las tcnicas de la naturaleza. Todos los seres vivos estn compuestos por clulas. Las clulas son paquetes organizados, que al igual que los objetos, combinan la informacin y el comportamiento. La informacin de las clulas est en el ADN y en las molculas de protena del ncleo. Los mtodos de la clula los realizan orgnulos que rodean al ncleo. La clula est cubierta por una membrana que protege y oculta la labor celular de cualquier intrusin del exterior. Las clulas no pueden leer las molculas de protena de las dems o controlar la estructura de las dems; solo leen y controlan lo propio. En vez de esto, envan solicitudes qumicas a las dems clulas. Al empaquetar de esta manera la informacin y el comportamiento la clula se encapsula. Esta comunicacin basada en mensajes hace mucho ms sencillo el funcionamiento celular... La membrana oculta la complejidad de la clula y presenta una interfaz relativamente sencilla al resto del organismo. Como se puede ver por la estructura celular, el encapsulado es una idea que ha estado latente durante mucho tiempo. TIPOS ABSTRACTOS DE DATOS Y ABSTRACCIN Lo esencial en el paradigma de la OO consiste en la clasificacin, muchas veces llamado tipificacin, de datos abstractos. Por lo general se denominan clases a los tipos de datos abstractos .De igual forma, el trmino objeto se emplea para describir las instancias, denominadas tambin hechos o casos particulares o concretos de las clases los cuales son creados en el instante que se ejecuta un programa.

CLASE = TIPO ABSTRACTO DE DATOS


.

VARIABLES O ATRIBUTOS: Datos que se estn almacenando OPERACIONES o METODOS: Soportadas por los objetos (instancias)

Figura 1.Un sistema OO es un conjunto de objetos que interactan entre s y que estn organizados en clases.

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingeniera de Sistemas
El termino clase es sinnimo del termino ABSTRACCIN=Capturar detalles fundamentales de un objeto e ignorar los detalles insignificantes. Definiciones de abstraccin: Segn Booch (1996): la abstraccin surge de un reconocimiento de las similitudes entre ciertos objetos, situaciones o procesos del mundo real, y la decisin de concentrarse en esas similitudes e ignorar por el momento las diferencias Segn (Dahl, Kijkstra y Hoare, 1972): La abstraccin proporciona un mecanismo crucial para permitir que las personas comprendan, se comuniquen y razonen sistemas complejos sin abstraccin, el nivel de detalle requerido para comprender un sistema hace que las personas sean incapaces de construir sus modelos mentales de cmo se estructura el sistema y cmo funciona. Abstraccin= descomposicin de un sistema complejo o complicado en sus partes ms fundamentales y la descripcin de esas partes con un lenguaje sencillo y preciso. Le interesa a usted saber el detalle de los componentes de un vehiculo, o solo le interesa saber como conducirlo? En la Orientacin a Objetos, segn (Booch, 1996) la abstraccin permite utilizar bloques de informacin de contenido semntico cada vez mayor; debido a que los objetos, como abstracciones de entidades del mundo real, representan un agrupamiento de informacin particularmente denso y cohesivo HERENCIA Definicin uno: Es la posibilidad que existe en derivar nuevas clases a partir de una clase dada. Definicin dos: Se puede crear una nueva clase u objeto heredando los atributos y servicios de una o varias clases padre (herencia simple y mltiple).

Analoga de David Taylor (1992) Sobre Herencia Las clulas son un admirable bloque universal de construccin de la naturaleza. Existen clulas sanguneas que transportan sustancias qumicas, clulas del cerebro, clulas seas, clulas que permiten el funcionamiento de la retina del ojo y clulas musculares que distorsionan su forma para llevar a cabo funciones mecnicas. Los componentes de todas las plantas, insectos, peces y mamferos estn constituidos de clulas de estructura comn que actan segn ciertos principios bsicos. En principio, todo el software se podra construir de manera anloga con ciertas clases. Aunque existe una gran diversidad de clulas, muchas de ellas, como los objetos, tienen tipos similares. Un tipo de clula puede operar de manera similar a otro, puesto que ambas han heredado propiedades semejantes con la evolucin. Las clulas se agrupan en rganos, como los msculos o las uas de los pies. Los rganos se agrupan en sistemas y aparatos como, por ejemplo, el sistema nervioso. Un organismo est compuesto por varios sistemas y aparatos. Aunque forme parte de un organismo complejo, cada clula acta por su cuenta, como un objeto, sin conocer la razn por la que se le enva un mensaje o las ltimas consecuencias de su comportamiento. Extensibilidad, reutilizacin y bajos costos: Son estas las propiedades que radican en el principio de la herencia. En la programacin orientada a objetos, a partir de unas clases existentes, se pueden implementar aplicaciones. Algunos lenguajes de programacin orientados a objetos no admiten la herencia mltiple, pero en estos casos si permiten simular mediante AGREGACION de clases.

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingeniera de Sistemas
Las tarjetas CRC (Clases, responsabilidades y colaboracin) Fueron ideadas por Wirfs-Brock, Wilkerson y Wiener en 1990. Las tarjetas CRC permiten la definicin de clases y objetos y las relaciones entre estas pueden ser HERENCIA Y/O AGREGACION.