modelos de dominio

39
Ingeniería en Sistemas de Información Diseño de Sistemas (3K1)

Upload: juan-pablo-bustos-thames

Post on 13-Jun-2015

5.150 views

Category:

Travel


4 download

DESCRIPTION

UTN-FRT. Cátedra de Diseño de Sistemas. 3K1. 2011. Unidad I. Modelos de Dominio o Modelo Conceptual

TRANSCRIPT

Page 1: Modelos de dominio

Ingeniería en Sistemas de Información

Diseño de Sistemas(3K1)

Page 2: Modelos de dominio

f) Ingeniería del Software Asistida por Computadora. Clasificación de CASE

 

Sommerville. Sección 4.5  

C. Proceso de Diseño Pressman. Cap. 13.2 Introducción.

 

I. Fases del diseño. Pressman. Sección 13.1Sommerville. Sección 4.3.2

II. Diseño y calidad del software Pressman. 13.2.1

III. Principios y conceptos del diseño. Pressman. Sección 13.3 y 13.4

IV. Documentación del Diseño. Pressman, Sección 13.8

V. Análisis y Diseño Orientado a Objetos Sommerville, Cap.14Larman, 2ª. Ed., Cap. 1.4Pressman, Cap.21 y 22

VI. Modelos de dominio, Casos de Uso. (revisión)

Larman, 1ª. Ed.,Cap. 9/11Larman, 2a. Ed. Cap. 9/11

VII. Del Análisis al Diseño Larman, 1ª. Ed. Cap. 15 Larman, 2ª. Ed. Cap. 14

Contenidos de la Unidad 1Introducción al Diseño

Page 3: Modelos de dominio

MODELO MODELO CONCEPTUAL O DE CONCEPTUAL O DE

DOMINIODOMINIOCraig Larman (Caps. Craig Larman (Caps.

9/12)9/12)

Ingeniería en Sistemas de Información

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Una vez concluida la fase de planeación y elaboración y que los casos de uso fueron identificados, clasificados y programados. Se presenta entonces una transición muy importante: comienza la fase de construcción, donde se cumplen los ciclos del desarrollo iterativo.

Page 4: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Un Modelo Conceptual nos brinda los conceptos significativos para el dominio del problema. El lenguaje UML ofrece la notación en diagramas de estructuras estáticas para graficar los modelos conceptuales

Es el “artefacto” más importante que se crea durante la etapa del AOOModelo Conceptual => representa cosas del mundo real, no componentes del software

Actividades y dependencias

Crear un Modelo Conceptual para los Casos de Uso no puede hacerse si no se cuenta con los Casos y con Documentos que permitan identificar los Conceptos (Objetos). La creación no siempre es lineal, puede formularse en paralelo con el desarrollo de los Casos.

Page 5: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

El paso esencial en el enfoque orientado a objetos es descomponer el problema en conceptos u objetos individuales: las cosas que sabemos

Modelo Conceptual => representación de conceptos en un dominio del problema

En UML lo ilustramos con un conjunto de diagramas de estructura estática donde no se define ninguna operación

Un modelo conceptual puede mostrar:

Conceptos

Asociaciones entre conceptos

Atributos de conceptos

MODELO CONCEPTUALMODELO CONCEPTUAL

Page 6: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual¿Qué representa?

Un modelo conceptual nos permite descomponer el dominio del problema en unidades comprensibles (conceptos), éste contribuye a esclarecer la terminología o nomenclatura del dominio.¿Qué NO representa?

Un modelo conceptual NO ES una descripción del diseño del software, como una clase en C++, una ventana, una base de datos, etc.

Class alumno{

int Cod;

char *Apellido;

. . .

Page 7: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

En términos informales el concepto es una idea, cosa u objeto. En un lenguaje más formal, podemos considerarlo a partir de su simbolo, intensión y extensión.

• Símbolo: palabras o imágenes que representan un concepto

• Intensión: la definición del concepto

• Extensión: el conjunto de ejemplos a que se aplica el concepto.

CONCEPTOSCONCEPTOS

venta

fecha

hora

conceptos del mundo, no una clase de software

Un modelo conceptual muestra conceptos del mundo real

Page 8: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

venta

fecha

hora

Símbolo del Concepto

Intensión del Concepto

“Una venta representa el evento de una transacción de compra. Tiene fecha y hora.”

Extensión del Concepto

Venta-1

Venta-3Venta-2

Page 9: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

Estrategias para identificar los conceptos

La meta es crear un modelo conceptual de conceptos interesantes o significativos del dominio en cuestión.Es mejor exagerar y especificar un modelo conceptual con muchos

conceptos refinados que no especificarlo cabalmente.

• No piense que un modelo conceptual es más adecuado si tiene menos conceptos.

• Es frecuente omitir coceptos durante la fase inicial de identificación y descubrirlos más tarde, lo importante es incorporarlos.

• No excluya conceptos simplemente porque los requerimientos no indiquen una necesidad.

Page 10: Modelos de dominio

Dos estrategias para identificar los conceptos:

1. Obtención de conceptos a partir de una lista de categorías de conceptos.

2. Obtención de conceptos a partir de la identificación de frases nominales.

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

1. La creación de un modelo conceptual comienza preparando una lista de conceptos idóneos.

Categoría del Conceptoobjetos físicos o tangiblesespecificaciones, diseño odescripciones de cosaslugarestransaccionespapel de las personascontenedores de otras cosas

Page 11: Modelos de dominio

2. Consiste en identificar las frases nominales en las descripciones textuales del dominio de un problema y considerarlas conceptos o atributos idóneos.

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

 

Acción del actor Respuesta del sistema

1. Este caso de uso comienza cuando el Socio llega a la caja con videos para alquilar.

 

2. El empleado ingresa el Nº de socio.

 

 

3. Visualiza el nombre del Socio.

5. Incorpora el título del video a la transacción.

 

4. El empleado registra el código de video.

6. ....Este método hay que utilizarlo con mucha prudencia; no es posible encontrar siempre mecánicamente correspondencias entre sustantivo y concepto, y además las palabras del lenguaje natural son ambiguas.

Page 12: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

Cómo construir un modelo conceptual

1. Liste los conceptos idóneos usando la Lista de categorías de conceptos y la identificación de la frase nominal relacionada con los requerimientos en cuestión.

2. Dibújelos en un modelo conceptual.

3. Incorpore las asociaciones necesarias para registrar las relaciones para las cuales debe reservar un espacio en la memoria.

4. Agregue los atributos necesarios para cumplir con las necesidades de información.

Page 13: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

La asignación de nombres y el modelado de las cosas: el cartógrafo

La estrategia del cartógrafo se aplica a los mapas y a los modelos conceptuales:

    Utilice los nombres existentes en el territorio.

    Excluya las características irrelevantes.

    No agregue cosas que no existen.

El modelo conceptual es una especie de mapa de conceptos o cosas de un dominio. Este enfoque pone de relieve el papel analítico de un modelo conceptual y sugiere lo siguiente:       

Page 14: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

Los cartógrafos se sirven de nombres del territorio – no cambian los nombres de las ciudades en sus mapas. En un modelo conceptual significa utilizar el vocabulario del dominio cuando se asignan nombres a los conceptos y a los atributos.

  Un cartógrafo elimina cosas en el mapa en caso de que no las juzgue pertinentes para su propósito. De modo análogo, un modelo conceptual puede excluir en el dominio del problema los conceptos que no se relacionen con los requerimientos. Por ejemplo, podemos omitir BolsadePapel (del modelo conceptual) por no tener una función importante u obvia.

   Un cartógrafo no muestra cosas que no existen. En forma parecida, el modelo conceptual ha de excluir las cosas que no se encuentren en el dominio del problema en cuestión.

Page 15: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

Un Error Frecuente al identificar Conceptos

Tal vez el error más frecuente cuando se crea un modelo conceptual es el de representar algo como atributo, cuando debió haber sido un concepto. Una regla práctica para no caer en él es: 

Si en el mundo real no consideramos algún concepto X como número o texto, probablemente X sea un concepto y no un atributo. 

Por ejemplo, el caso del dominio de las reservaciones en líneas aéreas. ¿Debería “Destino” ser un atributo de “Vuelo” o ser un concepto aparte llamado “Aeropuerto”?

Page 16: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

En el mundo real, un aeropuerto de destino no se considera número ni texto: es una cosa masiva que ocupa espacio. Por tanto, Aeropuerto debería ser un concepto.

En caso de duda, convierta el atributo en un concepto independiente.

Vuelo

Destino

Vuelo Aeropuerto

Nombre

¿o ...?

Page 17: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

Especificación o descripción de conceptos

Necesidad de las especificaciones.

La descripción o especificación de objetos se relaciona con aquella cosa que describen. En un modelo conceptual, se acostumbra a estipular que una Especificación X describe una X.

Por ejemplo: una EspecificaciondeProducto no representa un Elemento, sino una descripción acerca de ellos.

La necesidad de especificar los conceptos es frecuente en los dominios de ventas, productos y elaboración, a donde se requiere una descripción de lo manufacturado que se distingue de la cosa manufacturada.

Page 18: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

Especificaciones de otras cosas. El signo “*” indica multiplicidad de “muchos”. Indica que una “EspecificaciondeProducto” puede describir muchos Productos.

Producto

descripcionprecionumero de serieCUP

EspecificaciondeProducto

descripcionprecioCUP

Producto

numero de serie

1 *Describe

Mal

Bien

Page 19: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

¿Cuando se requiere especificar los conceptos?

Incorpore una especificación o descripción de conceptos cuando:

•La eliminación de las instancias de las cosas que se describen da por resultado una pérdida de información que debe conservarse.

•Reduce información redundante o duplicada.

Page 20: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

AGREGACIÓN DE LAS ASOCIACIONESAGREGACIÓN DE LAS ASOCIACIONES

Asociaciones:

 La asociación es una relación entre dos conceptos que indica alguna conexión significativa e interesante entre ellos.

1Caja VentaRegistra

asociación

*

Page 21: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

Criterios de las asociaciones útiles

Las asociaciones “significativas” o “interesantes” son las que deben preservarse durante algún tiempo (milisegundos o años).

En otras palabras, cuando entre los objetos hay que tener algún recuerdo sobre una relación; por ejemplo, se debe recordar cuáles instancias de VentasLineadeProducto están asociadas a la instancia Venta, porque de lo contrario no sería posible reconstruir la venta, imprimir el recibo ni calcular el total de la venta.

Page 22: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

Examine la conveniencia de incluir las siguientes asociaciones en un modelo conceptual:

       Las asociaciones en que el conocimiento de la relación ha de ser preservado durante algún tiempo (asociaciones que “deben conocerse”).

       Las asociaciones provenientes de la Lista de asociaciones comunes.

De lo contrario, no es necesario recordar una relación entre una Venta Actual y un Gerente, pues los requerimientos no indican que haga falta ese tipo de relación. Tal vez no sea incorrecto mostrar esta relación, pero no es útil dentro del contexto de nuestros requerimientos.

Page 23: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

Notación de las asociaciones en UML

Una asociación se representa como una línea entre los conceptos con el nombre de la asociación. Esta es intrínsecamente bidireccional, o sea es posible un nexo lógico entre los objetos de un tipo y los del otro. Este vínculo es totalmente abstracto; no es una afirmación sobre las conexiones entre las entidades del software.

1Caja VentaRegistra

asociación

*

-flecha de dirección de la lectura-sin otro significado -a menudo se excluye

multiplicidad

Page 24: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

Los extremos de una asociación pueden contener una expresión de multiplicidad que indique la relación numérica entre las instancias de los conceptos.

Una flecha opcional de la dirección de lectura ( o “flecha de la dirección del nombre”) indica la dirección en que debe leerse el nombre de la asociación; no denota la dirección de visibilidad o de navegación. En su ausencia, la asociación se lee de izquierda a derecha o de arriba hacia abajo.

La flecha de dirección de la lectura no tiene un valor semántico; tan solo es una ayuda para leer el diagrama.

Page 25: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

Identificación de las asociaciones: Lista de asociaciones comunes

Comience a agregar las asociaciones utilizando la lista anexa. Contiene categorías comunes que normalmente vale la pena incluir. Los ejemplos tomados de los dominios de la Tienda y de la reservación de las líneas aéreas. Categoría Ejemplos

A es una parte física de B Caja – TPDVAla – Avion

A es una parte lógica de B VentasLineadeProducto – VentaTramodeVuelo – RutadeVuelo

A está físicamente contenido en B TPDV – Tienda, Producto – EstantePasajero – Avion

A está contenido lógicamente en B DescripciondeProducto – CatalogoVuelo – Programa de Vuelo

... ...

Page 26: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

Asociaciones de alta prioridad

Son aquellas que siempre conviene incluir en un modelo conceptual:

        A es una parte física o lógica de B.

        A está física o lógicamente contenido en B.

        A está registrado en B.

Page 27: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

¿Qué grado de detalle deberían tener las asociaciones? Las asociaciones son importantes, pero una falla habitual al crear modelos conceptuales es el excesivo tiempo que, durante la investigación, se dedica al intento de descubrirlas. Es indispensable convencerse de lo siguiente:

Es mucho más importante identificar los conceptos que las asociaciones. El tiempo consagrado a la creación del modelo conceptual debería destinarse a identificar los conceptos, no las asociaciones.

Page 28: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

Directrices de las asociaciones

• Concentrarse en las asociaciones en que el conocimiento de la relación ha de preservarse durante algún tiempo (asociaciones que “es necesario conocer”).

Es más importante identificar los conceptos que las asociaciones.

Muchas asociaciones tienden a confundir el modelo conceptual en vez de aclararlo. A veces se requiere mucho tiempo para descubrirlas, y los beneficios son escasos.

No incluir las asociaciones redundantes ni las derivables.

Page 29: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

Multiplicidad

La multiplicidad define cuántas instancias de un tipo A pueden asociarse a una instancia de tipo B en determinado momento.

1Tienda ProductoAlmacena

*

multiplicidad

Por ejemplo, una instancia individual de una Tienda puede asociarse a “muchas” instancias de Producto.

Page 30: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

Asignación de nombres a las asociaciones

Los nombres de las asociaciones comienzan con una mayúscula. Una frase nominal debe construirse con guiones.

1Caja Venta

Registra

1..*

Tienda

Pago1

Pagada-por

1

1..*

1

Contiene

Page 31: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

Asociaciones múltiples entre dos tipos

Dos tipos pueden tener varias asociaciones entre ellos; esto sucede con frecuencia. No hay un ejemplo sobresaliente en nuestro sistema TPDV, pero en el dominio de la línea aérea encontramos uno en las relaciones entre Vuelo y Aeropuerto. Las asociaciones volar – hacia y volar – de son relaciones netamente diferentes que han de mostrarse por separado.

Vuelo Aeropuerto0..1* Vuela-a

* 1Vuela-de

Page 32: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

Atributos => Valor Lógico de un dato de un objeto.

Clave para su inclusión en un Modelo Conceptual:

 Aquellos en que los requerimientos (Casos de Uso) indican o conllevan la necesidad de recordar información. (El concepto “Venta” requiere, por ejemplo, los atributos de: fecha y hora)

AGREGACIÓN DE LOS ATRIBUTOSAGREGACIÓN DE LOS ATRIBUTOS

Page 33: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

Notación de los atributos en UML

Los atributos se muestran en la segunda sección de la sección de los Conceptos. Indicar su tipo es opcional.

Venta

FechaHora

Atributos

Page 34: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

Conserve simples los atributos

Los tipos más simples de atributos son los que, en la práctica, suelen considerarse los tipos primitivos de datos. Por lo general el tipo de un atributo no debería ser un concepto complejo del dominio (al revés que los “conceptos”). En un modelo conceptual es preferible que los atributos sean atributos simples o valores puros de datos.

 Entre los tipos comunes de atributos simples más frecuentes se cuentan: Booleano, Fecha, Número, Cadena, Hora, Dirección, Color, Geometría, Número telefónico, DNI, CUP, Código Postal, ISBN, Nombre y Apellido, etc.

Page 35: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

Cajero

nombreCAJAactual

Atributos

Mal

Cajero

nombre

Caja

numero

Usa 11Bien

Page 36: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

Vuelo

destino

Aeropuerto11 Vuela-aVuelo

Mal

Bien

Destino es un conceptocomplejo

Relacione conceptos con una asociación, no con un atributo

Page 37: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

Ningún atributo debe incluirse como clave foránea Los atributos no se usan para relacionar conceptos distintos en el Modelo Conceptual. La violación más frecuente de esta regla consiste en agregar un tipo de atributo de clave foránea, lo cual suele hacerse con los diseños de bases de datos relacionales, a fin de asociar dos entidades.Cajero

nombreNumeroTPDVactual

Un atributo “simple”, pero que se usa como clave extraña para relacionarlo con otro objetoMal

Cajero

nombre

TPDV

numero

Usa 11Bien

Page 38: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

Glosario

El glosario o diccionario modelo incluye y define todos los términos que requieren explicación para mejorar la comunicación y aminorar el riesgo de malos entendidos.

El glosario se crea originalmente durante la fase de planeación y Elaboración conforme vayan generándose los términos; después va perfeccionándose continuamente en cada ciclo de desarrollo al aparecer nuevos vocablos.

En cuanto al formato del glosario no existe uno oficial. Durante nuestro diseño adoptaremos el siguiente:

Page 39: Modelos de dominio

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Modelo ConceptualModelo Conceptual

Término Categoría Comentarios

Comprar Productos

Caso de Uso Descripción del proceso de un cliente que compra productos en una tienda.

Producto Tipo/Concepto Un producto que la Tienda tiene disponible para la venta.

Pago.monto: Dinero

Atributo El monto que el cliente abona para cancelar una Venta.

... ... ...