SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
Presentación




  Diseño Orientado a Objetos

  Ing. Mauricio Paletta, Msc
      INGENIERÍA EN INFORMÁTICA
                Programación II




UNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA

                             Programación II
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
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
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
Diseño Orientado a Objetos

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.




                             Programación II
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
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
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
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.
   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
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
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
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
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
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
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
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
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
Ejercicio: Reloj digital


                                       Reloj Digital

                                <<include>>
             Inicializar
                                                       <<include>>


                                      Modificar Dígito               Modificar Led
           Incrementar Hora


                                <<include>>

           Incrementar Minuto
Usuario
                                                              Leer Led
                                       <<include>>

             Asignar Valor                             <<include>>


                                     Leer Panel                Mostrar Hora Actual
                                                                                     Usuario




                                                  Programación II
Ejercicio: Reloj digital


Reloj




2
Panel    2   Dígito   7   Led




                                Programación II
Ejercicio: Reloj digital




               Programación II
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
Ejercicio: Reloj digital


Clase 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
Ejercicio: Reloj digital



Clase Led      Apagar( )                 Encender( )

                           Encender( )

               Apagado                   Encendido


                             Apagar( )




                              Programación II
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
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
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
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
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
Ejercicio: Gestión de una biblioteca




                    Programación II
Ejercicio: Gestión de una biblioteca


                      Clase Título

                         Reservar
                           No
                        reservado



           Reservar                 Remover Reservación


                       Reservado




                  Remover Reservación




                                          Programación II
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
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
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
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
Ejercicio: Gestión de una biblioteca




        PC con soporte de Java


                                        Impresora




                                 Programación II

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Diagrama de casos de usos
Diagrama de casos de usosDiagrama de casos de usos
Diagrama de casos de usos
 
Diccionario de datos
Diccionario de datosDiccionario de datos
Diccionario de datos
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
UML
UMLUML
UML
 
Cuadro comparativo de SMBD
Cuadro comparativo de SMBD Cuadro comparativo de SMBD
Cuadro comparativo de SMBD
 
Tecnicas y herramientas para el desarrollo de software
Tecnicas y herramientas para el desarrollo de softwareTecnicas y herramientas para el desarrollo de software
Tecnicas y herramientas para el desarrollo de software
 
Metodologia orientada a objeto
Metodologia orientada a objetoMetodologia orientada a objeto
Metodologia orientada a objeto
 
Diagramas de Flujos de Datos
Diagramas de Flujos de DatosDiagramas de Flujos de Datos
Diagramas de Flujos de Datos
 
Metodo de busqueda
Metodo de busquedaMetodo de busqueda
Metodo de busqueda
 
Componentes de sgbd
Componentes de sgbdComponentes de sgbd
Componentes de sgbd
 
Sesion 2 1 modelo del negocio
Sesion 2 1 modelo del negocioSesion 2 1 modelo del negocio
Sesion 2 1 modelo del negocio
 
Sistema de informacion empresarial
Sistema de informacion empresarialSistema de informacion empresarial
Sistema de informacion empresarial
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
 
Diseño a Nivel de Componentes
Diseño a Nivel de ComponentesDiseño a Nivel de Componentes
Diseño a Nivel de Componentes
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
 
TRIGGERS O DISPARADORES
TRIGGERS O DISPARADORESTRIGGERS O DISPARADORES
TRIGGERS O DISPARADORES
 
A) identificación del lenguaje java script
A) identificación del lenguaje java scriptA) identificación del lenguaje java script
A) identificación del lenguaje java script
 
Tablas Hash
Tablas HashTablas Hash
Tablas Hash
 
Ordenamiento burbuja
Ordenamiento burbujaOrdenamiento burbuja
Ordenamiento burbuja
 
El DBA y sus funciones
El DBA y sus funcionesEl DBA y sus funciones
El DBA y sus funciones
 

Destacado

Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetoswellington018
 
Java – ejercicio 3
Java – ejercicio 3Java – ejercicio 3
Java – ejercicio 3ayreonmx
 
Curso Uml 2.4 Diagramas De Comportamiento
Curso Uml   2.4 Diagramas De ComportamientoCurso Uml   2.4 Diagramas De Comportamiento
Curso Uml 2.4 Diagramas De ComportamientoEmilio Aviles Avila
 
Diagramas de estados
Diagramas de estadosDiagramas de estados
Diagramas de estadosstill01
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clasesNedoww Haw
 
Fisica analisis grafico
Fisica analisis graficoFisica analisis grafico
Fisica analisis graficoKim Ryz
 

Destacado (6)

Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Java – ejercicio 3
Java – ejercicio 3Java – ejercicio 3
Java – ejercicio 3
 
Curso Uml 2.4 Diagramas De Comportamiento
Curso Uml   2.4 Diagramas De ComportamientoCurso Uml   2.4 Diagramas De Comportamiento
Curso Uml 2.4 Diagramas De Comportamiento
 
Diagramas de estados
Diagramas de estadosDiagramas de estados
Diagramas de estados
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Fisica analisis grafico
Fisica analisis graficoFisica analisis grafico
Fisica analisis grafico
 

Similar a Diseno

Similar a Diseno (20)

Clase 01
Clase 01Clase 01
Clase 01
 
Webquest 11 03 aplicacion proyecto tecnologico
Webquest 11 03 aplicacion proyecto tecnologicoWebquest 11 03 aplicacion proyecto tecnologico
Webquest 11 03 aplicacion proyecto tecnologico
 
Derive 1(introduccion)
Derive 1(introduccion)Derive 1(introduccion)
Derive 1(introduccion)
 
Derive 1(introduccion)
Derive 1(introduccion)Derive 1(introduccion)
Derive 1(introduccion)
 
Guia 5 dev c++
Guia 5 dev c++Guia 5 dev c++
Guia 5 dev c++
 
Introduccion a awt
Introduccion a awtIntroduccion a awt
Introduccion a awt
 
Introduccion y operaciones basicas (matlab)
Introduccion y operaciones basicas (matlab)Introduccion y operaciones basicas (matlab)
Introduccion y operaciones basicas (matlab)
 
Diseño orientado a objeto
Diseño orientado a objetoDiseño orientado a objeto
Diseño orientado a objeto
 
05 guia-arena
05 guia-arena05 guia-arena
05 guia-arena
 
Proyecto tecnologico
Proyecto tecnologicoProyecto tecnologico
Proyecto tecnologico
 
Cur04 05 pract06c++
Cur04 05 pract06c++Cur04 05 pract06c++
Cur04 05 pract06c++
 
Webquest 11 03 aplicacion proyecto tecnologico
Webquest 11 03 aplicacion proyecto tecnologicoWebquest 11 03 aplicacion proyecto tecnologico
Webquest 11 03 aplicacion proyecto tecnologico
 
widgets.pdf
widgets.pdfwidgets.pdf
widgets.pdf
 
CursoProject mejorado.ppt
CursoProject mejorado.pptCursoProject mejorado.ppt
CursoProject mejorado.ppt
 
Aministracion gr5 proyecto grupo 4
Aministracion gr5 proyecto grupo 4Aministracion gr5 proyecto grupo 4
Aministracion gr5 proyecto grupo 4
 
PRESENTACION.pptx
PRESENTACION.pptxPRESENTACION.pptx
PRESENTACION.pptx
 
12 feb 2013 investigación (1)
12 feb 2013 investigación (1)12 feb 2013 investigación (1)
12 feb 2013 investigación (1)
 
Ms project
Ms projectMs project
Ms project
 
Microsoft proyect
Microsoft proyectMicrosoft proyect
Microsoft proyect
 
Tutorial de Ms Project
Tutorial de Ms Project Tutorial de Ms Project
Tutorial de Ms Project
 

Más de karlalopezbello

03 -fundamentos_de_la_tecnologia_orientada_a_objetos
03  -fundamentos_de_la_tecnologia_orientada_a_objetos03  -fundamentos_de_la_tecnologia_orientada_a_objetos
03 -fundamentos_de_la_tecnologia_orientada_a_objetoskarlalopezbello
 
02 -introduccion_a_la_tecnologia_orientada_a_objetos
02  -introduccion_a_la_tecnologia_orientada_a_objetos02  -introduccion_a_la_tecnologia_orientada_a_objetos
02 -introduccion_a_la_tecnologia_orientada_a_objetoskarlalopezbello
 
Programacion ii modulo3-leccion2
Programacion ii modulo3-leccion2Programacion ii modulo3-leccion2
Programacion ii modulo3-leccion2karlalopezbello
 
Programacion ii modulo3-leccion1
Programacion ii modulo3-leccion1Programacion ii modulo3-leccion1
Programacion ii modulo3-leccion1karlalopezbello
 
Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3karlalopezbello
 
Programacion ii modulo2-leccion2
Programacion ii modulo2-leccion2Programacion ii modulo2-leccion2
Programacion ii modulo2-leccion2karlalopezbello
 
Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1karlalopezbello
 
Programacion ii modulo1-leccion1-
Programacion ii modulo1-leccion1-Programacion ii modulo1-leccion1-
Programacion ii modulo1-leccion1-karlalopezbello
 
Sistemas de comunicacion
Sistemas de comunicacionSistemas de comunicacion
Sistemas de comunicacionkarlalopezbello
 
Introduccion unegvirtual
Introduccion unegvirtualIntroduccion unegvirtual
Introduccion unegvirtualkarlalopezbello
 
Guia para montar_el_aula_1_
Guia para montar_el_aula_1_Guia para montar_el_aula_1_
Guia para montar_el_aula_1_karlalopezbello
 
Configuracion del perfil
Configuracion del perfilConfiguracion del perfil
Configuracion del perfilkarlalopezbello
 
Configuracion del perfil
Configuracion del perfilConfiguracion del perfil
Configuracion del perfilkarlalopezbello
 

Más de karlalopezbello (20)

03 -fundamentos_de_la_tecnologia_orientada_a_objetos
03  -fundamentos_de_la_tecnologia_orientada_a_objetos03  -fundamentos_de_la_tecnologia_orientada_a_objetos
03 -fundamentos_de_la_tecnologia_orientada_a_objetos
 
02 -introduccion_a_la_tecnologia_orientada_a_objetos
02  -introduccion_a_la_tecnologia_orientada_a_objetos02  -introduccion_a_la_tecnologia_orientada_a_objetos
02 -introduccion_a_la_tecnologia_orientada_a_objetos
 
Programacion ii modulo3-leccion2
Programacion ii modulo3-leccion2Programacion ii modulo3-leccion2
Programacion ii modulo3-leccion2
 
Programacion ii modulo3-leccion1
Programacion ii modulo3-leccion1Programacion ii modulo3-leccion1
Programacion ii modulo3-leccion1
 
Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3
 
Programacion ii modulo2-leccion2
Programacion ii modulo2-leccion2Programacion ii modulo2-leccion2
Programacion ii modulo2-leccion2
 
Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1
 
Programacion ii modulo1-leccion1-
Programacion ii modulo1-leccion1-Programacion ii modulo1-leccion1-
Programacion ii modulo1-leccion1-
 
Didactica del chat
Didactica del chatDidactica del chat
Didactica del chat
 
Didactica del foro
Didactica del foroDidactica del foro
Didactica del foro
 
Guia completa de_moodle
Guia completa de_moodleGuia completa de_moodle
Guia completa de_moodle
 
Publicacion de material
Publicacion de materialPublicacion de material
Publicacion de material
 
Sistemas de comunicacion
Sistemas de comunicacionSistemas de comunicacion
Sistemas de comunicacion
 
Actividades en moodle
Actividades en moodleActividades en moodle
Actividades en moodle
 
Plataforma moodle
Plataforma moodlePlataforma moodle
Plataforma moodle
 
Introduccion unegvirtual
Introduccion unegvirtualIntroduccion unegvirtual
Introduccion unegvirtual
 
Guia para montar_el_aula_1_
Guia para montar_el_aula_1_Guia para montar_el_aula_1_
Guia para montar_el_aula_1_
 
Configuracion del perfil
Configuracion del perfilConfiguracion del perfil
Configuracion del perfil
 
Configuracion del perfil
Configuracion del perfilConfiguracion del perfil
Configuracion del perfil
 
Transparencias7
Transparencias7Transparencias7
Transparencias7
 

Diseno

  • 1. Presentación Diseño Orientado a Objetos Ing. Mauricio Paletta, Msc INGENIERÍA EN INFORMÁTICA Programación II UNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA Programación II
  • 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. 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. 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. Diseño Orientado a Objetos 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. Programación II
  • 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. 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. 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
  • 9. Diseño Orientado a Objetos • Contenido: Ejemplo: Programación II
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. Ejercicio: Reloj digital Reloj Digital <<include>> Inicializar <<include>> Modificar Dígito Modificar Led Incrementar Hora <<include>> Incrementar Minuto Usuario Leer Led <<include>> Asignar Valor <<include>> Leer Panel Mostrar Hora Actual Usuario Programación II
  • 20. Ejercicio: Reloj digital Reloj 2 Panel 2 Dígito 7 Led Programación II
  • 21. Ejercicio: Reloj digital Programación II
  • 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. Ejercicio: Reloj digital Clase 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. Ejercicio: Reloj digital Clase Led Apagar( ) Encender( ) Encender( ) Apagado Encendido Apagar( ) Programación II
  • 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. 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. 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. 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. 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. Ejercicio: Gestión de una biblioteca Programación II
  • 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. 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. 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. 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. 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. Ejercicio: Gestión de una biblioteca PC con soporte de Java Impresora Programación II