Análisis y Diseño Orientado a
Objetos
Lenguaje de Modelado Unificado
UML(Unified Modeling Language)
1
Mayo de 2013
Introducción (I)
• Un programa orientado a objetos está formado por una colección de objetos que interaccionan conjuntamente para representar y solucionar algún problema.
2
objeto1
objeto2
objeto3
objeto4
objeto5
objeto7
objeto6
Introducción (II)
• El programa está constituido por un conjunto de objetos relacionados entre sí, los cuales permiten hacer la entrada de datos, los cálculos necesarios para resolver el problema y dar salida de datos convertidos en información.
3
Objetos
4
Objetos (I) • Son entes, entidades, sujetos o cosas que
encontramos en el dominio de un problema de nuestra realidad, entiéndase: en situaciones o problemas cotidianos o empresariales, organizacionales o institucionales, que se requiere manejar o solucionar mediante la computadora.
5
Objetos(II)
• Los objetos están formados por dos elementos:
1. Datos que representan su estructura. En otras palabras, atributos que describen su forma o apariencia.
2. Métodos que implementan las funciones propias de su comportamiento, es decir, métodos que manipulan los datos para hacer la entrada, proceso y salida de los mismos
6
Objetos – Representación en UML (III)
7
nombreObjeto
dato1 dato2 dato3 datoN
método1() método2() métodoN()
Datos que representan la estructura del objeto
Implementan las operaciones que se deben realizar sobre los datos
Objetos (IV)
• Cuándo y cómo identificar objetos
▫ ¿Cuándo? En la etapa de análisis del problema. Se estudia el problema y se identifican los objetos involucrados y sus relaciones.
▫ ¿Cómo? Se buscan los sustantivos presentes en la especificación; los sustantivos son los objetos.
8
Objetos (V)
• Definición del Problema.
▫ Elaborar un programa que permita calcular el sueldo de los médicos de un hospital.
9
Objetos (VI)
• Planteamiento del Problema.
▫ En el Hospital “Mata Sanitos A. C” trabajan varios médicos; por cada médico se tienen los datos: Nombre, Hora de entrada, Hora de Salida, Localización dependiendo de la hora, Salario por horas trabajadas.
▫ Cada quincena se requiere emitir un cheque con los datos: Nombre del médico y sueldo a pagar.
10
Ejercicio 1
• Identificar los objetos y escribir tres ejemplos de posibles médicos utilizando el diagrama que maneja UML.
11
Clases y su relación con los objetos
• La clase en una representación abstracta que describe a un conjunto de objetos, es decir, es un tipo de dato abstracto que representa a un conjunto de objetos que tienen en común una misma estructura (de datos) y un mismo comportamiento (las mismas funciones), ósea, que son la misma cosa y hacen lo mismo.
12
Clases y su relación con los objetos (I)
• Un conjunto de objetos iguales debe ser representado en forma abstracta por una clase.
• La clase fungirá como una plantilla o molde para crear todos y cada uno de los objetos necesarios para solucionar el problema.
13
Determinar las clases
• Una vez identificados los objetos se procede a diseñar el diagrama de clases, para lo cual debemos:
1. Determinar la(s) clase(s) que necesitaremos.
2. Dibujar el diagrama con la representación de la(s) clase(s) y sus instancias.
14
Representación de la clase y sus
instancias
• En un programa OO debemos definir una clase como un nuevo tipo de dato abstracto y, con base en la referida de clase, vamos a generar instancias de dicha clase.
15
Relación entre una clase y sus
instancias
16
Médico
objetoMedico
Juan
8:00
16:00
Pediatría
15000
objetoMedico
Alejandra
9:00
19:00
Oncología
18000
objetoMedico
Rubén
10:00
20:00
Urgencias
19000
Clase
Instancias
“objeto de”
17
Diseñar las clases
Encapsulación (I)
• Significa colocar juntos los datos y los métodos dentro de un objeto.
• El programador debe pensar en el código y los datos juntos durante el diseño del programa.
• Los datos dirigen el flujo del código y el código manipula la forma y valores de los datos.
18
Encapsulación (II)
• Cuando el código y los datos son entidades separadas, siempre existe el peligro de llamar al método correcto con los datos erróneos o viceversa.
• El objeto mantiene en sincronía los datos y los métodos empacados juntos.
19
Encapsulación (III)
• Al diseñar la estructura de la clase debemos considerar:
1. Definir a los datos que representarán a los objetos de la clase. Proporcionados por el usuario
Generados mediante algún cálculo.
2. Definir los métodos que implementarán las acciones de los objetos. Colocan o establecen valores a los datos del objeto.
Acceden u obtienen los valores de los datos para utilizarlos.
20
Tarea de investigación 2 • Explicar a que se refiere el término de “visibilidad de
los datos y métodos” en el paradigma de la programación orientada a objetos.
• ¿Cuales son los niveles de visibilidad y que símbolos utiliza UML para representarlos?
• Explica porqué es importante el uso de la visibilidad en atributos y métodos en la POO.
• ¿Cuál es el criterio que seguirías para determinar el nivel de visibilidad de un atributo o método en un programa?
• Individual, escrita a mano en una hoja blanca, sólo incluir una
portada.
21