Fundamentos de programación
Reconocimiento de objetos y clases en el mundo real. <ul><li>La mayoría de los objetos en el mundo real tienen atributos (...
Abstracción y Encapsulamiento <ul><li>La abstracción es la forma mas general de ver a un objeto, sin meternos en su compos...
La POO y la complejidad del software   <ul><li>Es una forma especial de programar, más cercana a como expresaríamos las co...
<ul><li>La complejidad del software se desarrolla mediante las personas que son hábiles para lo cual necesitan recopilar i...
<ul><li>Agrupar elementos comunes (objetos) en clases. </li></ul><ul><li>La clase incluye en una unidad los atributos y lo...
Conceptos del ciclo de vida del SW <ul><li>Es una sucesión de estados o fases por los cuales pasa un software a lo largo d...
Etapas o fases del ciclo de vida del software   <ul><li>1 Definición objetivos del software </li></ul><ul><li>2 Investigac...
Especificaciones de Requerimientos <ul><li>Es un proceso por el cual se inicia con la petición de una persona que desea qu...
Análisis orientado a objetos   Es la manera que la persona comprenden la realidad y la procesan, mediante conceptos adquir...
Diseño orientado a objetos   <ul><li>Anima al programador a pensar sobre todo en términos de procedimientos o funciones, y...
POO conceptos y características <ul><li>Permite descomponer fácilmente un problema en subgrupos de partes relacionadas. En...
Elementos primordiales en el modelo de objetos   <ul><li>Consiste en aislar un elemento en su contexto de sus elementos qu...
Abstracción objetos <ul><li>Significa extraer las propiedades esenciales de un objeto que lo distinguen de los demás tipos...
Encapsulamiento  Objetos <ul><li>Cada objeto está aislado del exterior, es un módulo natural, y la aplicación entera se re...
 
Modularidad Objetos <ul><li>Consiste en dividir un programa en módulos que se puedan compilar por separado, pero que tiene...
 
Jerarquía <ul><li>La Jerarquía es una propiedad que permite la ordenación de las abstracciones. Las dos jerarquías más imp...
Herencia <ul><li>La herencia define una relación entre clases, en donde una clase comparte la estructura o comportamiento ...
Polimorfismo <ul><li>Indica, literalmente, la posibilidad de que una entidad tome muchas formas. En términos prácticos, el...
<ul><li>El método se llama igual, por tener el mismo significado lógico. </li></ul><ul><li>Las llamadas a cada método serí...
Historia de los paradigmas en el desarrollo del software <ul><li>Representan un enfoque particular o filosofía para la con...
Beneficios del modelo de objetos y de la POO sobre otros paradigmas. <ul><li>La programación orientada a objetos beneficia...
<ul><li>Los LPOO proporcionan un rico conjunto de clases predefinidas  que se pueden usar en las aplicaciones. </li></ul><...
Erika Carmona Briones Paola Martinez Hernandez Erick Cota Soto Cesar Hurtado Renova
Próxima SlideShare
Cargando en…5
×

Fundamentos De ProgramacióN Unidad 1

4.351 visualizaciones

Publicado el

Fundamentos De Programacion (POO)

Publicado en: Educación
0 comentarios
1 recomendación
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
4.351
En SlideShare
0
De insertados
0
Número de insertados
34
Acciones
Compartido
0
Descargas
94
Comentarios
0
Recomendaciones
1
Insertados 0
No insertados

No hay notas en la diapositiva.

Fundamentos De ProgramacióN Unidad 1

  1. 1. Fundamentos de programación
  2. 2. Reconocimiento de objetos y clases en el mundo real. <ul><li>La mayoría de los objetos en el mundo real tienen atributos (características que los describen). -Nombre-Edad-Sexo-etc. </li></ul><ul><li>Son las características que lo hacen ser y distinguir </li></ul>
  3. 3. Abstracción y Encapsulamiento <ul><li>La abstracción es la forma mas general de ver a un objeto, sin meternos en su composición interior u otros componentes. </li></ul><ul><li>Expresa las características esenciales de un objeto, las cuales distinguen al objeto de los demás. </li></ul><ul><li>La encapsulación significa agrupar a todos los componentes de un objeto en uno solo, por medio de algo, para ocultar de la simple vista los componentes internos del objeto. </li></ul><ul><li>Se encarga de mantener ocultos los procesos internos que necesita para hacer lo que sea que haga, dándole al programador acceso sólo a lo que necesita. </li></ul>
  4. 4. La POO y la complejidad del software <ul><li>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. </li></ul><ul><li>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 </li></ul>
  5. 5. <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 </li></ul>
  6. 6. <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>Comparada con otros paradigmas de programación, permite manejar de mejor manera la complejidad del software. Por lo siguiente:
  7. 7. Conceptos del ciclo de vida del SW <ul><li>Es una sucesión de estados o fases por los cuales pasa un software a lo largo de su &quot;vida&quot;. </li></ul><ul><li>Crear un ciclo de vida permite detectar errores más rápido, mejorar la calidad del software, estimar los plazos de implementación y sus costos, etc. </li></ul>
  8. 8. Etapas o fases del ciclo de vida del software <ul><li>1 Definición objetivos del software </li></ul><ul><li>2 Investigación de requisitos y factibilidad: recopilar y formalizar los requisitos. </li></ul><ul><li>3 Etapa de análisis y diseño general: requisitos generales de la arquitectura del software. </li></ul><ul><li>4 Diseño detallado: definición más precisa de cada módulo o subconjunto del software. </li></ul><ul><li>5 Programación e implementación: se programa lo especificado en la etapa de diseño. </li></ul><ul><li>6 Prueba: se evalúa cada módulo o subconjunto del software de forma individual y en forma integrada. Luego puede haber una prueba beta </li></ul><ul><li>7 Creación de la documentación: información sobre el software para los usuarios. </li></ul><ul><li>8 Mantenimiento: correctivo y continuo. </li></ul>
  9. 9. Especificaciones de Requerimientos <ul><li>Es un proceso por el cual se inicia con la petición de una persona que desea que se cree un sistema o programa de acuerdo a sus necesidades. </li></ul><ul><li>Esto va por pasos: la investigación preeliminar en la cual se aclara la solicitud, se ve que tan necesario es el sistema a implementar, y la aprobación de la solicitud; dentro de esta investigación preeliminar se busca: </li></ul><ul><li>1.- Factibilidad Técnica </li></ul><ul><li>2.- Factibilidad Económica </li></ul><ul><li>3.- Factibilidad Operacional </li></ul>
  10. 10. Análisis orientado a objetos Es la manera que la persona comprenden la realidad y la procesan, mediante conceptos adquiridos. Recopilar, examinar y formular los requisitos del cliente y examinar cualquier restricción que se pueda aplicar.
  11. 11. Diseño orientado a objetos <ul><li>Anima al programador a pensar sobre todo en términos de procedimientos o funciones, y en segundo lugar en las estructuras de datos que esos procedimientos manejan. </li></ul><ul><li>Los programadores de lenguajes tradicionales escriben funciones y después les pasan datos. Los programadores POO los definen con datos y métodos, después envían mensajes a los objetos para que realicen los métodos. </li></ul>
  12. 12. POO conceptos y características <ul><li>Permite descomponer fácilmente un problema en subgrupos de partes relacionadas. Entonces, puede traducir estos subgrupos en unidades autocontenida llamadas Objetos. </li></ul><ul><li>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. </li></ul>
  13. 13. Elementos primordiales en el modelo de objetos <ul><li>Consiste en aislar un elemento en su contexto de sus elementos que lo acompañan. </li></ul><ul><li>En programación , el termino se refiere al énfasis en el “¿que ase mas que el como lo hace ?” </li></ul>
  14. 14. Abstracción objetos <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. </li></ul><ul><li>Es uno de los medios más importantes, mediante el cual nos enfrentamos con la complejidad inherente al software </li></ul>
  15. 15. Encapsulamiento Objetos <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>
  16. 17. Modularidad Objetos <ul><li>Consiste en dividir un programa en módulos que se puedan compilar por separado, pero que tienen conexiones con otros módulos. Al igual que la encapsulación, los lenguajes soportan la Modularidad de diversas formas. </li></ul><ul><li>Es más fácil la solución de “pequeños” módulos. </li></ul><ul><li>Este procedimiento de descomposición refleja el principio de “Divide y Vencerás”. </li></ul>
  17. 19. Jerarquía <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 relaciones de herencia forman una estructura de árbol </li></ul>
  18. 20. Herencia <ul><li>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>
  19. 21. Polimorfismo <ul><li>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><ul><li>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. </li></ul>
  20. 22. <ul><li>El método se llama igual, por tener el mismo significado lógico. </li></ul><ul><li>Las llamadas a cada método serían parecidas a la forma: </li></ul><ul><ul><ul><li>Cuadrado.area() </li></ul></ul></ul><ul><ul><ul><li>Rectángulo.area() </li></ul></ul></ul><ul><ul><ul><li>Círculo.area() </li></ul></ul></ul>
  21. 23. Historia de los paradigmas en el desarrollo del software <ul><li>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>Metodologías que se aplican para el ciclo de vida del software (algunas): </li></ul><ul><li>Ciclo vida clásico o cascada. </li></ul><ul><li>Modelo en espiral. </li></ul><ul><li>Prototipos. </li></ul>
  22. 24. Beneficios del modelo de objetos y de la POO sobre otros paradigmas. <ul><li>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 autocontenida. </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>
  23. 25. <ul><li>Los LPOO proporcionan un rico conjunto de clases predefinidas que se pueden usar en las aplicaciones. </li></ul><ul><li>Reutilización. Las clases se construyen a partir de otras clases. </li></ul><ul><li>Fiabilidad. </li></ul><ul><li>Productividad del desarrollador. </li></ul><ul><li>Calidad. </li></ul><ul><li>Mantenimiento. </li></ul><ul><li>Costo. </li></ul><ul><li>Escalabilidad. </li></ul><ul><li>Adaptabilidad (mejor independencia e interoperatividad). </li></ul>
  24. 26. Erika Carmona Briones Paola Martinez Hernandez Erick Cota Soto Cesar Hurtado Renova

×