SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
Presentación




  Análisis Orientado a Objetos

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




UNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA

                             Programación II
Análisis Orientado a Objetos

• Descomposición de un problema en sus
  partes.
• Resultado: Problema entendido como una
  preparación para el diseño.
• Preocuparse más por identificar los tipos de
  objetos que los objetos individuales.




                         Programación II
Análisis Orientado a Objetos

• Preocuparse más por el modelo estático
  (estructura) que por el modelo dinámico
  (comportamiento).
• Productos: Diagramas de casos de uso y
  diagrama de clases.
• 4 pasos a realizar.




                        Programación II
Análisis Orientado a Objetos

Paso 1: Identificar la idea y objetivos
 básicos del sistema
 • Primer contacto con el problema, se busca entenderlo
   de forma completa.
 • Técnicas que se pueden seguir:
  o Escribir entre 5 y 20 oraciones de la información que
    se haya podido recopilar mediante entrevistas.
  o Si ya se tiene un enunciado o documento explicativo,
    extraer las oraciones de allí.
  o Mapas mentales sobre el problema.



                               Programación II
Análisis Orientado a Objetos




                Programación II
Análisis Orientado a Objetos




                Programación II
Análisis Orientado a Objetos

Paso 2: Identificar actores / nombres
 • Los actores o nombres son posibles clases.
 • Se identifican a partir de las oraciones obtenidas en el
   paso anterior.
 • Todos los nombres deben ser considerados
   inicialmente, luego se hará un proceso de selección o
   filtrado.

 Ejemplo:

   “Un sistema de reservación para la venta de boletos a
   varias obras de teatro”

                                 Programación II
Análisis Orientado a Objetos

Paso 3: Identificar procesos /
 requerimientos
 • Descripción del sistema desde el punto de vista del
   usuario. Se conocen como casos de uso y se pueden
   representar mediante los diagramas de casos de uso de
   UML.
 • Colección de situaciones respecto al uso de un sistema.
   Cada escenario describe una secuencia de eventos.
   Cada secuencia se inicia por una persona, otro sistema,
   una parte del hardware o por el paso del tiempo. A estas
   entidades que inician secuencias se les conoce como
   actores.

                                Programación II
Análisis Orientado a Objetos

• El resultado de una secuencia debe ser algo utilizable
  ya sea por el actor que la inició o por otro actor.
• El detalle de la secuencia de eventos desde que un
  actor la inicia hasta que se llega al resultado se puede
  representar mediante los diagramas de actividad de
  UML.




                                Programación II
Análisis Orientado a Objetos

Paso 4: Identificar Clases y Asociaciones
 • Obtener la lista definitiva de conceptos que representan
   clases dentro del contexto del problema. Hay que
   aplicar criterios para identificar clases incorrectas o
   innecesarias.
 • Identificar las relaciones o asociaciones entre clases.
   Hay que aplicar criterios para saber si las asociaciones
   son o no correctas.
 • Realizar el Diagrama de Clases sin niveles de detalle.
   Representar las relaciones entre clases incluyendo los
   roles (breve descripción de su objetivo) y la multiplicidad
   (número de elementos involucrados en la relación).

                                 Programación II
Análisis Orientado a Objetos

Criterios para identificar clases
 incorrectas o innecesarias:
 • Clases redundantes: cuando dos clases expresan la
   misma información; se debe tomar el nombre más
   descriptivo. Ejemplo:
    cliente / pasajero – persona que va a tomar un vuelo
    cliente / usuario – ATM o cualquier servicio bancario




                               Programación II
Análisis Orientado a Objetos

• Clases irrelevantes: cuando una clase tiene poco o
  nada que ver con el problema. La posible clase a
  eliminar puede ser importante en otro contexto.
  Ejemplo:
   reservación – cuando el contexto es la ocupación del
                 teatro
   venta – cuando el contexto es administrativo /
           financiero




                              Programación II
Análisis Orientado a Objetos

• Clases vagas: cuando una clase no es específica, no
  tiene sus límites bien definidos con claridad o su
  alcance es muy amplio. Ejemplo:
   sistema / universo / horizonte
• Clases o atributos: Nombres que describen objetos
  individua-les pueden ser considerados como atributos
  de una clase. Si fuese importante la existencia de una
  propiedad independiente, entonces hacer de ésta una
  clase y no un atributo. Ejemplo:
   nombre / edad / peso / dirección – estudiante
   dirección – sistema de correo


                               Programación II
Análisis Orientado a Objetos

• Clase u operación: si un nombre describe una
  operación que es aplicada a objetos, no es una clase.
  Una operación que tiene características propias debe
  ser modelada como una clase. Ejemplo:
   llamada telefónica – contexto del problema es el
                        teléfono
   llamada telefónica – sistema de facturación
• Clase o asociación: el nombre de una clase debe
  reflejar su naturaleza intrínseca y no un role que ésta
  juega en una asociación. Ejemplo:
   propietario no es una clase – producción de carros

                                Programación II
Análisis Orientado a Objetos

• Uso de implementaciones: Implementaciones
  externas al mundo real no se deben agregar en el
  análisis. Probablemente se requieran en el diseño. Está
  basado en la reutilización de elementos. Ejemplo:
   CPU / subrutina / proceso / algoritmo / interrupción /
   lista enlazada / arreglo / árbol / conjunto / tabla /
   elementos de interfaz




                               Programación II
Análisis Orientado a Objetos

Criterios para no tomar en cuenta
 asociaciones incorrectas o innecesarias:

 • Asociaciones entre clases eliminadas: si una de las
   clases de la asociación ha sido eliminada, la
   asociación debe ser eliminada o redefinida en términos
   de otra clase.




                               Programación II
Análisis Orientado a Objetos

• Asociaciones irrelevantes o de implementaciones:
  eliminar toda asociación que está fuera del dominio del
  problema o tenga que ver con el uso de
  implementaciones. Ejemplo:
   “Banco mantiene ATM” es irrelevante cuando el
   contexto del problema es el servicio que el banco
   presta a sus clientes
   “ATM tiene impresora” tiene que ver con
   implementación




                               Programación II
Análisis Orientado a Objetos

• Acciones: una asociación debe describir una propiedad
  estructural del dominio de la aplicación, no un evento. Un
  requerimiento expresado como una acción puede
  implicar una relación estructural y debe ser reescrito
  acordemente. Ejemplo:
   “ATM acepta tarjetas de débito” describe parte de un
   ciclo de interacción entre ATM y Cliente, no una
   relación entre ATM y tarjeta de débito.
   “Computador central transfiere transacción con banco”
   describe una acción que implica la siguiente relación:
   “Computador central se comunica con el banco”.


                               Programación II
Análisis Orientado a Objetos

• Asociaciones ternarias: muchas asociaciones entre 3
  o más clases se pueden descomponer en asociaciones
  binarias o rescritas como asociaciones calificadas. Si un
  término en una asociación ternaria es puramente
  descriptivo y no tiene características propias, el término
  es un atributo enlace en una asociación binaria.
  Ejemplo:
   “Cajeros introducen transacciones de cuentas” se
   puede romper en “Cajeros introducen transacciones” y
   “transacciones tienen que ver con cuentas”.
   “La compañía emplea personas con un sueldo”


                                Programación II
Análisis Orientado a Objetos

• Asociaciones derivadas: asociaciones que pueden ser
  definidas en términos de otras asociaciones deben ser
  omitidas ya que son redundantes. También hay que
  omitir asociaciones definidas por condiciones en los
  atributos. Ejemplo:
   “Abuelo de” puede ser definido usando un par de
   relaciones “Padre de”
   “Más joven que” expresa una condición en la edad de
   dos personas, no es información adicional.




                             Programación II
Análisis Orientado a Objetos

NOTA: tanto como sea posible, las clases, los atributos
y las asociaciones deben representar información
independiente. Muchos caminos entre clases a veces
indican asociaciones derivadas que están compuestas
por asociaciones primitivas. Ejemplo:
 “Consorcio comparte ATM” es una composición de
 “Consorcio tiene computador central” y “computador
  central se comunica con los ATM”




                             Programación II
Análisis Orientado a Objetos

NOTA: Hay que tener cuidado porque no todas las
asociaciones que forman múltiples caminos entre clases
indican redundancia. Algunas veces la existencia de
una asociación puede ser derivada de dos o más
asociaciones primitivas. Aunque las asociaciones
derivadas no agregan información, son útiles para el
diseño.




                            Programación II
Análisis Orientado a Objetos


Ejemplo:
   Una compañía emplea a muchas personas y es
   propietaria de muchas computadoras; a cada empleado
   se le puede asignar alguna de estas computadoras para
   su uso personal.
      persona y empleado son conceptos redundantes

              Compañía   1            *   Empleado
                             emplea
                1                           1


             posee                              asignada
                     *   Computadora      0,1



                                       Programación II
Análisis Orientado a Objetos


Ejercicio – enunciado del problema:
 Una red bancaria computarizada incluye tanto cajeros humanos como
 automáticos (ATM), éstos últimos compartidos por un consorcio de
 bancos. Cada banco provee su propia computadora para mantener
 sus propias cuentas y procesar las transacciones contra ellas. Las
 estaciones de los cajeros son propias de cada banco y se comunican
 directamente con la computadora propia del banco. Los cajeros
 humanos introducen datos de cuentas y transacción. Los ATM se
 comunican con un computador central el cual transfiere las
 transacciones con los bancos apropiados. Un ATM acepta una tarjeta
 de débito, interactúa con el usuario, se comunica con el sistema
 central para llevar a cabo la transacción, dispensa efectivo e imprime
 un recibo. El sistema requiere de mecanismos de seguridad y
 auditoria adecuados. El sistema puede manejar acceso concurrente a
 la misma cuenta. Los bancos proveen su propio software para sus
 propias computadoras. El costo del sistema compartido es distribuido
 por los bancos según el número de clientes con tarjetas de débito.
                                      Programación II
Análisis Orientado a Objetos


Ejercicio – identificación de nombres / conceptos:
 Una red bancaria computarizada incluye tanto cajeros humanos como
 automáticos (ATM), éstos últimos compartidos por un consorcio de
 bancos. Cada banco provee su propia computadora para mantener
 sus propias cuentas y procesar las transacciones contra ellas. Las
 estaciones de los cajeros son propias de cada banco y se comunican
 directamente con la computadora propia del banco. Los cajeros
 humanos introducen datos de cuentas y transacción. Los ATM se
 comunican con un computador central el cual transfiere las
 transacciones con los bancos apropiados. Un ATM acepta una tarjeta
 de débito, interactúa con el usuario, se comunica con el sistema
 central para llevar a cabo la transacción, dispensa efectivo e imprime
 un recibo. El sistema requiere de mecanismos de seguridad y
 auditoria adecuados. El sistema puede manejar acceso concurrente a
 la misma cuenta. Los bancos proveen su propio software para sus
 propias computadoras. El costo del sistema compartido es distribuido
 por los bancos según el número de clientes con tarjetas de débito
                                      Programación II
Análisis Orientado a Objetos


Ejercicio – aplicar criterios:
 Nombres:     red bancaria, cajero, ATM, consorcio, banco,
              computadora-banco, cuenta, transacción, estación-
              cajero, datos-cuenta, datos-transacción, computador-
              central, tarjeta-débito, usuario, sistema, efectivo,
              recibo, mecanismos-seguridad, mecanismos-
              auditoria, acceso, software, costo, cliente




                                   Programación II
Análisis Orientado a Objetos


Ejercicio – aplicar criterios:

              Vagas: sistema, mecanismos-seguridad, mecanismos-
                     auditoria, red-bancaria
          Atributos: datos-cuenta, datos-transacción, recibo, efectivo
        Irrelevante: costo
       Redundante: usuario
  Implementaciones: acceso, software


         Definitivos: cuenta, ATM, banco, computadora-banco, tarjeta-
                      débito, cajero, estación-cajero, computador-
                      central




                                      Programación II
Análisis Orientado a Objetos


Ejercicio – posible diagrama de clases preliminar:




                              Programación II
Análisis Orientado a Objetos


Ejercicio – posible diagrama de clases definitivo:




                               Programación II

Contenu connexe

Tendances

diagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemadiagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemaUniversidad Tecnológica
 
Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosSergio Sanchez
 
Slideshare #01
Slideshare #01Slideshare #01
Slideshare #01wcontra31
 
Analisis y Diseño de Sistemas
Analisis y Diseño de SistemasAnalisis y Diseño de Sistemas
Analisis y Diseño de Sistemascardan2007i
 
Clase3 Caso Practico
Clase3 Caso PracticoClase3 Caso Practico
Clase3 Caso Practicojmch19
 
Analisis de requerimiento
Analisis de requerimientoAnalisis de requerimiento
Analisis de requerimientoturlahackers
 
14 Clase Flujo De AnáLisis Ii
14 Clase Flujo De AnáLisis Ii14 Clase Flujo De AnáLisis Ii
14 Clase Flujo De AnáLisis IiJulio Pari
 
Analisis Requerimientos
Analisis RequerimientosAnalisis Requerimientos
Analisis Requerimientosjlchipana
 
Unidad 2.1 DiseñO De Sistemas
Unidad 2.1 DiseñO De SistemasUnidad 2.1 DiseñO De Sistemas
Unidad 2.1 DiseñO De SistemasSergio Sanchez
 
Del modelo del negocio al modelo de requisitos
Del modelo del negocio al modelo de requisitosDel modelo del negocio al modelo de requisitos
Del modelo del negocio al modelo de requisitosYAMILA GASCON
 
Análisis y diseño de sistemas sesion 06 - fundamentos y capturas de requisitos
Análisis y diseño de sistemas   sesion 06 - fundamentos y capturas de requisitosAnálisis y diseño de sistemas   sesion 06 - fundamentos y capturas de requisitos
Análisis y diseño de sistemas sesion 06 - fundamentos y capturas de requisitosGianfrancoEduardoBra
 
Análisis y diseño de sistemas sesion 09 - validacion de requisitos ii
Análisis y diseño de sistemas   sesion 09 - validacion de requisitos iiAnálisis y diseño de sistemas   sesion 09 - validacion de requisitos ii
Análisis y diseño de sistemas sesion 09 - validacion de requisitos iiGianfrancoEduardoBra
 
Unidad 3 Modelo De Negocio
Unidad 3 Modelo De NegocioUnidad 3 Modelo De Negocio
Unidad 3 Modelo De NegocioSergio Sanchez
 
Análisis y diseño de sistemas sesion 02 - modelado de procesos de negocio
Análisis y diseño de sistemas   sesion 02 - modelado de procesos de negocioAnálisis y diseño de sistemas   sesion 02 - modelado de procesos de negocio
Análisis y diseño de sistemas sesion 02 - modelado de procesos de negocioGianfrancoEduardoBra
 

Tendances (20)

03 requerimientos
03 requerimientos03 requerimientos
03 requerimientos
 
diagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemadiagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistema
 
Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De Requerimientos
 
Slideshare #01
Slideshare #01Slideshare #01
Slideshare #01
 
Artículo modelamiento de negocios
Artículo  modelamiento de negociosArtículo  modelamiento de negocios
Artículo modelamiento de negocios
 
Analisis y Diseño de Sistemas
Analisis y Diseño de SistemasAnalisis y Diseño de Sistemas
Analisis y Diseño de Sistemas
 
Clase3 Caso Practico
Clase3 Caso PracticoClase3 Caso Practico
Clase3 Caso Practico
 
Analisis de requerimiento
Analisis de requerimientoAnalisis de requerimiento
Analisis de requerimiento
 
Ingeniería de requisitos
Ingeniería de requisitosIngeniería de requisitos
Ingeniería de requisitos
 
14 Clase Flujo De AnáLisis Ii
14 Clase Flujo De AnáLisis Ii14 Clase Flujo De AnáLisis Ii
14 Clase Flujo De AnáLisis Ii
 
Analisis Requerimientos
Analisis RequerimientosAnalisis Requerimientos
Analisis Requerimientos
 
Proyecto análisis y Diseño de Sistemas
Proyecto análisis y Diseño de SistemasProyecto análisis y Diseño de Sistemas
Proyecto análisis y Diseño de Sistemas
 
Unidad 2.1 DiseñO De Sistemas
Unidad 2.1 DiseñO De SistemasUnidad 2.1 DiseñO De Sistemas
Unidad 2.1 DiseñO De Sistemas
 
Del modelo del negocio al modelo de requisitos
Del modelo del negocio al modelo de requisitosDel modelo del negocio al modelo de requisitos
Del modelo del negocio al modelo de requisitos
 
Análisis y diseño de sistemas sesion 06 - fundamentos y capturas de requisitos
Análisis y diseño de sistemas   sesion 06 - fundamentos y capturas de requisitosAnálisis y diseño de sistemas   sesion 06 - fundamentos y capturas de requisitos
Análisis y diseño de sistemas sesion 06 - fundamentos y capturas de requisitos
 
Análisis y diseño de sistemas sesion 09 - validacion de requisitos ii
Análisis y diseño de sistemas   sesion 09 - validacion de requisitos iiAnálisis y diseño de sistemas   sesion 09 - validacion de requisitos ii
Análisis y diseño de sistemas sesion 09 - validacion de requisitos ii
 
Metodologia elicitacion
Metodologia elicitacionMetodologia elicitacion
Metodologia elicitacion
 
Requisitos
RequisitosRequisitos
Requisitos
 
Unidad 3 Modelo De Negocio
Unidad 3 Modelo De NegocioUnidad 3 Modelo De Negocio
Unidad 3 Modelo De Negocio
 
Análisis y diseño de sistemas sesion 02 - modelado de procesos de negocio
Análisis y diseño de sistemas   sesion 02 - modelado de procesos de negocioAnálisis y diseño de sistemas   sesion 02 - modelado de procesos de negocio
Análisis y diseño de sistemas sesion 02 - modelado de procesos de negocio
 

Similaire à AnálisisOOClasesAsociaciones

6.modelado de los requerimientos escenarios y clases
6.modelado de los requerimientos  escenarios y clases6.modelado de los requerimientos  escenarios y clases
6.modelado de los requerimientos escenarios y clasesRamiro Estigarribia Canese
 
Fundamentos de POO
Fundamentos de POOFundamentos de POO
Fundamentos de POOgueritamala
 
Fundamentos programacion poo
Fundamentos programacion pooFundamentos programacion poo
Fundamentos programacion pooRicardo Garcia
 
Análisis y diseño orientado a objetos
Análisis y diseño orientado a objetosAnálisis y diseño orientado a objetos
Análisis y diseño orientado a objetosChristian Leon
 
Construcción de Software (Patrones)
Construcción de Software (Patrones)Construcción de Software (Patrones)
Construcción de Software (Patrones)sandyx17
 
Gestionbasesdatos readthedocs io_es_latest_tema2_teoria_html
Gestionbasesdatos readthedocs io_es_latest_tema2_teoria_htmlGestionbasesdatos readthedocs io_es_latest_tema2_teoria_html
Gestionbasesdatos readthedocs io_es_latest_tema2_teoria_htmlJuan Segovia
 
Jose marcano analisis y diseño de sistemas
Jose marcano analisis y diseño de sistemasJose marcano analisis y diseño de sistemas
Jose marcano analisis y diseño de sistemasAmerigled Salgado
 
Presentacion De La Primera Unidad 2
Presentacion De La Primera Unidad 2Presentacion De La Primera Unidad 2
Presentacion De La Primera Unidad 2warmab
 
7.modelado de los requerimientos escenarios y clases
7.modelado de los requerimientos  escenarios y clases7.modelado de los requerimientos  escenarios y clases
7.modelado de los requerimientos escenarios y clasesRamiro Estigarribia Canese
 
Guia 02 Diagramas De Casos De Uso
Guia 02 Diagramas De Casos De UsoGuia 02 Diagramas De Casos De Uso
Guia 02 Diagramas De Casos De Usoguest9da399
 
Ingeniería de requisitos
Ingeniería de requisitos Ingeniería de requisitos
Ingeniería de requisitos CHICATEC
 

Similaire à AnálisisOOClasesAsociaciones (20)

6.modelado de los requerimientos escenarios y clases
6.modelado de los requerimientos  escenarios y clases6.modelado de los requerimientos  escenarios y clases
6.modelado de los requerimientos escenarios y clases
 
Casos de uso
Casos de usoCasos de uso
Casos de uso
 
Casos de uso
Casos de usoCasos de uso
Casos de uso
 
Fundamentos de POO
Fundamentos de POOFundamentos de POO
Fundamentos de POO
 
Fundamentos programacion poo
Fundamentos programacion pooFundamentos programacion poo
Fundamentos programacion poo
 
Análisis y diseño orientado a objetos
Análisis y diseño orientado a objetosAnálisis y diseño orientado a objetos
Análisis y diseño orientado a objetos
 
Diagrama de dominio armando
Diagrama de dominio armandoDiagrama de dominio armando
Diagrama de dominio armando
 
3 analisis
3 analisis3 analisis
3 analisis
 
Construcción de Software (Patrones)
Construcción de Software (Patrones)Construcción de Software (Patrones)
Construcción de Software (Patrones)
 
Diseño de Objetos
Diseño de ObjetosDiseño de Objetos
Diseño de Objetos
 
Gestionbasesdatos readthedocs io_es_latest_tema2_teoria_html
Gestionbasesdatos readthedocs io_es_latest_tema2_teoria_htmlGestionbasesdatos readthedocs io_es_latest_tema2_teoria_html
Gestionbasesdatos readthedocs io_es_latest_tema2_teoria_html
 
Jose marcano analisis y diseño de sistemas
Jose marcano analisis y diseño de sistemasJose marcano analisis y diseño de sistemas
Jose marcano analisis y diseño de sistemas
 
Presentacion De La Primera Unidad 2
Presentacion De La Primera Unidad 2Presentacion De La Primera Unidad 2
Presentacion De La Primera Unidad 2
 
7.modelado de los requerimientos escenarios y clases
7.modelado de los requerimientos  escenarios y clases7.modelado de los requerimientos  escenarios y clases
7.modelado de los requerimientos escenarios y clases
 
Diseño de patrones
Diseño de patronesDiseño de patrones
Diseño de patrones
 
Diagrama de casos
Diagrama de casosDiagrama de casos
Diagrama de casos
 
UML
UMLUML
UML
 
Guia 02 Diagramas De Casos De Uso
Guia 02 Diagramas De Casos De UsoGuia 02 Diagramas De Casos De Uso
Guia 02 Diagramas De Casos De Uso
 
Ciclo de vida cascada
Ciclo de vida cascadaCiclo de vida cascada
Ciclo de vida cascada
 
Ingeniería de requisitos
Ingeniería de requisitos Ingeniería de requisitos
Ingeniería de requisitos
 

Plus 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
 

Plus 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
 

AnálisisOOClasesAsociaciones

  • 1. Presentación Análisis Orientado a Objetos Ing. Mauricio Paletta, Msc INGENIERÍA EN INFORMÁTICA Programación II UNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA Programación II
  • 2. Análisis Orientado a Objetos • Descomposición de un problema en sus partes. • Resultado: Problema entendido como una preparación para el diseño. • Preocuparse más por identificar los tipos de objetos que los objetos individuales. Programación II
  • 3. Análisis Orientado a Objetos • Preocuparse más por el modelo estático (estructura) que por el modelo dinámico (comportamiento). • Productos: Diagramas de casos de uso y diagrama de clases. • 4 pasos a realizar. Programación II
  • 4. Análisis Orientado a Objetos Paso 1: Identificar la idea y objetivos básicos del sistema • Primer contacto con el problema, se busca entenderlo de forma completa. • Técnicas que se pueden seguir: o Escribir entre 5 y 20 oraciones de la información que se haya podido recopilar mediante entrevistas. o Si ya se tiene un enunciado o documento explicativo, extraer las oraciones de allí. o Mapas mentales sobre el problema. Programación II
  • 5. Análisis Orientado a Objetos Programación II
  • 6. Análisis Orientado a Objetos Programación II
  • 7. Análisis Orientado a Objetos Paso 2: Identificar actores / nombres • Los actores o nombres son posibles clases. • Se identifican a partir de las oraciones obtenidas en el paso anterior. • Todos los nombres deben ser considerados inicialmente, luego se hará un proceso de selección o filtrado. Ejemplo: “Un sistema de reservación para la venta de boletos a varias obras de teatro” Programación II
  • 8. Análisis Orientado a Objetos Paso 3: Identificar procesos / requerimientos • Descripción del sistema desde el punto de vista del usuario. Se conocen como casos de uso y se pueden representar mediante los diagramas de casos de uso de UML. • Colección de situaciones respecto al uso de un sistema. Cada escenario describe una secuencia de eventos. Cada secuencia se inicia por una persona, otro sistema, una parte del hardware o por el paso del tiempo. A estas entidades que inician secuencias se les conoce como actores. Programación II
  • 9. Análisis Orientado a Objetos • El resultado de una secuencia debe ser algo utilizable ya sea por el actor que la inició o por otro actor. • El detalle de la secuencia de eventos desde que un actor la inicia hasta que se llega al resultado se puede representar mediante los diagramas de actividad de UML. Programación II
  • 10. Análisis Orientado a Objetos Paso 4: Identificar Clases y Asociaciones • Obtener la lista definitiva de conceptos que representan clases dentro del contexto del problema. Hay que aplicar criterios para identificar clases incorrectas o innecesarias. • Identificar las relaciones o asociaciones entre clases. Hay que aplicar criterios para saber si las asociaciones son o no correctas. • Realizar el Diagrama de Clases sin niveles de detalle. Representar las relaciones entre clases incluyendo los roles (breve descripción de su objetivo) y la multiplicidad (número de elementos involucrados en la relación). Programación II
  • 11. Análisis Orientado a Objetos Criterios para identificar clases incorrectas o innecesarias: • Clases redundantes: cuando dos clases expresan la misma información; se debe tomar el nombre más descriptivo. Ejemplo: cliente / pasajero – persona que va a tomar un vuelo cliente / usuario – ATM o cualquier servicio bancario Programación II
  • 12. Análisis Orientado a Objetos • Clases irrelevantes: cuando una clase tiene poco o nada que ver con el problema. La posible clase a eliminar puede ser importante en otro contexto. Ejemplo: reservación – cuando el contexto es la ocupación del teatro venta – cuando el contexto es administrativo / financiero Programación II
  • 13. Análisis Orientado a Objetos • Clases vagas: cuando una clase no es específica, no tiene sus límites bien definidos con claridad o su alcance es muy amplio. Ejemplo: sistema / universo / horizonte • Clases o atributos: Nombres que describen objetos individua-les pueden ser considerados como atributos de una clase. Si fuese importante la existencia de una propiedad independiente, entonces hacer de ésta una clase y no un atributo. Ejemplo: nombre / edad / peso / dirección – estudiante dirección – sistema de correo Programación II
  • 14. Análisis Orientado a Objetos • Clase u operación: si un nombre describe una operación que es aplicada a objetos, no es una clase. Una operación que tiene características propias debe ser modelada como una clase. Ejemplo: llamada telefónica – contexto del problema es el teléfono llamada telefónica – sistema de facturación • Clase o asociación: el nombre de una clase debe reflejar su naturaleza intrínseca y no un role que ésta juega en una asociación. Ejemplo: propietario no es una clase – producción de carros Programación II
  • 15. Análisis Orientado a Objetos • Uso de implementaciones: Implementaciones externas al mundo real no se deben agregar en el análisis. Probablemente se requieran en el diseño. Está basado en la reutilización de elementos. Ejemplo: CPU / subrutina / proceso / algoritmo / interrupción / lista enlazada / arreglo / árbol / conjunto / tabla / elementos de interfaz Programación II
  • 16. Análisis Orientado a Objetos Criterios para no tomar en cuenta asociaciones incorrectas o innecesarias: • Asociaciones entre clases eliminadas: si una de las clases de la asociación ha sido eliminada, la asociación debe ser eliminada o redefinida en términos de otra clase. Programación II
  • 17. Análisis Orientado a Objetos • Asociaciones irrelevantes o de implementaciones: eliminar toda asociación que está fuera del dominio del problema o tenga que ver con el uso de implementaciones. Ejemplo: “Banco mantiene ATM” es irrelevante cuando el contexto del problema es el servicio que el banco presta a sus clientes “ATM tiene impresora” tiene que ver con implementación Programación II
  • 18. Análisis Orientado a Objetos • Acciones: una asociación debe describir una propiedad estructural del dominio de la aplicación, no un evento. Un requerimiento expresado como una acción puede implicar una relación estructural y debe ser reescrito acordemente. Ejemplo: “ATM acepta tarjetas de débito” describe parte de un ciclo de interacción entre ATM y Cliente, no una relación entre ATM y tarjeta de débito. “Computador central transfiere transacción con banco” describe una acción que implica la siguiente relación: “Computador central se comunica con el banco”. Programación II
  • 19. Análisis Orientado a Objetos • Asociaciones ternarias: muchas asociaciones entre 3 o más clases se pueden descomponer en asociaciones binarias o rescritas como asociaciones calificadas. Si un término en una asociación ternaria es puramente descriptivo y no tiene características propias, el término es un atributo enlace en una asociación binaria. Ejemplo: “Cajeros introducen transacciones de cuentas” se puede romper en “Cajeros introducen transacciones” y “transacciones tienen que ver con cuentas”. “La compañía emplea personas con un sueldo” Programación II
  • 20. Análisis Orientado a Objetos • Asociaciones derivadas: asociaciones que pueden ser definidas en términos de otras asociaciones deben ser omitidas ya que son redundantes. También hay que omitir asociaciones definidas por condiciones en los atributos. Ejemplo: “Abuelo de” puede ser definido usando un par de relaciones “Padre de” “Más joven que” expresa una condición en la edad de dos personas, no es información adicional. Programación II
  • 21. Análisis Orientado a Objetos NOTA: tanto como sea posible, las clases, los atributos y las asociaciones deben representar información independiente. Muchos caminos entre clases a veces indican asociaciones derivadas que están compuestas por asociaciones primitivas. Ejemplo: “Consorcio comparte ATM” es una composición de “Consorcio tiene computador central” y “computador central se comunica con los ATM” Programación II
  • 22. Análisis Orientado a Objetos NOTA: Hay que tener cuidado porque no todas las asociaciones que forman múltiples caminos entre clases indican redundancia. Algunas veces la existencia de una asociación puede ser derivada de dos o más asociaciones primitivas. Aunque las asociaciones derivadas no agregan información, son útiles para el diseño. Programación II
  • 23. Análisis Orientado a Objetos Ejemplo: Una compañía emplea a muchas personas y es propietaria de muchas computadoras; a cada empleado se le puede asignar alguna de estas computadoras para su uso personal. persona y empleado son conceptos redundantes Compañía 1 * Empleado emplea 1 1 posee asignada * Computadora 0,1 Programación II
  • 24. Análisis Orientado a Objetos Ejercicio – enunciado del problema: Una red bancaria computarizada incluye tanto cajeros humanos como automáticos (ATM), éstos últimos compartidos por un consorcio de bancos. Cada banco provee su propia computadora para mantener sus propias cuentas y procesar las transacciones contra ellas. Las estaciones de los cajeros son propias de cada banco y se comunican directamente con la computadora propia del banco. Los cajeros humanos introducen datos de cuentas y transacción. Los ATM se comunican con un computador central el cual transfiere las transacciones con los bancos apropiados. Un ATM acepta una tarjeta de débito, interactúa con el usuario, se comunica con el sistema central para llevar a cabo la transacción, dispensa efectivo e imprime un recibo. El sistema requiere de mecanismos de seguridad y auditoria adecuados. El sistema puede manejar acceso concurrente a la misma cuenta. Los bancos proveen su propio software para sus propias computadoras. El costo del sistema compartido es distribuido por los bancos según el número de clientes con tarjetas de débito. Programación II
  • 25. Análisis Orientado a Objetos Ejercicio – identificación de nombres / conceptos: Una red bancaria computarizada incluye tanto cajeros humanos como automáticos (ATM), éstos últimos compartidos por un consorcio de bancos. Cada banco provee su propia computadora para mantener sus propias cuentas y procesar las transacciones contra ellas. Las estaciones de los cajeros son propias de cada banco y se comunican directamente con la computadora propia del banco. Los cajeros humanos introducen datos de cuentas y transacción. Los ATM se comunican con un computador central el cual transfiere las transacciones con los bancos apropiados. Un ATM acepta una tarjeta de débito, interactúa con el usuario, se comunica con el sistema central para llevar a cabo la transacción, dispensa efectivo e imprime un recibo. El sistema requiere de mecanismos de seguridad y auditoria adecuados. El sistema puede manejar acceso concurrente a la misma cuenta. Los bancos proveen su propio software para sus propias computadoras. El costo del sistema compartido es distribuido por los bancos según el número de clientes con tarjetas de débito Programación II
  • 26. Análisis Orientado a Objetos Ejercicio – aplicar criterios: Nombres: red bancaria, cajero, ATM, consorcio, banco, computadora-banco, cuenta, transacción, estación- cajero, datos-cuenta, datos-transacción, computador- central, tarjeta-débito, usuario, sistema, efectivo, recibo, mecanismos-seguridad, mecanismos- auditoria, acceso, software, costo, cliente Programación II
  • 27. Análisis Orientado a Objetos Ejercicio – aplicar criterios: Vagas: sistema, mecanismos-seguridad, mecanismos- auditoria, red-bancaria Atributos: datos-cuenta, datos-transacción, recibo, efectivo Irrelevante: costo Redundante: usuario Implementaciones: acceso, software Definitivos: cuenta, ATM, banco, computadora-banco, tarjeta- débito, cajero, estación-cajero, computador- central Programación II
  • 28. Análisis Orientado a Objetos Ejercicio – posible diagrama de clases preliminar: Programación II
  • 29. Análisis Orientado a Objetos Ejercicio – posible diagrama de clases definitivo: Programación II