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

Slides:



Advertisements
Presentaciones similares
MODELOS ORIENTADOS A OBJETOS
Advertisements

Fundamentos de Diseño de Software INFT.1
INSTITUTO TECNOLOGICO DE MINATITLAN
Introducción a la Orientación a Objetos
Introducción a la Programación
DSOO - María Eugenia Valencia
Introducción 1 Puntos Clave –La orientación a objetos representa un cambio radical en los métodos tradicionales de creación de software –Los métodos tradicionales.
Fundamentos de Ingeniería de Software
Introducción a la programación orientada a aspectos.
POO Santiago, Mayo 2004 TRABAJO DE INVESTIGACIÓN POO Programación Orientada a Objetos CENAFOM Carolina Bravo V. Jaime Jofré B.
UNIVERSIDAD LATINA (UNILA) INTRODUCCION A LA PROGRAMACIÓN
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
Ingeniería del Software
PROGRAMACION ORIENTADA
Programas Son una serie o secuencia de instrucciones entendibles por los ordenadores que permiten la realización de las acciones o tareas para las que.
UNIDAD I. INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA.
U NIDAD III P ROGRAMACIÓN O RIENTADA A O BJETOS (POO) Facilitadora: Ing. Patricia Gómez.
METODOLOGIA DE LA PROGRAMACION
El paradigma de la orientación a objetos La programación orientada a objetos genera códigos eficientes y estandariza la metodología de programación, además.
Fundamentos de Programación
 El termino OO, significa que el software es organizado como una colección de objetos. Un objeto es un paquete de software que contiene datos y procedimientos.
Introducción a la programación Orientada a objetos
Laura Patricia Pinto Prieto Ingeniera de sistemas.
Ingeniería de Software

1 LENGUAJES DE PROGRAMACIÓN Javier Martín Centro Asociado de Móstoles UNED.
Ingeniería de Software Orientado a Objetos
Fundamentos de Programación
Introducción a la POO • ¿Qué es la programación orientada a objets (POO)? – Un “paradigma” de programación – Una forma de pensar acerca de los problemas.
DISEÑO DE SOFTWARE 1ª. Parte
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
Programación Orientada a Objetos
Diseño de algoritmos La computadora puede realizar procesos y darnos resultados, sin que tengamos la noción exacta de las operaciones que realiza. Con.
Fundamentos de programación Organización de una computadora.
Desarrollo de aplicaciones para ambientes distribuidos
Metodologías Orientadas a Objetos Maestría de Ingeniería Telemática Universidad del Azuay Sesión 2.
CONCEPTOS BÁSICOS Diseño de Sistemas.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Introducción a los SOs.
INSTITUTO TECNOLOGICO DE MINATITLAN ASIGNATURA: FUNDAMENTOS DE PROGRAMACION DOCENTE: JOSE ANGEL TOLEDO ALVAREZ ALUMNA: ALEJANDRA OSORIO ARVISU SEMESTRE:
¿Qué son Los Lenguajes de Programación?
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
Conceptos Básicos de Informática
Facultad de Ingeniería
TEMA 9: DIAGRAMA DE CLASE EN UML
Programación Orientada a Objeto
PROGRAMACION ORIENTADA A OBJETOS
Metodología de la programación
Prof. Flor Narciso Departamento de Computación
Elaboración de algoritmos usando lógica de programación
POO U1: INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS.
Ing. Esp. Ricardo Cujar. Programación Orientada a Objetos  Modelo de desarrollo de software.  Modo de pensar del hombre y no de la máquina.  Abstracción.
Actividades en el Proceso de desarrollo de Software
Unidad TemáticaI. Conceptos Básicos Horas Prácticas10 Horas Teóricas8 Horas Totales18 Objetivo El alumno determinará las entradas, procesos y salidas.
PROGRAMACIÓN IV INTRODUCCIÓN.
Ing. Johanna Macias Algoritmo, Estructura y Programación III.
Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 3 Programas.
 Panorama General Fundamentos de Programación M.I. Jaime Alfonso Reyes Cortés.
Programación Orientada a Objetos: CLASES Y OBJETOS
La Programación Orientado a Objetos
Introducción AOO. Contenido - Introducción - Repaso de Orientación a Objetos - UML - Casos de Uso.
CICLO DE VIDA DE UN SOFTWARE. Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados, que forman parte de.
Prof. Manuel B. Sánchez. Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No es mejor uno.
Programación Orientada a Objetos Unidad 5. Los objetos son entidades que combinan estado Contiene toda la información denominados atributos REPASO Cada.
2015-BM5A. Introducción Durante años, los programadores se han dedicado a construir aplicaciones muy parecidas que resolvían una y otra vez los mismos.
PARADIGMA viene del Griego Paradeima = Modelo. Un paradigma es el resultado de los usos, y costumbres, de creencias establecidas de verdades a medias,
:: Prof. Yeniffer Peña Introducción a JAVA Presentación Programación I.
La programación modular es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible.
VERIFICACIÓN Y VALIDACIÓN DE SISTEMAS 3.10 Fase de manejo de requerimientos 4.1 Modelado de pruebas en UML Ponente: ing. Alejandro tapia vazquez.
PROGRAMACION ORIENTADA A OBJETOS
Transcripción de la presentación:

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

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

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) SUN desarrolla el lenguaje Java 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 P.O.O. vs Programación Estructurada