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

Post on 18-Mar-2020

2 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Unidad II

Metodología para resolver problemas aplicando la POO

Parte 3Análisis del ProblemaModelo del Dominio

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)

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

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

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

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)

7

... Modelo del DominioMuestra:

Objetos del Dominio o Clases Conceptuales

Asociaciones entre clases

Atributos de las clases conceptuales

8

Modelo del Dominio y Diagrama de Clases

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

9

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

10

Modelo del Dominio

No son modelos de componentes de SW

11

Clases Conceptuales delDominio de Ventas

Dominio: Una tienda del mundo real

Ejemplos de clases conceptuales: Tienda, Venta y Registro

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”

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)

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

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

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

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

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.

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).

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”

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

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...

23

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

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”

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

26

Error típico al identificar clases conceptuales candidatas

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

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

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?

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

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

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

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.

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

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)

35

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

..*

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

37

Pasos para el Modelado del Dominio1. Listar clases conceptuales candidatas

2. Representar las clases conceptuales en un modelo del dominio

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)

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

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

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:

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

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

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

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

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

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

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

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

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

51

Modelo del Dominio de Procesar venta

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)

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)

54

Modelo del Dominio de Procesar venta

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

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

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..*

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

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

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

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

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

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.)

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

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

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.)

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

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

69

Modelar cantidades yunidades de medida

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

71

Modelo del Dominio

Dominio: Caja de Venta

Caso de Uso: “Procesar venta”

72

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

74

Ejemplo de Análisis OO

“Jugar Dados”

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

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ó

77

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

Invocaciones del usuario sobre el sistema

78

Modelo del Dominio

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

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

81

2. Representar clases conceptuales en un modelo del dominio

Clases conceptuales identificadasJuego de Dados

Jugador

Dado

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

top related