Programación Orientada a Objetos. Conceptos Básicos

Documentos relacionados
HERENCIA Y TIPOS. Articulo. Video Audio Altavoces. Amplificador

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

Universidad Salesiana de Bolivia

Guía del Curso Analista Programador Java: Business Apps Expert

INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación

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

La Herencia: Teoría (1)

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

PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas

Conceptos de Programación Orientada a Objetos

UML: INTRODUCCIÓN, ORIENTACIÓN a Objetos

Prof. Mariano Mancuso. Sistemas de información y control diagrama de clases

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

Requerimientos de Software

Los diagramas de clases y de objetos sirven para modelar diversos aspectos estructurales o estáticos de un sistema: Modelado - Vocabulario del Sistema

Modularidad: Tipos abstractos de datos Programación Orientada a Objetos Tema 2: Modularidad

TEMA 2 Introducción a C# ANÁLISIS Y DESARROLLO DE APLICACIONES INFORMÁTICAS Curso 2010/2011

Capítulo 16. Diagrama de Clases UML

Introducción a la programación orientada a objetos

Un caso de uso es una tarea que debe poder llevarse a cabo con el apoyo del sistema que se está desarrollando, se representa mediante un óvalo.

INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11

PROGRAMACION ORIENTADA A OBJETOS EN C++

Introducción a la Orientación a Objetos

Cristian Blanco

Diagramas De Casos De Uso

PATRONES DE DISEÑO DE CREACIÓN. Abstract Factory Builder Factory Method Prototype

Programación Orientada a Objetos

Curso de Java POO: Programación orientada a objetos

20483 Programación en C#

Ingeniería a de Software CC51A

1. Preparar al estudiante para desarrollar aplicaciones de software utilizando un enfoque orientado a objetos.

UNIDAD 1: CONCEPTOS BA SICOS DE BASE DE DATOS

PERSISTENCIA DE OBJETOS EN BASE DE DATOS RELACIONALES FRANCISCO LEÓN NAJERA CÓDIGO: CEDULA:

PROGRAMA DE CURSO. Metodologías de Diseño y Programación. Nombre en Inglés. Design and Programming Methodologies.

PROGRAMA INSTRUCCIONAL

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

Resultado de Aprendizaje:

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

1. Asignar Responsabilidades a componentes de software es la habilidad más importante del AOO. Porque:

Programación con Visual C#

DIAGRAMAS UML ANDRÉS ESTEBAN MARTÍNEZ HUTA CICLO DE VIDA DEL SOFTWARE GLORIA CECILIA RÍOS MUÑOZ

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

Derechos de Acceso: COMPOSICION

Estructuras de Datos y Algoritmos. Primeros ejemplos de TDA

2.2.- Paradigmas de la POO

MASTER PROFESIONAL C# 5 Y ASP.NET MVC 5

Programación Orientada a Objetos (POO)

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

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

Gestion y Modelación de Datos Introducción

Tema 4 Introducción a la Orientación a Objetos. Ingeniería del Software I

CLA. Diagramas de clases en Métrica V3

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

Planificaciones Análisis de la Información. Docente responsable: GONZALEZ NORBERTO DANIEL. 1 de 6

Lenguaje de Modelamiento Unificado.

M. C. Felipe Santiago Espinosa

Aplicaciones de Escritorio

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

PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA

TEMA 7: INGENIERIA DEL SOFTWARE.

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERÍA PROYECTO CURRICULAR DE INGENIERÍA INDUSTRIAL

Evolución de la Programación Orientada a Objetos

DIAGRAMAS DE UML DIAGRAMAS DE CASO DE USO

Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico

Programación Orientada a Objetos

Desarrollador de Aplicaciones Web con Java

IFCD0210 Desarrollo de Aplicaciones con Tecnologías Web

Computación Avanzada Clase 3. Mauricio Hidalgo Barrientos

Lenguaje de programación con JAVA

2007/ PROGRAMACIÓN. Tipo: TRO Curso: 1 Semestre: AB CREDITOS Totales TA TS AT AP PA OBJETIVOS. 1.-Introducción.

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

Aprender a desarrollar con JavaScript

La clase Integer y sus métodos. Los Operadores (concepto). Operadores Lógicos y a nivel de Bits. Operadores de desplazamiento. Concatenaciones. La Con

Diseño orientado a los objetos

UML Unifield Modeling Languaje

Descripción del Curso

CASOS DE USO Exploración de Requerimientos

Programación Orientada a Objetos. Sesión 4: Herencia

Diseño Basado en Componentes. Curso 2008 / 09

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

Lenguajes de marcado para presentación de Páginas web.

Programación orientada a objetos. Capítulo 8 Mejora de las estructuras mediante herencia

Procesamiento de documentos XML.

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

Documentación de Requisitos con Casos de Uso

DIAGRAMAS DE ACTIVIDAD SESION 9. Cap. 9 Kendall & Kendall Cap 5 Jacobson

COMPONENTES Y CONTENEDORES. Ingeniería de Software II

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

Paquete de curso Programación Java SE (Exclusivo Estudiantes y catedráticos)

Transcripción:

Programación Orientada a Objetos Conceptos Básicos

Programación Orientada a Objetos Paradigma de programación Un programa orientado a objetos está organizado como un conjunto de agentes en interacción llamados objetos. Cada objeto proporciona un servicio o realiza una acción que es usada por otros objetos

Objetivos de la POO Con el paradigma de la POO se buscan los siguientes objetivos fundamentales [Meyer,1999]: Corrección: Capacidad del software para realizar con exactitud sus tareas, tal y como se definen en las especificaciones Robustez: Capacidad del software de reaccionar adecuadamente ante condiciones excepcionales. Complementa a la corrección, caracterizando lo que ha de suceder fuera de las especificaciones Reutilización o reusabilidad (Reusability): Capacidad del software de servir para la construcción de cuantiosas aplicaciones diferentes Extensibilidad: Facilidad de adaptar el software a los cambios de especificación

Elementos de los Lenguajes OO Para ello, se suelen utilizar los siguientes elementos en la Programación Orientada a Objetos: Encapsulamiento (encapsulación): Proceso de almacenar en un mismo compartimento los elementos de una abstracción que constituyen su estructura y su comporta-miento [Booch, 1996] Manejo de excepciones: Mecanismo para recuperar el sistema de situaciones anómalas o erróneas detectadas en tiempo de ejecución [Meyer, 1999] Precondiciones: Condición que siempre debe cumplirse previa ejecución de una sección de código. Se aplica a funciones, bucles, clases y especificaciones formales. Postcondiciones: Condición que siempre debe cumplirse posteriormente a la ejecución de una sección de código. Se aplica a funciones, bucles, clases y especificaciones formales. Invariantes: Condición que expresan restricciones de consistencia de una abstracción. Se aplica a funciones, bucles, clases y especificaciones formales.

Elementos de los Lenguajes OO Sobrecarga: Capacidad de poder asociar más de un significado a un elemento del programa [Meyer, 1999]. Se aplica a funciones, métodos y operadores. Herencia: Relación de generalización / especialización entre dos o más abstracciones [Hernández-Orallo, 2002] Polimorfismo: Capacidad de utilizar a una misma abstracción con distintos tipos, resultando en abstracciones más generales y abstractas. Genericidad: Propiedad que permite construir abstracciones modelo para otras abstracciones. Se aplica a funciones, métodos y clases. Bibliotecas estándar: Clases estándar y reutilizables dirigidas a solventar las necesidades comunes del desarrollo de software [Meyer, 1999].

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.

Noción de Clase y de Instancia

Representación gráfica (notación UML) de una clase

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.

Interfaz de una clase La interfaz de una clase define el tipo de peticiones (operaciones) que se le pueden hacer a objetos de esa clase Describe qué hace un objeto de una clase A un usuario de una clase sólo le hace falta conocer su interfaz

Herencia de clases Mecanismo para definir similitud entre clases Se enlazan una clase base y una o varias clases derivadas La clase Base contiene todas las características (atributos) y comportamientos (métodos) comunes, compartidas por las clases derivadas

Ejemplo de herencia de clases

Características de la herencia Cuando se hereda de una clase Base, se crea una nueva clase que: Contiene todos los atributos de la clase Base Contiene la interfaz de la clase Base Relación es-un un objeto de la clase Derivada es también un objeto de la clase Base

Extensión de clases La clase Derivada puede añadir nuevos métodos y/o atributos no son parte de la clase Base, sino una extensión

Sobreescritura de métodos Cambio en la implementación de alguno de los métodos las clases derivadas tendrán la misma interfaz pero una implementación distinta

Otros tipos de Relaciones Agregación es la relación de parte_de Composición es una variedad de agregación más fuerte, el objeto parte permanece solo con el todo, cuando el todo desaparece la parte también. Asociación relaciona dos elementos

Preguntas