Unidad 1 Fundamentos DEL Modelo DE Programacion Orientado A Objetos PDF

Title Unidad 1 Fundamentos DEL Modelo DE Programacion Orientado A Objetos
Course Programacion Orientada a Objetos
Institution Instituto Tecnológico de Celaya
Pages 19
File Size 744.5 KB
File Type PDF
Total Downloads 63
Total Views 147

Summary

FUNDAMENTOS DE PROGRAMACION...


Description

TECNOLOGICO NACIONAL DE MEXICO. INSTITUTO TECNOLOGICO DE CELAYA. INGENIERIA EN SISTEMAS COMPUTACIONALES. Fundamentos de programación. 1. Conceptos básicos del modelo orientado a objetos.

Unidad1: Conceptos básicos de la programación orientada a objetos. Visto en clase: Subtema1: Historia de los paradigmas de desarrollo de software. Como paradigma denominamos todo aquel modelo, patrón o ejemplo que debe seguirse en dete determinada rminada situación situación. La palabra, como tal, proviene del griego παράδειγμα (parádeigma). Sinónimos de paradigm paradigma a son modelo, patrón, ejemplo, molde, ideal, así como canon, norma o regla. Un paradigma de programación se refiere a la forma en que un programador o un conjunto de programadores dan solución a uno o varios problemas claramente definidos. En este sentido, representa una manera particular de ofrecer soluciones. El término Programación Orientada a Objetos (POO), hoy en día ampliamente utilizado, es difícil de definir, ya que no es un concepto nuevo, sino que ha sido el desarrollo de técnicas de programación desde principios de la década de los setenta, aunque sea en la década de los noventa cuando ha aumentado su difusión, uso y popularidad. No obstante, se puede definir POO como una técnica o estilo de programación que utiliza objetos como bloque esencial de construcción. Un objeto es una unidad que contiene datos y las funciones que operan sobre esos datos. A los elementos de un objeto se les conoce como miembros; las funciones que operan sobre los objetos se denominan métodos y los datos se denominan miembros datos. 1.1 ORIGENES DE LA PROGRAMACION ORIENTADA A OBJETOS. 1.a Etapa. Lenguajes Ensambladores. La unidad de programación es la instrucción, compuesta de un operador y los operandos. El nivel de abstracción que se aplica es muy bajo. 2.a Etapa. Lenguajes de Programación: Fortran, Algol, Cobol. Los objetos y operaciones del mundo real se podían modelar mediante datos y estructuras de control separadamente. En esta etapa el diseño del software se enfoca sobre la representación del detalle procedimental y en función del lenguaje elegido. Conceptos como: refinamiento progresivo, modularidad procedimientos y programación estructurada son conceptos básicos que se utilizan en esta etapa. Existe mayor abstracción de datos. 3.a Etapa. Se introducen en esta etapa los conceptos de abstracción y ocultación de la información. Programación Orientada a objetos. 2 4.a Etapa. A partir de los años setenta se trabaja sobre una nueva clase de lenguajes de simulación y sobre la construcción de prototipos tales como Simula-70 y basados en parte de éste, el Smalltalk. En estos lenguajes, la abstracción de datos tiene una gran importancia y los problemas del mundo real se representan mediante objetos de datos a los cuales se les añade el correspondiente conjunto de operaciones asociados a ellos. Términos como Abstracción de

datos, objeto, encapsulación entre otros, son conceptos básicos sobre la que se fundamenta la POO. Los tipos de programación son: Kernel=”NUCLEO DE COMPUTADOR BINARIO” Kernel Lenguaje 1 o KL1 es un lenguaje de programación desarrollado en 1987 por (Instituto para la Nueva Generación de Tecnologías de Computación, o ICOT por sus siglas en inglés) en el marco del proyecto japonés de la quinta generación de computadoras en la década de 1980. El KL1 es una versión experimental del Kernel Lenguaje 0 (o KL0), creado dos años antes, el cual se basaba el paradigma de la programación lógica y secuencial concurrente, siendo de hecho una variante del Prolog. Lenguaje maquina depende o está basado del lenguaje máquina. El lenguaje máquina es el único que entiende la computadora digital, es su "lenguaje natural". En él sólo se pueden utilizar dos símbolos: el cero (0) y el uno (1). Por ello, al lenguaje máquina también se le denomina lenguaje binario. La computadora sólo puede trabajar con bits, sin embargo, para el programador no resulta fácil escribir instrucciones tales como: La mnemotecnia o nemotecnia ―conocida también por los latinismos «ars memoriae» o «ars memorativa»― es un conjunto de técnicas de memorización y rememoración basada en la asociación mental de la información a memorizar con datos que ya sean parte de la memoria o de la práctica cotidiana. Esta técnica aprovecha la capacidad natural que tiene el cerebro para recordar imágenes y para prestarle más atención a los sucesos poco comunes o extraordinarios. Acrónimos vistos: ENIAC: ENIAC, acrónimo de Electronic Numerical Integrator And Computer (Computador e Integrador Numérico Electrónico),12 fue una de las primeras computadora de propósitos generales. fueron seis mujeres quienes la programaron: Betty Snyder Holberton, Jean Jennings Bartik, Kathleen McNulty Mauchly Antonelli, Marlyn Wescoff Meltzer, Ruth Lichterman Teitelbaum y Frances Bilas Spence. Paquetes:  UNIUAC: UNIVAC es el nombre de una línea de ordenadores electrónicos 10100010 digitales de programa almacenado en memoria que comenzaron como productos 11110011 de la Eckert-Mauchly Computer Corporation. Más tarde el nombre fue aplicado a 00100010 una división de la empresa Remington Rand y sus organizaciones sucesoras. 00010010 UNIVAC Es un acrónimo de UNIVersal Automatic Computer (Ordenador Automático UNIVersal).  MARK1: El IBM Automatic Sequence Controlled Calculator (ASCC), más conocido como Harvard Mark I o Mark I, fue el primer ordenador electromecánico, construido en IBM y enviado a Harvard en 1947. Tenía 760.000 ruedas y 800 kilómetros de cable y se basaba en la máquina analítica de Charles Babbage. El computador empleaba señales electromagnéticas para mover las partes mecánicas. Esta máquina era lenta (tomaba de 3 a 5 segundos por cálculo) e inflexible (la secuencia de cálculos no se podía cambiar); pero ejecutaba operaciones matemáticas básicas y cálculos complejos de ecuaciones sobre el movimiento parabólico.  Funcionaba con relés, se programaba con interruptores y leía los datos de cintas de papel perforado. 

Paradigma de programación espagueti:=”Uso de saltos complejos JUMP en el código” Investigación: En la década de los 60-70´s: Un lenguaje de programación de alto nivel se caracteriza por expresar los algoritmos de una manera adecuada a la capacidad cognitiva humana, en lugar de la capacidad que se la ejecuta de las máquinas. En los primeros lenguajes, la limitación era que se orientaban a un área específica y sus instrucciones requerían de una sintaxis predefinida. Se clasifican como lenguajes procedimentales o lenguajes de bajo nivel. Otra limitación de estos es que se requiere de ciertos conocimientos de programación para realizar las secuencias de instrucciones lógicas. Los lenguajes de alto nivel se crearon para que el usuario común pudiese solucionar un problema de procesamiento de datos de una manera más fácil y rápida. Características: Lenguaje de alto nivel se refiere al nivel más alto de abstracción de lenguaje de máquina. En lugar de tratar con registros, direcciones de memoria y las pilas de llamadas, lenguajes de alto nivel se refieren a las variables, matrices, objetos, aritmética compleja o expresiones booleanas, subrutinas y funciones, bucles, hilos, cierres y otros conceptos de informática abstracta, con un enfoque en la facilidad de uso sobre la eficiencia óptima del programa. Ventajas.  Genera un código más sencillo y comprensible.  Escribir un código válido para diversas máquinas o sistemas operativos.  Permite utilizar paradigmas de programación.  Permite crear programas complejos en relativamente menos líneas de código.

Inconvenientes.  Reducción de velocidad al ceder el trabajo de bajo nivel a la máquina.  Algunos requieren que la máquina cliente posea una determinada plataforma.

Principales lenguajes de nivel alto. Principales lenguajes de nivel medio. VB.NET C/C++ ALGOL BASIC C Sharp Java Pascal PHP PL/SQL Nota: C es un lenguaje de programación originalmente desarrollado por Dennis Ritchie entre 1969 y 1972 en los Laboratorios Bell,2 como evolución del anterior lenguaje B, a su vez basado en BCPL. La programación estructurada es un paradigma de programación orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora, utilizando únicamente subrutinas y tres estructuras: secuencia, selección (if y switch) e iteración (bucles for y while), considerando innecesario y contraproducente el uso de la instrucción de transferencia incondicional (GOTO), que podría conducir a "Código espagueti", que es mucho más difícil de seguir y de mantener, y era la causa de muchos errores de programación.

Surgió en la década de 1960, particularmente del trabajo de Böhm y Jacopini,1 y una famosa carta, «La sentencia goto, considerada perjudicial», de Edsger Dijkstra en 19682 — y fue reforzado teóricamente por el teorema del programa estructurado, y prácticamente por la aparición de lenguajes como ALGOL con adecuadas y ricas estructuras de control. VENTAJAS.  Ventajas de la programación estructurada comparada con el modelo anterior (hoy llamado despectivamente código espagueti).  Los programas son más fáciles de entender, pueden ser leídos de forma secuencial y no hay necesidad de hacer engorrosos seguimientos en saltos de líneas (GOTO) dentro de los bloques de código para intentar entender la lógica.  La estructura de los programas es clara, puesto que las instrucciones están más ligadas o relacionadas entre sí.  Reducción del esfuerzo en las pruebas y depuración. El seguimiento de los fallos o errores del programa (debugging) se facilita debido a su estructura más sencilla y comprensible, por lo que los errores se pueden detectar y corregir más fácilmente.  Reducción de los costos de mantenimiento. Análogamente a la depuración, durante la fase de mantenimiento, modificar o extender los programas resulta más fácil.  Los programas son más sencillos y más rápidos de confeccionar.  Se incrementa el rendimiento de los programadores.

Repeat

caraAtributos

objeto

ciclos en ves de jump´s

For

compMetodos While

Visto en clase: 1.3 Elementos de la programación orientada a objetos: Elementos (sin clases no hay objetos).  Proceso de abstracción  Proceso de encapsulamiento.  Modularidad.  Polimorfismo.  Herencia.

 Jerarquía de clases. Investigación. 1.2 CONCEPTOS DE LA PROGRAMACION ORIENTADA A OBJETOS. La POO representa una metodología de programación que se basa en las siguientes características: 1) Los diseñadores definen nuevas clases (o tipos) de objetos. 2) Los objetos poseen una serie de operaciones asociadas a ellos. 3) Las operaciones tienden a ser genéricas, es decir, operan sobre múltiples tipos de datos. 4) Las clases o tipos de objetos comparten componentes comunes mediante mecanismos de herencia. Objeto: Una estructura de datos y conjunto de procedimientos que operan sobre dicha estructura. Una definición más completa de objeto es: una entidad de programa que consiste en datos y todos aquellos procedimientos que pueden manipular aquellos datos; el acceso a los datos de un objeto es solamente a través de estos procedimientos, únicamente estos procedimientos pueden manipular, referenciar y/o modificar estos datos. Para poder describir todos los objetos de un programa, conviene agrupar éstos en clases. Clase: Podemos considerar una clase como una colección de objetos que poseen características y operaciones comunes. Una clase contiene toda la información necesaria para crear nuevos objetos. Encapsulación: Es una técnica que permite localizar y ocultar los detalles de un objeto. La encapsulación previene que un objeto sea manipulado por operaciones distintas de las definidas. La encapsulación es como una caja negra que esconde los datos y solamente permite acceder a ellos de forma controlada. Las principales razones técnicas para la utilización de la encapsulación son: 1) Mantener a salvo los detalles de representación, si solamente nos interesa el comportamiento del objeto. 2) Modificar y ajustar la representación a mejores soluciones algorítmicas o a nuevas tecnologías de software. Programación Orientada a objetos. 3 Abstracción: En el sentido mas general, una abstracción es una representación concisa de una idea o de un objeto complicado. En un sentido mas especifico, la abstracción localiza y oculta los detalles de un modelo o diseño para generar y manipular objetos. Una abstracción tiene un significado más general que la encapsulación, pudiendo hablar de abstracción de datos en lugar de encapsulación de datos. Como resumen de los 3 conceptos expuestos anteriormente podemos decir que: 1) Los objetos son encapsulaciones de abstracciones en la POO. 2) La unidad de encapsulación en la POO es el objeto. Una clase es un tipo: Un objeto es una instancia de ese tipo. Además, la clase es un concepto estático: una clase es un elemento reconocible en el texto del programa.

Un objeto es un concepto puramente dinámico, el cual pertenece, no al texto del programa, sino a la memoria de la computadora, donde los objetos ocupan un espacio en tiempo de ejecución una vez que haya sido creado. La programación orientada a objetos, ha tomado las mejores ideas de la programación estructurada y los ha combinado con varios conceptos nuevos y potentes que incitan a contemplar las tareas de programación desde un nuevo punto de vista. La programación orientada a objetos, permite descomponer más fácilmente un problema en subgrupos de partes relacionadas del problema. Entonces, utilizando el lenguaje se pueden traducir estos subgrupos a unidades auto contenidas llamadas objetos. Objetos: Un objeto es una entidad lógica que contiene datos y un código que manipula estos datos; el enlazado de código y de datos, de esta manera suele denominarse encapsulación. Cuando se define un objeto, se está creando implícitamente un nuevo tipo de datos. Polimorfismo: Significa que un nombre se puede utilizar para especificar una clase genérica de acciones.

Herencia: La herencia es un proceso mediante el cual un objeto puede adquirir las propiedades de otro objeto.

Visto en clase: 1.4 la p.o.o y la complejidad del software. Sistema de información:

Un sistema de información es un conjunto de elementos que interactúan entre sí con el fin de apoyar las actividades de una empresa o negocio.El equipo computacional: el hardware necesario para que el sistema de información pueda operar.El recurso humano que interactúa con el Sistema de Información, el cual está formado por las personas que utilizan el sistema. Un sistema de información realiza cuatro actividades básicas: entrada, almacenamiento, procesamiento y salida de información. Ciclo de vida del software: El término ciclo de vida del software describe el desarrollo de software, desde la fase inicial hasta la fase final. El propósito de este programa es definir las distintas fases intermedias que se requieren para validar el desarrollo de la aplicación, es decir, para garantizar que el software cumpla los requisitos para la aplicación y verificación de los procedimientos de desarrollo: se asegura de que los métodos utilizados son apropiados. Metodología de desarrollo de software: En ingeniería de software es un marco de trabajo usado para estructurar, planificar y controlar el proceso de desarrollo en sistemas de información.”Hacer software requiere de una metodologia”. 1erMetodologia:     

Entender el problema. Diseñar la solución. Codificar. Pruebas y depuraciones. Documentar.

Método de cascada: Levantamiento de requerimientos.

• si se equivoca regresa al paso anterior en cualquier paso

Analisis de requerimientos.

• si se equivoca regresa al paso anterior en cualquier paso

Diseño

• si se equivoca regresa al paso anterior en cualquier paso

Codificacion.

Pruebas y depuraciones.

Liberacion del producto de software.

Método prototipo:

Levantamiento de requerimientos.

Analisis requerimientos.

Liberacion del producto.

Diseño rapido.

Creacion de software.

Prototipo.

Evaluacion del cliente.

Metodología espiral:

Investigación propia: La POO y la complejidad del software La programación Orientada a objetos (POO) es una forma especial de programar, más cercana a como expresaríamos las cosas en la vida real que otros tipos de programación. Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para escribir nuestros programas en términos de objetos, propiedades, métodos y otras cosas que veremos rápidamente para aclarar conceptos y dar una pequeña base que permita ver este tipo de programación. La complejidad del software se desarrolla mediante las personas que son hábiles para lo cual necesitan recopilar información necesaria es decir dominar la problemática del sistema para lo cual se ven enfocados al tratamiento del problema y después a gestionar un proceso mediante el cual desarrollaran el software y así atraves de eso podrán llevarlo a la practica hasta que atreves del usuario pueda tener la flexibilidad de probarlo, para lo cual el software y la poo tienen varias aplicaciones en la programación formando grandes estructuras de ellas En la historia de la programación ha habido varias evoluciones sucesivas. Una de las principales fue la programación estructurada, cuyo principio fundamental era dividir un programa en subprogramas más pequeños y fáciles de resolver, hasta llegar a niveles de complejidad elementales, siempre apoyándonos en la idea de ¿qué debe hacer el programa? Booch fue el pionero del paradigma orientado a objetos, el cual pretende enfocar la programación lo más cercano a la realidad, manejando lo que nosotros como personas manejamos, objetos con sus atributos y funciones, y no los codigos lineales que se referian a conceptos no tan fácilmente comprensibles que se manejaban en el paradigma estructurado o lineal.

Definición general de software (también conocido como sistema de información): se puede definir como un portafolio de aplicaciones o un conjunto de lineas de codigo enfocado a objetos. una vez aclarado el concepto de software podemos mencionar los aspectos de la complejidad del software: Complejidad de Dominio: este punto se refiere a la capacidad o dificultad que puede tener un analista para interpretar y analizar cuales son las necesidades del cliente para asi poder crear un sistema de información acorde a las mismas. Esto es muy importnte, empezando porque el cliente sepa realmente lo que desea para el sistema y tambien se sepa expliar, y tambien tienen que ver lo acertada que sea la interpretación del analista. 2. Dificultad de gestionar el proceso de desarrollo: mientras más grande sea un software o sistema de información a desarrollar, se requieren más colaboradores, sin embargo, esto involucra una mayor coordinación, debido a que los programadores pueden tener ideas diferentes respecto al desarrollo del software, o puede que ellos se encuentren separados geograficamente, lo cual dificulta la comunicación entre ellos. + magnitud del software ---> + dificultad de comunicación y coordinación

3.-La posible flexibilidad a través del software: Este punto se puede explicar más facilmente por puntos; *- facilidad de usar y actualizar (dar mantenimiento) *- que un programa sea apto de ser modificado, lo que impide que se vuela obsoleto *- permite la reutilización del software, debido a la modularidad. *- capacidad de que se creen más clases en el software. *- que no sea tan estricto en cuanto a definición de datos. Ciclo de vida del software. Estos programas se originan en el hecho de que es muy costoso rectificar los errores que se detectan tarde dentro de la fase de implementación. El ciclo de vida permite que los errores se detecten lo antes posible y, por lo tanto, permite a los desarrolladores concentrarse en la calidad del software, en los plazos de implementación y en los costos asociados. El ciclo de vida básico de un software consta de los siguientes procedimientos: Definición de objetivos: define la finalidad del proyecto y su papel en la estrategia global. Análisis de los requis...


Similar Free PDFs