You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
191 lines
23 KiB
191 lines
23 KiB
<chapter id="working-with-umbrello">
|
|
<title>Trabajando con &umbrello;</title>
|
|
<!-- Umbrello basics: creating diagrams, creating classes, adding objects to diagrams,
|
|
associations, editing properties, anchor points in associations, removing objects, removing
|
|
diagrams
|
|
-->
|
|
|
|
<para>Este capítulo presentará el interfaz de usuario de &umbrello; y le informará de todo lo que necesita saber para iniciar su primer esquema. Todas las acciones de &umbrello; son accesibles a través del menú y de las barras de herramientas, pero &umbrello; también hace un constante uso del botón <mousebutton>derecho</mousebutton> del ratón. Puede utilizar el &RMB; en la práctica totalidad de los elementos del área de trabajo o de la vista en árbol de &umbrello; para abrir un menú con las funciones más útiles aplicables al elemento en particular sobre el que está trabajando. Algunos usuarios encuentran el manejo de estos menús un tanto confuso inicialmente, porque están más acostumbrados a trabajar con el menú o las barras de herramientas, pero una vez que se acostumbre al botón <mousebutton>derecho</mousebutton>, verá que puede acelerar enormemente su trabajo. </para>
|
|
|
|
<sect1 id="user-interface">
|
|
<title>Interfaz de usuario</title>
|
|
<para>La ventana principal de &umbrello; está dividida en tres áreas que le ayudarán a mantener una visión general de todo el sistema y a acceder rápidamente a los diferentes diagramas mientras trabaja en su proyecto. </para>
|
|
<para>Esas áreas reciben el nombre de:</para>
|
|
<itemizedlist>
|
|
<listitem><para>Vista en árbol</para></listitem>
|
|
<listitem><para>Área de trabajo</para></listitem>
|
|
<listitem><para>Ventana de documentación</para></listitem>
|
|
</itemizedlist>
|
|
|
|
<screenshot>
|
|
<screeninfo>Interfaz de usuario de &umbrello;</screeninfo>
|
|
<mediaobject>
|
|
<imageobject>
|
|
<imagedata fileref="umbrello-ui.png" format="PNG"/>
|
|
</imageobject>
|
|
<textobject>
|
|
<phrase>Interfaz de usuario de &umbrello;</phrase>
|
|
</textobject>
|
|
<caption>
|
|
<para>Interfaz de usuario de &umbrello; </para>
|
|
</caption>
|
|
</mediaobject>
|
|
</screenshot>
|
|
|
|
<sect2 id="tree-view">
|
|
<title>Título</title>
|
|
<para>La vista en árbol está situada en la parte superior izquierda de la ventana, muestra todos los diagramas, clases, actores y casos de uso de los que está compuesto su esquema. Le permite tener una perspectiva de los elementos que componen su esquema. La vista en árbol también le proporciona una forma rápida de pasar de un diagrama a otro de su esquema así como de introducir elementos de su esquema en el diagrama actual. </para>
|
|
<para>Si está trabajando en un modelo con bastantes clases y diagramas, la vista en árbol le puede ayudar a controlarlo todo organizando los elementos de su esquema en carpetas. Puede crear nuevas carpetas seleccionando la opción adecuada en el menú contextual (&RMB; </para>
|
|
</sect2>
|
|
|
|
<sect2 id="documentation-window">
|
|
<title>Ventana de documentación</title>
|
|
<para>La ventana de documentación es esa ventana pequeña situada al fondo a la izquierda de &umbrello;, le permite previsualizar rápidamente la documentación para el objeto seleccionado. Esta ventana es bastante pequeña debido a que su propósito es darle una rápida noción del elemento en cuestión sin acaparar mucho espacio en la pantalla. Si desea ver la documentación más detalladamente puede abrir las propiedades del objeto. </para>
|
|
</sect2>
|
|
<sect2 id="work-area">
|
|
<title>Área de trabajo</title>
|
|
<para>El área de trabajo es el la ventana principal de &umbrello; y donde todo se lleva a cabo la parte importante del trabajo. Aquí es donde editará y verá los diagramas de su esquema. El área de trabajo muestra el diagrama sobre el que se está trabajando en cada momento, sólo es posible mostrar uno cada vez. </para>
|
|
</sect2>
|
|
</sect1> <!--user-interface-->
|
|
<sect1 id="load-save">
|
|
<title>Crear, cargar y guardar proyectos</title>
|
|
<para>Lo primero que necesita para empezar a hacer cosas interesantes en &umbrello; es crear un esquema sobre el que trabajar. Cuando se inicia &umbrello;, siempre se carga el último esquema sobre el que se ha estado trabajando o crea uno vacío (según la configuración establecida en preferencias). Esto le permitirá empezar a trabajar inmediatamente. </para>
|
|
<sect2 id="new-model">
|
|
<title>Nuevo proyecto</title>
|
|
<para>Si en algún momento necesita crear un nuevo esquema, hágalo seleccionando (<guimenuitem>Nuevo</guimenuitem><guimenu>Archivo</guimenu> o pinchando sobre el icono <guiicon>Nuevo</guiicon> en la barra de herramientas. Si está trabajando en un esquema que ha sido modificado, &umbrello;le preguntará si quiere o no guardar sus cambios antes de cargar el nuevo esquema. </para>
|
|
</sect2>
|
|
<sect2 id="save-model">
|
|
<title>Guardar modelo</title>
|
|
<para>Puede guardar su esquema en cualquier momento seleccionando <guimenuitem>Guardar</guimenuitem> desde el menú <guimenu>Archivo</guimenu> o pulsando sobre el botón <guiicon>Guardar </guiicon> en la barra de herramientas de la aplicación. Si necesita guardar su modelo con un nombre diferente puede usar la opción <guimenuitem>Guardar como</guimenuitem> desde el menú <guimenu>Archivo</guimenu>. </para>
|
|
<para>&umbrello; también le permite ir guardando su trabajo automáticamente cada cierto tiempo. Puede indicar si desea o no esta opción así como el intervalo de tiempo en <guimenu>preferencias</guimenu>.</para>
|
|
</sect2>
|
|
<sect2 id="load-model">
|
|
<title>Cargar modelo</title>
|
|
<para>Para cargar un esquema ya existente puede seleccionar la opción <guimenuitem>Abrir</guimenuitem> desde el menú <guimenu>Archivo</guimenu> o pulsar sobre el icono <guiicon>Abrir</guiicon> de la barra de herramientas. Puede acceder a los esquemas usados recientemente en el submenú <guimenuitem>Abrir reciente</guimenuitem> en el menú <guimenu>Archivo</guimenu>. </para>
|
|
<para>&umbrello; sólo puede trabajar en un sólo esquema al mismo tiempo, esto hace que si intenta cargar un nuevo esquema en el programa cuando ha realizado alguna modificación sobre el que está trabajando, &umbrello; le preguntará si quiere guardar sus cambios antes de cerrarlo y abrir el nuevo. Puede iniciar dos o más instancias de &umbrello; al mismo tiempo, también puede copiar y pegar entre dos instancias. </para>
|
|
</sect2>
|
|
</sect1> <!--load-save-->
|
|
<sect1 id="edit-model">
|
|
<title>Editar modelo</title>
|
|
<para>En &umbrello; existen básicamente dos formas de editar los elementos de su modelo. <itemizedlist>
|
|
<listitem><para>Editar los elementos del esquema directamente a través de la vista en árbol.</para></listitem>
|
|
<listitem><para>Editarlos a través de un diagrama.</para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
<para>Usando el menú contextual de los distintos elementos de la vista en árbol podrá añadir, eliminar y modificar casi todos los elementos de su esquema. Pinchando con el botón <mousebutton>derecho</mousebutton> del ratón sobre las carpetas en la vista en árbol también podrá crear diferentes tipos de diagramas dependiendo si la carpeta en cuestión es <emphasis>vista de caso de uso</emphasis> o <emphasis>vista lógica</emphasis>, actores, casos de uso, clases, etc... </para>
|
|
<para>Una vez que ha añadido algún elemento a su modelo, podrá editarlo mediante su diálogo de propiedades al que podrá acceder seleccionando la opción <emphasis>Propiedades</emphasis> en el menú contextual que aparece al pinchar con el botón <mousebutton>derecho</mousebutton> en los objetos de la vista en árbol. </para>
|
|
<para>También puede editar su esquema creando o modificando sus elementos por medio de los diagramas. En la siguiente sección tiene más detalles de como hacer esto. </para>
|
|
</sect1>
|
|
<sect1 id="add-remove-diagrams">
|
|
<title>Añadir y eliminar diagramas</title>
|
|
<para>Su esquema &UML; está formado por un conjunto de elementos de &UML; y las asociaciones entre ellos. Dado que no es posible ver el esquema directamente, se usan <emphasis>diagramas</emphasis> para ello. </para>
|
|
<sect2 id="create-diagram">
|
|
<title>Crear diagramas</title>
|
|
<para>Para crear un nuevo diagrama en su esquema seleccione el tipo de diagrama que necesita en <guimenuitem>Nuevo</guimenuitem> del menú <guimenu>Diagrama</guimenu> y asígnele un nombre. Se creará el diagrama y podrá verlo en la vista de árbol </para>
|
|
<para>Recuerde que &umbrello; emplea a menudo menús contextuales, también puede pulsar &RMB; sobre una carpeta de la vista en árbol y seleccionar el tipo de diagrama que desee desde la opción <guisubmenu>Nuevo</guisubmenu> del menú contextual. Observe que puede crear diagramas de caso de uso sólo desde las carpetas de vista de casos de uso y los otros tipos de diagramas sólo pueden ser creados en las carpetas de vista lógica. </para>
|
|
</sect2>
|
|
<sect2 id="remove-diagram">
|
|
<title>Eliminar diagramas</title>
|
|
<para>Si desea eliminar un diagrama de su esquema, puede hacerlo activándolo y seleccionando <guimenuitem>Borrar</guimenuitem> desde el menú <guimenu>Diagrama</guimenu>. También puede eliminarlo seleccionado <guimenuitem>Borrar</guimenuitem> desde el menú contxtual del diagrama en la vista en árbol. </para>
|
|
<para>Dado que el borrado de diagramas es algo delicado porque se puede perder mucho trabajo si se hace accidentalemente, &umbrello; le pedirá confirmación antes de eliminar cualquier diagrama. Una vez que un diagrama ha sido borrado y el archivo ha sido guardado, ya no será posible recuperarlo. </para>
|
|
</sect2>
|
|
<sect2 id="rename-diagram">
|
|
<title>Renombrar diagramas</title>
|
|
<para>Si quiere cambiar el nombre de un diagrama ya existente, puede hacerlo seleccionando Renombrar desde el menú que le aparece al &RMB; sobre la vista de árbol. </para>
|
|
<para>Otra forma de renombrar un diagrama es hacerlo a través de su diálogo de propiedades que puede ver seleccoinado 'Propiedades' desde el menú contextual o haciendo doble click sobre la vista de árbol. </para>
|
|
</sect2>
|
|
</sect1>
|
|
<sect1 id="edit-diagram">
|
|
<title>Editar diagramas</title>
|
|
<para>Cuando esté trabajando en un diagrama, &umbrello; tratará de ayudarle indicándole algunas sencillas reglas sobre qué elementos son válidos en los distintos tipos de diagramas así como las relaciones que pueden existir entre ellos. Si usted es un experto en &UML; seguramente ni se dé cuenta, pero si está empezando le ayudará a crear correctamente diagramas que cumplan el estándar. </para>
|
|
<para>Una vez que ha creado sus diagramas, es hora de editarlos. Algún novato observador habrá observado la diferencia entre editar un diagrama y editar el <emphasis>esquema</emphasis>. Como ya sabrá, los diagramas son <emphasis>vistas</emphasis> de su esquema. Por ejemplo, si crea una clase editando un diagrama de clases estará editando el diagrama y el modelo, pero si cambia el color o otra opción visual en un diagrama de clases, estará editando sólo el diagrama sin modificar el esquema. </para>
|
|
<sect2 id="insert-elements">
|
|
<title>Insertar diagramas</title>
|
|
<para>Una de las primeras cosas que hará cuando edite un nuevo diagrama es insertar elementos en ellos (clases, actores, casos de uso,&etc;). Existen básicamente dos formas de hacer esto:</para>
|
|
<itemizedlist>
|
|
<listitem><para>Arrastrando elementos ya existentes en su esqumas desde la vista en árbol.</para></listitem>
|
|
<listitem><para>Crear nuevos elementos en su modelo y añadirlos a su diagrama al mismo tiempo usando alguna de las herramientas de edicción de la barra de herramientas.</para></listitem>
|
|
</itemizedlist>
|
|
<para>Para introducir elementos ya existentes en su esquema, simplemente arrástrelos desde la vista en árbol y suéltelos en el lugar del diagrama donde quiere situarlos. Siempre podrá mover elementos en los diagramas empleando la herramienta 'Seleccionar'. </para>
|
|
<para>la segunda forma de añadir elementos a su diagrama es usando las herramientas de edicción de la barra de herramientas principal (observe que esto también añadirá los elementos a su esquema). </para>
|
|
<para>La barra de herramientas principal está situada, por omisión, en la parte derecha de la ventana de la aplicación. Desde &umbrello; 1.2 se situa en la parte superior de la ventana. Puede situarla en cualquier otra parte o anclarla en otro punto. Las herramientas que contiene (es decir, lo botones que ve sobre ella) cambiarán según el modelo de diagrama sobre el que esté trabajando en cada momento. El botón de la herramienta que está seleccionada en cada momento aparece activado. Podrá pasar a la herramienta de selección pulsando &Esc;. </para>
|
|
<para>Una vez que ha seleccionado una herramienta de edición en la barra de herramientas de trabajo (por ejemplo la herramienta para insertar clases) el puntero del ratón adopta forma de cruz, ahora puede insertar elementos en su esquema haciendo click en su diagrama. Observe que los elemtos en &UML; deben tener un <emphasis>nombre único</emphasis> así que si tiene una clase llamada <quote>claseA</quote> en un diagrama y utiliza la herramienta insertar para introducir otra clase en otro diagrama, no podrá llamarla <quote>claseA</quote>. Dado que se supone que se trata de elementos diferentes, sus nombres también deberán serlo. Si lo que quiere hacer es añadir el <emphasis>mismo</emphasis> elemento en su diagrama la herramienta insertar clase no es adecuada para esto, lo que debe hacer es arrastar y soltar la clase desde la vista en árbol. </para>
|
|
</sect2>
|
|
<sect2 id="delete-elements">
|
|
<title>Borrar elementos</title>
|
|
<para>Podrá borrar cualquier elemento seleccionando la opción <guimenuitem>Borrar</guimenuitem> desde su menú contextual. </para>
|
|
<para>De nuevo hay una <emphasis>gran</emphasis> diferencia entre eliminar un objeto de un diagrama y eliminarlo de todo el esquema. Si borra un objeto de un diagrama, únicamente lo eliminará de ese diagrama concreto, seguirá formando parte de su esquema y si otros diagramas lo usan seguirá estando ahí. En cambio, si borra el elemento desde la vista en árbol sí que lo eliminará completamente de su <emphasis>esquema</emphasis>, con lo que desaparecerá de todos los diagramas donde aparecía. </para>
|
|
</sect2>
|
|
<sect2 id="edit-elements">
|
|
<title>Editar elementos</title>
|
|
<para>Puede editar la mayoría de los elementos de &UML; de sus esquemas y diagramas abriendo su diálogo de propiedades y seleccionando las opciones pertinentes. Para editar las propiedades de un objeto, seleccione <guimenuitem>Propiedades</guimenuitem> desde su menú contextual (haciendo &RMB;). Cada elemento tiene un diálogo de varias páginas donde configurar las opciones correspondientes a estos elementos. En algunos elementos, como los actores, sólo disponen de un par de opciones como el nombre del objeto y su documentación mientras que para otros como las clases puede editar sus atributos y operaciones, seleccionar lo que quiere que se vea en el diagrama, incluso los colores. </para>
|
|
|
|
<para>Para la mayoría de los elementos &UML;, si usa la herramienta selección (la flecha) puede abrir el diálogo de propiedades haciendo doble click sobre ellos. La exepción a esto son las asociaciones en cuyo caso un doble click crearía un punto de anclaje, para ello tiene que emplear el menú contextual (haciendo &RMB;) e ir al diálogo de propiedades. </para>
|
|
|
|
<para>Observe que también puede seleccionar la opción de propiedades desde el menú contextual de los elementos en la vista en árbol. Esto también le permite editar las propiedades de los diagramas como seleccionar si la rejilla debe o no verse. </para>
|
|
</sect2>
|
|
<sect2 id="edit-classes">
|
|
<title>Editar clases</title>
|
|
<para>Aunque la edición de propiedades de todos los objetos ya haya sido tratada en la sección anterior, las clases merecen una explicación adicional debido a su mayor complejidad y a que poseen más opciones que la mayoría de los elementos de &UML;. </para>
|
|
<para>En el diálogo de propiedades de una clase es posible configurar cualquier parámetro, desde el color que emplea hasta sus atributos y operaciones. </para>
|
|
<sect3 id="class-general-settings">
|
|
<title>Preferencias generales de clase</title>
|
|
<para>La pestaña de preferencias generales del diálogo de propiedades se explica por si mismo. Desde ahí podrá cambiar el nombre de la clase, la visibilidad, la documentación, &etc;. Esta pestaña siempre está disponible. </para>
|
|
</sect3>
|
|
<sect3 id="class-attributes-settings">
|
|
<title>Configuración de los atributos de las clases.</title>
|
|
<para>En la configuración de atributos podrá añadir, editar o borrar atributos (variables) de una clase. Puede mover atributos arriba y abajo en la lista pulsando la flecha del lateral de la ventana. Esta pestaña siempre está disponible. </para>
|
|
</sect3>
|
|
<sect3 id="class-operations-settings">
|
|
<title>Configuración de operaciones de clase</title>
|
|
<para>De modo similar a la página de configuración de atributos, aquí podrá añadir, editar y borrar operaciones de su clase. Cuando añada o edite una operación, deberá insertar la información básica en el diálogo <emphasis>Propiedades de operaciones</emphasis>. Si lo que desea es añadir parámetros a su operación deberá pulsar sobre <guibutton>Nuevo parámetro</guibutton> para que se muestre el diálogo <emphasis>Propiedades del paámetro</emphasis>. Esta página siempre está disponible. </para>
|
|
</sect3>
|
|
<sect3 id="class-template-settings">
|
|
<title>Configuración de la plantilla de clase</title>
|
|
<para>Desde ahí podrá añadir plantillas de clase, es decir clases no especificas o tipos de datos. En Java 1.5 recibirán el nombre de genéricas. </para>
|
|
</sect3>
|
|
<sect3 id="class-associations-page">
|
|
<title>Página de asociaciones de clase</title>
|
|
<para>La página de <guilabel>asociaciones de clase</guilabel> muestra todas las asociaciones de esa clase en el diagrama actual. Si hace doble click sobre una asociación podrá ver sus propiedades y, dependiendo del tipo de asociación podrá modificar algunos parámetros tales como el nombre del rol o incluir multiplicidad. Si la asociación no permite que estas opciones sean modificadas, el diálogo de propiedades de asociación será de sólo lectura y sólo podrá modificar la documentación asociada con esta asociación. </para>
|
|
<para>Esta página sólo estará disponible si abre las propiedades de clase desde un diagrama. Si selecciona las propiedades de clase en un menú contextual desde la vista en árbol, esta página no estará disponible. </para>
|
|
</sect3>
|
|
<sect3 id="class-display-page">
|
|
<title>Página de visualización de clase</title>
|
|
<para>En la página de <guilabel>opción de visualización</guilabel> podrá definir los elementos que deben mostrarse en un diagrama. Una clase podrá mostrarse simplemente como un rectángulo con su nombre escrito en él (especialemente útil si tiene varias clases o si, de momento, no está interesado en los detalles de cada clase) o bien mostrar completamente todos los paquetes, estereotipos,atributos y operaciones. </para>
|
|
<para>Dependiendo de la cantidad de información que desee ver, podrá seleccionar las correspondientes opciones en esa página. Los cambios que realize ahí sólo será <emphasis>opciones de visualización</emphasis> para el diagrama. Esto quiere decir que <quote>esconder</quote> la opercación de una clase sólo hará que no se muestren en el diagrama, pero la operción seguirá ahí formando parte de su esquema. Esta operación sólo estará disponible si selecciona las propiedades de clase desde un diagrama. Si abre las propiedades de clase desde la vista en árbol está página no estará disponible ya que esta opción de visualización carece de sentido en este contexto.</para>
|
|
</sect3>
|
|
<sect3 id="class-color-page">
|
|
<title>Página para configurar los colores de la clase</title>
|
|
<para>En la página <guilabel>color de objetos</guilabel> podrá configurar los colores que desee para las líneas y el relleno de los objetos. Obviamente, esta opción sólo tiene sentido para las clases que se muestran en los diagramas y no aparece cuando abre el diálogo de propiedades de clase desde la vista en árbol. </para>
|
|
</sect3>
|
|
</sect2>
|
|
|
|
<sect2 id="associations">
|
|
<title>Asociaciones</title>
|
|
<para>Las asociaciones relacionan dos objetos &UML; entre si. Normalemente, las asociaciones se definen entre dos clases, sin embargo algunos tipos de asociación también pueden darse entre casos de uso y actores. </para>
|
|
<para>Para crear una asociación seleccione la herramienta adecuada en la barra de herramientas de trabajo (asociación genérica, generalización, agregación, &etc;) y pinche primero sobre el primer elemento de la asociación y luego sobre el segundo. Observe que lo que hacemos son dos clicks, <emphasis>no</emphasis> arrastrar el click de un objeto a otro. </para>
|
|
<para>Si intenta crear una asociación que no se ajuste a las especificaciones de &UML;, &umbrello; no aceptará crearla y le mostrará un mensaje de error. Un ejemplo de esto sería si exixtiera una generalización desde la clase A hasta la B y tratase de crear otra desde B hasta A. </para>
|
|
<para>Pulsando con el botón <mousebutton>derecho</mousebutton> del ratón sobre una asociación verá un menú contextual con las acciones que pueden realizarse. Si quiere borrar una asociación, simplemente seleccione la opción <guimenuitem>Borrar</guimenuitem> en ese menú contextual. También puede seleccionar la opción <guimenuitem>propiedades</guimenuitem> y, según el tipo de asociación, editar los atributosque posea. </para>
|
|
<sect3 id="anchor-points">
|
|
<title>Puntos de anclaje</title>
|
|
<para>por omisión, las asociaciones se representan mediante una línea recta que conecta los dos objetos de un diagrama. </para>
|
|
<para>Podrá añadir puntos de anclaje haciendo <mousebutton>doble</mousebutton> click en cualquier parte de la línea de asociación.Esto puntos de anclaje se representan mediante un punto azul cada vez que se selecciona la línea, podrá moverlo a su antojo hasta dar la forma deseada a la (ex)recta de asociación. </para>
|
|
<para>Si desea eliminar puntos de anclaje, haga <mousebutton>doble</mousebutton> click sobre ellos. </para>
|
|
<para>Observe que el único modo de editar las propiedades de una asociación es a través del menú contextual. Si trata de hacer <mousebutton>doble</mousebutton> click sobre él como haría con cualquier otro objeto &UML;, se insertará un punto de anclaje. </para>
|
|
</sect3>
|
|
</sect2>
|
|
|
|
<sect2 id="notes">
|
|
<title>Notas, textos y cajas</title>
|
|
<para>Las notas,textos y cajas pueden aparecer en cualquier tipo de diagrama, carecen de valor semántico pero son útiles para añadir comentarios o explicaciones adicionales para facilitar la comprensión del diagrama. </para>
|
|
<para>Para añadir una nota o texto debe seleccionar la herramienta correspondiente de la barra de herramientas y pinchar sobre el punto del diagrama donde desee añadirlo. Puede editar el texto a través de su menú contextual o, en el caso de las notas, haciendo <mousebutton>doble</mousebutton> click sobre él. </para>
|
|
<sect3 id="anchors">
|
|
<title>Anclajes</title>
|
|
<para>Los anclajes sirven para unir una nota con otro elemento &UML;. P. ej. si suele usar una determinada nota para explicar o realizar algún comentario sobre una clase o una asociación en concreto, puede usar los anclajes para dejar claro que la nota <quote>pertenece</quote> a esa clase o asociación y no a otras. </para>
|
|
<para>Para anclar una nota con otro elemento &UML;, utilice la herramienta anclaje de la barra de herramientas de trabajo. Primero deberá pinchar sobre la nota y luego sobre el elemento &UML; al que quiere asociar la nota. </para>
|
|
</sect3>
|
|
</sect2>
|
|
</sect1>
|
|
</chapter>
|
|
<!--edit-diagram-->
|