Programación Orientada a Objetos

Documentos relacionados
1. Computadores y programación

INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA

Nombre de la asignatura: Programación Básica. Créditos: Objetivo de aprendizaje

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Tema 2 Introducción a la Programación en C.

Diseño arquitectónico 1ª edición (2002)

LÓGICA DE PROGRAMACIÓN

Metodologías en la Ingeniería del Software Métodos Orientados a Objetos

PROGRAMACION ORIENTADA A OBJETOS EN C++

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Capítulo 16. Diagrama de Clases UML

Algoritmos y programas. Algoritmos y Estructuras de Datos I

Conceptos de Programación Orientada a Objetos

Herramientas de Programación. M.C. Juan Carlos Olivares Rojas

Diagramas de secuencia

1

Universidad Centroccidental Lisandro Alvarado. Decanato de Ciencias y Tecnología Departamento de Sistemas

Introducción a la programación orientada a objetos

Fundamentos de Programación Visual Basic

POST REQUISITO: CATEGORIA: Obligatorio SEMESTRE: Primer Semestre 2015 HORAS POR SEMANA DEL LABORATORIO: DIAS QUE SE IMPARTE EL LABORATORIO:

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

CAPITULO 1 INTRODUCCION AL PROYECTO

La Herencia: Teoría (1)

RESUMEN DE LAS DIAPOSITIVAS DE BASE DE DATOS 1

ESCUELA SUPERIOR POLITECNICA DEL LITORAL PROGRAMA DE ESTUDIOS

Algoritmos y solución de problemas. Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal

2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje.

Ingeniería de Requerimientos. requiere de un Sistema de Software.

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS

Contenido. 1. El proceso 2. Los modelos 3. Los diagramas 4. Ejemplo

BLOQUE I: HOJA DE CÁLCULO

Las redes semánticas intentan trasladar esa afirmación a un formalismo Una red semántica será un grafo donde:

Resultado de Aprendizaje:

Descripción y Contenido del Curso. Programación C++ Capacity Academy.

3. DOCUMENTACIÓN 3.1. DOCUMENTACIÓN DE APLICACIONES. OBJETIVOS PARA MODIFICAR HACE FALTA COMPRENDER/ESTUDIAR:

ESCUELA DE INFORMÁTICA

PROGRAMA INSTRUCCIONAL

MASTER PROFESIONAL C# 5 Y ASP.NET MVC 5

Computación Avanzada Clase 3. Mauricio Hidalgo Barrientos

Guía práctica de estudio 05: Diagramas de flujo

PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY

UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO

Nombre de la asignatura: Algoritmos y Lenguajes de programación.

Desarrollo de aplicaciones con JAVA, JCreator, JDeveloper NetBeans

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

Introducción a la Orientación a Objetos

PROGRAMACIÓN UNIDADES

Fundamentos de programación y Bases de Datos

Planificaciones Algoritmos y Programación I. Docente responsable: AZCURRA DIEGO ANDRES. 1 de 5

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Diseño Estructurado de Algoritmos

Análisis y Diseño de Sistemas

Universidad Católica de Santiago del Estero Facultad de Matemática Aplicada Carrera de Ingeniería en Electrónica

DIAGRAMAS DE UML DIAGRAMAS DE CASO DE USO

Capítulo 4. Lógica matemática. Continuar

Tema: Herramientas UML, Análisis y diseño UML

Aprender a desarrollar con JavaScript

TEMA 7: INGENIERIA DEL SOFTWARE.

Diagramas de interacción

Tema 3: Programación orientada a objetos (I)

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

Threads, SMP y Microkernels. Proceso

Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET

Evaluación Diagnóstico puesta en común. Escuela Técnica ORT - TIC

Instituto Schneider Electric de Formación

JAVA -INTRODUCCIÓN AL LENGUAJE

Introducción a la Operación de Computadoras Personales

Guía del Curso Experto en Microsoft Excel 2016, VBA y Business Intelligence

Requerimientos de Software

Una Clase: define un grupo de objetos que tienen propiedades similares y se comportan de manera similar.

Profesor(a): M. A. Zeferino Galarza Hernández

Universidad Ricardo Palma

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

La eficiencia de los programas

Guía del Curso Certificación It en Microsoft Excel VBA para Excel: Macros and Graphics Expert

ALGORITMOS, ESTRUCTURAS Y PROGRAMACION

FUNCIONAMIENTO DEL ORDENADOR

Sistemas Operativos. Curso 2014 Estructura de los sistemas operativos

Capítulos 2 y 5: Modelación con UML y Modelo Objeto

2.2 Nombres, Ligado y Ámbito

Tema 1. Introducción a la arquitectura de computadores: diseño, coste y rendimiento

Casos de Uso. Introducción. Actores

Introducción a Swing. Taller de Programación 2016

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

Procesadores de lenguaje Tema 6 La tabla de símbolos

Diagramas de secuencia

Algoritmos y Lenguajes de Programación

UNIÓN INTERNACIONAL DE TELECOMUNICACIONES RED DIGITAL DE SERVICIOS INTEGRADOS (RDSI) ESTRUCTURA GENERALES

CLA. Diagramas de clases en Métrica V3

Principios de Computadoras II

CASOS DE USO Exploración de Requerimientos

Tutorial de C# Delegados y Eventos. Por: Óscar López, M.Sc.

Programación Avanzada. Desarrollo Orientado a Objetos basado en UML

De Desempeño De Conocimiento SABERES ESENCIALES CONTENIDOS RUTA FORMATIVA Saber Conocer Nociones, Proposiciones, Conceptos Categorías

Transcripción:

Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Departamento de Computación Programación Orientada a Objetos Algoritmos y Programación II Junio, 2004 Las tecnologías de objetos hoy Desde los 70 hasta hoy los lenguajes de programación dirigidos a objetos (u orientados a objetos) han obtenido un éxito y una difusión sin precedentes. Hoy en día los lenguajes OO son claramente predominantes sobre los lenguajes de programación tradicionales Multitud de librerías y desarrollos tecnológicos actuales están basados en objetos. Los métodos de diseño orientado a objetos de aplicaciones están dominando los tradicionales. Conocer y dominar los conceptos de la POO es fundamental 1

La evolución de la programación de bajo nivel de alto nivel estructurados Tipos abstractos de datos Programación orientada a objetos Ensamblador Basic, COBOL Modula 2, Pascal, C de bajo nivel: Cercanos al CPU. Difíciles para el programador. Modula 2, Pascal, C SmallTalk, C++, Java Gran cantidad de instrucciones para realizar una tarea. Justificables por la poca velocidad y memoria principal de los primeros computadores. de bajo nivel de alto nivel estructurados Tipos abstractos de datos Programación orientada a objetos Ensamblador Basic, COBOL Modula 2, Pascal, C Modula 2, Pascal, C SmallTalk, C++, Java de alto nivel. Mayor nivel de abstracción y acercamiento al hombre. Inconvenientes: Los proyectos grandes resultan difíciles de desarrollar, mantener y depurar. Dificultades para la programación en equipo. Escaso grado de reutilización. Variables accesibles desde cualquier punto Saltos incondicionales: GOTOs. 2

de bajo nivel de alto nivel estructurados Tipos abstractos de datos Programación orientada a objetos Ensamblador Basic, COBOL Modula 2, Pascal, C Modula 2, Pascal, C SmallTalk, C++, Java estructurados. Intentan solventar los problemas detectados en los lenguajes tradicionales. Se eliminan los saltos incondicionales y se adopta una estrategia modular, donde cada variable tiene un ámbito en la cual es accesible. Aparecen los procedimientos, como cajas negras que reciben datos, realizan operaciones y devuelven resultados. La solución a un problema se plantea en términos de procedimientos, cada uno de los cuales resuelve un subproblema. estructurados. Ventajas: Se facilita la gestión de grandes proyectos software. La programación modular facilita la programación en equipo. Facilita la reutilización del código en distintos proyectos. Surgen algunas dudas: Cómo se subdivide un problema en subproblemas. Cómo se identifican. Hasta cuando hay que subdividir. Si un procedimiento resuelve parte de un problema mayor. Será fácil que pueda reutilizarse en otros problemas, o será demasiado dependiente y específico de aquel Nueva forma de programación spaghetti: muchos procedimientos que se llaman entre ellos. 3

Programación mediante TDAs Un TDA agrupa en una única unidad, los datos y los procedimientos que lo manipulan. Cada TDA se implementa en un módulo de programa por separado, dejando visible solo la interfaz y ocultando los detalles de implementación. Programación mediante TDAs Ventajas: Los TDAs son fácilmente identificables en un problema: representan entidades matemáticas (vector, punto, polinómio, función, etc.) o estructuras de datos (pilas, colas, listas, etc.). Un TDA no resulta específico de ningún problema, por tanto es fácil su reutilización. Los TDAs son elegantes, legibles y fáciles de depurar. Inconvenientes: Un TDA no es en general una estructura del lenguaje de programación, por tanto es fácil cometer errores en su construcción. Repetición de código entre TDAs similares. Tradicional limitación a estructuras de datos y objetos matemáticos. 4

Programación orientada a objetos Los TDAs se formalizan y se extienden con nuevas ideas, pasando a llamarse objetos. Nuevos mecanismos: herencia, polimorfismo, etc. Aparecen lenguajes que los soportan. El grado de abstracción es el más alto posible, los objetos representan conceptos del problema que se intenta resolver: clientes, productos, etc. Programación orientada a objetos Ventajas: El desarrollo de aplicaciones es muy sencillo e intuitivo. El código es muy elegante, fácil de comprender y mantener. Los objetos son completamente independientes, por tanto la facilidad para la programación en equipo y la reutilización son muy altos. Inconvenientes: Al principio resulta difícil resolver un problema mediante objetos, supone un cambio de mentalidad respecto a la programación tradicional. 5

Entidades y objetos Nuestra mente estructura la realidad en elementos que denominaremos ENTIDADES, que son las unidades básicas del razonamiento o la memoria. Concepto Libro Conocimiento Descripción física Opinión Comparación con otras entidades... La POO intenta que el diseño de los programas sean un reflejo de la realidad. Entidad Concepto Libro Objeto Identificador Libro Conocimiento Características Conocimiento descriptivo (atributos) color = azul peso = 250 gramos paginas = 320 Conocimiento operacional (métodos u operaciones) abrir cerrar ir a página (n) leer página (n) 6

Noción de Objeto Un objeto esta definido por la información que éste maneja, y por su comportamiento. En OO, se dice que un objeto encapsula información y comportamientos: Las informaciones son los datos incluidos en el objeto, llamados también atributos, variables de instancias o datos. Los comportamientos son los tratamientos aplicables al objeto, llamados también métodos u operaciones. Atributos Atributos Nombre Nombre Edad Edad Empresa Empresa Métodos Métodos CambiarEdad CambiarEdad CambiarEmpresa CambiarEmpresa La encapsulación de un objeto Persona Noción de Clase y de Instancia Para manejar la encapsulación, todos los objetos con las mismas propiedades (atributos y comportamientos) se reúnen en una familia, a la que se le denomina clase. Donde los objetos que la conforman son las instancias de la clase. Una clase describe las propiedades de sus instancias: Constituye una especie de molde para la creación de objetos. Esta creación se denomina instanciación. Recoge los tratamientos aplicables a esos objetos. Cada tratamiento corresponde a un método que se describe por una serie de líneas de código 7

Noción de Clase y de Instancia La noción de clase puede asimilarse, con la noción de tipo. Una clase define las propiedades de todos los objetos que tiene asociados. Un objeto es una materialización de su clase. Los objetos de una misma clase tienen todos los atributos de su clase, y estos atributos pueden tener valores diferentes, según las instancias. El valor de los atributos es propio de cada objeto. Por el contrario, todas las instancias de una misma clase comparten los comportamientos definidos en la clase. Noción de Clase y de Instancia Nombre: Pedro Edad: 30 años Empresa: UC Nombre: José Edad: 40 años Empresa: UCV Instanciación Instanciación Atributos Atributos Nombre Nombre Edad Edad Empresa Empresa Métodos Métodos CambiarEdad CambiarEdad CambiarEmpresa CambiarEmpresa La clase Persona y sus instancias 8

Representación gráfica (notación UML) de una clase Libro título autor tamaño número de páginas abrir cerrar ir a página leer página Atributos Métodos Representación gráfica de un objeto. b:libro título = Programación orientada a objetos autor = Timothy Budd tamaño = 25x20 número de páginas = 410 Control de los Mensajes En OO, se envía un mensaje a un objeto que lo recibe, y éste puede reaccionar de 2 maneras: Si el mensaje corresponde a un tratamiento definido en la clase del objeto, el protocolo del método correspondiente se ejecuta. El objeto ha respondido en este caso al mensaje que se le ha enviado Sino, el objeto rechaza el mensaje señalando un error CambiarNombre( Rosa ) Error No comprendo el mensaje! Objeto Persona: la Sra. Ana 9

Control de los Mensajes Se puede considerar que un objeto es responsable del control y ejecución de los mensajes que se le aplican. Todo objeto que recibe un mensaje reaciona inmediatamente al mismo, y avisa al programador la validez del mismo. El comportamiento de un objeto, es responsabilidad del propio objeto, lo que permite detectar de una forma rápida y fácil los errores. Resúmen Programa OO Colección estructurada de clases Clase Implementación de un TDA Objeto Una instancia de una clase 10

Resúmen Objeto Es una instancia de una clase, creada en tiempo de ejecución Es una estructura de datos formada por tantos campos como atributos tiene la clase. El estado de un objeto viene dado por el valor de los campos Los métodos permiten consultar y modificar el estado del objeto. Durante la ejecución de un programa OO se crearán un conjunto de objetos. Resúmen Un METODO está compuesto por: Cabecera: Identificador y Parámetros Cuerpo: Secuencia de instrucciones Qué instrucciones podemos incluir en el cuerpo de un método? Asignación Condicional Iteración Invocación a otro método = Mensajes Creación de objetos Un método se ejecutará como respuesta a un mensaje. 11

Resúmen Creación de objetos en C++ Inicialización implícita mediante CONSTRUCTORES que realizan la inicialización después de que los objetos son creados. Un constructor: procedimiento especial con el mismo nombre que la clase Se invoca siempre que se crea un objeto de la clase: No tiene valores de retorno Los objetos sustituyen a los TDAs tradicionales? TDAs Abstracción, encapsulación y ocultación de información. Alto nivel de reutilización y facilidades para la programación en equipo. No existen lenguajes de programación orientados a TDAs. Pueden ser implementados en cualquier lenguaje estructurado como C. Son sencillos y en general eficientes. Objetos Abstracción, encapsulación, ocultación de información, herencia, polimorfismo, etc. Altísimo nivel de reutilización y facilidades para la programación en equipo. Requieren lenguajes de programación orientados a objetos. Pueden ser complejos y presentar problemas de eficiencia en ciertos casos. 12