You are on page 1of 16

Instituto Tecnolgico de Salina Cruz Nombre de la profesora: MC Romn Njera Susana

Mnica

Nombre del alumno:Reyes Hernndez Victor Miguel Numero de control:131020108 Carrera:Ingeniera en tecnologas de la informacin y
de las comunicaciones

Materia:Fundamentos de programacin Actividad:INVESTIGACION DOCUMENTAL SOBRE


LOS PARADIGMAS DE INVESTIGACION

Grado:1er Semestre Grupo:1E2

Pgina 1

INDICE

INTRODUCCION3 PARADIGMA DE PROGRAMACION....4 TIPOS DE PARADIGMAS DE PROGRAMACIN EN GENERAL...5 PARADIGMA DE PROGRAMACION ORIENTADA A OBJETOS.8 CONCEPTOS FUNDAMENTALES8 JAVA....9 CARACTERSTICAS DE LA POO....10 OBJETIVOS..12 LENGUAJES ORIENTADOS A OBJETOS..12 CONCEPTOS BASICOS....14 CONCLUSIONES.15 BIBLIOGRAFIA.16

Pgina 2

INTRODUCCION
En esta breve introduccin nos daremos cuenta sobre los diferentes tipos y trminos de los paradigmas de programacin, en este texto que se situa empezaremos enfocndonos principalmente en lo qu es un paradigma de programacin? Ya ms adelante empezaremos a ver la modalidad de la programacin orientada a objetos, en el cual descubriremos ciertos detalles del porque java se conoce como lo que es en la actualidad, dado que existen diferentes tipos de lenguajes de programacin nos enfocaremos mas en este tema.

Pgina 3

PARADIGMA DE PROGRAMACION
Un paradigma de programacin es una propuesta tecnolgica que es adoptada por una comunidad de programadores cuyo ncleo central es incuestionable en cuanto a que nicamente trata de resolver uno o varios problemas claramente delimitados. Es un estilo de programacin empleado. La resolucin de estos problemas debe suponer consecuentemente un avance significativo en al menos un parmetro que afecte a la ingeniera de software. Tiene una estrecha relacin con la formalizacin de determinados lenguajes en su momento de definicin. Un paradigma de programacin est delimitado en el tiempo en cuanto a aceptacin y uso ya que nuevos paradigmas aportan nuevas o mejores soluciones que la sustituyen parcial o totalmente.

Pgina 4

TIPOS DE PARADIGMAS DE PROGRAMACIN EN GENERAL


Programacin Imperativa: Es la ms antigua (Maquina de Von Neumann).Un programa es una secuencia de acciones que se realizan en orden. Existen herramientas para modificar el orden de ejecucin de las acciones. Programacin Funcional: definicin de una serie de funciones. ProgramacinLgica: definicin de hechos y relaciones lgicas entre estos. No se indica el orden en el que se computa una funcin o se deriva un nuevo hecho. Programacin Orientada a Objetos: Un programa consiste en una coleccin de objetos que intercambian mensajes. Cada objeto es una entidad que agrupa una cierta informacin (estado) y un conjunto de mecanismos para manipularlas (mtodos). Caso Particular: Programacin Orientada a Eventos: Los lenguajes visuales orientada al evento y con manejo de componentes dan al usuario que no cuenta con mucha experiencia en desarrollo, la posibilidad de construir sus propias aplicaciones utilizando interfaces grafica sobre la base de ocurrencia de eventos. Para soportar este tipo de desarrollo interactan dos tipos de herramientas, una que permite realizar diseos grficos y un lenguaje de alto nivel que permite codificar los eventos. Con dichas herramientas es posible desarrollar cualquier tipo de aplicaciones basadas en el entorno. Los paradigmas pueden ser considerados como patrones de pensamientos para la resolucin de problemas, estos se clasifican en: Programacin Estructurada: En la programacin estructurada se pueden conjuntas secuencias de declaraciones e instrucciones en un mismo lugar, las que despus pueden ser usadas por el programa principal desde cualquier punto. La secuencia se conoce como subrutina, procedimiento o funcin dependiendo del lenguaje que se trate. Se dice que se hace una llamada para invocar al procedimiento. Despus de que la secuencia es procesada, el control del flujo regresa al programa principal justo despus de donde se hizo la llamada. En resumen la programacin estructurada consiste en dividir un programa en pequeas piezas llamadas procedimientos y cada procedimiento es ejecutado o llamado por el programa principal desde diferentes lugares de este para resolver un problema. El paradigma original de este tipo de programacin es Buscar los procedimientos que se desean; Usar los mejores algoritmos existentes Programacin Modular: La programacin modular permite agrupar procedimientos, que tienen una funcionalidad comn, en mdulos separados. Por lo tanto, un programa ya no consiste de una sola parte. El programa ahora se divide en varias

Pgina 5

partes ms pequeas que interactan a travs de interfaces y llamadas a procedimientos. Cada modulo puede contener sus propios datos. Esto permite que cada modulo maneje un estado interno el cual es modificado por las llamadas a sus procedimientos. Sin embargo hay un nico estado por modulo y cada modulo existe a lo mas que una vez en todo programa. Tpicamente requiero escribir dos archivos: la interfaz, donde se hacen todas las declaraciones de datos y funciones y la implementacin. La interfaz describe lo que esta disponible del modulo sin importar los detalles. De esta manera se esconde la informacin de la implementacin. Este es un principio fundamental de la ingeniera de software. El paradigma de la programacin modular es: Buscar los modulo que se requieran; particionar al programa de tal manera que los datos se escondan dentro de los mdulos. Programacin orientada a objetos: Describen los lenguajes que soportan a objetos en interaccin. Un objeto es un grupo de procedimientos que comparten un estado. El termino de orientado a objetos fue utilizado originalmente para distinguir aquellos lenguajes basados en objetos que soportaban clases de objetos y la herencia de atributos de un objeto padre por parte de sus hijos. El paradigma de la programacin orientada a objetos es: Buscar las clases q ue se desean; proveer de un conjunto completo de operaciones para cada clase; especializar usando herencia. Paradigmas declarativos: Un lenguaje declarativo es uno en el que un programa especifica una relacin o funcin. El intrprete o compilador para el lenguaje en particular administra la memoria por nosotros. Los tres paradigmas declarativos provienen de las matemticas: la lgica, la teora de funciones y el clculo relacional. Paradigmas de programacin lgica: La programacin lgica esta basada en un subconjunto del calculo de predicados, incluyendo instrucciones escritas en forma conocidas como clusulas de Horn. Este paradigma puede deducir nuevos hechos a partir de otros hechos conocidos. Un sistema de clusulas de Horn permite un mtodo particularmente mecnico de demostracin llamado resolucin. Paradigmas funcionales: Como su nombre lo dice operan solamente a travs de funciones. Cada funcin devuelve un solo valor, dada una lista de parmetros. No se permiten asignaciones globales, llamados efectos colaterales. La programacin funcional proporciona la capacidad para que un programa se modifique as mismo, es decir que pueda aprender. Paradigmas de la programacin distribuida: La programacin concurrente ha sido dividida en dos amplias categoras, sistemas acoplados en forma dbil o fuerte. El trmino distribuido se refiere por lo general a lenguajes para sistemas acoplados debidamente que soportan un grupo de programadores trabajando en un programa

Pgina 6

particular de manera simultnea y comunicndose a travs de paso de mensajes mediante un canal de comunicacin. Un sistema acoplado fuertemente permite que ms de un proceso de ejecucin tenga acceso a la misma ubicacin de memoria. Un lenguaje acoplado con el sistema debe sincronizar el uso compartido de la memoria, de modo que solo un proceso escriba una variable compartida a la vez, y de modo que un proceso pueda esperar hasta que ciertas condiciones se satisfagan por completo antes de continuar la ejecucin. La memoria compartida tiene la ventaja de la velocidad, porque no se necesita pasar mensajes. Paradigmas estructurados en bloques: Se refiere a los mbitos anidados, es decir los bloques pueden estar anidados dentro de otros bloques y pueden contener sus propias variables. La RAM representa una pila con una referencia al bloque que este actualmente activo en la parte superior. Paradigmas del lenguaje de base de datos: Las propiedades que los distinguen de los lenguajes diseados para tratar con bases de datos son la persistencia y la administracin de cambios. Un sistema de administracin de base de datos incluye un lenguaje de definicin de datos (DDL) para describir una nueva coleccin de hechos, o datos y un lenguaje de manipulacin de datos (DML) para la interaccin con las bases de datos existentes.

Pgina 7

PARADIGMA DE PROGRAMACION ORIENTADA A OBJETOS

La Programacin Orientada a Aspectos (POA) es un paradigma de programacin relativamente reciente cuya intencin es permitir una adecuada modularizacin de las aplicaciones y posibilitar una mejor separacin de incumbencias. Trata de amoldarse al modo de pensar del hombre y no al de la mquina. Esto es posible gracias a la forma racional con la que se manejan las abstracciones que representan las entidades del dominio del problema, y a propiedades como la jerarqua o el encapsulamiento. El elemento bsico de este paradigma no es la funcin (elemento bsico de la programacin estructurada), sino un ente denominado objeto. Un objeto es la representacin de un concepto para un programa, y contiene toda la informacin necesaria para abstraer dicho concepto: los datos que describen su estado y las operaciones que pueden modificar dicho estado, y determinan las capacidades del objeto. Java incorpora el uso de la orientacin a objetos como uno de los pilares bsicos de su lenguaje.

CONCEPTOS FUNDAMENTALES
La programacin orientada a objetos es una forma de programar que trata de encontrar una solucin a estos problemas. Introduce nuevos conceptos, que superan y amplan conceptos antiguos ya conocidos. Entre ellos destacan los siguientes: Clase Definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciacin es la lectura de estas definiciones y la creacin de un objeto a partir de ellas. Herencia (Por ejemplo, herencia de la clase C a la clase D) es la facilidad mediante la cual la clase D hereda en ella cada uno de los atributos y operaciones de C, como si esos atributos y operaciones hubiesen sido definidos por la misma D. Por lo tanto, puede usar los mismos mtodos y variables pblicas declaradas en C. Los componentes registrados como "privados" (private) tambin se heredan, pero como no pertenecen a la clase, se mantienen escondidos al programador y slo pueden ser accedidos a travs de otros mtodos pblicos. Esto es as para mantener hegemnico el ideal de POO. Objeto Instancia de una clase. Entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (mtodos), los mismos que consecuentemente reaccionan a eventos. Se corresponden con los

Pgina 8

objetos reales del mundo que nos rodea, o con objetos internos del sistema (del programa). Es una instancia a una clase. Mtodo Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecucin se desencadena tras la recepcin de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un mtodo puede producir un cambio en las propiedades del objeto, o la generacin de un "evento" con un nuevo mensaje para otro objeto del sistema. Evento Es un suceso en el sistema (tal como una interaccin del usuario con la mquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. Tambin se puede definir como evento la reaccin que puede desencadenar un objeto; es decir, la accin que genera. Atributos Caractersticas que tiene la clase Mensaje Una comunicacin dirigida a un objeto, que le ordena que ejecute uno de sus mtodos con ciertos parmetros asociados al evento que lo gener. Propiedad o atributo Contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus caractersticas predeterminadas, y cuyo valor puede ser alterado por la ejecucin de algn mtodo. Estado interno Es una variable que se declara privada, que puede ser nicamente accedida y alterada por un mtodo del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). No es visible al programador que maneja una instancia de la clase. Componentes de un objeto Atributos, identidad, relaciones y mtodos. Identificacin de un objeto Un objeto se representa por medio de una tabla o entidad que est compuesta por sus atributos y funciones correspondientes.

JAVA
Java fue diseado en 1990 por James Gosling, de Sun Microsystems, como software para dispositivos electrnicos de consumo. Curiosamente, todo este lenguaje fue diseado antes de que diese comienzo la era World Wide Web, puesto que fue diseado para dispositivos electrnicos como calculadoras, microondas y la televisin interactiva. Inicialmente Java se llam Oak (roble en ingls), aunque tuvo que cambiar de denominacin, debido a que dicho nombre ya estaba registrado por otra empresa. Se dice este nombre se le puso debido a la existencia de tal rbol en los alrededores del lugar de trabajo de los promotores del lenguaje.

Pgina 9

Inicialmente Java se llam Oak (roble en ingls), aunque tuvo que cambiar de denominacin, debido a que dicho nombre ya estaba registrado por otra empresa. Se dice este nombre se le puso debido a la existencia de tal rbol en los alrededores del lugar de trabajo de los promotores del lenguaje. Tres de las principales razones que llevaron a crear Java son: 1. Creciente necesidad de interfaces mucho ms cmodas e intuitivas que los sistemas de ventanas que proliferaban hasta el momento. 2. Fiabilidad del cdigo y facilidad de desarrollo. Gosling observ que muchas de las caractersticas que ofrecan C o C++ aumentaban de forma alarmante el gran coste de pruebas y depuracin. Por ello en los sus ratos libres cre un lenguaje de programacin donde intentaba solucionar los fallos que encontraba en C++. 3. Enorme diversidad de controladores electrnicos. Los dispositivos electrnicos se controlan mediante la utilizacin de microprocesadores de bajo precio y reducidas prestaciones, que varan cada poco tiempo y que utilizan diversos conjuntos de instrucciones. Java permite escribir un cdigo comn para todos los dispositivos. CARACTERSTICAS DE LA POO 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. Encapsulamiento Significa reunir 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

Pgina 10

concepto con el principio de ocultacin, principalmente porque se suelen emplear conjuntamente. Modularidad Se denomina modularidad a la propiedad que permite subdividir una aplicacin en partes ms pequeas (llamadas mdulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicacin en s y de las restantes partes. Estos mdulos se pueden compilar por separado, pero tienen conexiones con otros mdulos. Al igual que la encapsulacin, los lenguajes soportan la modularidad de diversas formas. 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 especifica 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 puedan cambiar el estado interno de un objeto de manera inesperada, 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 C++. Herencia 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
Pgina 11

tener que volver a implementarlo. Esto suele hacerse habitualmente agrupando los objetos en clases y estas 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 garbagecollector 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 C++ u Object Pascal, esta caracterstica no existe y la memoria debe desasignarse expresamente.

OBJETIVOS
El principal objetivo de la POA es la separacin de las funcionalidades dentro del sistema:

Por un lado funcionalidades comunes utilizadas a lo largo de la aplicacin. Por otro lado, las funcionalidades propias de cada mdulo.

Cada funcionalidad comn se encapsular en una entidad.

LENGUAJES ORIENTADOS A OBJETOS


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. Entre los lenguajes orientados a objetos se destacan los siguientes:

ABAP -> SAP Lenguaje orientado a eventos ABL Lenguaje de programacin de OpenEdge de Progress Software ActionScript ActionScript 3 Ada C++ C# Clarion
Pgina 12

Clipper1 D Object Pascal (Embarcadero Delphi) Gambas Genie Harbour Eiffel Fortran 90/95 Java JavaScript2 Lexico3 Objective-C Ocaml Oz R Perl4 PHP5 PowerBuilder Python Ruby Self Smalltalk6 Magik (SmallWorld) Vala VB.NET Visual FoxPro7 Visual Basic 6.0 Visual DataFlex Visual Objects XBase++ Lenguaje DRP Scala8

Muchos de estos lenguajes de programacin no son puramente orientados a objetos, sino que son hbridos que combinan la POO con otros paradigmas. Al igual que C++, otros lenguajes, como OOCOBOL, OOLISP, OOPROLOG y Object REXX, han sido creados aadiendo extensiones orientadas a objetos a un lenguaje de programacin clsico. Un nuevo paso en la abstraccin de paradigmas de programacin es la Programacin Orientada a Aspectos (POA). Aunque es todava una metodologa en estado de maduracin, cada vez atrae a ms investigadores e incluso proyectos comerciales en todo el mundo.

Pgina 13

CONCEPTOS BASICOS
Se presenta la terminologa original en ingls.

Aspect (Aspecto) es una funcionalidad transversal (cross-cutting) que se va a implementar de forma modular y separada del resto del sistema. El ejemplo ms comn y simple de un aspecto es el logging (registro de sucesos) dentro del sistema, ya que necesariamente afecta a todas las partes del sistema que generan un suceso. Joinpoint (Punto de Cruce o de Unin) es un punto de ejecucin dentro del sistema donde un aspecto puede ser conectado, como una llamada a un mtodo, el lanzamiento de una excepcin o la modificacin de un campo. El cdigo del aspecto ser insertado en el flujo de ejecucin de la aplicacin para aadir su funcionalidad. Advice (Consejo) es la implementacin del aspecto, es decir, contiene el cdigo que implementa la nueva funcionalidad. Se insertan en la aplicacin en los Puntos de Cruce. Pointcut (Puntos de Corte) define los Consejos que se aplicarn a cada Punto de Cruce. Se especifica mediante Expresiones Regulares o mediante patrones de nombres (de clases, mtodos o campos), e incluso dinmicamente en tiempo de ejecucin segn el valor de ciertos parmetros. Introduction (Introduccin) permite aadir mtodos o atributos a clases ya existentes. Un ejemplo en el que resultara til es la creacin de un Consejo de Auditora que mantenga la fecha de la ltima modificacin de un objeto, mediante una variable y un mtodo setUltimaModificacion(fecha), que podran ser introducidos en todas las clases (o slo en algunas) para proporcionarles esta nueva funcionalidad. Target (Destinatario) es la clase aconsejada, la clase que es objeto de un consejo. Sin AOP, esta clase debera contener su lgica, adems de la lgica del aspecto. Proxy (Resultante) es el objeto creado despus de aplicar el Consejo al Objeto Destinatario. El resto de la aplicacin nicamente tendr que soportar al Objeto Destinatario (pre-AOP) y no al Objeto Resultante (post-AOP). Weaving (Tejido) es el proceso de aplicar Aspectos a los Objetos Destinatarios para crear los nuevos Objetos Resultantes en los especificados Puntos de Cruce. Este proceso puede ocurrir a lo largo del ciclo de vida del Objeto Destinatario: o Aspectos en Tiempo de Compilacin, que necesita un compilador especial. o Aspectos en Tiempo de Carga, los Aspectos se implementan cuando el Objeto Destinatario es cargado. Requiere un ClassLoader especial. o Aspectos en Tiempo de Ejecucin.

Pgina 14

CONCLUSIONES
Llegue a la conclusin que en el uso de los paradigmas de programacin en un uso en especfico ya sea en las diferentes ingenieras como tics, su uso de ellas es primordial para la creacin de diferentes programas de acuerdo a la necesidad que se vive hoy en da con el avance de la tecnologa, pero ms enfocndonos al paradigma de programacin orientado a objetos puesto que uno de sus mas claros ejemplos es el java, podemos decir que se puede esperar mucho aprendiendo sobre la realizacin de programas en el entorno adverso conocido como c++ o algn otro tipo que conlleve a los lenguajes de programacion

Pgina 15

BIBLIOGRAFIA
http://es.wikipedia.org/wiki/Paradigma_de_programaci%C3%B3n http://es.wikipedia.org/wiki/Programaci%C3%B3n_Orientada_a_Aspectos http://html.rincondelvago.com/programacion_27.html http://zarza.usal.es/~fgarcia/doc/tuto2/I_1.htm http://zarza.usal.es/~fgarcia/doc/tuto2/I_2.htm

Pgina 16