modulo programacion orienta a objetos 33

Upload: alexandra-velasquez

Post on 08-Jul-2015

556 views

Category:

Documents


0 download

TRANSCRIPT

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de Sistemas

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD

PROGRAMACION ORIENTA A OBJETOS

ING. CESAR ORLANDO JIMENEZ ANGARITA 2010

i

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de Sistemas

PROGRAMACIN ORIENTADA A OBJETOS

CESAR ORLANDO JIMENEZ ANGARITA

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA PROGRAMA DE INGENIERIA DE SISTEMAS 2010

ii

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de SistemasCONTENIDO UNIDAD 1. INTRODUCCION A LA PROGRAMACION ORIENTADA A OBJETOS Leccin 1 CAPTULO 1. CONCEPTOS BASICOS ORIENTADOS A OBJETOS 1.1. (TOMADO DEL LIBRO PROGRAMACIN DE COMPUTADORES DE JOS CRCAMO SEPLVEDA, EDICIONES UIS). 1.2. Que es un objeto? ............................................................................................................................1 Leccin 2 1.3. Cada objeto tiene un conjunto de caractersticas o atributos que lo hacen diferente a los dems. ...................................................................................................................................................2 1.4. Inicialmente podramos decir que un objeto es algo que tiene atributos y comportamientos propios. .....................................................................................................................2 Leccin 3 1.5. Podramos hacer la representacin de un objeto del mundo real? .........................3 1.6. Tipo abstracto de datos ....................................................................................................................3 Leccin 4 1.7. Caractersticas de datos: Por ejemplo hora, minutos y segundos ................................4 1.8. Para representar el objeto anterior debemos considerar tres aspectos ....................5 Leccin 5 1.9. Que es un mensaje? ......................................................................................................................5 1.10. Beneficios de la POO (tomado de monografas.com) .....................................................6 1.11. Problemas derivados de la utilizacin de OOP en la actualidad (tomado de monografas.com) .......................................................................................................................................6 1.11.1. Curvas de aprendizaje largas. .................................................................................................6 1.11.2. Dependencia del lenguaje .........................................................................................................7 1.11.3. Determinacin de las clases .....................................................................................................7 1.11.4. Performance. ...................................................................................................................................7 CAPITULO 2. INTRODUCCIN Y ELEMENTOS BSICOS DE PROGRAMACIN ORIENTADA A OBJETOS (POO) Leccin 6 2.1 Introduccin ...........................................................................................................................................8 2.2 Porqu POO? .......................................................................................................................................9 2.3 Que es la POO? ............................................................................................................................... 10 Leccin 7 2.4 Ventajas de POO ............................................................................................................................... 11 Leccin 8 2.5. Desventajas de la tecnologa orientada a objetos ........................................................... 12 Leccin 9 2.6 Evolucin de la programacin ................................................................................................... 13

iii

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de Sistemas2.6.1. Programacin lineal. ................................................................................................................... 13 2.6.2. Programacin Modular ............................................................................................................. 13 2.6.3. Programacin Estructurada .................................................................................................... 14 Leccin 10 2.7. Comparacin entre la Programacin orientada a Objetos y la programacin estructurada. .............................................................................................................................................. 14 2.7.1. Paradigma Estructurado ........................................................................................................... 14 2.7.2 Paradigma Orientado a Objetos ............................................................................................ 16 2.7.2.1.Ventajas del Modelo orientado a objetos con respecto al modelo estructurado ............................................................................................................................................... 17 2.8 ACTIVIDADES COMPLEMENTARIAS ........................................................................................ 18 CAPITULO 3. PROPIEDADES BSICAS DE LA PROGRAMACIN ORIENTADA A OBJETOS Leccin 11 3.1 Abstraccin .......................................................................................................................................... 19 Leccin 12 3.2 Encapulacin ....................................................................................................................................... 20 Leccin 13 3.3 Moduaridad ........................................................................................................................................ 22 Leccin 14 3.4 Jerarquia ............................................................................................................................................... 23 Leccin 15 3.5 Polimrfismo ......................................................................................................................................... 24 3.6 Herencia ................................................................................................................................................ 25 3.6.1 Tipos de herencia .......................................................................................................................... 26 3.7 ACTIVIDADES COMPLEMENTARIAS ........................................................................................ 26 UNIDAD 2. ESTRUCTURA DE UN OBJETO - INTRODUCCION A JAVA CAPITULO 4. ANALISIS DE LA ESTRUCTURA Y COMPORTAMIENTO DE UN OBJETO Leccin 16 4.1 Anlisis de la Estructura de Objetos. ...................................................................................... 28 4.1.1 Objetos y Tipos de Objetos ..................................................................................................... 28 Leccin 17 4.1.2 Asociaciones de Objetos. ......................................................................................................... 28 Leccin 18 4.1.3 Jerarquas de Generalizacin................................................................................................. 28 4.1.4 Jerarquas Compuestas. ........................................................................................................... 29 4.1.5 Diagramas de relacin entre los objetos ........................................................................... 29 4.1.6 Esquemas de Objetos................................................................................................................ 30

iv

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de Sistemas4.2 Anlisis del comportamiento de objetos ................................................................................ 30 4.2.1 Estados de un Objeto. ................................................................................................................ 30 4.2.2 Eventos .............................................................................................................................................. 31 4.2.3 Tipos de Eventos. ......................................................................................................................... 31 4.2.4 El Ciclo Vital de un Objeto Objeto. ....................................................................................... 33 4.2.5 Interacciones entre tipos de objetos Objeto. ................................................................... 33 4.2.6 Operaciones Objeto. ................................................................................................................... 34 4.2.7 Fuentes externas de eventos Objeto.................................................................................. 35 4.2.8 Reglas deactivacin Objeto..................................................................................................... 35 4.2.9 Condiciones de Control Objeto.............................................................................................. 35 4.2.10 Subtipos y Supertipos de Eventos Objeto. .................................................................... 36 4.3 Diseo de la Estructura y Comportamiento de un Objeto Objeto. ........................... 37 4.3.1 Objeto Objeto. ................................................................................................................................ 37 4.3.2. Estructura de un Objeto. .......................................................................................................... 38 4.3.2.1.Componentes Objeto.............................................................................................................. 39 Leccin 19 4.3.3 Diferencia entre operacin y mtodo Objeto. ................................................................. 40 4.3.4 Herencia de Clase. Objeto....................................................................................................... 41 4.3.5 Herencia Mltiple. Objeto. ........................................................................................................ 41 Leccin 20 4.3.6 Seleccin del Mtodo Objeto.................................................................................................. 41 4.3.7 Polimorfismo Objeto. ................................................................................................................... 42 4.3.8 Notacin. Objeto. .......................................................................................................................... 42 4.4 ACTIVIDADES COMPLEMENTARIAS Objeto. ................................................................. 44 CAPITULO 5. FUNDAMENTOS DE JAVA Leccin 21 5.1 Introduccin ........................................................................................................................................ 46 5.2 Caractersticas de Java ................................................................................................................... 47 5.2.1 Diferencias Con C++ ................................................................................................................... 50 5.3 Estructura de un programa en Java ......................................................................................... 51 5.3.1 Creacin de un primer programa .......................................................................................... 53 5.3.1.1 Mtodos de definicin ........................................................................................................... 53 5.3.1.2 Palabras clave ............................................................................................................................. 54 Leccin 22 5.3.2 Tipos de datos y declaraciones .............................................................................................. 55 5.3.2.1 Tipos de datos simples ........................................................................................................... 55 5.3.3 Operadores y expresiones ........................................................................................................ 59 Leccin 23 5.3.4 E/S caracteres: ................................................................................................................................ 62 Leccin 24

v

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de Sistemas5.3.5 Estructuras De Control ............................................................................................................... 64 5.3.5.1 Las sentencias condicionales: if y switch ........................................................................ 65 5.3.5.1.1 La sentencia if else ............................................................................................................ 65 5.3.5.1.2. La sentencia switch .............................................................................................................. 66 5.3.5.2. Sentencias de iteracin o bucles: for, do, while ......................................................... 68 5.3.5.2.1 Bucle while ................................................................................................................................ 68 5.3.5.2.2 Bucle do-while ........................................................................................................................ 69 5.3.5.2.3 Bucle for ..................................................................................................................................... 69 Leccin 25 5.3.5.3 Sentencias de salto: break, continue y return .............................................................. 71 5.3.5.3.1 Sentencia break ...................................................................................................................... 71 5.3.5.3.2 Sentencia continue ............................................................................................................... 72 5.3.5.3.3 Sentencia return ..................................................................................................................... 73 5.4 ACTIVIDADES COMPLEMENTARIAS ........................................................................................ 74 CAPITULO 6. GUIA DE LABORATORIO Leccin 26 6.1. Caja de dialogo .................................................................................................................................. 76 6.2. Programacion de arregos ............................................................................................................. 78 6.3. Lectura de un vector por teclado ....................................................................................................... 79 6.4. Asignacion de un vector con numeros Aleatorios ............................................................ 79 6.5. Ordenamiento de un Vector Mtodo Lineal ........................................................................ 80 6.6. Ordenamiento de un Vector Mtodo Burbuja .................................................................... 80 6.7. Busqueda de un elemento en un vector ordenado. Mtodo Secuencial ............... 81 6.8. Busqueda de un elemento en un vector ordenado. Metodo Binaria ....................... 82 6.9. Implementacion de clases que administran Arreglos ..................................................... 83 6.9.1. Prog 1. Creacin de una clase Arreglo ................................................................................ 83 6.9.2. Prog2. Uso de un Objeto StringBuffer para la presentacin de un vector ....... 86 6.9.3. Programa 3. Invertir un Arreglo ............................................................................................. 88 Leccin 27 6.10. Proramacion avanzada. uso de matrices............................................................................. 90 6.10.2. Programa lectura y escritura de matrices ...................................................................... 91 6.10.3. Programa Suma de Diagonales y Transversales .......................................................... 92 6.10.4. Programa de Diagonal ............................................................................................................. 93 6.10.5. Programa de Copas ................................................................................................................... 93 Leccin 28 6.10.6. Programa Simulacin de un Inventario............................................................................ 96 6.10.7. Programa Simulacin de un Parqueadero .................................................................... 97 Leccin 29 6.11. Ejemplo Cola 1 ................................................................................................................................ 99 6.12. Ejemplo Cola 2 ............................................................................................................................. 101

vi

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de Sistemas6.13. Ejemplo Cola 4 ............................................................................................................................. 104 6.14. Ejemplo Cola 4 Archivo ............................................................................................................ 107 6.15. Ejemplo Lista ................................................................................................................................. 111 Leccin 30 6.16. Ejemplo Lista Circular ................................................................................................................ 113 6.17. Ejemplo Lista y Cola ................................................................................................................... 115 6.18. Ejemplo Lista y Pila ..................................................................................................................... 117 6.19. Ejemplo Multilista ....................................................................................................................... 120 6.20. Ejemplo Pila ................................................................................................................................... 121 6.21. Ejemplo Arbol Binario ............................................................................................................... 125 6.22. Ejemplo Arbol Binario ............................................................................................................... 127 UNIDAD 3. CLASES Y HERENCIA EN LA PROGRAMACION ORIENTADA A OBJETOS CAPITULO 7. CLASES BASICAS EN LA POO Leccin 31 7.1 Conceptos Bsicos ........................................................................................................................ 133 7.1.1 Concepto de Clase .................................................................................................................... 133 7.1.2 Caractersticas Importantes De Las Clases: .................................................................... 134 7.1.3 Concepto de Interface ............................................................................................................. 134 7.2. Ejemplo De Definicin De Una Clase .................................................................................. 135 7.3. Variables miembro ....................................................................................................................... 136 7.3.1 Variables miembro de objeto .............................................................................................. 137 7.3.2 Variables Finales ......................................................................................................................... 138 7.4 Abstraccin ....................................................................................................................................... 139 7.5 Encapsulado ..................................................................................................................................... 140 7.6 Arreglos y cadenas ....................................................................................................................... 140 7.7 Flujo de E/S en java ...................................................................................................................... 141 Leccin 32 7.8. Gestin De Excepciones Y Errores ........................................................................................ 142 7.8.1 Tipos de excepciones ............................................................................................................... 142 7.8.1.1 Herencia de excepciones Java .......................................................................................... 143 7.8.2 Funcionamiento .......................................................................................................................... 143 7.8.2.1 Manejo de excepciones: try - catch finally ............................................................. 144 7.8.2.2. Lanzamiento de excepciones: throw throws ......................................................... 145 7.8.2.3 Ejemplo de gestin de excepciones .............................................................................. 145 7.8.3 Los mtodos ................................................................................................................................. 148 Leccin 33 7.8.4 La instanciacin de las clases: Los objetos ..................................................................... 149 7.8.4.1 Referencias a Objeto e Instancias ................................................................................... 149

vii

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de Sistemas7.8.4.2 Constructores ........................................................................................................................... 150 7.8.4.3 El operador new ...................................................................................................................... 151 Leccin 34 7.8.5. Acceso al objeto ........................................................................................................................ 152 7.8.5.1 El operador punto (.) ............................................................................................................ 152 7.8.5.2 La referencia this .................................................................................................................... 153 Leccin 35 7.8.6. La destruccin del objeto ..................................................................................................... 154 7.8.6.1 La destruccin de los objetos ........................................................................................... 154 7.8.6.2 La destruccin por defecto: Recogida de basura .................................................... 154 7.8.6.3 La destruccin personalizada: finalize .......................................................................... 155 7.8.7 Herramientas De Java .............................................................................................................. 155 7.8.7.1 Paquetes de utilidades ........................................................................................................ 156 7.8.7.2 Paquetes para el desarrollo grfico ............................................................................... 156 7.8.7.3 Paquetes para el desarrollo en red ................................................................................ 156 7.8. ACTIVIDADES COMPLEMENTARIAS .................................................................................... 156 Leccin 36 APITULO 8. HERENCIA 8.1 La Herencia ....................................................................................................................................... 158 8.2 Jerarqua ............................................................................................................................................ 158 8.3 Herencia mltiple .......................................................................................................................... 159 8.4 Declaracin ....................................................................................................................................... 159 Leccin 37 8.5 Limitaciones en la herencia ...................................................................................................... 160 8.6. La clase Object ............................................................................................................................... 161 Leccin 38 8.7 Extensin De Clases ...................................................................................................................... 162 8.7.1 Composicin De Objetos Extendido ................................................................................. 162 8.7.1.1subclase ....................................................................................................................................... 162 8.7.2 Relacin de tipo de herencia ................................................................................................ 163 Leccin 39 8.7.2.1 Mtodos ..................................................................................................................................... 163 Leccin 40 8.7.2.2 Sobrecarga De Mtodo ....................................................................................................... 165 CAPITULO 9. EXTENSIN DE CLASES Leccin 41 9.1. Applest Y Web ............................................................................................................................... 167 9.1.1 Applets ............................................................................................................................................ 167 9.1.2 HTML para Java .......................................................................................................................... 167 9.1.3 Protocolos Para Trabajo En La Red ................................................................................... 167

viii

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de SistemasLeccin 42 9.1.4 Que Es Un Applet ...................................................................................................................... 168 9.1.4.1 Consideraciones sobre la seguridad en las applets ............................................... 169 Leccin 43 9.1.5 La Clase Applet ........................................................................................................................... 170 9.1.5 .1 Situacin de la clase Applet en la API de Java ........................................................ 170 9.1.5.2 Mtodos del ciclo de vida .................................................................................................. 170 Leccin 44 9.1.6 La Clase Url ................................................................................................................................... 172 9.1.7 Inclusin de la applet en una pgina Web .................................................................... 172 9.1.7.1 Obtencin de los parmetros de la applet ................................................................ 173 9.1.7.2 Obtencin de informacin sobre una applet ............................................................ 174 9.1.7.3 Manipulacin del entorno de una applet ................................................................... 174 Leccin 45 9.1.8 Ejemplo De Construccin De Una Applet ...................................................................... 175 9.1.8.1 Cdigo ......................................................................................................................................... 175 9.1.8.2 Ejecucin .................................................................................................................................... 176 9.2 ACTIVIDADES COMPLEMETARIAS ......................................................................................... 176 CAPITULO 10. BIBLIOGRAFIA 10.1. Bibliografia ................................................................................................................................... 178 10.2. Bibliografia Sitios Web ........................................................................................................... 179

ix

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de SistemasUNIDAD 1. INTRODUCCION A LA PROGRAMACION ORIENTADA A OBJETOS Leeccin CAPTULO 1. CONCEPTOS BASICOS ORIENTADOS A OBJETOS 1.1. (Tomado del libro Programacin de Computadores de Jos Crcamo Seplveda, Ediciones UIS) Hoy por hoy es evidente que la orientacin a objetos es el trmino ms corriente en diversos entornos con actividades comerciales, industriales, de servicios y acadmicos. A travs de esta tcnica se logra la optimizacin en tareas concernientes a las fases de desarrollo de software como en el diseo, desarrollo y mantenimiento del software. Esto ha permitido ofrecer soluciones con larga opcin de usabilidad atacando problemas concernientes a la denominada crisis del software. Lo anterior pensado teniendo en cuenta la existencia de procesos imprescindibles hoy en da como lo son la reutilizacin de cdigo y su portabilidad. La Programacin Orientada a Objetos se basa en la idea natural de la existencia de un mundo lleno de objetos y que la resolucin del problema se realiza en trminos de objetos, un lenguaje se dice que est basado en objetos si soporta objetos como una caracterstica fundamental del mismo. Quiz al hablar de objetos se nos venga a la cabeza el cuento de los objetos voladores no identificados, aqu hablaremos de objetos pero no sern solo voladores, y seguro sern siempre plenamente identificados. La Programacin Orientada a Objetos modela el mundo en trminos de objetos, eventos y responsabilidades. Existen objetos que contienen datos y mtodos y eventos que activa procedimientos , que pueden modificar el estado de los objetos. En los lenguajes orientados a objetos un programa, es un apropiado encadenamiento de mensajes entre distintos objetos, previamente instanciados de las clases a las que pertenecen. 1.2. Que es un objeto? Segn el diccionario, un objeto es cualquier cosa que se ofrece a la vista y afecta los sentidos. Es as como podemos ver que el mundo real que nos rodea es un conjunto de objetos.

1

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de Sistemas

Si miramos a nuestro alrededor podemos observar plantas, animales, personas, cosas, etc. Estos son objetos tangibles. Existen otros que no son tangibles, pero somos conscientes de que existen, por ejemplo un mes del ano, una hora de una cita, un sentimiento, una profesin etc. Leccin 2 1.3. Cada objeto tiene un conjunto de caractersticas o atributos que lo hacen diferente a los dems. Por ejemplo una planta difiere notablemente de un animal y de un edificio. Cada uno de ellos presentan caractersticas y comportamientos muy diferentes, mas aun aunque dos objetos sean exactamente iguales, son distintos entre si, por ejemplo dos carros recin salidos de la fabrica, que tienen la misma marca, el mismo modelo, la misma lnea, las mismas caractersticas, son dos objetos distintos pues cada uno tiene una identificacin diferente, aunque pertenecen a la misma clase. 1.4. Inicialmente podramos decir que un objeto es algo que tiene atributos y comportamientos propios. Una planta es un ser viviente, vegetal que a primera vista esta construido por hojas, tallos, frutos, raz, etc. Adems respira por sus hojas, se alimenta por su raz, elabora clorofila etc. Son algunas de las caractersticas y comportamiento que podemos percibir superficialmente de una planta.

2

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de SistemasUn diccionario es un libro especial que contiene un conjunto de palabras y definiciones, tambin podemos encontrar en el graficas, tablas, ilustraciones, etc. Y su utilidad la percibimos cuando necesitamos consultar alguna palabra, leer su significado, verificar su ortografa, o de pronto investigar sobre algn tema especifico. Leccin 3 1.5. Podramos hacer la representacin de un objeto del mundo real? Por ejemplo el amor? La alegra?. Quiz nos sea difcil en los objetos abstractos, pero de una u otra forma lograramos hacerlo. Desde el punto de vista computacional es posible representar lgicamente cualquier objeto del mundo real. Para una solucin software un objeto es un elemento especial de informacin que se construye a partir de una estructura de datos y una estructura funcional.

ESTRUCTURA DE DATOS ESTRUCTURA FUNCIONAL

La estructura funcional opera directamente sobre la estructura de datos y esta a su vez solo puede ser manipulada por la estructura funcional del mismo objeto. En la programacin estructurada la estructura de datos es totalmente independiente de la parte funcional o procedimental; es mas podramos afirmar que lo nico estructurado en la programacin estructurada son los procedimientos pero los datos estn muy aislados. La programacin orientada a objetos se acerca mas al mundo real estructurando en un mismo elemento de informacin datos y procedimientos. 1.6. Tipo abstracto de datos En la terminologa de organizacin de la informacin muchas veces se manejan los trminos estructura de datos y tipo abstracto de datos como una misma cosa . Sin embargo, para muchos autores, existe una diferencia entre los dos trminos. Aparece entonces un nuevo elemento de informacin que se denomina tipo abstracto de datos.

3

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de SistemasUn tipo abstracto de datos contienen una estructura de datos propia y un conjunto de operaciones o mtodos autorizados para manipular la estructura de datos. Para representar a un objeto recurrimos a un tipo abstracto de datos. Por ejemplo tomemos un objeto del mundo real cotidiano que nos rodea. Imaginemos un objeto RELOJ, encontramos en el unas caractersticas a nivel de datos (estructuras de datos) y unas caractersticas de comportamiento (caractersticas funcionales). Leccin 4 1.7. Caractersticas de datos: Por ejemplo hora, minutos y segundos Caractersticas funcionales: Por ejemplo mostrar la hora, actualizar la hora y siendo mas ambiciosos mostrar la hora en segundos, mostrar la hora en minutos o sumar y restar horas.

Representemos este objeto del mundo real Quedara de la siguiente forma: ESTRUCTURA DE DATOS Hora Minutos Segundos

como un tipo abstracto de datos.

ESTRUCTURA FUNCIONAL Leer hora Mostrar hora Mostrar hora en segundos Mostrar hora en minutos

4

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de Sistemas Sumar hora Restar hora

1.8. Para representar el objeto anterior debemos considerar tres aspectos 1. Cmo representar la estructura de datos? Identificar las caractersticas del objeto a nivel de datos. Horas. Minutos. Segundos 2. Cmo representar su comportamiento? Identificar las operaciones o procesos a efectuar sobre los datos Leer hora Mostrar hora Mostrar hora en segundos, etc. 3. Cmo comunicarnos con el objeto? Para comunicarnos con el objeto debemos enviarle un mensaje. Leccin 5 1.9. Que es un mensaje? Segn el diccionario, un mensaje es un encargo de decir o llevar una cosa. Ms puntualmente, podemos definir un mensaje como el llamado que se hace a un objeto para que ejecute una de sus operaciones. Para que el objeto funcione se le debe enviar un mensaje adecuado, que sea identificado por el mismo objeto. En el ejemplo del reloj podemos enviarle un mensaje para que nos muestre la hora: MENSAJE: Mostrar hora, es un mensaje identificable por el objeto por que puede invocar una operacin propia del mismo. MENSAJE: Mostrar fecha, resulta desconocido para el objeto por que no existe ninguna operacin asociada a el. Los objeto ofrecen al mundo que lo rodea una puerta de entrada que es la que permite determinar si el mensaje es adecuado o no. A esta puerta de entrada se le denomina interfaz de objeto El mensaje llega a la interfaz de objeto solicitando una operacin y si este se ajusta a una forma de llamado conocida, el objeto acta.

5

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de Sistemas

1.10. Beneficios de la POO (tomado de monografas.com) Da a da los costos del Hardware decrecen. As surgen nuevas reas de aplicacin cotidianamente: procesamiento de imgenes y sonido, bases de datos multimediales, automatizacin de oficinas, ambientes de ingeniera de software, etc. An en las aplicaciones tradicionales encontramos que definir interfaces hombre-mquina "a-laWindows" suele ser bastante conveniente. Lamentablemente, los costos de produccin de software siguen aumentando; el mantenimiento y la modificacin de sistemas complejos suele ser una tarea trabajosa; cada aplicacin, (aunque tenga aspectos similares a otra) suele encararse como un proyecto nuevo, etc. Todos estos problemas an no han sido solucionados en forma completa. Pero como los objetos son portables (tericamente) mientras que la herencia permite la reusabilidad del cdigo orientado a objetos, es ms sencillo modificar cdigo existente porque los objetos no interaccionan excepto a travs de mensajes; en consecuencia un cambio en la codificacin de un objeto no afectar la operacin con otro objeto siempre que los mtodos respectivos permanezcan intactos. La introduccin de tecnologa de objetos como una herramienta conceptual para analizar, disear e implementar aplicaciones permite obtener aplicaciones ms modificables, fcilmente extensibles y a partir de componentes reusables. Esta reusabilidad del cdigo disminuye el tiempo que se utiliza en el desarrollo y hace que el desarrollo del software sea mas intuitivo porque la gente piensa naturalmente en trminos de objetos ms que en trminos de algoritmos de software. 1.11. Problemas derivados de la utilizacin de OOP en la actualidad (tomado de monografas.com) Un sistema orientado a objetos, por lo visto, puede parecer un paraso virtual. El problema sin embargo surge en la implementacin de tal sistema. Muchas compaas oyen acerca de los beneficios de un sistema orientado a objetos e invierten gran cantidad de recursos luego comienzan a darse cuenta que han impuesto una nueva cultura que es ajena a los programadores actuales. Especficamente los siguientes temas suelen aparecer repetidamente: 1.11.1. Curvas de aprendizaje largas. Un sistema orientado a objetos ve al mundo en una forma nica. Involucra la conceptualizacin de todos los elementos de un programa, desde subsistemas a los datos, en la forma de objetos. Toda la comunicacin entre los objetos debe realizarse en la forma de mensajes. Esta no es la forma en que estn escritos los programas orientados a objetos actualmente; al hacer la transicin a un sistema orientado a

6

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de Sistemasobjetos la mayora de los programadores deben capacitarse nuevamente antes de poder usarlo. 1.11.2. Dependencia del lenguaje. A pesar de la portabilidad conceptual de los objetos en un sistema orientado a objetos, en la prctica existen muchas dependencias. Muchos lenguajes orientados a objetos estn compitiendo actualmente para dominar el mercado. Cambiar el lenguaje de implementacin de un sistema orientado a objetos no es una tarea sencilla; por ejemplo C++ soporta el concepto de herencia mltiple mientras que SmallTalk no lo soporta; en consecuencia la eleccin de un lenguaje tiene ramificaciones de diseo muy importantes. 1.11.3. Determinacin de las clases. Una clase es un molde que se utiliza para crear nuevos objetos. En consecuencia es importante crear el conjunto de clases adecuado para un proyecto. Desafortunadamente la definicin de las clases es ms un arte que una ciencia. Si bien hay muchas jerarquas de clase predefinidas usualmente se deben crear clases especficas para la aplicacin que se este desarrollando. Luego, en 6 meses 1 ao se da cuenta que las clases que se establecieron no son posibles; en ese caso ser necesario reestructurar la jerarqua de clases devastando totalmente la planificacin original. 1.11.4. Performance. En un sistema donde todo es un objeto y toda interaccin es a travs de mensajes, el trfico de mensajes afecta la performance. A medida que la tecnologa avanza y la velocidad de micro procesamiento, potencia y tamao de la memoria aumentan, la situacin mejorar; pero en la situacin actual, un diseo de una aplicacin orientada a objetos que no tiene en cuenta la performance no ser viable comercialmente. Idealmente, habra una forma de atacar estos problemas eficientemente al mismo tiempo que se obtienen los beneficios del desarrollo de una estrategia orientada a objetos. Debera existir una metodologa fcil de aprender e independiente del lenguaje, y fcil de reestructurar que no drene la performance del sistema.

7

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de SistemasCAPITULO 2. INTRODUCCIN Y ELEMENTOS BSICOS DE PROGRAMACIN ORIENTADA A OBJETOS (POO) Leccin 6 2.1. Introduccin Actualmente una de las reas ms importantes en la industria y el mbito acadmico es la orientacin a objetos. La orientacin a objetos promete mejoras de amplio alcance en la forma de diseo, desarrollo y mantenimiento del software ofreciendo una solucin a largo plazo a los problemas y preocupaciones que han existido desde el comienzo en el desarrollo del software: la falta de portabilidad del cdigo y reusabilidad, cdigo que es difcil de modificar, ciclos de desarrollo largos y tcnicas de codificacin no intuitivas. Un lenguaje orientado a objetos ataca estos problemas. Tiene tres caractersticas bsicas: debe estar basado en objetos, basado en clases y capaz de tener herencia de clases. Muchos de los lenguajes pueden cumplir uno o dos de estos puntos, pero es muy difcil que se cumplan los tres, el inconveniente mas complicado de disear es la herencia. El concepto de programacin orientada a objetos (POO) no es nuevo, lenguajes clsicos como SmallTalk se basan en ella. Dado que la POO, se basa en la idea natural de la existencia de un mundo lleno de objetos y que la resolucin del problema se realiza en trminos de objetos. Un lenguaje se dice que est basado en objetos si soporta como una caracterstica fundamental del mismo. El elemento fundamental de la POO es, como su nombre lo indica, el objeto. Podemos definir un objeto como un conjunto complejo de datos y programas que poseen una estructura y forman parte de una organizacin. Esta definicin especifica varias propiedades importantes de los objetos. En primer lugar, un objeto no es un dato simple, sino que contiene en su interior cierto nmero de componentes bien estructurados. En segundo lugar, cada objeto no es un ente aislado, sino que forma parte de una organizacin jerrquica o de otro tipo. Bsicamente la POO permite a los programadores escribir software, de forma que est organizado en la misma manera que el problema que trata de modelar. Los lenguajes de programacin convencionales son poco ms que una lista de acciones a realizar sobre un conjunto de datos en una determinada secuencia. Si en algn punto del

8

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de Sistemasprograma modificamos la estructura de los datos o la accin realizada sobre ellos, el programa cambia. 2.2 Porqu POO? Es una manera de pensar, otra manera de resolver un problema; lo ms reciente en metodologas de desarrollo de software. Es un proceso mental humano aterrizado en una computadora. Antes se adecuaba el usuario al entendimiento de la computadora. Actualmente, se le ensea a la computadora a entender el problema. La Orientacin a Objetos es un paradigma, es decir, es un modelo para aclarar algo o para explicarlo. La Orientacin a Objetos es el paradigma que mejora el diseo, desarrollo y mantenimiento del software ofreciendo una solucin a largo plazo a los problemas y preocupaciones que han existido desde el comienzo del desarrollo del software:La

falta de portabilidad del cdigo, su reusabilidad, la modificacin (que antes era difcil de lograr), ciclos de desarrollo largo, tcnicas de programacin no intuitivas. La Orientacin a Objetos est basada en los tres mtodos de organizacin que utilizamos desde la infancia; entre un objeto y sus atributos (automvil > marca, color, nmero de llantas, etc.); Entre un objeto y sus componentes donde incluso otros objetos pueden formar parte de otros objetos (agregacin) (camin > motor, parabrisas, llantas); entre un objeto y su relacin con otros objetos (camin > vehculos automotores; una bicicleta no entrara en esta relacin). La metodologa del software orientado a objetos consiste en: Saber

el espacio del problema Realizar una abstraccin Crear los objetos (espacio de la solucin) Instanciarlos (esto es, traerlos a la vida) Dejarlos vivir (ellos ya saben lo que tienen que hacer) Las herramientas de programacin orientadas a objetos ayudan a manejar la complejidad. Desarrollar software que sea fcil de utilizar hace que sea muy compleja su construccin.

9

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de SistemasEl diseo del nuevo software se enfoca a complejas interfaces de usuarios, sistemas de manejo de ventanas, y programas multitarea estn haciendo que el software sea cada vez mas complejo. Las herramientas enfocadas a objetos facilitan la comprensin de esta complejidad, la estructuracin orientada a objetos reduce el nmero de conexiones entre los componentes del sistema, obligar a que los objetos se comuniquen a travs de una interfaz pblica estrecha hace ms fcil aislar los errores ocultos y determinar cuales son los mtodos responsables de los errores ocultos que ocurran. Los objetos mismos protegen los datos privados de modificaciones no deseadas. La definicin explicita de un protocolo de comunicacin permite a compiladores e intrpretes advertir a los usuarios acerca de los accesos ilegales e incluso impedir la modificacin no deseada de los componentes del sistema. Una de las mayores ventajas de una estructura orientada a objetos es el mapeo directo de los objetos en el dominio del problema a los objetos en el programa. Este mapeo directo es una consecuencia de tener una estructura basada en objetos. Si la programacin se considera una simulacin, resulta mucho ms fcil seleccionar objetos de un mundo simulado que desarrollar una solucin de programacin basada completamente en procedimientos y acciones. La orientacin a objetos surgi de la necesidad de simular sistemas de forma sencilla, no solo de informacin, si no de cualquier otro tipo, sin importar el modo de implantacin. 2.3 Que es la POO? La Programacin Orientada a Objetos (POO OOP segn siglas en ingls) es una metodologa de diseo de software y un paradigma de programacin que define los programas en trminos de "clases de objetos", objetos que son entidades que combinan estado (es decir, datos) y comportamiento (esto es, procedimientos o mtodos). La programacin orientada a objetos expresa un programa como un conjunto de estos objetos, que se comunican entre ellos para realizar tareas. Esto difiere de los lenguajes procedimentales tradicionales, en los que los datos y los procedimientos estn separados y sin relacin. Estos mtodos estn pensados para hacer los programas y mdulos ms fciles de escribir, mantener y reutilizar. Otra manera en que esto es expresado a menudo, es que la programacin orientada a objetos anima al programador a pensar en los programas principalmente en trminos de tipos de datos, y en segundo lugar en las operaciones ("mtodos") especficas a

10

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de Sistemasesos tipos de datos. Los lenguajes procedimentales animan al programador a pensar sobre todo en trminos de procedimientos, y en segundo lugar en los datos que esos procedimientos manejan. Los programadores que emplean lenguajes procedimentales, escriben funciones y despus les pasan datos. Los programadores que emplean lenguajes orientados a objetos definen objetos con datos y mtodos y despus envan mensajes a los objetos diciendo que realicen esos mtodos en s mismos. Algunas personas tambin diferencian la POO sin clases, la cual es llamada a veces programacin basada en objetos. Hay un cierto desacuerdo sobre exactamente que caractersticas de un mtodo de programacin o lenguaje le califican como "orientado a objetos", Trmino de Programacin Orientada a Objetos indica ms una forma de diseo y una metodologa de desarrollo de software que un lenguaje de programacin, ya que en realidad se puede aplicar el Diseo Orientado a Objetos (En ingls abreviado OOD, Object Oriented Design), a cualquier tipo de lenguaje de programacin. El desarrollo de la POO empieza a destacar durante la dcada de lo 80 tomando en cuenta la programacin estructurada, a la que engloba y dotando al programador de nuevos elementos para el anlisis y desarrollo de software. Se puede definir POO como una tcnica o estilo de programacin que utiliza objetos como bloque esencial de construccin. Los objetos son en realidad como los tipos abstractos de datos. Un TAD es un tipo definido por el programador junto con un conjunto de operaciones que se pueden realizar sobre ellos. Se denominan abstractos para diferenciarlos de los tipos de datos fundamentales o bsicos. Leccin 7 2.4 Ventajas de POO La OOP proporciona las siguientes ventajas sobre otros lenguajes de programacin Uniformidad. Ya que la representacin de los objetos lleva implica tanto el anlisis como el diseo y la codificacin de los mismos. Comprensin. Tanto los datos que componen los objetos, como los procedimientos que los manipulan, estn agrupados en clases, que se corresponden con las estructuras de informacin que el programa trata.

11

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de SistemasFlexibilidad. Al tener relacionados los procedimientos que manipulan los datos con los datos a tratar, cualquier cambio que se realice sobre ellos quedar reflejado automticamente en cualquier lugar donde estos datos aparezcan. Estabilidad. Dado que permite un tratamiento diferenciado de aquellos objetos que permanecen constantes en el tiempo sobre aquellos que cambian con frecuencia permite aislar las partes del programa que permanecen inalterables en el tiempo. Reusabilidad. La nocin de objeto permite que programas que traten las mismas estructuras de informacin reutilicen las definiciones de objetos empleadas en otros programas e incluso los procedimientos que los manipulan. De esta forma, el desarrollo de un programa puede llegar a ser una simple combinacin de objetos ya definidos donde estos estn relacionados de una manera particular. Reutilizacin. Las clases se construyen a partir de otras clases. Sistemas ms fiables. Proceso de desarrollo apropiado. Desarrollo ms flexible. Modelos que reflejan mejor la realidad. Mejor independencia e interoperatividad de la tecnologa. Mejor informtica distribuida en cliente servidor. Bibliotecas de clases comerciales disponibles. Mejores relaciones con los clientes. Mejor calidad del producto de software terminado. Leccin 8 2.5. Desventajas de la tecnologa orientada a objetos. A pesar de que las ventajas de la programacin orientada a objetos superan a las limitaciones de la misma, podemos encontrar algunas caractersticas no deseables en sta. Limitaciones para el programador. No obstante que la tecnologa orientada a objetos no es nueva, un gran porcentaje de programadores no estn familiarizados con los conceptos de dicha tecnologa. En otras palabras, la lgica de la programacin estructurada sigue siendo predominante en la mayora de los desarrolladores de software, despus de haber revisado de forma breve los principios de la programacin orientada a objetos, nos es claro que en sta se requiere una lgica de pensamiento totalmente diferente a la lgica comnmente utilizada para la programacin estructurada.

12

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de SistemasTamao excesivo en las aplicaciones resultantes. La gran mayora de los equipos de cmputo cuentan con capacidades tanto de almacenamiento como de memoria lo suficientemente buena como para ejecutar la mayora de las aplicaciones que puedan desarrollarse con la tecnologa orientada a objetos, sin embargo existen casos en los que lo anterior no se cumple. Una de las desventajas de la programacin orientada a objetos es que cuando se heredan clases a partir de clases existentes se heredan de forma implcita todos los miembros de dicha clase aun cuando no todos se necesiten, lo que produce aplicaciones muy grandes que no siempre encajan en los sistemas con los que se disponga. Velocidad de ejecucin. Esto tiene que ver, en cierto modo, con el punto anterior, una aplicacin innecesariamente pesada en muchas ocasiones es ms lenta de ejecutar que una aplicacin conformada nicamente por los mdulos necesarios. Leccin 9 2.6 Evolucin de la programacin POO (Programacin Orientada a Objetos)es un importante conjunto de tcnicas que se pueden utilizar para hacer el desarrollo de programas ms eficientes mientras se mejora la facilidad de los programas resultantes. En esencia, POO es un nuevo medio de enfocar el trabajo de programacin. Sin embargo, a fin de comprender lo que es la POO, es necesario comprender sus races. As pues, comenzaremos por examinar la historia del proceso de programacin analizada cmo evolucin POO y deduciendo, en consecuencia, por qu es tan importante este concepto. 2.6.1. Programacin lineal. Los lenguajes de programacin lineal (BASIC, COBOL Y FORTRAN) no tenan facilidad para reutilizar el cdigo existente de programas. De hecho se duplicaban segmentos de software cada vez ms en muchos programas. Los programas se ejecutaban en secuencias lgicas, haciendo la lgica difcil de comprender. El control de programas era difcil y se producan continuos saltos a lo largo del referido programa. An ms, los lenguajes lineales no tenan capacidad de controlar la visibilidad de los elementos llamados datos. 2.6.2. Programacin Modular El soporte ms elemental de la programacin Modular lleg con la aparicin de la subrutina. Una subrutina ha creado una secuencia de instrucciones a las que se les da un nombre independiente; una vez que se ha definido, la subrutina se puede ejecutar

13

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de Sistemassimplemente incluyendo el nombre del programa siempre que se requiera. Las subrutinas proporcionan una divisin natural de las tareas; diferentes programas utilizan. Aunque las subrutinas proporcionan el mecanismo bsico de la programacin Modular, se necesita mucha disciplina para crear software bien estructurado. Sin esta disciplina, es fcil escribir programas compilados y tortuosos difciles de modificar y comprender, as como imposible de mantener. Esta ha sido la panormica durante muchos aos en el desarrollo del software. 2.6.3. Programacin Estructurada. Un concepto importante en campo de la programacin Estructurada: Abstraccin, ya que la Abstraccin se puede definir como la capacidad de examinar algo sin preocuparse de los detalles internos. En un programa estructurado, es suficiente conocer que un procedimiento sea fiable, para que se pueda utilizar sin tener que conocer cmo funciona su interior. Esto se conoce como una Abstraccin funcional y es el ncleo de la programacin estructurada. Hoy casi todos los lenguajes de programacin tienen construcciones que facilitan la programacin estructurada. Leccin 10 2.7. Comparacin entre la Programacin orientada a Objetos y la programacin estructurada. 2.7.1. Paradigma Estructurado La Programacin estructurada fija su atencin en el conjunto de acciones que manipulan el flujo de datos, mientras que la POO se fija en la interrelacin que existe entre los datos y las acciones a realizar con ellos. Descomposicin funcional: el sistema es considerado una unidad funcional que se disgrega en procesos El resultado del proceso de abstraccin para la solucin de un problema macro lo constituyen pequeos subprogramas Un problema macro se subdivide en unidades ms pequeas llamadas procesos, estos se pueden distribuir entre diferentes personas que se vean involucradas en la solucin de un problema y as efectuar los desarrollos de software de una manera ms rpida y eficiente. Figura 1.1 Programacin Estructurada Los procesos son la parte central de este modelo pues a partir de estos se manejan las variantes (datos) que solucionarn el problema. Generalmente se manejan muchos procesos lo cual hace largos cdigos.

14

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de SistemasEl mantenimiento de los desarrollos deben efectuarse minuciosamente. Los procedimientos empleados en una aplicacin pueden reutilizarse teniendo cuidado en el manejo de los datos. Las operaciones se ajustan a las caractersticas propias de los lenguajes procedimentales. Los procesos que se modelan en el desarrollo de un problema plasman las operaciones necesarias para resolverlo

Los procesos son la parte central de este modelo pues a partir de estos se manejan las variantes (datos) que solucionarn el problema. Generalmente se manejan muchos procesos lo cual hace largos cdigos. El mantenimiento de los desarrollos deben efectuarse minuciosamente. Los procedimientos empleados en una aplicacin pueden reutilizarse teniendo cuidado en el manejo de los datos. Las operaciones se ajustan a las caractersticas propias de los lenguajes procedimentales. Los procesos que se modelan en el desarrollo de un problema plasman las operaciones necesarias para resolverlo

15

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de Sistemas

2.7.2 Paradigma Orientado a Objetos Descomposicin en objetos. El sistema es considerado un objeto o conjunto de objetos. Los cuales son el resultado del proceso de abstraccin para la solucin del problema macro. Dado que un problema macro puede ser dividido en objetos, estos pueden ser tratados por diferentes personas que luego lo integraran para dar la solucin final.

16

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de SistemasLos datos (estados) son la parte central del modelo y los mtodos que los modifican muestran el comportamiento del objeto. El mantenimiento de programas y aplicaciones generalmente son fciles de realizar . Los objetos que se modelan en el desarrollo de un sistema se ajustan a la realidad que representa el problema, este puede representare como un objeto o conjunto de objetos abstractos. El modelo orientado a objetos no es una tcnica de programacin sino un medio de plasmar el mundo real.

Adicin: Producto Punto: Producto Cruz: Producto por escalar: Normal:

R = A + B, R =(a1 + b1, a2 + b2, a3 + b3) R = A . B, R =(a1 .b1 + a2 .b2 + a3 .b3) R = A x B, R =(a2*f3-a3*b2, a3*b1-a1*b3, a1*b2- a2*b1) R = k A, R = ( ka1, ka2, ka3 ) R = /R/I, R = Raz cuadrada de (A * A) Figura 1.4 Objeto

2.7.2.1.Ventajas del Modelo orientado a objetos con respecto al modelo estructurado Un modelo de objetos es ms cercano a la realidad que un modelo funcional. Un desarrollo realizado con el modelo orientado a objetos es ms fcil de mantener y de reutilizar.

17

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de SistemasEl modelo orientado a objetos evita la redundancia en los procesos luego los cdigos son ms entendibles y resumidos. La integridad que dan los objetos a los datos evita ambigedades en su uso, dando mayor seguridad en los resultados. El modelo orientado a objetos facilita la integridad de mdulos que hallan sido realizados por separado sin correr riesgos en el manejo de los datos. Autoevaluacin 2.8 ACTIVIDADES COMPLEMENTARIAS Pate Uno: 1. Investigue la diferencia entre la POO y la Programacin estructurada? 2. Que es la POO? Y cuales son sus ventajas? 3. Que es una clase y Que es un objeto? 4. Explique cual es la estructura de un objeto? 5. Realice un ejemplo de manera grafica en donde se identifiquen los elementos de una clase y un objeto. 6. Ver Capitulo 9 Guia de Laboratorios para desarrollar en los laboratorios del CEAD o CERES respectivos Parte Dos: Realizar los ejercicos complementarios de Laboratorios de la Guia de Laboratotios y Consultar Bibliografia de Libros Virtual de la Unad y otros Autores 1. Autor: Deitel y Deitel Introduccin DOO con UML y los Patrones de Diseo JDBC tm, SERVLETS, JSP tm Editorial Pearson Prentice Hall Quinta Edicin, 2. David Arnow Gerald Weiss Introduccin a la Programacin con Java tm Actualizacin a la Versin 2 de Java Editorial Addison Wesley 3. Fcd Javier Ceballos Java 2 Curso de Programacin 2 Edicin Editorial Alfaomega Ra-Ma 4. Agustin Froute Java 2 Manual Usuario tutorial 3 Edicin Editorial Alfaomega Ra-Ma 5. Herbert shildt Fundamentos de Programacin Java 2 Editorial Mc Graw Hill . para conocer el lenguaje de programacin JAVA ya que estn resueltos solo los puede digitar compilar y ejecutar en la casa o laboratorio de su correspondiente CEAD o CERES.

18

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de SistemasLeccin 11 CAPITULO 3. PROPIEDADES BSICAS DE LA PROGRAMACIN ORIENTADA A OBJETOS La programacin orientada a objetos, ha tomado las mejores ideas de la programacin estructurada y los ha combinado con varios conceptos nuevos y potentes que incitan a contemplar las tareas de programacin desde un nuevo punto de vista. La programacin orientada a objetos, permite descomponer ms fcilmente un problema en subgrupos de partes relacionadas del problema. Entonces, utilizando el lenguaje se pueden traducir estos subgrupos a unidades auto contenidas llamadas objetos. El trmino Programacin Orientada a Objetos (POO), hoy en da ampliamente utilizado, es difcil de definir, ya que no es un concepto nuevo, sino que ha sido el desarrollo de tcnicas de programacin desde principios de la dcada de los setenta, aunque sea en la dcada de los noventa cuando ha aumentado su difusin, uso y popularidad. No obstante, se puede definir POO como una tcnica o estilo de programacin que utiliza objetos como bloque esencial de construccin. Un objeto es una unidad que contiene datos y las funciones que operan sobre esos datos. A los elementos de un objeto se les conoce como miembros; las funciones que operan sobre los objetos se denominan mtodos y los datos se denominan miembros datos. Leccin 12 3.1 Abstraccin Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cmo se implementan estas caractersticas. Los procesos, las funciones o los mtodos pueden tambin ser abstrados y cuando los estn, una variedad de tcnicas son requeridas para ampliar una abstraccin. La abstraccin es una especificacin del sistema que enfatiza sobre algunos de los detalles o propiedades del mismo mientras suprime a otros. Una buena abstraccin es aquella que enfatiza sobre detalles significativos al lector y al usuario y suprime detalles que son al menos por el momento irrelevantes o que causan distraccin. Existen cuatro tipos de abstracciones:

19

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de SistemasLa primera es la abstraccin de entidades; este tipo de abstraccin representa una entidad ya sea del dominio del problema o del dominio de la solucin. El segundo tipo de abstraccin es la abstraccin de acciones, es la abstraccin de comportamiento, esta abstraccin proporciona un conjunto especializado de operaciones y todas ellas desempean funciones del mismo tipo. El tercer tipo de abstraccin es el de maquinas virtuales, este tipo de abstraccin agrupa operaciones virtuales utilizadas por un nivel superior de control u operaciones que utilicen un conjunto de operaciones de nivel inferior. Por ejemplo, una abstraccin que utilice el cdigo "x" cuando la aplicacin se ejecute en Latinoamrica, o utilice el cdigo "y" cuando se ejecute el Norteamrica. El ltimo tipo de abstraccin es el de coincidencia, que almacena un conjunto de operaciones que no tienen relacin entre s, esto es, toma actividades que aparentemente no tienen una relacin como las clases hombre (con mtodos como come(), camina(), etc.), las clases transporte areo (volar()) y ave (volar()) y creamos una subclase de hombre llamada superhombre que come(), camina() y vuela(); esto se logra tomando comportamientos que no tienen que ver entre s y no se atribuyen a la herencia sino a la interfaz. Padre Interfaz \/ Hijo Por definicin una interfaz es abstracta, por lo tanto no tiene un comportamiento, slo la declaracin de este. Leccin 13 3.2 Encapsulacin Tambin llamada "ocultacin de la informacin", esto asegura que los objetos no pueden cambiar el estado interno de otros objetos de maneras inesperadas; solamente los propios mtodos internos del objeto pueden acceder a su estado.

20

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de Sistemas

Cada tipo de objeto expone una interfaz a otros objetos que especifica cmo otros objetos pueden interactuar con l. Algunos lenguajes resaltan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstraccin. La encapsulacin protege los atributos que conforman al objeto, y permite o niega informacin al pblico. Con el encapsulamiento, se consigue ocultar informacin y ocultar todos los secretos de un objeto que no contribuyen a sus caractersticas esenciales, tpicamente la estructura de un objeto se encuentra oculta y la implantacin de sus mtodos es visible. Para el caso del termmetro tal vez slo se requieren 3 mtodos: activarlo, desactivarlo y pedirle la temperatura. Un objeto es la abstraccin de algo que forma parte del dominio del problema reflejando las posibilidades de un sistema para mantener la informacin sobre l. Representa una entidad real o abstracta con un papel bien definido dentro de nuestro mundo y con dos caractersticas que son sus atributos y su comportamiento. Ejemplos de objetos pueden ser un celular, lentes, pluma, computadora, pizarrn, perro, etc. Los objetos se componen de atributos o variables que aclaran el estado del objeto. Los atributos de un objeto, bicicleta, podran ser el nmero de llantas que tiene (estado 2) el numero de marchas (estado 4 si es de velocidades), numero de asientos (estado uno), velocidad instantnea. Para alterar el estado de un objeto se necesita invocar un mtodo. Este mtodo es algo que el objeto sabe y por lo tanto define su comportamiento.

21

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de SistemasBicicleta.dameTuvelocidadactual() -entrega 0 Bicicleta.avanza(10) -modifico su velocidad Bicicleta.dameTuvelocidadactual()-entrega valor distinto de cero. La encapsulacion es una tcnica que permite localizar y ocultar los detalles de un objeto. La encapsulacin previene que un objeto sea manipulado por operaciones distintas de las definidas. La encapsulacin es como una caja negra que esconde los datos y solamente permite acceder a ellos de forma controlada. Las principales razones tcnicas para la utilizacin de la encapsulacin son: 1) Mantener a salvo los detalles de representacin, si solamente nos interesa el comportamiento del objeto. 2) Modificar y ajustar la representacin a mejores soluciones algortmicas o a nuevas tecnologas de software. Leccin 14 3.3 Modularidad Proceso de crear partes de un todo que se integran perfectamente entre s para que funcionen por un objetivo general, y a las cuales se les pueden agregar ms componentes que se acoplen perfectamente al todo, o extraerle componentes sin afectar su funcionamiento. En el caso que se requiera actualizar un mdulo, no hay necesidad de hacer cambios en otras partes del todo. Un ejemplo clsico es un conjunto de mdulos que, al integrarlos conforman un armario, el cual puede agregarle ms funcionalidad si se le agregan ms mdulos, o al contrario. Tambin se puede cambiar su finalidad si se acomodan esos mdulos para darle otro objetivo: volverlo una mesa. Esto ayuda a la descomposicin de problemas en subproblemas, es decir, a la solucin de problemas por composicin de soluciones a subproblemas Modularidad es el atributo del software que permite a un programa ser manejable intelectualmente. G. Myers La arquitectura del software implica la divisin de ste en componentes identificables y tratables por separado, denominados mdulos, que estn integrados para satisfacer los requisitos del programa.

22

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de SistemasUn software monoltico no puede ser entendido fcilmente por un solo usuario. El nmero de caminos de control, mbito de referencia, nmero de variables y la complejidad global haran su comprensin casi imposible. Para ver la importancia de la modularidad, considrense los siguientes argumentos basados en observaciones llevadas a cabo: Sea C(x) una funcin que define la complejidad percibida de un problema x, y E(x) una funcin que defina el esfuerzo (en tiempo) requerido para solucionar el problema x. Para dos problemas P1 y P2, si C(P1) > C(P2) se sigue que E(P1) > E(P2) Otra interesante caracterstica se ha descubierto durante la experimentacin en la resolucin de problemas, y es: C(P1 + P2) > C(P1) + C(P2) se sigue que E(P1 + P2) > E(P1) + E(P2) Es ms fcil resolver un problema complejo cuando se rompe en piezas manejables. Leccin 14 3.4 Jerarqua La mayora de las personas ve de manera natural nuestro mundo como objetos que se relacionan entre s de una manera jerrquica. Por ejemplo, un perro es un mamfero, y los mamferos son animales, y los animales seres vivos... Del mismo modo, las distintas clases de un programa se organizan mediante la jerarqua. La representacin de dicha organizacin da lugar a los denominados rboles de herencia:

23

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de SistemasMediante la herencia una clase hija puede tomar determinadas propiedades de una clase padre. As se simplifican los diseos y se evita la duplicacin de cdigo al no tener que volver a codificar mtodos ya implementados. Al acto de tomar propiedades de una clase padre se denomina heredar. Leccin 5 3.5 Polimorfismo Las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocacin de un comportamiento en una referencia producir el comportamiento correcto para el tipo real del referente. Cuando esto ocurre en "tiempo de ejecucin", esta ltima caracterstica se llama asignacin tarda o asignacin dinmica. Algunos lenguajes proporcionan medios ms estticos (en "tiempo de compilacin") de polimorfismo, tales como las plantillas y la sobrecarga de operadores de C++. En programacin orientada a objetos se denomina polimorfismo a la capacidad del cdigo de un programa para ser utilizado con diferentes tipos de datos u objetos. Tambin se puede aplicar a la propiedad que poseen algunas operaciones de tener un comportamiento diferente dependiendo del objeto (o tipo de dato) sobre el que se aplican. El concepto de polimorfismo se puede aplicar tanto a funciones como a tipos de datos. As nacen los conceptos de funciones polimrficas y tipos polimrficos. Las primeras son aquellas funciones que pueden evaluarse y/o ser aplicadas a diferentes tipos de datos de forma indistinta; los tipos polimrficos, por su parte, son aquellos tipos de datos que contienen al menos un elemento cuyo tipo no est especificado. Se puede clasificar el polimorfismo en dos grandes clases: Polimorfismo dinmico (o polimorfismo ad hoc) es aqul en el que el cdigo no incluye ningn tipo de especificacin sobre el tipo de datos sobre el que se trabaja. As, puede ser utilizado a todo tipo de datos compatible. Polimorfismo esttico (o polimorfismo paramtrico) es aqul en el que los tipos a los que se aplica el polimorfismo deben ser explicitados y declarados uno por uno antes de poder ser utilizados. El polimorfismo dinmico unido a la herencia es lo que en ocasiones se conoce como programacin genrica.

24

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de Sistemas

3.6 Herencia Organiza y facilita el polimorfismo y la encapsulacin permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que reimplementar su comportamiento. Esto suele hacerse habitualmente agrupando los objetos en clases y las clases en rboles o enrejados que reflejan un comportamiento comn. La herencia es uno de los mecanismos de la programacin orientada a objetos, por medio de la cual una clase se deriva de otra de manera que extiende su funcionalidad. Una de sus funciones ms importantes es la de proveer polimorfismo . La herencia en la POO permite a una clase heredar las propiedades de una clase de objetos, donde la clase padre sirve como patrn a la clase derivada. si un objeto hereda sus atributos de un nico padre, esto recibe el nombre de herencia simple, y si hereda atributos de mltiples padres es herencia mltiple, la ventaja de la herencia es permitir la reutilizacin de cdigo. Para realizar herencia se debe tener en cuenta dos aspectos importantes: la clase base y la clase derivada donde la clase base define todas las cualidades que sern heredadas por cualquier clase y la clase derivada hereda las caractersticas generales y aade a esta de su propia clase. Utilizando la herencia, un objeto slo necesita definir aquellas cualidades que lo hacen nico dentro de una clase. Este objeto puede heredar sus atributos generales de su padre. Por lo tanto la herencia es el mecanismo que le permite a un objeto ser una instancia especfica de un caso ms general analicemos el proceso de un animal. Por ejemplo al hacer una descripcin de los animales de forma abstracta, se puede decir que estos tiene atributos tales como: tamao, inteligencia, y el tipo de esqueleto. Los animales tienen diferentes clase de comportamiento esta puede ser una definicin de la clase de los animales. La herencia interacta con el encapsulado. Si una clase dada encapsula algunos atributos, entonces la cualquier clase tendr los mismos atributos.

25

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de Sistemas

3.6.1 Tipos de herencia Herencia sencilla: Un objeto puede extender las caractersticas de otro objeto y de ningn otro, es decir, solo puede tener un padre. Herencia mltiple: Un objeto puede extender las caractersticas de uno o ms objetos, es decir, puede tener varios padres. En este aspecto hay discrepancias entre los diseadores de lenguajes. Algunos de ellos han preferido no admitir la herencia mltiple por las posibles coincidencias en nombres de mtodos o datos miembros. Por ejemplo C++ admite herencia mltiple, Java y Ada slo herencia simple. Si una clase cualquiera tiene ms de un ancestro directo en la jerarqua de clases, se considera que existe herencia mltiple. En trminos concretos, una instancia de objeto de la clase hija, poseer todos los atributos y mtodos de sus clases ancestro. Autoevaluacin 3.7 ACTIVIDADES COMPLEMENTARIAS Parte Uno: 1. De acuerdo con el concepto de abstraccin mire su casa o apartamento y diga cual es la funcin de cada una de las partes. 2. Cual es la funcin de los descriptores private, public y protected.

26

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de Sistemas3. Realiza un mapa conceptual con 15 trminos del tema de modularidad. 4. Cual es la funcin principal de la jerarqua en la POO. 5. Cual es la relacin que existe entre jerarqua y polimorfismo? 6. Mediante un ejemplo explique el concepto de herencia 7. Realiza un rbol teniendo en cuanta las clases y subclases y lo que heredan de cada uno de las clases padres. Parte Dos: Realizar los ejercicos complementarios de Laboratorios de la Guia de Laboratotios y Consultar Bibliografia de Libros Virtual de la Unad y otros Autores 1. Autor: Deitel y Deitel Introduccin DOO con UML y los Patrones de Diseo JDBC tm, SERVLETS, JSP tm Editorial Pearson Prentice Hall Quinta Edicin, 2. David Arnow Gerald Weiss Introduccin a la Programacin con Java tm Actualizacin a la Versin 2 de Java Editorial Addison Wesley 3. Fcd Javier Ceballos Java 2 Curso de Programacin 2 Edicin Editorial Alfaomega Ra-Ma 4. Agustin Froute Java 2 Manual Usuario tutorial 3 Edicin Editorial Alfaomega Ra-Ma 5. Herbert shildt Fundamentos de Programacin Java 2 Editorial Mc Graw Hill . para conocer el lenguaje de programacin JAVA ya que estn resueltos solo los puede digitar compilar y ejecutar en la casa o laboratorio de su correspondiente CEAD o CERES.

27

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de SistemasUNIDAD 2. ESTRUCTURA DE UN OBJETO - INTRODUCCION A JAVA Leccin 16 Capitulo 4. Anlisis De La Estructura Y Comportamiento De Un Objeto 4.1 Anlisis de la Estructura de Objetos. 1 El anlisis de la estructura de objetos (AEO) define las categoras de los objetos que percibimos y las formas en que los asociamos. 4.1.1 Objetos y Tipos de Objetos. En el anlisis se trata de identificar los tipos de objeto ms que los objetos individuales en un sistema. Los tipos de objetos se definen en base a la comprensin del analista de nuestro mundo. Un objeto puede categorizarse de variadas formas.

4.1.2 Asociaciones de Objetos. Es importante modelar la forma como los objetos se asocian entre s. Adems es necesario identificar el significado de la asociacin y la cantidad de objetos con los que un objeto dado puede y debe asociarse (cardinalidad).

Representacin para la Asociacin entre dos Tipos de Objetos. Un objeto del tipo persona posee cero o muchos objetos del tipo vehculo. Un objeto del tipo vehculo es de un y slo un objeto del tipo persona. 4.1.3 Jerarquas de Generalizacin. Una de las vas de sentido comn por las que el hombre organiza su volumen de conocimiento es el de las jerarquas, de lo ms general a lo ms especfico.

28

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de Sistemas

Representacin de una Jerarqua de generalizacin, para el tipo de objeto Persona. En las jerarquas se habla de subtipo o especializacin de un supertipo o generalizacin. En el caso anterior, persona es el supertipo para Empleado y Estudiante, que son sus subtipos. Por otra parte, Empleado es el supertipo para los subtipos Ejecutivo y Vendedor. Los subtipos (niveles inferiores de la jerarqua) heredan las caractersticas de sus supertipos, adems, cada instancia de un tipo de objeto lo es tambin de sus supertipos. 4.1.4 Jerarquas Compuestas. Un objeto se denomina complejo si est formado por otros. Las jerarquas Compuestas permiten realizar agregaciones de objetos.

Un objeto del tipo edificio se compone de a lo menos un objeto del tipo piso. A su vez un objeto del tipo piso se compone de a lo menos un objeto del tipo pasillo, podra tener varios (o ninguno) objetos del tipo bao y oficina. 4.1.5 Diagramas de relacin entre los objetos. Los tipos de objetos estn relacionados con otros tipos de objeto. Por ejemplo, un empleado trabaja en una sucursal, o un cliente realiza un pedido de varios productos.

29

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de Sistemas

Un objeto del tipo cliente puede ordenar muchos objetos del tipo pedidos, y un objeto del tipo pedido es ordenado por un y slo un objeto del tipo cliente. Un objeto del tipo producto est en muchos o ningn objeto del tipo pedido, mientras que un objeto del tipo pedido tiene al menos un objeto del tipo producto. 4.1.6 Esquemas de Objetos. La comprensin de un modelo suele ser ms sencilla si los tipos de objetos y relaciones se presentan mediante un diagrama de relacin entre objetos; los supertipos y subtipos se presentan en un diagrama de jerarquas de generalizacin y las estructuras compuestas en un diagrama compuesto. Sin embargo, para los usuarios ms sofisticados puede ser til presentarlo todo en un mismo diagrama, el que se denomina esquema de objetos. Leccin 17 4.2 Anlisis del comportamiento de objetos

2

En el anlisis del comportamiento de objetos (ACO) realizamos esquemas de eventos que muestran eventos, la secuencia en que ocurren y cmo los eventos cambian el estado de los objetos. 4.2.1 Estados de un Objeto. Un objeto puede existir en varios estados. Por ejemplo, un objeto reservacin area puede ser una instancia de alguno de los siguientes tipos de objeto: Reservacin

solicitada, Reservacin en lista de espera, Reservacin confirmada, Reservacin cancelada, Reservacin satisfecha, Reservacin archivada.

30

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de SistemasTales tipos de objetos suelen percibirse como estados posibles del ciclo vital de un objeto. Sin embargo, un objeto puede tener una gran variedad de perspectivas de ciclos vitales. Por ejemplo, el mismo objeto reservacin area tambin puede tener los siguientes estados relacionados con el pago:Reservacin

no liquidada, Reservacin con un pago de depsito, Reservacin totalmente pagada, Reservacin reembolsada. As, el estado de un objeto es la coleccin de asociaciones que tiene un objeto. 4.2.2 Eventos. El mundo est lleno de eventos: una coneja tiene conejitos, llega el pesado del vecino en forma inesperada, un cliente solicita un prstamo, el servidor se cae, se termina la tarea, etc. En el anlisis orientado a objetos el mundo se describe en trminos de los objetos y sus estados, as como los eventos que modifican esos estados. Un evento produce un cambio en el estado de un objeto. Los eventos sirven como indicadores de los instantes en que ocurren los cambios de estado. Para saber de los cambios y reaccionar adecuadamente ante ellos, debemos entender y modelar los eventos. 4.2.3 Tipos de Eventos El analista no necesita conocer cada evento que ocurra en una organizacin: slo los tipos de eventos. Por ejemplo, el tipo de evento reservacin en lista de espera confirmada es la coleccin de eventos donde un objeto cambia de una reservacin en lista de espera a una reservacin confirmada. Los tipos de eventos indican los cambios sencillos en el estado de un objeto; por ejemplo, cuando se deposita dinero en una cuenta bancaria o se actualiza el sueldo de un trabajador. Bsicamente, los tipos de eventos describen las siguientes formas de cambios de estado:Un

objeto se crea.

31

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de SistemasUn

objeto se termina. Un objeto se clasifica como una instancia de un tipo de objeto. Un objeto se desclasifica como una instancia de un tipo de objeto. Un objeto cambia de clasificacin. Un atributo de un objeto se cambia. Los objetos pueden asociar un objeto con otro. Por ejemplo, en la mayora de las organizaciones, cuando un objeto se clasifica como empleado, debe estar asociado con un departamento. Un evento clasificar al objeto como empleado. Otro evento crear una asociacin entre el objeto empleado y un objeto Departamento (las asociaciones son objetos como los dems). Algunos eventos requieren que antes ocurran otros. Por ejemplo, antes de cerrar un departamento, todos los empleados deben ser asignados a otra parte, las oficinas que ocupaban deben tener otro uso, etc. Algunas veces, un evento puede provocar la reaccin encadena de otros eventos. Por ejemplo, el cambio de circuito a las conexiones de un avin, puede exigir cambios a varios otros objetos. Una operacin hace que los eventos ocurran. Dibujamos la operacin como un cuadro con esquinas redondeadas, puesto que los eventos indican los puntos en el tiempo en que se da el cambio de estado de un objeto. Los tipos de eventos se representan como tringulos negros llenos, generalmente unidos a la caja de operacin.

Segn el rea que se modele, puede ocurrir ms de un evento al terminar una operacin, y cada uno de estos puede activar operaciones independientes.

32

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de Sistemas

4.2.4 El Ciclo Vital de un Objeto La mayora de los objetos tienen un ciclo vital en el que una sucesin de eventos pueden ocurrirle y cada uno de stos modifica su estado. En este anlisis, se dibuja un diagrama que muestre el ciclo vital de un objeto, incluyendo los estados posibles de los objetos, adems de los cambios de estado permisibles. Este se denomina diagrama de reja.

Diagrama de reja que muestra los estados posibles de un objeto reservacin area. Las lneas horizontales representan estados y las verticales muestran las transiciones entre estados. 4.2.5 Interacciones entre tipos de objetos La mayora de los procesos requieren la interaccin de varios objetos.

33

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de Sistemas

En esta otra figura, se desarrolla el diagrama anterior para mostrar las operaciones necesarias.

4.2.6 Operaciones. En el anlisis OO, una operacin se refiere a una unidad de procesamiento que puede ser solicitada. El procedimiento se implanta mediante un mtodo. El mtodo es la especificacin de cmo llevar a cabo la operacin. A nivel de programa, el mtodo es el cdigo que implanta la operacin. Las operaciones se invocan. Una operacin invocada es una instancia de una operacin. Una operacin puede o no cambiar el estado de un objeto, si lo cambiara ocurrira un evento.

34

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de Sistemas

4.2.7 Fuentes externas de eventos Los eventos son cambios de estado que un sistema debe conocer y reaccionar ante ellos de algn modo. Muchas de las operaciones que producen estos eventos son externas al sistema. 4.2.8 Reglas de activacin Cuando ocurre un evento, lo normal es que el cambio de estado active el llamado a una o ms operaciones. Por ejemplo, si se retiran bienes de un almacn y la cantidad baja de cierto nivel, ello puede activar una operacin para volver a realizar un pedido. Las reglas de activacin definen la relacin entre la causa y el efecto. Siempre que ocurra un evento de cierto tipo, la regla de activacin invoca a una operacin ya definida. Un tipo de evento puede tener varias reglas de activacin, cada una de las cuales invoca a su operacin en paralelo. Las operaciones paralelas pueden producir diferentes cambios de estado en forma simultnea. 4.2.9 Condiciones de Control Una operacin puede ser invocada por una o varias reglas de activacin. Sin embargo, antes de invocar de hecho a la operacin se puede verificar una condicin de control. Si el resultado de evaluacin de la condicin es verdadera se invoca su operacin, en otro caso no.

35

Universidad Nacional Abierta y a Distancia - UNAD Escuela de Ciencias Bsica Tecnologa e Ingeniera Programa de Ingenieria de Sistemas

Las condiciones de control tambin pueden actuar como puntos de sincronizacin para el procesamiento en paralelo, pues garantizan que un conjunto de eventos est completo antes de proceder con una operacin. 4.2.10 Subtipos y Supertipos de Eventos.

Los eventos pueden dividirse en subtipos mediante diagramas independientes; o bie