Programación Orientada a Objetos Problema Bien Definido, Clase, Clase, Objeto Tomado y Adaptado de cursos de Objetos de Uniandes, Bogotá Proceso de Desarrollo de Sw •OO como herramienta de modelaje •Refinamiento a pasos •Técnicas de especificación Modelo y especificación Problema Planeación Diseño y Revisión del diseño •Refinamiento a pasos •Técnicas de especificación •Lenguaje imperativo •Reutilización de componentes Solución expresada en C++/ Java Codificación y Revisión del código Ambiente de Programación Pruebas Postmortem Solución informática al problema Proceso de construcción de software Evaluación y Mejora del proceso Técnicas de Calidad 1 Agenda Problema bien definido Orientación a Objetos: Objeto - Clase Solución de problemas Qué es un problema? Planteamiento de una situación cuya respuesta desconocida debe obtenerse a través de métodos científicos. científicos. (Real Academia de la Lengua Española) Problema Bien Definido Problema en el cual están definidas las posibles entradas, la forma de la solución y lo que se quiere lograr (la función objetivo) aunque no haya un método de solución evidente 2 Solución de problemas Problemas bien definidos Podemos identificar claramente un conjunto de condiciones iniciales (la situación problemática) y un conjunto de condiciones finales (la situación en la que ya está resuelto el problema) Qué es solucionar un problema? Condición Inicial Solución Condición Final Proceso Solución de problemas Condición Inicial Mundo del problema Solución Condición Final Mundo del problema 3 Solución de problemas Condición Inicial Solución Condición Final Mundo del problema Mundo del problema Modelar Condición Inicial Modelo del Mundo Interpretar Programa Condición Final Modelo del Mundo Modelo del Mundo Metodología Orientada a Objetos El mundo del problema se ve como objetos que interactúan Modelar consiste en identificar qué tipos de objetos hay en el mundo del problema,, cómo son, cómo se comportan problema y cómo se relacionan. relacionan. 4 Modelo del Mundo Metodología Orientada a Objetos Modelo del problema Modelo del mundo Metodología Orientada a Objetos Clase - Objeto Objeto Representación detallada, concreta y particular de un algo algo.. Tal representación determina su identidad, su estado y su comportamiento particular en un momento dado. dado. Es una abstracción de un elemento (concepto) del Mundo del Problema Ejemplos: Persona Estudiante Parqueadero Automóvil Camión 5 Metodología Orientada a Objetos Clase - Objeto Objeto El estado es el conjunto de valores concretos que lo caracterizan en un momento dado dado.. Ej Ej.. nombre, carrera, semestre, etc etc.. El comportamiento define un conjunto de operaciones que el objeto es capaz de llevar a cabo. Dichas operaciones pueden: Estar relacionadas entre sí Modificar el estado del objeto Invocar funcionalidades de otros objetos ... Metodología Orientada a Objetos Clase - Objeto Objeto Cómo identificar los objetos del Mundo? Sustantivos del enunciado (El puesto del parqueadero, la pantalla, el hospital..., la historia clínica..., la factura ...) Cosas tangibles (libro, tren, mesa, voto, computador,...) Roles (empleado, estudiante, profesor, paciente, propietario,...) Incidentes (venta, compra, matrimonio,...) 6 Metodología Orientada a Objetos Clase - Objeto Objeto Partes de un objeto Identificación: Cómo se llama? Nombre Atributos Comportamiento Estado (Información): Qué lo caracteriza? Comportamiento: Qué sabe hacer? Metodología Orientada a Objetos Clase - Objeto Objeto Partes de un objeto (Ejemplos) 09/05/07 Fecha 09 dia mes 05 07 año cambiarDia cambiarMes cambiarAño darMes ... Estudiante nombre Felipe Diaz 71896258 cedula 4.8 promedio cambiarNombre identificarEstudiante calcularPromedio ... 7 Metodología Orientada a Objetos Clase - Objeto Clase Generalización de un objeto en particular. Representación de una familia de objetos concretos. Metodología Orientada a Objetos Clase - Objeto Clase Describe un conjunto de objetos del Mundo del Problema, Problema, que tienen las mismas características y el mismo comportamiento Objetos del mismo tipo Clase 8 Metodología Orientada a Objetos Clase - Objeto Clase 10:15:21 Reloj horas minutos segundos cambiarHora cambiarMinutos cambiarSegundos darHora ... Estudiante nombre cedula promedio cambiarNombre cambiarSalario calcularPromedio ... Metodología Orientada a Objetos Clase - Objeto Clase Todos los objetos de una clase tienen la misma estructura, lo que varía son los atributos:: valores de los atributos Estudiante nombre Juana López 72001000 cedula 4.3 promedio cambiarNombre identificarEstudiante calcularPromedio ... Estudiante nombre Juan Pérez 71896258 cedula 4.5 promedio cambiarNombre identificarEstudiante calcularPromedio ... Estudiante nombre Simón Rojas 17008952 cedula 4.2 promedio cambiarNombre identificarEstudiante calcularPromedio... Un objeto es una instancia de una clase 9 Metodología Orientada a Objetos Clase - Objeto Clase Partes de una clase Identificación: Cómo se llama la clase? Nombre Atributos Propiedades Qué caracteriza los objetos de la clase? Comportamiento Comportamiento: Qué saben hacer los objetos de la clase? Restricciones Afirmaciones sobre los atributos que SIEMPRE se deben cumplir Metodología Orientada a Objetos Clase - Objeto Atributos Características observables de los objetos de la clase Características relevantes al Mundo del Problema Definen la información asociada con un objeto Permiten distinguir un objeto de otro Determinan el estado del objeto Nombre Atributos Comportamiento 10 Metodología Orientada a Objetos Clase - Objeto Ejemplos de atributos Estudiante nombre cedula promedio ... Metodología Orientada a Objetos Clase - Objeto Métodos El comportamiento de los objetos de una clase se describe a través de un conjunto de métodos. Un método simula una operación (o proceso) que los objetos de la clase saben realizar. Los métodos permiten "administrar" el estado del objetos: cambiar los valores de los atributos. Los métodos permiten consultar el estado de los objetos: conocer los valores de los atributos Nombre Atributos Comportamiento 11 Metodología Orientada a Objetos Clase - Objeto Composición de clases Permite representar relaciones de composición entre dos clases ...está compuesto de ... ... tiene un ... ... es parte de ... Ejemplos: una persona tiene una fecha de nacimiento un carro está compuesto de un motor, carrocería, cuatro ruedas, etc. 12