Presentacion De La Primera Unidad 2

1.220 visualizaciones

Publicado el

presentacion de la primera unidad de fundamentos de programacion, espero sirva de algo.

Publicado en: Viajes, Empresariales
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
1.220
En SlideShare
0
De insertados
0
Número de insertados
19
Acciones
Compartido
0
Descargas
41
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Presentacion De La Primera Unidad 2

  1. 1. PRESENTACIÓN DE LA PRIMERA UNIDAD FUNDAMENTOS DE PROGRAMACIÓN ALONSO SALCIDO JIMENEZ
  2. 2. 1.1 Reconocimiento de clases y objetos y sus relaciones en el mundo real. <ul><li>En Java, un objeto se define como una estructura que encapsula atributos (características) y comportamientos (procedimientos) de una entidad con un papel bien definido en una aplicación. </li></ul><ul><li>Si tomamos en cuenta esta perspectiva en nuestro entorno nos encontraremos que cada instrumento o cualquier parte de un sistema es denominado objeto ya que tiene cierto comportamiento para el mismo sistema. </li></ul>
  3. 3. COMPONENTES DE UN OBJETO <ul><li>Cada objeto contiene los siguientes componentes: </li></ul><ul><li>- Estado: Conjunto de valores de los atributos en un instante de tiempo dado. El comportamiento de un objeto puede modificar el estado de este. </li></ul><ul><li>- Comportamiento: Relacionado con su funcionalidad y determina las operaciones que este puede realizar o a las que puede responder ante mensajes enviados por otros objetos. </li></ul><ul><li>- Identidad: Es la propiedad que permite a un objeto diferenciarse de otros. Generalmente esta propiedad es tal, que da nombre al objeto. </li></ul><ul><li>Los objetos, concretos y abstractos, están a nuestro alrededor, forman nuestro entorno. Podemos distinguir cada objeto en base a sus características y comportamientos. </li></ul>
  4. 4. Ejemplos de Objetos <ul><li>En los siguientes sistemas hay que identificar los objetos que interactúan en ellos. </li></ul>PIZARRON SILLAS MAESTROS ALUMNOS AULAS ESCRITORIOS ESCUELA CPU MONITOR COMPU MODEM PAGINAS SESION DE INTERNET
  5. 5. INTERACCION ENTRE OBJETOS <ul><li>Los objetos no sólo tienen atributos relacionados con su forma física sino que, además, exhiben comportamientos específicos de su clase . </li></ul><ul><li>• Alumno: Estudia, aprende. </li></ul><ul><li>• Profesor: Enseña, evalúa. </li></ul><ul><li>• Mesa: Ordenada, desordenada. </li></ul><ul><li>• Silla: Ocupada, desocupada . </li></ul><ul><li>• Mesa banco: Ocupado, desocupado. </li></ul><ul><li>• Pizarrón : Pintado, borrado </li></ul><ul><li>Observamos que en el aula hay varios objetos alumno, por lo que pensamos en el grupo de alumnos, al que denominaremos como la clase alumno. De igual manera, cada materia es impartida por un profesor; el conjunto de profesores forman la clase Profesor. Pudiéramos extender nuestro análisis al pizarrón, la mesa, la silla,, al conjunto de mesa bancos, etc. </li></ul>
  6. 6. 1.2 Abstracción. <ul><li>Abstracción: Es un método por el cual abstraemos valga la redundancia, una determinada entidad de la realidad de sus características y funciones que desempeñan, estos son representados en clases por medio de atributos y métodos de dicha clase. Mejor dicho denota las características esenciales de un objeto, donde se capturan sus comportamientos. </li></ul><ul><li>Dentro de las características esenciales se encuentran: </li></ul><ul><ul><li>Atributos (o datos). </li></ul></ul><ul><ul><li>Comportamiento (métodos) </li></ul></ul>
  7. 7. EJEMPLO DE ABSTRACCIÓN <ul><li>La abstracción de un automóvil. </li></ul><ul><li>- Características: Color, año de fabricación, modelo, etc. </li></ul><ul><li>- Métodos o Funciones: Frenar, encender, etc. </li></ul><ul><li>A esto se le llama abstracción. En general un programa no es más que una descripción abstracta de un procedimiento o fenómeno que existe o sucede en el mundo real. </li></ul>
  8. 8. CARACTERISTICAS DE LA ABSTRACCIÓN <ul><li>A esto se le llama abstracción. En general un programa no es más que una descripción abstracta de un procedimiento o fenómeno que existe o sucede en el mundo real. </li></ul><ul><li>- La abstracción es crucial para comprender este complejo mundo. </li></ul><ul><li>- La abstracción es esencial para el funcionamiento de una mente humana normal y es una herramienta muy potente para tratar la complejidad. </li></ul><ul><li>- La abstracción es clave para diseñar un buen software. </li></ul>
  9. 9. 1.2. Encapsulamiento <ul><li>Encapsulamiento: Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. </li></ul><ul><li>En la OO el encapsulamiento de una entidad se logra mediante la definición de una clase, que reúne los datos y comportamiento en una unidad . </li></ul>
  10. 10. EJEMPLOS DE ENCAPSULAMIENTO <ul><li>El encapsulamiento nos permite considerar a los objetos como cajas negras: como objetos que podemos utilizar sin enfocarnos en la forma en que trabajan. </li></ul><ul><li>Caja negra.- Un objeto en el que su comportamiento y atributos son conocidos pero no así su trabajo interno, el cual continúa siendo un misterio. Un mecánico debe saber como trabaja el motor y la transmisión de su carro, pero usted como conductor, puede usarlo sin preocuparse por estos detalles, El carro encapsula todos los detalles de las partes que lo constituyen, por lo que usted tan solo necesita conocer su interfaz: el acelerador, el freno y el volante. </li></ul><ul><li>Si abre la caja negra de su carro y se fija en lo que hay bajo el cofre, no encontrara una masa amorfa de características, sino subobjetos simples que interactúan entre si: motor, transición, poleas, etc. Si abre alguno de estos objetos encontrará más objetos, por ejemplo, el motor esta construido por bujías, tubos, bandas, convertidores catalíticos, etc. Y cada uno de ellos contiene a su vez objetos más pequeños que cumplen con una tarea específica. </li></ul><ul><li>Cuando el motor le da propulsión al carro, no hace todo el trabajo en un solo objeto monolítico. En vez de ello, delega a los objetos que lo constituyen una responsabilidad, A su vez, estos objetos pueden delegar responsabilidades a otro. De esta manera, el motor delega la acumulación de presión a los pistones y la responsabilidad de generar la chispa a las bujías. </li></ul>
  11. 11. CAJA DE CARACTERISTICAS
  12. 12. 1.3 La POO y la complejidad del software. <ul><li>La POO comparada con otros paradigmas de programación, permite manejar de mejor manera la complejidad del software. Por lo siguiente: </li></ul><ul><li>Agrupar elementos comunes (objetos) en clases. </li></ul><ul><li>La clase incluye en una unidad los atributos y los métodos. </li></ul><ul><li>Se pueden construir jerarquías de herencias de clases que hereden (reciban) lo que ya esta definido. </li></ul><ul><li>Lo anterior aumenta la modularidad. El programa esta formado por módulos o partes bien identificadas. </li></ul>
  13. 13. <ul><li>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 </li></ul>
  14. 14. UN POCO DE HISTORIA <ul><li>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? </li></ul><ul><li>Este método de diseño, a pesar de haber dado resultados satisfactorios, tiene limitaciones. Algunas de ellas son: </li></ul><ul><li>• No favorece la reutilización del código. Si en la figura anterior f1 y f2 fueran idénticas, este hecho seguramente pasaría desapercibido y no se compartiría una única función fn. </li></ul><ul><li>• Si dos subprogramas comparten una misma función fn reutilizando así el código que define la misma, y más adelante queremos modificar fn porque hay un cambio en uno de los subprogramas que la utilizan, la modificación afectará también al otro subprograma, razón por la que ahora tendremos que realizar dos funciones. </li></ul>
  15. 15. MODULARIDAD <ul><li>La modularidad implica: </li></ul><ul><ul><li>El programa se puede construir, probar y depurar por módulos. </li></ul></ul><ul><ul><li>Al agregar nueva funcionalidad, se pueden crear nuevos módulos o incluir la funcionalidad en módulos que ya existen. </li></ul></ul><ul><ul><li>Se facilita el localizar errores, el mantenimiento y el crecimiento del software. </li></ul></ul>
  16. 16. 1.4 Conceptos del ciclo de vida del software. <ul><li>Las etapas básicas del ciclo de vida del software son: </li></ul><ul><li>1. Especificación de requerimientos. </li></ul><ul><li>2. Análisis. </li></ul><ul><li>3. Diseño. </li></ul><ul><li>4. Programación. </li></ul><ul><li>5. Mantenimiento. </li></ul><ul><li>Para aclarar esto es en el ciclo de vida clasico o de Cascada. </li></ul>
  17. 17. MODELO CASCADA
  18. 18. 1.4.1 Especificaciones de requerimientos . <ul><li>Comprende las tareas relacionadas con la determinación de las necesidades o de las condiciones a satisfacer para un software nuevo o modificado, tomando en cuenta los diversos requerimientos de los clientes. </li></ul><ul><li>El propósito es hacer que los mismos alcancen un estado óptimo antes de alcanzar la fase de diseño en el proyecto. </li></ul><ul><li>Los buenos requerimientos deben ser medibles, comprobables, sin ambigüedades o contradicciones. </li></ul>
  19. 19. Ejemplo de especificación de requerimientos. <ul><li>Giro de la empresa. </li></ul><ul><li>La empresa “HogarSeguro.com” se dedica a la venta, configuración e instalación de equipo de seguridad para hogares y pequeñas empresas </li></ul><ul><li>Aquello que necesita la empresa son lo requerimientos para la misma: </li></ul><ul><li>Por ejemplo: Alarmas, Cableado, Interruptores, etc. </li></ul>
  20. 20. 1.4.2 Análisis Orientado a Objetos <ul><li>Definición. Es un método de análisis que examina los requisitos desde la perspectiva de las clases y objetos que se encuentran en el vocabulario del dominio del problema. </li></ul><ul><li>Se considera como un análisis de actividades y consiste en la solución de negocios para el usuario y se expresa con los casos de uso. El diseño lógico es la solución del equipo de proyecto del negocio y consiste de las siguientes tareas: Identificar los usuarios y sus roles Obtener datos de los usuarios Evaluar la información Documentar los escenarios de uso Validar con los usuarios Validar contra la arquitectura de la empresa </li></ul>
  21. 21. Documentos de deben tenerse o desarrollarse durante el análisis. <ul><li>Especificación de requisitos o requerimientos. </li></ul><ul><li>Diagramas de casos de uso. </li></ul><ul><li>Escenarios y subescenarios. </li></ul><ul><li>Prototipos y su evaluación </li></ul>
  22. 22. CASO DE USO. <ul><li>Es una técnica para la captura de requisitos potenciales de un nuevo sistema o una actualización de software. Cada caso de uso proporciona uno o más escenarios que indican cómo debería interactuar el sistema con el usuario o con otro sistema para conseguir un objetivo específico. </li></ul>
  23. 23. 1.4.4 POO <ul><li>La Programación Orientada a Objetos (POO) es una forma de enfocar la tarea de programación. Los enfoques de la programación han cambiado drásticamente desde la invención de las computadoras, la creciente complejidad de los programas, antes se realizaban mediante una consola las instrucciones máquinas en binario. Esto funcionaba porque los programas sólo tenían unos pocos cientos de instrucciones. Cuando crecieron los programas, se invento el lenguaje ensamblador para que el programador pudiera manejar programas más largos y complejos usando una representación simbólica de las instrucciones máquina. </li></ul>
  24. 24. UN POCO MAS DE HISTORIA. <ul><li>Los lenguajes de alto nivel aparecierón para proporcionar al programador más herramientas con las cuales gestionar esa complejidad. En los años sesenta nace la programación estructurada, este es el método alentando por varios lenguajes como pascal, y C. Con los lenguajes estructurados fue posible escribir programas moderadamente complejos de una forma bastante sencilla. Sin embargo, usando incluso la programación estructurada, cuando los proyectos Alcanzan cierto tamaño, su complejidad se vuelve demasiado difícil para ser controlada por un programador. </li></ul><ul><li>La Programación Orientada a Objetos toma las mejores ideas de la programación estructurada la combina con nuevos y poderosos conceptos que animan o alientan una nueva visión de la tarea de la programación. La Programación Orientada a Objetos permite descomponer fácilmente un problema en subgrupos de partes relacionadas. Entonces, puede traducir estos subgrupos en unidades autocontenidas llamadas Objetos. </li></ul>
  25. 25. Elementos Primordiales En El Modelo De Objetos <ul><li>La programación Orientada a Objetos trata de cumplir las necesidades de los usuarios finales, estás tareas se realizan mediante la modelización del mundo real, el sopote fundamental es el modelo objeto. </li></ul><ul><li>Los elementos más importantes de este modelo son: </li></ul><ul><li>Abstracción </li></ul><ul><li>Encapsulamiento </li></ul><ul><li>Modularidad </li></ul><ul><li>Jerarquía y Herencia </li></ul><ul><li>Polimorfismo </li></ul>
  26. 26. 1.5.1. Abstracción. <ul><li>Significa extraer las propiedades esenciales de un objeto que lo distinguen de los demás tipos de Objetos y proporciona fronteras conceptuales definidas respecto al punto de vista del observador. La abstracción es la propiedad que permite representar las características esenciales de un objeto, sin preocuparse de las restantes características (no esenciales). Abstracción es la técnica de quitarle a una idea o a un objeto todos los acompañamientos innecesarios hasta que los deja en una forma esencial y mínima. Una buena abstracción elimina todos los detalles poco importantes y le permite enfocarse y concentrarse en los detalles importantes. </li></ul>
  27. 27. 1.5.2. Encapsulamiento. <ul><li>Cada objeto está aislado del exterior, es un módulo natural, y la aplicación entera se reduce a un agregado o rompecabezas de objetos. El aislamiento protege a los datos asociados a un objeto contra su modificación por quien no tenga derecho a acceder a ellos, eliminando efectos secundarios e interacciones. </li></ul>
  28. 28. MODULARIDAD <ul><li>· Modularidad, esto es, el código fuente de un objeto puede ser escrito, así como darle mantenimiento, independientemente del código fuente de otros objetos. Así mismo, un objeto puede ser transferido alrededor del sistema sin alterar su estado y conducta . </li></ul>
  29. 29. OCULTAMIENTO <ul><li>Ocultamiento de la información, es decir, un objeto tiene una “interfaz pública” que otros objetos pueden utilizar para comunicarse con él. Pero el objeto puede mantener información y métodos privados que pueden ser cambiados en cualquier tiempo sin afectar a los otros objetos que dependan de ello. </li></ul>
  30. 30. 1.5.4. Jerarquía y herencia. <ul><li>La Jerarquía es una propiedad que permite la ordenación de las abstracciones. Las dos jerarquías más importantes de un sistema complejo son: estructura de clases (jerarquía “es-un” (is-a): generalización/especialización) y estructura de objetos (jerarquía “parte-de” (part-of): agregación). </li></ul><ul><li>Las jerarquías de generalización/especialización se conocen como herencia. Básicamente, la herencia define una relación entre clases, en donde una clase comparte la estructura o comportamiento definido en una o más clases (herencia simple y herencia múltiple, respectivamente). </li></ul><ul><li>La agregación es el concepto que permite el agrupamiento físico de estructuras relacionadas lógicamente. Así, un camión se compone de ruedas, motor, sistema de transmisión y chasis; en consecuencia, camión es una agregación, y ruedas, motor, transmisión y chasis son agregados de camión </li></ul>
  31. 31. POLIMORFISMO <ul><li>La quinta propiedad significativa de los lenguajes de programación orientados a objetos es el polimorfismo. Es la propiedad que indica, literalmente, la posibilidad de que una entidad tome muchas formas. En términos prácticos, el polimorfismo permite referirse a objetos de clases diferentes mediante el mismo elemento de programa y realizar la misma operación de diferentes formas, según sea el objeto que se referencia en ese momento. </li></ul>
  32. 32. EJEMPLOS DE POLIMORFISMO <ul><li>Por ejemplo, cuando se describe la clase mamíferos se puede observar que la operación comer es una operación fundamental en la vida de los mamíferos, de modo que cada tipo de mamífero debe poder realizar la operación o función comer. </li></ul><ul><li>Por otra parte, una cabra o una vaca que pastan en un campo, un niño que se come un caramelo y un león que devora a otro animal, son diferentes formas que utilizan diferentes mamíferos para realizar la misma función (comer). </li></ul><ul><li>El polimorfismo adquiere su máxima expresión en la derivación o extensión de clases, es decir, cuando se obtiene una clase a partir de una clase ya existente, mediante la propiedad de derivación de clases o herencia. </li></ul>
  33. 33. Historia De Los Paradigmas En El Desarrollo Del Software <ul><li>Paradigmas: Representan un enfoque particular o filosofía para la construcción del software. No es mejor uno que otro sino que cada uno tiene ventajas y desventajas.. </li></ul><ul><li>Los más comunes son el desarrollo en cascada, el desarrollo en espira’‘, el desarrollo por prototipos, el desarrollo incremental, el desarrollo en V y el desarrollo orientado a objetos. También existen modelo híbridos, los cuales combinan elementos de diferentes modelos según las necesidades existentes. </li></ul>
  34. 34. Beneficios Del Modelo De Objetos Y De La Poo Sobre Otros Paradigmas <ul><li>En resumen, la programación orientada a objetos beneficia a los desarrolladores debido a que: </li></ul><ul><li>Los programas son fáciles de diseñar debido a que los objetos reflejan elementos del mundo real. </li></ul><ul><li>Las aplicaciones son más sencillas para los usuarios debido a que los datos innecesarios están ocultos. </li></ul><ul><li>Los objetos son unidades autocontenidas. </li></ul><ul><li>La productividad se incrementa debido a que puede reutilizar el código. </li></ul><ul><li>Los sistemas son fáciles de mantener y se adaptan a las cambiantes necesidades de negocios. </li></ul><ul><li>Es más fácil crear nuevos tipos de objetos a partir de los ya existentes. </li></ul><ul><li>Simplifica los datos complejos. </li></ul><ul><li>Reduce la complejidad de la transacción. </li></ul><ul><li>Confiabilidad. </li></ul>

×