unidad ii metodología para resolver problemas aplicando la...

82
1 Unidad II Metodología para resolver problemas aplicando la POO Parte 3 Análisis del Problema Modelo del Dominio

Upload: others

Post on 18-Mar-2020

2 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

1

Unidad II

Metodología para resolver problemas aplicando la POO

Parte 3Análisis del ProblemaModelo del Dominio

Page 2: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

2

FASE II. Análisis del problema

Incluye:

• Modelo de casos de uso

• Modelo del dominio–Tareas:

• Identificar clases conceptuales

• Agregar asociaciones

• Agregar atributos

–Resultado: Modelo del dominio o diagrama de clases del análisis (sin métodos)

Page 3: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

3

Fase II: Análisis de Requisitos

Incluye:

Modelo de Casos de Uso

• Diagrama de Casos de Uso

• Casos de Uso en formato completo

• Diagramas de Secuencia del Sistema

Modelo del Dominio

•Diagrama de Clases Conceptuales

Page 4: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

4

Modelo del DominioEn la fase de análisis orientado a objetos, es la descomposición del dominio de interés en clases conceptuales individuales u objetos (cosas de las que somos conscientes)

Se puede comparar con la descomposición de un sistema en subsistemas (o procesos, funciones, procedimientos, etc.) del análisis estructurado

Page 5: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

5

Ejemplo: Jugar DadosAnálisis Estructurado

Seleccionar jugador

Iniciar juego

Lanzar los dados

Calcular el resultado

Evaluar el resultado (¿ganó o no?)

Análisis Orientado a ObjetosJugador

Dados

JuegoDeDados

Page 6: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

6

Modelo del Dominio (Concepto)Es una representación visual de las clases conceptuales u objetos del mundo real en un dominio de interés (Fowler, 1996)

Page 7: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

7

... Modelo del DominioMuestra:

Objetos del Dominio o Clases Conceptuales

Asociaciones entre clases

Atributos de las clases conceptuales

Page 8: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

8

Modelo del Dominio y Diagrama de Clases

Modelo del Dominio es la fuente para el diseño de Objetos de SW

Page 9: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

9

Ejemplo de Modelo del Dominio del Caso de Uso “Procesar venta” del sistema de la “Caja de Venta”

Page 10: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

10

Modelo del Dominio

No son modelos de componentes de SW

Page 11: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

11

Clases Conceptuales delDominio de Ventas

Dominio: Una tienda del mundo real

Ejemplos de clases conceptuales: Tienda, Venta y Registro

Page 12: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

12

Identificación de Clases Conceptuales

Objetivo:Crear un modelo del dominio de clases conceptuales interesantes o significativas del dominio de interés (por ejemplo, ventas, alquiler de videos, renta de vehículos)

Tarea: Identificar las clases conceptuales relacionadas con los escenarios de los casos de uso que se estén estudiando

Guía: “Identificar en exceso”

Page 13: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

13

Técnicas para identificar Clases Conceptuales

1. Utilizar la Lista de Categorías de Clases Conceptuales

2. Identificar Frases Nominales

3. Aplicar patrones de análisis o modelos de dominios incompletos existentes y creados por expertos. Por ejemplo:1. Analysis Patterns (Fowler, 1996)

2. Data Model Patterns (Hay, 1996)

Page 14: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

14

1. Lista de Categorías de Clases Conceptuales

Categoría de Clase

Conceptual

Objetos tangibles o físicos

Especificaciones, diseños o descripciones de las cosas

Lugares

Transacciones

Líneas de transacción

Roles de la gente

Contenedores de otras cosas

Cosas en un contenedor

Ejemplos del dominio de

ventas y reserva de vuelos

Registro, AvionEspecificaciónDelProducto, DescripciónDelVueloTienda, AeropuertoVenta, Pago,ReservaLineaDeVentaCajero, PilotoTienda, Avión

Articulo, Pasajero

Page 15: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

15

Lista de Categorías de Clases Conceptuales

Categoría de Clase

Conceptual

Otros sistemas informáticos o electromagnéticos externos al sistema

Conceptos abstractos

Organizaciones

Hechos

Procesos (normalmente no se representan como conceptos, pero podría ocurrir)

Reglas y políticas

Ejemplos del dominio de

ventas y reserva de vuelos

SistemaAutorizacionPagoCredito, ControlDeTraficoAereo

AnsiaDepartamentoDeVenta, CompañiaAereaVenta, Pago, Reunion, Vuelo, Colision, Aterrizaje

VentaDeUnProducto, ReservarUnAsientoPoliticaDeReintegro, PoliticaDeCancelacion

Page 16: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

16

Lista de Categorías de Clases Conceptuales

Categoría de Clase

Conceptual

Catálogos

Registros de finanzas, trabajo, contratos, cuestiones legales

Instrumentos y servicios financieros

Manuales, documentos, artículos de referencia, libros

Ejemplos del dominio de

ventas y reserva de vuelos

CatalogoDeProductos, CatalogoDePiezas

Recibo, LibroMayor, ContratoEmpleo, RegistroMantenimiento

LineaDeCredito, Stock

ListaDeCambiosDePreciosDiarios, ManualReparaciones

Page 17: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

17

2. Identificación de Frases Nominales

Técnica: Análisis lingüístico

Precaución: Ambigüedad entre palabras del lenguaje natural, por lo que no es posible una correspondencia mecánica de nombres a clases

Fuente de las frases nominales: Casos de Uso en formato completo

Page 18: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

18

Identificación de Frases Nominales:Ejemplo de Caso de Uso “Procesar venta”

Escenario principal de éxito (o flujo básico):

1. El Cliente llega a una terminal de Caja de Ventas con productos y/o servicios que comprar.

2. El Cajero comienza una nueva venta.

3. El Cajero introduce el identificador del artículo.

4. El Sistema registra la línea de la venta y presenta la descripción del artículo, precio y suma parcial. El precio se calcula a partir de un conjunto de reglas de precios.

El Cajero repite los pasos 3 y 4 hasta que se indique.

Page 19: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

19

Identificación de Frases Nominales:Ejemplo de Caso de Uso “Procesar venta”

5. El Sistema presenta el total con los impuestoscalculados.

6. El Cajero le dice al Cliente el total y pide que le pague.

7. El Cliente paga y el Cajero gestiona el pago.

8. El Sistema registra la venta completa y envía la información de la venta y el pago al sistema de Contabilidad externo (para la contabilidad y las comisiones) y al sistema de inventario (para actualizar el inventario).

9. El Sistema presenta el recibo.

10. El Cliente se va con el recibo y los productos (si es el caso).

Page 20: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

20

Clases Conceptuales Candidatas para el dominio de las ventas

Registro

Articulo

Tienda

Venta

Pago

CatalogoDeProductos

EspecificacionDelProducto

LineaDeVenta

Cajero

Cliente

Encargado

Aplicando 2 técnicas:

• Lista de Categorías de Clases Conceptuales

• Identificación de frases nominales

Lista de Clases Conceptuales para el caso de uso “Procesar venta”

Page 21: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

21

Lista de Clases conceptuales candidatas

No existe una lista correcta

Es una lista arbitraria de abstracciones y vocabulario del dominio

Diferentes modeladores siguiendo la técnica de identificación de frases nominales podrían generar listas de clases conceptuales candidatas similares

Page 22: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

22

Objetos de Informes: Recibo¿Incluir recibo en el modelo del dominio?

Recibo: es un informe de venta y pago (una clase conceptual relativamente destacable)

Pero...

Page 23: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

23

Objetos de Informes: ReciboDuplica información en venta y pago

Page 24: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

24

Objetos de Informes: ReciboEl recibo da derecho al portador a devolver los artículos comprados; por lo tanto, debería ser una clase conceptual del caso de uso “Gestionar devoluciones”

Page 25: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

25

Nombrar y Modelar cosas:Estrategia del Cartógrafo

Estrategia del cartógrafo:

Utilizar los nombres existentes en el territorio

Excluir las características irrelevantes

No agregar cosas que no están en el territorio

Modelo del dominio es un mapa de conceptos y cosas de un dominio

Page 26: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

26

Error típico al identificar clases conceptuales candidatas

Tienda, ¿es un atributo de Venta o un concepto separado?

Page 27: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

27

Error típico al identificar clases conceptuales candidatas

Regla empírica:

“Si no se considera alguna clase conceptual X que sea un número o texto en el mundo real , X es probablemente una clase conceptual y no un atributo”

Tienda es una entidad legal, organización o algo que ocupa espacio; por lo tanto, debe considerarse como un concepto separado

Page 28: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

28

Error típico al identificar clases conceptuales candidatas

En el dominio de Reserva de vuelos...

Destino (aeropuerto), ¿es un atributo de Vuelo o una clase conceptual candidata separada?

Page 29: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

29

Error típico al identificar clases conceptuales candidatas

El Aeropuerto de destino es texto y/o un número en Vuelo, pero es una cosa grande que ocupa espacio; por lo tanto, debe ser una clase conceptual candidata separada

En caso de duda...

Representar el concepto separadamente

Los atributos son raros en el modelo del dominio

Page 30: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

30

Resolución de clases conceptuales similares: ¿Registro ó CajaDeVenta?

Regla Empírica: Un modelo del dominio no es absolutamente correcto o equivocado, sino más o menos útil; ya que es una herramienta de comunicación

Page 31: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

31

Clases Conceptuales de Especificación o Descripción

Los objetos de descripción o especificación están fuertemente relacionados con las cosas que describen.

Son comunes en los dominios de ventas, fabricación y productos

Page 32: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

32

Especificación sobre otras cosas

La descripción del vuelo describe un vuelo (número) y su ruta, aún cuando no se ha planificado ningún vuelo para una hora y fecha específica.

Page 33: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

33

Modelo del Dominio del Caso de uso: Procesar venta (Caja de Venta)

Este modelo del dominio presenta las clases conceptuales identificadas usando las técnicas estudiadas

Page 34: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

34

FASE II. Análisis del problema

Incluye:

• Modelo de casos de uso

• Modelo del dominio–Tareas:

• Identificar clases conceptuales

• Agregar asociaciones

• Agregar atributos

–Resultado: Modelo del dominio o diagrama de clases del análisis (sin métodos)

Page 35: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

35

Ejemplo de Modelo del Dominio del Caso de Uso “Procesar venta” del sistema de la “Caja de Venta”

..*

Page 36: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

36

Pasos para elaborar elModelo del Dominio

1. Listar clases conceptuales candidatas

• Aplicando las técnicas para identificar clases conceptuales:• Lista de Categorías de Clases Conceptuales

• Identificación de Frases Nominales

• Aplicando las estrategias:• Usar vocabulario del dominio (Cartógrafo)

• Representar abstracciones del dominio

Page 37: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

37

Pasos para el Modelado del Dominio1. Listar clases conceptuales candidatas

2. Representar las clases conceptuales en un modelo del dominio

Page 38: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

38

Pasos para el Modelado del Dominio

1. Listar clases conceptuales candidatas

2. Representar las clases conceptuales en un modelo del dominio

3. Agregar asociaciones (Manteniendo relaciones que deberían estar en la memoria del modelador)

4. Agregar atributos necesarios (depende de los requisitos)

Page 39: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

39

Modelo del Dominio:Agregar Asociaciones

Asociación: es una relación entre tipos (o más bien instancias de tipos) que indican alguna conexión significativa e interesante

Page 40: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

40

Asociaciones posibles en unmodelo del dominio

Modelo del dominio con N clases conceptuales, puede tener N (N-1) asociaciones posibles

Provoca “ruido visual”, lo hace inconmprensible

Ejemplo:3 clases conceptuales

6 asociaciones bidireccionales

Page 41: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

41

Criterio para identificarasociaciones útiles (necesito-conocer)

Relación que es necesaria conservar durante algún tiempo (milisegundos o años, dependiendo del contexto)

Es decir, mantener en memoria una relación entre objetos. Ejemplo:

Page 42: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

42

Tipos de asociaciones a incluiren el Modelo del Dominio

1. Asociaciones útiles (ó necesito-conocer)Ejemplo de asociación útil y no útil

2. Asociaciones derivadas de la lista de asociaciones comunes

Page 43: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

43

Lista de Asociaciones ComunesCategoría

1. A es una parte física de B

2. A es una parte lógica de B

3. A está contenido físicamente en B

4. A está contenido lógicamente en B

Ejemplo

1. Cajon-Registro (o más concretamente, Caja de Venta), Ala-Avion

2. LineaDeVenta-Venta, EtapaVuelo-RutaVuelo

3. Registro-Tienda, Articulo-Estantería, Pasajero-Avion

4. DescripcionDelArticulo-Catalago, Vuelo-PlanificacionVuelo

Page 44: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

44

Lista de Asociaciones ComunesCategoría

5. A es una descripción de B

6. A es una línea de una transacción o informe de B

7. A se conoce/registra/ recoge/informa /captura en B

8. A es miembro de B

Ejemplo

5. DescripcionDelArticulo-Articulo, DescripcionDelVuelo-Vuelo

6. LineaDeVenta-Venta, TrabajoMantenimiento-RegistroDeMantenimiento

7. Venta-Registro, Reserva-ListaPasajeros

8. Cajero-Tienda, Piloto-CompañiaAerea

Page 45: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

45

Lista de Asociaciones ComunesCategoría

9. A es una sub-unidad organizativa de B

10.A utiliza o gestiona B

11.A se comunica con B

12.A está relacionado con una transacción B

Ejemplo

9. Departamento-Tienda, Mantenimiento-CompañíaAerea

10.Cajero-Registro, Piloto-Avion

11.Cliente-Cajero, AgenteDeReservas-Pasajero

12.Cliente-Pago, Pasajero-Billete

Page 46: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

46

Lista de Asociaciones ComunesCategoría

13.A es una transacción relacionada con otra transacción B

14.A está al lado de B

15.A es propiedad de B

16.A es un evento relacionado con B

Ejemplo

13.Pago-Venta, Reserva-Cancelacion

14.LineaDeVenta-LineaDeVenta, Ciudad-Ciudad

15.Registro-Tienda, Avion-CompañíaAerea

16.Venta-Cliente, Venta-Tienda, Salida-Vuelo

Page 47: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

47

EjemploS: Asociaciones del Dominiodel caso de uso “Procesar venta”

1. Asociaciones “necesito-conocer” según los requisitos (asociaciones evidentes)

Registro Registra Venta

Venta Pagada-mediante Pago

CatalogoDeProductos RegistraEspecificacionDelProducto

Page 48: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

48

2. Lista de Asociacionescomunes en el dominio de Ventas

Categoría

1. A es una parte física de B

2. A es una parte lógica de B

3. A está contenido físicamente en B

4. A está contenido lógicamente en B

5. A es una descripción de B

6. A es una línea de una transacción o informe de B

Sistema

1. Registro-Caja

2. LineaDeVenta-Venta

3. Registro-Tienda, Articulo-Tienda

4. EspecificacionDelProducto-CatalagoDeProductos

5. EspecificacionDelProducto-Articulo

6. LineaDeVenta-Venta

Page 49: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

49

2. Lista de Asociacionescomunes en el dominio de Ventas

Categoría

7. A se conoce/registra/ recoge/informa /captura en B

8. A es miembro de B

9. A es una sub-unidad organizativa de B

10.A utiliza o gestiona B

11.A se comunica con B

Sistema

7. (Completa) Venta-Tienda, (Actual) Venta-Registro

8. Cajero-Tienda

9. No aplica

10.Cajero-Registro, Encargado-Registro, Encargado-Cajero (talvez no aplicable)

11.Cliente-Cajero

Page 50: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

50

2. Lista de Asociacionescomunes en el dominio de Ventas

Categoría

12.A está relacionado con una transacción B

13.A es una transacción relacionada con otra transacción B

14.A está al lado de B

15.A es propiedad de B

Sistema

12.Cliente-Pago, Cajero-Pago

13.Pago-Venta

14.LineaDeVenta-LineaDeVenta

15.Registro-Tienda

Page 51: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

51

Modelo del Dominio de Procesar venta

Page 52: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

52

FASE II. Análisis del problema

Incluye:

• Modelo de casos de uso

• Modelo del dominio–Tareas:

• Identificar clases conceptuales

• Agregar asociaciones

• Agregar atributos necesarios

–Resultado: Modelo del dominio o diagrama de clases del análisis (sin métodos)

Page 53: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

53

Pasos para el Modelado del Dominio

1. Listar clases conceptuales candidatas

2. Representar las clases conceptuales en un modelo del dominio

3. Agregar asociaciones (Manteniendo relaciones que deberían estar en la memoria del modelador)

4. Agregar atributos necesarios (depende de los requisitos)

Page 54: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

54

Modelo del Dominio de Procesar venta

Page 55: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

55

Modelo del Dominio:Agregar atributos necesarios

Atributo: valor de datos lógico de un objeto

Atributos a incluir en el Modelo del DominioAquellos que los requisitos de información sugieren la necesidad de registrar

Ejemplo:Recibo recopila la información de una venta, e incluye:• Fecha

• Hora de inicio

Información necesaria para:• Realizar devoluciones (necesario conocer el período)

• Estadísticas de venta en un período

• Decidir el número de cajeros durante horas pico

Page 56: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

56

Tipos de Atributos VálidosAtributos válidos son atributos simples

Tipos de Dato primitivos• Numero

• String, Texto

• Boolean

• Fecha, Hora

Tipos de Dato definidos por el usuario (clases)• Direccion

• NumeroDeTelefono

• Color

• NumeroDeSeguridadSocial

• CodigoDelProducto

Page 57: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

57

Tipos de Datos No Primitivos (clases)

Registro es un tipo de dato complejo, ya que tiene sus propios atributos. No debería ser un atributo.

1..*

Page 58: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

58

Tipos de Datos No Primitivos (clases)

El Destino de un vuelo es un Aeropuerto

Aeropuerto es una clase conceptual independiente

Aeropuerto es un concepto complejo

Page 59: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

59

Tipos de atributos en el Modelo del Dominio y el Diagrama de Clases

Atributos en el Modelo del Dominio son tipos de datos simples (primitivos)

Atributos en el Diagrama de Clases, pueden ser tipos de datos complejos o clases

Page 60: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

60

Tipos de Datos de los AtributosConjunto de valores para los cuales no es significativa una identidad única

Ejemplos:

No es significativo distinguir entre• Diferentes instancias del número 5

• Diferentes instancias del String “cereal”

• Diferentes instancias de un Número de teléfono con el mismo número

Si es significativo distinguir entre dos instancias de “Alumno” que tienen el nombre “Juan Pérez”, ya que podrían ser dos diferentes alumnos con el mismo nombre

Page 61: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

61

Regla empírica“Hacerlo atributo si se considera de manera natural como un número, String, booleano, fecha u hora”

En caso de duda, definir una clase conceptual

Page 62: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

62

Clases de Tipos de DatoNo Primitivos

Un tipo de atributo puede representarse como una clase no primitiva por derecho propio en el Modelo del Dominio

Page 63: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

63

¿Cuándo definir tipos de datos primitivos como una clase no primitiva?

Está compuesto por secciones separadasNombre de persona (nombre, apellido)

Dirección (calle, avenida, número, municipio)

Código del Producto (Fabricante, producto, país, etc.)

Page 64: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

64

¿Cuándo definir tipos de datos primitivos como una clase no primitiva?

Tiene operaciones asociadas al tipo de datoValidar las dos letras del carné de un alumno

Determinar el fabricante de un producto

Page 65: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

65

¿Cuándo definir tipos de datos primitivos como una clase no primitiva?

Tiene atributosPrecio de oferta, tiene una fecha de inicio y otra de fin

Page 66: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

66

¿Cuándo definir tipos de datos primitivos como una clase no primitiva?

Es una cantidad con unidad de medidaPago posee una cantidad con una unidad monetaria

LineaDeVenta posee una cantidad con una unidad de medida (libras, kilogramos, onzas, etc.)

Page 67: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

67

¿Cuándo definir tipos de datos primitivos como una clase no primitiva?

Es una abstracción de uno o más tipos con estas cualidades

articuloID es una generalización de los tipos de productos UPC y EAN

Page 68: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

68

Representación de las clases de tipos de dato

Depende de cómo se este utilizando el modelo del dominio, como una herramienta de comunicación, y de la importancia de los conceptos en el dominio

Page 69: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

69

Modelar cantidades yunidades de medida

Page 70: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

70

Atributos de las clases conceptuales del Modelo del Dominio del caso de uso “Procesar Venta”

Pagocantidad

EspecificacionDelProductodescripcion

id

precio

Ventafecha

hora

LineaDeVentacantidad

Tiendadireccion

nombre

Page 71: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

71

Modelo del Dominio

Dominio: Caja de Venta

Caso de Uso: “Procesar venta”

Page 72: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

72

Page 73: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

73

Ejemplo de Creación del Modelodel Dominio: Jugar Dados

Pasos para elaborar el Modelo del Dominio:

1. Listar clases conceptuales candidatas

2. Representar las clases conceptuales en un modelo del dominio

3. Agregar asociaciones

4. Agregar atributos necesarios

Page 74: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

74

Ejemplo de Análisis OO

“Jugar Dados”

Page 75: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

75

Fase II. Análisis del problemaModelo de Casos de Uso

Diagrama de casos de uso incluye: casos de uso, actores y sistema.

Descripción de los Casos de uso: procesos del dominio relacionados

Page 76: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

76

Caso de uso: Jugar Dados• En un juego de dados, un jugador toma dos dados

y los lanza. Luego, se suman los valores de las caras superiores de los dados. Si el valor es 7 gana el juego, de lo contrario pierde.

• Descripción del Caso de uso: Jugar Dados1. El jugador inicia el juego de dados

2. El sistema solicita al jugador lanzar los dados

3. El jugador lanza los dados

4. El sistema muestra el resultado de sumar las caras de los dados (si el resultado es siete gana, sino pierde), y el mensaje de si ganó o perdió

Page 77: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

77

Identificar operaciones del sistema (DSS: Diagramas de Secuencia del Sistema)

Invocaciones del usuario sobre el sistema

Page 78: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

78

Modelo del Dominio

Page 79: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

79

Pasos para Modelo del dominio1. Listar clases conceptuales

Utilizando la identificación de frase nominales en la descripción del juego

Juego de Dados - clase conceptual

Jugador - clase conceptual

Dado - clase conceptual

Valor de la cara - atributo de cada dado

Resultado - Es la suma de las caras

Page 80: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

80

1. Listar clases conceptualesUtilizando la lista de categorías de clases conceptuales

Dado � objeto físico

Jugador � rol

Lanzamiento de Dados � proceso

Reglas del Juego � reglamento de operación

Analizando conceptos...Valor de la cara es un atributo de “Dado”

Resultado se obtiene a partir de los valores de cara

Lanzamiento de dados es un proceso (opcional)

Conocer las Reglas del Juego no son requisito

Page 81: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

81

2. Representar clases conceptuales en un modelo del dominio

Clases conceptuales identificadasJuego de Dados

Jugador

Dado

Page 82: Unidad II Metodología para resolver problemas aplicando la POOaula.fia.ues.edu.sv/materialpublico/prn315/2016... · Crear un modelo del dominio de clases conceptuales interesantes

82

3. Agregar asociacionesAsociaciones “necesito-conocer”

Jugador lanza Dados

De la lista de categorías comunes de asociaciónJugador es una parte lógica del Juego de Dados

Dado es una parte lógica del Juego de Dados

Dado esta contenido lógicamente en Juego de Dados

Jugador utiliza Dado

4. Agregar atributos• Clase Dado: valor de la cara