Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Objetivos *Identificar los atributos del modelo del dominio *Distinguir entre atributos correctos e incorrectos
12.1 ATRIBUTOS
Un atributo es un valor de datos lgico de un objeto Por ejemplo un recibo que recoge la informacin de una venta normalmente incluye una fecha y una hora y la direccin quiere conocer las fechas y horas de las ventas por mltiples motivos. En consecuencia la clase conceptual venta necesita los atributos fecha y hora.
Clase
Atributo
Mejor
Cajero nombre
Utiliza
registro numero
Los atributos en un modelo del dominio deberan ser preferiblemente atributos simples o tipos de datos Los tipos de datos de los atributos muy comunes incluyen: Boolean, fecha, numero, string(texto), hora.
Otros tipos comunes comprenden: Direccin, Color, Geomtrico (punto, rectngulo), numero de telfono, numero de la seguridad social, cdigo de producto universal, cdigos postales, tipos enumerados.
Repitiendo un ejemplo previo un error tpico es modelar un concepto del dominio complejo como un atributo. Para ilustrarlo un aeropuerto de destino no es realmente una cadena de texto; se trata de una cosa compleja que ocupa muchos kilmetros cuadrados de espacio. Por tanto, Vuelo debera relacionarse con aeropuerto mediante una asociacin, no con un atributo, como se muestra en la figura
Peor Vuelo destino Mejor vuelo 1 Vuela a 1 Aeropuerto Destino es un concepto complejo Relacione las clases conceptuales con una asociacin, no con un atributo
TIPOS DE DATOS
Los atributos deben ser generalmente tipos de datos. Esto es un termino UML que implica un conjunto de valores para los cuales no es significativa una identidad una identidad nica. Por ejemplo no es significativo distinguir entre: *Diferentes instancias del numero 5
Por el contrario es significativo distinguir entre dos instancias de Persona cuto nombre son en los dos casos Luis Garca puesto que las dos instancias pueden representar individuos diferentes con el mismo nombre Por tanto todos los tipos primitivos (numero, string) son tipos de datos UML pero no todos los tipos de datos son primitivos. Por ejemplo, NumeroDeTelefono es un tipo de dato no primitivo
En caso de duda defina algo como una clase conceptual aparte en lugar de como un atributo
Aplicando estas guias a los atributos del modelo del dominio del PDB llegamos al siguiente anlisis: Los atributos del precio y cantidad deberan ser clases no primitivas Cantidad o Moneda porque se trata de cantidades en una unidad monetaria El atributo de la direccin debe ser una clase no primitiva Direccin porque tiene secciones diferentes Las clases ArticuloID, Direccin y Cantidad son tipos de datos (no es significativa la identidad nica de las instancias) pero merece la pena considerarlas como clases independientes debido a sus cualidades
ArticuloID
Un modelo del dominio es una herramienta de comunicacin; las elecciones sobre lo que se muestra deben hacerse con esa consideracin en
Tienda
Direccin
ok
Si la clase del atributo es un tipo de dato, podra mostrarse en el rectngulo del atributo
Nombre NumeroRegistroActual
Cajero nombre
1 utiliza 1
Registro
Las cantidades son valores de datos simples, por lo que es adecuado representarlas en la seccin de atributos mejor Variacin: Dinero es una especializacin de Cantidad cuya unidad es una moneda
Modelado de cantidades
especificacionDelProducto
Venta fecha, hora: Un recibo es un informe en papel de una venta LineaDeVenta cantidad: Para registrar la cantidad introducida, cuando hay mas de un articulo en una lnea de venta
Tienda
cajero
catalogodeproductos
catalogodeproductos
*
0..1 registraventade * registracompletas 1
1 contiene
1..*
lineadeventa cantidad
1..* contenidaen
1 Utilizado por
abastece
articulo
1..*
* 1
capturadaen 1 Iniciadapor
registro
Iniciado por 1 1 1
encargado
1 Registraventasen
pago cantidad
cliente
cajero
CAPITULO 13 MODELOS DE CASOS DE USO: AADIR DETALLES CON LOS CONTRATOS DE LAS OPERACIONES
Objetivos Crear los contratos para las operaciones del sistema
INTRODUCCIN
Los contratos de las operaciones pueden ayudar a definir el comportamiento del sistema; describen el resultado de la ejecucin de las operaciones del sistema en funcin de los cambios de estado de los objetos del dominio.
13.1 CONTRATOS
Los casos de uso son el principal mecanismo del UP para describir el comportamiento del sistema y, normalmente es suficiente. Sin embargo, algunas veces se necesita una descripcin mas detallada del comportamiento del sistema. Los contratos describen el comportamiento detallado del sistema en funcin de los cambios de estado de los objetos del modelo del dominio, despus de la ejecucin de una operacin del sistema.
Referencias cruzadas:
Precondiciones: hay una venta en curso Postcondiciones: -se creo una instancia de LineaDeVenta -se asocio con la venta actual (formacin de asociaciones) -lineadeventa cantidad paso a ser cantidad(modificacin de atributos) Se asocio con una EspecificacionDelProducto, en base a la coincidencia del articuloID(formacin de asociaciones
Precondiciones: suposiciones relevantes sobre el estado del sistema o de los objetos del modelo del dominio, antes de la ejecucin de la operacin
Postcondiciones: -el estado de los objetos del modelo del dominio despus que se complete la operacin
13.4 POSTCONDICIONES
Las postcondicion describe cambios en el estado de los objetos del modelo del dominio. Los cambios de estado del modelo del dominio comprenden la creacin de instancias, formacin o rotura de asociaciones y cambio en los atributos En resumen las postcondiciones se dividen en estas categoras:
Creacin y eliminacin de instancias
Modificacin de atributos Formacin y rotura de asociaciones (siendo precisos, enlaces UML)
No se hace ningn comentario sobre el modo de crear una instancia de LineaDeVenta o como se asocia con una Venta Esto podra ser una declaracin sobre escribir en folios y que se grapen.
Compare las fotografas anterior y posterior y exprese como postcondiciones el cambio en el estado del escenario
MODIFICACIN DE ATRIBUTOS
Despues de que el cajero haya introducido el articuloID y la cantidad, que atributos de los objetos nuevos o de los ya existentes deberan haberse modificado? La cantidad de la LineaDeVenta debera haber pasado a ser igual que el parmetro cantidad. De ah:
Ldv. Cantidad paso a ser cantidad(modificacin de atributos)
En un proyecto todas estas postcondiciones particulares son tan obvias a partir del caso de uso que probablemente no se debera escribir el contrato de crearNueva Venta Recuerde uno de los principios que guan un buen proceso y el UP: mantngalo tan ligero como sea posible y evite todos los artefactos a menos que realmente aadan valor
Contrato CO2: IntroducirArticulo Operacin: introducirArticulo (articuloID: ArticuloID, cantidad:integer) Referencias cruzadas: caso de uso: Procesar Venta Precondiciones: hay una venta en curso
Sugerencia A menos que exista una razn practica apremiante que requiera que la gente aprende y utilice OCL mantenga las cosas simples y utilice el lenguaje natural
FASES
Inicio: los contratos no se justifican durante la fase de inicio, son demasiado detallados Elaboracin: si es que se utilizan los contratos se escribirn durante la elaboracin cuando se escriben la mayora de los casos de uso. Escriba solamente los contratos para las operaciones del sistema mas complejas y sutiles