Presentación  Diseño Orientado a Objetos  Ing. Mauricio Paletta, Msc      INGENIERÍA EN INFORMÁTICA                Program...
Diseño Orientado a Objetos• Desarrollo detallado de la solución.• Resultado: Problema detallado como una  preparación para...
Diseño Orientado a Objetos• Preocuparse más por el modelo dinámico  (comportamiento) que por el modelo  estático (estructu...
Diseño Orientado a ObjetosPaso 1: Definir la Arquitectura de la aplicación • Incluye:  o Diálogos / formas para la entrad...
Diseño Orientado a Objetoso Componentes del dominio: visión técnica de la  aplicación (clases).o Interfaz con otros elemen...
Diseño Orientado a ObjetosPaso 2: Detallar las clases • Cada clase identificada en el análisis debe ser detallada   incor...
Diseño Orientado a Objetos• NOTA: Mientras más detallada la clase, menos impacto  a la hora de implementar. Hay que record...
Diseño Orientado a Objetoso Recordar que las clases están asociadas a conceptos  de la vida real (abstracción), por lo que...
Diseño Orientado a Objetos• Contenido:        Ejemplo:                   Programación II
Diseño Orientado a ObjetosPaso 3: Desarrollar los modelos de Estado • Permiten describir el comportamiento de los objetos...
Diseño Orientado a Objetos• Diagramas de cambio de estado de UML.• En esta etapa es prudente también realizar el algoritmo...
Diseño Orientado a ObjetosPaso 4: Elaborar los modelos de Colaboración • Muestran la forma en que los objetos colaboran e...
Diseño Orientado a ObjetosPaso 5: Identificar componentes del dominio • Componente: Representa el elemento físico asociad...
Diseño Orientado a Objetos• Tres tipos:  o De distribución: ejecutables (dll, ActiveX, obj, lib, etc.).  o Para trabajar e...
Diseño Orientado a Objetos• Ejemplo: Mecanismo de ayuda en línea de Windows o Archivo de ayuda (.Hlp) – componente de dist...
Diseño Orientado a ObjetosPaso 6: Prueba de componentes y clases • Prueba de cada caso de uso para determinar la   satisf...
Ejercicio: Reloj digital• Consta de dos paneles digitales (pantallas), uno para  mostrar la hora y el otro para mostrar lo...
Ejercicio: Reloj digital• Consta de dos paneles digitales (pantallas), uno para  mostrar la hora y el otro para mostrar lo...
Ejercicio: Reloj digital                                       Reloj Digital                                <<include>>   ...
Ejercicio: Reloj digitalReloj2Panel    2   Dígito   7   Led                                Programación II
Ejercicio: Reloj digital               Programación II
Ejercicio: Reloj digital                                          IncrementarHora( )                                      ...
Ejercicio: Reloj digitalClase Panel                                    AsignarValor( V )               Valor = 0   Asignar...
Ejercicio: Reloj digitalClase Led      Apagar( )                 Encender( )                           Encender( )        ...
Ejercicio: Reloj digital                                         2: PanelHora.AsignarValor(0)       1: Inicializar( )     ...
Ejercicio: Reloj digital            1: MostrarHoraActual( )                 2: ObtenerValor( )                            ...
Ejercicio: Gestión de una biblioteca • La biblioteca maneja y puede prestar libros y revistas   que están registrados en e...
Ejercicio: Gestión de una biblioteca                                     Sistema Biblioteca             Hacer Reservación ...
Ejercicio: Gestión de una biblioteca                           0..*   Copia de               Item                         ...
Ejercicio: Gestión de una biblioteca                    Programación II
Ejercicio: Gestión de una biblioteca                      Clase Título                         Reservar                   ...
Ejercicio: Gestión de una biblioteca                                                   3: BuscarPorNombre( )        Caso d...
Ejercicio: Gestión de una biblioteca                            : Forma                : Título     : Información   : Prés...
Ejercicio: Gestión de una biblioteca                                       : Forma Título                   : Título      ...
Ejercicio: Gestión de una biblioteca                   Biblioteca     Item.java     Préstamo.java                  Informa...
Ejercicio: Gestión de una biblioteca        PC con soporte de Java                                        Impresora       ...
Próxima SlideShare
Cargando en…5
×

Diseno

638 visualizaciones

Publicado el

Tecnología Orientada a Objetos - UNEG - Profesor Mauricio Paletta

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
638
En SlideShare
0
De insertados
0
Número de insertados
2
Acciones
Compartido
0
Descargas
2
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Diseno

  1. 1. Presentación Diseño Orientado a Objetos Ing. Mauricio Paletta, Msc INGENIERÍA EN INFORMÁTICA Programación IIUNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA Programación II
  2. 2. Diseño Orientado a Objetos• 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. Programación II
  3. 3. Diseño Orientado a Objetos• 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. Programación II
  4. 4. Diseño Orientado a Objetos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. Programación II
  5. 5. Diseño Orientado a Objetoso Componentes del dominio: visión técnica de la aplicación (clases).o Interfaz con otros elementos: base de datos, otras aplicaciones, servidores, etc. Programación II
  6. 6. Diseño Orientado a Objetos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. Programación II
  7. 7. Diseño Orientado a Objetos• 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: 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
  8. 8. Diseño Orientado a Objetoso 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
  9. 9. Diseño Orientado a Objetos• Contenido: Ejemplo: Programación II
  10. 10. Diseño Orientado a Objetos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. Programación II
  11. 11. Diseño Orientado a Objetos• 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. Programación II
  12. 12. Diseño Orientado a Objetos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. Programación II
  13. 13. Diseño Orientado a Objetos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. Programación II
  14. 14. Diseño Orientado a Objetos• 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. Programación II
  15. 15. Diseño Orientado a Objetos• 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. Programación II
  16. 16. Diseño Orientado a Objetos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. Programación II
  17. 17. Ejercicio: Reloj digital• 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. Programación II
  18. 18. Ejercicio: Reloj digital• 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. Dígito Segmento / Led Programación II
  19. 19. Ejercicio: Reloj digital Reloj Digital <<include>> Inicializar <<include>> Modificar Dígito Modificar Led Incrementar Hora <<include>> Incrementar MinutoUsuario Leer Led <<include>> Asignar Valor <<include>> Leer Panel Mostrar Hora Actual Usuario Programación II
  20. 20. Ejercicio: Reloj digitalReloj2Panel 2 Dígito 7 Led Programación II
  21. 21. Ejercicio: Reloj digital Programación II
  22. 22. Ejercicio: Reloj digital IncrementarHora( ) IncrementarHoras( ) Inicializar( ) PanelHora = Asignar( H, M ) PanelHora + 1 IncrementarHoras( ) IncrementarHoras( ) IncrementarMinutos( ) Inicializar( ) IncrementarMinutos( ) PanelHora = 0 PanelMinuto = PanelMinuto = 0 PanelMinuto + 1 IncrementarMinutos( )Inicializar( ) Asignar( H, M ) IncrementarMinutos( ) Asignar( H, M ) PanelHora = H PanelMinuto = M Inicializar( ) Asignar( H, M ) Programación II
  23. 23. Ejercicio: Reloj digitalClase Panel AsignarValor( V ) Valor = 0 AsignarValor( V ) Valor = V {LímiteInferior <= V <= LímiteSuperior }Clase Dígito AsignarValor( V ) Valor = 0 AsignarValor( V ) Valor = V Programación II
  24. 24. Ejercicio: Reloj digitalClase Led Apagar( ) Encender( ) Encender( ) Apagado Encendido Apagar( ) Programación II
  25. 25. Ejercicio: Reloj digital 2: PanelHora.AsignarValor(0) 1: Inicializar( ) 3: PanelMinuto.AsignarValor(0) : Reloj : Panel: Usuario 4: Dígitos.AsignarValor(0) : Led : Dígito 5: Leds.Encender( ) / Leds.Apagar( ) Programación II
  26. 26. Ejercicio: Reloj digital 1: MostrarHoraActual( ) 2: ObtenerValor( ) : Reloj : Panel 8: Hora Actual 7: Valor: Usuario 6: Valor 3: ObtenerValor( ) 5: Estado : Led : Dígito 4: ObtenerEstado( ) Programación II
  27. 27. Ejercicio: Gestión de una biblioteca • 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. Programación II
  28. 28. Ejercicio: Gestión de una biblioteca Sistema Biblioteca Hacer Reservación Agregar Título Remover o Modificar Título <<include>> <<include>> Remover Reservación Empleado <<include>> Agregar Item <<include>> Mantenimiento Empleado <<include>> Prestar Item Remover Item <<include>> <<include>> Cliente Regresar Item Agregar Cliente Remover o Modificar Cliente Programación II
  29. 29. Ejercicio: Gestión de una biblioteca 0..* Copia de Item Título Referido a Libro Revista 0..1 Préstamo Referido a 0..* Tiene 0..* Tiene Información Cliente Reservación 0..* Programación II
  30. 30. Ejercicio: Gestión de una biblioteca Programación II
  31. 31. Ejercicio: Gestión de una biblioteca Clase Título Reservar No reservado Reservar Remover Reservación Reservado Remover Reservación Programación II
  32. 32. Ejercicio: Gestión de una biblioteca 3: BuscarPorNombre( ) Caso de Uso Agregar Título 4: BuscarPorISBN( ) 5: IniciarITítulo( ) 1: IniciarForma( ) 8: AgregarItem( ) 2: BotónAgregar( ) 9: Almacenar( ) : Forma : Título Título : Empleado 6: IniciarItem( ) 7: Almacenar( ) : Item Programación II
  33. 33. Ejercicio: Gestión de una biblioteca : Forma : Título : Información : Préstamo : Item: Empleado Préstamo Cliente 1: BuscarTítulo( ) 2:Buscar( ) 3: BuscarItem( ) 4: BuscarPorTítulo( ) 5: IdentificarCliente( ) 6: Buscar( ) 7: Crear( ) Caso de Uso Prestar Item TECNOLOGÍA ORIENTADA A OBJETOS Programación II
  34. 34. Ejercicio: Gestión de una biblioteca : Forma Título : Título : Item Empleado : Empleado 1: IniciarForma( ) Caso de Uso Agregar Título 2: BotónAgregar( ) 3: BuscarPorNombre( ) 4: BuscarPorISBN( ) 5: IniciarTítulo( ) 6: IniciarItem( ) 7: Almacenar( ) 8: AgregarItem( ) 9: Almacenar( ) TECNOLOGÍA ORIENTADA A OBJETOS Programación II
  35. 35. Ejercicio: Gestión de una biblioteca Biblioteca Item.java Préstamo.java Información Cliente.java Título.java Reservación.ja va Programación II
  36. 36. Ejercicio: Gestión de una biblioteca PC con soporte de Java Impresora Programación II

×