Informe P.O.O
Click here to load reader
-
Upload
daniel-marques-villamizar -
Category
Documents
-
view
89 -
download
1
Transcript of Informe P.O.O
Universidad de OrienteNúcleo de Anzoátegui
Departamento de Computación y SistemasAsignatura: Programación Orientada a Objeto
Profesor: Bachiller: Pedro Dorta Oscarelys Farias Cl: 19 457 310
Pto la Cruz, Mayo del 2011
Indice
Introducción…………………………………………………………………………………………………………02
Historia de la Computación…………………………………………………………………………………..3-4
Evolución del Hardware – Software…………………………………………………..…………………..5-6
Software clasificación y características………………………………………………………...………7-8
Lenguaje de programación…………………………………………………………………………….………...9
Paradigmas orientados a Objetos………………………………………………………………….….10- 13
Herramientas de Programación…………………………………………………………………………..…14
Clase y Objectos……………………………………………………………………………………………………15
Conclusión……………………………………………………………………………………………………………16
Introducción
Por siglos los hombres han tratado de usar fuerzas y artefactos de diferente tipo para realizar sus trabajos, para hacerlos más simples y rápidos.. En la humanidad se han construido distintos tipos de instrumentos de ayuda para que el hombre pudiera calcular, hasta llegar a la computadora digital moderna.
Al desarrollarse las primeras computadoras electrónicas, se vio la necesidad de programarlas, es decir, de almacenar en memoria la información sobre la tarea que iban a ejecutar. Cuando programamos le indicamos una serie de instrucciones para que la computadora las ejecute. Para asegurarse que la computadora entienda las instrucciones, se han establecido lenguajes bien definidos para especificar y poder generar la comunicación con la computadora. Estos lenguajes tienen características similares a los lenguajes comunes que utilizan las personas para comunicarse unas con otras, pues cuentan con reglas y estructuras que deben seguirse.
A continuación, se describen algunos inventos del pasado, que conforman los antecedentes más importantes de la computación, con el fin de entender el proceso por el que se ha pasado, para llegar a crear las diferentes computadoras con las que contamos en la actualidad y también entender un poco acerca de los lenguaje de programación clasificación y características.
Historia de la Computación
Máquinas Mecánicas (Antes de 1930)
En el siglo XVII, Blaise Pascal, un matemático y filósofo francés, invento la Pascalina, una calculadora mecánica para operaciones de suma y resta. En el siglo XX, cuando Niklaus Wirth invento un lenguaje de programación estructurado, lo llamo Pascal en honor al inventor de la primera calculadora mecánica.
A finales del siglo XVII, el matemático alemán Gottfried Leibnitz invento una calculadora mecánica más compleja que podía realizar operaciones de multiplicación y división, así como suma y resta. Se le llamo la Rueda de Leibnitz.
La primera máquina que uso la idea de almacenamiento y programación fue el telar de Jacquard, inventado por Joseph-Marie Jacquard a principios del siglo XIX. El telar usaba tarjetas perforadas (como un programa almacenado) para controlar el aumento de hilos en la fabricación de textiles.
En 1823 Charles Babbage invento la Maquina Diferencial, la cual podía hacer más que operaciones polinomiales. Posteriormente invento una maquina llamada Maquina Analítica que, en cierta medida, es paralela a la idea de las computadoras modernas. Tenía cuatro componentes: un molino (ALU moderno), un almacén (memoria), un operador (unidad de control) y una salida (entrada/salida)
En 1890, Herman Hollerit, mientras trabajaba en la Oficina de Censos de Estados Unidos, diseño y construyó una maquina programadora que podía leer, contar y ordenar automáticamente los datos almacenados en las tarjetas perforadas.
Nacimiento de las Computadoras Electrónicas (1930-1950)
Entre 1930 y 1950, algunos científicos, que podrían considerarse los pioneros de la industria de la computación electrónica, inventaron varias computadoras.
La primera computadora para propósito especial que codificaba información de manera eléctrica fue inventada por John V. Atanasoff y su asistente Clifford Berry en 1939.Se le llamo ABC (Atanasoff Berry Computer) y se diseño especialmente para resolver un sistema de ecuaciones lineales.
Al mismo tiempo, el matemático alemán Konrad Zuse diseño una maquina de propósito general llamada Z1.
En la década de 1930, el ejército estadounidense e IBM patrocinaron un proyecto en la Universidad de Harvard bajo la dirección de Howard Airen para construir una computadora enorme llamada Mark I. Esta computadora usaba componentes eléctricos y mecánicos.
En Inglaterra, Alan Turing invento una computadora llamada Colossus diseñada para descifrar el código Enigma alemán
La primera computadora de propósito general totalmente electrónica fue fabricada por John Mauchly y J. Presper Eckert y recibió el nombre de ENIAC (electronic Numerical Integrator and Calculator: Calculadora e integrador numérico electrónico). Se termino en 1946. Utilizaba 18 000 tubos de vacio, media 100 pies de largo por 10 pies de alto y pesaba 30 toneladas
Computadoras basadas en el Modelo de Von Neumann
Las cinco computadoras precedentes utilizaron memoria solo para almacenar datos. Se programaron externamente usando cables o interruptores. John von Neumann propuso que el programa y los datos deberían almacenarse en la memoria. De esta manera, cada vez que usted utilizara una computadora para realizar un tarea nueva, solo necesitaría cambiar el programa en lugar de volver a conectar los cables de la maquina o enceder y apagar cientos de interruptores.
La primera computadora basada en la idea de von Neumann se construyo en 1950 en la Universidad de Pennsylvania y se llamo EDVAC. Al mismo tiempo, Maurice Wilkes construyo una computadora similar llamada EDSAC en la Universidad de Cambridge en Inglaterra.
Generaciones de Computadoras (1950 –hoy en día)Las computadoras construidas después de 1950 siguieron, más o menos, al modelo de von Neumann. Las computadoras se han vuelto más rápidas, más pequeñas y más baratas, pero el principio es casi el mismo. Los historiadores dividen este periodo en generaciones, con cada generación presenciando un cambio importante en el hardware o el software (pero no en el modelo)
Primera Generación
La primera generación (aproximadamente de 1950 a 1959) se caracteriza por la aparición de computadoras comerciales. Durante este periodo, las computadoras eran utilizadas solo por profesionales. Estaban encerradas en habitaciones con acceso restringido únicamente al operador o a especialistas en computación. Las computadoras eran voluminosas y usaban tubos de vacio como interruptores electrónicos.
Segunda Generación
Las computadoras de la segunda generación (aproximadamente de 1959 a 1965) utilizaban transistores en lugar de tubos de vacio. Esto redujo su tamaño asi como su costo y las puso al alcance de las empresas medianas y pequeñas. Dos lenguajes de programación de alto nivel, FORTRAN Y COBOL, se inventaron y facilitaron la programación de la tarea de la operación de la computadora. Un ingeniero civil podía escribir un programa en FORTRAN para resolver un problema sin involucrarse en detalles electrónicos de la arquitectura de la computadora.
Tercera Generación
La invención del circuito integrado (transistores, cableados y otros componentes en un solo chip) redujeron el costo y el tamaño de las computadoras aun mas. Las minicomputadoras aparecieron en el mercado. Los programas empaquetados, popularmente conocidos como paquetes de software, se volvieron disponibles.
Cuarta Generación
Aquí aparecen los microprocesadores que es un gran adelanto de la microelectrónica, son circuitos integrados de alta densidad y con una velocidadimpresionante. Las microcomputadoras con base en estos circuitos son extremadamente pequeñas y baratas, por lo que su uso se extiende al mercado industrial. Aquí nacen las computadoras personales que han adquirido proporciones enormes y que han influido en la sociedad en general sobre la llamada "revolución informática".
En 1976 Steve Wozniak y Steve Jobs inventan la primera microcomputadora de uso masivo y más tarde forman la compañía conocida como la Apple que fue la segunda compañía más grande del mundo, antecedida tan solo por IBM; y esta por su parte es aún de las cinco compañías más grandes del mundo.
Quinta generación
Esta generación de duración indefinida comenzó en 1985. Presencio la aparición de las computadoras laptos y palmtop, mejoras en los medios de almacenamiento secundarios (CD-ROM, DVD. Etc), el uso de la multimedia y el fenómeno de la realidad virtual.
Generación y Evolución del Hardware - software
Hardware
La clasificación evolutiva del hardware del computador electrónico, está dividida en
generaciones, donde cada una supone un cambio tecnológico muy notable. El origen de las
primeras es sencillo de establecer, ya que en ellas el hardware fue sufriendo cambios radicales.
Los componentes esenciales que constituyen la electrónica del computador fueron totalmente
reemplazados en las primeras tres generaciones, originando cambios que resultaron
trascendentales. En las últimas décadas es más difícil distinguir las nuevas generaciones, ya que
los cambios han sido graduales y existe cierta continuidad en las tecnologías usadas. En
principio, se pueden distinguir:
1ª Generación (1945-1956): Electrónica implementada con tubos de vacío. Fueron las
primeras máquinas que desplazaron los componentes electromecánicos (relés).
2ª Generación (1957-1963): Electrónica desarrollada con transistores. La lógica discreta
era muy parecida a la anterior, pero la implementación resultó mucho más pequeña,
reduciendo, entre otros factores, el tamaño de un computador en notable escala.
3ª Generación (1964-hoy): Electrónica basada en circuitos Integrados . Esta tecnología
permitió integrar cientos de transistores y otros componentes electrónicos en un único
circuito integrado conformando una pastilla de silicio. Las computadoras redujeron así
considerablemente su costo, consumo y tamaño, incrementándose su capacidad, velocidad
y fiabilidad, hasta producir máquinas como las que existen en la actualidad.
4ª Generación (futuro): Probablemente se originará cuando los circuitos de silicio,
integrados a alta escala, sean reemplazados por un nuevo tipo de material o tecnología.
Software
Durante los primeros años de la era de la computadora, el software se contemplaba como un añadido. La programación de computadoras era un "arte de andar por casa" para el que existían pocos métodos sistemáticos. El desarrollo del software se realizaba virtualmente sin ninguna planificación, hasta que los planes comenzaron a descalabrarse y los costes a correr. Los programadores trataban de hacer las cosas bien, y con un esfuerzo heroico, a menudo salían con éxito. El software se diseñaba a medida para cada aplicación y tenia una distribución relativamente pequeña.
La mayoría del software se desarrollaba y era utilizado por la misma persona u organización. La misma persona lo escribía, lo ejecutaba y, si fallaba, lo depuraba. El diseño era un proceso implícito, realizado en la mente de alguien y, la documentación normalmente no existía.
La segunda era en la evolución de los sistemas de computadora se extienden desde la mitad de la década de los sesenta hasta finales de los setenta. La multiprogramación y los sistemas multiusuario introdujeron nuevos conceptos de interacción hombre - maquina. También se caracterizo por el establecimiento del software como producto y la llegada de las "casas del software". Los patronos de la industria, del gobierno y de la universidad se aprestaban a "desarrollar el mejor paquete de software" y ganar así mucho dinero.
La tercera era en la evolución de los sistemas de computadora comenzó a mediados de los años setenta y continúo más allá de una década. El sistema distribuido, múltiples computadoras, cada una ejecutando funciones concurrentes y comunicándose con alguna otra, incrementó notablemente la complejidad de los sistemas informáticos. Las redes de área local y de área global, las comunicaciones digitales de alto ancho de banda y la creciente demanda de acceso "instantáneo" a los datos, supusieron una fuerte presión sobre los desarrolladores del software. La conclusión de la tercera era se caracterizo por la llegada y amplio uso de los microprocesadores. El microprocesador ha producido un extenso grupo de productos inteligentes, desde automóviles hasta hornos microondas, desde robots industriales a equipos de diagnósticos de suero sanguíneo.
La cuarta era de la evolución de los sistemas informáticos se aleja de las computadoras individuales y de los programas de computadoras, dirigiéndose al impacto colectivo de las computadoras y del software. Potentes máquinas personales controladas por sistemas operativos sofisticados, en redes globales y locales, acompañadas por aplicaciones de software avanzadas se han convertido en la norma.
La industria del software ya es la cuna de la economía del mundo. Las técnicas de la cuarta generación para el desarrollo del software están cambiando en la forma en que la comunidad del software construye programas informáticos. Las tecnologías orientadas a objetos están desplazando rápidamente los enfoques de desarrollo de software más convencionales en muchas áreas de aplicaciones.
Software clasificación y características
El software se clasifica en tres grandes tipos:
Software de sistema : Su objetivo es desvincular adecuadamente al usuario y al
programador de los detalles de la computadora en particular que se use, aislándolo
especialmente del procesamiento referido a las características internas de: memoria,
discos, puertos y dispositivos de comunicaciones, impresoras, pantallas, teclados, etc. El
software de sistema le procura al usuario y programador adecuadas interfaces de alto
nivel, herramientas y utilidades de apoyo que permiten su mantenimiento. Incluye entre
otros:
Sistemas operativos
Controladores de dispositivos
Herramientas de diagnóstico
Herramientas de Corrección y Optimización
Servidores
Utilidades
Software de programación : Es el conjunto de herramientas que permiten
al programador desarrollar programas informáticos, usando diferentes alternativas
y lenguajes de programación, de una manera práctica. Incluye entre otros:
Editores de texto
Compiladores
Intérpretes
Enlazadores
Depuradores
Entornos de Desarrollo Integrados (IDE): Agrupan las anteriores herramientas,
usualmente en un entorno visual, de forma tal que el programador no necesite
introducir múltiplescomandos para compilar, interpretar, depurar, etc. Habitualmente
cuentan con una avanzada interfaz gráfica de usuario (GUI).
Software de aplicación : Es aquel que permite a los usuarios llevar a cabo una o varias
tareas específicas, en cualquier campo de actividad susceptible de ser automatizado o
asistido, con especial énfasis en los negocios. Incluye entre otros:
Aplicaciones para Control de sistemas y automatización industrial
Aplicaciones ofimáticas
Software educativo
Software empresarial
Bases de datos
Telecomunicaciones (por ejemplo Internet y toda su estructura lógica)
Videojuegos
Software médico
Software de Cálculo Numérico y simbólico.
Software de Diseño Asistido (CAD)
Software de Control Numérico (CAM)
Lenguaje de Programación
Un lenguaje de programación es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana. Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el código fuente de un programa informático se le llama programación.
Clasificación
Tradicionalmente los lenguajes de programación se pueden clasificar atendiendo a varios factores:
Según su “nivel”. Hace referencia a lo próxima al hombre que esté la forma de expresar las sentencias:
* Lenguajes de bajo nivel y ensambladores (cercanos a la máquina). * Lenguajes de alto nivel (cercanos al hombre).
Según la relación traducción-ejecución. * Compiladores. * Intérpretes.
Según su campo de aplicación: * Aplicaciones Científicas. Predominan los algoritmos de cálculo numérico y matrices. * Aplicaciones de Procesamiento de Datos. Sobresalen las tareas relativas a la creación, mantenimiento, consulta y listado de datos. Estos datos se organizan en registros, ficheros y bases de datos. * Aplicaciones de Tratamiento de Textos. Llevan a cabo la manipulación de textos en
lenguaje natural. * Aplicaciones en Inteligencia Artificial. Están constituidas por programas que emulan un comportamiento inteligente. Ej. juegos inteligentes (ajedrez, tres en raya, ...), robótica, sistemas expertos, ... * Aplicaciones de Programación de Sistemas. Como por ejemplo aquéllos que se utilizan para desarrollar los módulos de un Sistema Operativo, traductores de lenguajes, ...
Según el estilo de programación: * Imperativos. * Declarativos.
Paradigmas Orientado a Objecto
Usa objetos y sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, abstracción, polimorfismo y encapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe variedad de lenguajes de programación que soportan la orientación a objetos.
Características
Existe un acuerdo acerca de qué características contempla la "orientación a objetos", las
características siguientes son las más importantes:
Abstracción : denota las características 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 cómo se implementan estas características. Los procesos,
las funciones o los métodos pueden también ser abstraídos y cuando lo están, una
variedad de técnicas son requeridas para ampliar una abstracción. El proceso de
abstracción permite seleccionar las características relevantes dentro de un conjunto e
identificar comportamientos comunes para definir nuevos tipos de entidades en el mundo
real. La abstracción es clave en el proceso de análisis y diseño 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 a todos los elementos que pueden considerarse
pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite
aumentar la cohesión de los componentes del sistema. Algunos autores confunden este
concepto con el principio de ocultación, principalmente porque se suelen emplear
conjuntamente.
Modularidad : Se denomina Modularidad a la propiedad que permite subdividir una
aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser
tan independiente como sea posible de la aplicación en sí y de las restantes partes. Estos
módulos se pueden compilar por separado, pero tienen conexiones con otros módulos. Al
igual que la encapsulación, los lenguajes soportan la Modularidad de diversas formas.
Principio de ocultación : Cada objeto está aislado del exterior, es un módulo natural, y
cada tipo de objeto expone una interfaz a otros objetos que especifica cómo pueden
interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un
objeto contra su modificación por quien no tenga derecho a acceder a ellas, solamente los
propios métodos 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 abstracción. La aplicación 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 invocación de un
comportamiento en una referencia producirá el comportamiento correcto para el tipo real
del objeto referenciado. Cuando esto ocurre en "tiempo de ejecución", esta última
característica se llama asignación tardía o asignación dinámica. Algunos lenguajes
proporcionan medios más estáticos (en "tiempo de compilación") de polimorfismo, tales
como las plantillas y la sobrecarga de operadores de C++.
Herencia : las clases no están aisladas, sino que se relacionan entre sí, formando una
jerarquía de clasificación. 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 en árboles o enrejados que reflejan un
comportamiento común. Cuando un objeto hereda de más de una clase se dice que
hay herencia múltiple.
Recolección de basura : la recolección de basura o garbage collector es la técnica por la
cual el entorno de objetos se encarga de destruir automáticamente, 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 asignación o
liberación de memoria, ya que el entorno la asignará al crear un nuevo objeto y la liberará
cuando nadie lo esté usando. En la mayoría de los lenguajes híbridos que se extendieron
para soportar el Paradigma de Programación Orientada a Objetos como C++ u Object
Pascal, esta característica no existe y la memoria debe desasignarse manualmente.
Herramientas de Programación
Las herramientas de programación, son aquellas que permiten realizar aplicativos, programas, rutinas, utilitarios y sistemas para que la parte física del computador u ordenador, funcione y pueda producir resultados.
Hoy dia existen múltiples herramientas de programación en el mercado, tanto para analistas expertos como para analistas inexpertos.
Las herramientas de programación más comunes del mercado, cuentan hoy dia con programas de depuración o debugger, que son utilitarios que nos permiten detectar los posibles errores en tiempo de ejecucion o corrida de rutinas y programas.
Entre otras herramientas de programación encontramos librerías y componentes, dados por algunos lenguajes de programación como son el C++ y delphi.
Otras herramientas de programación son los lenguajes de programación, que nos permiten crear rutinas, programas y utilitarios.
Entre algunas de estas herramientas de programación tenemos:
Basic y Pascal que son herramientas de programación, idoneas para la inicializacion de los programadores.
C y C++ que sirven para la programación de sistemas.
Cobol, que es una herramienta de programación orientada hacia sistemas de gestion empresarial como nominas y contabilidad.
Fortran, que son lenguajes específicos para cálculos matemáticos y o numéricos.
Herramientas de programación para ambientes gráficos como son Visual Basic, Delphi y Visual C.
Html y Java, que permiten la creación de páginas WEB para internet.
Clase y Objecto
Un objeto no es más que un conjunto de variables (o datos) y métodos (o funciones)
relacionados entre sí. Los objetos en programación se usan para modelar objetos o
entidades del mundo real (el objeto hijo, madre, o farmacéutica, por ejemplo). Un objeto
es, por tanto, la representación en un programa de un concepto, y contiene toda la
información necesaria para abstraerlo: datos que describen sus atributos y operaciones
que pueden realizarse sobre los mismos.
Una clase es una plantilla que define las variables y los métodos que son comunes para
todos los objetos de un cierto tipo. En nuestro ejemplo, la clase bicicleta definiría variables
miembro comunes a todas las bicicletas, como la marcha actual, la cadencia actual, etc. Esta
clase también debe declarar e implementar los métodos o funciones miembro que permiten al
ciclista cambiar de marcha, frenar, y cambiar la cadencia de pedaleo
Conclusion
El avance tecnológico que ha tenido la computadora con el paso del tiempo es muy satisfactorio ya que se muestran mejoras y nuevas ideas con respecto al diseño y los fines de cada máquina, pero lo que tienen en común estos aparatos y por lo cual se les considera antecesores de la computadora es la finalidad de simplificar la solución de cálculos matemáticos muy complicados, por ejemplo el Ábaco que solo se utiliza para sumar y restar, simplifica estas operaciones y podemos realizar estos cálculos con mas rapidez, otro ejemplo seria el sistema del Telar Automatizado el cual realizaba diseños en tela por medio de tarjetas perforadas que determinaban cada diseño y este a su vez se podía modificar intercambiando dichas tarjetas.
Estas maquinas en la actualidad son obsoletas ya que contamos con tecnologías mas avanzadas que nos permiten realizar no solo cálculos matemáticos si no que a su vez nos permite intercambiar información (imagen, sonido, texto, etc.), pero sin la invención de estos aparatos no podríamos disfrutar de estas tecnologías ya que gracias a ellos fue posible la construcción y el descubrimiento de lo que en la actualidad llamamos computadora.
La computadora es una máquina electrónica capaz de ordenar procesar y elegir un resultado con una información.
Un lenguaje de programación es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas a cabo por máquinas como las computadoras.
Las herramientas de programación, son aquellas que permiten realizar aplicativos, programas, rutinas, utilitarios y sistemas para que la parte física del computador u ordenador, funcione y pueda producir resultados.
Una clase es la definición de un tipo de objeto. Por lo tanto un objeto es una realización o instancia de una clase.