Upload
karlalopezbello
View
541
Download
1
Embed Size (px)
DESCRIPTION
Tecnología Orientada a Objetos - UNEG - Profesor Mauricio Paletta
Citation preview
Programación II
Ing. Mauricio Paletta, Msc
Diseño Orientado a Objetos
Presentación
UNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA
INGENIERÍA EN INFORMÁTICA
Programación II
Programación II
• Desarrollo detallado de la solución.
• Resultado: Problema detallado como una
preparación para la implementación /
programación.
• Preocuparse por todos los elementos
obviados en el Análisis y la visión global del
problema.
Diseño Orientado a Objetos
Programación II
• Preocuparse más por el modelo dinámico
(comportamiento) que por el modelo
estático (estructura).
• Productos: Diagrama detallado de clases,
diagramas de cambio de estado y
diagramas de colaboración / secuencia.
• 6 pasos a realizar.
Diseño Orientado a Objetos
Programación II
Paso 1: Definir la Arquitectura de la
aplicación
• Incluye:
o Diálogos / formas para la entrada / salida de datos
interacción con el usuario.
o Controlador de caso de uso: controla el proceso de un
caso de uso (prueba su satisfacción).
o Controlador de proceso (workflow): inicia, monitorea y
controla el procesamiento asociado a las secuencias
de eventos del problema.
Diseño Orientado a Objetos
Programación II
o Componentes del dominio: visión técnica de la
aplicación (clases).
o Interfaz con otros elementos: base de datos, otras
aplicaciones, servidores, etc.
Diseño Orientado a Objetos
Programación II
Paso 2: Detallar las clases
• Cada clase identificada en el análisis debe ser detallada
incorporando las responsabilidades (breve descripción
del objetivo de la clase), restricciones (limitaciones o
comentarios sobre alguno de sus elementos), atributos
y métodos.
• Por cada elemento se puede indicar también el criterio
de interfaz asociado (privado, protegido o público).
• Para cada método se puede indicar también la
descripción de los parámetros (cantidad y tipo de datos)
y el tipo de dato de retorno de la operación, si es el
caso.
Diseño Orientado a Objetos
Programación II
• NOTA: Mientras más detallada la clase, menos impacto
a la hora de implementar. Hay que recordar que algunas
herramientas CASE permiten la generación automática
de código.
• Sugerencias:
Diseño Orientado a Objetos
o Todos los conceptos identificados en el análisis que
no fueron considerados como clases, son posibles
atributos de alguna de las clases resultantes.
o Todos los verbos /acciones identificados en el
contexto del problema, son posibles métodos.
Programación II
Diseño Orientado a Objetos
o Recordar que las clases están asociadas a conceptos
de la vida real (abstracción), por lo que la
identificación de atributos y métodos debe estar
asociado al concepto de la vida real más que al
aporte que este concepto presenta en el problema a
resolver. Ayuda a la reutilización de componentes.
Programación II
• Contenido: Ejemplo:
Diseño Orientado a Objetos
Programación II
Paso 3: Desarrollar los modelos de
Estado
• Permiten describir el comportamiento de los objetos.
Ayuda a clarificar si los métodos identificados en el paso
anterior están completos (faltan algunos) y/o hay de
más (sobran algunos).
• Representan la modificación de los estados (cambios en
los atributos del objeto) como respuesta a los sucesos /
eventos y el tiempo.
Diseño Orientado a Objetos
Programación II
• Diagramas de cambio de estado de UML.
• En esta etapa es prudente también realizar el algoritmo
detallado de cada método. En UML se puede realizar
haciendo uso de los diagramas de actividad, aunque es
posible usar otra representación (diagrama de flujo,
pseudolenguaje, etc.). Tener presente la posible
generación automática de código.
Diseño Orientado a Objetos
Programación II
Paso 4: Elaborar los modelos de
Colaboración• Muestran la forma en que los objetos colaboran entre sí
(intercambio de mensajes) para satisfacer los objetivos
del problema.
• Ayudan a clarificar si la interfaz asignada para cada uno
de los métodos fue o no la correcta. No puede haber
intercambio de mensajes entre objetos si los métodos
correspondientes no son públicos.
• También permiten clarificar la completitud o no del
protocolo del objeto.
• Diagramas de colaboración y diagramas de secuencias
de UML.
Diseño Orientado a Objetos
Programación II
Paso 5: Identificar componentes del
dominio• Componente: Representa el elemento físico asociado a
la abstracción conceptual o clase (tabla, archivo de
datos, ejecutable, dll, documento, etc.).
• Un componente puede ser la implementación de más de
una clase.
Diseño Orientado a Objetos
Programación II
• Tres tipos:
o De distribución: ejecutables (dll, ActiveX, obj, lib, etc.).
o Para trabajar en el producto: usados de forma estática
para crear los anteriores (archivos de bases de datos,
de código fuente, etc.).
o De ejecución: creados de forma dinámica durante la
ejecución del sistema.
Diseño Orientado a Objetos
Programación II
• Ejemplo: Mecanismo de ayuda en línea de Windows
o Archivo de ayuda (.Hlp)– componente de distribución.
o Tema de contenido (.Cnt) – componente para trabajar
en el producto.
o Búsqueda de texto (.Fts) – componentes de
ejecución.
Indice general (.Gio)
• Diagrama de Componentes y Diagrama de Distribución
de UML.
Diseño Orientado a Objetos
Programación II
Paso 6: Prueba de componentes y
clases
• Prueba de cada caso de uso para determinar la
satisfacción de los requerimientos del problema.
• Permite identificar las operaciones y propiedades
faltantes.
• Definir pre-condiciones y pos-condiciones de las
operaciones de cada clase.
• Prueba de todas las operaciones / métodos.
Diseño Orientado a Objetos
Programación II
• Consta de dos paneles digitales (pantallas), uno para
mostrar la hora y el otro para mostrar los minutos
actuales. El primero muestra valores entre 0 y 23 y el
segundo entre 0 y 59.
• El usuario debe poder inicializar el reloj (colocar un
valor igual a 0 en cada panel); debe poder incrementar
el reloj tanto por minutos como por horas; poder poner
en hora el reloj a un valor
cualquiera; pedir al reloj
que muestre su valor u hora
actual.
Ejercicio: Reloj digital
Programación II
• Consta de dos paneles digitales (pantallas), uno para
mostrar la hora y el otro para mostrar los minutos
actuales. El primero muestra valores entre 0 y 23 y el
segundo entre 0 y 59.
• El usuario debe poder inicializar el reloj (colocar un
valor igual a 0 en cada panel); debe poder incrementar
el reloj tanto por minutos como por horas; poder poner
en hora el reloj a un valor
cualquiera; pedir al reloj
que muestre su valor u hora
actual.
Ejercicio: Reloj digital
Dígito
Segmento / Led
Programación II
Reloj Digital
Incrementar Hora
Incrementar Minuto
Asignar Valor
Usuario
Modificar LedModificar Dígito
Inicializar
<<include>>
<<include>>
Mostrar Hora ActualUsuario
Leer Panel
Leer Led<<include>>
<<include>>
<<include>>
Ejercicio: Reloj digital
Programación II
Reloj
Panel
2
Dígito2 Led7
Ejercicio: Reloj digital
Programación II
Ejercicio: Reloj digital
Programación II
PanelHora = 0
PanelMinuto = 0
PanelHora =
PanelHora + 1
PanelMinuto =
PanelMinuto + 1
PanelHora = H
PanelMinuto = M
IncrementarHoras( )
IncrementarMinutos( )
Asignar( H, M )
IncrementarHora( )
Asignar( H, M )
IncrementarMinutos( )
Inicializar( )
Inicializar( )
Asignar( H, M )
IncrementarHoras( )
Inicializar( )
IncrementarMinutos( )
Asignar( H, M )
Inicializar( )
IncrementarMinutos( )
IncrementarHoras( )
Ejercicio: Reloj digital
Programación II
Valor = 0 Valor = V
Clase Panel
AsignarValor( V )
AsignarValor( V )
{LímiteInferior <= V <= LímiteSuperior }
Valor = 0 Valor = VAsignarValor( V )
AsignarValor( V )Clase Dígito
Ejercicio: Reloj digital
Programación II
EncendidoApagado
Encender( )
Apagar( )
Apagar( ) Encender( )Clase Led
Ejercicio: Reloj digital
Programación II
: Usuario
: Reloj : Panel
: Dígito : Led
1: Inicializar( )
2: PanelHora.AsignarValor(0)
3: PanelMinuto.AsignarValor(0)
4: Dígitos.AsignarValor(0)
5: Leds.Encender( ) / Leds.Apagar( )
Ejercicio: Reloj digital
Programación II
: Usuario
: Reloj : Panel
: Dígito : Led
1: MostrarHoraActual( )
8: Hora Actual
2: ObtenerValor( )
7: Valor
3: ObtenerValor( )6: Valor
4: ObtenerEstado( )
5: Estado
Ejercicio: Reloj digital
Programación II
• La biblioteca maneja y puede prestar libros y revistas
que están registrados en el sistema.
• La biblioteca maneja la adquisición de nuevos títulos.
Se compran varias copias de los títulos más populares.
Libros y revistas viejos son removidos.
• Un empleado de la biblioteca interactúa con los clientes.
• Un cliente puede reservar un libro o revista que no está
disponible actualmente. La reservación se cancela
cuando el cliente retira el ítem una vez que es notificado
de su llegada o por un proceso explícito de cancelación.
• El sistema debe poder crear, modificar y eliminar
información sobre títulos, clientes, préstamos y
reservaciones.
Ejercicio: Gestión de una biblioteca
Programación II
Sistema Biblioteca
Cliente
Hacer Reservación
Empleado
Regresar Item
Prestar Item
Remover Reservación
<<include>>
Agregar TítuloRemover o Modificar Título
Agregar Item
Remover Item
Agregar Cliente
Remover o Modificar Cliente
EmpleadoMantenimiento
<<include>>
<<include>>
<<include>>
<<include>>
<<include>><<include>>
Ejercicio: Gestión de una biblioteca
Programación II
Libro Revista
Item
Préstamo
0..10..1
Referido a
Información Cliente
0..*0..*
Tiene
Reservación
0..*0..*
Tiene
Título0..*0..* Copia de
0..*
Referido a
0..*
Ejercicio: Gestión de una biblioteca
Programación II
Ejercicio: Gestión de una biblioteca
Programación II
No
reservado
Reservado
Remover ReservaciónReservar
Remover Reservación
Reservar
Clase Título
Ejercicio: Gestión de una biblioteca
Programación II
Caso de Uso
Agregar Título
: Empleado
: Forma
Título
: Título
: Item
1: IniciarForma( )
2: BotónAgregar( )
3: BuscarPorNombre( )
4: BuscarPorISBN( )
5: IniciarITítulo( )
6: IniciarItem( )
7: Almacenar( )
8: AgregarItem( )
9: Almacenar( )
Ejercicio: Gestión de una biblioteca
Programación IITECNOLOGÍA ORIENTADA A OBJETOS
: Empleado
: Forma
Préstamo
: Título : Información
Cliente
: Préstamo : Item
1: BuscarTítulo( )2:Buscar( )
3: BuscarItem( )
4: BuscarPorTítulo( )
5: IdentificarCliente( )6: Buscar( )
7: Crear( )
Caso de Uso
Prestar Item
Ejercicio: Gestión de una biblioteca
Programación II
: Forma Título : Título : ItemEmpleado :
Empleado
1: IniciarForma( )
2: BotónAgregar( )
3: BuscarPorNombre( )
4: BuscarPorISBN( )
5: IniciarTítulo( )
6: IniciarItem( )
7: Almacenar( )
8: AgregarItem( )
9: Almacenar( )
Caso de Uso
Agregar Título
TECNOLOGÍA ORIENTADA A OBJETOS
Ejercicio: Gestión de una biblioteca
Programación II
Biblioteca
Item.java Préstamo.java Información
Cliente.java
Reservación.ja
va
Título.java
Ejercicio: Gestión de una biblioteca
Programación II
PC con soporte de Java
Impresora
Ejercicio: Gestión de una biblioteca