Fundamentos De ProgramacióN Unidad 1

26
Fundamentos de programación

description

Fundamentos De Programacion (POO)

Transcript of Fundamentos De ProgramacióN Unidad 1

Page 1: Fundamentos De ProgramacióN Unidad 1

Fundamentos de programación

Page 2: Fundamentos De ProgramacióN Unidad 1

Reconocimiento de objetos y clases en el mundo real.

La mayoría de los objetos en el mundo real tienen atributos (características que los describen). -Nombre-Edad-Sexo-etc.

Son las características que lo hacen ser y distinguir

Page 3: Fundamentos De ProgramacióN Unidad 1

Abstracción y Encapsulamiento La abstracción es la forma mas general de ver a un

objeto, sin meternos en su composición interior u otros componentes.

Expresa las características esenciales de un objeto, las cuales distinguen al objeto de los demás.

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.

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.

Page 4: Fundamentos De ProgramacióN Unidad 1

La POO y la complejidad del software

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

Page 5: Fundamentos De ProgramacióN Unidad 1

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

Page 6: Fundamentos De ProgramacióN Unidad 1

Agrupar elementos comunes (objetos) en clases.

La clase incluye en una unidad los atributos y los métodos.

Se pueden construir jerarquías de herencias de clases que hereden (reciban) lo que ya esta definido.

Lo anterior aumenta la modularidad. El programa esta formado por módulos o partes bien identificadas.

Comparada con otros paradigmas de programación, permite manejar de mejor manera la complejidad del software. Por lo siguiente:

Page 7: Fundamentos De ProgramacióN Unidad 1

Conceptos del ciclo de vida del SW

Es una sucesión de estados o fases por los cuales pasa un software a lo largo de su "vida".

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.

Page 8: Fundamentos De ProgramacióN Unidad 1

Etapas o fases del ciclo de vida del software

1 Definición objetivos del software2 Investigación de requisitos y factibilidad: recopilar y

formalizar los requisitos.3 Etapa de análisis y diseño general: requisitos generales

de la arquitectura del software.4 Diseño detallado: definición más precisa de cada módulo

o subconjunto del software.5 Programación e implementación: se programa lo

especificado en la etapa de diseño.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

7 Creación de la documentación: información sobre el software para los usuarios.

8 Mantenimiento: correctivo y continuo.

Page 9: Fundamentos De ProgramacióN Unidad 1

Especificaciones de Requerimientos

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.

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:

1.- Factibilidad Técnica 2.- Factibilidad Económica 3.- Factibilidad Operacional

Page 10: Fundamentos De ProgramacióN Unidad 1

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.

Page 11: Fundamentos De ProgramacióN Unidad 1

Diseño orientado a objetos

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.

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.

Page 12: Fundamentos De ProgramacióN Unidad 1

POO conceptos y características

Permite descomponer fácilmente un problema en subgrupos de partes relacionadas. Entonces, puede traducir estos subgrupos en unidades autocontenida llamadas Objetos.

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.

Page 13: Fundamentos De ProgramacióN Unidad 1

Elementos primordiales en el modelo de objetos

Consiste en aislar un elemento en su contexto de sus elementos que lo acompañan.

En programación , el termino se refiere al énfasis en el “¿que ase mas que el como lo hace ?”

Page 14: Fundamentos De ProgramacióN Unidad 1

Abstracción objetos

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.

Es uno de los medios más importantes, mediante el cual nos enfrentamos con la complejidad inherente al software

Page 15: Fundamentos De ProgramacióN Unidad 1

Encapsulamiento Objetos

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.

Page 16: Fundamentos De ProgramacióN Unidad 1
Page 17: Fundamentos De ProgramacióN Unidad 1

Modularidad Objetos

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.

Es más fácil la solución de “pequeños” módulos.

Este procedimiento de descomposición refleja el principio de “Divide y Vencerás”.

Page 18: Fundamentos De ProgramacióN Unidad 1
Page 19: Fundamentos De ProgramacióN Unidad 1

Jerarquía

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).

Las relaciones de herencia forman una estructura de árbol

Page 20: Fundamentos De ProgramacióN Unidad 1

Herencia

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).

Page 21: Fundamentos De ProgramacióN Unidad 1

Polimorfismo

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.

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.

Page 22: Fundamentos De ProgramacióN Unidad 1

El método se llama igual, por tener el mismo significado lógico.

Las llamadas a cada método serían parecidas a la forma:

Cuadrado.area()Rectángulo.area()Círculo.area()

Page 23: Fundamentos De ProgramacióN Unidad 1

Historia de los paradigmas en el desarrollo del software

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.

Metodologías que se aplican para el ciclo de vida del software (algunas):

Ciclo vida clásico o cascada. Modelo en espiral. Prototipos.

Page 24: Fundamentos De ProgramacióN Unidad 1

Beneficios del modelo de objetos y de la POO sobre otros paradigmas.

La programación orientada a objetos beneficia a los desarrolladores debido a que:

Los programas son fáciles de diseñar debido a que los objetos reflejan elementos del mundo real.

Las aplicaciones son más sencillas para los usuarios debido a que los datos innecesarios están ocultos.

Los objetos son unidades autocontenida. La productividad se incrementa debido a que puede

reutilizar el código. Los sistemas son fáciles de mantener y se adaptan a las

cambiantes necesidades de negocios.

Page 25: Fundamentos De ProgramacióN Unidad 1

Los LPOO proporcionan un rico conjunto de clases predefinidas que se pueden usar en las aplicaciones.

Reutilización. Las clases se construyen a partir de otras clases.

Fiabilidad. Productividad del desarrollador. Calidad. Mantenimiento. Costo. Escalabilidad. Adaptabilidad (mejor independencia e

interoperatividad).

Page 26: Fundamentos De ProgramacióN Unidad 1

Erika Carmona BrionesPaola Martinez Hernandez

Erick Cota SotoCesar Hurtado Renova