En este grupo En todos

Foro de UML



Include y Extend

Barzi
Perú, Perú
Escrito por Barzi Soft
el 29/01/2007

Hola amigos estoy confundido realmente con el uso de <<include>> y <<extend>>, quisiera que me ayuden..

Cuando y porque se usa include y tambien extend

Algun material que pueda guiarme, alguna web de ayuda...

Gracias..

Escrito por Ronaldinho
el 07/03/2007

Elemental mi querido watson.

Include:

El caso de uso origen incluye en su comportamiento al caso de uso destino.

Extend:

El caso de uso origen realiza lo que hace el caso de uso destino de una manera particular.

Escrito por Loco Uml
el 06/07/2007
Whatss! Ehhhh tio no te entiendo nada... Algun ejempplo
Ghosthead-nebula
Anzoátegui, Venezuela
Escrito por Ghosthead-nebula
el 15/07/2007

Más fácil aún, mira el diagrama que envío abajo (es uno de los diagramas que aparece en mi tesis)

<<include>> Cuando un caso de uso hijo asociado a un c.u. Padre SIEMPRE tiene que ocurrir. En el ejemplo, para el caso de uso "Realizar Solicitud" SIEMPRE tiene que ocurrir el "Validar Solicitud". Éste a su vez tiene dos subcasos hijos que siempre ocurren y de manera simultánea.

<<extend>> Cuando la ejecución de un caso de uso hijo es opcional... En el caso de uso del ejemplo, una solicitud puede ser una inscripción O una apelación. Una inscripción, a su vez, puede ser regular O exceso O paralelo.

Espero haber ayudado =)



Ficheros adjuntos:
CasoUso
Ghosthead-nebula
Anzoátegui, Venezuela
Escrito por Ghosthead-nebula
el 15/07/2007
Ah! Se me olvidaba. No le prestes mucha atención a los colores que empleé allí. Eso es algo relacionado con mi tesis. Ok?
Rodrigo
Perú
Escrito por Rodrigo
el 18/07/2007
Te entiendo :P, pero para sentirme seguro jeje, imagina el caso de uso "Login" se relaciona "extends" con las opciones del sistema mas directas como, "realizar compra", "registrar venta", "inscribir vendedor", y tendría un ejemplo directo en un programa en la que despues de ingresar, puedo hacer a click a los botones de "realizar compra", "registrar venta", "inscribir vendedor". EStan bien las relaciones en este ejemplo?
Ghosthead-nebula
Anzoátegui, Venezuela
Escrito por Ghosthead-nebula
el 13/08/2007

Bueno Rodrigo, yo creo que allí estás algo confundido y se entiende.

Yo veo más los casos "registrar venta", "inscribir vendedor" y "realizar compra" como casos de usos generales, que como extenciones del caso de uso "login".

Max Itu
Antofagasta, Chile
Escrito por Max Itu
el 26/09/2007
"Te entiendo :P, pero para sentirme seguro jeje, imagina el caso de uso "Login" se relaciona "extends" con las opciones del sistema mas directas como, "realizar compra", "registrar venta", "inscribir vendedor", y tendría un ejemplo directo en un programa en la que despues de ingresar, puedo hacer a click a los botones de "realizar compra", "registrar venta", "inscribir vendedor". EStan bien las relaciones en este ejemplo? "
por Rodrigo (Julio 2007)


Yo creo que en ese caso login seria <<include>> de los otros casos de uso que nombraste..

Saludos....


Y gracias Ghost por que me aclaraste la duda.... Valeee.


Escrito por Luis Alonso Chavarría Vásquez
el 23/10/2007

Te entiendo :P, pero para sentirme seguro jeje, imagina el caso de uso "Login" se relaciona "extends" con las opciones del sistema mas directas como, "realizar compra", "registrar venta", "inscribir vendedor", y tendría un ejemplo directo en un programa en la que despues de ingresar, puedo hacer a click a los botones de "realizar compra", "registrar venta", "inscribir vendedor". EStan bien las relaciones en este ejemplo? "
por Rodrigo (Julio 2007)

Yo creo que en ese caso login seria <<include>> de los otros casos de uso que nombraste..
saludos....
 
y gracias Ghost por que me aclaraste la duda.... Valeee.


Compañeros creo que la apreciacion esta un poco salida de contexto, el include se utiliza cuando un caso de uso incluye a otro caso de uso, esto se hace ya sea por reutilización o para hacer un caso de uso muy grande en pequeño, por ejemplo les puede decir que (Login) puede tener un include o user a otro caso de uso (Validar User) pero basandonos en lo que escribio Rodrigo arriba, (Login) no tiene una relación directa con los casos de uso "realizar compra", "registrar venta", "inscribirvendedor" porque estos son casos de uso de proposito de usuario es decir que tienen relacion con un actor y no precisamente con otro caso de uso, que seria una subfuncion, otro ejemplo de user o include como quieran llamarlo seria que "registrar venta" posea un include a otro caso de uso llamado "buscar articulos".

Por otro lado los extends son un poco mas fuera de lo normal a la hora de utilizar, puede que en todo un diagrama de casos de uso no tengas que utilizar ninguno. Estos funcionan como una herencia de clases, es decir tienes un caso de uso que realiza un proceso de "ingreso de documentos" en una biblioteca y esos documentos pueden ser libros, revistas, tesis, se pude decir que el documento base siempre es libro y podriamos sacar extends hacia los diferentes tipos de documentos como revistas y otro como tesis como casos de usos que extienden de ingreso de documentos pero conste que tienen que tener la misma funcionabilidad de "ingreso de documentos" pero puede que registre mas datos de lo normal en un libro, esto el el uso legitimo de los extends que son tan complicados de entender al principio, espero que con esta explicación les quede claro la diferecia de estos y sus usos correctos.

Saludos y gracias

Karla
Guatemala
Escrito por Karla
el 21/11/2007
Noa la reformaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Sergio G
Santiago, Chile
Escrito por Sergio G
el 27/11/2007
" Te entiendo :P, pero para sentirme seguro jeje, imagina el caso de uso "Login" se relaciona "extends" con las opciones del sistema mas directas como, "realizar compra", "registrar venta", "inscribir vendedor", y tendría un ejemplo directo en un programa en la que despues de ingresar, puedo hacer a click a los botones de "realizar compra", "registrar venta", "inscribir vendedor". EStan bien las relaciones en este ejemplo? "
por Rodrigo (Julio 2007)
Yo creo que en ese caso login seria <<include>> de los otros casos de uso que nombraste..
saludos....
 
y gracias Ghost por que me aclaraste la duda.... Valeee.

 
Compañeros creo que la apreciacion esta un poco salida de contexto, el include se utiliza cuando un caso de uso incluye a otro caso de uso, esto se hace ya sea por reutilización o para hacer un caso de uso muy grande en pequeño, por ejemplo les puede decir que (Login) puede tener un include o user a otro caso de uso (Validar User) pero basandonos en lo que escribio Rodrigo arriba, (Login) no tiene una relación directa con los casos de uso "realizar compra", "registrar venta", "inscribirvendedor" porque estos son casos de uso de proposito de usuario es decir que tienen relacion con un actor y no precisamente con otro caso de uso, que seria una subfuncion, otro ejemplo de user o include como quieran llamarlo seria que "registrar venta" posea un include a otro caso de uso llamado "buscar articulos".
por otro lado los extends son un poco mas fuera de lo normal a la hora de utilizar, puede que en todo un diagrama de casos de uso no tengas que utilizar ninguno. Estos funcionan como una herencia de clases, es decir tienes un caso de uso que realiza un proceso de "ingreso de documentos" en una biblioteca y esos documentos pueden ser libros, revistas, tesis, se pude decir que el documento base siempre es libro y podriamos sacar extends hacia los diferentes tipos de documentos como revistas y otro como tesis como casos de usos que extienden de ingreso de documentos pero conste que tienen que tener la misma funcionabilidad de "ingreso de documentos" pero puede que registre mas datos de lo normal en un libro, esto el el uso legitimo de los extends que son tan complicados de entender al principio, espero que con esta explicación les quede claro la diferecia de estos y sus usos correctos.
saludos y gracias

"

por Luis Alonso Chavarría Vásquez (Octubre 2007)



Tengo los mismos problemas que la persona que habrio el tema, yo estoy haciendo unos casos de uso pero he modificado pero sigo teniendo dudas, quien podria ayudarme en relacion a este tema


Saludos

Ghosthead-nebula
Anzoátegui, Venezuela
Escrito por Ghosthead-nebula
el 28/11/2007
" Te entiendo :P, pero para sentirme seguro jeje, imagina el caso de uso "Login" se relaciona "extends" con las opciones del sistema mas directas como, "realizar compra", "registrar venta", "inscribir vendedor", y tendría un ejemplo directo en un programa en la que despues de ingresar, puedo hacer a click a los botones de "realizar compra", "registrar venta", "inscribir vendedor". EStan bien las relaciones en este ejemplo? "
por Rodrigo (Julio 2007)
Yo creo que en ese caso login seria <<include>> de los otros casos de uso que nombraste..
saludos....
 
y gracias Ghost por que me aclaraste la duda.... Valeee.
 
Compañeros creo que la apreciacion esta un poco salida de contexto, el include se utiliza cuando un caso de uso incluye a otro caso de uso, esto se hace ya sea por reutilización o para hacer un caso de uso muy grande en pequeño, por ejemplo les puede decir que (Login) puede tener un include o user a otro caso de uso (Validar User) pero basandonos en lo que escribio Rodrigo arriba, (Login) no tiene una relación directa con los casos de uso "realizar compra", "registrar venta", "inscribirvendedor" porque estos son casos de uso de proposito de usuario es decir que tienen relacion con un actor y no precisamente con otro caso de uso, que seria una subfuncion, otro ejemplo de user o include como quieran llamarlo seria que "registrar venta" posea un include a otro caso de uso llamado "buscar articulos".
por otro lado los extends son un poco mas fuera de lo normal a la hora de utilizar, puede que en todo un diagrama de casos de uso no tengas que utilizar ninguno. Estos funcionan como una herencia de clases, es decir tienes un caso de uso que realiza un proceso de "ingreso de documentos" en una biblioteca y esos documentos pueden ser libros, revistas, tesis, se pude decir que el documento base siempre es libro y podriamos sacar extends hacia los diferentes tipos de documentos como revistas y otro como tesis como casos de usos que extienden de ingreso de documentos pero conste que tienen que tener la misma funcionabilidad de "ingreso de documentos" pero puede que registre mas datos de lo normal en un libro, esto el el uso legitimo de los extends que son tan complicados de entender al principio, espero que con esta explicación les quede claro la diferecia de estos y sus usos correctos.
saludos y gracias

"

por Luis Alonso Chavarría Vásquez (Octubre 2007)




A eso es que me refería cuando dije Yo veo más los casos "registrar venta", "inscribir vendedor" y"realizar compra" como casos de usos generales, que como extencionesdel caso de uso "login". De hecho, esos casos deberían tener casos de uso hijos, relacionándose con los <<include>> y <<extend>>



De todos modos, sería buena idea publicar su diagrama de casos de uso, para visualizar mejor el problema y poder ofrecer mejores soluciones.

Escrito por Montserrat
el 18/06/2008
"Ah! Se me olvidaba. No le prestes mucha atención a los colores que empleé allí. Eso es algo relacionado con mi tesis. Ok? "
por Ghosthead-Nebula (Julio 2007)



Gracias, con el dibujo me quedó muy claro.

Montserrat M.

Escrito por Cecy
el 27/08/2008

A mi también me sirvieron estas definiciones de include y extends, solamente que mi profesor nos dijo que extend se utiliza como un tipo de excepción en caso de que no suceda de manera correcta el caso ideal, no se que opinen de esto.


Gracias


Alim[zerg]
Cuba, Cuba
Escrito por Alim[zerg]
el 27/10/2008
Me aclararon muchas dudas sobre los <<include> y <<extend>>
Escrito por Tux
el 05/12/2008

Asi es, despejaron mis dudas igual. Como dicen:! Una imagen dice mas que mil palabras!

Saludos...

Escrito por Arirdmx
el 05/02/2009

Me parece aceptable el comentario de Luis Alonso, creo que partire en base a su explicacion, saludos!.

Escrito por Ojo Crítico
el 21/09/2009

Reconozcámoslo, OMG no llegó a definir bien los conceptos de include y extends en sus especificaciones de UML.

Por eso al final este tema, como el de la adecuada granularidad de los casos de uso, tienen que ser respondidos por gurús.

Por favor, no toméis esto como una crítica a los que aquí se han esforzado por aclarar el tema y ofrecer sus interpretaciones, sino contra la ambigüedad de muchos conceptos de UML.

Saludos

Tequila Love
Lima, Perú
Escrito por Tequila Love
el 20/02/2010

Que diferencia hay en un include y extend

Gabriel Rodriguez
Cundinamarca, Colombia
Escrito por Gabriel Rodriguez
el 16/04/2010

<<extend>> EJM: tienes un caso de uso Comprar y tienes q vaidar si el pago se hace en Efectivo o Tarjeta q son otros dos casos de uso, en este caso solo puedes hacer uso de uno a la vez.

<<include>> EJM: validar los datos de tu correo, tienes un caso de uso ValidarDatos y tienes q validar tu Contraseña y Usuario q son otros dos casos de uso, en este caso se hace uso de los dos al tiempo y los dos son necesarios.

Aqui se refleja el manenjo Padre e hijo.

Ojala t sirva.