La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

1 Introducción a la Programación Orientada a Objetos Programación Orientada a Objetos Departamento de Sistemas Universidad del Cauca 2006.

Presentaciones similares


Presentación del tema: "1 Introducción a la Programación Orientada a Objetos Programación Orientada a Objetos Departamento de Sistemas Universidad del Cauca 2006."— Transcripción de la presentación:

1 1 Introducción a la Programación Orientada a Objetos Programación Orientada a Objetos Departamento de Sistemas Universidad del Cauca 2006

2 2 HISTORIA ¿QUÉ SE PUEDE CALIFICAR COMO ORIENTADO A OBJETOS? QUÉ ES LA PROGRAMACIÓN ORIENTADA A OBJETOS? MANEJO DE LA COMPLEJIDAD Complejidad del Software Flexibilidad del Software Factores de calidad en el Software ABSTRACCIÓN Mecanismos de Abstracción PROGRAMACIÓN ESTRUCTURADA PROGRAMACIÓN ORIENTADA A OBJETOS POO Vs PROGRAMACIÓN ESTRUCTURADA Agenda

3 3 Historia A lo largo de la historia de la programación, los lenguajes y las metodologías han pasado de una relativa simplicidad a una complejidad creciente. Inicialmente, se pensaba mas en términos de la estructura del lenguaje en vez de la estructura del problema. Así, se requiere de mucho esfuerzo en resolver un problema pensando principalmente en como representarlo en el lenguaje escogido. La programación orientada a objetos pretende aportar simplicidad a la tarea de programación de grandes aplicaciones. Hoy en día, la orientación a objetos es fundamental en el desarrollo de software, sin embargo, esta tecnología no es nueva, sus orígenes se remontan a la década de los años sesenta. Imperativa Estructurada Modular Orientada a Objetos Orientada a Agentes

4 4 Historia Concepto de objeto aparece a finales de los años 60 en el lenguaje Simula-67 (desarrollado en Noruega). 1970 Smalltalk, lenguaje de programación orientada a objetos por Excelencia, no gozó de popularidad pero su entorno influyó notablemente otros desarrollos (Macintosh). 1980 Entorno sencillo para el lenguaje de programación Smalltalk

5 5 Historia 80’s Se incorporo esta tecnología en lenguajes existentes (C++, Turbo Pascal, etc.) 90’s= Los objetos se hacen omnipresentes: Sistemas operativos orientados a objetos, Entornos de desarrollo orientado a objetos con muchas facilidades para la programación (método visual). 1991-1995 SUN desarrolla el lenguaje Java. 1997 se estandariza el UML (Consolidación de la OO). En los últimos años, Microsoft desarrolla la plataforma.NET y el lenguaje C#, integrando Java y C++.

6 6 Qué es la Programación Orientada a Objetos? Dado que la POO se basa en la idea natural de la existencia de un mundo lleno de objetos y que la resolución del problema se realiza en términos de objetos. 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 se tiene que aprender a pensar las cosas de una manera distinta, para escribir los programas en términos de objetos, propiedades, métodos y otros conceptos.

7 7 Qué se considera orientado a objetos? La orientación a objetos se refiere a una metodología de desarrollo de software. Esta metodología es una nueva forma de enfocar el diseño y la estructura de los programas (ingeniería del software), así como de escribirlos (programación). Los sistemas de manipulación de objetos (por ejemplo, interfaces gráficas o programas de dibujo que manejan objetos gráficos) no son necesariamente sistemas orientados a objetos.

8 8 Todo software es sustancialmente complejo, requiere de técnicas y procedimientos especiales para desarrollar un sistema efectivo que pueda ser reutilizado y al que se le pueda dar un correcto soporte La complejidad se debe a: Complejidad en el dominio del problema Complejidad de gestionar el proceso de desarrollo Flexibilidad a través del software Manejo de la Complejidad

9 9 Los requisitos cambian constantemente, antes, durante y después de su desarrollo. Al usuario le es difícil precisar sus necesidades para que el desarrollador las entienda. El usuario y el desarrollador pueden tener diferencias en la solución del problema. Gran cantidad de requisitos. Definición vaga de requerimientos; las ideas del usuario son poco claras. Las perspectivas del usuario y el desarrollador son diferentes. Problemas difíciles de definir.

10 10 En la POO es mas fácil el diseño y la implementación del sistema. Los programas grandes están descompuestos en muchos módulos, por lo cual su mantenimiento es complicado. Un sistema grande tiende a evolucionar con el tiempo. Es difícil la Coordinación y comunicaciones entre el equipo de desarrolladores, sobre todo cuando los programadores se encuentran en diferentes partes. Proceso de desarrollo puede ser complejo.

11 11 La verificación del software es poco viable. Expansión del sistema agregándole variedad de aplicaciones. Con POO se puede diseñar cualquier problema. Mejor capacidad del programador para administrar y modificar sistemas mientras se desarrollan. Se pueden añadir nuevos cambios en los tipos de datos sin modificar código existente.

12 12 Factores de Calidad del Software FUNCIONALIDAD: Conjunto de posibilidades que proporciona un sistema. CORRECCION: Capacidad de los productos software para realizar con exactitud sus tareas, tal y como se definen en las especificaciones. REUTILIZACION O REUSABILIDAD: Facilidad de los elementos de software de servir para la construcción de muchas aplicaciones diferentes. COMPATIBILIDAD: Facilidad de combinar unos elementos de software con otros. EFICIENCIA: Capacidad de los sistemas software para exigir la menor cantidad posible de recursos hardware, tales como tiempo del procesador, espacio ocupado de la memoria interna y externa o ancho de banda utilizado en los dispositivos de comunicación.

13 13 Factores de Calidad del Software ROBUSTEZ: Capacidad de los sistemas software de reaccionar apropiadamente ante condiciones excepcionales. EXTENSIBILIDAD: Facilidad de adaptar los productos de software a los cambios de especificación. PORTABILIDAD: (Transportabilidad): Facilidad de transferir los productos software a diferentes entornos hardware y software. FACILIDAD DE USO: Facilidad con la cual personas con diferentes formaciones y aptitudes pueden aprender a usar los productos software y aplicarlos a la resolución de problemas. También cubre la facilidad de instalación, de operaciones y de supervisión. “No se suponga que se conoce al usuario, realmente no lo conoce” INTEGRIDAD: Capacidad de los sistemas software de proteger sus diversos componentes (Programas, datos, etc.) contra modificaciones y accesos no autorizados.

14 14 Es el mejor mecanismo para manejar la complejidad. Es la capacidad para encapsular y aislar la información del diseño y la implementación. IDEA GENERAL: Un programa no es mas que una descripción abstracta de un fenómeno que ocurre en el mundo real. Ej: Fenómenos físicos, imitación de un comportamiento humano, cálculos financieros, etc. Mecanismos de abstracción: Estructuras de control Procedimientos: Módulos Tipos Abstractos de Datos – TAD Objetos (POO) Abstracción

15 15 A lo largo del tiempo las técnicas de programación se han ido centrando cada vez con un mayor nivel de abstracción

16 16 Estructuras de Control Describen el orden en que se ejecutan las sentencias o grupos de sentencias. Permiten abstraer las condiciones comunes para cambiar la secuencia de ejecución. Descomposición “descendente” de grupos de sentencias. DESVENTAJA: Código Spaghetti

17 17 Procedimientos DESVENTAJA: Variables locales y globales con nombres idénticos. Permiten tareas repetitivas. Se reúnen en una sola entidad. Permiten la reutilización de código. Es el primer mecanismo de abstracción. Permiten la primera posibilidad de ocultar información, ya que no necesitan detalles de los otros programas.

18 18 Módulos Técnica que permite dividir Datos y Procedimientos en una parte privada y una parte pública. Permite hacer un mejor manejo del Criterio de ocultación de información: “si no se necesita, no tiene acceso”. DESVENTAJA: No permite hacer instancias (capacidad de hacer múltiples copias de las zonas de datos).

19 19 Tipos Abstractos de Datos - TAD Un TAD en mas que todo un concepto teórico. Es una estructura que agrupa datos diferentes bajo un nombre; datos que están relacionados lógicamente aunque no sean del mismo tipo y en conjunto representan un determinado concepto. Es un Tipo de dato definido por el programador. Se maneja similar a un tipo de dato del sistema (variables - instancias), ya que se pueden hacer múltiples instancias de él. Contiene: Valores del datos del sistema (variables). Operaciones primitivas (Operaciones para manipular los datos) Protección de los datos (solo se pueda operar los datos mediante las operaciones definidas en el TAD)

20 20 Los mecanismos de la POO son: Objetos Mensajes y Métodos Clases e Instancias Jerarquías: Agregación y Herencia Encapsulamiento Polimorfismo Persistencia Computador Mariposa Persona Libro Telescopio Carro Guitarra Objetos Es una implementación de un TAD al que se añaden: Compartición de código. Reutilización. Como idea fundamental se busca la comunicación de objetos a través de mensajes.

21 21 Topología de programas estructurados: Programación Estructurada Trabaja bajo el concepto de Descomposición algorítmica. Diseño "Top-down". Se basa en la identificación de las operaciones, en la descripción del problema y su expresión en términos de operaciones más sencillas. Estructura de un módulo: Datos de entrada, Datos de salida, Descripción de la funcionalidad.

22 22 Programación Orientada a Objetos Método que permite resolver un problema alrededor de abstracciones representadas por objetos. Es una serie de normas de programación de manera que otras personas, diferentes al programador, puedan reutilizar código y adelantar su trabajo. La POO es una Programación Genérica, ya que Permite definir y manipular clases y funciones con tipos de datos genéricos (Plantillas: Propiedad integrada a los lenguajes de programación).

23 23 La POO no es difícil, pero es una manera especial de pensar, a veces subjetiva de quien la programa, de manera que la forma de hacer las cosas puede ser diferente según el programador. Aunque se puedan hacer los programas de formas distintas, no todas ellas son correctas, lo difícil no es programar Orientado a Objetos, sino programar bien. Programar bien es importante porque así se pueden aprovechar todas las ventajas de la POO. Programación Orientada a Objetos

24 24 P.O.O. vs Programación Estructurada


Descargar ppt "1 Introducción a la Programación Orientada a Objetos Programación Orientada a Objetos Departamento de Sistemas Universidad del Cauca 2006."

Presentaciones similares


Anuncios Google