Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 22

Fundamentos de Programacin

Ingeniera en Tecnologas de la Informacin y Comunicaciones Objetivo del curso: Analizar y solucionar problemas informticos y representar su solucin mediante herramientas de software orientado a objetos. Competencias previas Habilidad para el manejo de la computadora. Navegacin en Internet. Capacidad de anlisis y sntesis. Manejar herramientas de software mediante mens. Manejar comandos y funciones bsicas en algn sistema operativo de computadora. Aplicar lgica matemtica en la solucin de problemas informticos.

Competencias a desarrollar Competencias especficas: Analizar y solucionar problemas informticos y representar su solucin mediante herramientas de software orientado a objetos.

Aportacin del curso al perfil profesional: La asignatura de Fundamentos de Programacin aporta al perfil del Ingeniero en Tecnologas de la Informacin y Comunicaciones, los conocimientos, habilidades, metodologa, as como capacidades de anlisis y sntesis, para plantear la solucin de problemas susceptibles de ser computarizados, a travs de diagramas de flujo, pseudocdigo, algoritmos y el paradigma de programacin orientada a objetos.

Relacin con las materias anteriores y posteriores: Temario: I. Fundamentos de programacin orientada a objetos. I.1. Evolucin de la programacin I.2. Conceptos fundamentales de la Programacin Orientada a Objetos I.3. Lenguajes orientados a objetos I.4. Relaciones entre clases y objetos I.5. Papel de clases y objetos en el anlisis y el diseo 1

II. Metodologa de Solucin de Problemas. II.1. Descripcin del problema (enunciado) II.2. Definicin de solucin (especificaciones) II.3. Diseo de la solucin (modelado) II.4. Desarrollo de la solucin (codificacin) II.5. II.6. Depuracin y pruebas (pruebas) Documentacin (manuales)

III. Herramientas de programacin. III.1. Simbologa III.2. Reglas para la construccin de diagramas III.3. Pseudocdigo III.4. Tipos de datos y expresiones III.5. Estructuras lgicas IV. Programacin orientada a objetos y modelado. IV.1. Caractersticas del modelo orientado a objetos IV.2. Elementos primordiales en el modelo de objetos IV.3. Representacin grfica del diseo IV.4. Relacin entre la programacin orientada a objetos y la estructurada V. Implementacin Orientada a Objetos. V.1. Estructura de una clase V.2. Elementos de una clase V.3. Clase principal V.4. Crear objetos VI. Modularidad. VI.1. Declaracin de mtodos VI.2. Mtodos de clase VI.3. Mtodos de instancia Bibliografa 1. Hjalmar Jacobson, Ivar. El Lenguaje Unificado de Modelado Gua del Usuario. 2a. edicin. Ed. Addison Wesley. 2. Flores Cueto, Juan Jos. Mtodo de las 6D UML Pseudocdigo Java Enfoque Algortmico, Serie Textos Universitarios Facultad de Ingeniera y Arquitectura. ed. Universidad de San Martn de Porres, (http://books.google.com/). 3. Joyanes Aguilar, Luis; Fernndez Azuela, Matilde y Rodrguez Baena, Luis. Fundamentos de Programacin Libro de Problemas Algoritmos Estructura de Datos y Objetos. 2a. edicin. Ed. McGraw Hill.

4. Ramrez, Felipe. Introduccin a la Programacin, Algoritmos y su Implementacin en Vb.Net, C#, Java y JAVA. 2a. edicin. Ed. Alfaomega Grupo Editor. 5. Cairo Battistutti, Osvaldo. Metodologa de la Programacin, Algoritmos Diagramas de Flujo y Programas. 3a. edicin. Ed. Alfaomega Grupo Editor. 6. Martin Robert, C. UML for Java(TM) Programmers. Ed. Robert C. Martin Series, Pearson. 2003. 7. Grady Booch, James. Rumbaugh E., Greg Perry. Aprendiendo Principios de Programacin en 24 horas. Ed. Prentice Hall. 8. Sintes, Anthony. Aprendiendo Programacin Orientada a Objetos en 21 Lecciones Avanzadas. Ed. Pearson Educacin, 2002.

Fechas de Exmenes Examen 1er 2. 3er 2 Oportunidad Calificacin Final Criterios de evaluacin y acreditacin Exmenes 60% Productos de Aprendizaje 40% Fecha Unidades

Otras Observaciones: Personificador Hora de entrada Asistencia a clase 2 oportunidad Revisin equitativa

I.

Fundamentos de programacin orientada a objetos.

El paradigma orientado a objetos naci en 1969 de la mano del doctor noruego que intentando escribir un programa que describiera el movimiento de los barcos a travs de un fiordo, descubri que era muy difcil simular las mareas, los movimiento de los barcos, y las formas de las lneas costeras con los mtodos de programacin existentes en ese momento. Adems descubri que los elementos del entorno que trataba de modelar (Barcos, Mareas y Lneas de la costa de los fiordos) as como las acciones de cada elemento eran mas fcil de manejar utilizando otro modelo, es aqu donde surge la Programacin Orientada a Objetos (OOP de sus siglas en ingles).

I.1.

Evolucin de la programacin

La evolucin de la programacin se puede sintetizar en tres modelos o paradigmas Un paradigma es una forma establecida de pensar acerca de cmo hacer algo. En el libro La Revolucin Cientfica Estructural de Thomas Kuhn describe los paradigmas como un conjunto de teoras, estndares y mtodos que juntos representa un medio de organizacin de conocimiento, es decir un medio de visualizar el mundo.

Los tres modelos o paradigmas de la evolucin de la programacin son:

La programacin mediante procedimientos (procedural o modular) La programacin estructurada La programacin orientada a objetos

Programacin Procedural o Modular

Los programas se dividen mdulos (partes independientes), cada una de las cuales ejecuta una nica actividad o tarea y se codifican independientemente uno de otro. Cada uno de estos mdulos se analiza, codifica y pone a punto por separado.

Raz

Modulo 1
Modulo 1.1 Modulo 1.2

Modulo 2
Modulo 2.1 Modulo 2.2

Modulo 3
Modulo 3.1

Modulo 4
Modulo 4.1 Modulo 4.2

Modulo 2.2.1

Modulo 2.2.2

Cada programa contiene un modulo denominado programa principal (por ejemplo en el lenguaje c se llama main al igual que en Java) que controla todo que sucede, transfiriendo el control a los submdulos (subprogramas o procedimientos) y estos al terminar transfieren el control a modulo principal. Si la tarea asignada a cada submodulo es demasiado compleja, este podr dividirse en otros submdulos ms pequeos. Estas tares pueden se procesos de entrada, salida, manipulacin de datos, control de otros mdulos o alguna combinacin de estas. Programacin Estructurada Se refiere a un conjunto de tcnicas que han ido evolucionando desde los primeros trabajos de Edgar Dijkstra. Esta tcnica aumenta la productividad del programa reduciendo el tiempo para escribir, verificar, depurar y mantener los programas. La programacin estructurada utiliza un nmero limitado de estructuras de control que minimiza la complejidad de los problemas y, por consiguiente reduce los errores. El conjunto de tcnicas que incorpora la programacin estructurada son: Diseo descendente (TopDown) Recursos Abstractos Estructuras bsicas

Diseo descendente (TopDown) Es el proceso mediante el cual un problema se descompone en una serie de niveles o pasos sucesivos de refinamiento. Para establecer un refinamiento pasamos de qu hace a cmo lo hace.

Qu hace?

Cmo lo hace?

Diseo descendente Recursos Abstractos La abstraccin es el proceso de extraer las propiedades relevantes de un objeto al tiempo que se ignora los detalles no esenciales. Las propiedades extradas definen una vista del objeto. En esencia la abstraccin supone la capacidad de encapsular y aislar la informacin del diseo. Segn Dijkstra, la abstraccin descompone un programa en trminos de recursos abstractos, es decir, descompone una accin compleja en una serie de acciones ms simples, capaces de ser implementadas en una computadora. Estructuras bsicas En mayo de 1966 Bhm y Jacopini demostraron que un programa puede ser escrito utilizando solamente tres tipos de estructura de control:

Secuenciales Selectivas Repetitivas

Secuenciales La estructura secuencial es aquella en la que una accin (instruccin) sigue a otra en secuencia.

Diagrama de Flujo
Inicio Accin 1 Accin 2 ...
Accin n

Diagrama NassiSchneiderman (NS)

Pseudocdigo

Inicio Accin 1 Accin 2 ...


Accin n Fin
Inicio Accin 1 Accin 2 Accin n Fin

Fin

Selectivas Diagrama de Flujo

Verdadero Condicin Accin 1

Falso

Diagrama NassiSchneiderman (NS)

Condicin Verdadero Accin 1 Falso

Pseudocdigo Si Condicin Accin 1 Fin Si Diagrama de Flujo

Verdadero Condicin
Accin 1

Falso

Accin 2

Diagrama NassiSchneiderman (NS)

Condicin Verdadero Accin 1 Falso Accin 2

Pseudocdigo Si Condicin Accin 1 En otro caso Accin 2 Fin Si

Repetitivas Diagrama de Flujo For/Next While/Mientras

Inicio
Falso

Condicin Inc/Dec
Proceso

Condicin Verdadero

Proceso

Repeat/Repite

Proceso Verdadero Condicin Falso

Diagrama NassiSchneiderman (NS) For/Next


Inicio

While/Mientras

While Condicin
Proceso

Proceso
Inc/Dec

Repeat/Repite

Proceso

Repeat Condicin

Pseudocdigo For/Next Para I = VI Hasta VF Proceso Fin Para Repeat/Repite Repite Proceso Hasta Condicin While/Mientras Mientras Condicin Proceso Fin Mientras

I.2.

Conceptos fundamentales de la Programacin Orientada a Objetos

La programacin orientada a objetos, tal vez el paradigma de programacin ms utilizado en el mundo del desarrollo de software y de la ingeniera de software del siglo XXI, trae un nuevo enfoque a los retos que se plantean en la programacin estructurada cuando los problemas a resolver son complejos. Al contrario que la programacin procedimental que enfatiza en los algoritmos, la POO enfatiza en los datos. En lugar de intentar ajustar un problema al enfoque procedimental de un lenguaje, POO intenta ajustar el lenguaje al problema. La idea es disear formatos de datos que se correspondan con las caractersticas esenciales de un problema. La idea fundamental de los lenguajes orientados a objetos es combinar en una nica unidad o mdulo, tanto los datos como las funciones que operan sobre esos datos. Tal 10

unidad se llama un objeto. Las funciones de un objeto se llaman funciones miembro en o mtodos y son el nico medio para acceder a sus datos. Los datos de un objeto, se conocen tambin como atributos o variables de instancia. Si se desea leer datos de un objeto, se llama a una funcin miembro del objeto. Se accede a los datos y se devuelve un valor. No se puede acceder a los datos directamente. Los datos son ocultos, de modo que estn protegidos de alteraciones accidentales. Los datos y las funciones se dice que estn encapsulados en una nica entidad. El encapsulamiento de datos y la ocultacin de los datos son trminos clave en la descripcin de lenguajes orientados a objetos. Si se desea modificar los datos de un objeto, se conoce exactamente cules son las funciones que interactan con las funciones miembro del objeto. Ninguna otra funcin puede acceder a los datos. Esto simplifica la escritura, depuracin y mantenimiento del programa. Un programa en Java se compone normalmente de un nmero de objetos que se comunican unos con otros mediante la llamada a otras funciones miembro. La organizacin de un programa en Java se muestra en la siguiente figura. La llamada a una funcin miembro de un objeto se denomina enviar un mensaje a otro objeto.

Objeto

Datos Funcin Miembro (Mtodo) Funcin Miembro (Mtodo) Objeto Objeto

Datos Funcin Miembro (Mtodo)


Funcin Miembro (Mtodo)

Datos Funcin Miembro (Mtodo)


Funcin Miembro (Mtodo)

En el paradigma orientado a objetos, el programa se organiza como un conjunto finito de objetos que contiene datos y operaciones (funciones miembro) que llaman a esos datos y que se comunican entre s mediante mensajes. 11

Propiedades fundamentales de la orientacin a objetos Existen diversas caractersticas ligadas a la orientacin a objetos. Todas las propiedades que se suelen considerar, no son exclusivas de este paradigma, ya que pueden existir en otros paradigmas, pero en su conjunto definen claramente los lenguajes orientados a objetos. Estas propiedades son: Abstraccin (tipos abstractos de datos y clases). Encapsulado de datos. Ocultacin de datos. Herencia. Polimorfismo.

Abstraccin La abstraccin es la propiedad de los objetos que consiste en tener en cuenta slo los aspectos ms importantes desde un punto de vista determinado y no tener en cuenta los restantes aspectos. El trmino abstraccin que se suele utilizar en programacin se refiere al hecho de diferenciar entre las propiedades externas de una entidad y los detalles de la composicin interna de dicha entidad. Es la abstraccin la que permite ignorar los detalles internos de un dispositivo complejo tal como una computadora, un automvil, una lavadora o un horno de microondas, etc., y usarlo como una nica unidad comprensible. Mediante la abstraccin se disean y fabrican estos sistemas complejos en primer lugar y, posteriormente, los componentes ms pequeos de los cuales estn compuestos. Cada componente representa un nivel de abstraccin en el cual el uso del componente se asla de los detalles de la composicin interna del componente. La abstraccin posee diversos grados denominados niveles de abstraccin. En consecuencia, la abstraccin posee diversos grados de complejidad que se denominan niveles de abstraccin que ayudan a estructurar la complejidad intrnseca que poseen los sistemas del mundo real. En el modelado orientado a objetos de un sistema esto significa centrarse en qu es y qu hace un objeto y no en cmo debe implementarse. Durante el proceso de abstraccin es cuando se decide qu caractersticas y comportamiento debe tener el modelo. Aplicando la abstraccin se es capaz de construir, analizar y gestionar sistemas de computadoras complejos y grandes que no se podran disear si se tratara de modelar a un nivel detallado. En cada nivel de abstraccin se visualiza el sistema en trminos de componentes, denominados herramientas abstractas, cuya composicin interna se ignora. Esto nos permite concentrarnos en cmo cada componente interacta con otros componentes y centrarnos en la parte del sistema que es ms relevante para la tarea a realizar en lugar de perderse a nivel de detalles menos significativos.

12

En estructuras o registros, las propiedades individuales de los objetos se pueden almacenar en los miembros. Para los objetos es de inters cmo estn organizados sino tambin qu se puede hacer con ellos. Es decir, las operaciones que forman la internan de un objeto son tambin importantes. El primer concepto en el mundo de la orientacin a objetos naci con los tipos abstractos de datos (TAD). Un tipo abstracto de datos describe no slo los atributos de un objeto, sino tambin su comportamiento (las operaciones). Esto puede incluir tambin una descripcin de los estados que puede alcanzar un objeto. Un medio de reducir la complejidad es la abstraccin. Las caractersticas y los procesos se reducen a las propiedades esenciales, son resumidas o combinadas entre s. De este modo, las caractersticas complejas se hacen ms manejables. Encapsulacin y ocultacin de datos El encapsulado o encapsulacin de datos es el proceso de agrupar datos y operaciones relacionadas bajo la misma unidad de programacin. En el caso de los objetos que poseen las mismas caractersticas y Introduccin a la ciencia de la computacin y a la programacin 25 comportamiento se agrupan en clases, que no son ms que unidades o mdulos de programacin que encapsulan datos y operaciones. La ocultacin de datos permite separar el aspecto de un componente, definido por su interfaz con el exterior, de sus detalles internos de implementacin. Los trminos ocultacin de la informacin y encapsulacin de datos se suelen utilizar como sinnimos, pero no siempre es as, y muy al contrario, son trminos similares pero distintos. En Java no es lo mismo, ya los datos internos estn protegidos del exterior y no se pueden acceder a ellos ms que desde su propio interior y por tanto, no estn ocultos. El acceso al objeto est restringido slo a travs de una interfaz bien definida. El diseo de un programa orientado a objetos contiene, al menos, los siguientes pasos: 1. 2. 3. 4. Identificar los objetos del sistema. Agrupar en clases a todos objetos que tengan caractersticas y comportamiento comunes. Identificar los datos y operaciones de cada una de las clases. Identificar las relaciones que pueden existir entre las clases.

En Java, un objeto es un elemento individual con su propia identidad; por ejemplo, un libro, un automvil, etc. Una clase puede describir las propiedades genricas de un ejecutivo de una empresa (nombre, ttulo, salario, cargo, etc.) mientras que un objeto representar a un ejecutivo especfico (Luis Mackoy, director general). En general, una clase define qu datos se utilizan para representar un objeto y las operaciones que se pueden ejecutar sobre esos datos.

13

Cada clase tiene sus propias caractersticas y comportamiento; en general, una clase define los datos que se utilizan y las operaciones que se pueden ejecutar sobre esos datos. Una clase describe un objeto. En el sentido estricto de programacin, una clase es un tipo de datos. Diferentes variables se pueden crear de este tipo. En programacin orientada a objetos, stas se llaman instancias. Las instancias son, por consiguiente, la realizacin de los objetos descritos en una clase. Estas instancias constan de datos o atributos descritos en la clase y se pueden manipular con las operaciones definidas dentro de ellas. Los trminos objeto e instancia se utilizan frecuentemente como sinnimos (especialmente en Java). Si una variable de tipo Carro se declara, se crea un objeto Carro (una instancia de la clase Carro). Las operaciones definidas en los objetos se llaman mtodos. Cada operacin llamada por un objeto se interpreta como un mensaje al objeto, que utiliza un mtodo especfico para procesar la operacin. En el diseo de programas orientados a objetos se realiza en primer lugar el diseo de las clases que representan con precisin aquellas cosas que trata el programa. Por ejemplo, un programa de dibujo, puede definir clases que representan rectngulos, lneas, pinceles, colores, etc. Las definiciones de clases, incluyen una descripcin de operaciones permisibles para cada clase, tales como desplazamiento de un crculo o rotacin de una lnea. A continuacin se prosigue el diseo de un programa utilizando objetos de las clases. El diseo de clases fiables y tiles puede ser una tarea difcil. Afortunadamente, los lenguajes POO facilitan la tarea ya que incorporan clases existentes en su propia programacin. Los fabricantes de software proporcionan numerosas bibliotecas de clases, incluyendo bibliotecas de clases diseadas para simplificar la creacin de programas para entornos tales como Windows, Linux, Macintosh o Unix. Uno de los beneficios reales de Java es que permite la reutilizacin y adaptacin de cdigos existentes y ya bien probados y depurados. Objetos El objeto es el centro de la programacin orientada a objetos. Un objeto es algo que se visualiza, se utiliza y juega un rol o papel. Si se programa con enfoque orientado a objetos, se intentan descubrir e implementar los objetos que juegan un rol en el dominio del problema y en consecuencia programa. La estructura interna y el comportamiento de un objetivo, en una primera fase, no tiene prioridad. Es importante que un objeto tal como un carro o una casa jueguen un rol. Dependiendo del problema, diferentes aspectos de un aspecto son relevantes. Un carro puede ser ensamblado de partes tales como un motor, una carrocera, unas puertas o puede ser descrito utilizando propiedades tales como su velocidad, su kilometraje o su 14

fabricante. Estos atributos indican el objeto. De modo similar una persona, tambin se puede ver como un objeto, del cual se disponen de diferentes atributos. Dependiendo de la definicin del problema, esos atributos pueden ser el nombre, apellido, direccin, nmero de telfono, color del cabello, altura, peso, profesin, etc. Un objeto no necesariamente ha de realizar algo concreto o tangible. Puede ser totalmente abstracto y tambin puede describir un proceso. Por ejemplo, un partido de baloncesto o de rugby puede ser descrito como un objeto. Los atributos de este objeto pueden ser los jugadores, el entrenador, la puntuacin y el tiempo transcurrido de partido. Cuando se trata de resolver un problema con orientacin a objetos, dicho problema no se descompone en funciones como en programacin estructurada tradicional, caso de C, sino en objetos. El pensar en trminos de objetos tiene una gran ventaja: se asocian los objetos del problema a los objetos del mundo real. La correspondencia entre objetos de programacin y objetos del mundo real es el resultado eficiente de combinar datos y funciones que manipulan esos datos. Los objetos resultantes ofrecen una mejor solucin al diseo del programa que en el caso de los lenguajes orientados a procedimientos. Un objeto se puede definir desde el punto de vista conceptual como una entidad individual de un sistema y que se caracteriza por un estado y un comportamiento. Desde el punto de vista de implementacin un objeto es una entidad que posee un conjunto de datos y un conjunto de operaciones (funciones o mtodos). El estado de un objeto viene determinado por los valores que toman sus datos, cuyos valores pueden tener las restricciones impuestas en la definicin del problema. Los datos se denominan tambin atributos y componen la estructura del objeto y las operaciones tambin llamadas mtodos representan los servicios que proporciona el objeto. La representacin grfica de un objeto en UML:

Objeto : Clase X Atributo1 = Expresin Mtodo () (a) Notacin completa de un objeto


15

Objeto : Clase X

(b) Notacin reducida de un objeto

Acadia : GMC Atributo1 = Expresin Mtodo () (c) Objeto Acadia de la clase GMC
Caractersticas de la POO

Marco : Alumno

(d) Objeto Marco de la clase Alumno

Existe un acuerdo acerca de qu caractersticas contempla la "orientacin a objetos", las caractersticas siguientes son las ms importantes: Abstraccin: denota las caractersticas esenciales de un objeto, donde se capturan sus comportamientos. 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 lo estn, una variedad de tcnicas son requeridas para ampliar una abstraccin. El proceso de abstraccin permite seleccionar las caractersticas relevantes dentro de un conjunto e identificar comportamientos comunes para definir nuevos tipos de entidades en el mundo real. La abstraccin es clave en el proceso de anlisis y diseo orientado a objetos, ya que mediante ella podemos llegar a armar un conjunto de clases que permitan modelar la realidad o el problema que se quiere atacar. Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstraccin. Esto permite aumentar la cohesin de los componentes del sistema. Algunos autores confunden este concepto con el principio de

Encapsulamiento:

16

ocultacin, principalmente porque se suelen emplear conjuntamente. Principio de ocultacin: Cada objeto est aislado del exterior, es un mdulo natural, y cada tipo de objeto expone una interfaz a otros objetos que especfica cmo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificacin por quien no tenga derecho a acceder a ellas, solamente los propios mtodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no pueden cambiar el estado interno de un objeto de maneras inesperadas, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstraccin. La aplicacin entera se reduce a un agregado o rompecabezas de objetos. Polimorfismo: comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizar el comportamiento correspondiente al objeto que se est usando. O dicho de otro modo, 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 objeto referenciado. 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 JAVA. las clases no estn aisladas, sino que se relacionan entre s, formando una jerarqua de clasificacin. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que volver a implementarlo. Esto suele hacerse habitualmente agrupando los objetos en clases y estas 17

Herencia:

en rboles o enrejados que reflejan un comportamiento comn. Cuando un objeto hereda de ms de una clase se dice que hay herencia mltiple. Recoleccin de basura: la recoleccin de basura o garbage collector es la tcnica por la cual el entorno de objetos se encarga de destruir automticamente, y por tanto desvincular la memoria asociada, los objetos que hayan quedado sin ninguna referencia a ellos. Esto significa que el programador no debe preocuparse por la asignacin o liberacin de memoria, ya que el entorno la asignar al crear un nuevo objeto y la liberar cuando nadie lo est usando. En la mayora de los lenguajes hbridos que se extendieron para soportar el Paradigma de Programacin Orientada a Objetos como JAVA u Object Pascal, esta caracterstica no existe y la memoria debe desasignarse manualmente.

I.3.

Lenguajes orientados a objetos

Histricamente el lenguaje Simula (1967) es aceptado como el primer lenguaje que posee las caractersticas principales de un lenguaje orientado a objetos. Fue creado para hacer programas de simulacin, en donde los "objetos" son la representacin de la informacin ms importante. Smalltalk (1972 a 1980) es posiblemente el ejemplo cannico, y con el que gran parte de la teora de la programacin orientada a objetos se ha desarrollado.
LISP LM SCHEMA Funcional C++ C# JAVA

Lenguaje Maquina

SMALLTALK

VISUAL BASIC

Orientados a Objetos

FORTRAN

BASIC

C
APL PASCAL PROLOG

ADA

COBOL ALGOL GPSS

Imperativos

Declarativos 1980 1990 2000

1950

1960

1970

El lenguaje de programacin C fue desarrollado por Dennis Ritche de AT&T en los Laboratorios Bell que se utiliz para escribir y mantener el sistema operativo UNIX (hasta que apareci C, el sistema operativo UNIX fue desarrollado por Ken Thompson en AT&T mediante en lenguaje ensamblador o en B). C es un lenguaje de propsito general que se puede utilizar para escribir cualquier tipo de programa, pero su xito y popularidad est especialmente relacionado con el sistema operativo UNIX. (Fue desarrollado como lenguaje de programacin de sistemas, es decir, un lenguaje de programacin para escribir sistemas operativos. 18

Entre los lenguajes orientados a objetos se destacan los siguientes:

Ada JAVA C# Clipper Object Pascal (Delphi) Gambas Eiffel Java JavaScript ObjectiveC R

Perl PHP PowerBuilder Python Ruby Smalltalk VB.NET Visual FoxPro Visual Basic Visual Objects XBase++

I.4.

Relaciones entre clases y objetos

En el Lenguaje Unificado de Modelado (UML, Unifield Modeling Language), una clase es representada por un rectngulo que posee tres divisiones:

Nombre de la clase Atributos

Comportamiento

En donde: La parte superior: Contiene el nombre de la Clase La intermedia: Contiene los atributos (o variables de instancia) que caracterizan a la Clase (pueden ser publica (public), privado (prvate), protegido (protected) y por defecto (amigable). La parte Inferior: Contiene los mtodos u operaciones, los cuales son la forma como interacta el objeto con su entorno, que al igual que los atributos contienen tipo de acceso (publico, privado, protegido y por defecto).

19

Atributos y Mtodos: Atributos: Los atributos o caractersticas de una Clase pueden ser de tres tipos, los que definen el grado de comunicacin y visibilidad de ellos con el entorno, estos son:

public (+,

):

Indica que el atributo ser visible tanto dentro como fuera de la clase, es decir, es accesible desde todos lados. Indica que el atributo slo ser accesible desde dentro de la clase (slo sus mtodos lo pueden accesar). ): Indica que el atributo no ser accesible desde fuera de la clase, pero si podr ser accesado por mtodos de la clase adems de las subclases que se deriven (herencia). Si no especifica ningn tipo de acceso, se utiliza el acceso por defecto, esto significa que la variable es accesible a todas las clases contenidas en le mismo paquete.

private (-,

):

protected (#,

defecto

Mtodos: Cada mtodo tiene asociado un tipo que se utiliza para controlar el acceso al mtodo. Entre estos se encuentra:

public (+,

):

Indica que el mtodo ser visible tanto dentro como fuera de la clase, es decir, es accsesible desde todos lados. ): Indica que el mtodo slo ser accesible desde dentro de la clase (slo otros mtodos de la clase lo pueden accesar). ): Indica que el mtodo no ser accesible desde fuera de la clase, pero si podr ser accesado por mtodos de la clase adems de mtodos de las subclases que se deriven (herencia). Si no especifica ningn tipo de acceso, se utiliza el acceso por defecto, esto significa que el mtodo es accesible a todas las clases contenidas en le mismo paquete.

private (-,

protected (#,

defecto

Relaciones entre Clases: Ahora ya definido el concepto de Clase, es necesario explicar como se pueden interrelacionar dos o ms clases (cada uno con caractersticas y objetivos diferentes).

Antes es necesario explicar el concepto de cardinalidad de relaciones: En UML, la cardinalidad de las relaciones indica el grado y nivel de dependencia, se anotan en cada extremo de la relacin y stas pueden ser: uno o muchos: 1..* (1..n) 0 o muchos: 0..* (0..n) nmero fijo: m (m denota el nmero).

Ejemplo:

Un cliente puede tener asociadas muchas Ordenes de Compra, en cambio una orden de compra solo puede tener asociado un cliente. Producto de Aprendizaje 1: De los siguientes conceptos seleccione uno en base al Nmero de Lista, desarrllelo como clase, expngalo, seleccione 3 que se puedan relaciona y junto a los temas que no sean seleccionados desarrllelo y presntelo por escrito. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Actor Avin Blusa Camin Camioneta Camisa Carro Casa Catedrtico CertificadoMdico CertificadoCalifiaciones Coche Computadora Cuaderno Cuenta CuentaAhorros CuentaBancaria CuentaCrdito Director Doctor 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 Empleado EquipoSonido Escuela Estadio Estudiante Fabrica Farmacia Fraccionamiento Hospital Ingeniero Lpiz Laptop Libro Licenciado Maestro Mascota Medico Mochila Modulo Museo 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 Notebook Pantaln Peridico Persona Pickup Pluma Portafolio Profesionista ProgramaRadio ProgramaTV Revista Supermercado Telfono Terreno Tienda Universidad Vehculo Ventana Vestido Zapato

Cada clase deber tener los siguientes trminos: Nombre de clase Atributos y Descripcin Comportamiento y Descripcin

Para las tres clases establezca: I.5. Relacin de las Clases

Papel de clases y objetos en el anlisis y el diseo

Una casa bien diseada es algo ms que un montn de paredes, puestas juntas para sostener en alto un techo que proteja de las inclemencias del tiempo. Cuando una persona discute con un arquitecto el diseo de una casa para su familia, se debe tomar en cuenta el numero de integrantes, las edades y gustos de cada uno, adems de la ubicacin de los dormitorios, as como la cocina o la distribucin de los baos, si tendrn cochera o jardn, etc.. Qu pasara si se construye una casa sin baos? o sin cocina? o sin techo?, o sin cochera? o Sin jardn? que se tendra que hacer en cada uno de estos casos. Por lo tanto el papel de las clases y los objetos en el anlisis y diseo es muy importante, porque el diseo de clases en donde falten caractersticas (atributos) o comportamiento (mtodos) afectara en el funcionamiento y desempeo de los objetos. Que pasara si se disea una clase que represente una casa y esta no tuviese techo?, al crear objetos de esa clases tendr este defecto. La solucin para este caso es parchar la clase con otra clase que tenga el techo, pero la mejor alternativa es regresar a la fase de anlisis y diseo, y corregir la clase ponindole techo.

También podría gustarte