Está en la página 1de 14

Algoritmo

Secuencia finita de instrucciones, cada una con significado preciso, que puede ejecutarse en una cantidad finita de esfuerzo en un tiempo finito (Aho A. et al). Pueden estar escritos es: 1. Lenguaje atural. !s el lenguaje com"n (coloquial). #. Lenguaje !structurado. !s un lenguaje mas limitado que el anterior, con reglas de sinta$is % sem&ntica definidas, esto quiere decir que consiste en crear programas con instrucciones agrupadas en un estricto orden secuencial, el cual es imprescindi'le conser(ar para la resoluci)n de un pro'lema. 1. Pseudoc)digo* lenguaje uni(ersal para comunicarse entre programadores, esto quiere decir que es un conjunto de instrucciones en lenguaje natural, como el castellano o el ingles, de acuerdo a la persona que desarrollar& un algoritmo 'asado en dicho lenguaje atural, en conclusi)n, es ela'orar el algoritmo usando pala'ras % frases que se comprendan f&cilmente. #. +)digo* lenguaje orientado a un tipo de compilador espec,fico, para ser -nterpretado por el computador, en otras pala'ras es un conjunto de -nstrucciones que son parte de un lenguaje de programaci)n especifico que se escri'en en orden secuencial % se almacenan en un archi(o al que se denomina programa, cuando el programa es peque.o se le denomina mini/programa o con el nom're de macro (en ingles se le denomina Script). 0. Lenguaje Sim')lico. !s una representaci)n que usa s,m'olos predefinidos para diagramar un algoritmo, con el fin de que sea f&cil de seguir la l)gica de la soluci)n que se desea e$presar en forma de un flujo de pasos a realizar, indicando el inicio % el termino de los mismos

Lenguaje de Programacin
Los lenguajes de programaci)n permiten comunicarse con los ordenadores o computadoras. 1na (ez identificada una tarea, el programador de'e traducirla o codificarla a una lista de instrucciones que la computadora entienda. 1n programa inform&tico para determinada tarea puede escri'irse en (arios lenguajes. Seg"n la funci)n, el programador puede optar por el lenguaje que implique el programa menos complicado. 2am'i3n es importante que el programador elija el lenguaje m&s fle$i'le % m&s ampliamente compati'le para el caso de que el programa tenga (arias aplicaciones.

Programa
!s un conjunto de instrucciones l)gicas que tienen la finalidad de lle(ar a ca'o una tarea espec,fica. Secuencia de instrucciones mediante las cuales se ejecutan diferentes acciones de acuerdo con los datos que se est3n procesando. !s un algoritmo desarrollado para ser utilizado por la computadora. !$presi)n de un algoritmo en un lenguaje preciso (de programaci)n) que puede llegar a entender una m&quina de c)mputo.

Software
!s el conjunto de programas, procedimientos % documentos relacionados con el sistema hard4are. !s la herramienta de que se (ale el usuario para o'tener el resultado esperado de un procesamiento

de datos. !s el conjunto de los programas de c)mputo, procedimientos, reglas, documentaci)n % datos asociados que forman parte de las operaciones de un sistema de computaci)n. (-!!!)

Otros Conceptos
Lenguaje maquina Lenguaje 'ajo ni(el Programa fuente Programa o'jeto +ompilador -nt3rprete

La complejidad inherente al software


+omo 5roo6s sugiere, 7la complejidad del soft4are es una propiedad esencial, no accidental7 !ntre otras seg"n 5ooch, 3sta se deri(a de: La complejidad del dominio del pro'lema. La dificultad de gestionar el proceso de desarrollo.

La complejidad del dominio del problema Los pro'lemas que se intentan resol(er con soft4are implican normalmente elementos de ineludi'le complejidad, en los que se encuentran: 1na gran cantidad de requisitos, en muchas ocasiones contradictorios. 8if,ciles interacciones entre los usuarios de un sistema % sus desarrolladores: los usuarios encuentran generalmente mu% dif,cil dar precisi)n so're sus necesidades de forma que los desarrolladores puedan comprender. Los usuarios % desarrolladores tienen diferentes perspecti(as de la naturaleza del pro'lema % hacen suposiciones diferentes so're la naturaleza de la soluci)n. Los requisitos de un sistema soft4are cam'ian durante su desarrollo.

La dificultad de gestionar el proceso de desarrollo 9o% es usual encontrar sistemas en funcionamiento cu%o tama.o se mide en centenares de millares, o incluso millones de l,neas de c)digo, por ejemplo el 6ernel de linu$ en su (ersi)n #.:.0: tiene %a m&s de 10 millones de l,neas de c)digo1. !sta caracter,stica se facilita descomponiendo nuestra implementaci)n en centenares % a (eces millones de m)dulos independientes. !sta cantidad de tra'ajo e$ige el uso de un equipo de desarrolladores, aunque se trata por todos los medios de que este equipo sea lo m&s peque.o posi'le. Ahora 'ien, a medida que ha%a m&s desarrolladores, se producen comunicaciones entre ellos m&s complejas, e incluso con coordinaci)n dif,cil entre ellos, particularmente si el equipo est& disperso geogr&ficamente, como suele ser el caso de pro%ectos grandes.

1 8isponi'le en: http:;;444.h/online.com;open;features;<hat/s/ne4/in/Linu$/#/:/0:/11=0==>.html?page@:

La crisis del software


!n 1>:A una conferencia so're soft4are, patrocinada por la B2A , asumi) los t3rminos ingenier,a del soft4are % crisis del soft4are. +on estos t3rminos se quer,a e$presar que el soft4are era caro, poco fia'le % escaso. Las metodolog,as % t3cnicas estructurales que reinaron en la d3cada de los setenta % ochenta no eliminaron el pro'lema, % de hecho la crisis del soft4are contin"a ho% en d,a. Pese a las muchas herramientas % m3todos utilizados, los pro'lemas del dise.o descendentes permanecen igual, posi'lemente de'ido a que la complejidad del pro'lema ha crecido considera'lemente. !ntre las diferentes fases del ciclo de (ida del soft4are (Cig 1.l), el mantenimiento, aunque en tiempos fue despreciada su importancia, se considera actualmente como uno de los pro'lemas m&s rigurosos en el desarrollo del soft4are .

Duchos in(estigadores sugieren que los costes de soft4are requieren m&s de la mitad de los costes % recursos glo'ales en el desarrollo de soft4are .

Los cam'ios realizados en la e(oluci)n de un programa son el punto d3'il de los m3todos tradicionales de desarrollo de soft4are, siendo parad)jicamente uno de los puntos fuertes de los m3todos de desarrollo de soft4are orientado a o'jetos .

!n 1>A:, Credric6 P. 5roo6s, en un famoso art,culo, apunta'a que en los "ltimos diez a.os no se ha',a producido ning"n progreso significati(o en el desarrollo de soft4are, % analiza'a cr,ticamente todas las tecnolog,as m&s prometedoras. Aunque 3l confesa'a que ten,a m&s confianza en la programaci)n orientada a o'jetos que en cualquier otra tecnolog,a, manten,a dudas so're sus (entajas efecti(as. Luego, las propuestas de reusa'ilidad o reutilizaci)n, 7reusa'ilit%7, de componentes de soft4are, se consideraron como 'loques iniciales para la construcci)n del programa, de modo similar a la construcci)n de cualquier o'jeto complejo (tal como un autom)(il) que se constru%e ensam'lando sus partes . !n respuesta al art,culo de 5roo6s, 5rad +o$, el in(entor de B'jecti(e/+, pu'lic) un art,culo en el que esencialmente re'at,a las tesis de 5roo6s: !$iste una 'ala de plata. !s un arma tremendamente potente, impulsada por (astas fuerzas econ)micas a la que nue(os o'st&culos t3cnicos s)lo pueden resistir 're(emente . La 'ala de plata es un cam'io cultural lugar de un cam'io tecnol)gico. !s un nue(o paradigma* una re(oluci)n industrial 'asada en partes reutiliza'les e intercam'ia'les que modificar&n el uni(erso del soft4are, de igual modo que la re(oluci)n industrial cam'i) la fa'ricaci)n. Por consiguiente, la PBB (Programaci)n Brientada a B'jetos) no s)lo son nue(os lenguajes de programaci)n, sino un nue(o modo de pensar % dise.ar aplicaciones que pueden a%udar a resol(er pro'lemas que afectan al desarrollo del soft4are. Sin em'argo, el lenguaje de'e ser capaz de soportar el nue(o paradigma, siendo por consiguiente una parte esencial de esta e(oluci)n.

Paradigmas de Programacin
!l significado de paradigma (paradigma en lat,n, par&deigma en griego) en su origen significa'a un ejemplo ilustrati(o, en particular, un enunciado modelo que mostra'a todas las infle$iones de una pala'ra. 2homas Euhn en 2he Structure of Scientific Fe(olutions (1>:#), introdujo la noci)n de paradigma como Glogros cient,ficos uni(ersalmente reconocidos que durante un tiempo proporcionan pro'lemas % soluciones modelo para una comunidad de profesionalesH Peter <egner en 1>AA e$tendi) la noci)n a los lenguajes de programaci)n considerando a los paradigmas como Gpatrones de pensamiento para la resoluci)n de pro'lemasH. !$isten muchos paradigmas de programaci)n, pero los cuatro m&s importantes son: Paradigma -mperati(o Paradigma Cuncional Paradigma L)gico Paradigma Brientado a B'jetos

Paradigma Imperativo[1] !n este paradigma se descri'e la computaci)n en t3rminos de enunciados que cam'ian el estado de un programa. Los programas imperati(os definen secuencias de comandos que la computadora de'e realizar. !l t3rmino imperati(o se usa en oposici)n a la programaci)n declarati(a que e$presa qu3 es el lo que se tiene que hacer sin descri'ir c)mo, en t3rminos de secuencias de acciones que se de'en tomar. La programaci)n funcional % l)gica son ejemplos de esta apro$imaci)n declarati(a.

La programaci)n procedural o por procedimientos es programaci)n imperati(a en la cual el programa est& constituido de uno o m&s procedimentos (tam'i3n conocidos como funciones o su'rutinas). Los t3rminos procedural e imperati(o son usualmente usados como sin)nimos. La programaci)n estructurada puede ser (ista como una rama de la programaci)n imperati(a, su fama la tiene principalmente por restringir el uso del enunciado IB2B. Su 'ase te)rica es el teorema de la programa estructurado que dice que mediante tres formas de com'inar los enunciados es posi'le escri'ir cualquier funci)n computa'le. !stas tres formas son: Secuencias Selecci)n -teraci)n o repetici)n

8esde los a.os := se impuls) el uso de la programaci)n estructurada para mejorar el mantenimiento % la calidad total de los programas imperati(os. 1n programa estructurado se compone de funciones, segmentos, m)dulos %;o su'rutinas, cada una con una sola entrada % una sola salida. +ada uno de estos m)dulos (a"n en el mismo programa completo), se denomina programa apropiado cuando, adem&s de estar compuesto solamente por las tres estructuras '&sicas, tiene s)lo una entrada % una salida % en ejecuci)n no tiene partes por las cuales nunca pasa ni tiene ciclos infinitos.
Secuencia

-ndica que las instrucciones de un programa se ejecutan una despu3s de la otra, en el mismo orden en el cual aparecen en el programa. Se representa gr&ficamente como una caja despu3s de otra, am'as con una sola entrada % una "nica salida. Las cajas A % 5 pueden ser definidas para ejecutar desde una simple instrucci)n hasta un m)dulo o programa completo, siempre % cuando que estos tam'i3n sean programas apropiados.
Seleccin

2am'i3n conocida como la estructura S-/+-!F2B/CALSB, plantea la selecci)n entre dos alternati(as con 'ase en el resultado de la e(aluaci)n de una condici)n o predicado* equi(ale a la instrucci)n -C de todos los lenguajes de programaci)n
Iteracin

2am'i3n llamada la estructura 9A+!F/D-! 2FAS/J1!, corresponde a la ejecuci)n repetida de una instrucci)n mientras que se cumple una determinada condici)n. Pascal, + % 5AS-+ son ejemplos de los lenguajes imperati(os m&s importantes. A continuaci)n (emos los paradigmas declarati(os m&s importantes: Paradigma Programacin Lgica[2] Los sistemas de programaci)n l)gica al programador esta'lecer una colecci)n de a$iomas o clausulas desde los cuales se pueden compro'ar teoremas. !l usuario de un programa l)gico esta'lece un teorema o meta % el motor del lenguaje intenta encontrar un colecci)n de clausulas % pasos de inferencia que juntos implican la meta. 8e los (arios lenguajes l)gicos e$istentes el m&s com"n % m&s usado se llama Prolog. !n casi todos los lenguajes l)gicos los a$iomas se representan mediante clausulas con dos partes: una ca'eza o consecuente H, % un cuerpo consistente en t3rminos Bi. H B1, B #, B0, , B n

!l significado del enunciado anterior es que cuando todos los Bi son (erdaderos podemos deducir que H tam'i3n es (erdadero. !ste tipo de clausulas permiten representar la ma%or,a pero no todos los enunciados l)gicos. Para o'tener nue(os enunciados, un sistema de programaci)n l)gica com'ina los enunciados %a e$istentes, cancelando t3rminos equi(alentes, a tra(3s de un proceso que se conoce como resoluci)n. Por ejemplo: C A, B D C D A, B Se considera la programaci)n l)gica es potencialmente de m&s alto ni(el que la programaci)n funcional o la imperati(a. !l auge del paradigma declarati(o se de'e a que el &rea de la l)gica formal de las matem&ticas ofrece un sencillo algoritmo de resoluci)n de pro'lemas adecuado para, usarse en un sistema de programaci)n declarati(o de prop)sito general. Algunas aplicaciones de la programaci)n l)gica se dan en los campos de: -nterfaces de Lenguaje atural. Sistemas !$pertos. Fesoluci)n de ecuaciones sim')licas. -nteligencia Artificial en general. Simulaci)n.

Paradigma Funcional [3] !l paradigma funcional es un paradigma de programaci)n que trata la computaci)n como la e(aluaci)n de funciones matem&ticas, hace 3nfasis en la funciones, en contraste con el paradigmas imperati(o que hace 3nfasis en los cam'ios de estado. La programaci)n funcional tiene sus ra,ces en el c&lculo lam'da un sistema formal desarrollado en 1>0= para in(estigar la definici)n de funciones, la aplicaci)n de funciones % recursi)n. !n la pr&ctica, la diferencia entre una funci)n matem&tica % la definici)n de funci)n en la programaci)n imperati(a es que la funciones imperati(as pueden tener efectos de lado % cam'iar el (alor c&lculos %a realizados. !n cam'io, el c)digo funcional, el (alor de retorno de una funci)n s)lo de los argumentos de entrada de la funci)n, as, que siempre que se llame a una funci)n con los mismos (alores se o'tendr& el mismo resultado. Los lenguajes de programaci)n funcional puros han sido ampliamente ense.ados en am'ientes acad3micos, no en comerciales. Sin em'argo, algunos lenguajes funcionales prominentes como Scheme (dialecto Lisp), !rlang, B'jecti(e +aml % 9as6ell han sido usados en aplicaciones comerciales e industriales por una amplia (ariedad de organizaciones. 1n ejemplo de la actualidad e importancia de la programaci)n funcional es el lenguaje multiparadigma CK, recientemente incorporado en el . !2 frame4or6 de Dicrosoft % completamente soportado en el Lisual Studio #=1=. Un ejemplo comparativo [2] +uando el programador imperati(o dice: Para calcular el mcd (m&$imo com"n di(isor) de a % ', re(ise si a % ' son iguales, si los son, imprima uno % det3ngase. !n caso contrario, reemplace el ma%or por la diferencia % repita. !l programador funcional dice:

!l mcd de a % ' se define como a cuando a % ' son iguales, % se define como mcd de c % d cuando a % ' no son iguales, donde c es el menor entre a % ' % d es su diferencia. Para calcular el mcd de un par de n"meros, e$panda % simplifique su definici)n hasta que termine. !l programador l)gico dice: La proposici)n de que el mcd de a % ' es igual a g es (erdadera cuando a, ' % g son iguales o si e$isten n"meros c % d tales que es (erdadero que c es el minimo entre a % ' % es (erdadero que d es la diferencia entre a % ', % es (erdadero que g es el mcd de c % d. Para calcular el mcd de un par de n"meros 'usque un numero g para el cual se cumplan las reglas anteriores. Paradigma rientado a bjetos[!]

!n 1>AA Peter <egner e$tendi) la noci)n de paradigma de 2homas Euhn a los lenguajes de programaci)n considerando a los paradigmas como Gpatrones de pensamiento para la resoluci)n de pro'lemasH. !n este sentido, la programaci)n orientada a o'jetos (PBB) es un nue(o paradigma. La orientaci)n a o'jetos fuerza a reconsiderar nuestro pensamiento so're la computaci)n, so're lo que significa realizar computaci)n % so're c)mo se estructura la informaci)n dentro del computador. 5o'ro4 % Stefi6 definen un estilo de programaci)n como Mun medio de organizaci)n de programas so're la 'ase de alg"n modelo conceptual de programaci)n % un lenguaje apropiado para hacer programas en un estilo claroN Sugieren que e$isten cuatro clases de estilos de programaci)n: Brientados a procedimientos Brientados a o'jetos Brientados a l)gica Brientados a reglas Algoritmos +lases % o'jetos !$presado en c&lculo de predicados, ej.: Prolog. Feglas acti(adas por condiciones, ej.: +L-PS % Prolog.

o e$iste ning"n estilo de programaci)n id)neo para todas las clases de programaci)n. La orientaci)n a o'jetos se acopla a la simulaci)n de situaciones del mundo real. !n PBB, las entidades centrales son los o'jetos, que son tipos de datos que encapsulan con el mismo nom're estructuras de datos % las operaciones o algoritmos que manipulan esos datos. !l paradigma orientado a o'jetos, se 'asa en los conceptos de o'jetos % clases de o'jetos. 1n o'jeto es una (aria'le equipada con un conjunto de operaciones que le pertenecen o est&n definidas para ellos.

Orientacin a Objetos
La orientaci)n a o'jetos puede descri'irse como el conjunto de disciplinas (ingenier,a) que desarrollan % modelizan soft4are que facilitan la construcci)n de sistemas complejos a partir de componentes. !l atracti(o intuiti(o de la orientaci)n a o'jetos es que proporciona conceptos % herramientas con las cuales se modela % representa el mundo real tan fielmente como sea posi'le. Las (entajas de la orientaci)n a o'jetos son muchas en programaci)n % modelaci)n de datos. +omo apunta'an Led'etter % +o$ (1>AO): La programaci)n orientada a o'jetos permite una representaci)n m&s directa del modelo de mundo ideal en el c)digo. !l resultado es que la transformaci)n radical normal de los requisitos del sistema (definido en t3rminos de usuario) a la especificaci)n del sistema (definido en t3rminos de computador) se reduce considera'lemente. Las t3cnicas orientadas a o'jetos proporcionan mejoras % metodolog,as para construir sistemas de soft4are complejos a partir de unidades de soft4are modularizado % reutiliza'le. Se necesita un

nue(o enfoque para construir soft4are en la actualidad. !ste nue(o enfoque de'e ser capaz de manipular tanto sistemas grandes como peque.os % de'e crear sistemas fia'les que sean fle$i'les, manteni'les % capaces de e(olucionar para cumplir las necesidades de cam'io.

Programacin Orientada a Objetos


"efinicin La programaci)n orientada a o'jetos es una t3cnica estructurada siendo los o'jetos los principales elementos de construcci)n. La programaci)n orientada a o'jetos es el producto de la e(oluci)n del paradigma estructurado a fin de conseguir que el soft4are sea un producto industrial, la programaci)n orientada a o'jetos es una programaci)n que en(,a mensajes a los o'jetos PQR. Irad% 5ooch, autor del m3todo de dise.o orientado a o'jetos, define la programaci)n orientada a o'jetos (PBB) como : G1n m3todo de implementaci)n en el que los programas se organizan como colecciones cooperati(as de o'jetos, cada uno de los cuales representan una instancia de alguna clase, % cu%as clases son todas miem'ros de una jerarqu,a de clases unidas mediante relaciones de herenciasH. 8e la definici)n anterior podemos mencionar tres caracter,sticas '&sicas de la PBB: 8e'e estar 'asado en o'jetos. 8e'e estar 'asado en clases. 8e'e ser capaz de tener herencia de clases. rientados a bjetos [!]

#istoria de los Lenguajes

!l primer lenguaje de programaci)n que introdujo el concepto de clase fue Simula/:Q, como entidad que conten,a datos % las operaciones que manipula'an los datos. Asimismo, introdujo tam'i3n el concepto de herencia. Simula/:Q es considerado el primer lenguaje orientado a o'jetos. !l siguiente lenguaje orientado a o'jetos, % seguramente el m&s popular desde un enfoque conceptual e$clusi(amente de o'jetos, es Smalltal6, cu%a primera (ersi)n comercial se desarroll) en 1>Q:, % en 1>A= se populariz) con la aparici)n de Smalltal6/A=, que es considerado por algunos como el lenguaje orientado a o'jetos por e$celencia, se caracteriza por soportar todas las propiedades fundamentales de la orientaci)n a o'jetos, dentro de un entorno integrado de desarrollo, con interfaz interacti(o de usuario 'asado en men"s. !ntre los lenguajes orientados a o'jetos que se han desarrollado a partir de los ochenta destacan e$tensiones de lenguajes tradicionales tales como +SS % B'jecti(e/+ (e$tensiones de +), Dodula/# % B'ject Pascal (e$tensi)n de Pascal) , B'ject +o'ol % Ta(a. 1n lenguaje que impuls) mucho la e$pansi)n de la orientaci)n a o'jetos es: +SS. Btro lenguaje como Smalltal6 orientado a o'jetos puro es !iffel, creado por 5ertrand De%er % que soporta todas las propiedades fundamentales de o'jetos. Actualmente se usa como plataforma de desarrollo en finanzas, aplicaciones aeroespaciales, aplicaciones para salud, (ideojuegos % otras industrias, e$isten plugins para desarrollar en !iffel con Lisual Studio . !2 #==0 P:R. Ada ha sido tam'i3n un lenguaje /en este caso 'asado en o'jetos/ que soporta la ma%or,a de las propiedades orientadas a o'jetos. Sin em'argo, desde la (ersi)n Ada/>O %a soporta herencia % polimorfismo. Actualmente Ada es un est&ndar internacional definido por -SB % A S- conocido como Ada #==O. !n los "ltimos a.os algunos de los lenguajes orientados a o'jetos m&s comercialmente usados son: Lisual 5asic. !2, +K % Ta(a.

$entajas de la Programacin

rientada a

bjetos

1niformidad. Ua que la representaci)n de los o'jetos implica tanto el an&lisis como el dise.o % la codificaci)n de los mismos. +omprensi)n. 2anto los datos que componen los o'jetos, como los procedimientos que los manipulan, est&n agrupados en clases, que se corresponden con las estructuras de informaci)n que el programa trata. Cle$i'ilidad. Al tener relacionados los procedimientos que manipulan los datos con los datos a tratar, cualquier cam'io que se realice so're ellos quedar& reflejado autom&ticamente en cualquier lugar donde estos datos aparezcan. !sta'ilidad. 8ado que permite un tratamiento diferenciado de aquellos o'jetos que permanecen constantes en el tiempo so're aquellos que cam'ian con frecuencia permite aislar las partes del programa que permanecen inaltera'les en el tiempo. La PBB es especialmente adecuada para realizar determinadas aplicaciones, so're todo la realizaci)n de prototipos % simulaci)n de programas. Los mecanismos de encapsulaci)n de PBB soportan un alto grado de reutilizaci)n de c)digo, que se incrementa por sus mecanismos de herencia !l entorno de las 'ases de datos, la PBB se adjunta 'ien a los modelos sem&nticos de datos, para solucionar las limitaciones de los modelos tradicionales -nterfaces de usuario gr&ficos (icono) % (isuales. Los interfaces de usuario se modelan mu% 'ien utilizando o'jetos.

%e&uisitos para &ue un lenguaje sea orientado a objetos [!] La orientaci)n a o'jetos trata de cumplir las necesidades de los usuarios finales, as, como las propias de los desarrolladores de productos soft4are. !stas tareas se realizan mediante la modelizaci)n del mundo real. !l soporte fundamental es el modelo o'jeto. Los cuatro elementos (propiedades) m&s importantes de este modelo son: A'stracci)n !ncapsulaci)n Dodularidad Terarqu,a

+omo sugiere 5ooch, si alguno de estos elementos no e$iste, se dice que el modelo no es orientado a o'jetos. Fe(isemos cada una: A'stracci)n: es la propiedad que permite representar las caracter,sticas esenciales de un o'jeto, sin preocuparse de las restantes caracter,sticas (no esenciales), una a'stracci)n se centra en la (ista e$terna de un o'jeto, de modo que sir(a para separar el comportamiento esencial de un o'jeto de su implementaci)n. !j.: (iaje en a(i)n. !ncapsulaci)n: es la propiedad que permite asegurar que el contenido de la informaci)n de un o'jeto esta oculta al mundo e$terior, el o'jeto A no conoce que hace el o'jeto 5, % (ice(ersa, (la encapsulaci)n se conoce como ocultaci)n de la informaci)n), en esencia es el proceso de ocultar todos los secretos de un o'jeto que no contri'u%a a sus caracter,sticas esenciales. !j.: florister,a. Dodularidad: es la propiedad que permite su'di(idir una aplicaci)n en partes m&s peque.as (llamadas m)dulos) cada una de las cuales de'en de ser independiente como sea posi'le de la aplicaci)n en s, % de las restantes partes. La modularizaci)n: consiste en di(idir un programa en m)dulos que se puedan compilar por separado, pero que tiene cone$iones con otros m)dulos. !j.: paquetes en Ada, archi(os .h % .cpp en +SS, espacios de nom'res en Lisual 5asic. !2. Terarqu,a: es una propiedad que permite una ordenaci)n de las a'stracciones. Las dos jerarqu,as m&s importantes de un sistema complejo son : estructura de clases (especializaci)n), % estructura de o'jetos (agregaci)n), las jerarqu,as de especializaci)n se conocen como herencia, '&sicamente un herencia define una relaci)n entre clases, en donde una clase comparte la estructura o comportamiento definido en una o mas clases (herencia simple o herencia m"ltiple) la agregaci)n es el concepto que permite el agrupamiento f,sico estructuras relacionadas l)gicamente, as, un cami)n se compone de ruedas, motor, sistema de transmisi)n % chasis, en consecuencia un cami)n es una agregaci)n, % ruedas, motor, transmisi)n % chasis son agregados de cami)n. Polimorfismo: esta propiedad no suele ser considerada como fundamental en los diferentes modelos de o'jetos propuestos, pero, dada su importancia, no tiene sentido considerar un o'jeto modelo que no soporte esta propiedad. Polimorfismo es la propiedad que indica, literalmente la posi'ilidad de que una entidad tome muchas formas formas, el polimorfismo permite referirse a o'jetos de clases diferentes mediante el mismo elemento de programa % realizar la misma operaci)n en diferentes formas, seg"n sea el o'jeto a que se hace referencia en ese momento. !j.: personas que sonr,en de forma distinta.

bjetos ['] 1n o'jeto es una agrupaci)n de c)digo, compuesta de propiedades % m3todos, que pueden ser manipulados como una entidad independiente. Las propiedades definen los datos o informaci)n del o'jeto, permitiendo consultar o modificar su estado* mientras que los m3todos son las rutinas que definen su comportamiento. 1n o'jeto es una pieza que se ocupa de desempe.ar un tra'ajo concreto dentro de una estructura organizati(a de ni(el superior, formada por m"ltiples o'jetos, cada uno de los cuales ejerce la tarea particular para la que ha sido dise.ado. La idea fundamental en los lenguajes orientados a o'jetos es com'inar en una sola unidad datos % funciones que operan so're estos datos, tal unidad se denomina o'jeto. !s la instancia de una clase. 1na clase es la representaci)n a'stracta de un concepto en el mundo real, % proporciona la 'ase a partir de la cual creamos instancias de o'jetos espec,ficos. +omo ejemplo, puede crear una clase que defina a un cliente. 8espu3s puede crear una nue(a instancia de la clase cliente para tener un o'jeto utiliza'le de +liente. Para poder crear un o'jeto de la clase cliente, de'e crear una nue(a instancia 'asada en esa clase. Por ejemplo: Pri(ate B'jetocliente as +lasecliente B'jetocliente @ e4 +lase+liente() +ada o'jeto es un elemento "nico de la clase en la que se 'asa. Si una clase es como un molde, entonces un o'jeto es lo que se crea a partir del molde. La clase es la definici)n de un elemento* el o'jeto es el elemento. !l molde para una figura de cer&mica en particular, es como una clase* la figura es el o'jeto. La herencia, el hecho de pertenecer a una estructura organizati(a, hace la diferencia entre un 28A % un o'jeto. !j.: 8efinir un 28A+ola % un 28A+ola+onPrioridades (rs definir una clase +ola % una clase +ola+onPrioridades. (structura de los Felaciones Propiedades (datos miem'ro) D3todos (funciones miem'ro) bjetos [']

1n o'jeto puede considerarse como una especie de c&psula di(idida en tres partes:

Relaciones

Las relaciones entre o'jetos son, precisamente, los enlaces que permiten a un o'jeto relacionarse con aquellos que forman parte de la misma organizaci)n. Las ha% de dos tipos fundamentales: Felaciones jer&rquicas. Son esenciales para la e$istencia misma de la aplicaci)n porque la constru%en. Son 'idireccionales, es decir, un o'jeto es padre de otro cuando el primer o'jeto se encuentra situado inmediatamente encima del segundo en la organizaci)n en la que am'os forman parte* asimismo, si un o'jeto es padre de otro, el segundo es hijo del primero. 1na organizaci)n jer&rquica simple puede definirse como aquella en la que un o'jeto puede tener un solo padre (herencia simple), mientras que en una organizaci)n jer&rquica compleja un hijo puede tener (arios padres (herencia m"ltiple). Se refiere a la antes mencionada jerarqu,a de especializaci)n.

Felaciones sem&nticas. Se refieren a las relaciones que no tienen nada que (er con la organizaci)n de la que forman parte los o'jetos que las esta'lecen. Sus propiedades % consecuencia solo dependen de los o'jetos en s, mismos (de su significado) % no de su posici)n en la organizaci)n. Se refiere a la antes mencionada jerarqu,a de agregaci)n.

Propiedades

2odo o'jeto puede tener cierto n"mero de propiedades, cada una de las cuales tendr&, a su (ez, uno o (arios (alores. !n PBB, las propiedades corresponden a las cl&sicas 7(aria'les7 de la programaci)n estructurada. Son, por lo tanto, datos encapsulados dentro del o'jeto, junto con los m3todos (programas) % las relaciones (punteros a otros o'jetos). Las propiedades de un o'jeto pueden tener un (alor "nico o pueden contener un conjunto de (alores mas o menos estructurados (matrices, (ectores, listas, etc.). Adem&s, los (alores pueden ser de cualquier tipo (num3rico, alfa'3tico, etc.) si el sistema de programaci)n lo permite. Los atri'utos est&n asociados a clases % o'jetos, % descri'en la clase o el o'jeto de alguna manera. Las entidades de la (ida real est&n a menudo descritas con pala'ras que indican caracter,sticas esta'les. La ma%or,a de los o'jetos f,sicos tienen caracter,sticas tales como forma, peso, color % tipo de material. Las personas tienen caracter,sticas como fecha de nacimiento, padres, nom're % color de los ojos. 1na caracter,stica puede (erse como una relaci)n 'inaria entre una clase % cierto dominio. Los atri'utos descri'en el estado del o'jeto. 1n atri'uto consta de de dos partes: un nom're de atri'uto % un (alor de atri'uto. La Grelaci)nH 'inaria implica que un atri'uto puede tomar un (alor definido por un dominio enumerado. !n la ma%or,a de los casos, un dominio es simplemente un conjunto de (alores espec,ficos. Por ejemplo, supongamos que una clase +oche tiene un atri'uto color. !l dominio de (alores de color es 'lanco, negro, plata, gris, azul, rojo, amarillo, (erde. Las caracter,sticas ((alores del dominio) pueden aumentarse asignando un (alor por defecto (caracter,stica) a un atri'uto. Por ejemplo, el atri'uto color tiene el (alor por defecto negro. Las propiedades pueden ser heredadas o propias.
M todos

1na operaci)n que realiza acceso a los datos. Podemos definir m3todo como un programa procedimental o procedural escrito en cualquier lenguaje, que est& asociado a un o'jeto determinado % cu%a ejecuci)n s)lo puede desencadenarse a tra(3s de un mensaje reci'ido por 3ste o por sus descendientes. Los m3todos descri'en el comportamiento asociado a un o'jeto, representan las acciones que pueden realizarse por un o'jeto o so're un o'jeto, la ejecuci)n de un m3todo puede conducir a cam'iar el estado del o'jeto o dato local del o'jeto, en la PBB el cuerpo de un m3todo consta de un 'loque de c)digo procedimental que ejecuta la acci)n requerida, todos los m3todos que alteran o acceden a los datos de un o'jeto se define dentro del o'jeto, 1n m3todo dentro de un o'jeto se acti(a por un mensaje que se en(,a por otro o'jeto al o'jeto que contiene el m3todo Si los m3todos son programas, se deduce que podr,an tener argumentos, o par&metros. Puesto que los m3todos pueden heredarse de unos o'jetos a otros, un o'jeto puede disponer de un m3todo de dos maneras diferentes: D3todos propios. !st&n incluidos dentro de la c&psula del o'jeto. D3todos heredados. !st&n definidos en un o'jeto diferente, antepasado de 3ste (padre,7a'uelo7, etc.). A (eces estos m3todos se llaman m3todos miem'ro porque el o'jeto

los posee por el mero hecho de ser miem'ro de una clase. Identidad del bjeto [']

La identidad e$presa que aunque dos o'jetos sean e$actamente iguales en sus atri'utos, son distintos entre s,. 8e esta forma incluso una serie de o'jetos carro reci3n fa'ricados son distintos los unos de los otros. La afirmaci)n anterior, aunque parece o'(ia, tiene importancia cuando descendemos al ni(el de programaci)n. !n este &m'ito cada uno de los o'jetos tiene un controlador por el cual se identifica. !ste puede ser una (aria'le, una estructura de datos, una cadena de caracteres, etc. !l controlador ser& distinto para cada uno de los o'jeto, aunque las referencias a 3stos sean uniformes e independientes del contenido, permitiendo crear agrupaciones de o'jetos con el mismo tratamiento. )lasificacin ['] +on la clasificaci)n comienza la (erdadera programaci)n orientada a o'jetos. !llos nos o'liga a una a'stracci)n del concepto de o'jeto denominada clase. Las clases permiten la agrupaci)n de o'jetos que comparten las mismas propiedades % comportamiento. Si 'ien clase % o'jeto suelen usarse como sin)nimos, no lo son. !l esfuerzo del programador ante una aplicaci)n orientada a o'jetos se centra en la identificaci)n de las clases, sus atri'utos % operaciones asociadas. !l programador no crea directamente los o'jetos. Las propiedades de cada clase de'en cumplir una serie de premisas: Las propiedades de'er ser significati(as dentro del entorno de la aplicaci)n es decir, de'en ser(ir para identificar claramente % de una manera "nica (% uni(oca) a cada uno de los o'jetos. !l n"mero de propiedades de un o'jeto de'e ser el m,nimo para realizar todas las operaciones que requiera la aplicaci)n.

)lases 1na clase es la descripci)n de un conjunto de o'jetos, consta de m3todos % datos que resumen caracter,sticas comunes de un conjunto de o'jetos, se pueden definir muchos o'jetos de la misma clase, cada (ez que se constru%en un o'jeto a partir de una clase estamos creando lo que se llama instancia de esa clase, una instancia es una (aria'le de tipo o'jeto. A partir del concepto de clase podemos decir que un o'jeto es una instancia de una clase. 1na clase es esencialmente un pro%ecto, a partir del cual puede crear o'jetos. 1na clase define las caracter,sticas de un o'jeto, inclu%endo las propiedades que definen los tipos de datos que ese o'jeto puede contener % los m3todos que descri'en el comportamiento del o'jeto. !stas caracter,sticas determinan la manera en que otros o'jetos pueden acceder % tra'ajar con los datos que se inclu%en en el o'jeto. La clase determina el conjunto de puntos cla(e que ha de cumplir un o'jeto para ser considerado perteneciente a dicha clase o categor,a, %a que no es o'ligatorio que dos o'jetos creados a partir de la misma clase sean e$actamente iguales, 'asta con que cumplan las especificaciones cla(e de la clase. Aunque o'jetos distintos de una misma clase pueden tener ciertas propiedades diferentes, de'en tener el mismo comportamiento o m3todos. !j.: dos carros de distinto color.

Lista de Referencias
P1R Programming paradigm. (#=1=, Septem'er 10). -n Wikipedia, The Free Encyclopedia. Fetrie(ed =O:VA, Septem'er 1V, #=1=, from http:;;en.4i6ipedia.org;4;inde$.php? title@ProgrammingWparadigmXoldid@0AV:=##O# P#R Scott D (#==:). Programming Languages Pragmatics P0R Cunctional programming. (#=1=, Septem'er 1=). -n Wikipedia, The Free Encyclopedia. Fetrie(ed 1V:#1, Septem'er 1V, #=1=, from http:;;en.4i6ipedia.org;4;inde$.php? title@CunctionalWprogrammingXoldid@0A0>>O#VO PVR Aguilar L. T (1>>:). +onceptos fundamentales de programaci)n orientada a o'jetos. !n T. 8om,nguez (!d.) Programacin Orientada a Ob eto! (pp :: Y 111). !spa.a: DcIra4/9ill. POR Schuerer E. , Daufrais +, Letondal +, 8e(eaud !, X Petit D (#==A). "ntrod#ction to Programming #!ing Python Programming Co#r!e $or Biologi!t! at the Pa!te#r "n!tit#te % !$tra,do el 1O de Septiem're de #=1= desde http:;;444.pasteur.fr;formation;info'io;p%thon;support.pdf P:R !iffel (programming language). (#=1=, #O de agosto). -n Wikipedia, The Free Encyclopedia. Fecuperado =::01, agosto 01, #=1= de http:;;en.4i6ipedia.org;4;inde$.php? title@!iffelW(programmingWlanguage)Xoldid@0A=AQ=A## PQR 8uarte 9. &aterial para la cla!e Programacin Orientada a Ob eto!%

También podría gustarte