Edición de «Apunte de Modelo Conceptual (Ingeniería I)»

De Cuba-Wiki
Advertencia: no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si inicias sesión o creas una cuenta, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.

Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces publica los cambios para así efectuar la reversión.

Revisión actual Tu texto
Línea 1: Línea 1:
{{Back|Ingeniería de Software I}}
<div style="border: 1px solid #CECEFF; padding: 5px; background-color: #EEEEFF; margin: 0px 0px 15px 0px;">[[Image:Back.png|14px|]] [[Ingeniería de Software I|Volver a la página de la materia]]</div>


El modelo conceptual busca capturar las clases que comprenden nuestro modelo y sus interacciones. No confundir con el diagrama de diseño, en esta instancia las clases son conceptuales y no se corresponden necesariamente con las que se implementarán.
El modelo conceptual busca capturar las clases que comprenden nuestro modelo y sus interacciones. No confundir con el diagrama de diseño, en esta instancia las clases son conceptuales y no se corresponden necesariamente con las que se implementarán.
Línea 23: Línea 23:
* Si se quieren agregar atributos a la asociación, se puede definir una clase de asociación que los contenga. Tiene las mismas características que una asociación común, es decir, es única para dos instancias en particular.
* Si se quieren agregar atributos a la asociación, se puede definir una clase de asociación que los contenga. Tiene las mismas características que una asociación común, es decir, es única para dos instancias en particular.
* Además de las asociaciones comunes, pueden definirse composiciones y agregaciones (también llamadas composiciones débiles). La composición indica que un determinado objeto está compuesto por una seria de instancias del otro, y que este último no puede existir sin el primero. Por ejemplo, la relación entre hotel y habitaciones puede definirse como una composición. La cardinalidad del lado del compuesto es siempre 1. Se nota con un rombo lleno (pintado) del lado del compuesto (en el ejemplo, el compuesto es el hotel).
* Además de las asociaciones comunes, pueden definirse composiciones y agregaciones (también llamadas composiciones débiles). La composición indica que un determinado objeto está compuesto por una seria de instancias del otro, y que este último no puede existir sin el primero. Por ejemplo, la relación entre hotel y habitaciones puede definirse como una composición. La cardinalidad del lado del compuesto es siempre 1. Se nota con un rombo lleno (pintado) del lado del compuesto (en el ejemplo, el compuesto es el hotel).
* La agregación es una composición débil. Es un concepto bastante subjetivo, la idea sería la misma que la composición, con la diferencia de que el objeto que compone puede vivir independientemente del compuesto.
* La agregación es una composición débil. Es un concepto bastante subjetivo, la idea sería la misma que la agregación, con la diferencia de que el objeto que compone puede vivir independientemente del compuesto.


== Object Constraint Language ==
== Object Constraint Language ==
Línea 34: Línea 34:
* No utilizar clases de asociación cuando la asociación puede darse muchas veces entre los objetos. En el ejemplo de los trenes, un mismo ''tren'' puede realizar muchos ''viajes'' sobre un mismo ''recorrido''. Para estos casos, en lugar de una clase de asociacion, se coloca una clase intermedia que representa cada instancia de asociación. La multiplicidad del lado de la clase intermedia es generalmente 1, ya que cada instancia se corresponde a una única instancia de los objetos que une.
* No utilizar clases de asociación cuando la asociación puede darse muchas veces entre los objetos. En el ejemplo de los trenes, un mismo ''tren'' puede realizar muchos ''viajes'' sobre un mismo ''recorrido''. Para estos casos, en lugar de una clase de asociacion, se coloca una clase intermedia que representa cada instancia de asociación. La multiplicidad del lado de la clase intermedia es generalmente 1, ya que cada instancia se corresponde a una única instancia de los objetos que une.
* Escribir <<CC>> sobre el nombre de cada clase para indicar que se trata de una clase conceptual.
* Escribir <<CC>> sobre el nombre de cada clase para indicar que se trata de una clase conceptual.
* Escribir <<Enum>> sobre el nombre de las clases enumeradas.
* Atención al ubicar los atributos en una determinada clase, puede que pertenezcan a una asociación más que a la clase en sí, depende lo que se desee modelar. Por ejemplo, en la relación Producto - Factura, un atributo de cantidad en Producto puede indicar el stock que queda del mismo, mientras que el mismo atributo en la asociación indica cuántos items del Producto se vendieron en la Factura.
* Atención al ubicar los atributos en una determinada clase, puede que pertenezcan a una asociación más que a la clase en sí, depende lo que se desee modelar. Por ejemplo, en la relación Producto - Factura, un atributo de cantidad en Producto puede indicar el stock que queda del mismo, mientras que el mismo atributo en la asociación indica cuántos items del Producto se vendieron en la Factura.
* No incluir en el diagrama clases que pertenecen a la implementación, y no al modelo conceptual.
* No incluir en el diagrama clases que pertenecen a la implementación, y no al modelo conceptual.
* Recordar que la idea del modelo conceptual es ser explicativo.
* Recordar que la idea del modelo conceptual es ser explicativo.
* Poner "'''/'''" en los atributos y responsabilidades derivadas.
* Poner "'''/'''" en los atributos y responsabilidades derivadas.
* De encontrarse con un ciclo, por ejemplo, Paciente - Hospital - Cama (con las tres asociaciones posibles), casi siempre es necesario usar OCL para asegurar que para un paciente que esta en una cama y en un hospital, esa cama pertenezca a ese hospital.
* No restringir algo con OCL que se podría haber modelado con el diagrama (por ejemplo poner multiplicidad * y restringir con OCL a que sean 2).
* La herencia de clases es útil cuando las clases más específicas se relacionan de maneras distintas con alguna otra clase. Si ambas se relacionan igual con una clase A no poner la misma relación hacia las dos clases específicas sinó una sola relación hacia la clase general.
* No poner una clase "Bizarra" '''sólo''' para facilitarnos una restricción en OCL que de otra manera hubiera sido muy complicada.


[[Category:Apuntes]]
[[Category:Apuntes]]
Ten en cuenta que todas las contribuciones a Cuba-Wiki pueden ser editadas, modificadas o eliminadas por otros colaboradores. Si no deseas que las modifiquen sin limitaciones, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre (véase Cuba-Wiki:Derechos de autor para más detalles). ¡No uses textos con copyright sin permiso!

Para editar esta página, responde la pregunta que aparece abajo (más información):

Cancelar Ayuda de edición (se abre en una ventana nueva)

Plantilla usada en esta página: