Este documento introduce conceptos clave de la programación orientada a objetos como clases, objetos, encapsulamiento, herencia y polimorfismo. Explica que una clase define los datos y comportamientos de un objeto y que la herencia permite que las subclases hereden atributos y métodos de las clases padre. También cubre temas como creación y destrucción de objetos, ejecución de métodos y encapsulamiento.
Este documento presenta una introducción a la programación orientada a objetos. Explica conceptos clave como clases, objetos, encapsulamiento, herencia y polimorfismo. También describe los paradigmas de programación, lenguajes orientados a objetos, y las ventajas y desventajas de este paradigma.
El documento presenta una introducción a los conceptos básicos de análisis y diseño orientado a objetos. Explica conceptos como objetos, clases, encapsulamiento, herencia y polimorfismo. También introduce los procesos de análisis y diseño, y menciona las metodologías RUP y UML utilizadas en el desarrollo de software orientado a objetos.
Este documento presenta información sobre un curso de programación orientada a objetos. Incluye detalles sobre la forma de evaluación, exámenes diagnósticos, y conceptos básicos de POO como clases, objetos, herencia, encapsulamiento y polimorfismo. También presenta ejemplos de diagramas de clases usando el lenguaje de modelado unificado.
Este documento presenta una introducción a varias metodologías de ingeniería de software como el Proceso Personal de Software, el Proceso de Equipo de Software, Programación Extrema, el Proceso Unificado Racional y el modelo en V. Explica los conceptos clave de un proceso de desarrollo iterativo e incremental y describe las fases y actividades clave del Proceso Unificado Racional como concepción, elaboración, construcción y transición. También destaca que el proceso está guiado por casos de uso, centrado en la arquitectura y es iterativo e incremental.
Este documento presenta una introducción a varias metodologías de ingeniería de software como el Proceso Personal de Software, el Proceso de Equipo de Software, Programación Extrema, el Proceso Unificado Racional y el modelo en V. Explica los conceptos clave de un proceso de desarrollo iterativo e incremental y describe las fases y actividades clave del Proceso Unificado Racional como concepción, elaboración, construcción y transición. También destaca que el proceso está guiado por casos de uso, centrado en la arquitectura y es iterativo e incremental.
Este documento presenta el plan anual didáctico para la asignatura de Programación del segundo año de bachillerato en el Colegio Distrito Metropolitano. El plan describe los objetivos de aprendizaje, la distribución de las unidades temáticas a lo largo del año escolar, las habilidades que desarrollarán los estudiantes, y los recursos y métodos de enseñanza y evaluación que se utilizarán.
Este documento presenta un banco de preguntas y respuestas para un examen oral sobre programación orientada a objetos. Incluye preguntas sobre conceptos básicos como las fases del desarrollo de software, objetos, clases, herencia y polimorfismo en POO. También contiene preguntas sobre lenguajes de programación como Java, C++ y JavaScript. El documento proporciona respuestas breves a cada pregunta para ayudar a la estudiante a prepararse para el examen oral.
El documento analiza el Proyecto TETRAD V, un sistema informático que crea, simula y predice modelos causales y estadísticos. El proyecto se compone de tres capas principales: tetrad-lib, tetrad-gui y causal-cmd. La clase PCStable implementa el algoritmo de Peter-Clark y es fundamental para generar simulaciones. Otras clases como TetradLogger, GraphSearch e IndependenceTest también juegan un papel importante en el funcionamiento del proyecto.
Este documento presenta una introducción a la programación orientada a objetos. Explica conceptos clave como clases, objetos, encapsulamiento, herencia y polimorfismo. También describe los paradigmas de programación, lenguajes orientados a objetos, y las ventajas y desventajas de este paradigma.
El documento presenta una introducción a los conceptos básicos de análisis y diseño orientado a objetos. Explica conceptos como objetos, clases, encapsulamiento, herencia y polimorfismo. También introduce los procesos de análisis y diseño, y menciona las metodologías RUP y UML utilizadas en el desarrollo de software orientado a objetos.
Este documento presenta información sobre un curso de programación orientada a objetos. Incluye detalles sobre la forma de evaluación, exámenes diagnósticos, y conceptos básicos de POO como clases, objetos, herencia, encapsulamiento y polimorfismo. También presenta ejemplos de diagramas de clases usando el lenguaje de modelado unificado.
Este documento presenta una introducción a varias metodologías de ingeniería de software como el Proceso Personal de Software, el Proceso de Equipo de Software, Programación Extrema, el Proceso Unificado Racional y el modelo en V. Explica los conceptos clave de un proceso de desarrollo iterativo e incremental y describe las fases y actividades clave del Proceso Unificado Racional como concepción, elaboración, construcción y transición. También destaca que el proceso está guiado por casos de uso, centrado en la arquitectura y es iterativo e incremental.
Este documento presenta una introducción a varias metodologías de ingeniería de software como el Proceso Personal de Software, el Proceso de Equipo de Software, Programación Extrema, el Proceso Unificado Racional y el modelo en V. Explica los conceptos clave de un proceso de desarrollo iterativo e incremental y describe las fases y actividades clave del Proceso Unificado Racional como concepción, elaboración, construcción y transición. También destaca que el proceso está guiado por casos de uso, centrado en la arquitectura y es iterativo e incremental.
Este documento presenta el plan anual didáctico para la asignatura de Programación del segundo año de bachillerato en el Colegio Distrito Metropolitano. El plan describe los objetivos de aprendizaje, la distribución de las unidades temáticas a lo largo del año escolar, las habilidades que desarrollarán los estudiantes, y los recursos y métodos de enseñanza y evaluación que se utilizarán.
Este documento presenta un banco de preguntas y respuestas para un examen oral sobre programación orientada a objetos. Incluye preguntas sobre conceptos básicos como las fases del desarrollo de software, objetos, clases, herencia y polimorfismo en POO. También contiene preguntas sobre lenguajes de programación como Java, C++ y JavaScript. El documento proporciona respuestas breves a cada pregunta para ayudar a la estudiante a prepararse para el examen oral.
El documento analiza el Proyecto TETRAD V, un sistema informático que crea, simula y predice modelos causales y estadísticos. El proyecto se compone de tres capas principales: tetrad-lib, tetrad-gui y causal-cmd. La clase PCStable implementa el algoritmo de Peter-Clark y es fundamental para generar simulaciones. Otras clases como TetradLogger, GraphSearch e IndependenceTest también juegan un papel importante en el funcionamiento del proyecto.
Este documento presenta una introducción a la programación orientada a objetos en C++. Explica conceptos clave como clases, objetos, encapsulamiento, herencia y polimorfismo. Luego proporciona un ejemplo de clase para calcular las notas de los alumnos en una asignatura según diferentes porcentajes para prácticas, exámenes parciales y finales.
Este documento describe conceptos básicos de programación en C y C++. Explica que el software se divide en software del sistema y de aplicaciones. Menciona que el sistema operativo controla las operaciones de la computadora y permite ejecutar programas. También describe lenguajes de programación, compiladores, estructura básica de un programa en C, y tipos de variables.
Este documento describe conceptos básicos de programación en C y C++. Explica que el software se divide en software del sistema y de aplicaciones. Menciona que el sistema operativo controla las operaciones de la computadora y permite ejecutar programas. También describe lenguajes de programación, compiladores, estructura básica de un programa en C, y tipos de variables.
Este documento proporciona información sobre un curso de programación en C/C++. Explica conceptos básicos como la estructura de un programa en C, variables, tipos de datos, funciones, y sentencias de control. También cubre temas como arrays, strings, punteros, memoria dinámica, y operadores de bits. El curso parece incluir lecciones sobre la historia de los lenguajes de programación, programación estructurada vs. orientada a objetos, y el uso de librerías estándar.
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...Jordi Cabot
No hay suficientes programadores profesionales para todo el software que necesita nuestra sociedad. Aquí propongo una serie de soluciones alternativas.
El documento presenta una introducción a la programación orientada a objetos usando C++. Explica conceptos clave como objetos, clases, atributos y métodos. Incluye ejemplos de cómo definir una clase Televisor en C++ con sus atributos y métodos. También recomienda entornos de desarrollo para C++ en Linux y Windows y presenta un ejemplo de programa "Hola Mundo" y otro que crea una clase Persona.
Desarrollo de Software fundamentos POO 1era Parte subido JHSjohnny herrera
El documento presenta una introducción a la programación orientada a objetos usando C++. Explica conceptos clave como objetos, clases, atributos y métodos. Incluye ejemplos de cómo definir una clase Televisor en C++ con sus atributos y métodos. También recomienda entornos de desarrollo para C++ en Linux y Windows y presenta un ejemplo de programa "Hola Mundo" y otro que crea una clase Persona.
El documento describe la metodología del Proceso Unificado de Desarrollo de Software (PUD). El PUD es un proceso iterativo e incremental que consta de cuatro fases: inicio, elaboración, construcción y transición. Cada fase tiene actividades específicas como el modelado del negocio, la captura de requisitos, el análisis, el diseño e implementación y las pruebas, con el objetivo de desarrollar un producto de software de manera iterativa.
Abstracción y Encapsulación de en la programación Orientada a objetosJoseEstebanTelloEstr
El documento introduce el concepto de programación orientada a objetos y tipos de datos abstractos. Explica que un tipo de dato abstracto define un conjunto de valores y operaciones sin exponer su representación interna. Luego, presenta un caso de estudio para diseñar e implementar un tipo de dato abstracto racional que represente números racionales a través de un par de enteros para el numerador y denominador.
Este documento introduce conceptos básicos de la programación orientada a objetos. Explica que la orientación por objetos organiza el software como una colección de objetos discretos que encapsulan datos y procesamiento. También define conceptos clave como clases, métodos, herencia y polimorfismo.
El documento describe un programa educativo para ingenieros de software en Sonora, México. El programa se crea para satisfacer la demanda de profesionales de software debido a iniciativas para convertir a Sonora en un centro de desarrollo de software. El objetivo del programa es formar profesionales comprometidos, innovadores y emprendedores capaces de desarrollar soluciones de software de calidad. El programa cubre temas como análisis y diseño de software, administración de proyectos, construcción de software y prácticas profesionales.
El documento describe los conceptos fundamentales de software e ingeniería de software. Menciona los diferentes tipos de software como productos genéricos y personalizados y explica brevemente conceptos como programas, archivos de configuración y documentación. También analiza la "crisis del software" y sus causas como la naturaleza lógica del software y la mala gestión de proyectos. Finalmente, introduce conceptos clave de la ingeniería de software como el modelado, UML y el proceso RUP.
Este documento presenta el proyecto de investigación de un sistema informático desarrollado en C++ para controlar el inventario y facturación de una distribuidora de agua. El proyecto aplica conceptos de programación orientada a objetos y estructuras de datos aprendidos en las clases de Programación II y Estructura de Datos. El sistema permitirá consultar, ingresar, modificar y eliminar el inventario, así como facturar ventas y consultar clientes.
Métrica de punto de función y lineas de codigoJesús E. CuRias
Este documento describe varios métodos para medir el tamaño y la complejidad del software, incluida la métrica de punto de función y la métrica de líneas de código. La métrica de punto de función mide la funcionalidad entregada al usuario independientemente de la tecnología subyacente, mientras que la métrica de líneas de código proporciona una medida aproximada del tamaño pero no es confiable para medir la productividad o la complejidad. El documento también discute las ventajas y desventajas de estas
Este documento describe un módulo de programación básica en lenguaje C que consta de dos unidades de aprendizaje. La primera unidad se enfoca en el manejo de los componentes del lenguaje C y el uso de estructuras de control de flujo. La segunda unidad trata sobre la aplicación de funciones y el manejo de memoria mediante el uso de arreglos, pilas, colas y listas. El propósito general del módulo es desarrollar software básico en C para satisfacer los requerimientos del usuario.
En 3 oraciones o menos:
El documento presenta una ontología formal para definir conceptos relacionados con métricas de software como métrica, atributo, entidad, indicador, entre otros. Explica que una métrica consta de una forma de medición y una escala, y puede ser directa, indirecta o indicador. El objetivo es mejorar el entendimiento y uso de métricas en la industria del software.
Introducción a los entornos de programaciónFernando Solis
El documento describe el lenguaje de programación C. C fue creado en 1972 por Ken Thompson y Dennis Ritchie y se utiliza principalmente para crear software de sistemas. El lenguaje C tiene un núcleo simple con funcionalidades añadidas por bibliotecas. Se utiliza para programar de forma estructurada y ofrece tipos de datos básicos como enteros, reales y cadenas.
El documento describe el método COCOMO para estimar los costos y el tiempo de desarrollo de software. COCOMO define tres modos de desarrollo (orgánico, semi-acoplado y empotrado) dependiendo de la complejidad del proyecto. El documento aplica el modelo COCOMO intermedio a un proyecto de software, considerando factores como el tamaño del código, la experiencia del equipo y las restricciones. Los cálculos estiman que el proyecto requerirá un equipo de 6 personas durante 3 meses.
El documento describe los tipos y características del software, incluyendo productos genéricos y personalizados, así como los problemas en el desarrollo de software como la naturaleza lógica del software y la mala gestión de proyectos. También introduce conceptos clave de ingeniería de software como modelado, UML, y el proceso unificado de desarrollo de software.
José Luis Jiménez Rodríguez
Junio 2024.
“La pedagogía es la metodología de la educación. Constituye una problemática de medios y fines, y en esa problemática estudia las situaciones educativas, las selecciona y luego organiza y asegura su explotación situacional”. Louis Not. 1993.
Más contenido relacionado
Similar a Introducción a la Programación Orientada a Objetos
Este documento presenta una introducción a la programación orientada a objetos en C++. Explica conceptos clave como clases, objetos, encapsulamiento, herencia y polimorfismo. Luego proporciona un ejemplo de clase para calcular las notas de los alumnos en una asignatura según diferentes porcentajes para prácticas, exámenes parciales y finales.
Este documento describe conceptos básicos de programación en C y C++. Explica que el software se divide en software del sistema y de aplicaciones. Menciona que el sistema operativo controla las operaciones de la computadora y permite ejecutar programas. También describe lenguajes de programación, compiladores, estructura básica de un programa en C, y tipos de variables.
Este documento describe conceptos básicos de programación en C y C++. Explica que el software se divide en software del sistema y de aplicaciones. Menciona que el sistema operativo controla las operaciones de la computadora y permite ejecutar programas. También describe lenguajes de programación, compiladores, estructura básica de un programa en C, y tipos de variables.
Este documento proporciona información sobre un curso de programación en C/C++. Explica conceptos básicos como la estructura de un programa en C, variables, tipos de datos, funciones, y sentencias de control. También cubre temas como arrays, strings, punteros, memoria dinámica, y operadores de bits. El curso parece incluir lecciones sobre la historia de los lenguajes de programación, programación estructurada vs. orientada a objetos, y el uso de librerías estándar.
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...Jordi Cabot
No hay suficientes programadores profesionales para todo el software que necesita nuestra sociedad. Aquí propongo una serie de soluciones alternativas.
El documento presenta una introducción a la programación orientada a objetos usando C++. Explica conceptos clave como objetos, clases, atributos y métodos. Incluye ejemplos de cómo definir una clase Televisor en C++ con sus atributos y métodos. También recomienda entornos de desarrollo para C++ en Linux y Windows y presenta un ejemplo de programa "Hola Mundo" y otro que crea una clase Persona.
Desarrollo de Software fundamentos POO 1era Parte subido JHSjohnny herrera
El documento presenta una introducción a la programación orientada a objetos usando C++. Explica conceptos clave como objetos, clases, atributos y métodos. Incluye ejemplos de cómo definir una clase Televisor en C++ con sus atributos y métodos. También recomienda entornos de desarrollo para C++ en Linux y Windows y presenta un ejemplo de programa "Hola Mundo" y otro que crea una clase Persona.
El documento describe la metodología del Proceso Unificado de Desarrollo de Software (PUD). El PUD es un proceso iterativo e incremental que consta de cuatro fases: inicio, elaboración, construcción y transición. Cada fase tiene actividades específicas como el modelado del negocio, la captura de requisitos, el análisis, el diseño e implementación y las pruebas, con el objetivo de desarrollar un producto de software de manera iterativa.
Abstracción y Encapsulación de en la programación Orientada a objetosJoseEstebanTelloEstr
El documento introduce el concepto de programación orientada a objetos y tipos de datos abstractos. Explica que un tipo de dato abstracto define un conjunto de valores y operaciones sin exponer su representación interna. Luego, presenta un caso de estudio para diseñar e implementar un tipo de dato abstracto racional que represente números racionales a través de un par de enteros para el numerador y denominador.
Este documento introduce conceptos básicos de la programación orientada a objetos. Explica que la orientación por objetos organiza el software como una colección de objetos discretos que encapsulan datos y procesamiento. También define conceptos clave como clases, métodos, herencia y polimorfismo.
El documento describe un programa educativo para ingenieros de software en Sonora, México. El programa se crea para satisfacer la demanda de profesionales de software debido a iniciativas para convertir a Sonora en un centro de desarrollo de software. El objetivo del programa es formar profesionales comprometidos, innovadores y emprendedores capaces de desarrollar soluciones de software de calidad. El programa cubre temas como análisis y diseño de software, administración de proyectos, construcción de software y prácticas profesionales.
El documento describe los conceptos fundamentales de software e ingeniería de software. Menciona los diferentes tipos de software como productos genéricos y personalizados y explica brevemente conceptos como programas, archivos de configuración y documentación. También analiza la "crisis del software" y sus causas como la naturaleza lógica del software y la mala gestión de proyectos. Finalmente, introduce conceptos clave de la ingeniería de software como el modelado, UML y el proceso RUP.
Este documento presenta el proyecto de investigación de un sistema informático desarrollado en C++ para controlar el inventario y facturación de una distribuidora de agua. El proyecto aplica conceptos de programación orientada a objetos y estructuras de datos aprendidos en las clases de Programación II y Estructura de Datos. El sistema permitirá consultar, ingresar, modificar y eliminar el inventario, así como facturar ventas y consultar clientes.
Métrica de punto de función y lineas de codigoJesús E. CuRias
Este documento describe varios métodos para medir el tamaño y la complejidad del software, incluida la métrica de punto de función y la métrica de líneas de código. La métrica de punto de función mide la funcionalidad entregada al usuario independientemente de la tecnología subyacente, mientras que la métrica de líneas de código proporciona una medida aproximada del tamaño pero no es confiable para medir la productividad o la complejidad. El documento también discute las ventajas y desventajas de estas
Este documento describe un módulo de programación básica en lenguaje C que consta de dos unidades de aprendizaje. La primera unidad se enfoca en el manejo de los componentes del lenguaje C y el uso de estructuras de control de flujo. La segunda unidad trata sobre la aplicación de funciones y el manejo de memoria mediante el uso de arreglos, pilas, colas y listas. El propósito general del módulo es desarrollar software básico en C para satisfacer los requerimientos del usuario.
En 3 oraciones o menos:
El documento presenta una ontología formal para definir conceptos relacionados con métricas de software como métrica, atributo, entidad, indicador, entre otros. Explica que una métrica consta de una forma de medición y una escala, y puede ser directa, indirecta o indicador. El objetivo es mejorar el entendimiento y uso de métricas en la industria del software.
Introducción a los entornos de programaciónFernando Solis
El documento describe el lenguaje de programación C. C fue creado en 1972 por Ken Thompson y Dennis Ritchie y se utiliza principalmente para crear software de sistemas. El lenguaje C tiene un núcleo simple con funcionalidades añadidas por bibliotecas. Se utiliza para programar de forma estructurada y ofrece tipos de datos básicos como enteros, reales y cadenas.
El documento describe el método COCOMO para estimar los costos y el tiempo de desarrollo de software. COCOMO define tres modos de desarrollo (orgánico, semi-acoplado y empotrado) dependiendo de la complejidad del proyecto. El documento aplica el modelo COCOMO intermedio a un proyecto de software, considerando factores como el tamaño del código, la experiencia del equipo y las restricciones. Los cálculos estiman que el proyecto requerirá un equipo de 6 personas durante 3 meses.
El documento describe los tipos y características del software, incluyendo productos genéricos y personalizados, así como los problemas en el desarrollo de software como la naturaleza lógica del software y la mala gestión de proyectos. También introduce conceptos clave de ingeniería de software como modelado, UML, y el proceso unificado de desarrollo de software.
José Luis Jiménez Rodríguez
Junio 2024.
“La pedagogía es la metodología de la educación. Constituye una problemática de medios y fines, y en esa problemática estudia las situaciones educativas, las selecciona y luego organiza y asegura su explotación situacional”. Louis Not. 1993.
Ofrecemos herramientas y metodologías para que las personas con ideas de negocio desarrollen un prototipo que pueda ser probado en un entorno real.
Cada miembro puede crear su perfil de acuerdo a sus intereses, habilidades y así montar sus proyectos de ideas de negocio, para recibir mentorías .
La necesidad de bienestar y el uso de la naturaleza.pdf
Introducción a la Programación Orientada a Objetos
1. Introducción a la Programación
Orientada a Objetos
Tema 1
TACC II
1
TACC II
Curso 2008/09
2. IndiceIndice
Ci l d Vid C lid d d lCiclo de Vida y Calidad del
Software.
Paradigmas de Programación.
Programación Orientada a Objetos.
Conceptos de Programación Orientada a
Objetos.
Clases ObjetosClases y Objetos
Encapsulamiento.
HerenciaHerencia.
Polimorfismo.
Frameworks y Notaciones.
2
y
3. Ciclo de Vida del SoftwareCiclo de Vida del Software
Conjunto de fases por las que pasa el sistema
que se está desarrollando desde que nace la
idea inicial hasta que el software es retirado o
reemplazado:
Análisis.
Diseño.
Codificación.
Pruebas.
Mantenimiento.
3Construir Software no es sólo programar.
4. Ciclo de Vida del Software
Distribución del Esfuerzo
Distribucióndel esfuerzoduranteel ciclodevida
Análisis ≈ 6% 40
25
30
35
40
45
oRelativo(
Análisis ≈ 6%.
Diseño ≈ 5%.
Codificación ≈ 7% 11
7
15 13 14
0
5
10
15
20
ño
ón
s
r
r
r
Esfuerzo
Codificación ≈ 7%.
Pruebas ≈ 15%.
Mantenimiento 67%
Análisis
y
diseñoIm
plem
entación
Pruebas
Adaptar
M
ejorar
C
orregir
Mantenimiento ≈ 67%.
4
5. Calidad del Software
Efi i i
Factores de Calidad
Eficiencia
Portabilidad
Facilidad de pruebaFacilidad de prueba
Integridad (protección contra procesos sin derecho de
acceso)acceso)
Facilidad de uso
Corrección
Fiabilidad (situaciones anómalas)
Extensibilidad
Reutilización
Compatibilidad
5
...
6. IndiceIndice
Ci l d Vid C lid d d l S ftCiclo de Vida y Calidad del Software.
Paradigmas de Programación.Paradigmas de Programación.
Programación Orientada a Objetos.
Conceptos de Programación Orientada aConceptos de Programación Orientada a
Objetos.
Clases y ObjetosClases y Objetos
Encapsulamiento.
HerenciaHerencia.
Polimorfismo.
Frameworks y Notaciones
6
Frameworks y Notaciones.
7. Paradigmas de Programacióng g
Abstracción
Capacidad para encapsular y aislar la
información del diseño y ejecución.y j
Mecanismos en programación:
P di i t f iProcedimientos y funciones
Tipos abstractos de datos (TAD)
Clases: son TAD a los que se añaden
mecanismos como herencia, métodos, etc.
7
8. Paradigmas de ProgramaciónParadigmas de Programación
EstructuradaEstructurada.
Fortran.
Basic.
Pascal Desde principios de los 70.Pascal.
C.
…
Funcional
esde p c p os de os 0
Dificultad para el trabajo en grupo.
No hay correspondencia estrecha entre
d t lFuncional.
Lisp.
…
Lógica
datos reales y programas.
Lógica.
Prolog.
…
POOPOO.
Smalltalk.
C++.
Java
8
Java.
…
9. IndiceIndice
Ci l d Vid C lid d d l S ftCiclo de Vida y Calidad del Software.
Paradigmas de Programación.
Programación Orientada a Objetos.
Conceptos de Programación Orientada aConceptos de Programación Orientada a
Objetos.
Clases y ObjetosClases y Objetos
Encapsulamiento.
Herencia.e e c a
Polimorfismo.
Frameworks y Notaciones.
9
y
10. Programación Orientada a ObjetosProgramación Orientada a Objetos
Ventajas de uso:
Reusabilidad (mecanismos de abstracción y( y
herencia)
En programación convencional: uso deEn programación convencional: uso de
funciones y procedimientos
Adecuación a entornos de bases de datosAdecuación a entornos de bases de datos.
Idónea para tratamiento de Interfaces de Usuario.
Ad d t ti i l ióAdecuada en prototipos y simulación.
10
11. Programación Orientada a Objetosg j
Características Generales
Construcción de sistemas complejos a
partir de componentes.p p
M d l d á fi l d l d lModelado más fiel del mundo real.
Estimación de reducción de 40% con
respecto a la programación con encionalrespecto a la programación convencional.
11
12. Programación Orientada a Objetosg j
Características
El modelo objeto (Booch, 1994):
AbstracciónAbstracción
Las características esenciales del objeto:
• Documento: insertar borrar• Documento: insertar, borrar, ...
• Una grapadora: rellenar, grapar, ...
E l i t ( lt ió d i f ió )Encapsulamiento (ocultación de información)
• Una clase contiene:
una interfaz pública.
una implementación.
12
13. Ejemplo
I
Ejemplo
Persona
- nombre
- edad
Persona
nformaci
+mostrar()
+setNombre(string)
Interfaz
- id
- setID()
+mostrar()
tN b ( t i )
ónprivad
+getNombre(): string
+setEdad(int)
+getEdad(): int
zpública
+setNombre(string)
+getNombre(): string
+setEdad(int)
+getEdad(): int
da
getEdad(): int
Clases,
Tipos especificación
p1 Personap2 Persona
Objetos,
“instancias”
especificación
ejecución
p1 : Persona
- nombre=“Pedro”
- edad=23
id=“3456789K”
p2 : Persona
- nombre=“María”
- edad=25
id=“55567876G”
13
- id= 3456789K- id= 55567876G
14. Programación Orientada a Objetos
Modularidad:
g j
Características
Modularidad:
Subdivisión de una aplicación en otras más pequeñas (módulos).
Un módulo es un conjunto de clases.
Jerarquía
Ordenación de las abstracciones
Tipos:
Herencia (“es-un”); generalización/especialización
• Herencia simple o múltiple
Agregación (“parte-de”)g g ( p )
Polimorfismo
Una misma operación (método) realizada de diferente modo
( l ó ) l ífcomer (vaca, persona, león); clase mamífero
dibujar (triángulo, cuadrado); clase figura
Otras propiedades
14
Otras propiedades
concurrencia (multitarea), persistencia, uso de excepciones
15. EjemploEjemplo
nombre
Persona
+ mostrar()
- nombre
- edad
()
- sueldo_bruto - nombre_empresa
telefono de contacto
Empleado Cliente
subordinados
+mostrar()
+ mostrar ()
+ calcular_salario_neto()
- telefono_de_contacto
empleados clientes
- categoria
Directivo
Empresa
15+ mostrar ()
categoria
- nombre
17. Programación Orientada a Objetosg j
Modelado del mundo real
Nombres:
Objetos
Propiedades de objetos
Adjetivos:
Valores de las propiedades
Verbos:
Comportamiento de los objetos
“El coche tiene color rojo y se mueve”
“El d t ti l t d t ”
17
“El documento tiene letra grande y se muestra”
18. Lenguajes de POOLenguajes de POO
C l íCronología:
Fortran (1958), LISP (1959), BASIC (1964), Pascal (1969),
Prolog (1971), C (1973), Smalltalk-80 (1980), C++ (1986),g ( ), ( ), ( ), ( ),
Object Pascal (1988), CLOS (1989), Java (1995).
The jounal of object-oriented programming (1988). Journal of
Object Technology (2002-) etcObject Technology (2002 ), etc.
Muchas conferencias científicas sobre el tema: OOPSLA,
ECOOP, etc.
Primeros lenguajes POO:
Simula-67
Objeto (datos+métodos) Clase HerenciaObjeto (datos+métodos). Clase. Herencia.
Smalltalk-80
Verdadero primer lenguaje de POO
C t d d j ( ti ió d ét d )
18
Concepto de paso de mensajes (activación de métodos)
19. Lenguajes de POO
O i t ió
g j
Clasificaciones
Orientación:
puros (Smalltalk)
híbridos (C++)
Tipificación:Tipificación:
estática (en tiempo de compilación), Object
Pascal
dinámica (en tiempo de ejecución), Python
Ligadura:Ligadura:
estática (C++)
dinámica (Java C++)
19
dinámica (Java, C++)
20. Lenguajes de POOg j
Paradigmas
Clase-Elemento
Ninguna clase es objetog j
C++
Toda clase es un objetoToda clase es un objeto
Smalltalk, Java
Prototipo-Elemento
Todo objeto puede ser prototipo de otrosTodo objeto puede ser prototipo de otros
Amulet
20
21. Otras Ventajas de POOOtras Ventajas de POO
Mejor mantenimiento.
Estructuras más reales de la informaciónEstructuras más reales de la información.
Escalabilidad.
Adaptabilidad.
Más apropriada para aplicacionesMás apropriada para aplicaciones
dirigidas por eventos.
21
22. Inconvenientes de POOInconvenientes de POO
Necesidades de estandarización:
Notación de Modelado (OMG, Object( , j
Management Group).
Lenguajes de Programación.Lenguajes de Programación.
Coste de conversión de software legado
22
23. IndiceIndice
Ci l d Vid C lid d d l S ftCiclo de Vida y Calidad del Software.
Paradigmas de Programación.
Programación Orientada a ObjetosProgramación Orientada a Objetos.
Conceptos de Programación Orientada
Obj ta Objetos.
Clases y Objetos
Encapsulamiento.
Herencia.
Polimorfismo.
Frameworks y Notaciones
23
Frameworks y Notaciones.
24. Conceptos de POOConceptos de POO
Conceptos principales:
Clase.
Similar al concepto de estructura en Pascal.
Además de datos (atributos), se añaden funciones( ),
(métodos) que operan sobre esos datos.
Estructuración (herencia).
Objeto (una instancia de una clase)
Jerarquía de herencia entre clases.Jerarquía de herencia entre clases.
Herencia de atributos y métodos.
24
25. Conceptos de POOConceptos de POO
Objetos:
objeto=datos+métodosj
miembros de un objeto (o clase):
datos (atributos)datos (atributos)
métodos
identificador del objetoidentificador del objeto
nombre de variable
25
26. Conceptos de POO
Clase: Robot
p
Ejemplo
Clase: Robot
Datos: x (entero), y (entero)
Métodos:Métodos:
• void avanzar (entero, entero)
• entero posicionX ()
entero posicionY ()• entero posicionY ()
• void avanzar (entero)
• Constructores:
R b t ( t t )Robot (entero, entero)
Robot (entero)
Instanciación:
• objeto “robot1” (Robot)
• robot1 = Robot(1,2)
Datos de clase:
26
Datos de clase:
• numeroRobots (entero)
27. Creación y Destrucción de ObjetosCreación y Destrucción de Objetos
Equivalencia de conceptos con programaciónEquivalencia de conceptos con programación
clásica:
Tipo ClaseTipo Clase
Dato Objeto
Variable: existe en ambos tipos de programaciónp p g
Creación (uso de constructor):
Ejemplo:Ejemplo:
robot1 = Robot(1,2) robot2 = Robot(3)
DestrucciónDestrucción
Automática (Java, Garbage collection)
Explícita (montón) o automática (pila) (C++).
27
p ( ) (p ) ( )
Destructores.
28. EncapsulamientoEncapsulamiento
Miembros privados y públicos
Interfaz pública de una clase (miembros públicos, datos y métodos)
Se pueden invocar desde fuera de la clase
Ejemplo (clase Robot)Ejemplo (clase Robot)
Datos:
• privado x (entero)
• privado y (entero)
Métodos:
• público void avanzar (entero entero)público void avanzar (entero, entero)
• público entero posicionX ()
• público entero posicionY ()
• público void avanzar (entero)
Constructores:
• público Robot (entero entero)
28
público Robot (entero, entero)
• público Robot (entero)
30. Ejecución de MétodosEjecución de Métodos
U ét d d fi i ió dUn método es una definición de una
función.
Se dice que un método se ejecuta cuando el
objeto recibe un mensaje de ejecución del
ét dmétodo.
Puede acceder a otros miembros de la clase.
Ejemplo:
Objeto robot1 (Robot)j ( )
robot1=Robot(3,2)
robot1.avanzar(1,2)
30
( , )
31. HerenciaHerencia
Representa el concepto de “ser un tipo
especial de” o “ser un/a”.p
Se establece mediante la definición de
subclases que dan lugar a una jerarquíasubclases, que dan lugar a una jerarquía
de clases.
Las subclases hijas heredan los datos y
métodos de las clases padre.métodos de las clases padre.
31
33. HerenciaHerencia
La definición en RobotConFrontera de:
void avanzar (entero, entero)( , )
void avanzar (entero)
es un “overriding” (especialización redefiniciónes un overriding (especialización, redefinición,
etc) de los métodos ya definidos en la clase
RobotRobot
33
34. Herencia
Tipos
Herencia simple:
Figura, Círculo, Rectángulo, Cuadrado, Triángulo
Herencia múltiple:
Persona Profesor Investigador ProfesorUniversitarioPersona, Profesor, Investigador, ProfesorUniversitario
Problemas de ambigüedad
34
35. EjemploEjemplo Figura
dib j ()+dibujar()
+rotar(grad)
Circulo
radio: real
Rectangulo
-alto: real
Triangulo
-tam1: real-radio: real -alto: real
-ancho: real
+Circulo(r)
+dibujar()
+rotar(grad)
+Rectangulo(alto, ancho)
+dibujar()
t ( d)
tam1: real
-tam2: real
-tam3: real
+Triangulo(t1, t2, t3)
dib j ()
(g )
+rotar(grad) +dibujar()
+rotar(grad)
Cuadrado
+Cuadrado(lado)
35
( )
37. Herencia
Clases Abstractas
Clase abstracta:
No admite una instancia directa. Ejemplo: clasej p
Figura. Sería inválido
• objeto f (Figura)objeto f (Figura)
• f=Figura(....)
í í álidaunque sí sería válido
• objeto f (Figura)
• f=Cuadrado(3)
37
38. PolimorfismoPolimorfismo
Sobrecarga (overloading) de un método:
En una clase, el mismo nombre de método,
definido de modos distintos
Ejemplo: el método “avanzar” estáEjemplo: el método avanzar está
sobrecargado en la clase Robot
38
39. Polimorfismo
En la programación convencional también existe
Polimorfismo
En la programación convencional, también existe
“overloading”:
Ejemplo: Pascalj p
println(“aldfkja”)
println(34)
“O l di ” “O idi ” d li fi“Overloading” y “Overriding” son casos de polimorfismo:
El mismo método definido de modos distintos
Ligadura dinámica:Ligadura dinámica:
objeto r (Robot)
r=RobotConFrontera(2,3,0,0)
Al ejecutar r.avanzar(3), ¿qué definición se aplica?
• la de Robot (ligadura estática)
• la de RobotConFrontera (ligad dinámica)
39
• la de RobotConFrontera (ligad. dinámica)
40. FrameworksFrameworks
Conjunto de clases que se coordinan para
realizar una función
Para construir una aplicación hay que
subclasificarlas.
Ejemplo:
MFC (C++).MFC (C ).
AWT, Swing (Java).
El “main” usualmente incluido en el FrameworkEl main usualmente incluido en el Framework
Diagramas de clases
N id d d tá d d t ió áfi
40
Necesidad de un estándar de representación gráfica
41. UMLUML
Diagramas de Estructurag
Diagramas de clase (condensación gráfica de estructuras de
clases y relaciones entre objetos y clases)
Diagramas de Comportamiento.g p
41