<?xml version='1.0' encoding="utf-8" ?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" 
"../docbook-setup/docbookx/docbookx.dtd">
<!-- $Id: manual.xml 79 2008-11-16 10:58:21Z BraunHarald $ -->
<!--
Copyright (c) 1996-2008 The Regents of the University of California. All
Rights Reserved. Permission to use, copy, modify, and distribute this
software and its documentation without fee, and without a written
agreement is hereby granted, provided that the above copyright notice
and this paragraph appear in all copies.  This software program and
documentation are copyrighted by The Regents of the University of
California. The software program and documentation are supplied "AS
IS", without any accompanying services from The Regents. The Regents
does not warrant that the operation of the program will be
uninterrupted or error-free. The end-user understands that the program
was developed for research purposes and is advised not to rely
exclusively on the program for any reason.  IN NO EVENT SHALL THE
UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS,
ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE. THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT,
UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
-->


<book>

  <bookinfo>

    <date>5/17/2002</date>

    <mediaobject>
      <imageobject>
        <imagedata fileref="images/argologo200x190_on_ffffff.png" 
                format="PNG"/>
      </imageobject>
    </mediaobject>
    
    <title>
      <phrase lang="en">ArgoUML User Manual</phrase>
      <phrase lang="de">ArgoUML Anwenderhandbuch</phrase>
      <phrase lang="es">ArgoUML: Manual de Usuario</phrase>
    </title>

    <subtitle>
      <phrase lang="en">A tutorial and reference description</phrase>
      <phrase lang="de">Eine Lernanleitung und eine Referenzbeschreibung</phrase>
      <phrase lang="es">Tutorial y descripción de referencia</phrase>
    </subtitle>

    <abstract>

      <para lang="en">
      	This version of the manual is intended to describe the 
      	version @VERSION@ of ArgoUML.
      </para>
	  <para lang="de">
	  	Diese Version des Handbuches beschreibt die Version @VERSION@ von 
		ArgoUML.
	  </para>
      <para lang="es">
        Esta version de el manual está planeado para describir la versión
        @VERSION@ de ArgoUML.
      </para>

    </abstract>

    <authorgroup>

      <author><firstname>Alejandro</firstname><surname>Ramirez</surname></author>

      <author><firstname>Philippe</firstname><surname>Vanpeperstraete</surname></author>

      <author><firstname>Andreas</firstname><surname>Rueckert</surname></author>

      <author><firstname>Kunle</firstname><surname>Odutola</surname></author>

      <author><firstname>Jeremy</firstname><surname>Bennett</surname></author>

      <author><firstname>Linus</firstname><surname>Tolke</surname></author>

      <author><firstname>Michiel</firstname><surname>van der 
      Wulp</surname></author>

      <author lang="de">
      	<firstname>Übersetzung: Harald</firstname><surname>Braun</surname>
      </author>

    </authorgroup>

    <copyright>
      <year>2004</year>
      <year>2005</year>
      <year>2006</year>
      <year>2007</year>
      <year>2008</year>
      <holder>Michiel van der Wulp</holder>
    </copyright>
    <copyright><year>2003</year><holder>Linus Tolke</holder></copyright>
    <copyright><year>2001</year><year>2002</year><holder>Jeremy 
    Bennett</holder></copyright>
    <copyright><year>2001</year><holder>Kunle 
    Odutola</holder></copyright>
    <copyright><year>2000</year><holder>Philippe 
    Vanpeperstraete</holder></copyright>
    <copyright><year>2000</year><holder>Alejandro 
    Ramirez</holder></copyright>
    <copyright><year>2000</year><holder>Andreas 
    Rueckert</holder></copyright>
    <copyright lang="de"><year>2008</year><holder>Übersetzung: Harald 
    Braun</holder></copyright>
    <legalnotice>

  		<para lang="en">
	      	This material may be distributed only subject to the terms 
	      	and conditions set forth in the Open Publication License, v1.0 or 
	      	later. A copy of this license is included in the section 
	      	<link linkend="app.legal">Open Publication License</link>. The 
	      	latest version is presently available at 
	      	<ulink url="http://www.opencontent.org/openpub/">
	      	http://www.opencontent.org/openpub/</ulink>.
    	</para>
		<para lang="de">
			Dieses Material darf nur nach den in der Open Publication Lizenz,
			Version 1.0 oder höher beschriebenen Regeln und Bedingungen
			weitergegeben werden. Eine Kopie dieser Lizenz finden Sie im
			Abschnitt
			<link linkend="app.legal">Open Publication License</link>
			. Die aktuelle Version ist unter
			<ulink url="http://www.opencontent.org/openpub/"> 
			http://www.opencontent.org/openpub/</ulink>
			verfügbar.
		</para>
      <para lang="es">
        Este material puede ser distribuido solo sujeto a los terminos y
        condiciones establecidos en la Open Publication License, v1.0 o
        posterior.
        Una copia de esta licencia está incluida en la sección
        <link linkend="app.legal">Open Publication License</link>.
        La última versión está actualmente disponible en
        <ulink url="http://www.opencontent.org/openpub/">
        http://www.opencontent.org/openpub/</ulink>.
      </para>

    </legalnotice>

  </bookinfo>

  <toc />
  <preface>

    <title>
      <phrase lang="en">Preface</phrase>
	  <phrase lang="de">Vorwort</phrase>
      <phrase lang="es">Prefacio</phrase>
    </title>

    <indexterm lang="en"><primary>Design</primary></indexterm>
	<indexterm lang="de"><primary>Design</primary></indexterm>
	<indexterm lang="de"><primary>Entwurf</primary></indexterm>
    <indexterm lang="es">
      <primary>Diseño</primary>
    </indexterm>

    <para lang="en">
	    Software design is a cognitively challenging task. Designers 
	    must manually enter designs, but the primary difficulty is 
	    decision-making rather than data-entry. If designers improved their 
	    decision-making capabilities, it would result in better 
	    designs.
    </para>
	<para lang="de"> 
		Softwaredesign ist eine kognitiv herausfordernde Tätigkeit.
		Designer müssen Ihre Entwürfe manuell eingeben. Aber die grundlegende
		Schwierigkeit ist, entscheidungenorientiert statt dateneingabeorientiert 
		zu arbeiten. Wenn Designer ihre entscheidungsorientierten Fähigkeiten 
		verbesserten, würden bessere Entwürfe dabei herauskommen.
	</para>
    <para lang="es">
      El diseño de software es una tarea cognitiva dificil.
      Los diseñadores deben construir manualmente diseños, pero la dificultad
      principal es la toma de decisiones en lugar de la entrada de datos. Si los
      diseñadores mejoran sus capacidades de toma de decisiones, ello resultaría
      en mejores diseños.
    </para>

    <para lang="en">
	    Current CASE tools provide automation and graphical user 
	    interfaces that reduce the manual work of entering a design and 
	    transforming a design into code. They aid designers in 
	    decision-making mainly by providing visualization of design 
	    diagrams and simple syntactic checks. Also many CASE tools provide 
	    substantial benefits in the area of version control and concurrent 
	    design mechanisms. One area of design support that has been not 
	    been well supported is analysis of design decisions.
    </para>
	<para lang="de">
		Aktuelle CASE-Tools enthalten Automations- und grafische
		Anwender-Schnittstellen, die die manuelle Arbeit der Designeingabe
		reduzieren und den Entwurf in Programmcode transformieren. Sie
		unterstützen die Designer bei ihren Entscheidungen hauptsächlich
		durch die Visualisierung des Entwurfes und einfachen syntaktischen
		Überprüfungen. Darüber hinaus weisen viele CASE-Tools auch
		substantielle Vorteile im Bereich der Versionskontrolle und
		nebenläufiger Designmechanismen auf. Ein, bisher nicht besonders gut 
		unterstützter Bereich ist die Analyse von Designentscheidungen.
	</para>
    <para lang="es">
      Las herramientas CASE actuales proporcionan automatización e
      interfaces gráficos de usuario que reducen el trabajo manual 
      de construir un diseño y transformar un diseño en codigo.
      Ayudan a los diseñadores en la toma de decisiones principalmente 
      proporcionando visualización de los diagramas de diseño y 
      comprobaciones sintacticas simples.. 
      Adenas muchas herramientas CASE proporcionan beneficios sustanciales 
      en el area de control de versiones y mecanismos de diseño concurrente.
      Un area de soporte de diseño que no ha sido bien soportada es 
      el analisis de decisiones de diseño.
    </para>

    <para lang="en">
	    Current CASE tools are usable in that they provide a GUI that 
	    allows designers to access all the features provided by the tool. 
	    And they support the design process in that they allow the designer 
	    to enter diagrams in the style of popular design methodologies. But 
	    they typically do not provide process support to guide the designer 
	    through the design task. Instead, designers typically start with a 
	    blank page and must remember to cover every aspect of the 
	    design.
    </para>
	<para lang="de">
		Aktuelle CASE-Tools haben eine Anwenderschnittstelle (GUI), die
		es den Designern ermöglicht, auf alle, durch das Tool angebotenen
		Funktionen zuzugreifen. Und sie unterstützen den Entwurfsprozess,
		indem sie es dem Designer erlauben, Diagramme im Stil populärer
		Design-Methoden einzugeben. Üblicherweise enthalten sie aber keine
		Prozessunterstützung, die den Designer durch die Designschritte
		führt. Designer beginnen normalerweise mit einer leeren Seite und
		müssen jeden Aspekt des Entwurfes aus dem Kopf ableiten.
	</para>
    <para lang="es">
      Las herramientas CASE actuales son utiles en que proporcionan una
      GUI (Graphic User Interface; Interfaz Grafica de Usuario) que permite a
      los diseñadores acceder a todas las caracteristicas proporcionadas por la
      herramienta.
      Y soportan el proceso de diseño en que permiten al diseñador
      construir diagramas en el estilo de metodologias de diseño populares.
      Pero tipicamente no porporcionan soporte de proceso para guiar 
      al diseñador a traves de la tarea de diseño.
      En su lugar, los diseñadores tipicamente comienzan con una página 
      en blanco y deben recordar cubrir todos los aspectos del diseño.
    </para>


    <para lang="en">
      ArgoUML is a domain-oriented design environment that provides 
      cognitive support of object-oriented design. ArgoUML provides 
      some of the same automation features of a commercial CASE tool, 
      but it focuses on features that support the cognitive needs of 
      designers. These cognitive needs are described by three cognitive 
      theories:
      <orderedlist>

        <listitem>

          <indexterm lang="en"><primary>Reflection-in-Action</primary></indexterm>
          <para lang="en">reflection-in-action;</para>

        </listitem>

        <listitem>

          <indexterm lang="en"><primary>Opportunistic Design</primary></indexterm>
          <para lang="en">opportunistic design; and</para>

        </listitem>

        <listitem>

          <indexterm lang="en"><primary>Comprehension</primary></indexterm>
          <indexterm lang="en"><primary>Problem Solving</primary></indexterm>
          <para lang="en">comprehension and problem solving.</para>

        </listitem>

      </orderedlist>

    </para>
	<para lang="de">
		ArgoUML ist eine domänenorientierte Designumgebung mit kognitiver
		Unterstützung des objektorientierten Entwurfes. ArgoUML enthält
		im Wesentlichen die gleichen Automatismen wie kommerzielle CASE-Tools. 
		Sein Fokus liegt aber auf Funktionen, die die kognitiven Bedürfnisse
		von Designern befriedigen. Diese kognitiven Bedürfnisse werden durch
		3 kognitive Theorien beschrieben:
		<orderedlist>
			<listitem>
				<indexterm lang="de">
					<primary>Reflektion-während-Aktion</primary>
				</indexterm>
				<para lang="de">Reflektion-während-Aktion;</para>
			</listitem>
			<listitem>
				<indexterm lang="de">
					<primary>Opportunistisches Design</primary>
				</indexterm>
				<para lang="de">Opportunistisches Design; und</para>
			</listitem>
			<listitem>
				<indexterm lang="de">
					<primary>Verständnis</primary>
				</indexterm>
				<indexterm lang="de">
					<primary>Problemlösung</primary>
				</indexterm>
				<para lang="de">Verständnis und Problemlösung.</para>
			</listitem>
		</orderedlist>
	</para>
    <para lang="es">
      ArgoUML es un entorno de diseño orientado a dominio que proporciona
      soporte cognitivo de diseño orientado a objetos. ArgoUML proporciona
      algunas de las mismas caracteristicas de automatización de una herramienta
      CASE comercial, pero esta enfocado en caracteristicas que soportan las
      necesidades cognitivas de los diseñadores. Estas necesidades cognitivas
      estan descritas por tres teorias cognitivas.
      <orderedlist>
        <listitem>
          <indexterm>
            <primary>Reflection-in-Action</primary>
          </indexterm>

          <para>reflection-in-action;</para>
        </listitem>

        <listitem>
          <indexterm>
            <primary>Opportunistic Design</primary>
          </indexterm>

          <para>opportunistic design; and</para>
        </listitem>

        <listitem>
          <indexterm>
            <primary>Comprension</primary>
          </indexterm>

          <indexterm>
            <primary>Solución de Problemas</primary>
          </indexterm>

          <para>comprehension and problem solving.</para>
        </listitem>
      </orderedlist>
    </para>
	

    <para lang="en">
	    ArgoUML is based directly on the UML 1.4 specification. The
	    core model repository is an implementation of the Java Metadata
	    Interface (JMI) which directly supports MOF and uses the
	    machine readable version of the UML 1.4 specification provided
	    by the OMG.
    </para>
	<para lang="de">
		ArgoUML basiert direkt auf der UML 1.4-Spezifikation. Das
		zentrale Modell-Repository ist eine Implementierung der Java
		Metadaten Schnittstelle (JMI=Java Metadata Interface), welche MOF
		direkt unterstützt und die maschinenlesbare Version der UML
		1.4-Spezifikation der OMG verwendet.
	</para>
	<para lang="es">
	  ArgoUML esta basado en la especificación UML 1.4 .
	  El nucleo del modelo de repositorio es una implementación de
	  el Java Metadata Interface (JMI) que directamente soporta MOF y
	  usa la versión legible por maquina de la especificación UML 1.4
	  proporcionada por OMG.
	</para>

    <para lang="en">
	    Furthermore, it is our goal to provide comprehensive support 
	    <indexterm lang="en"><primary>XMI</primary></indexterm>
	    for OCL (the Object Constraint Language) and XMI (the XML Model 
	    Interchange format).
    </para>
	<para lang="de">
		Darüber hinaus ist es unser Ziel, eine verständliche Unterstützung
		<indexterm lang="de">
			<primary>XMI</primary>
		</indexterm>
		für OCL (die Object Constraint Language (Objekt-Bedingungs-Sprache)) 
		und XMI (dem XML Model Interchange Format(XML-Modell-Austauschformat)) 
		bereitzustellen.
	</para>
    <para lang="es">
      <indexterm lang="es">
        <primary>XMI</primary>
      </indexterm>
      Ademas, es nuestra meta proporcionar soporte exhaustivo
      para OCL (el Object Constraint Language) y XMI (el formato
      XML Model Interchange).
    </para>

    <para lang="en">
	    ArgoUML was originally developed by a small group of people 
	    as a research project. ArgoUML has many features that make it 
	    special, but it does not implement all the features that commercial 
	    CASE tools provide.
    </para>
	<para lang="de">
		ArgoUML wurde ursprünglich durch eine kleine Gruppe von Leuten als
		Forschungsprojekt entwickelt. ArgoUML hat viele Funktionen, die es
		sehr speziell machen. Aber es implementiert nicht alle Funktionen,
		kommerzieller CASE-Tools.
	</para>
    <para lang="es">
      ArgoUML fue originariamente desarrollado por un pequeño grupo de
      gente como un proyecto de investigación. ArgoUML tiene muchas
      caracteristicas que lo hacen especial, pero no implementa todas las
      caracteristicas que una herramienta CASE comercial proporciona.
    </para>

    <para lang="en">
	    The current version (@VERSION@) of ArgoUML implements all the 
	    diagram types of the 
	    <ulink url="http://www.omg.org/cgi-bin/doc?formal/01-09-67">UML&nbsp;1.4 
	    standard</ulink> (versions of ArgoUML prior to 0.20 implemented the
	    <ulink url="http://www.omg.org/cgi-bin/doc?formal/00-03-01">UML&nbsp;1.3 
	    standard</ulink>). It is written in Java and runs on every computer 
	    which provides a Java platform version 5 or newer. It uses the 
	    open file formats 
	    <indexterm lang="en"><primary>XML</primary></indexterm>
	    <ulink url="http://www.omg.org/cgi-bin/doc?formal/02-01-01">
	    XMI</ulink> (XML Metadata Interchange format) (for model 
	    information) and <ulink url="http://www.w3.org/TR/1998/NOTE-PGML">
	    PGML</ulink> (Precision Graphics Markup Language) (for graph 
	    information) for storage. When ArgoUML implements UML 2.0, PGML
	    will be replaced by the UML Diagram Interchange specification.
    </para>
	<para lang="de">
		Die aktuelle Version (@VERSION@) von ArgoUML implementiert alle
		Diagrammtypen des
		<ulink url="http://www.omg.org/cgi-bin/doc?formal/01-09-67">UML&nbsp;1.4 
	    Standard</ulink> (ArgoUML-Versionen vor 0.20 implementierten den
	    <ulink url="http://www.omg.org/cgi-bin/doc?formal/00-03-01">UML&nbsp;1.3 
	    Standard</ulink>). Sie ist in Java geschrieben und läuft auf jedem 
	    Rechner, der die Java-Plattform, Version 5 oder eine neuere Version 
	    aufweist. Es verwendet zum Speichern offene Dateiformate, wie  
	    <indexterm lang="de"><primary>XML</primary></indexterm>
	    <ulink url="http://www.omg.org/cgi-bin/doc?formal/02-01-01">
	    XMI</ulink> (XML Metadata Interchange Format) (für Modell- 
	    Informationen) und <ulink url="http://www.w3.org/TR/1998/NOTE-PGML">
	    PGML</ulink> (Precision Graphics Markup Language) (für grafische 
	    Informationen). Wenn ArgoUML UML 2.0 implementiert, wird 
	    PGML durch die UML Diagram Interchange Specifikation (Diagramm 
	    Austauschspezifikation) ersetzt.
    </para>
    <para lang="es">
      La publicación V0.20 actual de ArgoUML, implementa todos los tipos
      de diagramas de <ulink
      url="http://www.omg.org/cgi-bin/doc?formal/01-09-67">UML&nbsp;1.4
      standard</ulink> (versiones de ArgoUML anteriores a 0.20 implementaban la
      <ulink url="http://www.omg.org/cgi-bin/doc?formal/00-03-01">UML&nbsp;1.3
      standard</ulink>). Está escrito en Java y funciona en todo sistema que
      proporcione una plataforma Java 2 de Java 1.4 o posterior. Usa formatos de
      archivo abiertos
      <indexterm>
        <primary>XML</primary>
      </indexterm> <ulink
      url="http://www.omg.org/cgi-bin/doc?formal/02-01-01"> XMI</ulink> (formato
      XML Metadata Interchange) (para la información de modelos) y <ulink
      url="http://www.w3.org/TR/1998/NOTE-PGML"> PGML</ulink> (Precision
      Graphics Markup Language) (para información gráfica) para almacenamiento.
      Cuando ArgoUML implemente UML 2.0, PGML sera sustituido por la
      especificación UML Diagram Interchange.
    </para>

    <para lang="en">
	    This manual is the cumulative work of several people and has 
	    been evolving over several years. Connected to the release 0.10 of 
	    ArgoUML, Jeremy Bennett, wrote a lot of the new material that was 
	    added to the earlier versions by Alejandro Ramirez, Philippe 
	    Vanpeperstraete and Andreas Rueckert. He also added things from 
	    some of the other documents namely the developers cookbook by 
	    Markus Klink and Linus Tolke, the Quick Guide by Kunle Odutola, and 
	    the FAQ by Dennis Daniels. Connected to the release 0.14 changes 
	    were made by Linus Tolke, and by Michiel van der Wulp. These 
	    changes were mostly to adopt the manual to the new functions and 
	    appearance of ArgoUML version 0.14, and introduction of the index. 
	    The users and developers that have contributed by providing 
	    valuable input, such as review comments or observations while 
	    reading and using this manual are too many to name.
    </para>
    <para lang="de">
	    Dieses Handbuch ist die kumulative Arbeit mehrerer Personen und 
	    entwickelte sich über mehrere Jahre. Im Zusammenhang mit der 
	    ArgoUML-Release 0.10 schrieb Jeremy Bennett eine Menge neues Material, 
	    was dem in früheren Versionen von Alejandro Ramirez, Philippe 
	    Vanpeperstraete und Andreas Rueckert geschriebenen hinzugefügt wurde. 
	    Er fügte auch einige Dinge aus anderen Dokumenten ein, namentlich aus 
	    dem Programmierhandbuch von Markus Klink und Linus Tolke, der 
	    Kurzanleitung von Kunle Odutola, sowie der FAQ von Denny Daniels.
	    Im Zusammenhang mit der Version 0.14 wurden Änderungen durch Linus Tolke 
	    und Michiel van der Wulp vorgenommen. Diese Änderungen passten das 
	    Handbuch an die neuen Funktionen und das neue Erscheinungsbild von 
	    ArgoUML, Version 1.4 an und führten einen Index ein. Es sind zu viele 
	    Anwender und Entwickler, die diese Arbeit durch Ihre wertvollen Hinweise, 
	    wie Review-Kommentare oder Beobachtungen während des Lesens und der 
	    Anwendung dieses Handbuches unterstützten, um sie alle namentlich 
	    benennen zu können. 
    </para>
    <para lang="es">
      Este manual es el trabajo acumulativo de muchas personas y ha estado
      evolucionando durante muchos años. Conectado con la publicación 0.10 de
      ArgoUML, Jeremy Bennett, escribió gran cantidad de nuevo material que fue
      añadido a las vestiones anteriores por Alejandro Ramirez, Philippe
      Vanpeperstraete y Andreas Rueckert. El ademas añadió cosas de algunos de
      los otros documentos como el libro de cocina de los desarrolladores por
      Markus Klink y Linus Tolke, la Guia Rápida por Kunle Odutola, y el FAQ
      (Preguntas frecuentes) por Dennis Daniels. Conectado con la publicación
      0.14 se realizaron cambios por Linus Tolke, y Michiel van der Wulp. Estos
      cambios fueron mayoritariamente adaptar el manual a las nuevas funciones y
      apariencia de la version 0.14 de ArgoUML, y la introducción del indice.
      Los usuarios y desarrolladores que han contribuido proporcionando ayuda
      valiosa, como revisiones, comentarios y observaciones mientras leen y usan
      este manual son demasiados para ser nombrados.
    </para>


    <para lang="en">
	    ArgoUML is available for free and can be used in commercial 
	    settings. For terms of use, see the license agreement presented 
	    when you download ArgoUML. We are providing the source code for 
	    ArgoUML for you to review, customize to your needs, and improve. 
	    Over time, we hope that ArgoUML will evolve into a powerful and 
	    useful tool for everyone to use.
    </para>
    <para lang="de">
	    ArgoUML ist frei verfügbar und kann im kommerziellen Umfeld genutzt 
	    werden. Wenn Sie ArgoUML herunterladen, entnehmen Sie bitte die 
	    Nutzungsbedingungen den beigefügten Lizenzbedingungen. Wir bieten Ihnen 
	    den Quellcode von ArgoUML an, damit Sie sich diesen ansehen, an Ihre 
	    Bedürfnisse anpassen und verbessern können. Wir hoffen, dass sich 
	    ArgoUML nach und nach zu einem leistungsfähigen und nützlichen Tool für 
	    jedermann entwickelt.
    </para>
    <para lang="es">
      ArgoUML esta disponible gratuitamente y puede ser usado en entornos
      comerciales. Para los terminos de uso, mira el acuerdo de licencia
      presentado cuando tu descargas ArgoUML. Estamos proporcionando el codigo
      fuente de ArgoUML para que puedas revisarlo, adecuarlo a tus necesidades y
      mejorarlo. Pasado el tiempo, esperamos que ArgoUML evolucione en una
      poderosa y util herramienta que todos puedan usar.
    </para>


    <para lang="en">
	    This User Manual is aimed at the working designer, who wishes 
	    to make use of ArgoUML. The manual is presently written assuming 
	    familiarity with UML, but eventually it will support those new to 
	    UML.
    </para>
    <para lang="de">
	    Dieses Anwenderhandbuch ist für den Designer gedacht, der seine Entwürfe 
	    mit Hilfe von ArgoUML erstellen möchte. Das Handbuch setzt voraus, dass 
	    Sie mit UML vertraut sind. Eventuell unterstützt es aber auch diejenigen, 
	    für die UML neu ist.
	</para>
    <para lang="es">
      Este Manual de Usuario esta orientado al diseñador, quien desea
      hacer uso de ArgoUML. El manual esta escrito asumiendo familiaridad con
      UML, pero eventualmente puede ayudar a aquellos nuevos en UML.
    </para>

    <para lang="en">
      The manual is written in DocBook/XML and available as both 
      <indexterm lang="en"><primary>XML</primary></indexterm>
      HTML and PDF.
    </para>
    <para lang="de">
      Das Handbuch ist in DocBook/XML geschrieben und sowohl als 
      <indexterm lang="de"><primary>XML</primary></indexterm>, 
      HTML als auch als PDF verfügbar.
    </para>
    <para lang="es">
      El manual esta escrito en DocBook/XML y esta disponible como
      <indexterm>
        <primary>XML</primary>
      </indexterm> HTML y PDF.
    </para>


    <para lang="en">
    	The ArgoUML project welcomes those who want to get more
    	involved. Look at the
    	<ulink url="http://argouml.tigris.org/">project website</ulink>
    	to find out more.
    </para>
    <para lang="de">
    	Das ArgoUML-Projekt heisst alle willkommen, die sich beteiligen wollen. 
    	Mehr finden Sie unter der
    	<ulink url="http://argouml.tigris.org/">Projekt-Webseite</ulink>.
    </para>
    <para lang="es">
      El proyecto ArgoUML da la bienvenida a aquellos que quieren estar
      mas involucrados. Mira en <ulink url="http://argouml.tigris.org/">project
      website</ulink> para encontrar mas información.
    </para>

    <para lang="en">
    	Tell us what you think about this User Manual! Your comments
    	will help us improve things. See
    	<xref linkend="s2.intro.user.feedback" />
    	.
    </para>
    <para lang="de">
    	Teilen Sie uns bitte mit, was Sie über das Anwenderhandbuch denken!
    	Ihre Kommentare helfen uns, es weiter zu verbessern. Siehe 
    	<xref linkend="s2.intro.user.feedback" />
    	.
    </para>
    <para lang="es">
      ¡Dinos que piensas sobre este Manual de Usuario! Tus comentarios nos
      ayudaran a mejorar cosas. Mira <xref linkend="s2.intro.user.feedback" />.
    </para>

  </preface>

  <chapter>

    <title> 
      <phrase lang="en">Introduction</phrase>
      <phrase lang="de">Einleitung</phrase>
      <phrase lang="es">Introducción</phrase>
    </title>

    <sect1>

      <title>
        <phrase lang="en">Origins and Overview of ArgoUML</phrase>
        <phrase lang="de">Die Anfänge und ein Überblick über ArgoUML</phrase>
        <phrase lang="es">Origenes y Visión General de ArgoUML</phrase>
      </title>

      <sect2 id="s2.ooad">

        <title>
          <phrase lang="en">Object Oriented Analysis and Design</phrase>
          <phrase lang="de">Objektorientierte Analyse und Design</phrase>
          <phrase lang="es">Analisis Orientado a Objeto y Diseño</phrase>
        </title>

        <indexterm lang="en"><primary>Analysis</primary></indexterm> 
        <indexterm lang="en"><primary>Design</primary></indexterm>
        <indexterm lang="de"><primary>Analyse</primary></indexterm> 
        <indexterm lang="de"><primary>Design</primary></indexterm>
        <indexterm lang="de"><primary>Entwurf</primary></indexterm>

        <indexterm lang="es">
          <primary>Analisis</primary>
        </indexterm>

        <indexterm lang="es">
          <primary>Diseño</primary>
        </indexterm>



        <para lang="en">
	        Over the past decade, Object Oriented Analysis and Design 
	        (OOA&amp;D) has become <emphasis>the</emphasis> dominant 
	        software development paradigm. With it has come a major shift 
	        in the thought processes of all involved in the software 
	        development life cycle.
        </para>
        <para lang="de">
	        Im letzten Jahrzehnt wurde die objektorientierte Analyse und Design 
	        (OOA&amp;D) zu <emphasis>dem</emphasis> dominanten Softwareparadigma. 
	        Damit einhergehend fand ein Umdenken in allen, an dem 
	        Softwarelebenszyklus beteiligten Prozessen statt. 
        </para>
        <para lang="es">
          Durante la última decada, el Analisis Orientado a Objeto y
          Diseño (Object Oriented Analysis and Design; OOA&amp;D) se ha
          convertido en <emphasis>el</emphasis> paradigma de desarrollo de
          software dominante. Con ello se ha conseguido un gran avance en los
          procesos de pensamiento de todos los involucrados en el ciclo de vida
          del desarrollo des software.
        </para>

        <para lang="en">
	        Programming language support for objects began with 
	        Simula&nbsp;67, but it was the emergence in the 1980&apos;s of 
	        hybrid languages, such as C++, Ada and Object Pascal that 
	        allowed OOA&amp;D to take off. These languages provided support 
	        for both OO and procedural programming. Object Oriented 
	        <emphasis>programming</emphasis> became mainstream.
        </para>
        <para lang="de">
	        Die Unterstützung für Objekte begann mit der Programmiersprache 
	        Simula&nbsp;67&mdash; aber es war das Erscheinen der Hybridsprachen 
	        wie C++, Ada und Objekt Pascal in den 80&apos;ern, die das 
	        Durchstarten der OOA&amp;D ermöglichten. Diese Sprachen enthielten 
	        eine Unterstützung für Beides, der OO- und der prozeduralen 
	        Programmierung. Die objektorientierte 
	        <emphasis>Programmierung</emphasis> wurde zur 
	        Hauptentwicklungsrichtung.
        </para>
        <para lang="es">
          El soporte de objetos en un lenguaje de programación empezó con
          Simula&nbsp;67, pero fue la aparición en la decada de 1980 de los
          lenguajes híbridos, como es C++, Ada y Object Pascal lo que permitió a
          OOA&amp;D despegar. Estos lenguajes proporcionaban soporte para OO
          ademas de para programación procedural. La
          <emphasis>programación</emphasis> Orientada a Objeto se convirtió en
          la corriente dominante.
        </para>

        <para lang="en">
	        An OO system is designed and implemented as a 
	        <emphasis>simulation</emphasis> of the real world using 
	        software artifacts. This premise is as powerful as it is 
	        simple. By using an OO approach to <emphasis>design</emphasis> 
	        a system can be designed and tested (or more correctly 
	        simulated) without having to actually build the system 
	        first.
        </para>
        <para lang="de">
	        Ein OO-System wird als <emphasis>Simulation</emphasis> der realen 
	        Welt mit Hilfe von Softwarebausteinen entworfen und implementiert. 
	        Diese Prämisse ist so mächtig wie auch einfach. Durch die 
	        Anwendung des OO-<emphasis>Design</emphasis>-Ansatzes kann ein 
	        System entworfen und getestet (oder korrekter: simuliert) werden, 
	        ohne dass es vorher gebaut werden muss.
		</para>
        <para lang="es">
          Un sistema OO está diseñado y implementado como una
          <emphasis>simulación</emphasis> del mundo real usando artefactos
          software. Esta premisa es tan potente como simple. Usando un
          acercamiento OO para <emphasis>diseñar</emphasis> un sistema puede ser
          diseñado y testeado (o mas correctamente simulado) sin tener que
          construir el sistema real primero.
        </para>


        <para lang="en">
	        It is the development during the 1990&apos;s of tools to 
	        support Object Oriented <emphasis>analysis</emphasis> and 
	        <emphasis>design</emphasis> that moved this approach into the 
	        mainstream. When coupled with the ability to design systems at 
	        a very high level, a tool based OOA&amp;D approach has enabled 
	        the implementation of more complex systems than previously 
	        possible.
        </para>
        <para lang="de">
	        Es ist die Entwicklung von Tools während der 90&apos;er Jahre, die 
	        die objektorientierte <emphasis>Analyse</emphasis> und das 
	        objektorientierte <emphasis>Design </emphasis> vorantrieben. 
	        Gekoppelt mit der Fähigkeit, Systeme auf einer sehr hohen 
	        Abstraktionsebene zu entwerfen, ermöglichte der toolbasierte 
	        OOA&amp;D-Ansatz die Implementierung sehr viel komplexerer Systeme 
	        als bisher möglich.
        </para>
        <para lang="es">
          Es el desarrollo durante la decada de 1990 de herramientas para
          soportar <emphasis>analisis</emphasis> Orientado a Objeto y
          <emphasis>diseño</emphasis> lo que coloco este enfoque en la corriente
          dominante. Cuando se combina con la capacidad de diseñar sistemas a
          muy alto nivel, una herramienta basada en el enfoque OOA&amp;D ha
          permitido la implementación de sistemas mas complejos que los posibles
          previamente.
        </para>


        <para lang="en">
	        The final driver that has propelled OOA&amp;D has been 
	        its suitability for modeling graphical user interfaces. The 
	        popularity of object based and object oriented graphical 
	        languages such as Visual Basic and Java reflect the 
	        effectiveness of this approach.
        </para>
        <para lang="de">
	        Das letzte Element, das die OOA&amp;D vorantrieb, war seine 
	        Fähigkeit, grafische Anwenderschnittstellen zu modellieren. Die 
	        Popularität der objektbasierten und objektorientierten grafischen 
	        Sprachen, wie Visual Basic und Java reflektieren die Effizienz 
	        dieses Ansatzes.
        </para>
        <para lang="es">
          El último factor que ha propulsado OOA&amp;D ha sido su
          idoneidad para modelar interfaces graficos de usuario. La popularidad
          de lenguajes graficos orientados a objeto y basados en objeto como
          Visual Basic y Java refleja la efectividad de este enfoque.
        </para>

      </sect2>

      <sect2>

        <title>
          <phrase lang="en">The Development of ArgoUML</phrase>
          <phrase lang="de">Die Entwicklung von ArgoUML</phrase>
          <phrase lang="es">El Desarrollo de ArgoUML</phrase>
        </title>

        <para lang="en">
	        During the 1980&apos;s a number of OOA&amp;D process 
	        methodologies and notations were developed by different 
	        research teams. It became clear there were many common themes 
	        and, during the 1990&apos;s, a unified approach for OOA&amp;D 
	        notation was developed under the auspices of the 
	        <ulink url="http://www.omg.org">Object Management 
	        Group</ulink>. This standard became known as the Unified 
	        Modeling Language (UML), and is now the standard language for 
	        communicating OO concepts.
        </para>
        <para lang="de">
	        Während der 80&apos;er Jahre wurden einige OOA&amp;D-
	        Vorgehensmethoden und -Notationen von unterschiedlichen Forscherteams 
	        entwickelt. Es wurde klar, dass es viele gemeinsame Themenbereiche 
			gab und so wurde während der 90&apos;er Jahre eine vereinheitlichte 
	        OOA&amp;D-Notation unter der Schirmherrschaft der 
	        <ulink url="http://www.omg.org">Object Management Group</ulink> 
	        entwickelt. Dieser Standard wurde als Unified Modeling Language 
	        (UML&mdash;Einheitliche Modellierungssprache) bekannt, und ist heute 
	        die Standardsprache für die Kommunikation von OO-Konzepten.
        </para>
        <para lang="es">
          Durante la decada de 1980 un número de metodologías de procesos
          OOA&amp;D y notaciones fueron desarrolladas por diferentes equipos de
          investigación. Se hizo patente que habia muchos temas comunes y,
          durante la decada de 1990, un enfoque unificado para la notación
          OOA&amp;D fué desarrollado bajo el auspicio del <ulink
          url="http://www.omg.org">Object Management Group</ulink>. Este
          estandar se hizo conocido como el Unified Modeling Language (UML), y
          ahora es el lenguaje estandar para comunicar conceptos OO.
        </para>


        <para lang="en">
	        ArgoUML was conceived as a tool and environment for use 
	        in the analysis and design of object-oriented software systems. 
	        In this sense it is similar to many of the commercial CASE 
	        tools that are sold as tools for modeling software systems. 
	        ArgoUML has a number of very important distinctions from many 
	        of these tools.
        </para>
        <para lang="de">
	        ArgoUML war als Tool und Umgebung für Analyse und Design 
	        objektorientierter Softwaresysteme gedacht. In diesem Sinne ist 
	        es vergleichbar mit vielen kommerziellen CASE-Tools, die für die 
	        Modellierung von Softwaresystemen verkauft werden.
	        ArgoUML enthält eine Anzahl sehr wichtiger Merkmale, wodurch es sich 
	        von diesen Tools unterscheidet.
		</para>
        <para lang="es">
          ArgoUML fué concebido como un entorno y herramienta para usar en
          el analisis y diseño de sistemas de software orientados a objeto. En
          este sentido es similar a muchos de las herramientas CASE comerciales
          que son vendidas como herramientas para modelar sistemas software.
          ArgoUML tiene un número de distinciones muy importantes de muchas de
          esas herramientas.
        </para>

        <orderedlist>

          <listitem>

            <para lang="en">
              It is free.
            </para>
            <para lang="de">
              Es ist frei.
            </para>
            <para lang="es">
              == Translation is missing == 
            </para>

          </listitem>

          <listitem>

            <para lang="en">
	            ArgoUML draws on research in cognitive psychology to 
	            provide novel features that increase productivity by 
	            supporting the cognitive needs of object-oriented software 
	            designers and architects.
            </para>
            <para lang="de">
	            ArgoUML zeichnet sich durch die Erforschung kognitiver 
	            Psychologie aus, die ungewöhnliche Funktionen zur Folge hatten, 
	            die die Produktivität durch die Unterstützung der kognitiven 
	            Bedürfnisse objektorientiert arbeitender Sofwaredesigner und 
	            -Architekten erhöhten.
			</para>
            <para lang="es">
              ArgoUML se enfoca en investigación en psicología cognitiva
              para proporcionar nuevas caracteristicas que incrementen la
              productividad soportando las necesidades cognitivas de diseñadores
              y arquitectos de software orientado a objeto.
            </para>

          </listitem>

          <listitem>

            <para lang="en">
	            ArgoUML supports open standards extensively - UML, XMI, 
	            SVG, OCL and others.
            </para>
            <para lang="de">
	            ArgoUML nutzt sehr stark offene Standards - UML, XMI, 
	            SVG, OCL und andere.
            </para>
            <para lang="es">
              ArgoUML soporta estandares abiertos extensivamente—UML, XMI,
              SVG, OCL y otros.
            </para>

          </listitem>

          <listitem>

            <para lang="en">
	            ArgoUML is a 100% pure Java application. This allows 
	            ArgoUML to run on all platforms for which a reliable port 
	            of the Java platform is available.
            </para>
            <para lang="de">
	            ArgoUML ist eine 100%ige Java-Anwendung. Dadurch kann ArgoUML  
	            auf allen Plattformen laufen, auf denen die Laufzeitumgebung der 
	            Java-Plattform verfügbar ist.
			</para>
            <para lang="es">
              ArgoUML es una aplicación Java pura 100%. Esto permite a
              ArgoUML funcionar en todas las plataformas para las cuales un
              puerto fiable de la plataforma Java 2 esta disponible.
            </para>

          </listitem>

          <listitem>

            <para lang="en">
	            ArgoUML is an open source project. The availability 
	            of the source ensures that a new generation of software 
	            designers and researchers now have a proven framework from 
	            which they can drive the development and evolution of CASE 
	            tool technologies.
            </para>
            <para lang="de">
	            ArgoUML ist ein Open-Source-Projekt. Die Verfügbarkeit des 
	            Quellcodes stellt sicher, dass eine neue Generation von 
	            Softwaredesignern und -forschern jetzt ein bewährtes Framework 
	            hat, auf deren Basis sie die Entwicklung und Evolution von 
	            CASE-Tooltechnologien vorantreiben können.
			</para>
            <para lang="es">
              ArgoUML es un proyecto de codigo abierto. La disponibilidad
              del codigo fuente asegura que una nueva generación de diseñadores
              de software e investigadores ahora tienen un entorno de trabajo
              probado desde el que pueden conducir el desarrollo y evolución de
              tecnologías de herramientas CASE.
            </para>

          </listitem>

        </orderedlist>

        <para lang="en">
        	UML is the most prevalent OO modeling language and Java is
        	one of the most productive OO development platforms. Jason
        	Robbins and the rest of his research team at the University
        	of California, Irvine leveraged these benefits in creating
        	ArgoUML. The result is a solid development tool and
        	environment for OO systems design. Further, it provides a
        	test bed for the evolution of object oriented CASE tools
        	development and research.
        </para>
        <para lang="de">
        	UML ist die bevorzugte OO-Modellierungssprache 
        	und Java eine der produktivsten OO-Entwicklungsplattformen. 
        	Jason Robbins und der Rest seines Forscherteams an der 
        	Universität Kalifornien vereinten diese Vorteile durch die 
        	Entwicklung von ArgoUML. Das Ergebnis ist ein solides 
        	Entwicklungstool und eine Umgebung für das OO-Systemdesign. 
        	Darüber hinaus bildet es eine Testumgebung für die Evolution 
        	der objektorientierten CASE-Tool-Entwicklung und -Forschung.
        </para>
        <para lang="es">
          UML es el lengueje de modelado OO mas prevalente y java es una
          de las plataformas de desarrollo OO mas productivas. Jason Robbins y
          el resto de su equipo de investigación en la universidad de
          California, Irvine potenciaron estos beneficios creando ArgoUML. El
          resultado es un entorno y una herramienta de desarrollo sólida para
          diseño de sistemas OO. Es mas, proporciona un campo de de pruebas para
          la evolución del desarrollo e investigación de herramientas CASE
          orientadas a objeto.
        </para>


        <para lang="en">
	        A first release of ArgoUML was available in 1998 and more 
	        than 100,000 downloads by mid-2001 show the impact that this 
	        project has made, being popular in educational and commercial 
	        fields.
        </para>
        <para lang="de">
	        Das erste Release von ArgoUML war 1998 verfügbar. Mehr als 100.000 
	        Downloads bis Mitte 2001 zeigte, dass dieses Projekt, sowohl in 
	        den Bildungs- als auch in den kommerziellen Bereichen populär wurde.
		</para>
        <para lang="es">
          Una primera publicación de ArgoUML fue disponible en 1998 y mas
          de 100,000 descargas a mediados de 2001 demostró el impacto que este
          proyecto ha provocado, siendo popular en campos educacionales y
          comerciales.
        </para>

      </sect2>

      <sect2>

        <title>
          <phrase lang="en">Finding Out More About the ArgoUML Project</phrase>
          <phrase lang="de">Mehr über das ArgoUML-Projekt</phrase>
          <phrase lang="es">Encontrando Mas Sobre el Proyecto ArgoUML</phrase>
        </title>

        <sect3>

          <title>
            <phrase lang="en">How ArgoUML is Developed</phrase>
            <phrase lang="de">Wie wurde ArgoUML entwickelt</phrase>
            <phrase lang="es">Como está desarrollado ArgoUML</phrase>
          </title>

          <indexterm><primary>Jason Robbins</primary></indexterm>
          <indexterm><primary>Robbins, Jason</primary></indexterm>
          <indexterm lang="en"><primary>Mailing lists</primary></indexterm>
          <indexterm lang="de"><primary>Mail-Listen</primary></indexterm>
          <indexterm lang="es">
            <primary>Mailing lists</primary>
          </indexterm>

          <para lang="en">
	          Jason Elliot Robbins founded the Argo Project and 
	          provided early project leadership. While Jason remains active 
	          in the project, he has handed off project leadership. The 
	          project continues to move forward strongly. There are more 
	          than 300 members on the developer mailing list (see 
	          <ulink url="http://argouml.tigris.org/servlets/ProjectMailingListList">
	          http://argouml.tigris.org/servlets/ProjectMailingListList</ulink>), 
	          with a couple of dozen of those forming the core development 
	          group.
          </para>
          <para lang="de">
	          Jason Elliot Robbins gründete das Argo-Projekt und erhielt früh 
	          die Projektleitung. Solange Jason im Projekt aktiv war, hatte er 
	          alle Hände voll mit der Projektleitung zu tun. Das Projekt 
	          entwickelte sich kontinuierlich sehr stark weiter. Es gab mehr als 
	          300 Mitglieder in der Entwickler-Mailliste (siehe  
	          <ulink url="http://argouml.tigris.org/servlets/ProjectMailingListList">
	          http://argouml.tigris.org/servlets/ProjectMailingListList</ulink>).
	          Mehrere Dutzend davon, bildeten die Haupt-Entwicklergruppe. 
		  </para>
          <para lang="es">
            Jason Elliot Robbins fundó el Proyecto Argo y proporciono un
            liderazgo temprano al proyecto. Mientras Jason permanece activo en
            el proyecto, él ha dejado el liderazgo. El proyecto continua
            avanzando fuertemente. Hay mas de 300 miembros en la lista de correo
            de desarrollador (mira <ulink
            url="http://argouml.tigris.org/servlets/ProjectMailingListList">
            http://argouml.tigris.org/servlets/ProjectMailingListList</ulink>),
            Con un par de docenas de ellos formando el nucleo del grupo de
            desarrollo.
          </para>


          <para lang="en">
          	The developer mailing list is the place where all the
          	discussion on the latest tasks takes place, and developers
          	discuss the directions the project should take. Although
          	controversial at times, these discussions are always kept
          	nice and friendly (no flame-wars and such), so newbies
          	should not hesitate and participate in them. You&apos;ll
          	always get a warm welcome there.
          </para>
          <para lang="de">
            Die Entwickler-Mails sind der Ort, in dem die Diskussionen über 
            die aktuellen Aktivitäten stattfinden und Entwickler die Richtung 
            diskutieren, die das Projektes nehmen soll. Obwohl manchmal sehr 
            kontrovers, blieben diese Diskussionen immer nett und freundlich 
            (keine &quot;flammenden Auseinandersetzungen&quot; oder ähnliches), 
            so dass neue Entwickler nicht zögern und einfach daran teilnehmen 
            sollten. Sie werden immer willkommen sein.
          </para>
          <para lang="es">
            La lista de correo del desarrollador es el lugar donde toda la
            discusión sobre las ultimas tareas toma lugar, y los desarrolladores
            discuten las direcciones que el proyecto debería tomar. Aunque
            controvertido a veces, estas discusiones son mantenidas siempre
            correctas y amigables (sin flame-wars y esas cosas), así que los
            novatos (newbies) no deberian dudar y participar en ellas. Siempre
            tendras una calurosa bienvenida allí.
          </para>


          <indexterm lang="en">
          	<primary>Contributing</primary>
          	<secondary>to ArgoUML</secondary>
          </indexterm>
          <indexterm lang="de">
          	<primary>Einbringen</primary>
          	<secondary>in ArgoUML</secondary>
          </indexterm>
          <indexterm lang="es">
            <primary>Contributing</primary>
            <secondary>to ArgoUML</secondary>
          </indexterm>

          <indexterm lang="en"><primary>Cookbook</primary></indexterm>
          <indexterm lang="de"><primary>Programmierhandbuch</primary></indexterm>
          <indexterm lang="es">
            <primary>Cookbook</primary>
          </indexterm>

          <indexterm lang="en">
          	<primary>Developers&apos; Cookbook, The</primary>
          </indexterm>
          <indexterm lang="de"><primary>Entwickler-Programmierhandbuch, 
          Das</primary></indexterm>
          <indexterm lang="es">
            <primary>Developers' Cookbook, The</primary>
          </indexterm>

          <indexterm lang="en"><primary>Developer Zone</primary></indexterm>
          <indexterm lang="de"><primary>Entwicklerbereich</primary></indexterm>
          <indexterm lang="es">
            <primary>Developer Zone</primary>
          </indexterm>
          
          <para lang="en">
          	If you want to learn how the project is run and how to
          	contribute to it, go the the
          	<ulink url="http://argouml.tigris.org/dev.html">
          		ArgoUML Web Site Developer Zone
          	</ulink>
          	and read through the documentation there. The
          	Developers&apos; Cookbook was written specifically for
          	this purpose.
          </para>
          <para lang="de">
            Wenn Sie lernen wollen, wie das Projekt arbeitet und wie 
            Sie sich einbringen können, rufen Sie die 
          	<ulink url="http://argouml.tigris.org/dev.html">
          		ArgoUML Webseite &quot;Developer Zone&quot;
          	</ulink>
          	auf und lesen sich die Dokumentation durch. Das Programmierhandbuch 
          	(Cookbook) wurde speziell für diesem Zweck geschrieben.
          </para>
          <para lang="es">
            Si quires aprender como se gestiona el proyecto y como
            contribuir a él, vete a <ulink
            url="http://argouml.tigris.org/dev.html"> ArgoUML Web Site Developer
            Zone </ulink> y busca a traves de la documentación allí expuesta..
            El Libro de Cocina del Desarrollador (Developers' Cookbook) fué
            escrito especificamente para este proposito.
          </para>

        </sect3>

        <sect3>

          <title>
            <phrase lang="en">More on Infrastructure</phrase>
            <phrase lang="de">Mehr über die Infrastruktur</phrase>
            <phrase lang="es">Mas sobre la Infraestructura</phrase>
          </title>

          <indexterm lang="en"><primary>Mailing lists</primary></indexterm>
          <indexterm lang="de"><primary>Mail-Listen</primary></indexterm>
          <indexterm lang="es"><primary>Mailing lists</primary></indexterm>

          <para lang="en">
          	Besides the developer mailing list, there&apos;s also a
          	mailing for users (see
          	<ulink
          		url="http://argouml.tigris.org/servlets/ProjectMailingListList">
          		The ArgoUML Mailing List
          	</ulink>
          	), where we can discuss problems from a user perspective.
          	Developers also read this list, so highly qualified help
          	will generally be provided.
          </para>
          <para lang="de">
            Neben der Entwickler-Mailliste gibt es auch eine Mailliste 
            für Anwender (siehe
          	<ulink
          		url="http://argouml.tigris.org/servlets/ProjectMailingListList">
          		The ArgoUML Mailing List
          	</ulink>
          	), in der wir Probleme aus der Anwendersicht diskutieren können.
          	Auch Entwickler lesen diese Mails, so dass grundsätzlich hoch 
          	qualifizierte Hilfe verfügbar ist.
          </para>
          <para lang="es">
            Ademas de la lista de correo del desarrollador, existe tambien
            una lista de correo para usuarios (mira <ulink
            url="http://argouml.tigris.org/servlets/ProjectMailingListList"> The
            ArgoUML Mailing List List </ulink> ), donde podemos discutir
            problemas desde la perspectiva del usuario. Los desarrolladores
            tambien leen esa lista, así que generalmente se proporciona ayuda
            altamente cualificada.
          </para>

          <indexterm lang="en"><primary>FAQ</primary></indexterm>
          <indexterm lang="de"><primary>FAQ</primary></indexterm>
          <indexterm lang="es"><primary>FAQ</primary></indexterm>

          <indexterm lang="de">
          	<primary>Häufig gestellte Fragen</primary>
          </indexterm>

          <para lang="en">
	          Before posting to this list, you should take a look at 
	          the <ulink url="http://argouml.tigris.org/faqs/users.html">
	          user FAQ</ulink> maintained by Ewan R. Grantham.
          </para>
          <para lang="de">
	          Bevor Sie eine Frage per Mail stellen, sollten Sie 
	          einen Blick auf die von Ewan R. Grantham verwaltete 
	          <ulink url="http://argouml.tigris.org/faqs/users.html">
	          Anwender-FAQ</ulink> werfen.
          </para>
          <para lang="es">
            Antes de postear en esta lista, deberias echar un vistazo al
            <ulink url="http://argouml.tigris.org/faqs/users.html"> user
            FAQ</ulink> mantenido por Ewan R. Grantham.
          </para>


          <para lang="en">
	          More information on ArgoUML and other UML related 
	          topics is also available on the 
	          <ulink url="http://argouml.tigris.org">ArgoUML 
	          website</ulink>, maintained by Linus Tolke.
	      </para>
          <para lang="de">
	          Weitere Informationen über ArgoUML und andere UML-bezogene 
	          Themen sind unter der von Linus Tolke verwalteten 
	          <ulink url="http://argouml.tigris.org">ArgoUML 
	          Webseite</ulink> verfügbar.
          </para>
          <para lang="es">
            Mas información sobre ArgoUML y otros asuntos relacionados con
            UML está tambien disponible en el <ulink
            url="http://argouml.tigris.org">ArgoUML website</ulink>, mantenido
            por Linus Tolke.
          </para>


        </sect3>

      </sect2>

    </sect1>

    <sect1>

      <title>
        <phrase lang="en">Scope of This User Manual</phrase>
        <phrase lang="de">Der Bezugsbereich dieses Anwenderhandbuches</phrase>
        <phrase lang="es">Alcance de Este Manual de Usuario</phrase>
      </title>

      <sect2>

        <title>
          <phrase lang="en">Target Audience</phrase>
          <phrase lang="de">Der Leserkreis</phrase>
          <phrase lang="es">Audiencia Objetivo</phrase>
        </title>

        <para lang="en">
	        The current release of this document is aimed at 
	        experienced users of UML in OOA&amp;D (perhaps with other 
	        tools) who wish to transfer to ArgoUML.
        </para>
        <para lang="de">
	        Die aktuelle Fassung dieses Dokumentes ist für erfahrende Anwender 
	        der UML in der OOA&amp;D (vielleicht auch mit anderen Tools) gedacht, 
	        die zu ArgoUML wechseln möchten.
		</para>
		<para lang="es">
          La publicación altual de este documento esta dirigida a usuarios
          experimentados de UML en OOA&amp;D (quizas con otras herramientas) que
          desean cambiar a ArgoUML.
        </para>

        <para lang="en">
	        Future releases will support designers who know 
	        OOA&amp;D, and wish to adopt UML notation within their 
	        development process.
        </para>
        <para lang="de">
	        Künftige Fassungen werden Designer unterstützen, die die 
	        OOA&amp;D kennen und die UML-Notation in Ihren Entwicklungsprozess
	        einbinden möchten.
        </para>
        <para lang="es">
          Publicaciones futuras soportaran diseñadores que conocen
          OOA&amp;D, y desean adoptar la notación UML dentro de su proceso de
          desarrollo.
        </para>

        <para lang="en">
	        A long term goal is to support i) those who are learning 
	        design and wish to start with an OOA&amp;D process that uses 
	        UML notation, and ii) people interested in modularized code 
	        design with a GUI.
        </para>
        <para lang="de">
        Ein langfristiges Ziel ist es, diejenigen zu unterstützen, 
        </para>
        <orderedlist numeration="lowerroman">
        	<listitem>
        		<para lang="de">
        			die das Design erlernen und mit einem OOA&amp;D-Prozess 
        			beginnen wollen, der die UML-Notation unterstützt und 
        		</para>
        	</listitem>
        	<listitem>
        		<para lang="de">
        			Personen, die an einem modularisiertem Design mit 
        			einer GUI interessiert sind.
        		</para>
        	</listitem>
        </orderedlist>
        <para lang="es">
          Un objetivo a largo plazo es soportar i) aquellos que están
          aprendiendo diseño y desean empezar con un proceso OOA&amp;D que usa
          notación UML, y ii) gente interesada en diseño de codigo modularizado
          con un GUI.
        </para>

      </sect2>

      <sect2>

        <title>
          <phrase lang="en">Scope</phrase>
          <phrase lang="de">Bezugsbereich</phrase>
          <phrase lang="es">Alcance</phrase>
        </title>

        <para lang="en">
	        The intention is that this document will provide a 
	        comprehensive guide, enabling designers to use ArgoUML to its 
	        full extent. It is in two parts.
        </para>
        <para lang="de">
	        Die Absicht dieses Dokument ist es, eine verständliche Einführung zu
	        geben, die die Designer in Lage versetzen, ArgoUML in vollem
	        Umfang zu nutzen. Es ist in zwei Teile untergliedert.
        </para>
        <para lang="es">
          La intención es que este documento proporcionará una guia
          exhaustiva, permitiendo a los diseñadores usar ArgoUML en toda su
          extensión.
          Esto es en dos partes.
        </para>

        <itemizedlist>

          <listitem>

            <para lang="en">
	            A tutorial manual, showing how to work with 
	            ArgoUML
            </para>
            <para lang="de">
            	Ein Übungshandbuch, das die Arbeitsweise mit ArgoUML zeigt. 
            </para>
            <para lang="es">
              Un manual tutorial, mostrando como trabajar con ArgoUML
            </para>

          </listitem>

          <listitem>

            <para lang="en">
	            A complete reference manual, recording everything you 
	            can do with ArgoUML.
            </para>
            <para lang="de">
	            Ein vollständiges Referenzhandbuch, das alles beschreibt, was 
	            Sie mit ArgoUML tun können.
            </para>
            <para lang="es">
              Un manual de referencia completo, registrando todo lo que
              puedes hacer con ArgoUML.
            </para>

          </listitem>

        </itemizedlist>

        <para lang="en">
        	Version 0.22 of the document achieved the second of these.
        </para>
        <para lang="de">
        	Die Version 0.22 des Dokumentes bezieht sich auf den zweiten Teil.
        </para>
        <para lang="es">
          La version 0.22 de este documento lleva a cabo la segunda de ellas.
        </para>

        <para lang="en">
	        In this guide there are some things you will not find, 
	        because they are covered elsewhere.
        </para>
        <para lang="de">
	        In dieser Anleitung gibt es Einiges, das Sie nicht finden werden, 
	        weil es an anderen Stellen beschrieben ist.
        </para>
        <para lang="es">
          En esta guia hay algunas cosas que no encontraras,
          porque están cubiertas en otro lugar.
        </para>

        <itemizedlist>

          <listitem>

            <para lang="en">
	            Descriptions of how ArgoUML works on the inside.
            </para>
            <para lang="de">
	            Beschreibungen, wie ArgoUML intern arbeitet. 
            </para>
            <para lang="es">
              Descripciones de como ArgoUML funciona internamente.
            </para>

          </listitem>

          <listitem>

            <para lang="en">
	            How to improve ArgoUML with new features and functions.
            </para>
            <para lang="de">
	            Wie ArgoUML mit neuen Eigenschaften und Funktionen erweitert 
	            wird.
            </para>
            <para lang="es">
              Como mejorar ArgoUML con nuevas caracteristicas y funciones.
            </para>

          </listitem>

          <listitem>

            <para lang="en">A trouble shooting guide.</para>
            <para lang="de">Eine Anleitung zur Fehlerbehebung.</para>
            <para lang="es">Una guia de solución de problemas.</para>

          </listitem>

          <listitem>

            <para lang="en">A summary quick reference to using ArgoUML.</para>
            <para lang="de">Eine zusammenfassende Kurzreferenz für ArgoUML.</para>
            <para lang="es">
              Un indice de referencia rápida para usar ArgoUML.
            </para>

          </listitem>

        </itemizedlist>

        <para lang="en">
	        These are covered in 
	        <ulink url="http://argouml-stats.tigris.org/documentation/defaulthtml/cookbook/">
	        the Developers Cookbook</ulink>, 
	        <ulink url="http://argouml.tigris.org/faqs/users.html">the 
	        FAQ</ulink>, and 
	        <ulink url="http://argouml-stats.tigris.org/documentation/quick-guide-0.26/">
	        the Quick Guide</ulink>.
        </para>
        <para lang="de">
	        Diese Themen werden in
	        <ulink url="http://argouml-stats.tigris.org/documentation/defaulthtml/cookbook/">
	        Das Programmierhandbuch (Cookbook)</ulink>, 
	        <ulink url="http://argouml.tigris.org/faqs/users.html">Die  
	        FAQ</ulink>, und 
	        <ulink url="http://argouml-stats.tigris.org/documentation/quick-guide-0.22/">
	        Die Kurzanleitung</ulink> beschrieben.
        </para>
        <para lang="es">
          Estos están cubiertos en <ulink
          url="http://argouml-stats.tigris.org/documentation/defaulthtml/cookbook/">
          the Developers Cookbook</ulink>, <ulink
          url="http://argouml.tigris.org/faqs/users.html">el FAQ</ulink>, y
          <ulink
          url="http://argouml.tigris.org/documentation/defaulthtml/quickguide/">
          la Quick Guide</ulink>.
        </para>

      </sect2>

    </sect1>

    <sect1>

      <title>
        <phrase lang="en">Overview of the User Manual</phrase>
        <phrase lang="de">Überblick über das Anwenderhandbuch</phrase>
        <phrase lang="es">Visión General del Manual de Usuario</phrase>
      </title>

      <sect2>

        <title>
          <phrase lang="en">Tutorial Manual Structure</phrase>
          <phrase lang="de">Die Struktur des Übungshandbuches</phrase>
          <phrase lang="es">Estructura del Manual Tutorial</phrase>
        </title>

        <para lang="en">
	        <xref linkend="ch.tut.uml"/> provides an overview of UML 
	        based OOA&amp;D, including a guide to getting ArgoUML up and 
	        running.
        </para>
        <para lang="de">
	        Das <xref linkend="ch.tut.uml"/> enthält einen Überblick über 
	        UML-basierte OOA&amp;D, einschliesslich einer Anleitung, wie man 
	        ArgoUML installiert und startet.
        </para>
        <para lang="es">
          <xref linkend="ch.tut.uml" /> proporciona una visión general de
          OOA&amp;D basada en UML, incluyendo una guia para obtener ArgoUML
          instalado y funcionando.
        </para>

        <para lang="en">
	        <xref linkend="ch.tut.reqs"/> through 
	        <xref linkend="ch.tut.build"/> then step through each part of 
	        the design process from initial requirements capture through to 
	        final project build and deployment.
        </para>
        <para lang="de">
	        <xref linkend="ch.tut.reqs"/> bis <xref linkend="ch.tut.build"/> geht 
	        dann durch alle Teile des Designprozesses. Von der ersten Anforderung 
	        bis zum abschliessenden Projekt-Build und der Verteilung.
	    </para>
	    <para lang="es">
          Desde <xref linkend="ch.tut.reqs" /> hasta <xref
          linkend="ch.tut.build" /> se introduce en cada parte de el diseño de 
          procesos desde la captura de los requerimientos inicial hasta el
          desarrollo y construcción del proyecto final.
	    </para>

        <para lang="en">
	        As each UML concept is encountered, its use is explained. 
	        Its use within ArgoUML is then described.
	        Finally a case study is used to give examples of the concepts in use.
        </para>
        <para lang="de">
	        Für jedes auftretende UML-Konzept wird dessen Anwendung erläutert. 
	        Anschliessend wird dessen Einsatz innerhalb von ArgoUML beschrieben. 
	        Zum Schluss wird eine Fallstudie benutzt, um Beispiele für diese 
	        Konzepte zu geben.
		</para>
		<para lang="es">
		  Cuando cada concepto UML es encontrado, su uso es explicado.
		  Su uso dentro de ArgoUML es descrito.
		  Finalmente un caso de estudio es usado para dar ejemplos 
		  de los conceptos en uso.
		</para>

      </sect2>

      <sect2>

        <title>
          <phrase lang="en">Reference Manual Structure</phrase>
          <phrase lang="de">Die Struktur des Referenzhandbuches</phrase>
          <phrase lang="es">Estructura del Manual de Referencia</phrase>
        </title>

        <para lang="en">
	        <xref linkend="ch.ref.ui"/> is an overview of the user 
	        interface and provides a summary of the support for the various 
	        UML diagram types in ArgoUML.
	        <xref linkend="ch.ref.menu"/> and <xref linkend="ch.ref.navpane"/>  
	        describe the menu bar, and each of the sub-windows of the user 
	        interface, known as <emphasis>Panes</emphasis>.
        </para>
        <para lang="de">
	        <xref linkend="ch.ref.ui"/> ist ein Überblick über die 
	        Anwenderschnittstelle und enthält eine Zusammenfassung der 
	        verschiedenen UML-Diagrammtypen von ArgoUML.
	        <xref linkend="ch.ref.menu"/> und <xref linkend="ch.ref.navpane"/>
	        beschreiben die Menüzeile und jedes Fenster der Anwenderschnittstelle.
        </para>
        <para lang="es">
          <xref linkend="ch.ref.ui" /> es una visión general del interfaz
          de usuario y proporciona un resumen del soporte para los varios tipos
          de diagrama UML en ArgoUML.
          <xref linkend="ch.ref.menu" /> y
          <xref linkend="ch.ref.navpane" /> describen la barra de menu,
          y cada una de las subventanas de la interfaz de usuario,
          conocidas como <emphasis>Paneles</emphasis>.
        </para>

        <para lang="en">
	        <xref linkend="ch.ref.critics"/> gives details of all the 
	        cognitive critics within the system. Eventually ArgoUML will 
	        link directly to this manual when giving advice on 
	        critics.
        </para>
        <para lang="de">
	        <xref linkend="ch.ref.critics"/> beschreibt Details aller im 
	        System vorhandenen kognitiven Kritiken. Unter Umständen wird ArgoUML 
	        direkt auf dieses Handbuch verweisen, wenn es die Hilfestellung zu 
	        einer Kritik gibt.
        </para>
        <para lang="es">
          <xref linkend="ch.ref.critics" /> da detalles de todas las
          criticas cognitivas dentro del sistema.Finalmente ArgoUML enlazará
          directamente con este manual cuando se de notificación de las
          criticas.
        </para>

        <para lang="en">
	        <xref linkend="ch.ref.entities"/> is an overview of the 
	        model elements (i.e. the UML entities that can be placed on 
	        diagrams) within ArgoUML. The following chapters (
	        <xref linkend="ch.ref.entusecase"/> through 
	        <xref linkend="ch.ref.entbuiltin"/>) describe, the model elements 
	        that can be created through each ArgoUML diagram, and their 
	        properties, as well as some standard model elements provided with 
	        the system.
        </para>
        <para lang="de">
	        <xref linkend="ch.ref.entities"/> ist ein Überblick über die 
	        Modellelemente (z.B. die UML-Elemente, die in den Diagrammen verwendet 
	        werden können) von ArgoUML. Die folgenden Kapitel (
	        <xref linkend="ch.ref.entusecase"/> bis 
	        <xref linkend="ch.ref.entbuiltin"/>) beschreiben die Modellelemente, 
	        die in jedem ArgoUML-Diagramm erzeugt werden können, deren 
	        Eigenschaften, sowie einige Standard-Modellelemente die im System 
	        enthalten sind.
        </para>
        <para lang="es">
          <xref linkend="ch.ref.entities" /> es una visión general
          de los artefactos (p.e. las entidades UML que pueden ser
          colocadas en diagramas) dentro de ArgoUML.
          Los siguientes capítulos 
          ( <xref linkend="ch.ref.entusecase" /> hasta 
          <xref linkend="ch.ref.entbuiltin" />) describen los 
          artefactos que pueden ser creados por medio de cada 
          diagrama de ArgoUML, y sus propiedades,
          tambien como algunos artefactos estandar proporcionados con el
          sistema.
        </para>

        <para lang="en">
	        A complete <xref linkend="glossary"/> is provided. 
	        <xref linkend="app.casestudy"/> provides material to supplement 
	        the case study used throughout the document. 
	        <xref linkend="app.umlres"/> and <xref linkend="app.umlcase"/> 
	        identify background information on UML and UML CASE tools. 
	        <xref linkend="app.cppmod"/> explains the use of the C++ module.
	        <xref linkend="app.legal"/> is a copy of the GNU Free 
	        Documentation License.
        </para>
        <para lang="de">
	        Es ist ein vollständiges <xref linkend="glossary"/> vorhanden. 
	        <xref linkend="app.casestudy"/> enthält Material, die die 
	        im Dokument durchgehend benutzte Fallstudie unterstützt. 
	        <xref linkend="app.umlres"/> und <xref linkend="app.umlcase"/> 
	        verweisen auf Hintergrundinformationen über UML und UML-CASE-Tools. 
	        <xref linkend="app.legal"/> ist eine Kopie der &quot;GNU Free 
	        Documentation License&quot;.
        </para>
        <para lang="es">
          Se proporciona un <xref linkend="glossary" /> completo.
          <xref linkend="app.casestudy" /> proporciona material para 
          suplementar el estudio de caso usado a lo largo del documento.
          <xref linkend="app.umlres" /> y <xref linkend="app.umlcase" />
          identifican la información subyacente en UML y 
          las herramientas CASE UML.
          <xref linkend="app.legal" /> es una copia de la GNU Free
          Documentation License.
        </para>

        <para lang="es">
          Una ambición futura es proporcionar un indice exhaustivo.
        </para>

      </sect2>

      <sect2 id="s2.intro.user.feedback">

        <title>
          <phrase lang="en">User Feedback</phrase>
          <phrase lang="de">Anwender-Feedback</phrase>
          <phrase lang="es">Retroalimentación por el Usuario</phrase>
        </title>

        <indexterm lang="en"><primary>Feedback</primary></indexterm>
        <indexterm lang="en"><primary>User Feedback</primary></indexterm>
        <indexterm lang="en"><primary>Contributing</primary><secondary>to the 
        User Manual</secondary></indexterm>
        <indexterm lang="de"><primary>Feedback</primary></indexterm>
        <indexterm lang="de"><primary>Anwender-Feedback</primary></indexterm>
        <indexterm lang="de"><primary>Überblick</primary><secondary>über das 
        Anwenderhandbuch</secondary></indexterm>
        <indexterm lang="es">
          <primary>Retroalimentación</primary>
        </indexterm>

        <indexterm lang="es">
          <primary>Retroalimentacion por el Usuario</primary>
        </indexterm>

        <indexterm lang="es">
          <primary>Contribuir</primary>
          <secondary>a el Manual de Usuario</secondary>
        </indexterm>


        <para lang="en">
	        Please tell us what you think about this User Manual. 
	        Your comments will help us make improvements.
	        Email your 
	        thoughts to the <ulink url="mailto:users@argouml.tigris.org">
	        ArgoUML Users Mailing List</ulink>.
	        In case you would like to add to the missing chapters you should 
	        contact the 
	        <ulink url="mailto:dev@argouml.tigris.org">ArgoUML Developer 
	        Mailing List</ulink>
	        to check whether anyone else is working on this part.
	        You can subscribe to either of the mailing lists via the
	        <ulink url="http://argouml.tigris.org">ArgoUML web site</ulink>.
        </para>
        <para lang="de">
	        Bitte teilen Sie uns mit, was Sie über dieses Anwenderhandbuch 
	        denken. Ihre Kommentare helfen uns, Verbesserungen vorzunehmen.
	        Mailen Sie Ihre Gedanken an <ulink url="mailto:users@argouml.tigris.org">
	        die &quot;ArgoUML Users Mailing List&quot;</ulink>.
	        Sollten Sie ein fehlendes Kapitel hinzufügen wollen, kontaktieren Sie 
	        bitte <ulink url="mailto:dev@argouml.tigris.org">
	        ArgoUML Developer Mailing List</ulink>. Darüber können Sie prüfen, ob 
	        bereits jemand anderes an diesem Teil arbeitet. Sie können sich zu 
	        jeder dieser Maillisten über die <ulink url="http://argouml.tigris.org">
	        ArgoUML Webseite</ulink> anmelden.
        </para>
        <para lang="es">
          Por favor, cuentanos que piensas sobre el Manual de Usuario.
          Tus comentarios nos ayudarán a hacer mejoras.
          Envia por e-mail tus ideas a la 
          <ulink url="mailto:users@argouml.tigris.org"> Lista de Correo de
          Usuarios de ArgoUML</ulink>.
          En caso de que quisieras añadir en los capitulos sin 
          desarrollar deberias contactar la 
          <ulink url="mailto:dev@argouml.tigris.org">Lista de Correo de 
          Desarrollador de ArgoUML</ulink>
          para comprobar que nadie mas está trabajando en esa parte.
          Te puedes subscribir a cualquiera de las listas de correo a
          traves de el <ulink url="http://argouml.tigris.org">Sitio Web de
          ArgoUML</ulink>.
        </para>

      </sect2>

    </sect1>

    <sect1>

      <title>
        <phrase lang="en">Assumptions</phrase>
        <phrase lang="de">Annahmen</phrase>
        <phrase lang="es">Supuestos</phrase>
      </title>
  
      <para lang="en">
	      This release of the manual assumes the reader is very 
	      familiar with UML already. This is reflected in the sparseness of 
	      the description of UML concepts in the tutorial.
      </para>
      <para lang="de">
	      Diese Version des Handbuches unterstellt, dass der Leser mit 
	      UML sehr vertraut ist. Dies zeigt sich durch die sparsame Beschreibung 
	      der UML-Konzepte in diesem Übungshandbuch.
      </para>
      <para lang="es">
        Esta publicación del manual asume que el lector esta ya muy
        familiarizado con UML.
        Esto está reflejado en la sobriedad en la descripción de los
        conceptos UML en el tutorial.
      </para>

      <para lang="en">
	      The case study is described, but not yet fully realized 
	      throughout the tutorial. This will be achieved in future releases 
	      of the manual.
      </para>
      <para lang="de">
	      Die Fallstudie ist beschrieben, aber noch nicht vollständig in dieser 
	      Übungsanleitung realisiert.
	      Dies wird erst in zukünftigen Versionen dieses Handbuches der Fall sein.
      </para>
      <para lang="es">
        El caso de estudio está descrito, pero aún no totalmente a traves
        del tutorial.
        Esto será realizado en futuras publicaciones del manual.
      </para>

    </sect1>

  </chapter>

  <part>

    <title>
      <phrase lang="en">Tutorial</phrase>
      <phrase lang="de">Übungsanleitung</phrase>
      <phrase lang="es">Tutorial</phrase>
    </title>

    <chapter id="ch.tut.uml">

      <title>
        <phrase lang="en">Introduction (being written)</phrase>
        <phrase lang="de">Einleitung</phrase>
        <phrase lang="es">Introducción (escribiendose)</phrase>
      </title>

      <para lang="en">
        This tutorial will be taking you through a tour of the use of
        ArgoUML to model a system.
      </para>
      <para lang="de">
        Diese Übungsanleitung führt Sie in Modellierung eines Systems mit Hilfe 
        von ArgoUML ein.
      </para>
      <para lang="es">
        Este tutorial te llevará a traves de un tour sobre el uso de
        ArgoUML para modelar un sistema.
      </para>  

      <para lang="en">
        First you will become familiar with the feel of the product and then
        we will go through an analysis and development process for a test case.
        Not every nook and cranny of the product will be demonstrated.
        That degree of detail is given in the reference materials to be
        found in subsequent parts of this document.
      </para>
      <para lang="de">
        Zuerst werden Sie mit dem Erscheinungsbild des Produktes vertraut 
        gemacht und dann werden wir mit einem Testfall durch den Analyse- und 
        Entwicklungsprozess gehen. Es wird aber nicht jeder Winkel und jede 
        Ritze des Produktes demonstriert. Dieser Detaillierungsgrad wird im 
        Referenzmaterial bereitgehalten, das Sie in den nachfolgenden Teilen 
        dieses Dokumentes finden.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
      </para>

      <para lang="en">
        The state of the model at the end of key sections will be available in
        .zargo files.
        These are available so that you can play with various aspects not
        specifically covered in this tutorial and then
        restore yourself back to the proper state of the model in your work area.
        These .zargo files will be identified at the end of the sections whose
        work they represent.
      </para>
      <para lang="de">
        Der Zustand des Modelles am Ende der Hauptabschnitte wird in  
        .zargo-Dateien verfügbar sein. Diese sind vorhanden, damit Sie 
        verschiedene, nicht in dieser Übungsanleitung speziell behandelten 
        Aspekte durchspielen und dann zum richtigen Zustand des Modelles  
        zurückkehren können. Diese .zargo-Dateien werden am Ende der Abschnitte, 
        deren Arbeit sie repräsentieren, ausgewiesen. 
      </para>

      <para lang="en">
        An ATM (automated teller machine) project has been chosen as a case study
        to demonstrate the various aspects of modeling that ArgoUML offers.
        In subsequent sections we are going to develop the ATM example into
        a complete description in UML.
        The tutorial, however, will only walk you through part of it.
      </para>
      <para lang="de">
        Ein ATM (automated teller machine) Geldautomaten-Projekt wurde 
        als Fallstudie ausgewählt, um die verschiedenen Aspekte der von ArgoUML 
        angebotenen Modellierungen zu demonstrieren. In den nachfolgenden 
        Abschnitten werden wir einen <quote>Geldautomaten</quote> vollständig 
		in UML beschreiben. Die Übungsanleitung wird Sie allerdings nur durch 
		bestimmte Teile davon führen.
      </para>
      <para lang="es">
        Un proyecto de ATM (automated teller machine; cajero automatico)
        ha sido escogido como caso de estudio para demostrar los varios 
        aspectos de modelado que ArgoUML ofrece.
        En subsiguientes secciones vamos a desarrollar el ejemplo 
        de Cajero Automatico en una descripción completa en UML.
        El tutorial, sin embargo, solo te guiará a traves de parte de
        ello.
      </para>

      <para lang="en">
        At this point you should create a directory to contain your project.
        Name the directory anything you feel is consistent with the rest of your
        file system.
        You should name the contents and any subdirectories as directed for reasons
        that will become apparent.
      </para>
      <para lang="de">
        Jetzt sollten Sie ein Verzeichnis erzeugen, das Ihr 
        Projekt aufnimmt. Benennen Sie das Verzeichnis so, dass es zum Rest 
        Ihres Dateisystems passt. Die Inhalte und die Unterverzeichnisse 
        sollten Sie so bezeichnen, wie nachfolgend beschrieben.
      </para>
      <para lang="es">
        En este punto deberias crear un directorio para contener tu proyecto.
        Nombra el directorio de forma consistente con el resto de tu
        sistema de archivos.
        Deberias nombrar los contenidos y cualquier subdirectorio de forma 
        equivalente por razones que se haran evidentes.
      </para>

      <para lang="en">
        The case study will be an ATM system.
        Your company is FlyByNight Industries.
        You are going to play two roles.
        That of the Project Manager and that of the Designer Analyst.
      </para>
      <para lang="de">
        Die Fallstudie ist ein Geldautomat. Ihre Firma heißt 
        <quote>FlyByNight Industries</quote>. Sie werden zwei Rollen spielen. 
        Die des Projektmanagers und die des Analytikers.
      </para>
      <para lang="es">
        El caso de estudio será un sistema de Cajero Automatico.
        Tu compañoa es FlyByNight Industries.
        Tú vas a jugar dos papeles.
        El de Gestor de Proyecto (Project Manager) y
        el de Analista Diseñador (Designer Analyst).
      </para>

      <para lang="en">
        We are not going to build a physical ATM, of course.
        The product that we will build as a case study will be an ATM simulator
        to be used for testing the design of a physical ATM.
      </para>
      <para lang="de">
        Wir werden natürlich keinen physikalisch existierenden Geldautomaten 
        erstellen. Das Produkt, das wir als Fallstudie erzeugen 
        werden, ist ein Geldautomatensimulator, der zum Testen und Entwerfen  
        eines physikalisch vorhandenen Geldautomaten verwendet wird.
      </para>
      <para lang="es">
        No vamos a construir ningún Cajero Automatico fisicamente, por
        supuesto.
      </para>

      <para lang="es">
        Primero te familiarizaras con el producto y luego iremos a traves
        de un proceso de analisis y desarrollo para un caso de prueba.
      </para>


      <para lang="en">
        How your company arranges its work into projects is usually determined as
        much by politics as anything else and is, therefore, out of the scope of
        this document.
        We will go into how you structure the project itself once one has been
        defined.
      </para>
      <para lang="de">
        Wie Ihre Firma die Arbeit in Projekten organisiert, ist gewöhnlich mehr 
        durch politische, als durch andere Einflüsse bestimmt. Aus diesem Grund 
        steht dies nicht im Mittelpunkt dieses Dokumentes. Wir werden zeigen, 
        wie Sie Ihr Projekt nach dessen Definition selbst strukturieren können.
      </para>
      <para lang="es">
        La forma en como tu compañia organiza su trabajo en proyectos está
        determinada normalmente por asuntos de politicas y demas cosas por el
        estilo, por tanto, fuera del ámbito de este documento.
        Iremos dentro de como estructuras el proyecto en sí mismo una vez
        que ha sido definido.
      </para>

    </chapter>

    <chapter id="ch.tut.ooad">

      <title>
        <phrase lang="en">UML Based OOA&amp;D</phrase>
        <phrase lang="de">UML basierte OOA&amp;D</phrase>
        <phrase lang="es">OOA&amp;D basada en UML</phrase>
      </title>

      <para lang="en">
        In this chapter, we look at how UML as a notation is used 
        within OOA&amp;D.
      </para>
      <para lang="de">
        In diesem Kapitel sehen Sie, wie UML als Notation innerhalb 
        der OOA&amp;D verwendet wird.
      </para>
      <para lang="es">
        En este capitulo, miramos como UML como notación
        es usado dentro de OOA&amp;D.
      </para>

      <sect1>

        <title>
          <phrase lang="en">Background to UML</phrase>
          <phrase lang="de">Hintergrundinformationen zu UML</phrase>
          <phrase lang="es">Antecedentes para UML</phrase>
        </title>

        <para lang="en">
	        <emphasis>Object orientation</emphasis> as a concept has 
	        been around since the 1960&apos;s, and as a design concept 
	        since 1972. However it was in the 1980&apos;s that it started 
	        to develop as a credible alternative to a <emphasis>functional 
	        approach</emphasis> in analysis and design. We can identify a 
	        number of drivers.
        </para>
        <para lang="de">
	        <emphasis>Objektorientierung</emphasis> als Konzept kam in den 
	        60&apos;er Jahren auf und als Designkonzept ab 1972. Erst in den 
	        80&apos;ern entwickelte sie sich im Bereich Analyse und Design als 
	        ernstzunehmende Alternative zum <emphasis>funktionalen Ansatz
	        </emphasis>. 
	        Wir können hierfür eine Anzahl von Treibern identifizieren.
        </para>
        <para lang="es">
          La <emphasis>orientacion a Objeto</emphasis> como concepto
          ha existido desde la decada de 1960, y como concepto
          de diseño desde 1972.
          Sin embargo fué en la decada de 1980 que empezó a desarrollarse
          como una alternativa creible a el 
          <emphasis>enfoque funcional</emphasis> en analisis y diseño.
          Podemos idientificar un numero de factores.
        </para>

        <orderedlist>

          <listitem>

            <para lang="en">
	            The emergence of mainstream OO programming languages 
	            like SmallTalk and particularly C++. C++ was a pragmatic OO 
	            language derived from C, widely used because of its 
	            association with Unix.
            </para>
            <para lang="de">
	            Das Erscheinen der OO-Programmiersprachen, wie SmallTalk 
	            und teilweise C++. C++ war eine pragmatische, von C abgeleitete 
	            OO-Sprache, die wegen ihrer Verknüpfung mit UNIX sehr weit 
	            verbreitet war.
			</para>
			<para lang="es">
              La aparición como corriente dominante de lenguajes de
              programación OO como SmallTalk y particularmente C++.
              C++ fué un lenguaje OO pragmatico derivado de C,
              ampliamente usado por causa de su asociación con Unix.
            </para>

          </listitem>

          <listitem>

            <para lang="en">
	            The development of powerful workstations, and with 
	            them the emergence into the mainstream of windowing 
	            operating user environments. Graphical User Interfaces 
	            (GUI) have an inherent object structure.
            </para>
            <para lang="de">
	            Die Entwicklung leistungsfähiger Workstations und das 
	            Erscheinen von fensterbasierten Anwenderumgebungen. 
	            Grafische Anwenderschnittstellen (GUI) haben eine 
	            eingebaute Objektstruktur.
			</para>
			<para lang="es">
              El desarrollo de potentes estaciones de trabajo
              (workstations), y con ellas la aparición dentro de
              la corriente dominante de entornos de ventanas para 
              los usuarios.
              Los Interfaces Graficos de Usuario
              (Graphical User Interfaces; GUI)
              tienen una estructura de objetos inherente.
            </para>

          </listitem>

          <listitem>

            <para lang="en">
	            A number of very public major project failures, 
	            suggesting that current approaches were not 
	            satisfactory.
            </para>
            <para lang="de">
	            Eine Vielzahl sehr bekannter Projektfehlschläge, die 
	            nahelegten, dass der aktuelle Ansatz nicht mehr tragfähig
	            war.
            </para>
            <para lang="es">
              Un número de proyectos fallidos muy publicitados,
              sugiriendo que el enfoque actual no era satisfactorio.
            </para>

          </listitem>

        </orderedlist>

        <para lang="en">
	        A number of researchers proposed OOA&amp;D processes, and 
	        with them notations. Those that achieved some success include 
	        Coad-Yourdon, Booch, Rumbaugh OMT, OOSE/Jacobson, 
	        Shlaer-Mellor, ROOM (for real-time design) and the hybrid 
	        Jackson Structured Development.
        </para>
        <para lang="de">
	        Mehrere Forscher schlugen OOA&amp;D-Prozesse und Notationen vor. 
	        Denjenigen, denen tatsächlich etwas Erfolg beschieden war, waren 
	        Coad-Yourdon, Booch, Rumbaugh OMT, OOSE/Jacobson, Shlaer-Mellor,  
	        ROOM (für Echtzeit-Design) und die hybride &quot;Strukturierte 
	        Programmierung&quot; von Jackson.
        </para>
        <para lang="es">
          Un numero de investigadores propusieron procesos OOA&amp;D, 
          y con	ellos notaciones.
          Aquellas que alcanzaron cierto exito incluyen
          Coad-Yourdon, Booch, Rumbaugh OMT, OOSE/Jacobson, Shlaer-Mellor, ROOM
          (para diseño de tiempo real) y el hibrido Jackson Structured
          Development.
        </para>

        <para lang="en">
	        During the early 1990&apos;s it became clear that these 
	        approaches had many good ideas, often very similar. A major 
	        stumbling block was the diversity of notation, meaning 
	        engineers tended to be familiar with one OOA&amp;D methodology, 
	        rather than the approach in general.
        </para>
        <para lang="de">
	        Während der frühen 90&apos;er wurde klar, dass diese Ansätze viele 
	        gute, oft sehr einfache Ideen enthielten. Ein Haupt-Stolperstein  
	        waren jedoch die unterschiedlichen Notationen, was bedeutete, dass  
	        die Ingenieure mehr mit einer bestimmten OOA&amp;D-Methode als mit  
	        dem generellen Ansatz vertraut waren.
        </para>
        <para lang="es">
          Durante los tempranos 1990 se hizo claro que estos enfoques
          tenian muchas buenas ideas, a menudo muy similares.
          Un gran obstaculo fué la diversidad de notación,
          significando que los ingenieros tendian a tener familiaridad 
          con una metodologia OOA&amp;D, en lugar de el enfoque en general.
        </para>

        <para lang="en">
	        UML was conceived as a common notation, that would be in 
	        the interests of all involved. The original standard was driven 
	        by Rational Software (
	        <ulink url="http://www.rational.com">www.rational.com</ulink>, 
	        in which three of the key researchers in the field (Booch, 
	        Jacobson and Rumbaugh were involved). They produced documents 
	        describing UML v0.9 and v0.91 during 1996. The effort was taken 
	        industry wide through the Object Management Group (OMG), 
	        already well known for the CORBA standard. A first proposal, 
	        1.0 was published in early 1997, with an improved version 1.1 
	        approved that autumn.
        </para>
        <para lang="de">
	        UML wurde als gemeinsame Notation erdacht, die alle Interessen  
	        berücksichtigen sollte. Der Originalstandard wurde durch Rational 
	        Rose vorangetrieben (<ulink url="http://www.rational.com">
	        www.rational.com</ulink>, in der drei der wichtigsten Forscher 
	        arbeiteten (Booch, Jacobson und Rumbaugh waren involviert)). Sie 
	        produzierten im Laufe des Jahres 1996 Dokumente, die die UML, 
	        Version 0.9 und Version 0.91 beschrieben. Der Aufwand wurde 
	        industrieweit durch die Object Management Group (OMG) fortgesetzt,  
	        die bereits durch den CORBA-Standard sehr bekannt war. Ein erster  
	        Vorschlag, Version 1.0 wurde im Frühjahr 1997 veröffentlicht. Eine 
	        verbesserte Version 1.1 erschien im Herbst.
        </para>
        <para lang="es">
          UML fué concevido como una notacion común, 
          que sería de interes para todos los involucrados.
          El estandar original fué gestionado por  Rational Software
          ( <ulink url="http://www.rational.com">www.rational.com</ulink>,
          en el cual tres de los investigadores clave en el campo
          (Booch, Jacobson y Rumbaugh estuvieron involucrados).
          Produjeron documentos describiendo UML v0.9 y v0.91 durante 1996.
          El esfuerzo fué tomado ampliamente por la industria a traves
          del Object Management Group (OMG), ya bien conocido por
          el estandar CORBA.
          Una primera propuesta, 1.0 fué publicada al comienzo de 1997,
          con una mejorada versión 1.1 aprobada ese otoño.
        </para>

        <para lang="en">
	        ArgoUML is based on UML v1.4, which was adopted by OMG in 
	        September 2001. The current official version, supported by ArgoUML, 
	         is UML v1.4.2 dated July 2004, adopted as ISO/IEC 19501.
	        The latest UML version is UML v2.1.2, from November 2007.
        </para>
        <para lang="de">
	        ArgoUML basiert auf UML, Version 1.4, die durch die OMG im September  
	        2001 herausgegeben wurde. Die aktuelle offizielle Version, die durch 
	        ArgoUML unterstützt wird, ist UML, Version 1.4.2 vom Juli 2004, 
	        herausgegeben als ISO/IEC 19501. Die aktuelle UML Version ist 
	        UML, Version 2.1.2 vom November 2007.
        </para>
        <para lang="es">
          ArgoUML está basado en UML v1.4, la cual fué adoptada por OMG en
          Marzo del 2000.
          La versión oficial actual es UML v1.5 fechada en
          Marzo del 2003, para ser reemplazada pronto por una revisión mayor,
          UML v2.0, la cual esta en sus etapas finales de estandarización y
          se espera completa en 2006.
        </para>

      </sect1>

      <sect1>

        <title>
          <phrase lang="en">UML Based Processes for OOA&amp;D</phrase>
          <phrase lang="de">UML basierter Prozess für OOA&amp;D</phrase>
          <phrase lang="es">Procesos Basados en UML para OOA&amp;D</phrase>
        </title>

        <para lang="en">
          It is important to understand that UML is a notation for OOA&amp;D.
          It does not prescribe any particular process.
          Whatever process is adopted, it must take the system 
          being constructed through a number of phases.
        </para>
        <para lang="de">
          Sie müssen verstehen, dass UML eine Notation für die OOA&amp;D ist. 
          Sie schreibt keinen bestimmten Prozess vor. Welcher Prozess auch immer 
          angewendet wird, ein System wird in mehreren Phasen konstruiert.
        </para>
        <para lang="es">
          Es importante comprender que UML es una notación para OOA&amp;D.
          No describe ningñun proceso en particular.
          Cualquier proceso adoptado, llevará al sistema por un número
          de fases para ser construido.
        </para>

        <orderedlist>

          <listitem>

            <para lang="en">
	            Requirements Capture. This is where we identify the 
	            requirements for the system, using the language of the 
	            <emphasis>problem domain</emphasis>. In other words we 
	            describe the problem in the <quote>customer&apos;s</quote> 
	            terms.
            </para>
            <para lang="de">
	            Erfassen der Anforderungen. In dieser Phase identifizieren 
	            wir die Anforderungen an das System. Dabei verwenden wir die 
	            Sprache des <emphasis>Problembereiches</emphasis>. Mit anderen 
	            Worten, wir beschreiben das Problem mit den Begrifflichkeiten 
	            des <quote>Kunden</quote>.
            </para>
            <para lang="es">
              Captura de Requerimientos.
              Esto es donde identificamos los requerimientos para el sistema,
              usando el lenguaje del <emphasis>dominio del probrema</emphasis>.
              En otras palabras, describimos el problema en los terminos del
              <quote>cliente</quote>.
            </para>

          </listitem>

          <listitem>
            <indexterm lang="en"><primary>Analysis</primary></indexterm> 
            <indexterm lang="de"><primary>Analyse</primary></indexterm>
            <indexterm lang="es">
              <primary>Analysis</primary>
            </indexterm>

            <para lang="en">
	            Analysis. We take the requirements and start to 
	            recast them in the language of a putative solution&mdash;the 
	            <emphasis>solution domain</emphasis>. At this stage, 
	            although thinking in terms of a solution, we ensure we keep 
	            things at a high level, away from concrete details of a 
	            specific solution&mdash;what is known as 
	            <emphasis>abstraction</emphasis>.
            </para>
            <para lang="de">
	            Analyse. Wir nehmen die Anforderungen und beginnen diese 
	            in die Sprache der vermeintlichen Lösung umzuformen, in den 
	            <emphasis>Lösungsbereich</emphasis>. Zu diesem Zeitpunkt halten 
	            wir die Dinge auf einer hohen Abstraktionsebene, obwohl wir 
	            bereits in den Begrifflichkeiten der Lösung denken&mdash;  
	            abseits von den konkreten Details einer spezifischen Lösung.  
	            Dieser Vorgang ist als <emphasis>Abstraktion</emphasis> bekannt.
            </para>
            <para lang="es">
              Analisis.
              Tomamos los requerimientos y empezamos a refundirlos en
              el lenguaje de la solución—el
              <emphasis>dominio de la solution</emphasis>.
              En esta etapa, aunque pensando en terminos de una solución,
              aseguramos mantener las cosas a un alto nivel,
              lejos de detalles concretos de una solución especifica-lo
              que es conocido como <emphasis>abstracción</emphasis>.
            </para>

          </listitem>

          <listitem>
            <indexterm lang="en"><primary>Design</primary></indexterm>
            <indexterm lang="de"><primary>Design</primary></indexterm>
            <indexterm lang="es"><primary>Design</primary></indexterm>

            <para lang="en">
	            Design. We take the specification from the Analysis 
	            phase and construct the solution in full detail. We are 
	            moving from <emphasis>abstraction</emphasis> of the problem 
	            to its <emphasis>realization</emphasis> in concrete 
	            terms.
            </para>
            <para lang="de">
	            Design. Wir nehmen die Spezifikation aus der Analysephase und 
	            konstruieren die Lösung ganz detailliert. Wir bewegen uns von 
	            der <emphasis>Abstraktion</emphasis> des Problemes, hin zu seiner 
	            <emphasis>Realisierung</emphasis> in konkreter Form.
            </para>
            <para lang="es">
              Diseño.
              Tomamos la especificación de la fase de Analisis y
              construimos la solución con todo detalle.
              Nos estamos moviendo de la <emphasis>abstracción</emphasis>
              del problema a su <emphasis>realización</emphasis>
              en terminos concretos.
            </para>

          </listitem>

          <listitem>

            <para lang="en">
	            Build Phase. We take the actual design and write it 
	            in a real programming language. This includes not just the 
	            programming, but the testing that the program meets the 
	            requirements (<emphasis>verification</emphasis>), testing 
	            that the program actually solves the customer&apos;s 
	            problem (<emphasis>validation</emphasis>) and writing all 
	            user documentation.
            </para>
            <para lang="de">
	            Build-Phase. Wir nehmen das aktuelle Design und setzen es in 
	            eine reale Programmiersprache um. Das schliesst nicht nur die 
	            Programmierung ein, sondern auch das Testen, ob das Programm den 
	            Anforderungen (<emphasis>Verifikation</emphasis>) entspricht, 
	            testen, ob das Programm das aktuelle Kundenproblem löst (<emphasis>
	            Validierung</emphasis>) und das Schreiben der gesamten 
	            Anwenderdokumentation.
            </para>
            <para lang="es">
              Fase de Construcción.
              Tomamos el diseño actual y lo escribimos en un lenguaje
              de programación real.
              Esto incluye no solo la programación,
              si no tambien la prueba de que el programa
              cumple los requerimientos (<emphasis>verificación</emphasis>),
              probando que el programa realmente resuelve el problema del
              cliente (<emphasis>validacion</emphasis>) y escribiendo toda la
              documentación de usuario.
            </para>

          </listitem>

        </orderedlist>

        <sect2 id="s2.proctypes">

          <title>
            <phrase lang="en">Types of Process</phrase>
            <phrase lang="de">Prozesstypen</phrase>
            <phrase lang="es">Tipos de Procesos</phrase>
          </title>

          <para lang="en">
	          In this section we look at the two main types of 
	          process in use for software engineering. There are others, 
	          but they are less widely used.
          </para>
          <para lang="de">
	          In diesem Abschnitt sehen wir uns die beiden Hauptprozesstypen 
	          an, die im Software-Engineering verwendet werden. Es gibt noch 
	          weitere, diese werden aber weniger häufig eingesetzt.
          </para>
          <para lang="es">
            En esta sección miramos a los dos tipos principales de procesos
            en us por la ingeniería del software.
            Hay otros, pero son menos ampliamente usados.
          </para>

          <para lang="en">
	          In recent years there has also been a move to reduce 
	          the effort required in developing software. This has led to 
	          the development of a number of lightweight variants of 
	          processes (often known as <emphasis>agile 
	          computing</emphasis> or <emphasis>extreme 
	          programming</emphasis>) that are suited to small teams 
	          of engineers.
          </para>
          <para lang="de">
	          In den letzten Jahren gab es auch eine Bewegung, den für die 
	          Entwicklung von Software notwendigen Aufwand zu reduzieren. Dies 
	          führte in der Entwicklung zu einer Anzahl von kleineren 
	          Prozessvarianten (oft als <emphasis>agile computing</emphasis> oder 
	          <emphasis>extreme programming</emphasis> bekannt), die auf sehr 
	          kleine Ingenieurteams zugeschnitten waren.
          </para>
          <para lang="es">
            En años recientes ha habido tambien un movimiento para reducir
            el esfuerzo requerido en desarrollar software.
            Esto ha llevado al desarrollo de un numero de variantes 
            ligeras de procesos (a menudo conocidas como 
            <emphasis>computacion agil</emphasis> o 
            <emphasis>programación extrema</emphasis>) que son apropiadas para
            equipos muy pequeños de ingenieros.
          </para>

          <sect3>

            <title>
              <phrase lang="en">The Waterfall Process</phrase>
              <phrase lang="de">Der Wasserfall-Prozess</phrase>
              <phrase lang="es">El Proceso en Cascada</phrase>
            </title>

            <para lang="en">
	            In this process, each stage of the 
	            process&mdash;requirements, analysis, design and build (code and 
	            test) is completed before the next one starts. This is 
	            illustrated in <xref linkend="fig.waterfallsteps"/>.
            </para>
            <para lang="de">
	            In diesem Prozess wird jeder Prozessschritt&mdash; Erfassen 
	            der Anforderungen, Analyse, Design und Build (Code und Test) 
	            abgeschlossen, bevor der nächste beginnt. Dies ist in 
	            <xref linkend="fig.waterfallsteps"/> illustriert.
            </para>
            <para lang="es">
              En este proceso, cada etapa del proceso-requerimientos,
              analisis y construccion (codigo y prueba) es completada antes que
              la siguiente comienze.
              Esto se ilustra en <xref linkend="fig.waterfallsteps" />.
            </para>

            <figure float="1" id="fig.waterfallsteps">

              <title>
                <phrase lang="en">The Waterfall Process</phrase>
                <phrase lang="de">Der Wasserfall-Prozess</phrase>
                <phrase lang="es">El Proceso en Cascada</phrase>
              </title>

              <screenshot><mediaobject><imageobject>
              <imagedata align="center"
               fileref="images/tutorial/waterfallsteps.png"
               format="PNG"/></imageobject></mediaobject></screenshot>
            </figure>

            <para lang="en">
	            This is a very satisfactory process where 
	            requirements are well designed and not expected to change, 
	            for example automating a well proven manual system.
            </para>
            <para lang="de">
	            Dies ist ein sehr zufriedenstellender Prozess, in dem  
	            Anforderungen gut entworfen und keine Änderungen erwartet 
	            werden&mdash; zum Beispiel die Automatisierung eines bewährten, 
	            manuellen Systems.
            </para>
            <para lang="es">
              Este es un proceso muy satisfactorio donde los requerimientos
              están bien diseñados no se espera que cambien, por ejemplo
              automatizar un sistema manual bien probado.
            </para>

            <para lang="en">
	            The weaknesses of this approach show with less well 
	            defined problems. Invariably some of the uncertainties in 
	            the requirements will not be clarified until well into the 
	            analysis and design, or even code phases, requiring 
	            backtracking to redo work.
            </para>
            <para lang="de">
	            Der Schwachpunkt dieses Ansatzes zeigt sich bei weniger gut 
	            definierten Problemen. Offene Punkte in den Anforderungen bleiben 
	            bis zur Phase Analyse und Design, oder auch bis zur Codephase 
	            ungeklärt. Dies erfordert dann ein Zurückgehen, um diese Arbeit 
	            nachzuholen.
            </para>
            <para lang="es">
              La debilidad de este enfoque se muestra problemas menos 
              bien definidos. 
              Invaliablemente algunas de las incertidumbres en 
              los requerimientos no serán clarificados hasta bien 
              entrado el analisis y el diseño, 
              o incluso en fases de codificación, 
              requiriendo volver atras para rehacer trabajo.
            </para>

            <para lang="en">
	            The worst aspect of this, is that working code does 
	            not become available until near the end of the project, and 
	            very often it is only at this stage that problems with the 
	            original requirements (for example with the user interface) 
	            become apparent.
            </para>
            <para lang="de">
	            Der schlechteste Aspekt davon ist, dass ausführbarer Code erst 
	            zum Ende des Projektes verfügbar wird. Sehr häufig ist es so,  
	            dass erst zu diesem Zeitpunkt Probleme mit den ursprünglichen 
	            Anforderungen (zum Beispiel mit der Anwenderschnittstelle) in 
	            Erscheinung treten.
            </para>
            <para lang="es">
              El peor aspecto de esto, es que no cuentas con codigo que
              funcione hasta cerca del final del proyecto,
              y muy a menudo es solo en esta etapa en la que los problemas 
              con los requerimientos originales 
              (por ejemplo con la interfaz de usuario)
              se hacen visibles.
            </para>

            <para lang="en">
	            This is exacerbated, by each successive stage 
	            requiring more effort, than the previous, so that the costs 
	            of late problem discovery are hugely expensive. This is 
	            illustrated by the pyramid in 
	            <xref linkend="fig.waterfall"/>.
            </para>
            <para lang="de">
	            Dies ist besonders schlimm, weil jeder folgende Schritt mehr 
	            Aufwand als der vorhergehende erfordert, so dass die Kosten spät 
	            entdeckter Probleme extrem teuer sind. Dies wird durch die  
	            Pyramide in <xref linkend="fig.waterfall"/> dargestellt.
            </para>
            <para lang="es">
              Esto está exacerbado, por cada etapa sucesiva requiriendo mas
              esfuerzo que la anterior, así que los costos del decubrimiento de
              un problema tardío son enormemente caros. 
              Esto esta ilustrado por
              la piramide en <xref linkend="fig.waterfall" />.
            </para>

            <figure float="1" id="fig.waterfall">

              <title>
                <phrase lang="en">
                  Effort Involved in the Steps of the Waterfall Process
                </phrase>
                <phrase lang="de">
                  Zu erwartender Aufwand je Schritt des Wasserfallmodelles
                </phrase>
                <phrase lang="es">
                  Esfuerzo Involucrado en los Pasos 
                  del Proceso en Cascada
                </phrase>
              </title>

              <screenshot><mediaobject><imageobject>
              <imagedata align="center"
               fileref="images/tutorial/waterfall.png"
               format="PNG"/></imageobject></mediaobject></screenshot>
            </figure>

            <para lang="en">
	            The waterfall process is still probably the dominant 
	            design process. However because of its limitations it is 
	            increasingly replaced by <emphasis>iterative</emphasis> 
	            processes, particularly for projects where the requirements 
	            are not well defined.
            </para>
            <para lang="de">
	            Der Wasserfallprozess ist wahrscheinlich der dominante 
	            Designprozess. Durch seine Beschränkungen wird er jedoch mehr und 
	            mehr durch <emphasis>iterative</emphasis> Prozesse ersetzt. 
	            Insbesondere bei Projekten, bei denen die Anforderungen schlecht  
	            definiert sind.
            </para>
            <para lang="es">
              El proceso en cascada es probablemente aún el proceso de 
              diseño dominante.
              Sin embargo debido a sus limitaciones esta cada vez mas 
              siendo sustituido por procesos <emphasis>iterativos</emphasis>,
              particularmente por proyectos donde los requerimientos 
              nos están bien definidos.
            </para>

          </sect3>

          <sect3>

            <title>
              <phrase lang="en">Iterative Development Processes</phrase>
              <phrase lang="de">Iterative Entwicklungsprozesse</phrase>
              <phrase lang="es">Procesos de Desarrollo Iterativo</phrase>
            </title>
            <indexterm lang="en"><primary>Iterative Processes</primary></indexterm>
            <indexterm lang="de"><primary>Iterative Prozesse</primary></indexterm>
            <indexterm lang="es">
              <primary>Procesos Iterativos</primary>
            </indexterm>


            <para lang="en">
	            In recent years a new approach has been used, which 
	            aims to get at least part of the code up and running as 
	            quickly as possible, to bring discovery of problems forward 
	            in the development cycle.
            </para>
            <para lang="de">
	            In den letzten Jahren wurde ein neuer Ansatz verwendet, dessen 
	            Ziel es war, einen minimalen Teil Code fertigzustellen und 
	            schnellstmöglichst ausführen zu können, um Probleme im 
	            Entwicklungszyklus sehr schnell aufzudecken.
            </para>
            <para lang="es">
              En años recientes un nuevo enfoque ha sido usado,
              el cual anima a conseguir al menos una parte 
              del codigo funcionando tan pronto como sea posible,
              para conseguir descubrir problemas antes en el ciclo 
              de desarrollo.
            </para>

            <para lang="en">
	            These processes use a series of 
	            <quote>mini-waterfalls</quote>, defining a few requirements 
	            (the most important) first, taking them through analysis, 
	            design and build to get an early version of the product, 
	            with limited functionality, related to the most important 
	            requirements. Feedback from this can then be used to refine 
	            the requirements, spot problems etc before more work is 
	            done.
            </para>
            <para lang="de">
	            Diese Prozesse verwenden eine Reihe von <quote>Mini-Wasserfällen
	            </quote>, definieren einige Anforderungen (die wichtigsten zuerst, 
	            bringen diese durch den Analyse- und Design-, sowie den 
	            Buildprozess, um eine frühe Version des Produktes mit 
	            eingeschränkter Funktionalität zu erhalten. Die Rückmeldungen 
	            können dann dazu verwendet werden, die Anforderungen zu 
	            überarbeiten, punktuelle Probleme zu identifizieren usw. bevor 
	            noch mehr Arbeit investiert wird.
            </para>
            <para lang="es">
              Estos procesos usan unas series de <quote>mini-cascadas</quote>,
              definiendo unos pocos requerimientos (los mas importantes)
              primero, llevandolos a traves del analisis,
              diseño y construcción para obtener una version temprana
              del producto, con funcionalidad limitada,
              relacionada con los requerimientos mas importantes.
              La retroalimentación de este código puede ser usada 
              para refinar los requerimientos, apuntar problemas,
              etc antes de hacer mas trabajo.
            </para>

            <para lang="en">
	            The process is then repeated for further requirements 
	            to construct a product with a step up in functionality. 
	            Again further feedback can be applied to the 
	            requirements.
            </para>
            <para lang="de">
	            Dieser Prozess wird dann für alle weiteren Anforderungen 
	            wiederholt, um ein Produkt mit wachsender Funktionalität zu 
	            konstruieren. Erneutes Feedback kann wieder in die Anforderungen 
	            einfliessen. 
            </para>
            <para lang="es">
              El proceso es entonces repetido para requerimientos adiciones 
              para construir un producto con un paso mas en funcionalidad.
              Otra vez retroalimentación adicional puede ser aplicada a
              los requerimientos.
            </para>

            <para lang="en">
              The process is repeated, until eventually all 
              requirements have been implemented and the product is 
              complete.
              <indexterm lang="en"><primary>Iteration</primary></indexterm>
              It is this <emphasis>iteration</emphasis> that 
              gives these processes their name. 
              <xref linkend="fig.iterative"/> shows how this process 
              compares to the pyramid structure of the Waterfall 
              Process.
            </para>
            <para lang="de">
              Dieser Prozess wird wiederholt, bis alle Anforderungen 
              implementiert wurden und das Produkt fertig ist.
              <indexterm lang="de"><primary>Iteration</primary></indexterm>
              Es ist diese <emphasis>Iteration</emphasis>, die diesem 
              Prozess seinen Namen gab.
              <xref linkend="fig.iterative"/> zeigt, wie dieser Prozess 
              mit der Pyramidenstruktur des Wasserfallprozesses verglichen 
              werden kann.
            </para>
            <para lang="es">
              El proceso es repetido, hasta que finalmente todos 
              los requerimientos han sido implementados y 
              el producto está completo.
              <indexterm>
                <primary>Iteration</primary>
              </indexterm>
              Es esta <emphasis>iteración</emphasis> lo que da a estos
              procesos su nombre.
              <xref linkend="fig.iterative" /> muestra como este proceso
              se compara con la structura piramidal del Proceso en Cascada.
            </para>

            <figure float="1" id="fig.iterative">

              <title>
                <phrase lang="en">Effort Involved in the Steps of an 
                Iterative Process</phrase>
                <phrase lang="de">Zu erwartender Aufwand je Schritt des 
                iterativen Prozesses</phrase>
                <phrase lang="es">
                  Esfuerzo Involucrado en los Pasos de un Proceso Iterativo
                </phrase>
              </title>
              
              <screenshot><mediaobject><imageobject>
              <imagedata align="center"
               fileref="images/tutorial/iterative.png"
               format="PNG"/></imageobject></mediaobject></screenshot>
            </figure>

            <para lang="en">
	            The growth in popularity of iterative processes is 
	            closely tied to the growth of OOA&amp;D. It is the clean 
	            encapsulation of objects that allows a part of a system to 
	            be built with stubs for the remaining code clearly 
	            defined.
            </para>
            <para lang="de">
	            Das Wachsen der Popularität iterativer Prozesse ist mit dem 
	            Wachsen der OOA&amp;D eng verknüpft. Es ist die saubere Kapselung 
	            von Objekten, die es erlaubt, einen Teil des Systems mit klar 
	            definierten Leerroutinen für den verbleibenden Code zu bauen. 
            </para>
            <para lang="es">
              El crecimiento en popularidad de los procesos iterativos está
              estrechamente unido a el crecimiento de OOA&amp;D.
              Es la encapsulaión limpia de objetos lo que permite a
              una parte del sistema ser contruida con trozos para 
              el codigo restante claramente definidos.
            </para>

            <sect4>

              <title>
                <phrase lang="en">The Rational Unified Process</phrase>
                <phrase lang="de">Der Rational Unified Process</phrase>
                <phrase lang="es">El Proceso Racional Unificado</phrase>
              </title>

              <para lang="en">
	              Perhaps the best known Iterative Process is the 
	              Rational Unified Process (RUP) from Rational Software (
	              <ulink url="http://www.rational.com">www.rational.com</ulink>).
              </para>
              <para lang="de">
	              Der wahrscheinlich bekannteste, iterative Prozess ist der 
	              Rational Unified Process (RUP) von Rational Software (
	              <ulink url="http://www.rational.com">www.rational.com</ulink>).
              </para>
              <para lang="es">
                Quizas el Proceso Iterativo mejor conocido es el Proceso
                Racional Unificado (Rational Unified Process; RUP)
                de Rational Software
                (<ulink url="http://www.rational.com">www.rational.com</ulink>).
              </para>

              <para lang="en">
	              This process recognizes that our pyramid view of 
	              even slices of the waterfall is not realistic. In 
	              practice the early iterations tend to be heavy on the 
	              requirements end of things (you need to define a 
	              reasonable amount even to get started), while the later 
	              iterations have more of their effort in the design and 
	              build areas.
              </para>
              <para lang="de">
	              Dieser Prozess berücksichtigt, dass unsere Pyramidensicht der 
	              Wasserfallebenen nicht realistisch ist. In der Praxis neigen 
	              frühe Iterationen dazu, zu gross zu werden (sie müssen zu 
	              Beginn eine beträchtliche Menge definieren), während spätere 
	              Iterationen sehr viel Aufwand in der Design- und Buildphase 
	              benötigen.
              </para>
              <para lang="es">
                Este proceso reconoce que nuestra vista piramidal de
                porciones iguales de la cascada no es realista. 
                En la practica las iteraciones tempranas tienden a
                ser pesadas en los asuntos de requerimientos 
                de cosas (necesitas definir una cantidad razonable 
                incluso para comenzar), mientras las iteraciones 
                posteriores tienen mas esfuerzo en las areas de diseño y
                construcción.
              </para>

              <para lang="en">
	              RUP recognizes that iterations can be grouped into 
	              a number of <emphasis>phases</emphasis> according to 
	              their stage in the overall project. Each phase may have 
	              one or more iterations.
              </para>
              <para lang="de">
	              RUP erkannte, dass Iterationen entsprechend Ihrer Lage im 
	              Gesamtprojekt in <emphasis>Phasen</emphasis> aufgeteilt werden  
	              können. Jede Phase kann eine oder mehrere Iterationen umfassen.
              </para>
              <para lang="es">
                RUP reconoce que las iteraciones pueden ser agrupadas en
                un numero de <emphasis>fases</emphasis> deacuerdo a su 
                etapa en el proyecto global.
                Cada fase puede tener una o mas iteraciones.
              </para>

              <itemizedlist>

                <listitem>

                  <para lang="en">
	                  In the <emphasis>inception phase</emphasis> 
	                  iterations tend to be heavy on the 
	                  requirements/analysis end, while any build activity 
	                  may be limited to emulation of the design within a 
	                  CASE tool.
                  </para>
                  <para lang="de">
	                  In der <emphasis>Anfangsphase</emphasis> neigen 
	                  Iterationen dazu, mit Blick auf die Gesamtanforderung/
	                  Analyse zu gross zu werden, während jede Build-Aktivität 
	                  bezüglich der Emulation des Desgins durch das CASE-Tool 
	                  eingeschränkt sein kann.
                  </para>
                  <para lang="es">
                    En la <emphasis>fase del principio
                    (inception phase)</emphasis> las iteraciones tienden
                    a ser pesadas en asuntos de requerimientos/analisis, 
                    mientras que cualquier actividad de construcción 
                    debe estar limitada a la emulación del diseño
                    dentro de una herramienta CASE.
                  </para>

                </listitem>

                <listitem>

                  <para lang="en">
	                  In the <emphasis>elaboration phase</emphasis> 
	                  iterations tend to be completing the specification of 
	                  the requirements, and starting to focus on the 
	                  analysis and design, and possibly the first real 
	                  built code.
                  </para>
                  <para lang="de">
	                  In der <emphasis>Ausarbeitungsphase</emphasis> werden die 
	                  Iterationen dazu benutzt, die Spezifikation der  
	                  Anforderungen zu vervollständigen. Ihr Schwerpunkt liegt 
	                  auf Analyse und Design und dem wahrscheinlich ersten real 
	                  erzeugten Code.
				  </para>
				  <para lang="es">
				    En la <emphasis>fase de elaboración
				    (elaboration phase)</emphasis> las iteraciones tienden 
				    a ser completar la especificación de los requerimientos, 
				    y comenzar a centrarse en el analisis y el diseño, 
				    y posiblemente la construcción del primer codigo real.
				  </para>

                </listitem>

                <listitem>

                  <para lang="en">
	                  In the <emphasis>construction phase</emphasis> 
	                  iterations the requirements and analysis are more or
	                  less completed, and the effort is mostly in design
	                  and build.
                  </para>
                  <para lang="de">
	                  In der <emphasis>Konstruktionsphase</emphasis> sind 
	                  die Anforderungen und Analyse mehr oder weniger vollständig, 
	                  der Aufwand liegt häufig im Design und in der Buildphase. 
                  </para>
                  <para lang="es">
                    En la <emphasis>fase de construcción (construction
                    phase)</emphasis> los requerimientos y analisis están mas o
                    menos completos, y el esfuerzo de las iteraciones esta
                    mayormente en diseño y construcción.
                  </para>

                </listitem>

                <listitem>

                  <para lang="en">
	                  Finally, in the <emphasis>deployment 
	                  phase</emphasis> iterations are largely about build 
	                  activity, and in particular the testing of the 
	                  software.
                  </para>
                  <para lang="de">
	                  In der abschliessenden <emphasis>Deploymentphase</emphasis>
	                  finden Iterationen weitestgehend in den Buildaktivitäten 
	                  und teilweise beim Test der Software statt.
				  </para>
                  <para lang="es">
                    Finalmente, en la <emphasis>fase de desarrollo
                    (deployment phase)</emphasis> las iteraciones están 
                    centradas sobre la actividad de la contrucción,
                    y en particular la prueba del software.
                  </para>

                </listitem>

              </itemizedlist>

              <note>

                <para lang="en">
                It should be clear that testing is an integral 
                part of all phases. Even in the early phases the 
                requirements and design should be tested, and this is 
                facilitated by a good CASE tool.
                </para>
                <para lang="de">
                Es sollte klar sein, dass Testen ein integraler Bestandteil 
                aller Phasen ist. Gerade in den frühen Phasen sollten die 
                Anforderungen und das Design getestet werden. Und dies wird 
                durch ein gutes CASE-Tool unterstützt.
                </para>
                <para lang="es">
                  Debería estar claro que la prueba es una parte integral
                  de todas las fases.
                  Incluso en las fases tempranas los requerimientos y
                  el diseño deberian ser probados, 
                  y esto es facilitado por una buena herramienta CASE.
                </para>

              </note>

              <para lang="en">
	              We shall use an iterative process in this manual, 
	              that is loosely based on the RUP.
              </para>
              <para lang="de">
	              Wir wollen in diesem Handbuch einen iterativen Prozess 
	              verwenden, der lose auf dem RUP basiert.
              </para>
              <para lang="es">
                Usaremos un proceso iterativo en este manual,
                que está ligeramente basado en RUP.
              </para>

            </sect4>

            <sect4>

              <title>
                <phrase lang="en">Iteration Size</phrase>
                <phrase lang="de">Iterationsgröße</phrase>
                <phrase lang="es">Tamaño de Iteración</phrase>
              </title>

              <para lang="en">
                A good rule of thumb is that an iteration should take
                between six and ten weeks for typical commercial projects.
                Any longer and you have probably bitten off too many
                requirements to do in one go. You also lose focus on
                getting the next working iteration completed.
                Any shorter and you probably haven&apos;t got enough
                requirements to make a significant advance.
                In this case the additional overhead associated with an
                interation will become a problem.
              </para>
              <para lang="de">
                Eine gute Regel ist es, dass eine Iteration in typischen 
                kommerziellen Projekten zwischen sechs und zehn Wochen umfassen 
                sollte. Bei längeren Zeiträumen haben Sie sich wahrscheinlich 
                mehr Anforderungen vorgenommen, als Sie in einem Schritt 
                verarbeiten können. Sie verlieren auch den Fokus auf den 
                nächsten vollständigen Iterationsschritt. Bei kürzeren Zeiten 
                haben Sie wahrscheinlich nicht genügend Anforderungen um einen 
                spürbaren Fortschritt zu erzielen. In diesem Fall wird der mit 
                einer Iteration verbundene zusätzliche Overhead zum Problem.
              </para>
              <para lang="es">
                Una buena regla a primera vista es que una iteración
                debería tomar entre seis y diez semanas para proyectos
                comerciales tipicos.
                Mas largo y probablemente habras abarcado
                demasiados requerimientos para hacerlos de una vez.
                Ademas pierdes enfoque en tener la siguiente iteración completa.
                Mas corto y probablemente no has tomado en cuenta suficientes
                requerimientos para hacer un avance significativo.
                En este caso la sobrecarga adicional asociada con 
                una iteración puede hacerse un problema.
              </para>

              <para lang="en">
                The total number of iterations depends on the size of project.
                Take the estimated time (working out/guessing that is a
                whole subject on its own), and divide it into 8 week chunks. 
                Experience seems to suggest that the iterations will 
                divide in the ratio of around 1:2:3:3 into RUP style 
                inception, elaboration, construction and deployment 
                phases. A project that has great vagueness in its 
                specification (some advanced research projects for 
                example) will tend to be heavier on the early 
                phases.
              </para>
              <para lang="de">
                Die Gesamtanzahl von Iterationen hängt von der Grösse des 
                Projektes ab. Nehmen Sie die voraussichtliche Gesamtdauer  
                (geschätzte Ausarbeitungzeit für das gesamte Subjekt) und 
                unterteilen diese in 8 Wochen grosse Abschnitte. Die Erfahrung 
                sagt, dass Iterationen im Verhältnis 1:2:3:3 bezüglich der 
                RUP-Phasen <quote>Anfangsphase</quote>, <quote>
                Ausarbeitungsphase</quote>, <quote>Konstruktionsphase</quote> 
                und <quote>Deploymentphase</quote> aufgeteilt werden sollten. Ein 
                Projekt, dass grosse Unsicherheiten in seiner Spezifikation 
                aufweist (einige Forschungsprojekte zum Beispiel) wird viel 
                grössere frühe Phasen aufweisen. 
              </para>
              <para lang="es">
                El número total de iteraciones depende del tamaño del
                proyecto.
                Toma el tiempo estimado (trabajando fuera/adivinando 
                que es un tema completo en si mismo), 
                y dividelo en trozos de 8 semanas.
                La experiencia parece sugerir que las iteraciones se 
                dividiran en una proporcion de alrededor de 1:2:3:3 dentro 
                del estilo RUP de fases de inception, elaboration, 
                construction y deployment. 
                Un proyecto que tiene una gran imprecisión en su 
                especificación (algunos proyectos de investigación 
                avanzada por ejemplo) tenderan a ser mas pesados 
                en sus fases tempranas.
              </para>

              <para lang="en">
	              When building a product to contract for a customer 
	              the end point is well defined. However when developing a 
	              new product for the market place, a strategy that can be 
	              used is to decide the product launch date, and hence the 
	              end date for completion of engineering (some time 
	              before). The time is then divided into iterations, and as 
	              much of the product as can be built in that time 
	              developed. The iterative process is very effective where 
	              time to market is more important than the exact 
	              functionality.
              </para>
              <para lang="de">
	              Wenn Sie ein Produkt per Vertrag für einen Kunden erstellen, 
	              ist der Endpunkt wohl definiert. Jedoch, wenn Sie ein neues 
	              Produkt für den Markt entwickeln, kann es eine Strategie sein, 
	              die Produktveröffentlichung zu nehmen und den Zeitpunkt für 
	              das Ende des Engieering zu bestimmen (einige Zeit vorher). 
	              Dieser Zeitraum wird dann in Iterationen unterteilt. In 
	              dieser Zeit wird so viel von dem Produkt entwickelt wie 
	              möglich. Der iterative Prozess ist sehr effektiv, wenn der 
	              Zeitpunkt der Markteinführung wichtiger ist als die exakte 
	              Funktionalität.
              </para>
              <para lang="es">
                Cuande se construlle un producto por contrato para un 
                cliente el punto final esta bien definido.
                Sin embargo, cuando se desarrolla un nuevo producto 
                para el mercado, una estrategia que puede se usada 
                es decidir la fecha de lanzamiento del producto, 
                y por tanto la fecha final para completar las labore 
                de ingenieria (algún tiempo antes).
                El tiempo está entonces dividido en iteraciones, 
                y la cantidad del producto que puede ser construido 
                en el tiempo desarrollado. 
                El processo iterativo es muy efectivo donde el timepo 
                para la comercialización es mas importante que la 
                funcionalidad exacta.
              </para>

            </sect4>

          </sect3>

          <sect3>

            <title>
              <phrase lang="en">Recursive Development Processes</phrase>
              <phrase lang="de">Rekursive Entwicklungsprozesse</phrase>
              <phrase lang="es">Procesos de Desarrollo Recursivo</phrase>
            </title>

            <para lang="en">
	            Very few software systems are conceived as monolithic 
	            artifacts. They are broken down into subsystems, modules 
	            etc.
            </para>
            <para lang="de">
	            Sehr wenige Softwaresysteme sind als monolitische Werkzeuge 
	            geplant. Sie werden in Subsysteme, Module usw. unterteilt.
            </para>
            <para lang="es">
              Muy pocos sistemas software están concevidos como artefactos
              monoliticos.
              Están divididos en subsistemas, modulos, etc.
	        </para>


            <para lang="en">
	            Software processes are the same, with early parts of 
	            the process defining a top level structure, and the process 
	            reapplying to parts of the structure in turn to define ever 
	            greater details.
            </para>
            <para lang="de">
	            Die Softwareprozesse sind die gleichen. Mit frühen Abschnitten  
	            in denen der Prozess eine Top-Level-Struktur definiert und die 
	            wiederholte Anwendung des Prozesses auf Teile der Struktur, um 
	            jedes grössere Detail zu definieren.
            </para>
            <para lang="es">
              Los procesos de Software son iguales, con partes tempranas del
              proceso definiendo una estructura de alto nivel, y reaplicando el
              proceso para partes de la estructura en turnos para definir cada
              vez mayores detalles.
            </para>

            <para lang="en">
	            For example the initial design of a telephone system 
	            might identify objects to 
            </para>
            <para lang="de">
	            Zum Beispiel könnte das grundlegende Design eines 
	            Telefonsystemes Objekte identifizieren um 
            </para>
            <orderedlist numeration="lowerroman">
              <listitem>
            	<para lang="en">Handle the phone lines,</para>
                <para lang="de">Telefonleitungen zu belegen,</para> 
              </listitem>
              <listitem>
                <para lang="en">Process the calls,</para>
                <para lang="de">Anrufe zu verarbeiten,</para>
              </listitem>
              <listitem>
                <para lang="en">Manage the system and,</para>
            	<para lang="de">das System zu verwalten und,</para> 
              </listitem>
              <listitem>
                <para lang="en">Bill the customer.</para>
                <para lang="de">den Kunden abzurechnen.</para>
              </listitem>
            </orderedlist>
            <para lang="es">
              Por ejemplo, el diseño inicial de un sistema telefonico puede
              identificar objetos para 
              i) manejar las lineas de telefono,
              ii) procesar las llamadas, 
              iii) manejar el sistema y 
              iv) facturar al cliente.
              Los procesos de software pueden entonces ser reaplicados
              a cada uno de esos cuatro componentes para identificar su
              diseño.
            </para>
            
            <para lang="en">
                The software process can then be reapplied to 
                each of these four components to identify their 
                design.
            </para>
            <para lang="de">
	           	Der Softwareprozess kann dann auf jedes dieser vier Komponenten 
	           	erneut angewendet werden, um deren Design zu identifizieren.
            </para>

            <para lang="en">
	            OOA&amp;D with its clean boundaries to objects, 
	            naturally supports this approach. Such OOA&amp;D with 
	            recursive development is sometimes abbreviated as 
	            OOA&amp;D/RD.
            </para>
            <para lang="de">
	            OOA&amp;D mit seinen klaren Objektgrenzen unterstützt diesen  
	            Ansatz natürlich. Eine OOA&amp;D mit rekursiver Entwicklung wird 
	            manchmal als OOA&amp;D/RD abgekürzt.
            </para>
            <para lang="es">
              OOA&amp;D con sus limites claros a los objetos, soporta
              naturalmente este enfoque.
              Esta clase de OOA&amp;D con desarrollo
              recursivo se abrevia a veces como OOA&amp;D/RD.
            </para>

            <para lang="en">
	            Recursive development can be applied equally well to 
	            waterfall or iterative processes. It is not an alternative 
	            to them.
            </para>
            <para lang="de">
	            Die rekursive Entwicklung kann parallel zu Wasserfall- oder 
	            iterativen Prozessen angewendet werden. Sie ist keine 
	            Alternative zu diesen Prozessen.
            </para>
            <para lang="es">
              El desarrollo Recursivo puede ser aplicado igualmente bien a
              procesos de cascada o iterativos.
              No es una alternativa a ellos.
            </para>

          </sect3>

        </sect2>

        <sect2>

          <title>
            <phrase lang="en">
          	  A Development Process for This Tutorial
            </phrase>
            <phrase lang="de">
          	  Ein Entwicklungsprozess für dieses Übungshandbuch
            </phrase>
            <phrase lang="es">
              Un Proceso de Desarrollo para este Manual
            </phrase>
          </title>

          <para lang="en">
	          For the purpose of this tutorial we will use a stripped 
	          down iterative process with recursive development, loosely 
	          akin to RUP. The case study will take us through the first 
	          iteration, although at the end of the tutorial section of the 
	          manual we will look at how the project will develop to 
	          completion.
          </para>
          <para lang="de">
	          In dieser Übungsanleitung wollen wir einen reduzierten, iterativen 
	          Prozess mit rekursiver Entwicklung verwenden, der mit RUP lose 
	          gekoppelt ist. 
	          Die Fallstudie bringt uns durch die erste Iteration, am Ende des 
	          Abschnittes der Übungsanleitung werden wir sehen, wie das Projekt 
	          vollständig entwickelt wird.
          </para>
          <para lang="es">
            Para el proposito de este manual usaremos un proceso iterativo
            descendente con desarrollo recursivo, ligeramente semejante a RUP.
            El caso de estudio nos llevará a traves de la primera iteración,
            aunque al final de la sección de tutorial del manual miraremos a como
            el proyecto se desarrollará hasta su finalización.
          </para>


          <para lang="en">
	          Within that first iteration, we will tackle each of the 
	          requirements capture, analysis, design and build activities 
	          in turn. Not all parts of the process are based on UML or 
	          ArgoUML. We will look at what other material is needed 
	          outside.
          </para>
          <para lang="de">
	          Innerhalb der ersten Iteration werden wir jede Aktivität wie das 
	          Erfassen der Anforderungen, die Analyse, das Design und den Build 
	          angehen. Nicht alle Teile des Prozesses basieren auf UML oder 
	          ArgoUML. 
	          Wir werden sehen, welches andere Material hierfür benötigt wird.
          </para>
          <para lang="es">
            Dentro de la primera iteración, abordaremos cada uno de las
            actividades de captura de requerimientos, analisis, diseño y
            construcción por turno.
            No todas las partes del procesos están basadas en UML o ArgoUML.
            Miraremos a que otro material es necesario.
          </para>

          <para lang="en">
	          Within this process we will have an opportunity to see 
	          the various UML diagrams in use. The full range of UML 
	          diagrams and how they are supported is described in the 
	          reference manual (see <xref linkend="s1.ref.diagram_types"/>
	          ).
          </para>
          <para lang="de">
	          Innerhalb dieses Prozesses werden wir die Möglichkeit haben, die 
	          verschiedenen UML-Diagramme in ihrer Anwendung zu sehen. Der 
	          vollständige Umfang der UML-Diagramme und wie sie angewendet  
	          werden ist im Referenzhandbuch beschrieben
	          (siehe <xref linkend="s1.ref.diagram_types"/>).
          </para>
          <para lang="es">
            Dentro de este proceso tendremos una oportunidad para ver los
            varios diagramas UML en uso.
            El rango completo de diagramas UML y
            como están soportados está descrito en el manual de referencia
            (mira <xref linkend="s1.ref.diagram_types" /> ).
          </para>

          <sect3>

            <title>
              <phrase lang="en">Requirements Capture</phrase>
              <phrase lang="de">Erfassen der Anforderungen</phrase>
              <phrase lang="es">Captura de Requerimientos</phrase>
            </title>

            <para lang="en">
	            Our requirements capture will use the UML concept of 
	            <emphasis>Use Cases</emphasis>. Starting with a 
	            <emphasis>Vision Document</emphasis> we will see how Use 
	            Cases can be developed to describe all aspects of the 
	            system&apos;s behavior in the problem domain.
            </para>
            <para lang="de">
	            Unsere Anforderungsaufnahme wird das UML-Konzept 
	            der <emphasis>Anwendungsfälle</emphasis> verwenden. Beginnend 
	            mit einem <emphasis>Visions-Dokument</emphasis> werden wir sehen, 
	            wie Anwendungsfälle entwickelt werden können, um alle Aspekte  
	            des Systemverhaltens im Problembereich zu beschreiben.
            </para>
            <para lang="es">
              Nuestra captura de requerimientos usará el concepto UML de
              <emphasis>Casos de Uso</emphasis>.
              Empezando con un <emphasis>Vision Document</emphasis> 
              veremos como los Casos de Uso pueden ser
              desarrollados para describir todos los aspectos del comportamiento
              del sistema en el dominio del problema.
            </para>

          </sect3>

          <sect3>

            <title>
              <phrase lang="en">Analysis</phrase>
              <phrase lang="de">Analyse</phrase>
              <phrase lang="es">Analisis</phrase>
            </title>

            <indexterm lang="en"><primary>Analysis</primary></indexterm> 
            <indexterm lang="de"><primary>Analyse</primary></indexterm> 
            <indexterm lang="es">
              <primary>Analysis</primary>
            </indexterm>
            <para lang="en">
	            During the analysis stage, we will introduce the UML 
	            concept of <emphasis>classes</emphasis> to allow us to 
	            build a top level view of the objects that will make up the 
	            solution&mdash;sometimes known as a <emphasis>concept 
	            diagram</emphasis>.
            </para>
            <para lang="de">
	            Während der Analyse werden wir in das UML-Konzept der <emphasis>
	            Klassen</emphasis> einführen. Dieses Konzept erlaubt es uns, 
	            eine Top-Level-Sicht von Objekten zu erzeugen, die die Lösung 
	            darstellen&mdash; manchmal auch als <emphasis>Konzept-Diagramm
	            </emphasis> bekannt.
            </para>
            <para lang="es">
              Durante la etapa de analisis, introduciremos el concepto de
              UML de <emphasis>clases</emphasis> para permitirnos construir una
              visión de alto nivel de los objetos que conformaran la
              solución—a veces conocida como <emphasis>diagrama de
              concepto</emphasis>.
            </para>

            <para lang="en">
	            We will introduce the UML <emphasis>sequence 
	            diagram</emphasis> and <emphasis>statechart 
	            diagram</emphasis> to capture requirements for the overall 
	            behavior of the system.
            </para>
            <para lang="de">
	            Wir werden in das UML <emphasis>Sequenzdiagramm</emphasis> und  
	            das <emphasis>Zustandsdiagramm</emphasis> einführen, um die 
	            Anforderungen für das Gesamtverhalten des Systems zu erfassen.
            </para>
            <para lang="es">
              Introduciremos el <emphasis>diagrama de sequencia</emphasis>
              y <emphasis>diagrama de estados</emphasis> para capturar
              requerimientos por el comportamiento global del sistema.
            </para>

            <para lang="en">
	            Finally we will take the Use Cases from the 
	            requirements capture stage, and recast them in the language 
	            of the solution domain. This will illustrate the UML ideas 
	            of <emphasis>stereotyping</emphasis> and 
	            <emphasis>realization</emphasis>.
            </para>
            <para lang="de">
	            Abschliessend nehmen wir die Anwendungsfälle aus dem Abschnitt 
	            Anforderungsaufnahme und wandeln diese in die 
	            Sprache des Lösungsbereiches um. Dies wird die UML-Ideen von 
	            <emphasis>Stereotypen</emphasis> und <emphasis>Realisierung
	            </emphasis> illustrieren.
            </para>
            <para lang="es">
              Finalmente, tomaremos los Casos de Uso de la etapa de captura
              de requerimientos, y remoldearlos en el lenguaje del dominio de la
              solución.
              Esto ilustrará las ideas UML de
              <emphasis>estereotipado</emphasis> y
              <emphasis>realización</emphasis>.
            </para>

          </sect3>

          <sect3>

            <title>
              <phrase lang="en">Design</phrase>
              <phrase lang="de">Design</phrase>
              <phrase lang="es">Diseño</phrase>
            </title>

            <indexterm lang="en"><primary>Design</primary></indexterm>
            <indexterm lang="de"><primary>Design</primary></indexterm>
            <indexterm lang="es">
              <primary>Design</primary>
            </indexterm>

            <para lang="en">
	            We use the UML <emphasis>package diagram</emphasis> 
	            to organize the components of the project. We then revisit 
	            the class diagram, sequence diagram and statechart diagram, 
	            to show how they can be used recursively to design the 
	            complete solution.
            </para>
            <para lang="de">
	            Wir verwenden das UML-<emphasis>Paketdiagramm</emphasis>, um die 
	            Komponenten des Projektes zu organisieren. Wir besuchen dann 
	            erneut das Klassendiagramm, das Sequenzdiagramm und das 
	            Zustandsdiagramm, um zu zeigen, wie diese rekursiv verwendet 
	            werden können, um die vollständige Lösung zu designen.
            </para>
            <para lang="es">
              Usamos el <emphasis>diagrama de paquetes</emphasis> UML para
              organizar los componentes del proyecto.
              Luego revisaremos el
              diagrama de clases, diagrama de secuencia y diagrama de estados,
              para mostrar como pueden ser usados recursivamente para diseñar la
              solución completa.
            </para>


            <para lang="en">
	            During this part of the process, we need to develop 
	            our system architecture, to define how all the components 
	            will fit together and operate.
            </para>
            <para lang="de">
	            Während dieses Teils des Prozesses müssen wir unsere 
	            Systemarchitektur entwickeln, um zu definieren, wie alle 
	            Komponenten zusammenpassen und miteinander zusammenarbeiten.
            </para>
            <para lang="es">
              Durante esta parte del proceso, necesitamos desarrollar
              nuestra arquitectura del sistema, para definir como todos los
              componentes ajustaran juntos y funcionaran.
            </para>


            <para lang="en">
	            Although not strictly part of our process, we&apos;ll 
	            look at how the UML <emphasis>collaboration 
	            diagram</emphasis> can be used as an alternative to, or to 
	            complement the <emphasis>sequence diagram</emphasis>. 
	            Similarly we will look at the UML <emphasis>activity 
	            diagram</emphasis> as an alternative or complement to the 
	            statechart diagram.
            </para>
            <para lang="de">
	            Obwohl es kein zwingend erforderlicher Teil unseres Prozesses 
	            ist, werden wir uns ansehen, wie das UML-<emphasis>
	            Kollaborationsdiagramm</emphasis> als Alternative oder Ergänzung 
	            zum <emphasis>Sequenzdiagramm</emphasis> verwendet werden kann. 
	            Desweiteren werden wir uns das UML-<emphasis>
	            Aktivitätsdiagramm</emphasis> als Alternative oder Ergänzung zum 
	            Zustandsdiagramm ansehen.
            </para>
            <para lang="es">
              Aunque no es estrictamente parte de nuestro proceso,
              miraremos a como el <emphasis>diagrama de colaboración</emphasis>
              UML puede ser usado como una alternativa para, o complementar el
              <emphasis>diagrama de secuencia</emphasis>.
              Similarmente miraremos
              al <emphasis>diagrama de actividades</emphasis> UML como una
              alternativa o complemento para el diagrama de estado.
            </para>


            <para lang="en">
	            Finally we shall use the UML <emphasis>deployment 
	            diagram</emphasis> to specify how the system will actually 
	            be realized.
            </para>
            <para lang="de">
	            Zum Schluß wollen wir das UML-<emphasis>Deploymentdiagramm
	            </emphasis> verwenden, um zu spezifizieren, wie das System 
	            aktuell realisiert werden soll.
            </para>
            <para lang="es">
              Finalmente usaremos el <emphasis>diagrama de despliege</emphasis>
              UML para especificar como el sistema será finalmente
              realizado.
            </para>

          </sect3>

          <sect3>

            <title>
              <phrase lang="en">Build</phrase>
              <phrase lang="de">Build</phrase>
              <phrase lang="es">Construcción</phrase>
            </title>

            <indexterm lang="en"><primary>Build</primary></indexterm>
            <indexterm lang="de"><primary>Build</primary></indexterm>
            <indexterm lang="es">
              <primary>Build</primary>
            </indexterm>

            <para lang="en">
	            UML is not really concerned with code writing. 
	            However at this stage we will show how ArgoUML can be used 
	            for code generation.
            </para>
            <para lang="de">
	            UML ist nicht wirklich mit dem Schreiben von Code verknüpft. 
	            Jedoch wollen wir an dieser Stelle zeigen, wie ArgoUML für 
	            die Codegenerierung eingesetzt werden kann.
            </para>
            <para lang="es">
              UML no está realmente afectado con la escritura de codigo.
              Sin embargo, en esta etapa mostraremos como ArgoUML puede ser usado
              para generación de codigo.
            </para>


            <para lang="en">
	            We will also look at how the UML Use Case Diagram and 
	            Use Case Specification are invaluable tools for a test 
	            program.
            </para>
            <para lang="de">
	            Wir wollen uns auch ansehen, wie das UML-Anwendungsfalldiagramm 
	            und die Anwendungsfall-Spezifikation unschätzbare Werkzeuge für 
	            ein Testprogramm sind.
            </para>
            <para lang="es">
              Tambien miraremos a como el Diagrama de Casos de Uso UML y la
              Especificación de Casos de Uso son herramientas invalorables para
              un programa de prueba.
            </para>

          </sect3>

        </sect2>

      </sect1>

      <sect1>

        <title>
          <phrase lang="en">Why ArgoUML is Different</phrase>
          <phrase lang="de">Warum ist ArgoUML anders</phrase>
          <phrase lang="es">Por que ArgoUML es Diferente</phrase>
        </title>

        <para lang="en">
	        In the introduction, we listed the four key things that 
	        make ArgoUML different: i) it makes use of ideas from cognitive 
	        psychology, ii) it is based on open standards; iii) it is 100% 
	        pure Java; and iv) it is an open source project.
        </para>
        <para lang="de">
        In der Einleitung listeten wir vier Dinge auf, die ArgoUML anders 
        machen:
        </para>
        <orderedlist numeration="lowerroman">
        	<listitem>
        		<para lang="de">
        			es macht Gebrauch von den Ideen der kognitiven Psychologie, 
        		</para>
        	</listitem>
        	<listitem>
        		<para lang="de">
        			es basiert auf offenen Standards; 
        		</para>
        	</listitem>
        	<listitem>
        		<para lang="de">
        			es ist 100% reines Java; und 
        		</para>
        	</listitem>
        	<listitem>
        		<para lang="de">
        			es ist ein Open-Source-Projekt.
        		</para>
        	</listitem>
        </orderedlist>
        <para lang="es">
          En la introducción, listamos las cuatro aspectos clave que hacen
          a ArgoUML diferente:
          i) hace uso de ideas de psicologia cognitiva,
          ii) está basado en estandares abiertos; 
          iii) es 100% Java puro; y 
          iv) es un proyecto de codigo abierto.
        </para>


        <sect2 id="tut.cog.psych">

          <title>
            <phrase lang="en">Cognitive Psychology</phrase>
            <phrase lang="de">Kognitive Psychologie</phrase>
            <phrase lang="es">Psicología Cognitiva</phrase>
          </title>

          <sect3>

            <title>
              <phrase lang="en">Theory</phrase>
              <phrase lang="de">Theorie</phrase>
              <phrase lang="es">Teoría</phrase>
            </title>

            <para lang="en">
	            ArgoUML is particularly inspired by three theories 
	            within cognitive psychology: i) reflection-in-action, ii) 
	            opportunistic design iii) and comprehension and problem 
	            solving.
            </para>
            <para lang="de">
            ArgoUML ist teilweise durch die drei Theorien der kognitiven 
            Psychologie inspiriert: 
            </para>
            <orderedlist>
            	<listitem>
            		<para lang="de">Reflektion-während-Aktion,</para>
            	</listitem>
            	<listitem>
            		<para lang="de">Opportunistisches Design und</para>
            	</listitem>
            	<listitem>
            		<para lang="de">Verständnis und Problemlösung.</para>
            	</listitem>
            </orderedlist>
            <para lang="es">
              ArgoUML está particularmente inspirado en tres teorias dentro
              de la psicología cognitiva: 
              i) reflexión-en-acción, 
              ii) diseño oportunista 
              iii) y comprensión y resolución de problemas.
            </para>

            <itemizedlist>

              <listitem>
              	<para lang="en">
	              	<emphasis>Reflection-in-Action</emphasis>
	                <indexterm>
	                	<primary>Reflection-in-Action</primary>
	                </indexterm>
                </para>
              	<para lang="de">
	              	<emphasis>Reflektion-während-Aktion</emphasis>
	                <indexterm>
	                	<primary>Reflektion-während-Aktion</primary>
	                </indexterm>
                </para>
                <para lang="es">
                  <emphasis>Reflexión-en-Acción</emphasis>

                  <indexterm>
                    <primary>Reflection-in-Action</primary>
                  </indexterm>
                </para> 

                <para lang="en">
                  This theory observes that designers of complex systems do not
                  conceive a design fully-formed. Instead, 
                  they must construct a partial design, evaluate, reflect 
                  on, and revise it, until they are ready to extend it further.
                </para>
                <para lang="de">
                  Diese Theorie unterstellt, dass sich die Designer eines 
                  komplexen Systems das vollständig ausgeformte Design nicht 
                  vorstellen können. Stattdessen müssen Sie ein Teil-Design 
                  entwerfen, evaluieren, es reflektieren und überarbeiten, bis 
                  Sie soweit sind, es weiter zu erweitern. 
                </para>
                <para lang="es">
                  Esta teoría observa que los diseñadores de sistemas
                  complejos no conciven un diseño totalmete formado. 
                  En su lugar,
                  deben construir un diseño parcial, evaluarlo, 
                  reflexionar en el, y revisarlo, 
                  hasta que estén listos para extenderlo mas allá.
                </para>


                <para lang="en">
                  As developers work hands-on with the design, their mental model
                  of the problem situation improves, hence improving their design.
                </para>
                <para lang="de">
                  Da sich die Entwickler sehr intensiv mit dem Design 
                  beschäftigen, verbessert sich auch ihr mentales Modell der 
                  Problemsituation. Und dies führt zur Verbesserung Ihres 
                  Designs.
                </para>
                <para lang="es">
                  Como los desrrolladores trabajan directamete sobre el diseño, 
                  sus modelos mentales de la situación del problema mejoran, 
                  por lo tanto mejoran sus diseños.
                </para>
              </listitem>

              <listitem>
              	<para lang="en">
	              	<emphasis>Opportunistic Design</emphasis>
	                <indexterm>
	                	<primary>Opportunistic Design</primary>
	                </indexterm>
                </para>
              	<para lang="de">
	              	<emphasis>Opportunistisches Design</emphasis>
	                <indexterm>
	                	<primary>Opportunistisches Design</primary>
	                </indexterm>
                </para>
                <para lang="es">
                  <emphasis>Diseño Oportunista</emphasis>

                  <indexterm>
                    <primary>Opportunistic Design</primary>
                  </indexterm>
                </para>

                <para lang="en">
                  A theory within cognitive psychology suggesting that although
                  designers plan and describe their work in an ordered, hierarchical
                  fashion, in reality, they choose successive tasks based on the
                  criteria of cognitive cost.
                </para>
                <para lang="de">
                  Eine Theorie innerhalb der kognitiven Psychologie besagt, dass 
                  obwohl Designer ihre Arbeit in einer geordneten, 
                  hierarchischen Art und Weise beschreiben, sie in der Realität 
                  aufeinanderfolgende Aktivitäten auf der Basis kognitiver 
                  Kosten wählen.
                </para>
                <para lang="es">
                  Una teoría dentro de la psicología cognitiva sugiere que
                  aunque los diseñadores planean y describen su trabajo de una
                  forma jerarquica ordenada, en realidad, escogen tareas
                  sucesivas basados en el criterio de costo cognitivo.
                </para>


                <para lang="en">
                  Simply stated, designers do not follow even their own plans in
                  order, but choose steps that are mentally least expensive among
                  alternatives.
                </para>
                <para lang="de">
                  Einfach ausgedrückt, Designer folgen nicht ihrer selbst 
                  geplanten Reihenfolge, sondern wählen Schritte, die mental 
                  weniger aufwändige Alternativen darstellen.
                </para>
                <para lang="es">
                  Explicado simplemente, los diseñadores no sigue incluso
                  sus propios planes en orden, si no que escogen pasos que son
                  mentalmente menos caros entre las alternativas.
                </para>
              </listitem>

              <listitem>
              	<para lang="en">
	              	<emphasis>Comprehension and Problem Solving</emphasis>
	                <indexterm><primary>Comprehension</primary></indexterm>
	                <indexterm><primary>Problem Solving</primary></indexterm>
                </para>
              	<para lang="de">
	              	<emphasis>Verständlichkeit und Problemlösung</emphasis>
	                <indexterm><primary>Verständlichkeit</primary></indexterm>
	                <indexterm><primary>Problemlösung</primary></indexterm>
              	</para>
              	<para lang="es">
              	  <emphasis>Comprensión y Resolución de Problemas</emphasis>

                  <indexterm>
                    <primary>Comprehension</primary>
                  </indexterm>
                  <indexterm>
                    <primary>Problem Solving</primary>
                  </indexterm>
              	</para>

                <para lang="en">
                  A design visualization theory within cognitive psychology.
                  The theory notes that designers must bridge a gap between their
                  mental model of the problem or situation and the formal model of
                  a solution or system.
                </para>
                <para lang="de">
                  Eine Design-Visualisierungstheorie innerhalb der kognitiven 
                  Psychologie. Die Theorie beschreibt, dass Designer eine 
                  Brücke zwischen Ihrem mentalen Modell des Problemes oder der 
                  Situation und dem formalen Modell einer Lösung oder eines 
                  Systems überwinden müssen.
                </para>
                <para lang="es">
                  Una teoría de visualización de diseño dentro de la 
                  psicología cognitiva. 
                  La teoría expone que los diseñadores
                  deben cubrir un hueco entre su modelo mental del problema o
                  situación y el modelo formal de una solución o sistema.
                </para>


                <para lang="en">
                  This theory suggests that programmers will benefit from:
                </para>
                <para lang="de">
                  Diese Theorie besagt, dass Programmierer Vorteile haben von:
                </para>
                <para lang="es">
                  Esta teoría sugiere que los programadores de 
                  beneficiaran de:
                </para>


                <orderedlist>

                  <listitem>

                    <para lang="en">
                      Multiple representations such as program syntactic
                      decomposition, state transitions, control flow, and data flow.
                      These allow the programmer to better identify elements and
                      relationships in the problem and solution and thus more
                      readily create a mapping between their situation models and
                      working system models.
                    </para>
                    <para lang="de">
                      Mehreren Darstellungsweisen, wie die syntaktische 
                      Programmzerlegung, Zustandsübergänge, Steuer- und 
                      Datenfluss. Diese erlauben es dem Programmierer, die 
                      Elemente und Beziehungen innerhalb des Problemes und der 
                      Lösung besser zu identifizieren und daher die Abbildung 
                      zwischen deren Situationsmodellen und den funktionierenden 
                      Systemmodellen leichter herstellen zu können.
                    </para>
                    <para lang="es">
                      Representaciones multiples como descomposición
                      sintactica del programa, transiciones de estado,
                      flujo de control, y flujo de datos. 
                      Estos permiten al programador
                      identificar mejor elementos y relaciones en el problema y
                      solución y por lo tanto mas facilmente crear un mapeo entre
                      sus modelos de situación y modelos del funcionamiento del
                      sistema.
                    </para>

                  </listitem>

                  <listitem>

                    <para lang="en">
                      Familiar aspects of a situation model, which improve
                      designers&apos; abilities to formulate solutions.
                    </para>
                    <para lang="de">
                      Vertraute Aspekte eines Situationsmodelles, welche die 
                      Fähigkeiten des Designers verbessern, Lösungen zu 
                      formulieren.
                    </para>
                    <para lang="es">
                      Aspectos familiares de un modelo de situación, 
                      que mejoran las abilidades de los diseñadores 
                      para formular soluciones.
                    </para>

                  </listitem>

                </orderedlist>

              </listitem>
            </itemizedlist>

          </sect3>

          <sect3>

            <title>
              <phrase lang="en">Practical Application in ArgoUML</phrase>
              <phrase lang="de">Praktische Anwendung in ArgoUML</phrase>
              <phrase lang="es">Aplicación Practica en ArgoUML</phrase>
            </title>

            <para lang="en">
              ArgoUML implements these theories using a number of techniques.
            </para>
            <para lang="de">
              ArgoUML implementiert diese Theorien durch eine bestimmte Anzahl 
              von Techniken.
             </para>
            <para lang="es">
              ArgoUML implementa estas teorías usando un numero de tecnicas.
            </para>



            <orderedlist>

              <listitem>

                <para lang="en">
	                The design of a user interface which allows the 
	                user to view the design from a number of different 
	                perspectives, and allows the user to achieve goals 
	                through a number of alternative routes.
	                </para>
                <para lang="de">
	                Das Design der Anwenderschnittstelle, die es dem Anwender 
	                erlaubt, das Design aus unterschiedlichen Sichten zu 
	                betrachten und es dem Anwender ermöglicht, Ziele über 
	                eine Anzahl alternativer Wege zu erreichen.
                </para>
                <para lang="es">
                  El diseño de un interfaz de usuario que permite al
                  usuario ver el diseño desde un numero de perspectivas
                  diferentes, y permite al usuario alcanzar objetivos a traves
                  de un numero de rutas alternativas.
                </para>

              </listitem>

              <listitem>

                <para lang="en">
	                The the use of processes running in parallel with 
	                the design tool, evaluating the current design against 
	                models of how <quote>best practice</quote> design might 
	                work. These processes are known as <emphasis>design 
	                critics</emphasis>.
                </para>
                <para lang="de">
	                Die Verwendung von parallel ablaufenden Prozessen im  
	                Designtool, die das aktuelle Design gegen  
	                <quote>best practice</quote>-Entwurfsmodelle überprüfen. 
	                Diese Prozesse sind als 
	                <emphasis>Design-Kritiken</emphasis> bekannt.
                </para>
                <para lang="es">
                  El uso de procesos ejecutandose en paralelo con la
                  herramienta de diseño, evaluando el diseño actual contra
                  modelos de como un diseño de la <quote>mejor practica</quote> 
                  puede funcionar.
                  Estos procesos son conocidos como 
                  <emphasis>criticos de diseño</emphasis>.
                </para>

              </listitem>

              <listitem>

                <para lang="en">
	                The use of <emphasis>to-do lists</emphasis> to 
	                convey suggestions from the design critics to the user, 
	                as well as allowing the user to record areas for future 
	                action.
                </para>
                <para lang="de">
	                Die Nutzung von <emphasis><quote>zu bearbeiten Listen</quote> 
	                </emphasis>, die dem Anwender Vorschläge aus den  
	                Designkritiken unterbreiten und es ihm auch erlauben, 
	                Bereiche für künftige Aktionen aufzuzeichnen.
                </para>
                <para lang="es">
                  El uso de  <emphasis>listas de tareas pendientes (to-do
                  lists)</emphasis> para comunicar sugerencias desde los criticos
                  de diseño al usuario, ademas de permitir al usuario registrar
                  areas para acciones futuras.
                </para>

              </listitem>

              <listitem>

                <para lang="en">
	                The use of checklists, to guide the user through 
	                a complex process.
                </para>
                <para lang="de">
	                Die Verwendung von Checklisten, um den Anwender durch einen 
	                komplexen Prozess zu führen.
                </para>
                <para lang="es">
                  El uso de listas de validación, para guiar al usuario a
                  traves de un proceso complejo.
                </para>

              </listitem>

            </orderedlist>

          </sect3>

        </sect2>

        <sect2>

          <title>
            <phrase lang="en">Open Standards</phrase>
            <phrase lang="de">Offene Standards</phrase>
            <phrase lang="es">Estandares Abiertos</phrase>
          </title>

          <para lang="en">
	          UML is itself an open standard. ArgoUML throughout has 
	          tried to use open standards for all its interfaces.
          </para>
          <para lang="de">
	          Die UML ist selbst ein offener Standard. ArgoUML hat überall 
	          versucht, offene Standards für alle seine Schnittstellen zu 
	          verwenden.
          </para>
          <para lang="es">
            UML es en si mismo un estandar abierto.
            ArgoUML sobre todo ha intentado usar estandares 
            abiertos para todas sus interfaces.
          </para>


          <para lang="en">
            The key advantage of adherence to open standards is that it
            permits easy inter-working between applications, and the ability
            to move from one application to another as necessary.
          </para>
          <para lang="de">
            Der Hauptvorteil am Festhalten an offenen Standards ist, dass es die 
            einfache Zusammenarbeit zwischen Anwendungen erlaubt und die 
            Möglichkeit eröffnet, von einer Anwendung zu einer anderen 
            wechseln, sofern dies notwendig ist.
          </para>
          <para lang="es">
            La ventaja clave de la adherencia a los estandares abiertos es
            que ello permite un facil inter-funcionamiento entre aplicaciones, 
            y la abilidad de moverse de una aplicación a otra como sea
            necesario.
          </para>


          <sect3>

            <title>
              <phrase lang="en">XML Metadata Interchange (XMI)</phrase>
              <phrase lang="de">
              	XML Metadaten-Austausch (Metadata Interchange XMI)
              </phrase>
              <phrase lang="es">XML Metadata Interchange (XMI)</phrase>
            </title>

            <indexterm><primary>XMI</primary></indexterm>

            <para lang="en">
	            <emphasis>XML Metadata Interchange (XMI)</emphasis> 
	            is the standard for saving the meta-data that make up a 
	            particular UML model. In principle this will allow you to 
	            take the model you have created in ArgoUML and import it 
	            into another tool.
            </para>
            <para lang="de">
	            <emphasis>XML Metadata Interchange (XMI)</emphasis> 
	            ist der Standard für das Speichern von Metadaten, die ein 
	            bestimmtes UML-Modell darstellen. Im Prinzip erlaubt er es, das 
	            in ArgoUML erstellte Modell in ein anderes Tool zu importieren.
            </para>
            <para lang="es">
              <emphasis>XML Metadata Interchange (XMI)</emphasis> es el
              estandar para guardar los meta-datos que confeccionan un modelo
              UML particular. 
              En principio esto te permitirá tomar el modelo que
              has creado en ArgoUML y importarlo dentro de otra
              herramienta.
            </para>

            <para lang="en">
	            This clearly has advantages in allowing UML to meet 
	            its goal of being a standard for communication between 
	            designers.
            </para>
            <para lang="de">
	            Dies hat klare Vorteile, die es der UML erlaubt, sein Ziel zu 
	            erreichen, der Standard für die Kommunikation zwischen Designern 
	            zu sein.
            </para>
            <para lang="es">
              Esto claramente tiene ventajas in permitir al UML alcanzar su
              meta de ser un estandar para la comunicación entre
              diseñadores.
            </para>


            <para lang="en">
              The reality is not quite this good.
              Prior to UML 2.0 the XMI file includes no information about the
              graphical representation of the models, so diagram layout is lost.
              ArgoUML gets round this by saving graphical information separate
              from the model
              (see <xref linkend="s3.tut.loadsave"/>).
            </para>
            <para lang="de">
              Die Realität sieht nicht so gut aus.
              Vor UML 2.0 enthielten die XMI-Dateien keine Informationen über 
              die grafische Darstellung der Modelle, so dass das Diagramm-
              Layout verloren ging. ArgoUML umgeht dies, indem es die grafische 
              Information separat vom Modell speichert. 
              (siehes <xref linkend="s3.tut.loadsave"/>).
            </para>
            <para lang="es">
              La realidad no es tan buena.
              Anteriormente a UML 2.0 el
              archivo XMI no incluye información sobre la representación grafica
              de los modelos, así que el diseño del diagrama está perdido.
              ArgoUML rodea este problema guardando la información grafica
              separada del modelo (mira <xref linkend="s3.tut.loadsave" />).
            </para>

          </sect3>

          <sect3>

            <title>
              <phrase lang="en">Graphics Formats - EPS, GIF, PGML, PNG, PS, SVG</phrase>
              <phrase lang="de">Grafik-Formate - EPS, GIF, PGML, PNG, PS, SVG</phrase>
              <phrase lang="es">Formatos Graficos - EPS, GIF, PGML, PNG, PS, SVG</phrase>
            </title>

            <itemizedlist>

              <listitem>
              	<para lang="en">
	                <indexterm><primary>EPS</primary></indexterm>
	                <ulink url="http://en.wikipedia.org/wiki/Encapsulated_PostScript"><emphasis>Encapsulated
	                PostScript (EPS)</emphasis></ulink> file is a
	                PostScript file which satisfies additional restrictions.
	                These restrictions are intended to make it easier for software
	                to embed an EPS file within another PostScript document.
              	</para>
	            <para lang="de">
	                <indexterm><primary>EPS</primary></indexterm>
	                Die <ulink url="http://en.wikipedia.org/wiki/Encapsulated_PostScript"><emphasis>Encapsulated
	                PostScript (EPS)</emphasis></ulink>-Datei weist zusätzliche 
	                Beschränkungen auf. Diese Beschränkungen sind dazu gedacht, 
	                es der Software einfacher zu machen, eine EPS-Datei in ein 
	                anderes PostScript-Dokument einzubetten.
	            </para>
                <para lang="es">
                  <indexterm>
                    <primary>EPS</primary>
                  </indexterm>
                  
                  <ulink url="http://en.wikipedia.org/wiki/Encapsulated_PostScript">
                    <emphasis>Encapsulated PostScript (EPS)</emphasis>
                  </ulink>
                  es un archivo PostScript que satisface
                  restricciones adicionales.
                  Estas restricciones estan previstas
                  para hacer mas facil para el software incrustar un archivo EPS 
                  dentro de otro documento PostScript.
                </para>
              </listitem>

              <listitem>
	              <para lang="en">
	                <indexterm><primary>GIF</primary></indexterm>
	                <ulink url="http://en.wikipedia.org/wiki/GIF"><emphasis>Graphics
	                Interchange Format (GIF)</emphasis></ulink> uses lossless compression, 
	                and preserves sharp edges well, which makes it well-suited for ArgoUML.
	                The GIF format used to be a patent encumbered format, 
	                but all the patents have currently expired.
	              </para>
	              <para lang="de">
	                <indexterm><primary>GIF</primary></indexterm>
	                Das <ulink url="http://en.wikipedia.org/wiki/GIF"><emphasis>Graphics
	                Interchange Format (GIF)</emphasis></ulink> verwendet eine 
	                verlustlose Kompression und erhält scharfe Kanten, wodurch 
	                es für ArgoUML gut geeignet ist. Das GIF-Format ist ein 
	                patentgeschütztes Format. Aber aktuell sind alle Patente 
	                abgelaufen.
	              </para>
                <para lang="es">
                  <indexterm>
                    <primary>GIF</primary>
                  </indexterm>
                  
                  <ulink url="http://en.wikipedia.org/wiki/GIF">
                    <emphasis>Graphics Interchange Format (GIF)</emphasis>
                  </ulink>
                  es un formato cubierto por patente, 
                  aunque las patentes se agotaran en Agosto del 2006.
                </para>
              </listitem>

              <listitem>
	              <para lang="en">
	                <indexterm><primary>PGML</primary></indexterm>
	                <ulink url="http://en.wikipedia.org/wiki/PGML">
	                <emphasis>Precision Graphics Markup Language (PGML)</emphasis></ulink>
	                is an XML-based
	                language for representing vector graphics.
	                It was a W3C draft, but was not adopted as a recommendation.
	                PGML and VML, another XML-based vector graphics language, were
	                later joined and improved upon to create SVG (see below).
	              </para>
	              <para lang="de">
	                <indexterm><primary>PGML</primary></indexterm>
	                <ulink url="http://en.wikipedia.org/wiki/PGML">
	                <emphasis>Precision Graphics Markup Language (PGML)</emphasis></ulink>
	                ist eine XML-basierte Sprache zur Darstellung von 
	                Vektorgrafiken.
	                Sie war ein W3C-Entwurf, der aber nicht als Empfehlung 
	                übernommen wurde. PGML und VML, andere XML-basierte Vektor-
	                Grafik-Sprachen, wurden später miteinander verknüpft und 
	                verbessert, um daraus SVG (siehe unten) zu erzeugen.
	              </para>
                <para lang="es">
                  <indexterm>
                    <primary>PGML</primary>
                  </indexterm>
                  
                  <ulink url="http://en.wikipedia.org/wiki/PGML">
                    <emphasis>Precision Graphics Markup Language (PGML)</emphasis>
                  </ulink>
                  es un lenguaje basado en XML para 
                  representar graficos vectoriales.
                  Fué un borrador de la W3C, 
                  pero no fué adoptado como recomendación. 
                  PGML y VML, otro lenguaje basado en XML 
                  para graficos vectoriales, fueron luego
                  fusionados y mejorados para crear juntos el formato SVG.
                </para>
              </listitem>
                
              <listitem>
	              <para lang="en">
	                <indexterm><primary>PNG</primary></indexterm>
	                <ulink url="http://en.wikipedia.org/wiki/Portable_Network_Graphics">
	                <emphasis>Portable Network Graphics (PNG)</emphasis></ulink> is an
	                ISO/IEC standard (15948:2004) and is also a W3C recommendation.
	                PNG is a bitmap image format that employs lossless data
	                compression. PNG was created to both improve upon and replace
	                the GIF format with an image file format that does not require
	                a patent license to use.
	                PNG is officially pronounced "ping" but it is often just
	                spelled out &mdash; probably to avoid confusion with the
	                network tool ping.
	                PNG is supported by the libpng reference library,
	                a platform-independent library that contains C functions for
	                handling PNG images.
	              </para>
	              <para lang="de">
		            <indexterm><primary>PNG</primary></indexterm>
	                <ulink url="http://en.wikipedia.org/wiki/PNG">
	                <emphasis>Portable Network Graphics (PNG)</emphasis></ulink> 
	                ist ein ISO/IEC-Standard (15948:2004) und auch eine W3C-
	                Empfehlung. PNG ist ein Bitmap-Bildformat, das eine 
	                verlustlose Datenkompression verwendet. PNG wurde eingesetzt, 
	                um das GIF-Format durch ein Bildformat zu ersetzen, das die 
	                Nutzung einer Patentlizenz entbehrlich macht.
	                PNG wird offiziell "ping" ausgesprochen, wird aber auch sehr 
	                oft buchstabiert &mdash; wahrscheinlich, um eine 
	                Verwechslung mit dem Netzwerktool ping zu vermeiden.
	                PNG wird durch die libpng-Referenzbibliothek unterstützt, eine 
	                plattformunabhängige Bibliothek, die C-Funktionen für die 
	                Anwendung von PNG-Bildern enthält.
	              </para>
                <para lang="es">
                  <indexterm>
                    <primary>PNG</primary>
                  </indexterm>
                  
                  <ulink url="http://en.wikipedia.org/wiki/PNG">
                    <emphasis>Portable Network Graphics (PNG)</emphasis>
                  </ulink>
                  es un estandar de ISO/IEC (15948:2004) y es tambien una
                  recomendación de la W3C. 
                  PNG es un formato de imagen de mapa de
                  bits que emplea compresión de baja perdida. 
                  PNG fué creado para
                  mejorar y sustituir el formato GIF con un formato de archivos
                  de imagen que no requiriera de una licencia de patense para ser
                  usado. 
                  PNG es oficialmente pronunciado "ping" pero a menudo es
                  simplemente deletreado  — probablemente para evitar confusión
                  con la utilidad de red ping. 
                  PNG está soportado por la librería
                  de referencia libpng, una librería independiente de la
                  plataforma que contiene funciones C para el manejo de imagenes
                  PNG.
                </para>
              </listitem>

              <listitem>
	              <para lang="en">
	                <indexterm><primary>PS</primary></indexterm>
	                <ulink url="http://en.wikipedia.org/wiki/PostScript">
	                  <emphasis>PostScript (PS)</emphasis>
	                </ulink> is a page description language and
	                programming language used primarily in the electronic and
	                desktop publishing areas.
	              </para>
	              <para lang="de">
	                <indexterm><primary>PS</primary></indexterm>
	                <ulink url="http://en.wikipedia.org/wiki/PostScript/">
	                  <emphasis>PostScript (PS)</emphasis>
	                </ulink> ist eine Seitenbeschreibungs- und Programmiersprache, 
	                die primär in elektronischen und Desktop-Publishing-Bereichen 
	                eingesetzt wird. 
	              </para>
                <para lang="es">
                  <indexterm>
                    <primary>PS</primary>
                  </indexterm> 
                  <ulink url="http://en.wikipedia.org/wiki/PostScript/">
                    <emphasis>PostScript (PS)</emphasis>
                  </ulink> 
                  es un lenguaje de descripción de pagina
                  y lenguaje de programación usado primeramente en la areas de
                  publicación asistida por ordenador y electronica.
                </para>
              </listitem>

              <listitem>
	              <para lang="en">
	                <indexterm><primary>SVG</primary></indexterm>
	                <ulink url="http://en.wikipedia.org/wiki/Scalable_Vector_Graphics">
	                <emphasis>Scalable Vector Graphics (SVG)</emphasis></ulink>
	                is an XML markup language for describing two-dimensional
	                vector graphics, both static and animated, and either declarative
	                or scripted.
	                It is an open standard created by the World Wide Web Consortium.
	                <!-- The next part is too literally copied from wikipedia: -->
	                The use of SVG on the web is in its infancy.
	                There is a great deal of inertia due to the long-time use of pure
	                raster formats and other formats like Macromedia Flash or Java
	                applets, but also browser support is still uneven, with native
	                support in Opera, Safari and Firefox, but Internet Explorer
	                requires a plugin.
	                See PGML above.
	              </para>
	              <para lang="de">
	                <indexterm><primary>SVG</primary></indexterm>
	                <ulink url="http://en.wikipedia.org/wiki/Scalable_Vector_Graphics">
	                <emphasis>Scalable Vector Graphics (SVG)</emphasis></ulink>
	                ist eine XML-Markup-Sprache für die Beschreibung 
	                zweidimensionaler Vektorgrafiken, die sowohl statisch als 
	                auch animiert und entweder deklarativ oder beschreibend.
	                Sie ist ein offener Standard, der durch das World Wide Web 
	                Konsortium erstellt wurde. Der Verwendung von SVG im Web 
					befindet sich noch im Anfangsstadium.
	                Es gibt eine grosse Trägheit aufgrund der langjährigen 
	                Nutzung reiner Raster- und anderer Formate wie Macromedia Flash 
	                oder Java-Applets. Aber auch die Browserunterstützung ist 
	                uneinheitlich, mit  eingebauter Unterstützung in Opera und 
	                Firefox, während Safari und der Internet Exlorer ein Plugin 
	                benötigen.
	                Siehe PGML oben.
	              </para>
                <para lang="es">
                  <indexterm>
                    <primary>SVG</primary>
                  </indexterm> 
                  
                  <ulink url="http://en.wikipedia.org/wiki/Scalable_Vector_Graphics">
                    <emphasis>Scalable Vector Graphics (SVG)</emphasis>
                  </ulink>
                  es un lenguaje de marcado XML para describir 
                  graficos vectoriales bidimensionales, 
                  estaticos y animados, y de forma declarativa o 
                  mediante scrip.
                  Es un estandar abierto creado por el World Wide
                  Web Consortium. 
                  El uso de SVG en la web esta en sus primeros pasos. 
                  Hay un gran problema en la inercia debida al largo
                  tiempo de uso de formatos basados en mapas de bits y otros
                  formatos como Macromedia Flash or Java applets, pero ademas el
                  soporte por navegadores web es todavía desigual, con soporte
                  nativo en Opera y Firefox, pero Safari y Internet Explorer
                  necesitan un plugin. 
                  Mira PGML mas arriba.
                </para>
              </listitem>

            </itemizedlist>

          </sect3>

          <sect3>

            <title>
              <phrase lang="en">Object Constraint Language (OCL)</phrase>
              <phrase lang="de">
              	Objekt-Bedingungs-Sprache (Object Constraint Language OCL)
              </phrase>
              <phrase lang="es">Object Constraint Language (OCL)</phrase>
            </title>
            
            <para lang="en">
              <ulink url="http://en.wikipedia.org/wiki/Object_Constraint_Language">
              <emphasis>Object Constraint Language (OCL)</emphasis></ulink>
              is a declarative language for describing rules that apply
              to UML models.
              It was developed at IBM and is now part of the UML standard.
              Initially OCL was only a formal specification language
              extension to UML.
              OCL may now be used with any Meta-Object Facility (MOF) compliant
              metamodel, including UML.
              The Object Constraint Language is a precise text language
              that provides constraint and object query expressions on any
              MOF model or metamodel that cannot otherwise be expressed by
              diagrammatic notation.
            </para>
            <para lang="de">
              <ulink url="[http://en.wikipedia.org/wiki/Object_Constraint_Language">
              Die <emphasis>Object Constraint Language (OCL)</emphasis></ulink>
              ist eine deklarative Sprache zur Beschreibung von Regeln, die auf 
              UML-Modelle angewendet werden.
              Sie wurde durch IBM entwickelt, und ist jetzt Teil des UML-Standard.
              Ursprünglich war OCL nur als formale Spezifikations-Sprach-
              Erweiterung von UML gedacht.
              OCL kann jetzt mit jedem Meta-Object Facility (MOF) konformen 
              Metamodell einschliesslich UML angewendet werden.
              Die Object Constraint Language ist eine präzise Textsprache, die 
              Bedingungen und Objekt-Abfrageausdrücke für jedes MOF- oder 
              Meta-Modell enthält, die nicht auf andere Art durch eine Diagramm-
              Notation ausgedrückt werden können.
            </para>
            <para lang="es">
              <ulink
                url="[http://en.wikipedia.org/wiki/Object_Constraint_Language">
                <emphasis>Object Constraint Language (OCL)</emphasis>
              </ulink>
              es un lenguaje declarativo para describir 
              reglas que se aplican a modelos UML. 
              Fué desarrollado en IBM y ahora es parte del estandar UML.
              Inicialmente OCL fué solo una especificación formal de una
              extensión de lenguaje para UML. 
              OCL puede ahora ser usado con
              cualquier metamodelo compatible con Meta-Object Facility (MOF),
              incluyendo UML. 
              El Object Constraint Language es un lenguaje de
              texto preciso que proporciona limitación y expresiones de acceso a
              objeto en cualquier modelo MOF o metamodelo que de otra forma no
              puede ser expresado por notación diagramatical.
            </para>

          </sect3>

        </sect2>

        <sect2>

          <title>
            <phrase lang="en">100% Pure Java</phrase>
            <phrase lang="de">100% reines Java</phrase>
            <phrase lang="es">100% Java Puro</phrase>
          </title>

          <para lang="en">
	          Java was conceived as an interpreted language. It 
	          doesn&apos;t have a compiler to produce code for any 
	          particular target machine. It compiles code for its own 
	          target, the <emphasis>Java Virtual Machine 
	          (JVM)</emphasis>.
          </para>
          <para lang="de">
	          Java wurde als interpretierende Sprache erdacht. Es ist kein 
	          Compiler, der Code für jede beliebige Zielmaschine erzeugt. Sie 
	          übersetzt den Code für sein eigenes Ziel, der <emphasis>Java 
	          Virtual Machine (JVM)</emphasis>.
          </para>
          <para lang="es">
            Java fué concevido como un lenguaje interpretado. 
            No tenía un compilador para producir codigo para 
            cuaquier maquina particular.
            Compila codigo para su propio sistema, 
            la <emphasis>Maquina Virtual Java (Java Virtual Machine; JVM)</emphasis>.
	      </para>

          <para lang="en">
	          Writing an interpreter for a JVM is much easier than 
	          writing a compiler, and such machines are now incorporated 
	          into almost every Web Browser. As a result most machines can 
	          run Java, with no further work.
          </para>
          <para lang="de">
	          Das Schreiben eines Interpreters für eine JVM ist sehr viel 
	          leichter, als das Schreiben eines Compilers und, solche Maschinen 
	          sind jetzt in fast jedem Web Browser eingebaut. Im Ergebnis können 
	          die meisten Maschinen Java, ohne dass es weiterer Arbeiten bedarf.
          </para>
          <para lang="es">
            Escribir un interprete para una JVM es mucho mas facil que
            escribir un compilador, y estas maquinas virtuales están ahora
            incorporadas dentro de casi todo Navegador Web. 
            Como resultado, la mayoria de las maquinas pueden ejecutar 
            Java, sin trabajo adicional.
          </para>

          <para lang="en">
	          (In case you wonder why all languages aren&apos;t like 
	          this, it is because interpreted languages tend to be slower 
	          than compiled languages. However with the high performance of 
	          modern PCs, the trade-off for portability is worthwhile for 
	          many applications. Furthermore modern multi-level caches can 
	          mean that interpreted languages, which produce denser code, 
	          may actually not be that much slower anyway.)
          </para>
          <para lang="de">
	          (Für den Fall, dass Sie sich wundern, warum nicht alle Sprachen so 
	          sind wie diese, dann deshalb, weil interpretierende Sprachen 
	          langsamer sind als übersetzende Sprachen. Mit der hohen Leistung 
	          moderner PC&apos;s und dem Handlungszwang nach Portabilität ist 
	          diese Einschränkung für viele Applikationen trotzdem lohnenswert.
	          Darüber hinaus können moderne Multi-Cache-Systeme bedeuten, dass 
	          interpretierende Sprachen, die dichteren Code produzierenden, 
	          aktuell nicht mehr sehr viel langsamer sind.)
          </para>
          <para lang="es">
            (En caso de que te preguntes porque todos los lenguajes no son
            como este, es por que los lenguajes interpretados tienden a ser mas
            lentos que los compilados. 
            Sin embargo, con el alto rendimiento de
            los modernos PCs, la ganancia en portabilidad merece la pena para
            muchas aplicaciones. 
            Mas aún, las modernas caches multinivel pueden
            suponer que los lenguajes interpretados, que producen un codigo mas
            denso, pueden realmente no ser tan lentas de todas formas.)
          </para>

          <para lang="en">
	          By choosing to write ArgoUML in pure Java, it is 
	          immediately made available to the maximum number of users 
	          with the minimum amount of effort.
          </para>
          <para lang="de">
	          Durch die Entscheidung, ArgoUML in reinem Java zu schreiben, wird 
	          ArgoUML für sehr viele Anwender mit einem minimalem Aufwand 
	          unmittelbar verfügbar.
          </para>
          <para lang="es">
            Mediante la elección de escribir ArgoUML en Java puro, se hace
            inmediatamete disponible para el mayor numero de usuarios con la
            minima cantidad de esfuerzo.
          </para>

        </sect2>

        <sect2>

          <title>
            <phrase lang="en">Open Source</phrase>
            <phrase lang="de">Offener Quellcode (Open Source)</phrase>
            <phrase lang="es">Codigo Abierto</phrase>
          </title>

          <para lang="en">
	          ArgoUML is an <emphasis>open source</emphasis> project. 
	          That means anyone can have a free copy of the source code, 
	          change it, use it for new purposes and so on. The only 
	          (major) obligation is that you pass your code on in the same 
	          way to others. The precise nature of what you can and 
	          can&apos;t do varies from project to project, but the 
	          principle is the same.
          </para>
          <para lang="de">
	          ArgoUML ist ein <emphasis>Open Source</emphasis>-Projekt. Das 
	          bedeutet, jeder kann eine freie Kopie des Quellcodes haben, diesen 
	          ändern und für neue Zwecke einsetzen usw.. Die einzige (Haupt-) 
	          Bedingung ist, dass Sie Ihren Code auf die gleiche Weise anderen  
	          zur Verfügung stellen. Die genaue Ausprägung, was Sie tun können 
	          und was nicht, variiert von Projekt zu Projekt, aber das Prinzip 
	          ist das gleiche.
          </para>
          <para lang="es">
            ArgoUML es un proyecto de <emphasis>código abierto</emphasis>.
            Esto significa que cualquiera puede tener una copia gratis del código
            fuente, cambiarlo, usarlo para nuevos propositos y cosas así. 
            La única (gran) obligación es que tú pases tu código de la misma forma a otros. 
            La naturaleza precisa de que puedes hacer y que no puede
            varia de un proyecto a otro, pero el principio es el mismo.
          </para>


          <para lang="en">
            The advantage is that a small project like ArgoUML 
            suddenly is open to a lot of additional help from those who 
            can chip in their ideas for how the program might be 
            improved.
            At any one time there may be 10, 15, 20 or more 
            people making significant contributions to ArgoUML.
            To do that commercially would cost $1m+ per year.
          </para>
          <para lang="de">
            Der Vorteil ist, dass ein kleines Projekt wie ArgoUML immer für 
            zusätzliche Unterstützung offen ist. Insbesondere für diejenigen, 
            die Ihre Ideen einbringen, wie das Programm verbessert werden kann.
            Jederzeit können 10, 15, 20 oder mehr Personen signifikante 
            Beiträge zu ArgoUML leisten. Dies kommerziell zu machen, würde mehr 
            als 1 Mio. $ pro Jahr kosten.
          </para>
          <para lang="es">
            La ventaja es que un proyecto pequeño como ArgoUML subitamente
            se abre a una gran cantidad de ayuda adicional de aquellos que pueden
            indagar en sus ideas sobre como el programa puede ser mejorado. 
            En cualquier momento pueden ser 10, 15, 20 o mas personas haciendo 
            contribuciones significantes a ArgoUML. 
            Hacer esto comercialmente
            costaría mas de 1 millon de $ al año.
          </para>

          <para lang="en">
	          Its not just a spirit of pure altruism. Contributing is 
	          a way of learning <quote>hands-on</quote> about leading edge 
	          software. Its a way of getting a lot of visibility (over 
	          1,125,000 people had downloaded ArgoUML by the end of 2005). 
	          That&apos;s a lot of good experience on a r&eacute;sum&eacute;
	          and a lot of 
	          potential employers seeing you!
          </para>
          <para lang="de">
	          Es ist aber nicht nur der Geist reiner Uneigennützigkeit. Hier 
	          mitzuarbeiten ist ein Weg, <quote>nebenbei</quote> mehr über 
	          führende Software zu lernen. Es ist auch ein Weg, viel 
	          Aufmerksamkeit (über 1.125.000 Personen haben ArgoUML Ende 2005 
	          heruntergeladen) zu bekommen. In Ihrem Lebenslauf ist das eine 
	          sehr gute Erfahrung und eine Menge Arbeitgeber sehen Sie!
          </para>
          <para lang="es">
            No es solo un espiritu de puro altruismo. 
            Contribuir en un camino para aprender 
            <quote>con las manos en la masa</quote> sobre
            software puntero. 
            Es una forma de adquirir visibilidad (mas de
            100,000 personas han descargado ArgoUML hasta la primavera de 2001).
            Esto es una gran cantidad de buena esperiencia en suma ¡y muchos
            empleadores potenciales están viendote!
          </para>


          <para lang="en">And its great for the ego!</para>
          <para lang="de">Und es ist hervorragend für Ihr Ego!</para>
          <para lang="es">Y es genial para el ego!</para>

          <para lang="en">
	          Open Source doesn&apos;t preclude making money. 
	          Gentleware <ulink url="http://www.gentleware.com">
	          www.gentleware.com</ulink> sell a commercial version of 
	          ArgoUML, Poseidon. Their value proposition is not a piece of 
	          private code. Its the commercial polish and support that take 
	          risk out of using ArgoUML in a commercial development, 
	          allowing customers to take advantage of ArgoUML&apos;s 
	          leading edge technology.
          </para>
          <para lang="de">
	          Open Source schliesst das Geld verdienen nicht aus.  
	          Gentleware <ulink url="http://www.gentleware.com">
	          www.gentleware.com</ulink> verkauft eine kommerzielle Version von 
	          ArgoUML: Poseidon. Deren Angebot ist nicht der Code. 
	          Es ist der kommerzielle Support, der das Risiko bei der Nutzung 
	          von ArgoUML in einer kommerziellen Entwicklung reduziert und es dem 
	          Kunden erlaubt, die Vorteile von ArgoUML&apos;s führender 
	          Technologie zu nutzen.
          </para>
          <para lang="es">
            El Código Abierto no excluye ganar dinero.
            Gentleware <ulink url="http://www.gentleware.com">www.gentleware.com</ulink>
            vende una versión comercial de ArgoUML, Poseidon. 
            Su propuesta de valor no es un trozo de códogo privativo. 
            Es el refinamiento comercial y el
            soporte para librarse de riesgos usando ArgoUML en un desarrollo
            commercial, permitiendo a los clientes tomar ventaja de la tecnología
            puntera de ArgoUML.
          </para>

        </sect2>

      </sect1>

      <sect1 id="tut.basics">

        <title>
          <phrase lang="en">ArgoUML Basics</phrase>
          <phrase lang="de">ArgoUML Grundlagen</phrase>
          <phrase lang="es">Fundamentos de ArgoUML</phrase>
        </title>

        <para lang="en">
	        The aim of this section is to get you started with 
	        ArgoUML. It takes you through obtaining the code and getting it 
	        running.
        </para>
        <para lang="de">
	        Das Ziel dieses Abschnittes ist es, Sie in die Lage zu versetzen mit 
	        ArgoUML zu beginnen. Er zeigt Ihnen, wie Sie den Code bekommen und 
	        starten können.
        </para>
        <para lang="es">
          El objeto de esta sección es ponerte en marcha con ArgoUML. 
          Te llevará a traves de obtener el código y conseguirlo ejecutar.
        </para>


        <sect2>

          <title>
            <phrase lang="en">Getting Started</phrase>
            <phrase lang="de">Erste Schritte</phrase>
            <phrase lang="es">Empezando</phrase>
          </title>

          <sect3 id="s3.tut.system.requirements">

            <title>
              <phrase lang="en">System Requirements</phrase>
              <phrase lang="de">Systemanforderungen</phrase>
              <phrase lang="es">Requerimientos del Sistema</phrase>
            </title>

            <para lang="en">
	            Since ArgoUML is written in 100% pure Java, it should 
	            run on any machine with Java installed. Java version 5
	            or later is needed. You may have this in place, but if not 
	            the latest version can be downloaded free from 
	            <ulink url="http://www.java.com">www.java.com</ulink>. Note 
	            that you only need the Java Runtime Environment (JRE), 
	            there is no need to download the whole Java Development Kit 
	            (JDK).
            </para>
            <para lang="de">
	            Da ArgoUML in 100% reinem Java geschrieben ist, sollte es auf  
	            jedem Rechner mit installiertem Java laufen. Es wird Java, 
	            Version 5 oder höher benötigt. Möglicherweise ist es bereits 
	            installiert, aber falls nicht, können Sie es von 
	            <ulink url="http://www.java.com">www.java.com</ulink> frei 
	            herunterladen.
	            Beachten Sie, dass Sie nur die Java Runtime Umgebung (JRE) 
	            benötigen. Es gibt keine Notwendigkeit das gesamte Java 
	            Development Kit (JDK) herunterzuladen.
	        </para>
            <para lang="es">
              Puesto que ArgoUML está escrito en Java puro 100%, 
              debería funcionar en cualquier maquina con Java instalado. 
              Es necesaria una versión 1.4 o posterior de Java. 
              Puedes tenerlo disponible, pero si no, 
              puede ser descargada gratis de 
              <ulink url="http://www.java.com">www.java.com</ulink>. 
              Ten en cuenta que solo necesitas el 
              Java Runtime Environment (JRE), no hay necesidad
              de descargar el Java Development Kit (JDK) completo.
            </para>

            <para lang="en">
	            ArgoUML needs a reasonable amount of computing 
	            resource. 
	            Any PC which is able to run an operating system with 
	            a graphical user interface will suffice. 
	            Download 
	            the code from Download section of the project website 
	            <ulink url="http://argouml.tigris.org">
	            argouml.tigris.org</ulink>. Choose the version that suits 
	            your needs as described in the section below.
            </para>
            <para lang="de">
	            ArgoUML benötigt eine vernünftige Rechenleistung. Jeder PC, der 
	            in der Lage ist ein Betriebssystem mit einer grafischen 
	            Benutzeroberfläche auszuführen ist dazu in der Lage. 
	            Laden Sie den Code über den Download-Bereich der Projekt-Webseite 
	            <ulink url="http://argouml.tigris.org">argouml.tigris.org</ulink> 
	            herunter. Wie im nächsten Abschnitt beschrieben, wählen Sie die 
	            Version aus, die Ihren Ansprüchen am Besten genügt.
            </para>
            <para lang="es">
              ArgoUML necesita una cantidad razonable de recursos. 
              Un PC con 200MHz de procesador, 
              64Mb de RAM y 10Mb de espacio disponible
              en un disco duro debería ser adecuado. 
              Descarga el código de la sección de Descargas 
              de sitio web del proyecto 
              <ulink url="http://argouml.tigris.org"> argouml.tigris.org</ulink>.
              Escoje la versión que se ajusta a tus necesidades como se describe
              en la siguiente sección.
            </para>

          </sect3>

          <sect3>

            <title>
              <phrase lang="en">Downloading Options</phrase>
              <phrase lang="de">Download-Möglichkeiten</phrase>
              <phrase lang="es">Opciones de Descarga</phrase>
            </title>

            <para lang="en">
            	You have three options for obtaining ArgoUML.
            </para>
            <para lang="de">
            	Es gibt drei Optionen, wie Sie ArgoUML bekommen können.
            </para>
            <para lang="es">Tienes tres opciones para obtener ArgoUML.</para>


            <orderedlist>

              <listitem>

                <para lang="en">
                	Run ArgoUML directly from the Web Site using Java 
                	Web Start. This is the easiest option.
                </para>
                <para lang="de">
	                Sie starten ArgoUML direkt von der Web Seite mit Hilfe von 
	                Java Web Start. Dies ist die einfachste Möglichkeit.
                </para>
                <para lang="es">
                  Ejecutar ArgoUML directamente desde el Sitio Web usando
                  Java Web Start. 
                  Esta el la opción mas facil.
                </para>

              </listitem>

              <listitem>

                <para lang="en">
	                Download the Windows installer program. This is the 
	                right option if you are on Windows 
	                and intend using ArgoUML regularly.
                </para>
                <para lang="de">
                	Laden Sie das Windows-Installationsprogramm herunter. Dies 
                	ist die richtige Option, wenn Sie mit Windows arbeiten und 
                	beabsichtigen ArgoUML normal zu nutzen.
                </para>

                <para lang="es">
                  <!--  Linus thinks this should be split into this and
                        the next listitem. -->
                  Descargar el código binario ejecutable. 
                  Esta es la opción correcta si pretendes 
                  usar ArgoUML regularmente y no es muy dificil.
                </para>

              </listitem>

              <listitem>

                <para lang="en">
	                Download the binary executable code. 
	                Unless you are on Windows, this is the 
	                right option if you intend using ArgoUML regularly and 
	                is not that difficult.
                </para>
                <para lang="de">
	                Sie laden den binären, ausführbaren Code herunter. Dies ist 
	                die richtige Option, wenn Sie beabsichtigen, ArgoUML normal 
	                zu nutzen. Es sei denn, Sie arbeiten unter Windows.
                </para>

              </listitem>

              <listitem>

                <para lang="en">
                  <indexterm><primary>Build</primary></indexterm>
                  Download the source code using Subversion and build your own version.
                  Choose this option if you want to look at the internal
                  workings of ArgoUML, or want to join in as a developer.
                  This option does require the whole JDK 
                  (see <xref linkend="s3.tut.system.requirements"/>).
                </para>
                <para lang="de">
                  <indexterm><primary>Build</primary></indexterm>
                  Sie laden sich den Quellcode mit Hilfe von Subversion herunter 
                  und erzeugen sich Ihre eigene Version. Wählen Sie diese Option, 
                  wenn Sie sich ansehen wollen wie ArgoUML intern arbeitet oder 
                  wenn Sie sich als Entwickler einbringen wollen. Diese Option 
                  erfordert das vollständige JDK 
                  (siehe <xref linkend="s3.tut.system.requirements"/>).
                </para>
                <para lang="es">
                  <indexterm>
                    <primary>Build</primary>
                  </indexterm> 
                  Descargar el código fuente usando CVS y
                  compilar tu propia versión. 
                  Escoge esta opción si quieres
                  mirar el funcionamiento interno de ArgoUML, 
                  o quieres unirte como desarrollador. 
                  Esta opción requiere el JDK completo (mira 
                  <xref linkend="s3.tut.system.requirements" />).
                </para>

              </listitem>

            </orderedlist>

            <para lang="en">
	            All four options are freely available through the 
	            project web site, <ulink url="http://argouml.tigris.org">
	            argouml.tigris.org</ulink>.
            </para>
            <para lang="de">
	            Alle vier Optionen sind über die Projekt-Webseite 
	            <ulink url="http://argouml.tigris.org">argouml.tigris.org</ulink> 
	            frei verfügbar.
            </para>
            <para lang="es">
              Las tres opciones están libremente disponibles a traves del
              sitio web del proyecto, 
              <ulink url="http://argouml.tigris.org">argouml.tigris.org</ulink>.
            </para>

          </sect3>

          <sect3>

            <title>
              <phrase lang="en">ArgoUML Using Java Web Start</phrase>
              <phrase lang="en">ArgoUML mit Java Web Start aufrufen</phrase>
              <phrase lang="es">ArgoUML Usando Java Web Start</phrase>
            </title>

            <para lang="en">There are two steps to this.</para>
            <para lang="de">Hierfür sind zwei Schritte auszuführen.</para>
            <para lang="es">Hay dos pasos para esto.</para>


            <orderedlist>

              <listitem>

                <para lang="en">
	                Install Java Web Start on your machine. This is 
	                available from 
	                <ulink url="http://java.sun.com/products/javawebstart">
	                java.sun.com/products/javawebstart</ulink>, or via the 
	                <literal>Java Web Start</literal> link on the ArgoUML 
	                <ulink url="http://argouml.tigris.org">home 
	                page</ulink>.
	            </para>
                <para lang="de">
	                Sie installieren Java Web Start auf Ihrem Rechner. Java Web 
	                Start ist unter
	                <ulink url="http://java.sun.com/products/javawebstart">
	                java.sun.com/products/javawebstart</ulink> , oder über den 
	                <literal>Java Web Start</literal>-Link auf der ArgoUML 
	                <ulink url="http://argouml.tigris.org">Home 
	                page</ulink> verfügbar.
                </para>
                <para lang="es">
                  Instalar Java Web Start en tu maquina. 
                  Está disponible en
                  <ulink url="http://java.sun.com/products/javawebstart">
                  java.sun.com/products/javawebstart</ulink>, 
                  o a traves del enlace 
                  <literal>Java Web Start</literal> en la 
                  <ulink url="http://argouml.tigris.org">pagina web</ulink>
                  de ArgoUML.
                </para>

              </listitem>

              <listitem>

                <para lang="en">
	                Click on the <literal>Launch latest stable 
	                release</literal> link on the ArgoUML 
	                <ulink url="http://argouml.tigris.org">home 
	                page</ulink>.
                </para>
                <para lang="de">
	                Sie klicken auf den Link <literal>Launch latest stable 
	                release</literal> auf der ArgoUML 
	                <ulink url="http://argouml.tigris.org">Home 
	                page</ulink>.
                </para>
                <para lang="es">
                  Haz click en el enlace 
                  <literal>Launch latest stable release</literal> 
                  de la 
                  <ulink url="http://argouml.tigris.org">pagina web</ulink>
                  de ArgoUML.
                </para>

              </listitem>

            </orderedlist>

            <para lang="en">
	            Java Web Start will download ArgoUML, cache it and 
	            start it the first time, then on subsequent starts, check 
	            if ArgoUML is updated and only download any updated parts 
	            and then start it. The ArgoUML 
	            <ulink url="http://argouml.tigris.org">home page</ulink> 
	            also provides details on starting ArgoUML from the Java Web 
	            Start console.
            </para>
            <para lang="de">
	            Java Web Start wird ArgoUML herunterladen, zwischenspeichern und 
	            das erste Mal starten. Bei darauf folgenden Starts prüft es, ob 
	            ArgoUML seitdem aktualisiert wurde, lädt nur die aktualisierten 
	            Teile herunter und startet es. Die ArgoUML 
	            <ulink url="http://argouml.tigris.org">Home page</ulink> enthält 
	            weitere Details, wie man ArgoUML mit der Java Web Start-Konsole 
	            startet.
            </para>
            <para lang="es">
              Java Web Start descargará ArgoUML, lo cacheará y lo iniciará
              por primera vez, luego en subsiguientes inicios, comprueba si
              ArgoUML está actualizado y solo descarga cualquier parte
              actualizada y luego lo inicia. 
              La <ulink url="http://argouml.tigris.org">pagina web</ulink> de
              ArgoUML tambien proporciona detalles iniciando ArgoUML desde la
              consola de Java Web Start.
            </para>

          </sect3>

          <sect3>

            <title>
              <phrase lang="en">Using the Windows installer</phrase>
              <phrase lang="de">Das Windows-Installationsprogramm verwenden</phrase>
            </title>

            <para lang="en">
	            If you choose to download and install 
	            using the Windows installer, you 
	            will have a choice of downloading the latest stable version 
	            of the code (which will be more reliable, but not have all 
	            the latest features), or the current version (which will be 
	            less reliable, but have more features). Choose according to 
	            your own situation.
            </para>
            <para lang="de">
            	Wenn Sie sich dazu entscheiden, ArgoUML mit Hilfe des Windows-
            	Installationsprogrammes herunterzuladen und zu installieren, 
            	haben Sie die Wahl, ob Sie die letzte stabile Version (die 
            	zuverlässiger ist, aber nicht die letzten Eigenschaften 
            	beinhaltet) oder die aktuelle Version (die unzuverlässiger ist, 
            	aber mehr Eigenschaften beinhaltet) herunterladen. Entscheiden 
            	Sie sich auf Basis Ihrer eigenen Situation.
            </para>

            <para lang="en">
            	The install wizard gives you the opportunity to install
            	the latest "JRE" (Java Runtime Environment). There is no
            	need to select this if you already have a Sun Java
            	installed, version 5 or better.
            </para>
            <para lang="de">
            	Der Installationsassistent gibt Ihnen die Möglichkeit, die 
            	letzte "JRE" (Java Runtime Environment) zu installieren. Es gibt 
            	keine Notwendigkeit diese Möglichkeit auszuwählen, wenn Sie 
            	bereits Sun Java, Version 5 oder höher installiert haben.
            </para>

          </sect3>

          <sect3>

            <title>
              <phrase lang="en">Downloading the Binary Executable</phrase>
              <phrase lang="de">Die binäre, ausführbare Datei herunterladen</phrase>
              <phrase lang="es">Descargando el Binario Ejecutable</phrase>
            </title>

            <para lang="en">
	            If you choose to download the binary executable, you 
	            will have a choice of downloading the latest stable version 
	            of the code (which will be more reliable, but not have all 
	            the latest features), or the current version (which will be 
	            less reliable, but have more features). Choose according to 
	            your own situation.
            </para>
            <para lang="de">
	            Wenn Sie sich für das Herunterladen der binären, ausführbaren 
	            Datei entscheiden, können sie wählen, ob Sie die letzte stabile 
	            Version (die zuverlässiger ist, aber nicht alle Eigenschaften 
	            aufweist) oder die aktuelle Version (die unzuverlässiger ist, 
	            aber mehr Eigenschaften aufweist) herunterladen wollen. 
				Entscheiden Sie dies unter Berücksichtigung Ihrer eigenen 
	            Situation.
            </para>
            <para lang="es">
              Si escoges descargar el binario ejecutable, 
              tendras la elección de descargar 
              la ultima versión estable del código
              (la cual será mas fiable, 
              pero no tiene todas las ultimas caracteristicas),
              o la versión actual (la cual será menos fiable,
              pero tiene mas caracteristicas).
              Escoge deacuerdo con tu situación.
            </para>

            <para lang="en">
	            ArgoUML comes in <literal>.zip</literal> or <literal>
	            tar.gz</literal> flavors. Choose the former if you are a 
	            Microsoft Windows user, and the latter if you are running 
	            some flavor of Unix. 
	            There is also a Mac OS X version with <literal>.app.tgz</literal> 
	            extension.
	            Unpacking is as follows.
            </para>
            <para lang="de">
	            ArgoUML steht als <literal>.zip</literal> oder <literal>tar.gz
	            </literal> Variante bereit. Wählen Sie die erste Variante, wenn 
	            Sie Microsoft Windows Anwender sind und die letzte, wenn Sie mit 
	            einer UNIX-Variante arbeiten. 
	            Es gibt auch eine Mac OS X Version mit <literal>.app.tgz
	            </literal>-Erweiterung.
	            Das Entpacken erfolgt wie nachfolgend beschrieben.
            </para>
            <para lang="es">
              ArgoUML está disponible en formatos 
              <literal>.zip</literal> o <literal> tar.gz</literal>. 
              Escoge el primero si eres un usuario de
              Microsoft Windows, y el ultimo si estás ejecutando 
              alguna variedad de Unix. 
              Desempaquetandolo como sigue.
            </para>


            <itemizedlist>

              <listitem>

                <para lang="en">
	                On Windows. Unzip the <literal>.zip</literal> 
	                file with WinZip, or if your version of Windows 
	                supports it,
	                copy the files out of the compressed folder and put 
	                them into a directory of your choosing.
                </para>
                <para lang="de">
	                Unter Windows. Entpacken Sie die <literal>.zip</literal>-Datei 
	                mit WinZip oder mit Windows, wenn Ihre Version dies 
	                unterstützt. Kopieren Sie die Dateien aus dem komprimierten 
	                Verzeichnis in ein Verzeichnis Ihrer Wahl.
                </para>
                <para lang="es">
                  En Windows. 
                  Descomprime el archivo <literal>.zip</literal> 
                  con WinZip, o en ultimas versiones of Windows (ME, XP) 
                  copia los archivos fuera de la carpeta comprimida y ponlos
                  en un directorio de tu elección.
                </para>

              </listitem>

              <listitem>

                <para lang="en">
	                On Unix. Use GNU tar to unzip and break out the 
	                files to a directory of your choice <literal>
	                tar&nbsp;zxvf&nbsp;&lt;file&gt;.tar.gz</literal>. If you have an 
	                older version of tar, the <literal>z</literal> option 
	                may not be available, so use <literal>
	                gunzip&nbsp;&lt;&nbsp;file.tar.gz&nbsp;|&nbsp;tar&nbsp;xvf&nbsp;-</literal>.
                </para>
                <para lang="de">
	                Unter Unix. Nutzen Sie GNU tar, um die Dateien in ein 
	                Verzeichnis Ihrer Wahl zu entpacken. 
                </para>
                <para lang="de">
                	<literal>tar&nbsp;zxvf&nbsp;&lt;file&gt;.tar.gz</literal>. 
                </para>
                <para lang="de">
	                Wenn Sie eine ältere Version von tar 
	                haben, ist die <literal>z</literal>-Option nicht verfügbar. 
	                Benutzen Sie in diesem Fall 
                </para>
                <para lang="de">
                	<literal>gunzip&nbsp;&lt;&nbsp;file.tar.gz&nbsp;|&nbsp;
                	tar&nbsp;xvf&nbsp;-</literal>.
                </para>
                <para lang="es">
                  En Unix. 
                  Usa GNU tar para descomprimir y desempaquetar
                  los archivos en un directorio de tu elección 
                  <literal>tar&nbsp;zxvf&nbsp;&lt;file&gt;.tar.gz</literal>. 
                  Si tienes una versión antigual de tar, 
                  la opción <literal>z</literal> puede no estar disponible, 
                  así que usa 
                  <literal>gunzip&nbsp;&lt;&nbsp;file.tar.gz&nbsp;|&nbsp;tar&nbsp;xvf&nbsp;-</literal>.
                </para>

              </listitem>

            </itemizedlist>

            <para lang="en">
	            You should have a directory containing 
	            a number of <literal>.jar</literal> files and a 
	            <literal>README.txt</literal>.
            </para>
            <para lang="de">
	            Sie sollten jetzt in dem Verzeichnis eine Reihe von <literal>.jar
	            </literal>-Dateien und die Datei <literal>README.txt</literal> 
	            vorfinden.
            </para>
            <para lang="es">
              Deberías tener un directorio conteniendo un numero de 
              archivos <literal>.jar</literal> y un 
              <literal>README.txt</literal>.
            </para>

          </sect3>

          <sect3 id="s4.probsolving">

            <title>
              <phrase lang="en">Problems Downloading and Installing</phrase>
              <phrase lang="de">Probleme beim Herunterladen und Installieren</phrase>
              <phrase lang="es">Problemas Descargando</phrase>
            </title>

            <para lang="en">
	            If you get completely stuck and you have no local 
	            assistance, try the web site, particularly the 
	            <ulink url="http://argouml.tigris.org/faqs/users.html">
	            FAQ</ulink>. If this still doesn&apos;t solve the problem, 
	            try the ArgoUML users&apos; mailing list.
            </para>
            <para lang="de">
	            Wenn das Herunterladen vollständig abbricht und Sie keine lokale 
	            Unterstützung haben, versuchen Sie es auf der Webseite 
	            <ulink url="http://argouml.tigris.org/faqs/users.html">
	            FAQ</ulink>. Wenn nicht schon Ihr Problem löst, versuchen Sie es 
	            über die ArgoUML Mailingliste für Anwender. 
			</para>
			<para lang="es">
			  Si te quedas completamente atascado y no tienes asistencia 
			  local, intenta el sitio web, particularmente el 
			  <ulink url="http://argouml.tigris.org/faqs/users.html"> FAQ</ulink>. 
			  Si esto aún no resuelve el problema, intentalo en la lista de correo
			  de usuarios de ArgoUML.
			</para>

            <para lang="en">
	            You can subscribe through the mailing lists section 
	            of the project web site 
	            <ulink url="http://argouml.tigris.org">
	            argouml.tigris.org</ulink>, or send an empty message to 
	            <ulink url="mailto:users@argouml.org">
	            users@argouml.org</ulink> with the subject line <literal>
	            subscribe</literal>.
            </para>
            <para lang="de">
	            Sie können sich in die Mailingliste auf der Projektseite 
	            <ulink url="http://argouml.tigris.org">
	            argouml.tigris.org</ulink> registrieren, oder eine leere 
	            Nachricht an <ulink url="mailto:users@argouml.org">
	            users@argouml.org</ulink> mit dem Betreff <literal>subscribe
	            </literal> senden.
            </para>
            <para lang="es">
              Te puedes subscribir a traves de la sección de listas de
              correo del sitio web del proyecto
              <ulink url="http://argouml.tigris.org">argouml.tigris.org</ulink>, 
              o envia un mensaje vacio a 
              <ulink url="mailto:users@argouml.org"> users@argouml.org</ulink> 
              con el asunto <literal> subscribe</literal> (en ingles).
            </para>

            <para lang="en">
	            You can then send your problem to 
	            <ulink url="mailto:users@argouml.org">
	            users@argouml.org</ulink> and see how other users are able 
	            to help.
            </para>
            <para lang="de">
	            Sie können dann Ihr Problem an <ulink url="mailto:users@argouml.org">
	            users@argouml.org</ulink> senden und abwarten, ob andere 
	            Anwender Ihnen helfen können.
            </para>
            <para lang="es">
              Puedes entonces enviar tu problema a 
              <ulink url="mailto:users@argouml.org">users@argouml.org</ulink>
              (en ingles) and ver como otros usuarios son capaces de ayudar.
            </para>


            <para lang="en">
	            The users&apos; mailing list is an excellent 
	            introduction to the live activity of the project. If you 
	            want to get further involved there are additional mailing 
	            lists that cover the development of the product and issues 
	            in the current and future releases.
            </para>
            <para lang="de">
	            Die Anwender-Mailingliste ist eine exzellente Einführung in die 
	            Live-Aktivitäten des Projektes. Wenn Sie noch stärker eingebunden 
	            werden wollen, gibt es zusätzliche Mailinglisten, welche die 
	            Entwicklung des Produktes und Fragen zu aktuellen und künftigen 
	            Releases beinhalten.
            </para>
            <para lang="es">
              La lista de correo de usuarios es una excelente introducción
              a la actividad vital del poryecto. Si quieres estar mas involucrado
              hay listas de correo adicionales que cubren el desarrollo del
              producto y problemas en la versión actual y futuras.
            </para>

          </sect3>

          <sect3>

            <title>
              <phrase lang="en">Running ArgoUML</phrase>
              <phrase lang="de">ArgoUML starten</phrase>
              <phrase lang="es">Ejecutando ArgoUML</phrase>
            </title>

            <para lang="en">
	            To run ArgoUML depends on whether you use Microsoft 
	            Windows or some flavor of Unix.
            </para>
            <para lang="de">
	            Wie Sie ArgoUML starten, hängt davon ab, ob Sie Microsoft Windows 
	            oder eine Unix-Variante verwenden.
            </para>
            <para lang="es">
              Como ejecutar ArgoUML depende de si usas Microsoft Windows
              o alguna variedad de Unix.
            </para>

            <itemizedlist>

              <listitem>

                <para lang="en">
                  On Windows. If you used the installer, starting ArgoUML is a 
                  matter of clicking on its icon.
                  In case you installed the binairy executable, read on:
                  Start an MSDOS shell window by e.g. 
                  using Start/Run with <quote>command</quote> in the text window.
                  In the window change to the directory holding your ArgoUML files
                  and type <literal>java -jar argouml.jar</literal>.
                  This method has the advantage that progress and debugging
                  information is visible in the DOS window. 
                  Alternatively use the supplied batch file (.bat), 
                  or create one containing the above
                  command, with a shortcut to it on the desktop.
                  The batch file should end with a "pause" statement in case any
                  debugging information is created during a run.
                  On some systems, simply (double) clicking on the
                  <literal>argouml.jar</literal> file works.
                  On others doing so initiates a zip utility.
                  Refer to your operating system instructions or help facility
                  to determine how to configure this.
                </para>
                <para lang="de">
                  Bei Windows. Rufen Sie die MSDOS-Eingabeaufforderung auf, z.B. 
                  durch Start/Ausführen mit <quote>command</quote>. In dem 
                  Fenster wechseln Sie in das Verzeichnis, in dem sich die 
                  ArgoUML-Dateien befinden und geben Sie 
                </para>
                <para lang="de">
                  <literal>java -jar argouml</literal> 
                </para>
                <para lang="de">
                  ein. Diese Methode hat den Vorteil, 
                  dass die Fortschritts- und Debug-Informationen im DOS-Fenster 
                  angezeigt werden. Als Alternative erstellen Sie eine Batch-
                  Datei (.bat), die das oben angeführte Kommando enthält und 
                  verlinken diese mit dem Desktop. Die Batchdatei sollte mit 
                  einer <quote>pause</quote>-Anweisung enden, für den Fall, dass 
                  Debug-Informationen während der Ausführung erzeugt werden. 
                  Auf einigen Systemen funktioniert auch ein einfacher (Doppel)-
                  Klick auf die <literal>argouml.jar</literal>-Datei. Auf 
                  anderen wird damit ein Zip-Tool aufgerufen. Sehen Sie in der 
                  Beschreibung zum Betriebssystem oder in der Hilfe nach, wie 
                  dies zu konfigurieren ist.
                </para>

                <para lang="es">
                  En Windows.
                  Inicia una interfaz MSDOS por ejemplo usando
                  Inicio/Ejecutar con <quote>command</quote> en 
                  el texto texto de la ventana. 
                  En la ventana, colocate en el directorio que
                  contiene tus archivos de ArgoUML y teclea 
                  <literal>java&nbsp;-jar&nbsp;argouml.jar</literal>.
                  Este metodo tiene la ventaja de que la información de progreso
                  y depuración es visible en la ventana DOS. 
                  De forma alternativa crea un archivo de proceso 
                  por lotes (.bat) conteniendo el
                  comando anterior, con un acceso directo a el en el Escritorio.
                  El archivo bat debería terminar con una sentencia de "pause" en
                  caso de que se cree información de depuración durante la
                  ejecución.
                  En algunos sistemas, simplemente haciendo doble
                  click en el archivo <literal>argouml.jar</literal> funciona. 
                  En otros hacer esto inicia un programa de compresion de archivos.
                  Acude a las instrucciones de tu sistema operativo o busca ayuda
                  para determinar como configurar esto.
                </para>
              </listitem>

              <listitem>

                <para lang="en">
                  On Unix. Start a shell window and type
                  <literal>java -jar argouml.jar</literal>
                </para>
                <para lang="de">
                  Unter Unix. Öffnen Sie ein Shell-Fenster und geben Sie 
                </para>
                <para lang="de">
                  <literal>java -jar argouml</literal> 
                </para>
                <para lang="de">
                  ein.
                </para>
                <para lang="es">
                  En Unix.
                  Inicia una ventana de terminal y teclea
                  <literal>java&nbsp;-jar&nbsp;argouml.jar</literal>
                </para>

              </listitem>

            </itemizedlist>

          </sect3>

          <sect3>

            <title>
              <phrase lang="en">Problems Running ArgoUML</phrase>
              <phrase lang="de">Probleme beim Starten von ArgoUML</phrase>
              <phrase lang="es">Problemas Ejecutando ArgoUML</phrase>
            </title>

            <para lang="en">
              It&apos;s unusual to encounter problems if you have made a successful
              download.
              If you can&apos;t solve the problem. Try the users&apos; mailing list
              (see <xref linkend="s4.probsolving"/>).
            </para>
            <para lang="de">
              Wenn Sie ArgoUML erfolgreich heruntergeladen haben, ist es 
              ungewöhnlich, wenn Probleme auftreten.
              Wenn Sie das Problem nicht lösen können, versuchen Sie es über die 
              Anwender-Mailingliste (siehe <xref linkend="s4.probsolving"/>).
            </para>
            <para lang="es">
              Es inusual encontrar problemas si has tenido una descarga
              exitosa. 
              Si no puedes resolver el problema, prueba la lista de
              correo de usuario (mira <xref linkend="s4.probsolving" />).
            </para>

            <itemizedlist>

              <listitem>

            <para lang="en">
              Wrong JRE.
              The most common issue is not having a new enough
              Java Runtime Environment (it must be version 5 or  later).
            </para>
            <para lang="de">
              Falsche JRE.
              Ein häufiger Grund ist eine veraltete Java Runtime Umgebung (es 
              muss die Version 5 oder höher sein).
            </para>
                <para lang="es">
                  JRE equivocada. 
                  El problema mas común es no tener una 
                  versión de Java Runtime Environment suficientemente moderna
                  (debe ser 1.4 o posterior).
                </para>

              </listitem>

              <listitem>

                <para lang="en">
                  Wrong language.
                  If the product came up in a language you can&apos;t read or just
                  don&apos;t want, go to the second leftmost menu item in the
                  menu bar at the top of the screen.
                  Select the bottom most menu entry in the drop down.
                  <xref linkend="fig.prob.run.02"/> shows this in Russian.
                  Then click on the second tab from the bottom in the column of
                  tabs on the left.
                  Drop down the list as shown in 
                  <xref linkend="fig.prob.run.02"/>
                  and select a language.
                  Note that the languages are listed in themselves.
                  The language shown as being selected is German in which the
                  word for <quote>German</quote> is <quote>Deutsch</quote>.
                  You will have to exit ArgoUML and restart it for the change to
                  take effect.
                  Use the X button at the upper right.
                </para>
                <para lang="de">
                  Falsche Sprache.
                  Wenn das Produkt in einer Sprache startet, die sie nicht lesen 
                  können oder wollen, gehen Sie in das zweite Menü von links. 
                  Wählen Sie den untersten Menüeintrag aus.
                  <xref linkend="fig.prob.run.02"/> zeigt dies auf russisch.
                  Dann klicken Sie auf den Reiter <quote>Erscheinungsbild
                  </quote>.
                  Öffnen Sie die Drop-Down-Liste 
                  <xref linkend="fig.prob.run.02"/> und wählen Sie eine Sprache 
                  aus.
                  Beachten Sie, dass die Namen der Sprache in der jeweiligen 
                  Sprache angezeigt werden. Die dargestellte, ausgewählte 
                  Sprache ist Deutsch.
                  Damit die Änderungen wirksam werden, müssen Sie ArgoUML 
                  beenden und neu starten.
                  Verwenden Sie die Taste X oben rechts.
                </para>
                <para lang="es">
                  Lenguaje equivocado. 
                  Si el producto aparece en un idioma
                  que no sabes o no quieres leer, vete a el segundo item de menu
                  por la izquierda en la parte superio de la pantalla. 
                  Selecciona la entrada de menu mas baja en la lista desplegada. 
                  <xref linkend="fig.prob.run.02" /> muestra esto en Ruso. 
                  Luego haz
                  click en la segunda solapa por abajo en la columna de solapas
                  de la izquierda. 
                  Despliega la lista como se muestra en 
                  <xref linkend="fig.prob.run.02" />. 
                  y selecciona un idioma. 
                  Puedes ver que los idiomas esta listados en ellos mismos. 
                  El idioma seleccionado en la muestra es Alemán donde 
                  la palabra para <quote>Alemán</quote> es <quote>Deutsch</quote>. 
                  Tendras que salir de ArgoUML y reiniciarlo 
                  para que los cambios hagan efecto. 
                  Usa el boton X de arriba a la derecha.
                </para>

              </listitem>

            </itemizedlist>

            <figure float="1" id="fig.prob.run.01">

              <title>
                <phrase lang="en">Finding the Settings Wizard</phrase>
                <phrase lang="de">Den Einstellungs-Assistenten finden</phrase>
                <phrase lang="es">Encontrando el Asistente de Configuración</phrase>
              </title>

              <screenshot><mediaobject><imageobject>
              <imagedata align="center"
               fileref="images/tutorial/langprob01.png"
               format="PNG"/></imageobject></mediaobject></screenshot>
            </figure>

            <figure float="1" id="fig.prob.run.02">

              <title>
                <phrase lang="en">Setting Language in the Appearance Pane</phrase>
                <phrase lang="de">Die Sprache unter Erscheinungsbild einstellen</phrase>
                <phrase lang="es">Estableciendo Idioma en el Panel de Apariencia</phrase>
              </title>

              <screenshot><mediaobject><imageobject>
              <imagedata align="center"
               fileref="images/tutorial/langprob02.png"
               format="PNG"/></imageobject></mediaobject></screenshot>
            </figure>
          </sect3>

        </sect2>

        <sect2 id="tut.user.iface">

          <title>
            <phrase lang="en">The ArgoUML User Interface</phrase>
            <phrase lang="de">Die ArgoUML-Anwenderschnittstelle</phrase>
            <phrase lang="es">El Interfaz de Usuario de ArgoUML</phrase>
          </title>

          <para lang="en">
            Before beginning the Case Study, you need to become familiar with the
            user interface.
            Start by reading the introduction to the User Interface Reference.
            See <xref linkend="ch.ref.ui"/>.
            You should also read the <xref linkend="s1.ref.mouse"/>
          </para>
          <para lang="de">
            Bevor Sie mit der Fallstudie beginnen, müssen Sie sich noch mit der 
            Anwenderschnittstelle vertraut machen.
            Lesen Sie hierfür die Einleitung in der Referenz zur 
            Anwenderschnittstelle. Siehe <xref linkend="ch.ref.ui"/>.
            Sie sollten auch <xref linkend="s1.ref.mouse"/> lesen.
          </para>
          <para lang="es">
            Antes de empezar el Caso de Estudio, necesitas familiarizarte
            con el interfaz de usuario.
            Comienza leyendo la introducción a la
            Referencía de la Interfaz de Usuario.
            Mira <xref linkend="ch.ref.ui" />.
          </para>

          <para lang="en">
            As you go through this tutorial you will be told what to do, and when
            to do it but how to do it will often be left to the
            User Interface Reference.
            It is not necessary at this point to read all of the Reference, but you
            should leaf through enough of it to become familiar with how to find
            things in it.
            Every attempt will be made to direct you to the appropriate part of the
            Reference at those points in the tutorial where they apply.
          </para>
          <para lang="de">
            Wenn Sie diese Übungsanleitung durchgehen, wird Ihnen erläutert, was 
            Sie tun müssen. Wie Sie es tun müssen, steht oftmals in der Referenz 
            zur Anwenderschnittstelle.
            Zu diesem Zeitpunkt ist es nicht notwendig, dass Sie die gesamte 
            Referenz durchlesen. Aber Sie sollten tief genug eingestiegen sein, 
            damit Sie Dinge in der Referenz finden können.
            An den entsprechenden Stellen in der Übungsanleitung wird der Versuch 
            unternommen, Sie direkt zu den entsprechenden Referenz-Abschnitten zu 
            führen.
          </para>
          <para lang="es">
            Mientras pasas a traves de este tutorial se te dira que hacer,
            y cuando hacerlo pero como hacerlo a menudo será dejado a la
            Referencia de la Interfaz de Usuario. 
            No es necesario en este punto
            leerse toda la Referencia, pero deberías echarle un vistazo hasta
            familiarizarte con como encontrar cosas en ella. 
            Todo intento será
            hecho para dirigirte a la parte apropiada de la Referencia en donde
            se aplican esos puntos en el tutorial.
          </para>


          <para lang="en">
            <xref linkend="fig.tut.startup"/>, shows the main ArgoUML window as it
            appears when ArgoUML is first entered.
          </para>
          <para lang="de">
            <xref linkend="fig.tut.startup"/>, zeigt das ArgoUML-Fenster, wie es 
            beim ersen Aufruf angezeigt wird.
          </para>
          <para lang="es">
            <xref linkend="fig.tut.startup" />, muestra la ventana
            principal de ArgoUML como aparece cuando es entra por primera vez en
            ArgoUML.
          </para>


          <figure float="1" id="fig.tut.startup">

            <title>
              <phrase lang="en">Initial ArgoUML window</phrase>
              <phrase lang="de">Das erste ArgoUML-Fenster</phrase>
              <phrase lang="es">Ventana inicial de ArgoUML</phrase>
            </title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/tutorial/startup.gif"
             format="GIF"/></imageobject></mediaobject></screenshot>

          </figure>

          <para lang="en">
            Grab the vertical divider bars and move them back and forth.
            Grab the horizontal divider bar and move it up and down.
            Play around a little with the little arrows at the left or top of the
            divider bars.
            See <xref linkend="s1.ref.panes"/>.
          </para>
          <para lang="de">
            Ziehen Sie die vertikalen Fensterteiler vorwärts und rückwärts.
            Ziehen Sie die horizontalen Fensterteiler hoch und runter.
            Spielen Sie etwas mit den kleinen Pfeilen links oder oben in den 
            Fensterteilern.
            Siehe <xref linkend="s1.ref.panes"/>.
          </para>
          <para lang="es">
            Agarra la barra divisoria vertical y muevela atras y adelante.
            Agarra la barra divisoria horizontal y muevela arriba y abajo.
            Juega un poco por ahí con las pequeñas flechas a la izquierda 
            o arriba de las barras divisorias. 
            Mira <xref linkend="s1.ref.panes" />;.
          </para>
          <!-- Copied translation from argouml-es project from the
               beginning up to here. Now working from the end! -->            

          <sect3 id="tut.menu.toolbars">

            <title>
              <phrase lang="en">The Menu Bar and Toolbars</phrase>
              <phrase lang="de">Die Menü- und die Symbolleisten</phrase>
              <phrase lang="es">
                La Barra de Menú y Barras de Herramientas
              </phrase>
            </title>

            <indexterm lang="en"><primary>Menu Bar</primary></indexterm>
            <indexterm lang="de"><primary>Menüleiste</primary></indexterm>
            <indexterm lang="es"><primary>Menu Bar</primary></indexterm>

            <indexterm lang="en"><primary>Toolbars</primary></indexterm>
            <indexterm lang="de"><primary>Symbolleisten</primary></indexterm>
            <indexterm lang="es"><primary>Toolbars</primary></indexterm>

            <para lang="en">
              The menu bar and toolbars give access to all the 
              main features of ArgoUML.
              As is conventional, menu options and toolbar options that are not
              available (disabled) are grayed out and menu items that invoke a
              dialog box are followed by an ellipsis (...).
              At this time you should read <xref linkend="ch.ref.toolbar"/>
              and <xref linkend="ch.ref.menu"/>.
            </para>
            <para lang="de">
              Die Menüleiste und die Symbolleisten ermöglichen Ihnen den 
              Zugriff auf alle Features von ArgoUML.
              Menü- und Werkzeugoptionen sind per Konvention ausgeblendet, wenn 
              sie nicht verfügbar (ausgeschaltet) sind und auf Menüelemente, die 
              eine Dialogbox aufrufen, weisen drei Punkte hin (...).
              Zum jetzigen Zeitpunkt sollten Sie <xref linkend="ch.ref.toolbar"/>
              und <xref linkend="ch.ref.menu"/> lesen.
            </para>
            <para lang="es">
              La barra de menú y las barras de herramientas 
              dan acceso a todas las caracteristicas principales de ArgoUML. 
              Así las opciones de menú, 
              convencionales y de la barra de herramientas 
              que no están disponibles estan sombreadas y los items 
              de menú que invocan un cuadro de dialogo están seguidos 
              por una elipsis (...).
            </para>

            <para lang="en">
              <emphasis>File</emphasis> menu.
              <indexterm><primary>File Menu</primary></indexterm>
              The standard file menu entries present no surprises and we
              will just use them when needed without first showing how they
              work.
              A number of other actions are available that are peculiar
              to ArgoUML and we will go over them here.
            </para>
            <para lang="de">
              Menü: <emphasis>Datei</emphasis>.
              <indexterm><primary>Menü: Datei</primary></indexterm>
              Die Elemente des Standard-Datei-Menü&apos;s enthalten keine 
              Überraschungen. Wenn sie benötigt werden, werden wir sie 
              einfach verwenden, ohne vorher zu zeigen wie sie arbeiten.
              Eine Vielzahl anderer, ArgoUML-spezifische Aktionen sind hier 
              verfügbar. Jetzt werden wir sie allerdings überspringen.
            </para>
            <para lang="es">
              <indexterm lang="es">
                <primary>File Menu</primary>
              </indexterm>

              Menú <emphasis>Archivo</emphasis>. 
              Te permite crear un nuevo proyecto, 
              guardar y abrir poryectos, 
              importar fuentes desde cualquier sitio, 
              cargar y guardar el modelo en y desde
              una base de datos, imprimir el modelo, 
              guardar los gráficos del modelo, 
              guardar la configuración del modelo y salir 
              de ArgoUML
            </para>

            <orderedlist>

              <listitem>

                    <para lang="en">
                      <emphasis>File=&gt;Revert to Saved.</emphasis>
                      This has the same effect as File=&gt;Open Project selecting the
                      current project.
                    </para>
                    <para lang="de">
                      <emphasis>Datei=&gt;Projekt speichern rückgängig machen.
                      </emphasis>
                      Dies hat den gleichen Effekt wie Datei=&gt;Projekt öffnen... 
                      und dann das aktuelle Projekt auswählen.
                    </para>

              </listitem>

              <listitem>

                    <para lang="en">
                      <emphasis>Export/Import.</emphasis>
                      Select the project line at the top of the Explorer.
                      It should say "untitledModel" unless you have
                      changed it.
                      Perform a
                      <emphasis>File=&gt;Export XMI</emphasis> action
                      using "DeleteThis" for an output name in the file
                      chooser dialog.
                      Select the "Properties" tab in the "Details Pane" and
                      change the name to something else, anything will do.
                      Perform a
                      <emphasis>File=&gt;Import XMI</emphasis> action.
                      It will ask you whether you want to save the changes
                      you have just made.
                      Click on "No" and then in the file choosed that
                      comes up select the "DeleteThis.xmi" file that you
                      just wrote out.
                      Observe that the name of the model has reverted back
                      to what you had saved.
                    </para>
                    <para lang="de">
                      <emphasis>Export/Import.</emphasis>
                      Markieren Sie die Projektzeile oben im Explorer. 
                      Wenn Sie diese nicht geändert haben, sollte sie 
                      "unbenanntes Modell" lauten.
                      Führen Sie <emphasis>Datei=&gt;Exportiere XMI</emphasis> 
                      aus und geben Sie als Dateiname "DeleteThis" im 
                      Dateiauswahl-Fenster ein.
                      Markieren Sie den Reiter "Eigenschaften" im Detail-Fenster 
                      und ändern Sie den Namen des Modelles.
                      Führen Sie die <emphasis>Datei=&gt;Import XMI</emphasis>-
                      Aktion aus. 
                      Sie wird sie fragen, ob Sie Ihre vorher gemachten 
                      Änderungen speichern möchten.
                      Klicken Sie auf "Nein" und markieren Sie dann die 
                      "DeleteThis.xmi"-Datei, die Sie gerade erzeugt haben.
                      Überprüfen Sie den Namen des importierten Modelles mit dem 
                      von Ihnen gespeicherten.
                    </para>

              </listitem>

              <listitem>

                    <para lang="en">
                      <emphasis>File=&gt;Import Sources.</emphasis>
                      We will cover this later.
                      You can&apos;t test it now unless you have some Java
                      source code of your own handy.
                    </para>
                    <para lang="de">
                      <emphasis>Datei=&gt;Dateien importieren... .</emphasis>
                      Wir werden dies später behandeln.
                      Sie können dies jetzt nicht testen, es sei denn, Sie haben 
                      Java-Quellcode zur Hand.
                    </para>

              </listitem>

              <listitem>

                    <para lang="en">
                      <emphasis>File=&gt;Export (All) Graphics.</emphasis>
                      In the Explorer Pane select one of the diagrams.
                      Either "Class Diagram 1" or "Use Case Diagram 1"
                      (assuming you haven&apos;t renamed or deleted them).
                      Perform a
                      <emphasis>File=&gt;Export Graphics</emphasis> action.
                      When the file chooser opens it defaults to the last
                      name you saved something to
                      (even from a project no longer open).
                      The file chooser allows you to select from a number
                      of formats.
                      Drop down the "Files of type" combobox and observe
                      the choices.
                      Cancel out as there is nothing useful to save.
                      Perform a
                      <emphasis>File=&gt;Export All Graphics</emphasis>
                      action.
                      Notice that this time you can&apos;t specify a file
                      name and you can&apos;t select a file format.
                      ArgoUML will allow you only to select an output
                      directory.
                      It will then create a file for each of your diagrams
                      using the diagram name for the file name and an
                      extension determined by the default graphics format.
                      Actually, although you can&apos;t select file names
                      in the browser panel, you can type one into the
                      edit box.
                      But, if you do that, nothing at all will happen.
                      You will learn more about the default graphics format
                      when we get to the <emphasis>Edit</emphasis> menu.
                    </para>
                    <para lang="de">
                      <emphasis>Datei=&gt;(Alle) Grafik(en) exportieren... .
                      </emphasis>
                      Markieren Sie im Explorer-Fenster eines der Diagramme.
                      Entweder das "Klassendiagramm 1" oder 
                      "Anwendungsfalldiagramm 1" (dabei wurde unterstellt, dass 
                      Sie diese nicht umbenannt oder gelöscht haben).
                      Führen Sie <emphasis>Datei=&gt;Grafik exportieren...
                      </emphasis> aus.
                      Wenn sich die Dateiauswahl öffnet, steht der letzte 
                      gespeicherte Name im Feld Dateiname (auch von einen 
                      Projekt, das nicht mehr geöffnet ist).
                      Die Dateiauswahl ermöglicht es Ihnen, eine Reihe von 
                      Formaten auszuwählen.
                      Öffnen Sie das Kombinationsfeld Dateityp und treffen Sie 
                      Ihre Wahl.
                      Brechen Sie ab, wenn nichts sinnvolles zum Speichern 
                      vorhanden ist.
                      Führen Sie <emphasis>Datei=&gt;Alle Grafiken 
                      exportieren...</emphasis> aus.
                      Beachten Sie, dass Sie zum jetzigen Zeitpunkt keinen 
                      Dateinamen und kein Dateiformat auswählen können. ArgoUML 
                      wird Ihnen nur die Eingabe eines Verzeichnisses erlauben.
                      ArgoUML wird dann eine Datei für jedes Ihrer Diagramme 
                      erzeugen. Der Diagrammname wird der Dateiname und die 
                      Dateierweiterung wird durch das Standard-Grafik-Format 
                      bestimmt. Obwohl Sie keine Dateinamen im Browserfenster 
                      auswählen können, können Sie einen Dateinamen in das 
                      Editierfeld eingeben.
                      Aber wenn Sie das tun, wird nichts passieren.
                      Sie werden mehr über das Standard-Grafik-Format erfahren, 
                      wenn wir zum <emphasis>Bearbeiten</emphasis>-Menü gehen.
                    </para>

              </listitem>

              <listitem>

                    <para lang="en">
                      <emphasis>File=&gt;Notation.</emphasis>
                      We are going to get a little ahead of ourselves here
                      and do a little class diagram work so you can see
                      what notation is all about.
                      In the Explorer Pane select or create a class diagram.
                      See <xref linkend="s1.ref.create.diagram.menu"/> and
                      <xref linkend="s2.ref.edit_pane_drawing_tools"/>.
                      Create a class in the diagram.
                      Go to the Detail Pane and create an attribute
                      in the class.
                      See <xref linkend="s2.ref.class_property_toolbar"/>.
                      In the Properties tab of the Detail Pane change the
                      multiplicity to "1..*".
                      Now go the the <emphasis>File Menu</emphasis>
                      and select <emphasis>Notation</emphasis>.
                      Go back and forth between UML and Java observing
                      the changes in the display in the Edit Pane.
                    </para>
                    <para lang="de">
                      <emphasis>Datei=&gt;Notation.</emphasis>
                      Wir gehen jetzt ein Stück weiter und erstellen ein kleines 
                      Klassendiagramm, so dass wir sehen können, was es mit der 
                      Notation auf sich hat.
                      Im Explorer markieren oder erzeugen Sie ein 
                      Klassendiagramm. Siehe 
                      <xref linkend="s1.ref.create.diagram.menu"/> 
                      und <xref linkend="s2.ref.edit_pane_drawing_tools"/>.
                      Erstellen Sie eine Klasse im Diagramm.
                      Gehen Sie in das Detailfenster und erstellen Sie ein 
                      Attribut in der Klasse.
                      Siehe <xref linkend="s2.ref.class_property_toolbar"/>.
                      Im Register Eigenschaften des Detailfensters ändern Sie 
                      die Kardinalität auf "1..*".
                      Jetzt gehen Sie in das <emphasis>Datei</emphasis>-Menü und 
                      wählen <emphasis>Notation</emphasis> aus. Wechseln Sie 
                      zwischen UML und Java und beobachten Sie die Änderungen 
                      im Editierfenster.
                    </para>

              </listitem>

              <listitem>

                    <para lang="en">
                      <emphasis>File=&gt;Project Properties.</emphasis>
                      In the Project Properties dialog it is possible to
                      configure the project specific settings.
                      It contains the tabs for User, Profiles, Notations and
                      Diagram Appearance.
                      For instance, to change the Notation language in the
                      Project Properties dialog, click on
                      <emphasis>File=&gt;Project Properties</emphasis> and select
                      the Notations tab.
                      Set the Notation Language to UML1.4.
                      Turn on all of the options and click Apply.
                      Then turn off all of the options and click Apply
                      observing the changes in the diagram.
                      Set the Default Shadow Width to 8 and click Apply.
                      Notice that nothing happens.
                      This is because you are not setting the Shadow Width,
                      but its default.
                      The next time you create a class in a diagram, this
                      new shadow value will apply.
                    </para>
                    <para lang="de">
                      <emphasis>Datei=&gt;Projekt-Einstellungen.</emphasis>
                      Im Dialog Projekt-Einstellungen ist es möglich, die 
                      projektspezifischen Einstellungen zu konfigurieren. Er 
                      enthält Register für den Anwender, die Profile, die 
                      Notationen und die Darstellung der Diagramme. Um zum 
                      Beispiel die Sprach-Notation im Dialog Projekt-Einstellungen 
                      zu ändern klicken Sie auf
                      <emphasis>Datei=&gt;Projekt-Einstellungen...</emphasis> und 
                      wählen Sie den Register Notationen aus.
                      Stellen Sie die Notation auf UML1.4 ein.
                      Markieren Sie alle Optionen und klicken Sie auf Übernehmen 
                      und beobachten Sie die Änderungen im Diagramm.
                      Stellen Sie die Standard-Schattenbreite auf 8 ein und 
                      klicken Sie auf Übernehmen.
                      Beachten Sie, es passiert nichts.
                      Das ist so, weil Sie nicht die Schattenbreite veränderten, 
                      sondern den Standardwert.
                      Wenn Sie beim nächsten Mal eine Klasse in einem Diagramm 
                      erstellen, wird dieser neue Schatten erscheinen.
                    </para>

              </listitem>

            </orderedlist>

            <para lang="en">
              <emphasis>Edit</emphasis> menu.
                  <indexterm><primary>Edit Menu</primary></indexterm>
                  The edit menu does not look like what you are used to
                  in other products.
                  There are no "Cut", "Copy", or "Paste" actions.
                  All of the choices are peculiar to ArgoUML so we are
              going to cover all of them in detail.
            </para>
            <para lang="de">
              Menü: <emphasis>Bearbeiten</emphasis>.
              <indexterm lang="de"><primary>Menü: Bearbeiten</primary></indexterm>
              Das Menü Bearbeiten sieht nicht so aus, wie Sie es von anderen 
              Produkten gewohnt sind.
              Es gibt keine Aktionen "Ausschneiden", "Kopieren" oder 
              "Einfügen". Alle Aktionen sind ArgoUML-spezifisch, so dass wir 
              Sie alle im Detail behandeln.
            </para>
            <para lang="es">
              <indexterm lang="es">
                <primary>Edit Menu</primary>
              </indexterm>

              Menú <emphasis>Editar</emphasis>. 
              Te permite seleccionar uno 
              o mas elementos UML en un diagrama, 
              deshacer y rehacer ediciones, 
              eliminar elementos de diagramas o el modelo completo, 
              vaciar la papelera y cambiar la configuración.
            </para>

            <orderedlist>

              <listitem>

                <para lang="en">
                  <emphasis>Edit=&gt;Select.</emphasis>
                </para>
                <para lang="de">
                  <emphasis>Bearbeiten=&gt;Markieren.</emphasis>
                </para>
                <itemizedlist>
                  <listitem>
                    <para lang="en">
                      Select a class diagram in the Explorer Pane.
                      If there is none there create one using
                      <emphasis>Create=&gt;New Class Diagram</emphasis>.
                      Create three classes using the class tool described
                      in the User Interface Reference section on
                      Class Diagram Specific Tools.
                      Double click on it and then click in the Edit Pane
                      for the class diagram in three different locations.
                    </para>
                    <para lang="de">
                      Markieren Sie ein Klassendiagramm im Explorer. Ist keines 
                      vorhanden, erstellen Sie eines mit Hilfe von 
                      <emphasis>Neues Diagramm=&gt;Klassendiagramm</emphasis>.
                      Erstellen Sie mit Hilfe des Klassenwerkzeuges drei Klassen, 
                      wie in der Referenz zur Anwenderschnittstelle unter 
                      klassendiagrammspezifische Werkzeuge beschrieben.
                      Führen Sie einen Doppelklick aus und klicken Sie dann im 
                      Editierfenster für Klassendiagramme auf die drei 
                      unterschiedlichen Klassen.
                    </para>
                  </listitem>
                  <listitem>
                    <para lang="en">
                      Undo the current mode by clicking on the "Select" tool.
                      See <xref linkend="s2.ref.edit_layout"/>.
                      This allows you to do things in the Edit Pane other
                      than creating classes.
                    </para>
                    <para lang="de">
                      Durch klicken auf das "Markieren"-Werkzeug machen Sie den 
                      aktuellen Modus rückgängig. Siehe "Durch klicken auf das 
                      "Markieren"-Werkzeug den aktuellen Modus rückgängig machen".
                      <xref linkend="s2.ref.edit_layout"/>.
                      Dies erlaubt es Ihnen auch andere Dinge, wie das Erstellen 
                      von Klassen im Editierfenster auszuführen.
                    </para>
                  </listitem>
                  <listitem>
                    <para lang="en">
                      Open everything in the Explorer Pane tree, 
                      so that all elements are visible.
                      Now activate the first menu item:
                      <emphasis>Edit=&gt;Select=&gt;All</emphasis>.
                      Obviously, this selects all elements, 
                      but only those on the current diagram - elements 
                      only present on another diagram are not selected this way.
                      This function is e.g. usefull if you have a big diagram, 
                      and need to shift everything 
                      to add some more elements 
                      at the left or top of the diagram.
                    </para>
                    <para lang="de">
                      Öffnen Sie den gesamten Explorer-Baum, so dass alle 
                      Elemente sichtbar sind. Dann aktivieren Sie den ersten 
                      Menüeintrag: <emphasis>Bearbeiten=&gt;Alles markieren
                      </emphasis>. Dies markiert natürlich alle Elemente, aber 
                      nur die Elemente des aktuellen Diagrammes. Elemente die 
                      nur in anderen Diagrammen vorhanden sind, werden auf 
                      diesem Weg nicht markiert. Diese Funktion ist z.B. 
                      hilfreich, wenn Sie ein grosses Diagramm haben und alles 
                      verschieben müssen, um einige zusätzliche Elemente auf der 
                      linken oder oberen Seite des Diagrammes einzufügen. 
                    </para>
                  </listitem>
                  <listitem>
                    <para lang="en">
                      Each of the classes in the diagram has three vertically
                      spaced sections.
                      Double click in the top section of each class and
                      enter a name for the class then hit the enter key.
                      Just name the classes "A", "B", and "C".
                      Select class A, then class B, and then class C either
                      in the Edit Pane or in the Explorer Pane.
                    </para>
                    <para lang="de">
                      Jede Klasse im Diagramm besteht aus drei vertikalen 
                      Abschnitten.
                      Führen Sie einen Doppelklick auf den obersten Abschnitt 
                      aus und geben Sie einen Namen für die Klasse ein. 
                      Anschliessend betätigen Sie die Enter-Taste.
                      Benennen Sie die Klassen jetzt mit "A", "B" und "C".
                      Markieren Sie die Klasse A, dann die Klasse B und dann die 
                      Klasse C, entweder im Editierfenster oder im Explorer.
                    </para>
                  </listitem>
                  <listitem>
                    <para lang="en">
                      Now do an
                      <emphasis>Edit=&gt;Select=&gt;Navigate Back</emphasis>.
                      Class B should now be selected.
                      Do another
                      <emphasis>Edit=&gt;Select=&gt;Navigate Back</emphasis>.
                      Class A should now be selected.
                      Finally, do an
                      <emphasis>Edit=&gt;Select=&gt;Navigate Forward</emphasis>.
                      Class B should be selected again.
                    </para>
                    <para lang="de">
                      Führen Sie den Befehl
                      <emphasis>Bearbeiten=&gt;Markieren=&gt;Zurück</emphasis> 
                      aus.
                      Jetzt sollte die Klasse B markiert sein.
                      Führen Sie erneut 
                      <emphasis>Bearbeiten=&gt;Markieren=&gt;Zurück</emphasis> 
                      aus.
                      Die Klasse A sollte jetzt markiert sein.
                      Abschliessend führen Sie den Befehl 
                      <emphasis>Bearbeiten=&gt;Markieren=&gt;Vorwärts</emphasis> 
                      aus.
                      Die Klasse B sollte erneut markiert sein. 
                    </para>
                  </listitem>
                  <listitem>
                    <para lang="en">
                      Do an
                      <emphasis>Edit=&gt;Select=&gt;Invert Selection</emphasis>.
                      Classes A and C should now be selected.
                      Do another
                      <emphasis>Edit=&gt;Select=&gt;Invert Selection</emphasis>.
                      Class B should be selected again.
                    </para>
                    <para lang="de">
                      Führen Sie jetzt den Befehl
                      <emphasis>Bearbeiten=&gt;Markieren=&gt;Umkehren</emphasis> 
                      aus.
                      Jetzt sollten die Klassen A und C markiert sein.
                      Führen Sie erneut den Befehl 
                      <emphasis>Bearbeiten=&gt;Markieren=&gt;Umkehren</emphasis> 
                      aus.
                      Die Klasse B sollte wieder markiert sein.
                    </para>
                  </listitem>
                  <listitem>
                    <para lang="en">
                      Do an
                      <emphasis>Edit=&gt;Remove From Diagram</emphasis>.
                      Notice that class B is gone from the diagram but still
                      exists in the Explorer Pane.
                    </para>
                    <para lang="de">
                      Führen Sie den Befehl
                      <emphasis>Bearbeiten=&gt;Markieren=&gt;Aus Diagramm 
                      entfernen</emphasis> aus.
                      Beachten Sie, dass die Klasse B aus dem Diagramm 
                      verschwunden ist, aber im Explorer immer noch existiert.
                    </para>
                  </listitem>
                  <listitem>
                    <para lang="en">
                      Select class B in the Explorer Pane, right click on it
                      and choose "Add to Diagram".
                      Move the cursor back onto the Edit Pane and left click on
                      some part of the diagram where you think it will fit.
                      You should be pretty much right back where you were before
                      you removed it from the diagram.
                      Do an
                      <emphasis>Edit=&gt;Delete From Model</emphasis>.
                      Now class B should be gone both from the diagram and from
                      the Explorer Pane.
                    </para>
                    <para lang="de">
                      Markieren Sie die Klasse B im Explorer, klicken Sie mit 
                      der rechten Maustaste auf die Klasse und wählen Sie 
                      "Zum Diagramm hinzufügen" aus.
                      Bewegen Sie den Cursor in das Editierfenster und klicken 
                      mit der linken Maustaste auf den Teil des Diagrammes, wo 
                      Sie glauben, dass die Klasse am Besten hinpasst.
                      Sie sollten die Klasse an die Stelle zurückbringen, von 
                      der Sie sie vorher aus dem Diagramm entfernt haben.
                      Führen Sie den Befehl
                      <emphasis>Bearbeiten=&gt;Markieren=&gt;Aus Modell 
                      entfernen</emphasis> aus.
                      Jetzt sollte die Klasse B sowohl aus dem Diagramm als 
                      auch aus dem Explorer verschwinden.
                    </para>
                  </listitem>
                </itemizedlist>
              </listitem>
              <listitem>
                <para lang="en">
                  <emphasis>Edit=&gt;Configure Perspectives</emphasis>.
                  Read <xref linkend="s1.ref.configure_perspectives"/>.
                  We aren't going to go into this at this point as it needs
                  much larger projects to be displayed than we have available
                  at this point.
                </para>
                <para lang="de">
                  <emphasis>Bearbeiten=&gt;Konfiguriere Perspektiven...
                  </emphasis>.
                  Lesen Sie <xref linkend="s1.ref.configure_perspectives"/>.
                  Wir werden dies zum jetzigen Zeitpunkt nicht vertiefen, da es 
                  sehr viel grösserer darzustellender Projekte bedarf, als wir 
                  Sie jetzt zur Verfügung haben.
                </para>
              </listitem>
              <listitem>

              <figure float="1" id="fig.tut.settings.preferences">

              	<title>
                  <phrase lang="en">Initial ArgoUML window</phrase>
                  <phrase lang="de">Das erste ArgoUML-Fenster</phrase>
                </title>

              	<screenshot>
              		<mediaobject>
              			<imageobject>
              				<imagedata align="center"
              					fileref="images/tutorial/settings-preferences.png" format="PNG" />
              			</imageobject>
              		</mediaobject>
              	</screenshot>

              </figure>

              <para lang="en">
                  <emphasis>Edit=&gt;Settings=&gt;Preferences</emphasis>.
                  Enter Help=&gt;About ArgoUML.
                  Look at the panel in the "splash" tab.
                  This is known as the Splash Panel.
                  Go to Edit=&gt;Settings=&gt;Preferences.
                  Turn off the "Show Splash Panel"
                  check button.
                  Exit from ArgoUML and restart it.
                  Note that the splash panel does not show during the load.
                </para>
                <para lang="de">
                  <emphasis>Bearbeiten=&gt;Einstellungen...=&gt;Voreinstellungen
                  </emphasis>.
                  Geben Sie Hilfe=&gt;Über ArgoUML ein.
                  Sehen Sie sich das Bild im Register Logo an.
                  Dies wird als Startfenster bezeichnet.
                  Gehen Sie in Bearbeiten=&gt;Einstellungen...=&gt;
                  Voreinstellungen.
                  Schalten Sie die Optionsschaltfelder "Startfenster anzeigen" 
                  und "Gemeinsame Klassen im Voraus laden" aus.
                  Beenden Sie ArgoUML und starten Sie es erneut.
                  Beachten Sie, dass das Startfenster währends des Hochfahrens 
                  nicht mehr erscheint.
                </para>
              </listitem>

              <listitem>
	              <para lang="en">
	                <emphasis>Edit=&gt;Settings=&gt;Environment</emphasis>.
	                Do <emphasis>File=&gt;Export Graphics</emphasis> and observe
	                the file extension that shows at the bottom of the file chooser
	                dialog in the "Files of type" combobox.
	                Go to the <emphasis>Edit=&gt;Settings=&gt;Environment</emphasis>
	                editor and pick some other value for Default graphics format.
	                Click "Apply" and then "OK".  Go back to the
	                <emphasis>File=&gt;Export Graphics</emphasis> dialog and notice
	                that the new format is now the default.
	              </para>
	              <para lang="de">
	                <emphasis>
	                	Bearbeiten=&gt;Einstellungen...=&gt;Umgebung
	                </emphasis>. Führen Sie den Befehl
	                <emphasis>Datei=&gt;Grafik exportieren...
	                </emphasis> aus und beobachten Sie die Dateierweiterung im 
	                Dialogfeld "Dateityp" des Dateiauswahl-Dialoges.
	                Gehen Sie in <emphasis>Bearbeiten=&gt;Einstellungen...=&gt;
	                Umgebung</emphasis> und wählen einen anderen Wert für das 
	                Standard-Grafik-Format aus.
	                Klicken Sie auf "Übernehmen" und dann auf "OK". Gehen Sie 
	                zurück in den <emphasis>Datei=&gt;Grafik exportieren...
	                </emphasis>-Dialog und beachten Sie, dass das neue Format 
	                jetzt der Standard ist. 
	              </para>
              </listitem>

              <listitem>
	              <para lang="en">
	                <emphasis>Edit=&gt;Settings=&gt;User</emphasis>.
	                Enter your name and email address.
	              </para>
	              <para lang="de">
	                <emphasis>Bearbeiten=&gt;Einstellungen...=&gt;Benutzer
	                </emphasis>. Geben Sie Ihren Namen und Ihre E-Mailadresse 
	                ein.
	              </para>
              </listitem>

              <listitem>
	              <para lang="en">
	                <emphasis>Edit=&gt;Settings=&gt;Appearance</emphasis>.
	                Change the "Look and Feel:" to Metal."
	                Note that the "Metal Theme:" editor becomes anabled.
	                Change the theme to "Very Large Fonts."
	                Click on "Apply" and then "OK."
	                Notice that nothing has happened.
	                Exit from ArgoUML and reopen it.
	                The display should be markedly different.
	                You can change it back or leave it that way as you prefer. 
	              </para>
	              <para lang="de">
	                <emphasis>Bearbeiten=&gt;Einstellungen...=&gt;Erscheinungsbild
	                </emphasis>.
	                Ändern Sie "Aussehen" in "Metall".
	                Beachten Sie, dass das Dialogfeld "Metall-Thema" aktiviert 
	                wird. Ändern Sie das Thema in "Sehr grosse Schrift".
	                Klicken Sie auf "Übernehmen" und dann auf "OK".
	                Beachten Sie, dass nichts passiert ist.
	                Beenden Sie ArgoUML und starten Sie es erneut.
	                Die Darstellung sollte deutlich anders aussehen.
	                Machen Sie Ihre Änderungen rückgängig. Nehmen Sie Werte, die 
	                Sie bevorzugen.
	              </para>
              </listitem>
                
              <listitem>
	              <para lang="en">
	                <emphasis>Edit=&gt;Settings=&gt;Profiles</emphasis>.
	                Look in the Explorer Pane under "Profile Configuration". 
	                The only folder by default is the UML 1.4 profile. 
	                Now go to <emphasis>Edit=&gt;Settings=&gt;Profiles</emphasis>
	                and look at the field "Default Profiles". 
	                It only contains the same UML 1.4 profile.
	                Add the Java profile to it, and press OK.
	              </para>
	              <para lang="de">
	              	<emphasis>Bearbeiten=&gt;Einstellungen=&gt;Profile</emphasis>.
	              	Sehen Sie im Explorer unter "Profil-Konfiguration" nach. Das 
	              	einzige Verzeichnis ist standardmäßig das UML 1.4-Profil. 
	              	Gehen Sie jetzt in <emphasis>Bearbeiten=&gt;Einstellungen=&gt;
	              	Profile</emphasis> und betrachten Sie das Feld 
	              	"Standardprofile". 
	              	Es enthält nur das gleiche UML 1.4-Profil.
	              	Fügen Sie das Java-Profil hinzu und drücken Sie dann OK.
	              </para>
	              <para lang="en">
	                If you now look at the Explorer Pane, nothing has changed, 
	                since you adapted the default setting, not the project setting.
	                Press <emphasis>File=&gt;New</emphasis> and
	                check out the profiles in the Explorer Pane: 
	                it now shows both the UML 1.4 profile and the Java profile.
	              </para>
	              <para lang="de">
	              	Wenn Sie jetzt im Explorer nachsehen, hat sich nichts 
	              	verändert, da Sie die Standardeinstellung verändert haben 
	              	und nicht die Projekteinstellung. Drücken Sie <emphasis>
	              	Datei=&gt;Neu</emphasis> und sehen sich die Profile im 
	              	Explorer an: er zeigt jetzt sowohl das UML 1.4-Profil als 
	              	auch das Java-Profil an.
	              </para>
	              <para lang="en">
	                Many examples in this manual presume that the Java profile is 
	                available,so you may best leave it enabled.              
	              </para>
	              <para lang="de">
	              	Viele Beispiele in diesem Handbuch gehen davon aus, dass das 
	              	Java-Profil verfügbar ist. Sie lassen es am Besten gleich 
	              	aktiviert.
	              </para>
              </listitem>
                
              <listitem>
	              <para lang="en">
	                <emphasis>Edit=&gt;Settings=&gt;Configure Shortcuts</emphasis>.
	                (To be written).
	                <!-- Does not work - see issue 5207. -->
	              </para>
	              <para lang="de">
	              	<emphasis>Bearbeiten=&gt;Einstellungen=&gt;Tastenkürzel 
	              	konfigurieren</emphasis>. (Noch zu beschreiben).
	              </para>
              </listitem>

              <listitem>
	              <para lang="en">
	                <emphasis>Edit=&gt;Settings=&gt;Notations</emphasis>.
	                We played around with this earlier with the
	                <emphasis>File=&gt;Notation</emphasis> and
	                <emphasis>File=&gt;Project Properties</emphasis> menu items.
	                Start another copy of ArgoUML resize each copy so they can
	                be seen at the same time next to each other.
	                On one of them set the Notation Language to UML
	                (the actual choice will have a version number with it).
	                On the other  set the Notation Language to Java.
	              </para>
	              <para lang="de">
	                <emphasis>Bearbeiten=&gt;Einstellungen...=&gt;Notationen
	                </emphasis>.
	                Bei den Menüelementen <emphasis>Datei=&gt;Notation</emphasis> 
	                und <emphasis>Datei=&gt;Eigenschaften...</emphasis> spielten 
	                wir bereits damit herum.
	                Starten Sie eine weitere Instanz von ArgoUML und stellen Sie 
	                die Grösse jeder Instanz so ein, dass Sie sie gleichzeitig 
	                ansehen können. In einer Instanz stellen Sie die Notation 
	                auf UML (die aktuelle Einstellung zeigt auch noch die 
	                Versionsnummer an), in der anderen stellen Sie die Notation 
	                auf Java ein.
	              </para>
	              
	              <para lang="en">
	                On both of them do the following.
	                Turn all of the check boxes on.
	                Do a <emphasis>File=&gt;New</emphasis>, create a class in
	                a class diagram.
	                Double click in the attributes section to create an attribute.
	                Double click in the operation section to create a method.
	                Observe the difference in the displays.
	              </para>
	              <para lang="de">
	                In beiden tun Sie bitte folgendes.
	                Schalten Sie alle Optionsschaltfelder ein.
	                Führen Sie den Befehl <emphasis>Datei=&gt;Neu</emphasis> aus 
	                und erstellen Sie eine Klasse in einem Klassendiagramm. 
	                Erstellen Sie ein Attribut mit Hilfe eines Doppelklicks auf 
	                den Abschnitt Attribute.
	                Erstellen Sie eine Operation mit Hilfe eines Doppelklicks auf 
	                den Abschnitt Operationen.
	                Beobachten Sie die Unterschiede in den Darstellungen.
	              </para>
               </listitem>

             <listitem>
	             <para lang="en">
	                <emphasis>Edit=&gt;Settings=&gt;Diagram Appearance</emphasis>.
	                This settings makes it possible to change the font and 
	                font-size used in the diagrams. 
	                Hence this setting does not influence the font used in the 
	                UI of ArgoUML itself.
	                The default font for ArgoUML is Dialog.
	              </para>
	              <para lang="de">
	              	<emphasis>Bearbeiten=&gt;Einstellungen=&gt;
	              	Diagramm-Darstellung</emphasis>.
	              	Diese Einstellung ermöglicht es, die in den Diagrammen 
	              	verwendete Schriftart und Schriftgröße zu ändern.
	              	Deshalb hat diese Einstellung keinen Einfluss auf die 
	              	in der Benutzeroberfläche von ArgoUML verwendete Schriftart.
	              	Die Standard-Schriftart für ArgoUML ist Dialog.  
	              </para>
              </listitem>

              <listitem>
	              <para lang="en">
	                <emphasis>Edit=&gt;Settings=&gt;Modules</emphasis>.
	                This shows the currently loaded modules.
	                We are not going to mess with it in this version of the
	                tutorial.
	              </para>
	              <para lang="de">
	                <emphasis>Bearbeiten=&gt;Einstellungen...=&gt;Module</emphasis>.
	                Dies zeigt die aktuell geladenen Module.
	                Wir wollen in dieser Version des Tutorials 
	                nicht weiter darauf eingehen.
	              </para>
              </listitem>
            </orderedlist>

            <para lang="en">
              <emphasis>View</emphasis> menu.
              <indexterm lang="en"><primary>View Menu</primary></indexterm>
              This allows you 
              to switch between diagrams, find model elements in the 
              model, zoom in a diagram, adjust the 
              grid, toggle page break display, and show an XML
              representation of the project.
              Do a <emphasis>File=&gt;New</emphasis> to get back to a
              known point.
              Create an example of each diagram type not already in the
              Explorer Pane.
              Click on the (+) sign widgets in the Explorer Pane to expand
              the tree nodes.
              Select the class diagram and give it a name.
            </para>
            <para lang="de">
              Menü: <emphasis>Ansicht</emphasis>.
              <indexterm lang="de"><primary>Menü: Ansicht</primary></indexterm>
              Dieses Menü erlaubt Ihnen zwischen Diagrammen hin- und 
              herzuschalten, Modellelemente in einem Modell aufzufinden, in ein 
              Diagramm hineinzuzoomen, das Gitter einzustellen, die Darstellung 
              des Seitenumbruches zu ändern und die XML-Darstellung des 
              Projektes anzuzeigen.
              Um zu einem definierten Punkt zurückzukehren, führen Sie 
              <emphasis>Datei=&gt;Neu...</emphasis> aus.
              Erstellen Sie je Diagramm ein Beispiel und führen Sie noch keine 
              Tätigkeit im Explorer aus.
              Um die Baumknoten zu expandieren, klicken Sie auf die (+)-Zeichen 
              im Explorer.
              Markieren Sie das entsprechende Klassendiagramm und vergeben Sie 
              einen Namen.
            </para>
            <para lang="es">
              <indexterm lang="es">
                <primary>View Menu</primary>
              </indexterm>

              Menú <emphasis>Visualizar</emphasis>. 
              Te permite cambiar entre diagramas, 
              encontras objetos en el modelo, 
              hacer zoom en un diagrama, 
              seleccionar una representación 
              de diagrama particular 
              (aunque en este momento solo hay una), 
              seleccionar una etiqueta particular en el menú 
              de detalles, ajustar la rejilla, 
              ver botones en una selección, 
              y cambiar entre notación UML y Java.
            </para>

            <orderedlist>
              <listitem>
	              <para lang="en">
	                <emphasis>View=&gt;Goto Diagram</emphasis> brings up a
	                Go To Diagram panel.
	                Select the class diagram entry in this panel and click on
	                the "Go to Selection" button.
	                There should be 0 nodes and 0 edges in the description column.
	                Click on the "Close" button.
	                In the Details Pane (Properties tab) enter the name as "Blort".
	                Create two classes <!--  (See ...)--> in the class diagram and go
	                back to <emphasis>View=&gt;Goto Diagram</emphasis>.
	                You should now see 2 nodes and 0 edges shown.
	                Click on the "Close" button again and link the classes with
	                one of the "line" items like association or generalization.
	                Go back to <emphasis>View=&gt;Goto Diagram</emphasis> and you
	                should see 2 nodes and 1 edge(s).
	                Click on the "Close" button again and create a third class.
	                Run the mouse over the icons in the toolbar until you find the
	                one with the tooltip "New Association Class."
	                Click on this tool and then connect the new class to one
	                of the others.
	                Having clicked on the "New Association Class" tool move the
	                mouse over the new class.
	                Press and hold down button&nbsp;1.
	                Move the mouse over one of the other classes and
	                release button&nbsp;1.
	                Go back to <emphasis>View=&gt;Goto Diagram</emphasis> and you
	                should see 3 nodes and 2 edge(s).
	                Even though it is a class and has a two dimensional
	                representation, it counts as an edge not a node.
	                Select other entries in this panel and click on
	                the "Go to Selection" button in the Go To Diagram panel.
	                Observe the changes in the Explorer Panel.
	              </para>
	              <para lang="de">
	                <emphasis>Ansicht=&gt;Gehezu Diagramm...</emphasis> blendet 
	                das Gehezu-Diagramm-Dialogfester auf.
	                Markieren Sie den Eintrag Klassendiagramm und klicken Sie 
	                auf die Schaltfläche "Gehe zur Auswahl".
	                In der Spalte am rechten Rand sollten 0 Knoten und 0 Kanten 
	                angezeigt werden.
	                Klicken Sie auf die Schaltfläche "Schliessen".
	                Im Fenster Details (Register Eigenschaften) geben Sie den 
	                Namen "Blort" ein.
	                Erstellen Sie im Klassendiagramm zwei Klassen (Siehe ...) 
	                und gehen Sie wieder in <emphasis>Ansicht=&gt;Gehezu 
	                Diagramm...</emphasis>.
	                Sie sollten jetzt 2 Knoten und 0 Kanten angezeigt bekommen.
	                Klicken Sie erneut auf die Schaltfläche "Schliessen" und 
	                verbinden Sie die Klassen mit einem der "Linien"-Elemente 
	                wie Assoziation oder Vererbung.
	                Gehen Sie erneut in <emphasis>Ansicht=&gt;Gehezu Diagramm...
	                </emphasis> und Sie sollten 2 Knoten und 1 Kante(n) sehen.
	                Klicken Sie erneut auf die Schaltfläche "Schliessen" und 
	                erstellen Sie eine dritte Klasse.
	                Gehen Sie mit der Maus in die Symbolleiste zur 
	                Schaltfläche "Neue Beziehungsklasse".
	                Klicken Sie dieses Symbol an und verbinden Sie die neue 
	                Klasse mit einer der anderen.
	                Nachdem Sie auf "Neue Beziehungsklasse" geklickt haben, 
	                bewegen Sie die Maus über die neue Klasse. Halten Sie die 
	                Taste&nbsp;1 gedrückt. Bewegen Sie die Maus zur anderen 
	                Klasse und lassen Sie die Taste&nbsp;1 los.
					Gehen Sie erneut in <emphasis>Ansicht=&gt;Gehezu Diagramm...
					</emphasis> und Sie sollten 3 Knoten und 2 Kante(n) sehen.
					Obwohl es eine Klasse ist und eine zweidimensionale 
					Darstellung aufweist, zählt sie als Kante und nicht als 
					Knoten.
					Markieren Sie andere Einträge in diesem Fenster und klicken 
					Sie auf die Schaltfläche "Gehe zur Auswahl" im "Gehezu 
					Diagramm"-Fenster. Beobachten Sie die Änderungen im Explorer.
	              </para>
              </listitem>
              <listitem>
	              <para lang="en">
	                <emphasis>View=&gt;Find.</emphasis>
	                At this point you should have three normal classes and an
	                association class in the Explorer Pane.
	                Name them "AA", "AB", "B", and "C".
	                Perform a <emphasis>View=&gt;Find</emphasis> operation.
	                Click on the "Find" button.
	                Notice that an "* in *" tab is created below.
	                This tab should show pretty much everything.
	                In the "In Diagram" editor change the "*" to "B*" and
	                click on the "Find Button" observing the contents of the
	                new tab with "* in B*" as a tab label.
	                You should see the three classes, the link (such as an
	                association), and the association class.
	                In the Element Type drop down box select "Interface" and click
	                on the Find button.
	                The new tab "* in B* Inte..." should have no entries in it
	                as we have defined no interfaces.
	                In the Element Type drop down box select "Class" and click
	                on the Find button.
	                The new tab "* in B* Class" should have one fewer entries
	                in it than the "* in B*" tab.
	                Switch back and forth between these two
	                observing the difference.
	                In various of these tabs select an item and click on the
	                "Go To Selection" button observing the change in the selection
	                shown in the diagram and in the Explorer Pane.
	              </para>
	              <para lang="de">
	                <emphasis>Ansicht=&gt;Suchen....</emphasis>
	                Zu diesem Zeitpunkt sollten sich drei normale Klassen und 
	                eine Beziehungsklasse im Explorer befinden.
	                Benennen Sie diese "AA", "AB", "B" und "C".
	                Führen Sie eine <emphasis>Ansicht=&gt;Suchen...</emphasis>-
	                Operation aus.
	                Klicken Sie auf die Schaltfläche "Suchen".
	                Beachten Sie, dass ein Register "* in *" erzeugt wurde.
	                Dieses Register sollte sehr viele neue Dinge zeigen.
	                Ändern Sie im "Im Diagramm"-Editor "*" in "B*" und klicken 
	                Sie auf die Schaltfläche "Suchen". Beobachten Sie den Inhalt 
	                des neuen Registers "* in B*".
	                Sie sollten drei Klassen, die Verbindung (eine Assoziation) 
	                und die Assoziationsklasse sehen.
	                Markieren Sie in der Kombinationsliste "Element-Typ" das 
	                Element "Schnittstelle" und klicken Sie auf die Schaltfläche 
	                "Suchen".
	                Im neuen Register "* in B* Inte..." sollten keine Einträge 
	                vorhanden sein, da wir keine Schnittstellen definiert haben.
	                Markieren Sie in der Kombinationsliste "Element-Typ" das 
	                Element "Klasse" und klicken Sie auf die Schaltfläche 
	                "Suchen".
	                Im neuen Register "* in B* Class" sollte ein Eintrag weniger 
	                vorhanden sein als im Register "* in B*".
	                Wechseln Sie zwischen diesen beiden Registern hin und her 
	                und beobachten Sie die Unterschiede.
	                Markieren Sie in einigen dieser Register ein Element und 
	                klicken Sie auf die Schaltfläche "Gehe zur Auswahl". 
	                Beobachten Sie die Änderungen im Diagramm und im Explorer.
	              </para>
              </listitem>
              <listitem>
	              <para lang="en">
	                <emphasis>View=&gt;Zoom.</emphasis>
	                As an exeption to a general rule the toolbar equivalent of
	                <emphasis>View=&gt;Zoom</emphasis> does not operate in the
	                same way as the corresponding menu item.
	                Highlight <emphasis>View=&gt;Zoom.</emphasis> and a submenu
	                will appear that contains "Zoom Out", "Zoom Reset" and
	                "Zoom In".
	                Click on these a few times observing the effect on the
	                diagram then click on the Zoom tool bar icon.
	                This is a magnifying glass next to a down arrow head.
	                You should see a graduated slider bar tool.
	                Grab the pointer in this tool and move it up and down
	                observing the effect on the diagram.
	              </para>
	              <para lang="de">
	                <emphasis>Ansicht=&gt;Zoom.</emphasis>
	                Als Ausnahme zur generellen Regel arbeitet das Symbolleisten-
	                Equivalent von <emphasis>Ansicht=&gt;Zoom</emphasis> nicht 
	                auf die gleiche Art und Weise wie das entsprechende 
	                Menüelement.
	                Durch das Hervorheben von <emphasis>Ansicht=&gt;Zoom
	                </emphasis> erscheint ein Untermenü, welches die Elemente 
	                "Vergrössern", "Rückgängig" und "Verkleinern" enthält.
	                Klicken Sie mehrmals auf diese Elemente und beobachten Sie 
	                die Effekte im Diagramm. Anschliessend klicken Sie auf die 
	                Zoom-Schaltfläche in der Symbolleiste.
	                Es erscheint ein Schieberegler, dessen Zeiger Sie bewegen 
	                können.
	                Verschieben Sie den Zeiger und bewegen Sie ihn nach oben und 
	                nach unten und beobachten Sie dabei den Effekt auf das 
	                Diagramm.
	              </para>
              </listitem>
              <listitem>
	              <para lang="en">
	                <emphasis>View=&gt;Adjust Grid.</emphasis>
	              </para>
	              <para lang="de">
	                <emphasis>Ansicht=&gt;Raster einstellen.</emphasis>
	              </para>
              </listitem>
              <listitem>
	              <para lang="en">
	                <emphasis>View=&gt;Adjust Snap.</emphasis>
	              </para>
	              <para lang="de">
	                <emphasis>Ansicht=&gt;Einrasten einstellen.</emphasis>
	              </para>
              </listitem>
              <listitem>
	              <para lang="en">
	                <emphasis>View=&gt;Page Breaks.</emphasis>
	              </para>
	              <para lang="de">
	                <emphasis>Ansicht=&gt;Seitenumbrüche.</emphasis>
	              </para>
              </listitem>
              <listitem>
	              <para lang="en">
	                <emphasis>View=&gt;XML Dump.</emphasis>
	              </para>
	              <para lang="de">
	                <emphasis>Ansicht=&gt;XML Dump.</emphasis>
	              </para>
 	        </listitem>
            </orderedlist>

                <para lang="en">
	                <emphasis>Create Diagram</emphasis> menu. This 
	                <indexterm lang="en">
	                	<primary>Create Diagram Menu</primary>
	                </indexterm>
	                allows you to create any one of the seven UML diagram 
	                types (class, use case, state, activity, collaboration, 
	                deployment and sequence) supported by ArgoUML.
                </para>
                <para lang="de">
	                Menü: <emphasis>Neues Diagramm</emphasis>. Das Menü 
	                <indexterm lang="de">
	                	<primary>Neues Diagramm</primary>
	                </indexterm> 
	                erlaubt es Ihnen, jedes der sieben von ArgoUML unterstützten 
	                UML-Diagrammtypen (Klasse, Anwendungsfall, Zustands-, 
	                Aktivitäts-, Kollaborations-, Verteilungs- und 
	                Sequenzdiagramm) zu erstellen.
                </para>
                <para lang="es">
                  <indexterm lang="es">
                    <primary>Create Diagram Menu</primary>
                  </indexterm>

                  Menú <emphasis>Crear Diagrama</emphasis>. 
                  Te permite crear cualquiera de los siete tipos 
                  de diagrama UML (clases, casos de uso, estados, 
                  actividad, colaboración, desarrollo y secuencia) 
                  soportados por ArgoUML.
                </para>

                <para lang="en">
	                State and activity diagrams can only be created 
	                when a class or actor is selected, even though the 
	                relevant menu entries are <emphasis>not</emphasis> 
	                grayed out if this has not been done (nothing will 
	                happen under this circumstance).
                </para>
                <para lang="de">
	                Zustands- und Aktivitätsdiagramme können nur erstellt werden, 
	                wenn eine Klasse oder ein Akteur markiert ist und die 
	                relevanten Menüeinträge <emphasis>nicht</emphasis> 
	                deaktiviert sind (unter diesen Umständen passiert nichts).
                </para>
                <para lang="es">
                  Los diagramas de estado y actividad solo pueden 
                  ser creados cuando una clase o actor es seleccionado, 
                  incluso las entradas relevantes 
                  del menú estarán sombreadas si esto 
                  no se ha realizado.
                </para>

                <para lang="en">
	                <emphasis>Arrange</emphasis> menu. This allows 
	                <indexterm><primary>Arrange Menu</primary></indexterm>
	                you to align, distribute and reorder model elements 
	                on a diagram and set the layout strategy for the 
	                diagram.
                </para>
                <para lang="de">
	                Menü <emphasis>Anordnen</emphasis>. Das Menü <emphasis>
	                Anordnen</emphasis> erlaubt es Ihnen, Modellelemente im 
	                Diagramm auszurichten, zu verteilen und neu anzuordnen und 
	                die Layout-Strategie für das Diagramm einzustellen.
                </para>
                <para lang="es">
                  <indexterm lang="es">
                    <primary>Arrange Menu</primary>
                  </indexterm>

                  Menú <emphasis>Colocar (Arreglo)</emphasis>. 
                  Te permite alinear, distribuir, 
                  reordenar y desplazar objetos 
                  en un diagrama y establecer la estrategia 
                  de distribución del diagrama.
                </para>

                <para lang="en">
	                <emphasis>Generation</emphasis> menu. This allows 
	                <indexterm><primary>Generation Menu</primary></indexterm>
	                you to generate Java code for selected classes or all 
	                classes.
                </para>
                <para lang="de">
	                Menü <emphasis>Generieren</emphasis>. Das Menü <emphasis>
	                Generieren</emphasis> erlaubt es Ihnen, Java Code für die 
	                markierten oder alle Klassen zu generieren.
                </para>
                <para lang="es">
                  <indexterm lang="es">
                    <primary>Generation Menu</primary>
                  </indexterm>

                  Menú <emphasis>Generar</emphasis>. 
                  Te permite generar código Java para 
                  las clases seleccionadas o para todas 
                  las clases.
                </para>

                <para lang="en">
	                <emphasis>Critique</emphasis> menu. This allows 
	                <indexterm lang="en"><primary>Critique Menu</primary></indexterm>
	                you to toggle the auto-critique on and off, set the 
	                level of importance of design issues and design goals 
	                and browse the critics available.
                </para>
                <para lang="de">
	                <indexterm lang="de">
	                	<primary>Menü Kritik</primary>
	                </indexterm>
	                Menü: <emphasis>Kriterien</emphasis>. Das Menü <emphasis>
	                Kriterien</emphasis> erlaubt es Ihnen, die Prüfkriterien ein- 
	                und auszuschalten, die Wichtung der Designvorgaben und 
	                Designziele festzulegen und die verfügbaren Kriterien 
	                anzusehen.
				</para>
                <para lang="es">
                  <indexterm lang="es">
                    <primary>Critique Menu</primary>
                  </indexterm>

                  Menú <emphasis>Crítica</emphasis>. 
                  Te permite cambiar el estado de la función 
                  de auto-crítica entre activado y desactivado, 
                  establecer el nivel de importancia 
                  de los problemas de diseño y metas 
                  de diseño y inspeccionar las críticas disponibles.
                </para>

                <para lang="en">
	                <emphasis>Tools</emphasis> menu. This menu is 
	                <indexterm lang="en">
	                	<primary>Tools Menu</primary>
	                </indexterm>
	                permanently grayed out unless there is some tool 
	                available in your version of ArgoUML.
                </para>
                <para lang="de">
	                Menü <emphasis>Werkzeuge</emphasis>. Diese Menü ist 
	                dauerhaft
	                <indexterm lang="de">
	                	<primary>Menü Werkzeuge</primary>
	                </indexterm>
	                deaktiviert, es sei denn es sind Werkzeuge in Ihrer Version 
	                von ArgoUML verfügbar.
	            </para>
                <para lang="es">
                  <indexterm lang="es">
                    <primary>Tools Menu</primary>
                  </indexterm>

                  Menú <emphasis>Herramientas</emphasis>. 
                  Este menú está sombreado permanentemente a menos 
                  que halla alguna herramienta disponible 
                  en tu versión de ArgoUML.
                </para>

                <para lang="en">
	                <emphasis>Help</emphasis> menu.
	                <indexterm lang="en">
	                	<primary>Help Menu</primary>
	                </indexterm>
	                This menu gives 
	                access to details of those who authored the system, and 
	                where additional help may be found.
                </para>
                <para lang="de">
	                Menü <emphasis>Hilfe</emphasis>.
	                <indexterm lang="de">
	                	<primary>Menü Hilfe</primary>
	                </indexterm>
	                Dieses Menü gibt Zugriff auf die Details, wer das System 
	                erdachte und wo zusätzliche Hilfe gefunden werden kann.
                </para>
                <para lang="es">
                  <indexterm lang="es">
                    <primary>Help Menu</primary>
                  </indexterm>

                  Menú <emphasis>Ayuda</emphasis>. 
                  Este menú te da acceso a detalles de aquellos 
                  que crearon el sistema, 
                  y donde se puede encontrar ayuda adicional.
                </para>

                <para lang="en">
	                File Toolbar.
	                <indexterm lang="en">
	                	<primary>File Toolbar</primary>
	                </indexterm>
	                This toolbar contains some of the 
	                tools from the File menu.
                </para>
                <para lang="de">
	                Symbolleiste: Datei.
	                <indexterm lang="de">
	                	<primary>Symbolleiste Datei</primary>
	                </indexterm>
	                Diese Symbolleiste enthält einige Symbole des 
	                Datei-Menü&apos;s.
                </para>
                <para lang="es">
                  <indexterm lang="es">
                    <primary>File Toolbar</primary>
                  </indexterm>

                  Barra de Herramientas de Archivo. 
                  Esta barra de herramientas contiene algunas 
                  de las herramientas del menú Archivo.
                </para>

                <para lang="en">
	                Edit Toolbar.
	                <indexterm lang="en">
	                	<primary>Edit Toolbar</primary>
	                </indexterm>
	                This toolbar contains some of the 
	                tools from the Edit menu.
                </para>
                <para lang="de">
	                Symbolleiste: Bearbeiten.
	                <indexterm lang="de">
	                	<primary>Symbolleiste: Bearbeiten</primary>
	                </indexterm>
	                Diese Symbolleiste enthält einige Symbole des Bearbeiten-
	                Menü&apos;s.
                </para>
                <para lang="es">
                  <indexterm lang="es">
                    <primary>Edit Toolbar</primary>
                  </indexterm>

                  Barra de Herramientas de Edición.
                  Esta barra de herramientas contiene algunas 
                  de las herramientas de menú Edición.
                </para>

                <para lang="en">
	                View Toolbar.
	                <indexterm lang="en">
	                	<primary>View Toolbar</primary>
	                </indexterm>
	                This toolbar contains some of the 
	                tools from the View menu.
                </para>
                <para lang="de">
	                Symbolleiste: Ansicht
	                <indexterm lang="de">
	                	<primary>Symbolleiste: Ansicht</primary>
	                </indexterm>
	                Diese Symbolleiste enthält einige Symbole des Bearbeiten-
	                Menü&apos;s.
                </para>
                <para lang="es">
                  <indexterm lang="es">
                    <primary>View Toolbar</primary>
                  </indexterm>

                  Barra de Herramientas de Visualizar. 
                  Esta barra de herramientas contiene algunas 
                  de las herramientas del menú Visualizar.
                </para>

                <para lang="en">
	                Create Diagram Toolbar.
	                <indexterm lang="en">
	                    <primary>Create Diagram Toolbar</primary>
	                </indexterm>
	                This toolbar contains 
	                some of the tools from the Create Diagram menu.
                </para>
                <para lang="de">
	                Symbolleiste: Neues Diagramm.
                  	<indexterm lang="de">
                    	<primary>Symbolleiste: Neues Diagramm</primary>
                  	</indexterm>
                  	Diese Symbolleiste enthält einige Symbole des Menü&apos;s 
                  	Neues Diagramm.
                </para>
                <para lang="es">
                  <indexterm lang="es">
                    <primary>Create Diagram Toolbar</primary>
                  </indexterm>
                  Barra de Herramientas de Crear Diagrama. 
                  Esta barra de herramientas contiene algunas 
                  de las herramientas del menú Crear Diagrama.
                </para>

          </sect3>
          <sect3>

            <title>
              <phrase lang="en">The Explorer Pane</phrase>
              <phrase lang="de">Der Explorer</phrase>
              <phrase lang="es">El Panel Explorador</phrase>
            </title>

            <para lang="en">
              At this time you should take the time to read
              <xref linkend="ch.ref.navpane"/>.
              The Explorer Pane is fundamental to almost everything that you do
              and we will be coming back to it again and again in what follows.
              In fact you will recall we have had to use it already.
            </para>
            <para lang="de">
              Jetzt sollten Sie sich die Zeit nehmen  
              <xref linkend="ch.ref.navpane"/> zu lesen.
              Der Explorer ist für alles was Sie tun fundamental. Wir werden 
              im Folgenden immer wieder auf ihn zurückkommen. 
            </para>
            <para lang="es">
              En este momento deberías tomarte tiempo para leer 
              <xref linkend="ch.ref.navpane" />. 
              No hay mucho que puedas hacer en este punto 
              con el Panel Explorador ya que no hay nada in 
              el salvo la raiz del arbol (actualmente "untitledModel") 
              y dos diagramas vacíos.
              Sin embargo, el Panel Explorador es fundamental 
              para casi todo lo que haces y volveremos atras 
              a él una y otra vez en lo sucesivo.
            </para>

            <para lang="en">
              There is an expand or contract control in front of the package
              symbol for <quote>untitledModel</quote> in the Explorer Pane and
              the package symbol for <quote>Medium</quote> in the To-Do Pane.
              Click on these controls and observe that these panes are tree widgets
              that behave pretty much as you would expect them to.
              The expand or contract control is either plus (+)/minus (-) sign
              or knob with a right or bottom pointer depending upon the look and
              feel that you have chosen for an appearance.
            </para>
            <para lang="de">
              Im Explorer gibt es vor dem Paketsymbol <quote>unbenanntes Modell
              </quote> ein Steuerelement zum Expandieren und Reduzieren und im 
              "zu bearbeiten"-Fenster vor dem Paketsymbol <quote>Mittel</quote>.
              Klicken Sie auf diese Steuerelemente und beachten Sie, dass diese 
              Fenster Baumstrukturen sind, die sich besser benehmen als Sie es 
              erwarten würden. Das Steuerelement zum Expandieren oder Reduzieren 
              ist entweder ein Plus-(+)/Minus-(-)Zeichen oder ein Knauf mit 
              einem rechten oder nach unten gerichteten Zeiger, je nach dem, 
              welches Aussehen (Look and Feel) von Ihnen eingestellt wurde.
            </para>
            <para lang="es">
              Hay un control de expansión y contracción delante 
              del símbolo del paquete para <quote>untitledModel</quote> 
              en el Panel Explorador y el símbolo de paquete 
              para <quote>Medium</quote> en el Panel 
              de Tareas Pendientes. 
              Haz click en esos controles y observa que esos paneles 
              son tres widgets que se comportan de forma muy parecida 
              a como se esperaría que hicieran. 
              El control de expansión o contracción es un signo 
              de mas (+)/menos (-) o un pomo dirigido a 
              la derecha o abajo dependiendo del look and feel 
              que has escogido como apariencia.
            </para>

            <para lang="es">
              En este punto deberías probar las varias opciones disponibles 
              para un look and feel (apariencia). 
              Usaste el editor que establece el look and feel 
              cuando estabas seleccionando el idioma, 
              sin embargo, solo lo viste en Ruso. 
              Si miras la versión Española (Inglesa en la imagen) 
              <xref linkend="s3.ref.menu_settings_appearance" /> 
              veras que la combobox de la zona mas alta es 
              para seleccionar el look and feel. 
              Cuando el panel se abre por primera vez la caja contiene 
              el valor actual.
              Selecciona otra, sal de ArgoUML y reinicialo.
            </para>

            <para lang="en">
              Select alternately Class Diagram 1 and Use Case Diagram 1  observing
              that the detail pane changes to track to the selected item in the
              Explorer.
              The detail pane is described in Chapter 12.
              It is not necessary to read Chapter 12 at this point, but it
              couldn&apos;t hurt.
            </para>
            <para lang="de">
              Markieren Sie entweder das Klassendiagramm 1 oder das 
              Anwendungsfalldiagramm 1 und beobachten Sie, wie sich der Inhalt 
              des Detailfensters sich je nach markiertem Element im Explorer 
              ändert.
              Das Detail-Fenster ist im Kapitel 12 beschrieben.
              Zum jetzigen Zeitpunkt ist es nicht erforderlich das Kapitel 12 
              zu lesen. Aber, es kann auch nichts schaden.
            </para>
            <para lang="es">
              Seleciona alternativamente Diagrama de clase 1 
              y Diagrama Use Case 1 observando que 
              el panel de detalle cambia siguiendo 
              los objetos seleccionados en el Explorador. 
              El panel de detalle está descrito en el Capitulo 12. 
              No es necesario leer el capitulo 12 en este punto, 
              pero tampoco te hara daño.
            </para>

          </sect3>

          <sect3>

            <title>
              <phrase lang="en">The Editing Pane</phrase>
              <phrase lang="de">Der Editor</phrase>
              <phrase lang="es">El Panel de Edición</phrase>
            </title>

            <para lang="en">
              At this point take some time to read
              <xref linkend="ch.ref.editpane"/>.
            </para>
            <para lang="de">
              Jetzt sollten Sie sich die Zeit nehmen, das   
              <xref linkend="ch.ref.editpane"/> zu lesen.
            </para>

            <para lang="en">
              As we go through the Editing pane changes will sometimes occur
              in the Details and the To-Do panes.
              Pay no attention to them for now.
              We will attend to them when we cover those panes.
            </para>
            <para lang="de">
              Wenn wir durch das Editierfenster gehen, werden manchmal 
              Änderungen im Detail- und im "zu bearbeiten"-Fenster auftreten.
              Beachten Sie diese im Moment nicht. 
              Wir werden sie betrachten, wenn wir diese Fenster durchgehen.
            </para>
            <para lang="en">
              Select "Class Diagram 1" in the Explorers Pane.
              The name is unimportant, if you have changed it, just select
              the new name.
              If you have deleted it, first perform a 
              Create=&gt;New Class Diagram action.
              Click on the "New Package" button in the Edit Pane tool bar.
              Click somewhere in the edit pane.
              In the Explorer notice that a package appears named
              (unnamed Package).
            </para>
            <para lang="de">
              Markieren Sie im Explorer das "Klassendiagramm 1".
              Der Name ist unwichtig. Wenn Sie ihn geändert haben, markieren Sie 
              nun den neuen Namen.
              Wenn Sie es gelöscht haben, führen Sie zuerst eine 
              Neues Diagramm=&gt;Klassendiagramm-Aktion durch.
              Klicken Sie auf die Schaltfläche "Neues Paket" in der 
              Werkzeugleiste des Editierfensters.
              Klicken Sie im Editierfenster irgendwohin.
              Beachten Sie, dass im Explorer ein Paket mit dem Namen 
              (unbenannt Paket) erscheint.
            </para>
            <para lang="en">
              Double click on the "New Class" button in Edit Pane the tool bar.
              Click first within the package and once outside of it.
              Notice that within the Explorer, two classes appear in the tree
              both named (unnamed Class) one of them attached to the model node
              and the other attached to the (unnamed Package) node.
            </para>
            <para lang="de">
              Führen Sie einen Doppelklick in der Werkzeugleiste des 
              Editierfensters auf der Schaltfläche "Neue Klasse" aus.
              Klicken Sie zuerst in das Paket und einmal ausserhalb des Paketes.
              Beachten Sie, dass im Explorer im Baum zwei Klassen beide mit dem 
              Namen (unbenannt Klasse) erscheinen. Eine direkt mit dem 
              Modellknoten und die andere mit dem Knoten (unbenannt Paket) 
              verknüpft.
            </para>
            <para lang="en">
              Click the Select button in the Edit Pane tool bar so you can do
              things in the Edit Pane without adding new Classes.
              In the Explorer select the class that is not subordinate to the
              package.
              This selects the corresponding class in the diagram.
              Grab this class and move it into the package.
              Notice that in the Explorer this class is now also subordinate
              to the package node.
            </para>
            <para lang="de">
              Klicken Sie auf die Schaltfläche Auswählen in der 
              Werkzeugleiste des Editierfensters und Sie können im Editierfenster 
              arbeiten ohne neue Klassen hinzuzufügen.
              Markieren Sie im Explorer die Klasse, die nicht dem Paket 
              zugeordnet ist.
              Dies markiert die entsprechende Klasse im Diagramm.
              Greifen Sie sich diese Klasse und verschieben Sie sie in das 
              Paket. Beachten Sie, dass diese Klasse jetzt im Explorer ebenfalls 
              dem Paketknoten untergeordnet wurde.
            </para>
            <para lang="en">
              In the diagram select the other class.
              Notice that in the Explorer, the selected node
              changes correspondingly.
              Grab this class and move it outside of the package and watch
              what happens in the Explorer.
            </para>
            <para lang="de">
              Markieren Sie im Diagramm die andere Klasse.
              Beachten Sie, dass sich im Explorer der markierte Knoten 
              entsprechend verändert.
              Greifen Sie diese Klasse und verschieben Sie sie aus dem 
              Paket und beobachten Sie, was im Explorer passiert.
            </para>

            <note lang="es">
              <itemizedlist>
                <listitem>
                	<para>Taréa de Lectura.</para>
                </listitem>

                <listitem>
                  <para>Pasa a traves de un par de cambios.</para>
                </listitem>

                <listitem>
                  <para>Añade algunas cosas.</para>
                </listitem>

                <listitem>
                  <para>Elimina algunas cosas.</para>
                </listitem>

                <listitem>
                  <para>Redimensiona cosas.</para>
                </listitem>

                <listitem>
                  <para>Selecciona cosas con arrastrar y soltar.</para>
                </listitem>

                <listitem>
                  <para>Seleciona cosas con click y ctrl click.</para>
                </listitem>

                <listitem>
                  <para>Edita nombres integrados.</para>
                </listitem>

                <listitem>
                  <para>
					Elimina "images/tutorial/editoverview.gif" del sistema de
      				archivos.                  
      			  </para>
                </listitem>
              </itemizedlist>
            </note>


          </sect3>

          <sect3>

            <title>
              <phrase lang="en">The Details Pane</phrase>
              <phrase lang="de">Der Bereich Details</phrase>
              <phrase lang="es">El Panel de Detalles</phrase>
            </title>

            <para lang="en">
              At this point take some time to read
              <xref linkend="ch.ref.detpane"/>.
            </para>
            <para lang="de">
              Jetzt sollten Sie sich die Zeit nehmen  
              <xref linkend="ch.ref.detpane"/> zu lesen.
            </para>

            <note>

              <itemizedlist>
                <listitem lang="es">
                  <para lang="es">
                    Taréa de Lectura.
                  </para>
                </listitem>

                <listitem>
	                <para lang="en">To-Do Item.
	                  Discuss differences with other tabs about locations of
	                  items selected.
	                  Hold particulars for discussion of To-Do Pane.
	                </para>
                	<para lang="de">
                		Zu bearbeiten.
                		Diskutiert die Unterschiede zu den anderen Registern je 
                		markiertem Element.
                		Beinhaltet die Einzelheiten für die Diskussion im 
                		"Zu bearbeiten"-Fenster.
                  	</para>
                  <para lang="es">
                    Item Taréas Pendientes. 
                    Trata las diferencias con otras etiquetas 
                    sobre localizaciones de items seleccionados.
                    Mantiene detalles para tratarlos en 
                    el Panel de Taréas Pendientes.
                  </para>
                </listitem>

                <listitem>
                	<para lang="en">Properties,</para>
                	<para lang="de">Eigenschaften,</para>
                  <para lang="es">Propiedades,</para>
                </listitem>

                <listitem>
                	<para lang="en">Documentation,</para>
                	<para lang="de">Dokumentation,</para>
                  <para lang="es">Documentación,</para>
                </listitem>

                <listitem>
                	<para lang="en">Presentation,</para>
                	<para lang="de">Darstellung,</para>
                  <para lang="es">Presentación,</para>
                </listitem>

                <listitem>
                	<para lang="en">Source,</para>
                	<para lang="de">Quellcode,</para>
                  <para lang="es">Fuente,</para>
                </listitem>

                <listitem>
                	<para lang="en">Constraints,</para>
                	<para lang="de">Bedingungen,</para>
                  <para lang="es">Constantes,</para>
                </listitem>

                <listitem>
                	<para lang="en">Stereotype,</para>
                	<para lang="de">Stereotypen,</para>
                  <para lang="es">Estereotipo,</para>
                </listitem>

                <listitem>
                	<para lang="en">Tagged Values,</para>
                	<para lang="de">Eigenschaftswerte,</para>
                  <para lang="es">Valores Etiquetados,</para>
                </listitem>

                <listitem>
                	<para lang="en">Checklist.</para>
                	<para lang="de">Checkliste.</para>
                  <para lang="es">
                    Lista de Validación.
                  </para>
                </listitem>

                <listitem>
	                <para lang="en">
	                  Remove "images/tutorial/detailsoverview.gif" from file 
	                  system.
	                </para>
                	<para lang="de">
                  		Entfernen Sie "images/tutorial/detailsoverview.gif" 
                  		aus dem Dateisystem.
                	</para>
                  <para lang="es">
                    Elimina "images/tutorial/detailsoverview.gif" del sistema 
                    de archivos.
                  </para>
                </listitem>

              </itemizedlist>

            </note>

          </sect3>

          <sect3>

            <title>
              <phrase lang="en">The To-Do Pane</phrase>
              <phrase lang="de">Der Bereich Zu-Bearbeiten</phrase>
              <phrase lang="es">El Panel de Taréas Pendientes</phrase>
            </title>

            <para lang="en">
              At this point take some time to read
              <xref linkend="ch.ref.todopane"/>.
            </para>
            <para lang="de">
              Jetzt sollten Sie sich die Zeit nehmen  
              <xref linkend="ch.ref.todopane"/> zu lesen.
            </para>

            <note>

              <itemizedlist>
                <listitem lang="es">
                  <para>Taréa de Lectura.</para>
                </listitem>

                <listitem>
                	<para lang="en">Describe priorities.</para>
                	<para lang="de">Beschreibt Prioritäten.</para>
                	<para lang="es">Describe prioridades.</para>
                </listitem>

                <listitem>
                	<para lang="en">Resolving items.</para>
                	<para lang="de">Löst Elemente auf.</para>
                	<para lang="es">Resolver items.</para>
                </listitem>

                <listitem>
	                <para lang="en">
	                	Relation to ToDo Item tab in details pane.
	                </para>
                	<para lang="de">
                		Beziehung zum "Zu bearbeiten"-Register im Detail-
                		Fenster.
                	</para>
                	<para lang="es">
                	  Relationa a una etiqueta de Item Pendiente 
                	  en el panel de detalles.
                	</para>
                </listitem>

                <listitem>
	                <para lang="en">
	                  Remove "images/tutorial/todooverview.gif" from file system.
	                </para>
	                <para lang="de">
	                  Entfernen Sie "images/tutorial/todooverview.gif" aus dem 
	                  Dateisystem.
	                </para>
	                <para lang="es">
	                  Elimina "images/tutorial/todooverview.gif" del sistema 
	                  de archivos.
	                </para>
	                  
                </listitem>

              </itemizedlist>

            </note>

          </sect3>

          <!-- sect3 id="s3.tut.mouse">

            <title>
              <phrase lang="en">The Mouse</phrase>
              <phrase lang="de">Die Maus</phrase>
            </title>

            <para lang="en">
	            The mouse and mouse buttons (or their equivalent with 
	            alternative tracking devices) are used in a wide variety of 
	            ways. In this section we look at the common modes of 
	            use.
            </para>

            <para lang="en">ArgoUML assumes a two button mouse. We will refer to 
            the buttons as <quote>button&nbsp;1</quote> and <quote>button 
            2</quote>. Button&nbsp;1 is the leftmost button on a 
            right-handed mouse, and sometimes referred to as the 
            <quote>select</quote> button. Button&nbsp;2 is sometimes 
            referred to as the <quote>adjust</quote> button.</para>

            <orderedlist>

              <listitem>

                <para lang="en"><emphasis>Button&nbsp;1 click</emphasis>. This action 
                is generally used to select an item for subsequent 
                operations. If the item is a model element in the explorer 
                or the editing pane it will be highlighted.</para>

                <para lang="en">In the case of the Edit Pane Toolbar, that 
                model element is selected as the next to be added to the 
                diagram (but only once&mdash;see double clicking for adding 
                multiple model elements). The adding to the diagram is 
                achieved by moving the mouse to the editing area and 
                clicking again.</para>

              </listitem>

              <listitem>

                <para lang="en"><emphasis>Button&nbsp;1 double click</emphasis>. This 
                action is identical to a single click 
                <emphasis>except</emphasis>, when it is used with the 
                edit pane toolbar. Under these circumstances the 
                selected model element will be added multiple times to the 
                drawing area, once for each further button click, until 
                the tool is again selected or another tool 
                chosen.</para>

              </listitem>

              <listitem>

                <para lang="en"><emphasis>Button&nbsp;2 click</emphasis>. When used 
                over text items in the the explorer or details panes, 
                or graphical model elements in the editing pane, this will 
                display a context dependent drop-down menu.</para>

                <para lang="en">If the item has not yet been selected it will 
                also be selected.</para>

              </listitem>

              <listitem>

                <para lang="en"><emphasis>Button&nbsp;1 motion</emphasis>. Where 
                button&nbsp;1 click has been used to pull down a menu from 
                the menu bar, button&nbsp;1 motion is used to select items 
                on that menu.</para>

                <para lang="en">Button&nbsp;1 motion also has an effect in the editing 
                pane. Over graphical model elements it will move the 
                model element to a new position. Graphical model elements that 
                are selected show handles, and these can be used for 
                re-sizing.</para>

                <para lang="en">Where the model element is some form of connector 
                between other items, button&nbsp;1 motion other than at a 
                handle will cause a new handle to be created, allowing 
                the connector to be articulated at that point. Such new 
                handles can be removed by moving them to the end of the 
                connector.</para>

              </listitem>

              <listitem>

                <para lang="en"><emphasis>Button&nbsp;2 motion</emphasis>. This is 
                used to select items in a context sensitive menu popped 
                up by use of button&nbsp;2 click.</para>

              </listitem>

            </orderedlist>

            <para lang="en">There are other more specific behaviors that will be 
            encountered under the specific cases where they are 
            used.</para>


            Here is from the User Manual in Spanish:
            <title>El Ratón</title>

            <para>El ratón y los botones del ratón (o sus equivalentes con
	    dispositivos de entrada alternativos) son usados en una amplia
	    variedad de formas. En esta sección miraremos a los modos comunes
	    de uso.</para>

            <para>ArgoUML asume el uso de un ratón de dos botones. Nos
	    referiremos a los botones como <quote>boton&nbsp;1</quote> y
	    <quote>boton&nbsp;2</quote>. El boton&nbsp;1 es el boton mas a la
	    izquierda en un ratón de diestro, y a veces llamado como el boton
            <quote>selección</quote>. El boton&nbsp;2 es llamado a veces como el
	    boton <quote>ajuste</quote>.</para>

            <orderedlist>
              <listitem>
                <para>Click <emphasis>boton&nbsp;1</emphasis>. Esta acción es
                usada generalmente para seleccionar un elemento para operaciones
		subsiguientes. Si el elemento es un objeto en el explorador o en
		el panel de edición será resaltado.</para>

                <para>En el caso de la Barra de Herramientas del Panel de
		Edición, ese objeto es seleccionado como el siguiente para ser
		añadido al diagrama (pero solo uno, haz doble click para añadir
		multiples objetos). Puedes añadir al diagrama moviendo el ratón
		al area de edición y haciendo click otra vez.</para>
              </listitem>

              <listitem>
                <para>Doble click <emphasis>boton&nbsp;1</emphasis>. Esta
		acción es identica a la de un solo click
		<emphasis>excepto</emphasis>, cuando es usado con la barra de
		herramientas del panel de edición. Bajo estas circunstancias el
		objeto seleccionado será añadido multiples veces al area de
		dibujado, una por cada click del boton, hasta que la
		herramienta es seleccionada de nuevo o se escoge otra
		herramienta.</para>
              </listitem>

              <listitem>
                <para>Click <emphasis>boton&nbsp;2</emphasis>. Cuando se usa
		sobre elementos de texto en los paneles del explorador o de
		detalles, o objetos gráficos en el panel de edición, esto
		desplegará un menú dependiente del contexto.</para>

                <para>Si el elemento no ha sido seleccionado aún será tambien
		seleccionado.</para>
              </listitem>

              <listitem>
                <para>Movimiento <emphasis>boton&nbsp;1</emphasis>. Donde el
		click con boton&nbsp;1 ha sido usado para desplegar un menú de
		la barra de menú, el movimiento con boton&nbsp;1 es usado para
		seleccionar elementos en ese menú.</para>

                <para>El movimiento con boton&nbsp;1 tambien tiene un efecto en
		el panel de edición. Sobre objetos gráficos moverá el objeto a
		una nueva posición. Los objetos gráficos son seleccionados
		muestran asas, y estos pueden ser usados para
		reescalarlo.</para>

                <para>Donde el objeto es alguna forma de conector entre otros
		elementos, otro movimiento boton&nbsp;1 que no sea en una asa
		causará que se cree una nueva asa, permitiendo al conector ser
		articulado en ese punto. Estos nuevas asas pueden ser
		eliminadas moviendolas al final del conector.</para>
              </listitem>

              <listitem>
                <para>Movimiento <emphasis>boton&nbsp;2</emphasis>. Este es
		usado para seleccionar elementos en un menú sensible al
		contexto mostrado por el uso de un click del
		boton&nbsp;2.</para>
              </listitem>
            </orderedlist>

            <para>Hay otros comportamientos mas especificos que serán
	    encontrados bajo los casos especificos donde son usados.</para>

          </sect3-->

          <sect3>

            <title>
              <phrase lang="en">Drawing Diagrams</phrase>
              <phrase lang="de">Diagramme zeichnen</phrase>
              <phrase lang="es">Dibujando Diagramas</phrase>
            </title>

            <para lang="en">
	            In general diagrams are drawn by using the edit pane 
	            toolbar to select the model element desired and clicking in the 
	            diagram at the position required.
            </para>
            <para lang="de">
	            Grundsätzlich werden Diagramme mit Hilfe der Symbolleiste des 
	            Editors gezeichnet. Das gewünschte Modellelement wird 
	            markiert und durch anklicken der gewünschten Position im 
	            Diagramm positioniert.
            </para>
            <para lang="es">
              En general los diagramas son dibujados usando la barra 
              de herramientas del panel de edición para seleccionar 
              el objeto deseado y haciendo click en el diagrama 
              en la posición requerida como se describe 
              en <xref linkend="s3.tut.mouse" />. 
              Esa sección tambien explica el uso del ratón 
              para redimensionar objetos.
            </para>

            <para lang="en">
	            Model elements that are already in the model, but not on a 
	            diagram, may be added to a diagram by selecting the 
	            model element in the explorer, using <literal>
	            Add to Diagram</literal> from the drop down menu (button&nbsp;2) 
	            over that model element, and then clicking button&nbsp;1 at the 
	            desired location on the diagram.
            </para>
            <para lang="de">
	            Modellelemente, die sich bereits im Modell, aber nicht in einem 
	            Diagramm befinden, können dem Diagramm hinzugefügt werden, indem 
	            man das Modellelement im Explorer markiert, aus dem Drop-Down-
	            Menü (Taste&nbsp;2) <literal>Zum Diagramm hinzufügen</literal> 
	            auswählt und dann mit der Taste&nbsp;1 auf die gewünschte 
	            Position im Diagramm klickt.
            </para>
            <para lang="es">
              Los objetos que ya están en el modelo, 
              pero no en un diagrama, 
              pueden ser añadidos a un diagrama seleccionando 
              el objeto en el explorador, 
              usando <literal>Agregar&nbsp;al&nbsp;Diagrama</literal> 
              del menú desplegado (boton&nbsp;2) sobre ese objeto, 
              y entonces haciendo click button&nbsp;1 
              en la posición deseada en el diagrama.
            </para>

            <para lang="en">
	            As well as UML model elements, the Edit pane toolbar 
	            provides for general drawing objects (rectangles, 
	            circles, lines, polygons, curves, text) to provide 
	            supplementary information on diagrams.
            </para>
            <para lang="de">
	            Genauso wie für UML-Modellelemente liefert die Werkzeugleiste 
	            des Editierfensters Zeichenobjekte (Rechtecke, Kreise, Linien, 
	            Polygone, Kurven, Text), um ergänzende Informationen in 
	            Diagramme einbringen zu können.
            </para>
            <para lang="es">
              Ademas de objetos UML, la barra de herramaientas 
              del panel Edición proporciona para los objetos 
              de dibujados generales 
              (rectangulos, circulos, lineas, poligonos, curvas, texto) 
              formas de proporcionar información suplementaria 
              para los diagramas.
            </para>

            <sect4>

              <title>
                <phrase lang="en">Moving Diagram Elements</phrase>
                <phrase lang="de">Diagrammelemente bewegen</phrase>
                <phrase lang="es">Moviendo Elementos de Diagrama</phrase>
              </title>

              <para lang="en">
              	There are several ways to move diagram elements.
              </para>
              <para lang="de">
              	Es gibt verschieden Wege Diagrammelemente zu bewegen.
              </para>
              <para lang="es">
                Hay muchas maneras para mover elementos de diagrama.
              </para>

              <sect5>

                <title>
                  <phrase lang="en">Using the Mouse Keys</phrase>
                  <phrase lang="de">Mit Hilfe der Maustasten</phrase>
                  <phrase lang="es">Usando Teclas del Ratón</phrase>
                </title>

                <para lang="en">
	                Select the elements you want to move. By holding 
	                down the Ctrl key while selecting you can select several
	                elements to move at the same time.
                </para>
                <para lang="de">
	                Markieren Sie die Elemente, die Sie bewegen wollen. Durch 
	                drücken der Taste Strg können Sie mehrere Elemente markieren 
	                und zeitgleich bewegen.
                </para>
                <para lang="es">
                  Seleciona los elementos que quieres mover. 
                  Presionando la tecla Ctrl mientras seleccionas 
                  puedes seleccionar muchos elementos para mover 
                  el mismo tiempo.
                </para>

                <para lang="en">
	                Now hit your arrow keys. Your elements move a 
	                little with every key stroke.
                </para>
                <para lang="de">
	                Nun betätigen Sie Ihre Pfeiltasten. Ihre Elemente bewegen 
	                sich bei jedem Tastendruck ein wenig.
                </para>
                <para lang="es">
                  Ahora presiona tus teclas de flecha. 
                  Los elementos seleccionados se mueven un poco 
                  con cada tecleo.
                </para>

                <para lang="en">
	                If you also hold down the Shift key, they move a 
	                bit faster.
                </para>
                <para lang="de">
	                Wenn Sie zusätzlich die Umschalttaste betätigen, bewegen Sie 
	                sich ein wenig weiter.
                </para>
                <para lang="es">
                  Si ademas mantienes presionada la tecla Mayusculas (Shift), 
                  se moveran un poco mas rápido.
                </para>

              </sect5>

              <sect5>

                <title>
                  <phrase lang="en">Using the Edit Pane Toolbar</phrase>
                  <phrase lang="de">Mit Hilfe der Symbolleiste des Editors</phrase>
                  <phrase lang="es">
                    Usando la Barra de Herramientas del Panel de Edición
                  </phrase>
                </title>
                
                <para lang="en">
	                Click on the broom button on the toolbar. Move 
	                your mouse to the diagram pane, right click and hold. 
	                Now moving your mouse will align elements.
                </para>
                <para lang="de">
	                Klicken Sie auf die Schaltfläche "Besen" in der Symbolleiste. 
	                Bewegen Sie Ihre Maus in das Diagrammfenster, klicken rechts 
	                und halten sie gedrückt. Nun wird das Bewegen der Maus die 
	                Elemente ausrichten.
                </para>
                <para lang="es">
                  Haz click en el boton escoba en la barra de herramientas. 
                  Mueve tu ratón al panel de diagrama, haz click derecho 
                  y mantenlo. 
                  Ahora mover tu ratón alineará los elementos.
                </para>

              </sect5>

            </sect4>

            <sect4>

              <title>
                <phrase lang="en">Arranging Elements</phrase>
                <phrase lang="de">Elemente anordnen</phrase>
                <phrase lang="es">Colocando Elementos</phrase>
              </title>
              
              <para lang="en">
	              The menu item <literal>Arrange</literal> allows you 
	              to align or group elements.
              </para>
              <para lang="de">
	              Das Menü <literal>Anordnen</literal> erlaubt es Ihnen, 
	              Elemente auszurichten oder zu gruppieren.
              </para>
              <para lang="es">
                El elemento de menú <literal>Colocar (Arreglo)</literal>
                te permite alinear, agrupar, o desplazar elementos.
              </para>

            </sect4>

          </sect3>

          <sect3>

            <title>
              <phrase lang="en">Working with Projects</phrase>
              <phrase lang="de">Arbeiten mit Projekten</phrase>
              <phrase lang="es">Trabajando con Proyectos</phrase>
            </title>

            <sect4>

              <title>
                <phrase lang="en">The Start-Up Window</phrase>
                <phrase lang="de">Das Startfenster</phrase>
                <phrase lang="es">La Ventana de Inicio</phrase>
              </title>

              <para lang="en">
	              <xref linkend="fig.tut.startup"/> shows the ArgoUML 
	              main window as it appears as right after start-up
              </para>
              <para lang="de">
	              <xref linkend="fig.tut.startup"/> zeigt, wie ArgoUML 
	              nach dem erstmaligen Start erscheint.
              </para>
              <para lang="es">
                <xref linkend="fig.tut.startup" /> muestra la ventana 
                principal de ArgoUML como aparece justo despues de iniciar
              </para>

              <!--figure float="1" id="fig.tut.startup">

                <title>
                  <phrase lang="en">ArgoUML Window at Start-Up</phrase>
                  <phrase lang="es">Ventana de ArgoUML al inicio</phrase>
                </title>

                <screenshot><mediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/tutorial/startup.gif"
                 format="GIF"/></imageobject></mediaobject></screenshot>
              </figure-->

              <para lang="en">
	              The main window&apos;s client area, below the menu 
	              and toolbar, is subdivided into four panes. Starting at 
	              the leftmost top pane, and working around the clock, you 
	              can see the Explorer, showing a tree view of your UML 
	              model, the Editing Pane with its toolbar, two scroll bars 
	              and gray drawing area, the Details Pane with the ToDoItem 
	              tab selected, and the To-Do Pane with a tree view of the 
	              to do items, ranked in various ways selected via the drop 
	              down list at the top of the pane.
              </para>
              <para lang="de">
	              Das Hauptfenster ist in vier Fenster unterteilt. Darüber 
	              befinden sich das Menü und die Symbolleiste. Wenn wir mit dem 
	              Fenster oben links beginnen und im Uhrzeigersinn weitergehen, 
	              können Sie den Explorer, der eine Baumansicht Ihres 
	              UML-Modelles anzeigt, den Editor mit seiner Symbolleiste, zwei 
	              Scrollleisten und einer grauen Zeichenfläche, das Detailfenster 
	              mit markiertem "zu bearbeiten"-Register und das "zu bearbeiten"
	              -Fenster mit einer Baumansicht der zu bearbeitenden Elemente, 
	              auf verschiedene Art und Weise sortiert, je nach Auswahl in 
	              der Drop-Down-Liste im oberen Bereich des Fenster.
              </para>
              <para lang="es">
                El area de cliente de la ventana principal, 
                debajo del menú y la barra de herramientas, 
                está subdividida en cuatro paneles. 
                Empezando con el panel superior mas a la izquierda, 
                y funcionando continuamente, puedes ver el Explorador, 
                mostrando una vista de arbol de tu modelo UML, 
                el Panel de Edición con su barra de herramientas, 
                dos barras de desplazamiento y un area de gris 
                de dibujado, el Panel de Detalles con la solapa 
                de Tareas Pendientes seleccionada, 
                y el Panel de Tareas Pendientes con una vista 
                de arbol de los tareas pendientes, 
                ordenadas de distintas maneras seleccionadas via 
                la lista desplegable en lo alto del panel.
              </para>

              <para lang="en">
	              Each time ArgoUML is started up without a project 
	              file as an argument, a new blank project is created. This 
	              project contains a model called <literal>
	              untitledModel</literal>. This model contains a blank 
	              Class Diagram, called <literal>class diagram 1</literal>, 
	              and a blank Use Case Diagram called <literal>
	              use case diagram 1</literal>.
              </para>
              <para lang="de">
	              Jedesmal wenn ArgoUML ohne Projektdatei als Argument gestartet 
	              wird, wird ein neues leeres Projekt erzeugt. Dieses Projekt 
	              enthält ein Modell mit dem Namen <literal>unbenanntesModell
	              </literal>. 
	              Diese Modell enthält ein leeres Klassendiagramm, <literal>
	              Klassendiagramm 1</literal> genannt und ein leeres 
	              Anwendungsfall-Diagramm, <literal>Anwendungsfalldiagramm 1
	              </literal> genannt.
              </para>
              <para lang="es">
                Cada vez que ArgoUML es iniciado sin un archivo 
                de proyecto como argumento, 
                un nuevo proyecto en blanco es creado. 
                Este proyecto contiene un modelo llamado
                <literal> untitledModel</literal>. 
                Este modelo contiene un Diagrama de Clases en blanco, 
                llamado 
                <literal>Diagrama&nbsp;de&nbsp;clase&nbsp;1</literal>, 
                y un Diagrama de Casos de Uso llamado 
                <literal>Diagrama&nbsp;use&nbsp;case&nbsp;1</literal>.
              </para>

              <para lang="en">
	              The model and both empty diagrams can be seen in 
	              the explorer, which is the main tool for you to navigate 
	              through your model.
              </para>
              <para lang="de">
	              Das Modell und die beiden leeren Diagramme können Sie im 
	              Explorer sehen, der für Sie das Hauptwerkzeug darstellt, um 
	              durch Ihr Modell zu navigieren.
              </para>
              <para lang="es">
                El modelo y los dos diagramas vacios se pueden ver 
                en el explorador, que es la herramienta principal 
                para navegar a traves de tu modelo.
              </para>

              <para lang="en">
	              Let&apos;s assume for a moment that this is the 
	              point where you want to start modeling a new purchasing 
	              system. You want to give the name 
	              <quote>purchasingmodel</quote> to your model, and you 
	              want to store it in a file called <literal>
	              FirstProject</literal>.
              </para>
              <para lang="de">
	              Lassen Sie uns für einen Moment annehmen, dass dies jetzt der 
	              Zeitpunkt ist, wo Sie mit der Modellierung eines neuen Einkaufs-
	              systems beginnen wollen. Sie wollen ihm den Namen <literal>
	              einkaufsmodell</literal> geben und Sie wollen es in einer Datei 
	              mit dem Namen <literal>ErstesProjekt</literal> speichern.
              </para>
              <para lang="es">
                Asumamos por un momento que este el el punto 
                donde quieres empezar a modelar un nuevo sistema de compras. 
                Tú quieres darle el nombre <quote>purchasingmodel</quote> 
                a tu modelo, y quieres almacenarlo en un archivo llamado 
                <literal>FirstProject</literal>.
              </para>

            </sect4>

            <sect4>

              <title>
                <phrase lang="en">Saving a Project - The File Menu</phrase>
                <phrase lang="de">Ein Projekt speichern - Das Menü: Datei</phrase>
                <phrase lang="es">Guardando un Proyecto - El Menú Archivo</phrase>
              </title>

              <para lang="en">
                For now ArgoUML; saves diagrams using an earlier
                proposed standard, <emphasis>Precision Graphics Markup 
                Language (PGML)</emphasis>.
                However it has the option to export graphical data as SVG
                for those who can make use of it.
                When ArgoUML; supports UML 2.0, it will store
                diagrams using the UML 2.0 Diagram Interchange format.
              </para>
              <para lang="de">
                Im Moment speichert ArgoUML Diagramme in einem früh 
                veröffentlichtem Standard, der <emphasis>Precision Graphics 
                Markup Language (PGML)</emphasis>.
                Für diejenigen, die davon Gebrauch machen wollen, gibt es 
                allerdings die Option, die grafischen Daten als SVG zu 
                exportieren.
                Wenn ArgoUML UML 2.0 unterstützt, werden die Diagramme im UML 
                2.0 Diagramm Austausch Format gespeichert.
              </para>
              <para lang="es">
                Por ahora ArgoUML; guarda diagramas usando un estandar 
                propuesto recientemente, 
                <emphasis>Precision Graphics Markup Language (PGML)</emphasis>. 
                Sin embargo, tiene la opción de exportar datos gráficos 
                como SVG para aquellos que quieran hacer uso de ello. 
                Cuando ArgoUML; soporte UML 2.0, 
                almacenará diagramas usando el 
                UML 2.0 Diagram Interchange format.
              </para>

              <para lang="en">
	              First, let&apos;s save the model in it&apos;s 
	              current (empty and unnamed) state. On the menu bar, click 
	              on <literal>File</literal>, then on <literal>
	              Save Project As...</literal> as shown in 
	              <xref linkend="fig.tut.saveas"/>.
              </para>
              <para lang="de">
	              Zuerst lassen Sie uns das Modell in seinem aktuellen (leeren 
	              und unbenannten) Zustand speichern. Klicken Sie in der 
	              Menüzeile auf <literal>Datei</literal>, dann auf <literal>
	              Projekt speichern  unter...</literal>. Sie auch 
	              <xref linkend="fig.tut.saveas"/>.
              </para>
              <para lang="es">
                Primero, salva el modelo en su estado 
                (vacio y sin nombre) actual. 
                En la barra de menú, haz click en <literal>Archivo</literal>, 
                luego en <literal>Guardar&nbsp;Proyecto&nbsp;como...</literal> 
                como se muestra en 
                <xref linkend="fig.tut.saveas" />.
              </para>

              <figure float="1" id="fig.tut.saveas">

                <title>
                  <phrase lang="en">
                  	Invoking <literal>Save Project As...</literal>
                  </phrase>
                  <phrase lang="de">
                  	<literal>Projekt speichern unter...</literal> aufrufen
                  </phrase>
                  <phrase lang="es">
                    Invocando <literal>Guardar&nbsp;Proyecto&nbsp;como...</literal>
                  </phrase>
                </title>

                <screenshot><mediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/tutorial/saveas.gif"
                 format="GIF"/></imageobject></mediaobject></screenshot>
              </figure>

              <para lang="en">
	              Please notice that the File menu contains the usual 
	              options for creating a new project, for opening an 
	              existing project, for saving a project under a new name, 
	              for printing the currently displayed diagram, for saving 
	              the currently displayed diagram as a file, and for 
	              program Exit.
              </para>
              <para lang="de">
	              Bitte beachten Sie, dass das Menü Datei die üblichen Optionen 
	              für das Erzeugen eines neuen Projektes, für das Öffnen eines 
	              existierenden Projektes, für das Speichern eines Projektes 
	              unter einem neuen Namen, für das Drucken des aktuell 
	              angezeigten Diagrammes, für das Speichern des aktuell 
	              angezeigten Diagrammes als Datei und für das Beenden des 
	              Programmes enthält.
              </para>
              <para lang="es">
                Por favor, date cuenta que el menu Archivo contiene 
                las opciones usuales para crear un nuevo proyecto, 
                para abrir un proyecto existente, 
                para guardar un proyector bajo un nuevo nombre, 
                para imprimir del diagrama actualmente mostrado, 
                para guardar el diagrama mostrado actualmente como archivo, 
                y para salir del programa.
              </para>

              <para lang="en">
	              Some of these menu commands can be invoked by 
	              pressing key combinations, as indicated on the drop-down 
	              menu. For instance, holding down the <quote>Ctrl</quote> 
	              key, and pressing <quote>N</quote>, will create a new 
	              project.
              </para>
              <para lang="de">
	              Einige diese Menü-Kommandos können auch mit Hilfe einer 
	              Tastenkombination, wie im Drop-Down-Menü dargestellt, ausgelöst 
	              werden. Das Festhalten der Taste <quote>Strg</quote> und das 
	              Drücken der Taste <quote>N</quote> wird zum Beispiel ein neues 
	              Projekt erzeugen.
              </para>
              <para lang="es">
                En la versión actual, ArgoUML solo puede contener 
                un proyecto activo al mismo tiempo. 
                Ademas, un poryecto solo puede contener un modelo UML. 
                Puesto que un modelo UML puede contener 
                un número ilimitado de elementos y diagramas, 
                esto no debería presentar ninguna limitación seria, 
                incluso modelando sistemas bastante grandes y complejos.
              </para>

              <para lang="en">
	              In the current version, ArgoUML can only contain 
	              one active project at a time. In addition, a project can 
	              only contain one UML model. Since an UML model can 
	              contain an unlimited number of elements and diagrams, 
	              this should not present any serious limitations, even for 
	              modeling quite large and complex systems.
              </para>
              <para lang="de">
	              In der aktuellen Version kann ArgoUML nur ein aktives Projekt 
	              gleichzeitig bearbeiten. Zusätzlich kann ein Projekt nur ein 
	              UML-Modell enthalten. Da ein UML-Modell eine unbegrenzte 
	              Anzahl von Elementen und Diagrammen beinhalten kann, sollte es 
	              keine schwerwiegenden Begrenzugen aufweisen, gerade für die 
	              Modellierung sehr grosser und komplexer Systeme. 
              </para>
              <para lang="es">
                En la versión actual, ArgoUML solo puede contener 
                un proyecto activo al mismo tiempo. 
                Ademas, un poryecto solo puede contener un modelo UML. 
                Puesto que un modelo UML puede contener 
                un número ilimitado de elementos y diagramas, 
                esto no debería presentar ninguna limitación seria, 
                incluso modelando sistemas bastante grandes y complejos.
              </para>

            </sect4>

            <sect4>

              <title>
                <phrase lang="en">The File Chooser Dialog</phrase>
                <phrase lang="de">Der Dateiauswahl-Dialog</phrase>
                <phrase lang="es">El Diálogo de Elección de Archivo</phrase>
              </title>

              <para lang="en">
	              But let&apos;s go back to saving our project. After 
	              clicking on the <literal>Save Project As...</literal> menu 
	              command, we get the file chooser dialog to enter the file 
	              name we wish to use as shown in 
	              <xref linkend="fig.tut.filechoose"/>.
	          </para>
              <para lang="de">
                Aber lassen Sie uns zum Speichern unseres Projektes zurückgehen. 
                Nachdem wir das Menü-Kommando <literal>Projekt speichern 
                unter...</literal> angeklickt haben, öffnet sich der 
                Dateiauswahl-Dialog, in dem wir den von uns gewünschten 
                Dateinamen eingeben können. Siehe auch 
              	<xref linkend="fig.tut.filechoose" />.
              </para>
              <para lang="es">
                Pero volvamos a guardar nuestro proyecto. 
                Despues de hacer click en el comando de menú 
                <literal>Guardar&nbsp;Proyecto&nbsp;como...</literal>, 
                obtenemos el dialogo de elección de archivo 
                para introducir el nomvre del 
                archivo que deseamos usar como se muestra en 
                <xref linkend="fig.tut.filechoose" />.
              </para>

              <figure float="1" id="fig.tut.filechoose">

                <title>
                  <phrase lang="en">File Chooser Dialog</phrase>
                  <phrase lang="de">Der Dateiauswahl-Dialog</phrase>
                  <phrase lang="es">Diálogo de Elección de Archivo</phrase>
                </title>

                <screenshot><mediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/tutorial/filechoose.gif"
                 format="GIF"/></imageobject></mediaobject></screenshot>
              </figure>

              <para lang="en">
	              This is a standard Java FileChooser. Let&apos;s go 
	              over it in some detail.
              </para>
              <para lang="de">
                Dies ist eine Standard-Java-Dateiauswahl. Lassen Sie uns in 
                einige Details einsteigen.
              </para>
              <para lang="es">
                Este es un FileChooser Java estandar. 
                Vayamos sobre ello con algún detalle.
              </para>

              <para lang="en">
	              The main, outstanding feature, is the scrollable 
	              folders list in the center of the dialog. By using the 
	              scroll bar on the right, you can move up and down in the 
	              list of folders contained inside the currently selected 
	              folder. If it is scrollable or not depends on the amount 
	              of files and folders shown and also how they are shown. 
	              If everything fits the window is not scrollable as seen 
	              in the picture.
              </para>
              <para lang="de">
                Die Hauptfunktion ist die scrollbare Verzeichnisliste in der 
                Mitte des Dialoges. Mit Hilfe der Scrollleiste auf der rechten 
                Seite können Sie sich in der Liste der im aktuell markierten 
                Verzeichnis befindlichen Verzeichnisse nach oben und nach unten 
                bewegen. Ob sie scrollbar oder nicht scrollbar ist, hängt von 
                Menge der angezeigten Dateien und Verzeichnisse und deren 
                Darstellung ab. Wenn alles in das Fenster passt, ist es 
                nicht scrollbar, wie im Bild dargestellt.
              </para>
              <para lang="es">
                La caracteristica principal y destacada, 
                es la lista de carpetas con barras de desplazamiento 
                en el centro del diálogo.
                Usando la barra de desplazamiento en la derecha, 
                puedes moverte arriba y abajo en la lista 
                de carpetas contenida dentro 
                de la carpeta actualmente seleccionada. 
                Si puedes desplazarte o no,
                depende de la cantidad de archivos y carpetas mostradas 
                y ademas como están mostradas. 
                Si todo ajusta, entonces la ventana no 
                es desplazable como se ve en la ilustración.
              </para>

              <para lang="en">
	              Double-clicking on one of the displayed folders 
	              navigates you into that folder, allowing you to quickly 
	              navigate down into the folders hierarchy on your hard 
	              disk.
              </para>
              <para lang="de">
                Doppelklicken auf eine der angezeigten Verzeichnisse navigiert 
                Sie in dieses Verzeichnis und erlaubt es Ihnen, schnell in der 
                Verzeichnishierarchie Ihrer Festplatte hinunterzunavigieren.
              </para>
              <para lang="es">
                Haciendo Doble Click en una de las carpetas mostradas 
                te introduce hace navegar dentro de esa carpeta, 
                permitiendote navegar rapidamante entre la jerarquia 
                de carpetas de tu disco duro.
              </para>

              <para lang="en">
	              Notice that only folder names, and no file names 
	              are displayed in the scrollable area. Indeed, the dialog 
	              is currently set up in order to show only ArgoUML project 
	              files with an extension of <literal>.zargo</literal>, as 
	              can be seen on the lower drop-down control labeled 
	              <literal>Files of Type:</literal>.
              </para>
              <para lang="de">
                 Beachten Sie, dass nur Verzeichnisnamen und keine Dateinamen 
                 im Scrollbereich angezeigt werden. Tatsächlich ist der Dialog 
                 aktuell so eingestellt, dass er nur ArgoUML-Projektdateien mit 
                 der Erweiterung <literal>.zargo</literal> anzeigt. Dies können 
                 Sie im unteren Drop-Down-Steuerelement mit dem Namen <literal>
                 Dateityp:</literal> sehen.
              </para>
              <para lang="es">
                Date cuenta que solo los nombres de carpetas, 
                y no nombres de archivo son mostrados en el area navegable. 
                De echo, el diálogo está actualmente dispuesto deacuerdo 
                para mostrar solo archivos de proyecto ArgoUML 
                con la extension <literal>.zargo</literal>, 
                como puede verse en el control de la parte baja 
                de la ventana etiquetado como 
                <literal>Archivos&nbsp;de&nbsp;Tipo:</literal>.
              </para>

              <para lang="en">
	              Also notice that the currently selected 
	              folder&apos;s name is displayed in the upper drop-down 
	              control labeled <literal>Look in:</literal>. A single 
	              click on a folder inside the scrollable area does select 
	              that folder on screen but does not select the folder for 
	              saving.
              </para>
              <para lang="de">
                 Beachten Sie auch, dass der aktuell markierte Verzeichnisname 
                 im oberen Drop-Down-Steuerlement mit der Bezeichnung <literal>
                 Speichern in:</literal> angezeigt wird. Ein einziger Klick auf 
                 ein Verzeichnis innerhalb des Scrollbereiches markiert das 
                 Verzeichnis am Bildschirm, markiert das Verzeichnis allerdings 
                 nicht zum speichern.
              </para>
              <para lang="es">
                Ten en cuenta tambien que el nombre de carpeta seleccionado 
                actualmente es mostrado en el control desplegable 
                de la parte alta de la ventana etiquetado 
                como <literal>Buscar&nbsp;en:</literal>. 
                Un unico click en una carpeta dentro 
                del area navegable selecciona la carpeta 
                en la pantalla pero no selecciona la carpeta para guardar.
              </para>

              <para lang="en">
	              At the top of the dialog, above the scrollable 
	              folder chooser area, there are a few more folder 
	              navigation tools.
              </para>
              <para lang="de">
                Im oberen Bereich des Dialoges, über dem scrollbaren Verzeichnis-
                Auswahlbereich, gibt es einige weitere Verzeichnis-Navigations-
                Werkzeuge.
              </para>
              <para lang="es">
                En la parte superior del diálogo, sobre el area navegable
                de selección de carpetás, hay algunas herramientas mas 
                para navegar entre carpetas.
              </para>

              <itemizedlist>

                <listitem>

                  <para lang="en">
	                  <guiicon>
	                  <inlinegraphic fileref="images/tutorial/guifolderdropdown.gif"
	                   format="GIF"/></guiicon> The Folder drop-down 
	                  control. Clicking on the down-arrow displays a tree 
	                  view of the folder hierarchy, allowing you to 
	                  navigate quickly up the hierarchy, and at the same 
	                  time to quickly determine where in the hierarchy we 
	                  are currently positioned.
	              </para>
                  <para lang="de">
	                  <guiicon>
	                  	<inlinegraphic
	                  		fileref="images/tutorial/guifolderdropdown.gif"
	                  		format="GIF" />
	                  </guiicon>
	              </para>
	              <para lang="de">
	                  Das Verzeichnis-Drop-Down-Steuerelement.
	                  Klicken auf den Pfeil zeigt eine Baumansicht der 
	                  Verzeichnis-Hierarchie an, erlaubt es Ihnen schnell in der 
	                  Hierarchie nach oben und unten zu navigieren und 
	                  gleichzeitig schnell zu bestimmen, wo Sie sich aktuell in 
	                  der Hierarchie befinden. 
                  </para>
                  <para lang="es">
                    <guiicon>
                      <inlinegraphic
                        fileref="images/tutorial/guifolderdropdown.gif" 
                        format="GIF" />
                    </guiicon> 
                    El control desplegable de Carpeta. 
                    Haciendo click en la flecha hacia abajo se muestra 
                    una vista en arbol de la jerarquia de la carpeta, 
                    permitiendote navegar rapidamente en la jerarquia, 
                    y al mismo tiempo determinar rapidamente donde 
                    nos encontramos posicionados en ella.
                  </para>

                </listitem>

                <listitem>

                  <para lang="en">
	                  <guiicon>
	                  <inlinegraphic fileref="images/tutorial/guifolderupicon.gif"
	                   format="GIF"/></guiicon> The Folder-Up icon. 
	                  Clicking on this icon will bring us to the parent 
	                  folder of the current folder.
	              </para>
                  <para lang="de">
	                  <guiicon>
	                  	<inlinegraphic
	                  		fileref="images/tutorial/guifolderupicon.gif"
	                  		format="GIF" />
	                  </guiicon>
	                  </para>
	                  <para lang="de">
	                  Das Symbol: Verzeichnis-nach-oben. Klicken auf dieses 
	                  Symbol wird Sie in das übergeordnete Verzeichnis des 
	                  aktuellen Verzeichnisses bringen.
                  </para>
                  <para lang="es">
                    <guiicon>
                      <inlinegraphic 
                        fileref="images/tutorial/guifolderupicon.gif" 
                        format="GIF" />
                    </guiicon> 
                    El icono de Subir un Nivel. 
                    Haciendo click en este icono nos desplazaremos 
                    a la carpeta padre de la carpeta actual.
                  </para>

                </listitem>

                <listitem>

                  <para lang="en">
	                  <guiicon>
	                  <inlinegraphic fileref="images/tutorial/guihomefoldericon.gif"
	                   format="GIF"/></guiicon> The Home Folder icon. 
	                  Clicking on this icon will bring us to our home 
	                  directory.
                  </para>
                  <para lang="de">
	                  <guiicon>
	                  	<inlinegraphic
	                  		fileref="images/tutorial/guihomefoldericon.gif"
	                  		format="GIF" />
	                  </guiicon>
	              </para>
	              <para lang="de">
	                  Das Symbol: Home-Verzeichnis. Klicken auf dieses Symbol 
	                  wird Sie in Ihr Home-Verzeichnis bringen.
	              </para>
                  <para lang="es">
                    <guiicon> 
                      <inlinegraphic
                        fileref="images/tutorial/guihomefoldericon.gif"
                        format="GIF" />
                    </guiicon> 
                    El icono de Principal. 
                    Haciendo click en este icono nos desplazaremos 
                    a nuestro directorio home.
                  </para>

                </listitem>

                <listitem>

                  <para lang="en">
	                  <guiicon>
	                  <inlinegraphic fileref="images/tutorial/guinewfoldericon.gif"
	                   format="GIF"/></guiicon> The New Folder icon. 
	                  Clicking on this icon will create a new folder called 
	                  &quot;New Folder&quot; under the current folder. 
	                  After the folder is created selecting it an clicking 
	                  in the name allows us to select the name of our 
	                  choice.
	                  </para>
                  <para lang="de">
	                  <guiicon>
	                  	<inlinegraphic
	                  		fileref="images/tutorial/guinewfoldericon.gif"
	                  		format="GIF" />
	                  </guiicon>
	                  </para>
	                  <para lang="de">
	                  Das Symbol: Neues Verzeichnis. Klicken auf dieses Symbol 
	                  wird ein neues Verzeichnis, genannt <quote>Neues 
	                  Verzeichnis</quote> unter dem aktuellen Verzeichnis 
	                  erzeugen. Nachdem das Verzeichnis erzeugt wurde, markieren 
	                  Sie es und klicken Sie auf den Namen. Dies erlaubt es uns, 
	                  den Namen unserer Wahl zu vergeben.
                  </para>
                  <para lang="es">
                    <guiicon> 
                      <inlinegraphic
                        fileref="images/tutorial/guinewfoldericon.gif"
                        format="GIF" />
                    </guiicon> 
                    El icono Nueva Carpeta. 
                    Haciendo click en este icono crearemos 
                    una nueva carpeta llamada "Carpeta nueva" bajo 
                    la carpeta actual. 
                    Despues de que la carpeta está creada 
                    puedes seleccionarla y hacer click 
                    en su nombre para cambiarle 
                    el nombre a tu elección.
                  </para>

                </listitem>

                <listitem>

                  <para lang="en">
	                  <guiicon>
	                  <inlinegraphic fileref="images/tutorial/guifolderspresentationicon.gif"
	                   format="GIF"/></guiicon> The Folders Presentation 
	                  Icon.
                  </para>
                  <para lang="de">
	                  <guiicon>
	                  	<inlinegraphic
	                  		fileref="images/tutorial/guifolderspresentationicon.gif"
	                  		format="GIF" />
	                  </guiicon>
	              </para>
	              <para lang="de">
	                  Das Symbol: Darstellung der Verzeichnisse.
                  </para>
                  <para lang="es">
                    <guiicon> 
                      <inlinegraphic
                        fileref="images/tutorial/guifolderspresentationicon.gif"
                        format="GIF" />
                    </guiicon> 
                    El icono de Presentación de Carpetas.
                  </para>

                </listitem>

              </itemizedlist>

              <para lang="en">
	              OK, now we navigate to the directory where we want 
	              to save our ArgoUML project, fill in the <literal>
	              File name:</literal> with an appropriate name, such as 
	              <quote>FirstProject</quote> and click on the <literal>
	              Save</literal> button.
              </para>
              <para lang="de">
                 OK, jetzt navigieren wir in das Verzeichnis, in das wir unsere 
                 ArgoUML-Projektdatei speichern wollen. Füllen Sie <literal>
                 Dateiname:</literal> mit dem entsprechenden Namen aus, wie z.B. 
                 <literal>ErstesProjekt</literal> und klicken Sie auf die 
                 Schaltfläche <literal>Speichern</literal>.
	          </para>
              <para lang="es">
                De acuerdo, ahora navegamos al directorio donde queremos 
                guardar nuestro proyecto ArgoUML, rellena 
                el <literal>Nombre&nbsp;de&nbsp;Archivo:</literal> 
                con un nombre apropiado, 
                como <quote>PrimerProyecto</quote> y haz click en 
                el boton <literal>Guardar</literal>.
              </para>

              <para lang="en">
	              You have now an active project called <literal>
	              FirstProject</literal>, connected to the file <literal>
	              FirstProject.zargo</literal>.
              </para>
              <para lang="de">
                 Sie haben nun ein aktives Projekt, <literal>ErstesProjekt
                 </literal> genannt, das mit der Datei <literal>
                 ErstesProjekt.zargo</literal> verbunden ist.
			  </para>
              <para lang="es">
                Ahora tienes un poryecto activo llamado 
                <literal>PrimerProyecto</literal>, 
                conectado al archivo <literal>PrimerProyecto.zargo</literal>.
              </para>

            </sect4>

          </sect3>

        </sect2>

        <sect2>

          <title>
            <phrase lang="en">Output</phrase>
            <phrase lang="de">Ausgabe</phrase>
            <phrase lang="es">Salida</phrase>
          </title>

          <sect3 id="s3.tut.loadsave">

            <title>
              <phrase lang="en">Loading and Saving</phrase>
              <phrase lang="de">Laden und Speichern</phrase>
              <phrase lang="es">Cargando y Guardando</phrase>
            </title>

            <sect4>

              <title>
                <phrase lang="en">Saving XMI files in ArgoUML</phrase>
                <phrase lang="de">XMI-Dateien in ArgoUML speichern</phrase>
                <phrase lang="es">Guardar archivos XMI en ArgoUML</phrase>
              </title>

              <indexterm lang="en"><primary>XMI</primary></indexterm>
              <indexterm lang="de"><primary>XMI</primary></indexterm>
              <indexterm lang="es">
                <primary>XMI</primary>
              </indexterm>

              <para lang="en">
	              ArgoUML saves the diagram information in a PGML 
	              file (with extension <literal>.pgml</literal>, the model 
	              information in an XMI file (with extension <literal>
	              .xmi</literal> and information about the project in a 
	              file with extension <literal>.argo</literal>. See 
	              <xref linkend="s4.tut.pgml"/> and 
	              <xref linkend="s3.tut.xmi"/> for more about PGML and XMI 
	              respectively.
              </para>
              <para lang="de">
	              ArgoUML speichert die Diagramminformationen in einer PGML-Datei 
	              (mit der Erweiterung <literal>.pgml</literal>, die 
	              Modellinformation in einer XMI-Datei (mit der Erweiterung 
	              <literal>.xmi</literal> und die Information über das Projekt in 
	              einer Datei mit der Erweiterung <literal>.argo</literal>. Mehr 
	              über PGML und XMI siehe unter 
	              <xref linkend="s4.tut.pgml"/> und 
	              <xref linkend="s3.tut.xmi"/>.
	          </para>
              <para lang="es">
                ArgoUML guarda la información de diagrama en 
                un archivo PGML (con extensión <literal>.pgml</literal>, 
                la información del modelo en un archivo XMI 
                (con extensión <literal> .xmi</literal> y 
                la información sobre el proyecto en un archivo 
                con extensión <literal>.argo</literal>. 
                Mira <xref linkend="s4.tut.pgml" /> y 
                <xref linkend="s3.tut.xmi" /> 
                para ver mas acerca de PGML and XMI respectivamente.
              </para>

              <para lang="en">
	              All of these are then zipped to a file with 
	              extension <literal>.zargo</literal>. You can easily 
	              extract the <literal>.xmi</literal> file from the 
	              <literal>.zargo</literal> file using any old generic 
	              <application>ZIP</application> application. Give it a try 
	              and look into the magic of Argo.
              </para>
              <para lang="de">
	              All diese Dateien werden in eine Datei mit der Erweiterung 
	              <literal>.zargo</literal> gepackt. Sie können die <literal>.xmi
	              </literal>-Datei aus der <literal>.zargo</literal>-Datei mit 
	              Hilfe einer generischen <application>ZIP</application>-
	              Anwendung extrahieren. Versuchen Sie es und blicken Sie in den 
	              Zauber von Argo.
              </para>
              <para lang="es">
                Todos estos son luego comprimidos en zip en un archivo 
                con extensión <literal>.zargo</literal>. 
                Puedes extraer facilmente 
                el archivo <literal>.xmi</literal> 
                del archivo <literal>.zargo</literal> usando cualquier 
                aplicación generica <application>ZIP</application>. 
                Intentalo y mira dentro de la magia de.
              </para>

              <warning>

                <para lang="en">
	                Be aware that double clicking will launch a 
	                <literal>ZIP utility</literal>, if one is installed, 
	                and NOT Argo.
                </para>
                <para lang="de">
	                Beachten Sie, sofern ein <literal>ZIP-Dienstprogramm</literal> 
	                installiert ist, dass ein Doppelklick das <literal>
	                ZIP-Dienstprogramm</literal> starten wird und NICHT Argo.
	            </para>
                <para lang="es">
                  Seguramente hacer doble click lanzara 
                  una <literal>utilidad ZIP</literal>, si una está instalada, 
                  y NO Argo.
                </para>

              </warning>

            </sect4>

          </sect3>

          <sect3>

            <title>
              <phrase lang="en">Graphics and Printing</phrase>
              <phrase lang="de">Grafiken und Drucken</phrase>
              <phrase lang="es">Gráficos e Impresión</phrase>
            </title>

            <sect4>

              <title>
                <phrase lang="en">The Graph Editing Framework (GEF)</phrase>
                <phrase lang="de">Das Graph Editing Framework (GEF)</phrase>
                <phrase lang="es">El Graph Editing Framework (GEF)</phrase>
               </title>

              <para lang="en">
	              GEF is the software package that is the foundation 
	              of the diagrams that appear in the Editing Pane. GEF was 
	              an integral part of ArgoUML but has been separated. Like 
	              ArgoUML it is an open source project available via 
	              <ulink url="http://www.tigris.org">Tigris</ulink>.
              </para>
              <para lang="de">
	              GEF ist ein Softwarepaket, welches die Grundlage für die im 
	              Editierfenster erscheinenden Diagramme bildet. GEF war ein 
	              integraler Bestandteil von ArgoUML, der jetzt separiert wurde. 
	              Wie ArgoUML ist es ein Open-Source-Projekt und via 
	              <ulink url="http://www.tigris.org">Tigris</ulink> verfügbar.
	          </para>
              <para lang="es">
                GEF es el paquete de software que es el fundamento de 
                los diagramas que aparecen en el Panel de Edición. 
                GEF fué una parte integral de ArgoUML pero ha sido separada. 
                Al igual que ArgoUML es un proyecto de código abierto 
                disponible via 
                <ulink url="http://www.tigris.org">Tigris</ulink>.
              </para>

            </sect4>

            <sect4 id="s4.tut.pgml">

              <title>
                <phrase lang="en">Precision Graphics Markup Language (PGML)</phrase>
                <phrase lang="de">Precision Graphics Markup Language (PGML)</phrase>
                <phrase lang="es">Precision Graphics Markup Language (PGML)</phrase>
              </title>

              <para lang="en">
	              PGML is the current storage format for diagram information 
	              used in ArgoUML. In the future, PGML will be replaced by
	              the UML 2.0 Diagram Interchange format.
              </para>
              <para lang="de">
	              PGML ist das aktuelle Speicherformat für in ArgoUML verwendete 
	              Diagramminformationen. In Zukunft wird PGML durch das UML 2.0 
	              Diagramm-Austausch-Format ersetzt.
              </para>
              <para lang="es">
                PGML es el formato de almacenamiento actual para 
                la información de diagrama usado en ArgoUML. 
                En el futuro, PGML será sustituido por el formato 
                UML 2.0 Diagram Interchange.
              </para>


            </sect4>

            <sect4>

              <title>
                <phrase lang="en">Applications Which Open PGML</phrase>
                <phrase lang="de">Anwendungen, die PGML öffnen</phrase>
                <phrase lang="es">Aplicaciones Que Abren PGML</phrase>
              </title>

              <para lang="en">
	              PGML is a predecessor of SVG (see 
	              <xref linkend="s4.tut.svg"/>. It was dropped by the W3C 
	              Consortium.
	          </para>
              <para lang="de">
				PGML ist ein Vorläufer von SVG (siehe 
              	<xref linkend="s4.tut.svg"/>. Er wurde durch das W3C-Konsortium 
              	verworfen.
              </para>
              <para lang="es">
                PGML is un predecesor de SVG
                (mira <xref linkend="s4.tut.svg" />. 
                Fué abandonado por el W3C Consortium.
              </para>

              <para lang="en">
	              Currently there are no other tools that we know of 
	              working on PGML.
              </para>
              <para lang="de">
              	Aktuell kennen wir keine anderen Tools, die mit 
              	PGML arbeiten.
              </para>
              <para lang="es">
                Actualmente no hay otras herramientas que conozcamos 
                trabajando en PGML.
              </para>

            </sect4>

            <sect4>

              <title>
                <phrase lang="en">Printing Diagrams</phrase>
                <phrase lang="de">Diagramme drucken</phrase>
                <phrase lang="es">Imprimiendo Diagramas</phrase>
              </title>

              <para lang="en">
	              Select a diagram, then go to 
	              <literal>File</literal>=&gt;<literal>Export Diagrams</literal>.
	              You 
	              can generate GIF, PostScript, Encapsulated PostScript or 
	              SVG format.
              </para>
              <para lang="de">
              	Markieren Sie ein Diagramm und gehen Sie dann in 
 	            <literal>Datei</literal>=&gt;<literal>Grafik exportieren...
 	            </literal>.
 	            Sie können GIF-, PostScript-, Encapsulated PostScript- oder 
                SVG-Format generieren.
              </para>
              <para lang="es">
                Seleciona un diagrama, luego vete a 
                <literal>Archivo</literal>→<literal>Exportar&nbsp;Diagramas</literal>.
                Puedes generar formatos 
                GIF, 
                PostScript, 
                Encapsulated PostScript o 
                SVG.
              </para>

            </sect4>

            <sect4 id="s4.tut.svg">

              <title>
                <phrase lang="en">Scalable Vector Graphics (SVG)</phrase>
                <phrase lang="de">Scalable Vector Graphics (SVG)</phrase>
                <phrase lang="es">Scalable Vector Graphics (SVG)</phrase>
              </title>

              <para lang="en">
	              A World Wide Web Consortium (W3C)
	              standard vector graphics format
	              (<ulink url="http://www.w3.org/TR/SVG/">
	              http://www.w3.org/TR/SVG/</ulink>).
              </para>
              <para lang="de">
                Ein Standard-Vektor-Grafik-Format des weltweiten Web-Konsortiums 
                (W3C) (<ulink url="http://www.w3.org/TR/SVG/">
              	http://www.w3.org/TR/SVG/</ulink>).
              </para>
              <para lang="es">
                Un formato de gráficos vectoriales estandar 
                del World Wide Web Consortium (W3C) 
                (<ulink url="http://www.w3.org/TR/SVG/">
                http://www.w3.org/TR/SVG/</ulink>).
              </para>

              <para lang="en">
	              Support is built in to modern browsers,
	              but you can also get a plugin for older 
	              browsers from <ulink url="http://www.adobe.com">
	              adobe.com</ulink>.
              </para>
              <para lang="de">
              	In modernen Browsern ist die Unterstützung des Formates 
              	eingebaut, für ältere Browser können Sie aber auch ein Plugin 
              	von <ulink url="http://www.adobe.com">adobe.com</ulink>
              	erhalten.
              </para>
              <para lang="es">
                Está soportado por los navegadores modernos, 
                pero tambien puedes conseguir un plugin 
                para navegadores antiguos en 
                <ulink url="http://www.adobe.com">adobe.com</ulink>.
              </para>

            </sect4>

            <sect4>

              <title>
                <phrase lang="en">Saving Diagrams as SVG</phrase>
                <phrase lang="de">Diagramme als SVG speichern</phrase>
                <phrase lang="es">Guardando Diagramas como SVG</phrase>
              </title>

              <orderedlist>

                <listitem>

                  <para lang="en">
	                  Select <literal>.svg</literal> as the file 
	                  type.
                  </para>
                  <para lang="de">
                  	Wählen Sie <literal>.svg</literal> als Dateityp aus.
                  </para>
                  <para lang="es">
                    Seleciona <literal>.svg</literal> como el tipo 
                    de archivo.
                  </para>

                </listitem>

                <listitem>

                  <para lang="en">
	                  Type the name of the file as you like with the 
	                  <literal>.svg</literal> tag at the end. Example 
	                  <literal>myumldiagram.svg</literal>
                  </para>
                  <para lang="de">
                  	Geben Sie den gewünschten Namen der Datei mit der 
                  	<literal>.svg</literal>-Erweiterung am Ende ein. Beispiel:
	                <literal>meinumldiagramm.svg</literal>
                  </para>
                  <para lang="es">
                    Teclea el nombre del archivo que quieras con 
                    la etiqueta <literal>.svg</literal> al final. 
                    Ejemplo <literal>midiagramauml.svg</literal>
                  </para>

                </listitem>

              </orderedlist>

              <para lang="en">
	              Et viola! SVG! Give it a try and zoom around a 
	              little... They are not pretty though, so if you know 
	              anything about rendering beautiful SVG let us know.
              </para>
              <para lang="de">
              	Et viola! SVG! Probieren Sie es aus und erforschen Sie es 
              	etwas... Sie sind nicht schön genug? Wenn Sie etwas über das 
              	Rendern schöner SVG-Formate wissen, lassen Sie es uns wissen.
              </para>
              <para lang="es">
                Et viola! SVG! 
                Pruebalo y juega con el zoom un poco... 
                No son perfectos, así que si conoces algo sobre representar 
                bonitos SVG haznoslo saber.
              </para>

              <para lang="en">
	              Most modern browsers support SVG.  If yours
	              doesn&apos;t try <ulink url="http://www.mozilla.com/firefox/">
	              Firefox</ulink> or get a plugin for your 
	              current browser from 
	              <ulink url="http://www.adobe.com">
	              adobe.com</ulink>
              </para>
              <para lang="de">
              	Die meisten modernen Browser unterstützen SVG. Wenn Ihrer das 
              	nicht tut, versuchen Sie es unter 
				<ulink url="http://www.mozilla.com/firefox/">Firefox</ulink> 
				oder holen Sie sich ein Plugin für Ihren aktuellen Browser von 
				<ulink url="http://www.adobe.com">adobe.com</ulink>
	          </para>
              <para lang="es">
                La mayoría de los navegadores modernos soportan SVG. 
                Si el tuyo no lo hace, prueba
                <ulink url="http://www.mozilla.com/firefox/">Firefox</ulink> 
                o consigue un plugin para tu navegador actual en 
                <ulink url="http://www.adobe.com">adobe.com</ulink>
              </para>

              <note>

                <para lang="en">
	                You will not have scroll bars for your SVG unless 
	                it is embedded in HTML. Good luck and let us know 
	                what you find!
                </para>
                <para lang="de">
                	Sie wollen keine Scrollleisten für Ihre SVG haben, es sei 
                	denn Sie sind in HTML eingebettet. Viel Glück und lassen Sie 
                	es uns wissen, was Sie das finden!
                </para>
                <para lang="es">
                  No tendras barras de desplazamiento para tu SVG 
                  a menos que este embebido en HTML. 
                  ¡Buena suerte y haznos saber que encuentras!
                </para>

              </note>

            </sect4>

          </sect3>

          <sect3 id="s3.tut.xmi">

            <title>XMI</title>

            <indexterm><primary>XMI</primary></indexterm>
            <para lang="en">
	            ArgoUML supports XMI 1.0, 1.1, and 1.2 files which
	            contain UML 1.3 and UML 1.4 models.  For best compatibility
	            with ArgoUML, export your models using UML 1.4 and XMI 1.1
	            or 1.2.  Be sure to turn off any proprietary extensions
	            (such as Poseidon&apos;s diagram data).
            </para>
            <para lang="de">
            	ArgoUML unterstützt XMI 1.0, 1.1 und 1.2 Dateien, die UML 1.3 
            	und UML 1.4-Modelle enthalten. Um die beste Kompatibilität zu 
            	erhalten, exportieren Sie Ihre Modelle in UML 1.4 und XMI 1.1 
            	oder 1.2. Stellen Sie sicher, dass all proprietären 
            	Erweiterungen abgeschaltet sind (wie z.B. Poseidon&apos;s 
            	Diagrammdaten).
            </para>
            <para lang="es">
              ArgoUML soporta archivos XMI 1.0, 1.1, y 1.2 
              que contengan modelos UML 1.3 y UML 1.4. 
              Para una mejor compatibilidad con ArgoUML, 
              exporta tus modelos usando UML 1.4 y XMI 1.1 o 1.2.
              Asegurate de desactivar cualquier extensión propietaria 
              (tal como datos de diagrama de Poseidon).
            </para>

            <para lang="en">
	            With UML versions earlier than UML 2.0, it isn't
	            possible to save diagram information, so no diagrams
	            will be transferred.
            </para>
            <para lang="de">
            	Mit UML-Versionen vor UML 2.0 ist es nicht möglich Diagramm-
            	Informationen zu speichern, sodass keine Diagramme transferriert 
            	werden.
            </para>
            <para lang="es">
              Con versiones UML anteriores a UML 2.0, no es posible salvar 
              información de diagrama, 
              asi que no serán transferidos diagramas.
            </para>

            <para lang="en">
	            There is also a tool that converts XMI to HTML. For 
	            more information, see 
	            <ulink url="http://www.objectsbydesign.com/projects/xmi_to_html_2.html">
	            http://www.objectsbydesign.com/projects/xmi_to_html_2.html</ulink>.
            </para>
            <para lang="de">
            	Es gibt auch ein Werkzeug, das XMI nach HTML konvertiert. Für  
            	mehr Informationen , siehe
            	<ulink url="http://www.objectsbydesign.com/projects/xmi_to_html_2.html">
            	http://www.objectsbydesign.com/projects/xmi_to_html_2.html</ulink>.
            </para>
            <para lang="es">
              Existe tambien una herramienta que convierte XMI a HTML. 
              Para mas información, mira 
              <ulink 
                url="http://www.objectsbydesign.com/projects/xmi_to_html_2.html">
              http://www.objectsbydesign.com/projects/xmi_to_html_2.html</ulink>.
            </para>

            <sect4>

              <title>
              	<phrase lang="en">Using XMI from Rational Rose</phrase>
              	<phrase lang="de">XMI von Rational Rose benutzen</phrase>
              	<phrase lang="es">Usando XMI de Rational Rose</phrase>
              </title>

              <para>...</para>

            </sect4>

            <sect4>

              <title>
              	<phrase lang="en">Using Models Created by Poseidon</phrase>
              	<phrase lang="de">Von Poseidon erzeugte Modelle benutzen</phrase>
              	<phrase lang="es">Usando Models Creados por Poseidon</phrase>
              </title>

              <indexterm><primary>XMI</primary></indexterm>
              <para lang="en">
	              In the <literal>Export project to XMI</literal> dialog, but 
	              sure to clear the selection of <literal>Save with diagram 
	              data</literal>literal>.
              </para>
              <para lang="de">
              	Im <literal>Exportiere als XMI...</literal>, aber stellen Sie 
              	sicher, das <literal>Speichere mit Diagrammdaten</literal> 
              	nicht markiert ist.
              </para>
              <para lang="es">
                En el diálogo <literal>Exportar proyecto a XMI</literal>,
                asegurate de dejar en blanco la selección de 
                <literal>Guardar con datos de diagrama</literal>.
              </para>
 
            </sect4>

            <sect4>

              <title>
              	<phrase lang="en">Using Models Created by MagicDraw</phrase>
              	<phrase lang="de">Von MagicDraw erzeugte Modelle benutzen</phrase>
              	<phrase lang="es">
              	  Usando Modelos Creados por MagicDraw
              	</phrase>
              </title>

              <para>...</para>

            </sect4>
            
            <sect4>

              <title>
              	<phrase lang="en">
              		XMI Compatibility with other versions of ArgoUML
              	</phrase>
              	<phrase lang="de">
              		XMI Kompatibilität mit anderen ArgoUML-Versionen
              	</phrase>
              	<phrase lang="es">
              	  XMI Compatibilidad con otras versiones de ArgoUML
              	</phrase>
              </title>

              <para lang="en">
	              Versions of ArgoUML prior to 0.19.7 supported
	              UML 1.3/XMI 1.0.  After this time, the save format
	              is UML 1.4/XMI 1.2 which is not backward compatible.
	              Newer versions of ArgoUML will read projects written
	              by older versions, but not vice versa.  If you might
	              need to return to an older version of ArgoUML you should
	              be careful to save a backup of your old projects.
              </para>
              <para lang="de">
              	ArgoUML-Versionen vor 0.19.7 unterstützen UML 1.3/XMI 1.0. 
              	Danach ist das Speicherformat UML 1.4/XMI 1.2, das nicht 
              	rückwärtskompatibel ist. Neuere Versionen von ArgoUML werden 
              	Projekte älterer Versionen lesen, aber nicht umgekehrt. Wenn 
              	Sie glauben, zu einer älteren Version von ArgoUML zurückkehren 
              	zu müssen, sollten Sie vorsichtig sein und ein Backup Ihres 
              	alten Projektes abspeichern.
              </para>
              <para lang="es">
                Las versiones de ArgoUML anteriores a 0.19.7 soportaban 
                UML 1.3/XMI 1.0. 
                Despues de este tiempo, el formato de almacenamiento es 
                UML 1.4/XMI 1.2 el cual no es compatible hacia atras. 
                Posteriores versiones de ArgoUML leerán proyectos escritos 
                con versiones antiguas, pero no vice versa. 
                Si puedes necesitar volver a una version antigua 
                de ArgoUML deberías ser cuidadoso de guardar 
                una copia de seguridad de tus viejos proyectos.
              </para>

              <para lang="en">
                Additionally, if you write XMI files which 
                need to be read by other tools, you should take into
                account the different versions.
                Most modern UML
                modelling tools should read UML 1.4, but you may
                have in-house code generators or other tools which
                are tied to UML 1.3.
              </para>
              <para lang="de">
              	Wenn Sie zusätzlich XMI-Dateien speichern, die durch andere 
              	Werkzeuge gelesen werden sollen, sollten Sie die 
              	unterschiedlichen Versionen unterscheiden. Die meisten modernen 
              	UML-Modellierungs-Werkzeuge sollten UML 1.4 lesen, aber Sie 
              	haben vielleicht In-Haus-Codegeneratoren oder andere Werkzeuge, 
              	die UML 1.3 benötigen.
              </para>
              <para lang="es">
                Adicionalmente, si escribes archivos XMI que necesitan 
                ser leidos por otras herramientas, deberías tomar 
                en cuenta las diferentes versiones. 
                Las herramientas de modelado UML mas modernas deberían 
                leer 1.4, pero puedes tener generadores 
                de código integrados o otras herramientas 
                que están atadas a UML 1.3.
              </para>

            </sect4>

            <sect4>

              <title>
              	<phrase lang="en">
              		Importing Other XMI Formats into ArgoUML
              	</phrase>
              	<phrase lang="en">
              		Andere XMI-Formate in ArgoUML importieren
              	</phrase>
              	<phrase lang="es">
              	  Importando Otros Formatos XMI dentro de ArgoUML
              	</phrase>
              </title>

              <para lang="en">
	              XMI compatibility between UML modeling tools
	              has improved over the years, but you may still
	              occasionally run into problems.
              </para>
              <para lang="de">
              	Die XMI-Kompatibilität zwischen den UML-Modellierungs-Werkzeugen 
              	wurde über die Jahre verbessert, aber Sie werden wahrscheinlich 
              	Probleme bekommen.
              </para>
              <para lang="es">
                La compatibilidad XMI entre herramientas de modelado UML 
                ha mejorado con los años, pero puedes tener aún problemas 
                ocasionalmente.
              </para>

              <para lang="en">
	              ArgoUML will not read XMI files which contain
	              UML 1.5 or UML 2.0 models, but it should be able
	              to open most UML 1.4 and UML 1.3 files.  If you find
	              one that it can't open, please file a bug report
	              so that a developer can investigate.
	          </para>
              <para lang="de">
              	ArgoUML wird keine XMI-Dateien lesen, die UML 1.5 oder UML 2.0-
              	Modelle enthalten, aber es sollte möglich sein, die meisten 
              	UML 1.4 und UML 1.3-Modelle zu öffnen. Wenn Sie eines finden, 
              	dass Sie nicht öffnen können, erstellen Sie bitte einen Bug-
              	Bericht, so dass ein Entwickler dies erforschen kann.
              </para>
              <para lang="es">
                ArgoUML no leerá archivos XMI files que contengan 
                modelos UML 1.5 o UML 2.0, pero debería ser capaz 
                de abrir la mayoría de los archivos UML 1.4 y UML 1.3. 
                Si encuentras uno que no puede abrir, 
                por favor informa del bug para que un desarrollador pueda 
                investigar.
              </para>

            </sect4>

            <sect4>

              <title>
              	<phrase lang="en">Generating XMI Format</phrase>
              	<phrase lang="de">XMI Format generieren</phrase>
              	<phrase lang="es">Generando Formato XMI</phrase>
               </title>

              <para lang="en">
	              Select the command
	              <literal>File</literal>=&gt;<literal>Export as XMI</literal>
	              and choose a filename.
              </para>
              <para lang="de">
              	Wählen Sie das Kommando <literal>Datei</literal>=&gt;<literal>
              	Exportiere als XMI...</literal> und wählen Sie einen Dateinamen.
              </para>
              <para lang="es">
                Selecciona el comando <literal>Exportar</literal>→
                <literal>Archivo&nbsp;como&nbsp;XMI</literal> y escoge 
                un nombre de archivo.
              </para>

            </sect4>

          </sect3>

          <sect3>

            <title>
            	<phrase lang="en">Code Generation</phrase>
            	<phrase lang="de">Code-Generierung</phrase>
            	<phrase lang="es">Generación de Código</phrase>
            </title>

            <sect4>

              <title>
              	<phrase lang="en">
              		Code Generated by ArgoUML
              	</phrase>
              	<phrase lang="de">
              		Durch ArgoUML generierter Code
              	</phrase>
              	<phrase lang="es">
              	  Código Generado por ArgoUML
              	</phrase>
              </title>

              <para lang="en">
	              It is possible to compile your generated code with 
	              ArgoUML, you still need to implement method bodies, 
	              though, to get usable results.
              </para>
              <para lang="de">
              	Es ist möglich Ihren generierten Code mit ArgoUML zu übersetzen, 
              	Sie müssen lediglich die Methodenrümpfe implementieren, um 
              	verwendbare Ergebnisse zu erzielen.
              </para>
              <para lang="es">
                Es posible compilar tu código generado con ArgoUML, 
                si bien aún necesitas implementar los cuerpos de metodos, 
                para obtener resultados utiles.
              </para>

            </sect4>

            <sect4>

              <title>
              	<phrase lang="en">Generating Code for Methods</phrase>
              	<phrase lang="de">Code für Methoden generieren</phrase>
              	<phrase lang="es">Generando Código para Métodos</phrase>
              </title>

              <para lang="en">
	              At the moment you cannot write code for methods 
	              (operations) within ArgoUML. The source pane is editable, 
	              but the changes are ignored. ArgoUML is a pure design 
	              tool for now, no IDE functionality but the desire is 
	              there. You might consider using Forte and ArgoUML 
	              together&mdash;it&apos;s a good work around!
              </para>
              <para lang="de">
              	Im Moment können Sie keinen Code für Methoden (Operationen) 
              	in ArgoUML schreiben. Das Quellcode-Fenster ist editierbar, aber 
              	die Änderungen werden ignoriert. ArgoUML ist aktuell ein 
              	reines Design-Werkzeug, es ist keine IDE-Funktionalität 
              	vorhanden, aber der Wunsch ist da. Sie können Forte und ArgoUML 
              	zusammenarbeiten lassen; dies ist ein guter Workaround.
              </para>
              <para lang="es">
                Hasta el momento no puedes escribir código 
                para métodos (operaciones) dentro de ArgoUML. 
                El panel de fuentes es editable,
                pero los cambios son ignorados. 
                ArgoUML es una herramienta de diseño puro por ahora, 
                no hay funcionalidad IDE pero el deseo está ahí. 
                Puedes considerar usar Forte y ArgoUML juntos—¡Es un 
                buen rodeo del problema!
              </para>

              <para lang="en">
	              You can help us out there if you&apos;d like!
              </para>
              <para lang="de">
              	Sie können uns hier helfen, wenn Sie wollen!
              </para>
              <para lang="es">Puedes ayudarnos aquí si quisieras!</para>

            </sect4>

          </sect3>

        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">Working With Design Critics</phrase>
          	<phrase lang="de">Arbeiten mit Design-Kritiken</phrase>
          	<phrase lang="es">Trabajando Con Criticas de Diseño</phrase>
          </title>

          <para lang="en">
            Design critics are part of the practical application of the
            theories of Cognitive Psychology that are implemented in ArgoUML.
            See <xref linkend="tut.cog.psych"/>
          </para>
          <para lang="de">
          	Designkritiken sind Teil der praktischen Anwendung der Theorie der 
          	Kognitiven Psychologie, die in ArgoUML implementiert ist. Siehe 
            <xref linkend="tut.cog.psych"/>
          </para>

          <sect3>

            <title>
            	<phrase lang="en">Messages From the Design Critics</phrase>
            	<phrase lang="de">Meldungen von den Design-Kritiken</phrase>
            	<phrase lang="es">
            	  Los Mensajes del Panel de Taréas Pendientes 
            	  de las Criticas de diseño
            	</phrase>
            </title>

            <para lang="en">
	            Where do we stand now? A new project has been 
	            created, and is stored in the file <literal>
	            FirstProject.zargo</literal>. 
	            <xref linkend="fig.tut.critstart"/> shows how your ArgoUML 
	            window should look at this stage.
            </para>
            <para lang="de">
            	Wo stehen wir aktuell? Ein neues Projekt wurde erstellt und 
            	wurde in der Datei <literal>ErstesProjekt.zargo</literal> 
            	gespeichert. <xref linkend="fig.tut.critstart"/> zeigt, wie 
            	Ihr ArgoUML-Fenster zu diesem Zeitpunkt aussehen sollte.
            </para>
            <para lang="es">
              ¿Donde estamos ahora? 
              Un nuevo proyecto ha sido creado, 
              y está conectado al archivo <literal>PrimerProyecto.argo</literal>.
              <xref linkend="fig.tut.critstart" /> muestra como tu ventana de
              ArgoUML debería aparecer en está etapa.
            </para>

            <figure float="1" id="fig.tut.critstart">

              <title>
	              <phrase lang="en">
	                ArgoUML Window Having Saved <literal>FirstProject.zargo
	                </literal>
	              </phrase>
	              <phrase lang="de">
	                ArgoUML-Fenster mit gespeichertem Projekt 
	                <literal>ErstesProjekt.zargo</literal>
	              </phrase>
	              <phrase lang="es">
	                Ventana de ArgoUML Habiendo Guardado
	                <literal>PrimerProyecto.zargo</literal>
	              </phrase>
              </title>

              <screenshot><mediaobject><imageobject>
              <imagedata align="center"
               fileref="images/tutorial/critstart.gif"
               format="GIF"/></imageobject></mediaobject></screenshot>
            </figure>

            <para lang="en">
	            The project contains a top-level package, called 
	            <literal>untitledModel</literal>, which contains a class 
	            diagram and a use case diagram.
            </para>
            <para lang="de">
            	Das Projekt enthält ein Paket auf oberster Ebene, genannt 
            	<literal>unbenanntesModell</literal>, welches ein 
            	Klassendiagramm und ein Anwendungsfalldiagramm enthält.
            </para>
            <para lang="es">
              El proyecto contiene un paquete de alto nivel llamado
              <literal>untitledModel</literal>, 
              el cual contiene un diagrama de clases y 
              un diagrama de casos de uso.
            </para>

            <para lang="en">
	            If we look carefully at the screen, we can see that 
	            the &quot;Medium&quot; folder in the To-Do Pane (the lower 
	            left pane) must contain some items, since its activation 
	            icon <guiicon>
	            <inlinegraphic fileref="images/tutorial/guitreefoldercloseicon.gif"
	             format="GIF"/></guiicon> is displayed.
            </para>
            <para lang="de">
            	Wenn wir auf den Bildschirm blicken, sehen wir, dass das 
            	Verzeichnis <quote>Mittel</quote> im "zu bearbeiten"-Fenster 
            	(das linke untere Fenster) einige Elemente enthalten muss, da 
            	sein Aktivierungs-Symbol
				<guiicon>
					<inlinegraphic
						fileref="images/tutorial/guitreefoldercloseicon.gif" format="GIF" />
				</guiicon>
				angezeigt wird.
            </para>
            <para lang="es">
              Si miramos cuidadosamente a la pantalla, 
              podemos ver que la carpeta "Medium" en el panel 
              de Taréas Pendientes 
              (el panel de abajo a la izquierda) 
              debe contener algunos elementos, 
              ya que su icono de activación 
              <guiicon>
                <inlinegraphic
                  fileref="images/tutorial/guitreefoldercloseicon.gif"
                  format="GIF" />
              </guiicon> 
              está representado.
            </para>

            <para lang="en">
	            Clicking on this icon will open the 
	            &quot;Medium&quot; folder. An open folder is indicated by 
	            the <guiicon>
	            <inlinegraphic fileref="images/tutorial/guitreefolderopenicon.gif"
	             format="GIF"/></guiicon> icon.
            </para>
            <para lang="de">
            	Klicken auf dieses Symbol öffnet das Verzeichnis <quote>Mittel
            	</quote>. Ein geöffnetes Verzeichnis wird durch das Symbol
				<guiicon>
					<inlinegraphic
						fileref="images/tutorial/guitreefolderopenicon.gif" format="GIF" />
				</guiicon>
				dargestellt.
            </para>
            <para lang="es">
              Hacer click en este icono abrirá la carpeta "Medium". 
              Una carpeta abierta es indicada por el icono 
              <guiicon>
                <inlinegraphic 
                  fileref="images/tutorial/guitreefolderopenicon.gif" 
                  format="GIF" />
              </guiicon> .
            </para>

            <para lang="en">
	            But what is this <quote>To-Do</quote> Pane anyway. 
	            You haven&apos;t recorded anything yet that has to be done, 
	            so where do these to do items originate.
            </para>
            <para lang="de">
            	Aber, was ist dieses <quote>zu bearbeiten</quote>-Fenster 
            	überhaupt? Sie haben bis jetzt noch nichts aufgezeichnet, was 
            	zu tun wäre. Wo kommen diese "zu bearbeiten"-Elemente jetzt her?
            </para>
            <para lang="es">
              Pero que es este Panel de <quote>Taréas Pendientes</quote> 
              de todas formas. 
              No has grabado nada aún que ha de ser hecho, 
              así que donde se originan esos elementos.
            </para>

            <para lang="en">
	            The answer is simple, and is at the same time one of 
	            the strong points of ArgoUML. While you are working on your 
	            UML model, your work is monitored continuously and 
	            invisibly by a piece of code called a <emphasis>design 
	            critic</emphasis>. This is like a personal mentor that 
	            watches over your shoulder and notifies you each time he 
	            sees something questionable in your design.
            </para>
            <para lang="de">
            	Die Antwort ist simpel und ist gleichzeitig eines der wichtigsten 
            	Punkte von ArgoUML. Während Sie mit Ihrem UML-Modell arbeiten, 
            	wird Ihre Arbeit kontinuierlich durch ein Stück Code, <emphasis>
            	Design-Kritik</emphasis> genannt, gemonitort. Das ist ähnlich 
            	einem persönlichen Mentor, der Ihnen über die Schulter sieht und 
            	Sie jedesmal darauf hinweist, wenn er irgendetwas fragwürdiges 
            	in Ihrem Design sieht. 
            </para>
            <para lang="es">
              La respuesta el simple, y es al mismo tiempo uno de 
              los puntos fuertes de ArgoUML. 
              Mientras estas trabajando en tu modelo UML, 
              tu trabajo es monitorizado continuamente y 
              de forma invisible por un trozo de código llamado una 
              <emphasis>crítica de diseño</emphasis>. 
              Esto es como un mentor personal que vigila por encima de 
              tu hombro y te notifica cada vez que ve algo cuestionable 
              en tu diseño.
            </para>

            <para lang="en">
	            Critics are quite unobtrusive. They give you a 
	            friendly warning, but they do not force you into design 
	            principles that you don&apos;t want or like to follow. Let 
	            us take a look at what the critics are telling us. Click on 
	            the <guiicon>
	            <inlinegraphic fileref="images/tutorial/guitreefoldercloseicon.gif"
	             format="GIF"/></guiicon> icon next to the <literal>
	            Medium</literal> folder, and click on the <literal>
	            Revise Package Name UntitledModel</literal> item.
            </para>
            <para lang="de">
            	Kritiken sind etwas völlig unaufdringliches. Sie geben Ihnen eine 
            	freundliche Warnung, aber Sie zwingen Sie nicht in Design-
            	Prinzipien, denen Sie nicht folgen wollen. Lassen Sie uns einen 
            	Blick darauf werfen, was die Kritiken uns mitteilen.
            	Klicken Sie auf das 
				<guiicon>
					<inlinegraphic
						fileref="images/tutorial/guitreefoldercloseicon.gif" format="GIF" />
				</guiicon>
				Symbol in der Nähe des Verzeichnisses <literal>Mittel</literal> 
				und klicken Sie auf das Element <literal>Überprüfen Sie den 
				Paketnamen unbenanntesModell</literal>.
            </para>
            <para lang="es">
              Las criticas son bastante poco entrometidas. 
              Te dan una advertencia amigable, pero no te fuerzan dentro 
              de principios de diseño que no quieres o no te gusta seguir. 
              Tomemos un vistazo de que nos están diciendo las críticas. 
              Haz click en el icono 
              <guiicon>
                <inlinegraphic 
                  fileref="images/tutorial/guitreefoldercloseicon.gif"
                  format="GIF" />
              </guiicon> 
              cerca de la carpeta <literal>Medium</literal>, 
              y haz click en el elemento 
              <literal>
                Revisa&nbsp;el&nbsp;nombre&nbsp;del&nbsp;paquete&nbsp;UntitledModel
              </literal>.
            </para>

            <para lang="en">
	            <xref linkend="fig.tut.critrevname"/> shows how your 
	            screen should now look.
            </para>
            <para lang="de">
	            <xref linkend="fig.tut.critrevname"/> zeigt, wie Ihr Bildschirm 
	            nun aussieht.
            </para>
            <para lang="es">
              <xref linkend="fig.tut.critrevname" /> muestra como debería 
              verse tu pantalla ahora.
            </para>

            <figure float="1" id="fig.tut.critrevname">

              <title>
	              <phrase lang="en">
	              	ArgoUML Window Showing the Critic Item <literal>
	              	Revise Package Name UntitledModel</literal>
	              </phrase>
	              <phrase lang="en">
					ArgoUML-Fenster zeigt das Kritik-Element <literal>Überprüfen 
					Sie den Paketnamen unbenanntesModell</literal>
	              </phrase>
	              <phrase lang="es">
	                Ventana ArgoUML Mostrando el Elemento de Crítica 
	                <literal>Revisa&nbsp;el&nbsp;Nombre&nbsp;del&nbsp;paquete&nbsp;UntitledModel</literal>
	              </phrase>
              </title>

              <screenshot><mediaobject><imageobject>
              <imagedata align="center"
               fileref="images/tutorial/critrevname.gif"
               format="GIF"/></imageobject></mediaobject></screenshot>
            </figure>

            <para lang="en">
	            Notice that your selection is highlighted in red in 
	            the To-Do Pane, and that a full explanation appears now in 
	            the Details Pane (the lower right pane). You may have to 
	            re-size your Details Pane or to scroll down in order to see 
	            the full message as displayed in our example.
            </para>
            <para lang="de">
            	Beachten Sie, dass Ihre Markierung im "zu bearbeiten"-Fenster in 
            	rot markiert ist und dass jetzt eine vollständige Erläuterung 
            	im Detail-Fenster (das untere rechte Fenster) erscheint. Sie 
            	müssen vielleicht Ihr Detail-Fenster in der Grösse anpassen oder 
            	herunterscrollen, um die angezeigten Nachricht in Ihrem Beispiel 
            	vollständig sehen zu können.
            </para>
            <para lang="es">
              Observa que tu selección está destacada en rojo 
              en el Panel de Taréas Pendientes, 
              y que una explicación completa aparece ahora 
              en el Panel de Detalles (el panel de abajo a la derecha). 
              Puedes tener que redimensionar tu Panel de Detalles 
              o desplazarloa hacia abajo para ver el mensaje completo 
              como se muestra en nuestro ejemplo.
            </para>

            <para lang="en">
	            What ArgoUML is trying to tell you is that usually, 
	            package names are written in lower cases. The default top 
	            level package created by ArgoUML is called <literal>
	            untitledModel</literal> and therefore violates a sound 
	            design principle. (Actually, this could be considered as a 
	            bug within ArgoUML, but it comes in handy to demonstrate 
	            the working of critics).
            </para>
            <para lang="de">
            	Was Ihnen ArgoUML wahrscheinlich mitteilen will, Paketnamen 
            	werden in Kleinbuchstaben geschrieben. Das oberste, von ArgoUML 
            	erzeugte Standard-Paket wird <literal>unbenanntesModell</literal>
            	genannt und verletzt daher ein Designprinzip. (Aktuell kann dies 
            	als Bug von ArgoUML betrachtet werden, aber es kommt gerade 
            	gelegen, um die arbeitsweise von Kritiken zu demonstrieren).
            </para>
            <para lang="es">
              Lo que ArgoUML está intentando decirte es que normalmente, 
              los nombres de paquetes están escritos en minusculas. 
              El paquete principal por defecto creado por ArgoUML 
              se llama <literal>untitledModel</literal> y 
              por tanto viola un principio de diseño.
              (Realmente, este podría ser considerado como un bug dentro 
              de ArgoUML, pero es adecuado para demostrar el funcionamiento 
              de las críticas).
            </para>

            <para lang="en">
	            At this point, you can choose to change the package 
	            name manually or to impose silence on the design critic for 
	            some time or permanently
            </para>
            <para lang="de">
            	An diesem Punkt können Sie wählen, ob Sie den Paketnamen manuell 
            	ändern oder durch die Design-Kritik stillschweigend dieses eine 
            	Mal oder immer ändern wollen.
            </para>
            <para lang="es">
              En este punto, puedes escoger cambiar el nombre 
              del paquete manualmente, 
              para imponer silencio en la crítica de diseño 
              por algún tiempo o permanentemente, 
              o para requerir una explicación mas 
              extensa por e-mail de un experto.
            </para>

            <para lang="en">
	            We will do nothing of this (we&apos;ll come back to 
	            it when we talk about the design critics in more detail) 
	            but we&apos;ll use another handy feature of ArgoUML&mdash;an 
	            auto-correct feature.
            </para>
            <para lang="de">
            	Wir werden nichts davon tun (wir kommen darauf zurück, wenn wir 
            	über die Design-Kritiken detaillierter sprechen), aber wir 
            	werden eine andere einfache Funktion von ArgoUML nutzen&mdash; 
            	die Autokorrektur-Funktion.
            </para>
            <para lang="es">
              No haremos nada de esto (volveremos a ello cuando hablemos 
              sobre las críticas de diseño con mas detalle) pero usaremos 
              otra práctica caracteristica de ArgoUML—una caracteristica 
              de autocorrección.
            </para>

            <para lang="en">
	            In order to do that, just click on the <literal>
	            Next</literal> button on the Details Pane. This will cause 
	            a renaming wizard to be displayed inside the properties 
	            panel, proposing to use the name <literal>
	            untitledmodel</literal> (all in lower case).
            </para>
            <para lang="de">
            	Um dies zu tun, klicken Sie auf die Schaltfläche <literal>
	            Weiter</literal> im Detailfenster. Dadurch wird ein Umbenennungs-
	            Assistent innerhalb des Eigenschaftsfensters angezeigt, der 
	            vorschlägt, den Namen <literal>unbenanntesmodell</literal> 
	            (alles in Kleinbuchstaben) zu verwenden.
            </para>
            <para lang="es">
              Para hacerlo, solo hac click en el boton 
              <literal>Siguiente (Próximo)</literal> del Panel de Detalles. 
              Esto causara que un aistente de renombar sea mostrado dentro 
              del panel de propiedades, proponiendo usar el nombre
              <literal>untitledmodel</literal> (todo en minusculas).
            </para>

          </sect3>

          <sect3>

            <title>
            	<phrase lang="en">
            		Design Critics at Work: The Rename Package Wizard
            	</phrase>
            	<phrase lang="de">
            		Design-Kritiken bei der Arbeit: Der Paket-Umbenennungs- 
            		Assistent
            	</phrase>
            	<phrase lang="es">
            	  Críticas de Diseño Funcionando: 
            	  El Asistente de Renombrar Paquete
            	</phrase>
            </title>

            <para lang="en">
	            Replace the name <literal>untitledmodel</literal> 
	            with <literal>purchasingmodel</literal>, and click on the 
	            <literal>Finish</literal> button. 
	            <xref linkend="fig.tut.critwiz"/> shows how the ArgoUML 
	            window will now look.
            </para>
            <para lang="de">
            	Ersetzen Sie den Namen <literal>unbenanntesModell</literal> 
            	durch <literal>einkaufsmodell</literal> und klicken Sie auf die 
            	Schaltfläche <literal>Fertig stellen</literal>.
	            <xref linkend="fig.tut.critwiz"/> zeigt, wie das ArgoUML-
	            Fenster nun aussehen sollte. 
	        </para>
            <para lang="es">
              Sustitulye el nombre <literal>untitledmodel</literal> 
              con <literal>purchasingmodel</literal>, 
              y haz click el el botton <literal>Terminar</literal>. 
              <xref linkend="fig.tut.critwiz" />
              muestra como la ventana de ArgoUML aparecerá ahora.
            </para>

            <figure float="1" id="fig.tut.critwiz">

              <title>
	              <phrase lang="en">
	              	ArgoUML Window Showing the Critic Wizard to Rename 
	              	the Package
	              </phrase>
	              <phrase lang="de">
	              	Das ArgoUML-Fenster zeigt den Kritik-Assistenten, zur 
	              	Umbenennung des Paketes
	              </phrase>
	              <phrase lang="es">
	                Ventana de ArgoUML Mostrando el Asistente de Crítica 
	                para Renombrar el Paquete
	              </phrase>
              </title>

              <screenshot><mediaobject><imageobject>
              <imagedata align="center"
               fileref="images/tutorial/critwiz.gif"
               format="GIF"/></imageobject></mediaobject></screenshot>
            </figure>

            <para lang="en">
	            Watch now how the design critic note in the To Do 
	            panel disappears, leaving only the <literal>
	            Add Elements to Package purchasingmodel</literal> note in 
	            the To-Do list.
            </para>
            <para lang="de">
            	Beobachten Sie nun, wie die Design-Kritik im "zu bearbeiten"-
            	Fenster verschwindet und es verbleibt nur der Hinweis <literal>
            	Fügen Sie dem Paket einkaufsmodell Elemente hinzu</literal> in 
            	der "zu bearbeiten"-Liste.
            </para>
            <para lang="es">
              Observa ahora como la nota de la crítica de diseño en 
              el panel de Taréas Pendientes desaparece, 
              dejando solo la nota 
              <literal>
                Añade&nbsp;elementos&nbsp;al&nbsp;paquete&nbsp;purchasingmodel 
              </literal>
              en la lista de Taréas Pendientes.
            </para>

            <para lang="en">
	            If this doesn&apos;t happen at once, wait for a few 
	            seconds. ArgoUML makes heavy use of several threads of 
	            execution that execute in parallel. This can cause delays 
	            of a few seconds before the information gets updated on the 
	            screen.
            </para>
            <para lang="de">
            	Wenn dies nicht sofort passiert, warten Sie einige Sekunden. 
            	ArgoUML macht ausgiebigen Gebrauch von mehreren, parallel 
            	ausgeführten Ausführungsthreads. Dies kann einige Sekunden 
            	Verzögerung verursachen bevor die Information auf dem Bildschirm 
            	auf den neusten Stand gebracht wird.
            </para>
            <para lang="es">
              Si esto no ocurre al momento, espera algunos segundos.
              ArgoUML hace uso intensivo de muchos hilos de ejecución que 
              se ejecutan en paralelo. 
              Esto puede causar demoras de algunos segundos antes de 
              que la información se actualize en la pantalla.
            </para>

            <para lang="en">
	            The package name change should also be reflected in 
	            the explorer, in the top left corner of your ArgoUML 
	            window.
            </para>
            <para lang="de">
            	Die Änderung des Paketnamens sollte sich auch im Explorer, in 
            	der linken oberen Ecke Ihres ArgoUML-Fensters,  
            	wiederspiegeln.
            </para>
            <para lang="es">
              El cambio del nombre del paquete debería ser reflejado en 
              el explorador, en la esquina superior izquierda de tu ventana 
              de ArgoUML.
            </para>

            <para lang="en">
	            We are now ready to create our first UML diagram, a 
	            Use Case diagram, but first let&apos;s save what we&apos;ve 
	            done so far.
            </para>
            <para lang="de">
            	Wir sind jetzt so weit, unser erstes UML-Diagramm, ein 
            	Anwendungsfalldiagramm, zu erstellen. Aber lassen Sie uns zuerst  
            	speichern, was wir bis jetzt getan haben.
            </para>
            <para lang="es">
              Ahora estamos preparados para crear nuestro 
              primer diagrama UML, un diagrama de Casos de Uso, 
              pero primero guardemos lo que hemos hecho hasta ahora.
            </para>

            <para lang="en">
	            Click on the <literal>File</literal> menu item, and 
	            select <literal>Save Project</literal>. You can now safely 
	            exit ArgoUML without losing your work so far, or go on 
	            creating your first diagram.
            </para>
            <para lang="de">
            	Klicken Sie auf das Menüelement <literal>Datei</literal> und 
            	wählen Sie <literal>Projekt speichern...</literal> aus. Sie 
            	können jetzt ArgoUML sicher beenden, ohne Ihre bisherige Arbeit 
            	zu verlieren, oder mit dem Erstellen Ihres ersten Diagrammes 
            	fortfahren.
            </para>
            <para lang="es">
              Haz click en el elemento de menú <literal>Archivo</literal>,
              y seleciona <literal>Guardar&nbsp;Proyecto</literal>. 
              Ahora puedes salir de forma segura de ArgoUML 
              sin perder tu trabajo hasta el momento, 
              o seguir creando tu primer diagrama.
            </para>

          </sect3>

        </sect2>

      </sect1>

      <sect1>

        <title>
        	<phrase lang="en">The Case Study (To be written)</phrase>
        	<phrase lang="de">Die Fallstudie (Noch zu schreiben)</phrase>
        	<phrase lang="es">El Casos de Estudio (A escribir)</phrase>
        </title>

        <para lang="en">
          Here is where we are going to start the Case Study.
          It is at this point that you define your project;
          not your product, but your project.
          It can be argued that modeling concepts should apply here as well
          but this has not been well established.
          If you can take the time to look into the ArgoUML project, you will
          find that there are a large number of "lines of code" and lines of
          documentation that are part of the project, but not part of the
          product.
          For example, this document is part of the product while the Cookbook
          and the build.xml files are part of the project only.
          At a minimum the file structure of the project could be shown in a
          package diagram.
        </para>
        <para lang="de">
        	Hier wollen wir mit der Fallstudie beginnen.
        	Es ist der Zeitpunkt, wo Sie Ihr Projekt definieren; nicht Ihr 
        	Produkt, aber Ihr Projekt.
        	Es kann argumentiert werden, dass die Modellierungskonzepte hier 
        	auch erscheinen sollten, aber das wurde so nicht aufgebaut.
        	Wenn Sie sich die Zeit nehmen, sich das ArgoUML-Projekt anzusehen, 
        	werden Sie eine grosse Anzahl von "Code-" und Dokumentationszeilen, 
        	die Teil des Projektes sind, finden. Sie sind aber nicht Teil des 
        	Produktes.
        	Beispiel: Dieses Dokument ist Teil des Produktes während das 
        	Kochbuch und die build.xml-Dateien nur Teil des Projektes sind.
        	Mindestens die Dateistruktur des Projektes könnte in einem 
        	Paketdiagramm dargestellt werden.
        </para>
        <para lang="es">A escribir...</para>

        <para>
          ...
        </para>
      </sect1>

    </chapter>

    <chapter id="ch.tut.reqs">

      <title>
      	<phrase lang="en">Requirements Capture</phrase>
      	<phrase lang="de">Erfassen der Anforderungen</phrase>
      	<phrase lang="es">Captura de Requerimientos</phrase>
      </title>

      <sect1>

        <title>
	        <phrase lang="en">Introduction</phrase>
	        <phrase lang="de">Einleitung</phrase>
	        <phrase lang="es">Introducción</phrase>
        </title>

        <indexterm lang="en">
        	<primary>Requirement</primary><secondary>Capturing</secondary>
        </indexterm>
        <indexterm lang="de">
        	<primary>Anforderung</primary><secondary>Erfassung</secondary>
        </indexterm>
        <indexterm lang="es">
          <primary>Requerimiento</primary>
          <secondary>Captura</secondary>
        </indexterm>

        <para lang="en">
	        Requirements capture is the process of identifying what 
	        the <quote>customer</quote> wants from the proposed 
	        system.
        </para>
        <para lang="de">
        	Das Erfassen der Anforderungen ist der Identifizierungsprozess, was 
        	der <quote>Kunde</quote> von dem vorgeschlagenen System will.
        </para>
        <para lang="es">
          La captura de requerimientos el el proceso de identificar 
          que quiere el <quote>cliente</quote> del sistema propuesto.
        </para>

        <para lang="en">
	        The key at this stage is that we are in the problem 
	        domain. At this stage we must describe everything from the 
	        <quote>customer</quote> perspective and in the language of the 
	        <quote>customer</quote>.
	    </para>
        <para lang="de">
        	Der Schlüssel zu diesem Zeitpunkt ist, dass wir uns im 
        	Problembereich befinden. Zu diesem Zeitpunkt müssen wir alles 
        	aus der Perspektive des <quote>Kunden</quote> und in der Sprache 
        	des <quote>Kunden</quote> beschreiben.
        </para>
        <para lang="es">
          La clave en esta etapa es que estamos en el dominio de problema. 
          En esta etapa debemos describir todo desde la perspectiva del 
          <quote>cliente</quote> y en el lenguaje del <quote>customer</quote>.
        </para>

        <para lang="en">
	        The biggest risk we have in requirements capture is to 
	        start thinking in terms of possible solutions. That must wait 
	        until the <emphasis>Analysis Phase</emphasis> (see 
	        <xref linkend="ch.tut.analysis"/>). One of the steps of the 
	        Analysis Phase will be to take the output of the Requirements 
	        Phase and recast it in the language of a deemed solution.
        </para>
        <para lang="de">
        	Das grösste Risiko, dass wir beim Erfassen der Anforderungen haben 
        	ist, dass wir in Begriffen der möglichen Lösung anfangen zu denken.
        	Dies muss bis zur <emphasis>Analyse-Phase</emphasis> warten (siehe
	        <xref linkend="ch.tut.analysis"/>). Einer der Schritte der Analyse-
	        Phase nimmt das Ergebnis der Anforderungsphase und übersetzt es in 
	        die Sprache einer gedachten Lösung. 
        </para>
        <para lang="es">
          El mayor riesgo que tenemos en la caputra de requerimientos 
          es empezar pensando en terminos de posibles soluciones. 
          Eso debe esperar hasta la <emphasis>Fase de Analisis</emphasis> 
          (mira <xref linkend="ch.tut.analysis" />). 
          Uno de los pasos de la Fase de Analisis será tomar 
          los resultados de la Fase de Requerimientos y refundirlos 
          en el lenguaje de la solución estimada.
        </para>

        <para lang="en">
	        Remember we are using both a 
	        <emphasis>incremental</emphasis>, and an 
	        <emphasis>iterative</emphasis> process.
        </para>
        <para lang="de">
        	Erinnern Sie sich, dass wir beides einsetzen, einen <emphasis>
        	inkrementalen</emphasis> und einen <emphasis>iterativen</emphasis> 
        	Prozess.
        </para>
        <para lang="es">
          Recuerda que estamos usando un proceso
          <emphasis>incremental</emphasis> y 
          <emphasis>iterativo</emphasis>.
        </para>

        <para lang="en">
	        We may well come back to the requirements process again 
	        as we break down the problem into smaller chunks, each of which 
	        must have its requirements captured.
        </para>
        <para lang="de">
        	Wir kommen im Anforderungsprozess darauf zurück, wenn wir das 
        	Problem in kleinere Teile unterteilen. Für jedes davon müssen seine 
        	Anforderungen erfasst sein.
        </para>
        <para lang="es">
          Podemos tranquilamente volver atras otra vez al proceso 
          de requerimientos mientras desmontamos el problema 
          en trozos mas pequeños, cada uno de los cuales debe tener 
          sus requerimientos capturados.
        </para>

        <para lang="en">
	        We will certainly come back through the requirements 
	        phase on each iteration as we seek to define the requirements 
	        of more and more of the system
        </para>
        <para lang="de">
        	Wir werden wahrscheinlich während der Anforderungsphase bei jeder 
        	Iteration darauf zurückkommen, wenn wir versuchen, die Anforderungen 
        	des Systems immer weiter zu definieren.
        </para>
        <para lang="es">
          Ciertamente volveremos atras a traves de la fase 
          de requerimientos en cada iteración mientras buscamos definir 
          los requerimientos del sistema mas y mas.
        </para>

        <note>

          <para lang="en">
	          The only part of the requirements notation specified by 
	          the UML standard is the use case diagram. The remainder is 
	          process specific. The process described in this chapter draws 
	          heavily on the Rational Unified Process.
          </para>
          <para lang="de">
          	Der einzige Teil der vom UML-Standard spezifizierten 
          	Anforderungsnotation ist das Anwendungsfalldiagramm.  Der Rest ist 
          	prozessspezifisch. Der in diesem Kapitel beschriebene Prozess ist 
          	sehr stark an den Rational Unified Prozess angelehnt.
          </para>
          <para lang="es">
            La unica parte de la notación de los requerimientos especificada 
            por el estandar UML es el diagrama de casos de uso. 
            El resto es especifico del proceso. 
            El proceso descrito en este capitulo está 
            muy inspirado en el Rational Unified Process.
          </para>

        </note>

      </sect1>

      <sect1>

        <title>
        	<phrase lang="en">The Requirements Capture Process</phrase>
        	<phrase lang="de">Der Anforderungs-Erfassungs-Prozess</phrase>
        	<phrase lang="es">El Prodeso de Captura de Requerimientos</phrase>
        </title>

        <indexterm lang="en">
        	<primary>Vision Document</primary>
        </indexterm>
        <indexterm lang="de">
        	<primary>Das Visions-Dokument</primary>
        </indexterm>
        <indexterm lang="es">
          <primary>Documeto de Visión</primary>
        </indexterm>

        <para lang="en">
	        We start with a top-level view of the problem we are 
	        solving and the key areas of functionality that we must address 
	        in any solution. This is our <emphasis>vision 
	        document</emphasis>, and should be just a few pages long.
        </para>
        <para lang="de">
        	Wir beginnen mit einer Top-Level-Sicht auf das von uns zu lösende 
        	Problem und die Schlüsselbereiche der Funktionalität, die wir für 
        	die Lösung adressieren müssen. Dies ist unser <emphasis>Visions- 
        	Dokument</emphasis> und es sollte nur einige Seiten lang sein.
        </para>
        <para lang="es">
          Empezamos con una visión general del problema que estamos 
          resolviendo y las areas clave de funcionalidad que debemos 
          tratar en cualquier solución. 
          Este es nuestro <emphasis>documento de visión</emphasis>, 
          y debería ser de solo algunas páginas de longitud.
        </para>

        <para lang="en">
	        For example the top-level view of an automated teller 
	        machine (ATM) might be that it should support the 
	        following.
        </para>
        <para lang="de">
        	Die Top-Level-Sicht eines Geldautomaten (automated teller 
        	machine (ATM)) zum Beispiel, sollte folgendes unterstützen.
        </para>
        <para lang="es">
          Por ejemplo la visión general de un cajero automatico 
          (automated teller machine; ATM) puede ser que debería 
          soportar lo siguiente.
        </para>

        <orderedlist>

          <listitem>

            <para lang="en">
	            Cash deposit, cash withdrawal and account inquiries 
	            by customers.
            </para>
            <para lang="de">
            	Bargeld lagern, Bargeld abheben und Kontoabfragen durch Kunden.
            </para>
            <para lang="es">
              Depositos monetarios, reembolsos monetarios y consultas 
              de cuenta por los clientes.
            </para>

          </listitem>

          <listitem>

            <para lang="en">
	            Maintenance of the equipment by the bank&apos;s 
	            engineers, and unloading of deposits and loading of cash by 
	            the local bank branch.
            </para>
            <para lang="de">
            	Warten des Equipments durch Bank-Ingenieure und leeren der 
            	Kassen und Bargeld nachfüllen durch die lokale Bankfiliale.
            </para>
            <para lang="es">
              Mantenimiento del equipamiento por los ingenieros del banco, 
              y descarga de depositos y carga de dinero por 
              la sucursal local del banco.
            </para>

          </listitem>

          <listitem>

            <para lang="en">
	            Audit trail for all activities sent to the 
	            bank&apos;s central computer.
            </para>
            <para lang="de">
            	Nachvollziehbarkeit aller an den zentralen Bankcomputer 
            	gesendeten Aktivitäten.
            </para>
            <para lang="es">
              Auditorias de todas las actividades enviadas al sistema
              central del banco.
            </para>

          </listitem>

        </orderedlist>

        <indexterm lang="en"><primary>Actor</primary></indexterm>
        <indexterm lang="de"><primary>Akteur</primary></indexterm>
        <indexterm lang="es">
          <primary>Actor</primary>
        </indexterm>

        <para lang="en">
	        From this top-level view we can extract the principal 
	        activities of the system, and the external agents (people, 
	        equipment) that are involved in those activities. These 
	        activities are known as <emphasis>use cases</emphasis> and the 
	        external agents are known as <emphasis>actors</emphasis>.
        </para>
        <para lang="de">
        	Aus dieser Top-Level-Sicht können wir die prinzipiellen Aktivitäten 
        	des Systems und die extern Handelnden (Menschen, Equipment) die in 
        	diese Aktivitäten eingebunden sind extrahieren. Diese Aktivitäten 
        	sind als <emphasis>Anwendungsfälle</emphasis> und die extern 
        	Handelnden als <emphasis>Akteure</emphasis> bekannt.
        </para>
        <para lang="es">
          Desde esta visión general podemos extraer las actividades 
          principales del sistema, y los agentes externos 
          (personas, equipamiento) que están involucradas 
          en estas actividades. 
          Estas actividades son conocidad como 
          <emphasis>casos de uso</emphasis> y 
          los agentes externos son conocidos como 
          <emphasis>actores</emphasis>.
        </para>

        <para lang="en">
	        Actors may be people or machines. From a practical 
	        standpoint it is worth knowing the stakeholder behind any 
	        machine, since only they will be able to engage with the 
	        requirements capture process.
        </para>
        <para lang="de">
        	Akteure können Menschen oder Maschinen sein. Vom praktischen 
        	Standpunkt aus gesehen besteht deren Wert darin, die Nutzer 
        	hinter einer Maschine zu kennen, da nur diese in der Lage sind, sich 
        	mit dem Anforderungs-Erfassungs-Prozess zu beschäftigen.
        </para>
        <para lang="es">
          Los actores pueden ser personas o maquinas. 
          Desde un punto de vista practico es beneficioso conocer 
          la parte implicada detras de cada maquina, 
          puesto que solo ellos serán capaces de tratar con 
          el proceso de captura de requerimientos.
        </para>

        <indexterm lang="en"><primary>Use Case</primary></indexterm>
        <indexterm lang="de"><primary>Anwendungsfall</primary></indexterm>
        <indexterm lang="es">
          <primary>Casos de Uso</primary>
        </indexterm>

        <para lang="en">
	        Use cases should be significant activities for the 
	        system. For example customer use of the ATM machine is a use 
	        case. Entering a PIN number is not.
        </para>
        <para lang="de">
        	Anwendungsfälle sollte signifikante Aktivitäten für das System sein.
        	Der Nutzung des Geldautomaten durch den Kunden ist zum Beispiel ein 
        	Anwendungsfall. Die Eingabe einer PIN-Nummer ist es nicht.
        </para>
        <para lang="es">
          Los casos de uso deberías ser actividades significativas para 
          el sistema. 
          Por ejemplo el uso por el cliente del Cajero Automatico es 
          un caso de uso. 
          Introducir un numero PIN no lo es.
        </para>

        <para lang="en">
	        There is a gray area between these two extremes. As we 
	        shall see it is often useful to break very large use cases into 
	        smaller sub-use cases. For example we may have sub-use cases 
	        covering cash deposit, cash withdrawal and account 
	        inquiry.
        </para>
        <para lang="de">
        	Es gibt eine Grauzone zwischen diesen beiden Extremen. Wie wir 
        	sehen werden, ist es oft nützlich, sehr grosse Anwendungsfälle in 
        	kleinere Sub-Anwendungsfälle zu unterteilen. Wir können zum Beispiel 
        	Bargeld lagern, Bargeld auszahlen und Kontoabfragen als Sub-
        	Anwendungsfälle definieren.
        </para>
        <para lang="es">
          Hay una zona intermedia entre estos dos extremos. 
          Como veremos a menudo es util dividir casos de uso muy grandes 
          en pequeños subcasos de uso. 
          Por ejemplo podemos tener subcasos de uso cubriendo depositos 
          de dinero, retiradas de dinero y consultas de cuenta.
        </para>

        <para lang="en">
	        There is no hard and fast rule. Some architects will 
	        prefer a small number of relatively large use cases, others 
	        will prefer a larger number of smaller use cases. A useful rule 
	        of thumb is that any practical project ought to require no more 
	        than about 30 use cases (if it needs more, it should be broken 
	        into separate projects).
        </para>
        <para lang="de">
        	Es gibt keine harte und schnelle Regel. Einige Architekten 
        	präferieren wenige relativ grosse Anwendungsfälle, andere 
        	präferieren eine grössere Anzahl kleinerer Anwendungsfälle. Eine 
        	nützliche Faustregel ist, dass jedes praktikable Projekt nicht mehr 
        	als 30 Anwendungsfälle erfordern sollte (wenn es mehr benötigt, 
        	sollte es in separate Projekte aufgeteilt werden).
        </para>
        <para lang="es">
          No hay una regla clara y rápida. 
          Algunos arquitectos preferirán un pequeño numero de casos 
          de uso relativamente grandes, otros en en cambio preferirán 
          un grán número de pequeños casos de uso. 
          Una regla util a primera vista es que cualquier proyecto 
          practico debería requerir no mas de alrededor 
          de 30 casos de uso (si necesita mas, debería ser dividido 
          en proyectos separados).
        </para>

        <para lang="en">
	        We then show the relationship between use cases and 
	        actors on one or more use case diagrams. For a large project 
	        more than one diagram will be needed. Usually groups of related 
	        use cases are shown on one diagram.
        </para>
        <para lang="de">
        	Wir stellen dann die Beziehungen zwischen den Anwendungsfällen und 
        	Akteuren in einem oder mehreren Anwendungsfalldiagrammen dar. In 
        	grösseren Projekten wird mehr als ein Diagramm benötigt. 
        	Normalerweise werden Gruppen zusammengehöriger Anwendungsfälle in 
        	einem Diagramm dargestellt.
        </para>
        <para lang="es">
          Luego mostramos la relación entre casos de uso y actores 
          en uno o mas diagramas de casos de uso. 
          Para un proyecto grande puede ser necesario mas de un diagrama. 
          Normalmente los grupos de casos de uso relacionados 
          son mostrados en un mismo diagrama.
        </para>

        <para lang="en">
	        We must then give a more detailed specification of each 
	        use case. This covers its normal behavior, alternative 
	        behaviors and any pre- and post-conditions. This is captured in 
	        a document variously known as a <emphasis>use case 
	        specification</emphasis> or <emphasis>use case 
	        scenario</emphasis>.
        </para>
        <para lang="de">
        	Wir müssen dann eine detailliertere Spezifikation für jeden 
        	Anwendungsfall erstellen. Dies beinhaltet sein normales Verhalten, 
        	alternatives Verhalten und alle Vor- und Nachbedingungen. Dies 
        	erfolgt in einem Dokument, dass häufig als <emphasis>
        	Anwendungsfalldokumentation</emphasis> oder <emphasis>
        	Anwendungsfallszenario</emphasis> bekannt ist.
        </para>
        <para lang="es">
          Debemos luego dar una especificación mas detallada 
          de cada caso de uso. 
          Esto cubre su comportamiento normal, 
          comportamientos alternativos y cualquier precondición 
          y postcondición. 
          Esto se refleja en un documento conocido como 
          <emphasis>especificación de caso de uso</emphasis> 
          o <emphasis>escenario de caso de uso</emphasis>.
        </para>

        <indexterm lang="en">
        	<primary>Supplementary Requirement Specification</primary>
        </indexterm>
        <indexterm lang="de">
        	<primary>Ergänzende Anforderungsspezifikation</primary>
        </indexterm>
        <indexterm lang="es">
          <primary>Especificación de Requerimientos Suplementarios</primary>
        </indexterm>

        <para lang="en">
	        Finally, since use cases are functional in nature, we 
	        need a document to capture the non-functional requirements 
	        (capacity, performance, environmental needs etc). These 
	        requirements are captured in a document known as a 
	        <emphasis>supplementary requirements 
	        specification</emphasis>.
        </para>
        <para lang="de">
        	Da Anwendungsfälle natürlicherweise funktional sind, benötigen wir 
        	ein Dokument, um die nicht-funktionalen Anforderungen (Kapazitäts-, 
        	Leistungs-, Umgebungsanforderungen usw.) aufzunehmen. Diese 
        	Anforderungen werden in einem Dokument <emphasis>Ergänzende 
        	Anforderungsspezifikation</emphasis> festgehalten.
        </para>
        <para lang="es">
          Finalmente, puesto que los casos de uso son funcionales en su
          naturaleza, necesitamos un documento para capturar 
          los requerimientos no funcionales 
          (capacidad, rendimiento, necesidades de entorno, etc).
          Estos requerimientos son capturados en un documento conocido 
          como una <emphasis>especificación suplementaria 
          de requerimientos</emphasis>.
        </para>

        <sect2>

          <title>
          	<phrase lang="en">Process Steps</phrase>
          	<phrase lang="de">Prozess-Schritte</phrase>
          	<phrase lang="es">Pasos del Proceso</phrase>
          </title>

          <para lang="en">
	          The steps in the requirements capture process can be 
	          summarized as follows.
          </para>
          <para lang="de">
          	Die Schritte im Anforderungs-Erfassungs-Prozess können wie folgt 
          	zusammengefasst werden.
          </para>
          <para lang="es">
            Los pasos en el proceso de captura de requerimientos pueden ser
            resumidos como sigue.
          </para>

          <orderedlist>

            <listitem>

              <indexterm lang="en">
              	<primary>Vision Document</primary>
              </indexterm>
              <indexterm lang="de">
              	<primary>Visions-Dokument</primary>
              </indexterm>
              <indexterm lang="es">
                <primary>Documento de Visión</primary>
              </indexterm>
              
              <para lang="en">
	              Capture an overall view of the problem, and the 
	              desired characteristics of its solution in the 
	              <emphasis>vision document</emphasis>.
              </para>
              <para lang="de">
	              Das <emphasis>Visions-Dokument</emphasis> beinhaltet eine 
	              Gesamtsicht auf das Problem und die gewünschten Charakteristika 
	              seiner Lösung.
              </para>
              <para lang="es">
                Captura una vista general del problema, y las
                caracteristicas deseadas de su solución en el 
                <emphasis>documento de visión</emphasis>.
              </para>

            </listitem>

            <listitem>

              <indexterm lang="en"><primary>Use Case</primary></indexterm>
              <indexterm lang="de"><primary>Anwendungsfall</primary></indexterm>
              <indexterm lang="es"> 
                <primary>Casos de Uso</primary>
              </indexterm>

              <para lang="en">
	              Identify the <emphasis>use case</emphasis> and 
	              <emphasis>actors</emphasis> from the vision document and 
	              show their relationships on one or more <emphasis>use 
	              case diagrams</emphasis>.
              </para>
              <para lang="de">
              	Identifizieren Sie die <emphasis>Anwendungsfälle</emphasis> und 
              	<emphasis>Akteure</emphasis> aus dem Visions-Dokument und 
              	stellen deren Beziehungen zueinander in einem oder mehreren 
              	<emphasis>Anwendungsfalldiagrammen dar</emphasis>.
              </para>
              <para lang="es">
                Identificar los <emphasis>casos de uso</emphasis> 
                y <emphasis>actores</emphasis> desde el documento 
                de visión y mostrar sus relaciones en uno o mas 
                <emphasis>diagramas de casos de uso</emphasis>.
              </para>

            </listitem>

            <listitem>

              <indexterm lang="en">
              	<primary>Use Case Specification</primary>
              </indexterm>
              <indexterm lang="de">
              	<primary>Anwendungsfall-Spezifikation</primary>
              </indexterm>
              <indexterm lang="es">
                <primary>Especificación de Casos de Uso</primary>
              </indexterm>

              <indexterm lang="en">
              	<primary>Specification</primary>
              	<secondary>of Use Case</secondary>
              </indexterm>
              <indexterm lang="de">
              	<primary>Spezification</primary>
              	<secondary>von Anwendungsfällen</secondary>
              </indexterm>
              <indexterm lang="es">
                <primary>Especificación</primary>
                <secondary>de Casos de Uso</secondary>
              </indexterm>

              <para lang="en">
	              Give detailed <emphasis>use case 
	              specifications</emphasis> for each use case, covering 
	              normal and alternate behavior, pre- and 
	              post-conditions.
              </para>
              <para lang="de">
              	Erstellen Sie für jeden Anwendungsfall eine detaillierte 
              	<emphasis>Anwendungsfall-Spezifikation</emphasis>, die das 
              	normale und alternative Verhalten, die Vor- und Nachbedingungen 
              	beinhaltet.
	          </para>
              <para lang="es">
                Da <emphasis>especificaciones de casos de uso</emphasis>
                detalladas para cada caso de uso, cubriendo 
                el comportamiento normal y alternativo, 
                precondiciones y postcondiciones.
              </para>

            </listitem>

            <listitem>

              <indexterm lang="en">
              	<primary>Non-functional requirements</primary>
              </indexterm>
              <indexterm lang="de">
              	<primary>Nicht-funktionale Anforderungen</primary>
              </indexterm>
              <indexterm lang="es">
                <primary>Requerimientos no funcionales</primary>
              </indexterm>

              <indexterm lang="en">
              	<primary>Supplementary Requirement Specification</primary>
              </indexterm>
              <indexterm lang="de">
              	<primary>Ergänzende Anforderungs-Spezifikation</primary>
              </indexterm>
              <indexterm lang="es">
                <primary>Especificación de Requerimientos
		Suplementarios</primary>
              </indexterm>

              <para lang="en">
	              Capture all non-functional requirements in a 
	              <emphasis>supplementary requirements 
	              specification</emphasis>.
              </para>
              <para lang="de">
              	Fassen Sie alle nicht-funktionalen Anforderungen in einer 
              	<emphasis>Ergänzenden Anforderungs-Spezifikation</emphasis> 
              	zusammen.
              </para>
              <para lang="es">
                Captura todos los requerimientos no funcionales en 
                una <emphasis>especificación de requerimientos 
                suplementarios</emphasis>.
              </para>

            </listitem>

          </orderedlist>

          <para lang="en">
	          In any iterative development process, we will 
	          prioritize, and early iterations will focus on capturing the 
	          key behavior of the most important use cases.
          </para>
          <para lang="de">
          	In jedem iterativen Entwicklungsprozess werden wir priorisieren 
          	und frühe Iterationen werden sich darauf fokussieren, das 
          	hauptsächliche Verhalten der wichtigsten Anwendungsfälle aufzunehmen.
          </para>
          <para lang="es">
            En cualquier proceso de desarrollo iterativo, priorizaremos, 
            y las iteraciones tempranas se enfocaran en capturar 
            el comportamiento clave del los casos de uso mas importantes.
          </para>

          <para lang="en">
	          Most modern requirements capture processes agree that 
	          it is essential that the authoritative representative of the 
	          customer is fully involved throughout the process.
          </para>
          <para lang="de">
          	Die meisten modernen Anforderungs-Erfassungs-Prozesse unterstellen, 
          	dass es wichtig ist, dass der maßgebliche Repräsentant des Kunden
          	während dieses Prozesses vollständig involviert ist.
          </para>
          <para lang="es">
            La mayoría de los procesos de captura de requerimientos modernos
            están deacuerdo con que es esencial que un representante autorizado
            del cliente esté completamente involucrado a traves del proceso.
          </para>

        </sect2>

      </sect1>

      <sect1 id="s1.tut.req_process_output">

        <title>
        	<phrase lang="en">
        		Output of the Requirements Capture Process
        	</phrase>
        	<phrase lang="de">
        		Ergebnis des Anforderungs-Erfassungs-Prozesses
        	</phrase>
        	<phrase lang="es">
        	  Salida del Proceso de Captura de Requerimientos
        	</phrase>
        </title>

        <para lang="en">
	        Almost all the output of the requirements capture process 
	        is documentary. The only diagram is the use case diagram, 
	        showing the relationships between use cases and actors.
        </para>
        <para lang="de">
        	Fast alle Ergebnisse des Anforderungs-Erfassungs-Prozesses sind 
        	dokumentarisch. Das einzige Diagramm ist das Anwendungsfalldiagramm, 
        	das die Beziehungen zwischen den Anwendungsfällen und den Akteuren 
        	darstellt.
        </para>
        <para lang="es">
          Casi todo el resultado del proceso de captura 
          de requerimientos es documental. 
          El unico diagrama es el diagrama de casos de uso, 
          mostrando las relaciones entre casos de uso y actores.
        </para>

        <sect2 id="s2.tut.vision_document">

          <title>
          	<phrase lang="en">Vision Document</phrase>
          	<phrase lang="de">Visions-Dokument</phrase>
          	<phrase lang="es">Documento de Visión</phrase>
          </title>

          <indexterm lang="en"><primary>Vision Document</primary></indexterm>
          <indexterm lang="de"><primary>Visions-Dokument</primary></indexterm>
          <indexterm lang="es">
            <primary>Documento de Visión</primary>
          </indexterm>

          <para lang="en">
          	Typical sections of this document would be as follows.
          </para>
          <para lang="de">
          	Typische Kapitel dieses Dokumentes könnten die folgenden sein.
          </para>
          <para lang="es">
            Las secciones tipicas de este documento serían como 
            sigue.
          </para>


          <itemizedlist>

            <listitem>

              <para lang="en">
	              <emphasis>Summary</emphasis>. A statement of the 
	              context, problem and solution goals.
              </para>
              <para lang="de">
              	<emphasis>Zusammenfassung</emphasis>. Eine Aussage zum Umfeld, 
              	zum Problem und zu den Zielen der Lösung.
              </para>
              <para lang="es">
                <emphasis>Resumen</emphasis>. 
                Una declaración del contexto, 
                problema y objetivo de la solutión.
              </para>

            </listitem>

            <listitem>

              <indexterm lang="en">
              	<primary>Goals</primary>
              	<secondary>in the Vision document</secondary>
              </indexterm>
              <indexterm lang="de">
              	<primary>Ziele</primary>
              	<secondary>im  Visions-Dokument</secondary>
              </indexterm>
              <indexterm lang="es">
                <primary>Objetivos</primary>
                <secondary>en el documento de Visión</secondary>
              </indexterm>

              <para lang="en">
	              <emphasis>Goals</emphasis>. What are we trying to 
	              achieve (and how do we wish to achieve it).
              </para>
              <para lang="de">
              	<emphasis>Ziele</emphasis>. Was wir erreichen wollen (und wie 
              	wir es erreichen wollen).
              </para>
              <para lang="es">
                <emphasis>Objetivos</emphasis>. 
                Que estamos intentando alcanzar (y como deseamos alcanzarlo).
              </para>

            </listitem>

            <listitem>

              <indexterm lang="en">
              	<primary>Market Context</primary>
              	<secondary>in the Vision document</secondary>
              </indexterm>
              <indexterm lang="de">
              	<primary>Marktumfeld</primary>
              	<secondary>im Visions-Dokument</secondary>
              </indexterm>
              <indexterm lang="es">
                <primary>Contexto de Mercado</primary>
                <secondary>en el documento de Visión</secondary>
              </indexterm>

              <para lang="en">
	              <emphasis>Market Context</emphasis> or 
	              <emphasis>Contractual Arrangements</emphasis>. For a 
	              market led development, this should indicate target 
	              markets, competitive differentiators, compelling events 
	              and so forth. For a contractual development this should 
	              explain the key contractual drivers.
              </para>
              <para lang="de">
	              <emphasis>Marktumfeld</emphasis> oder 
	              <emphasis>vertragliche Vereinbarungen</emphasis>. Bei einer 
	              Entwicklung zur Marktführerschaft, sollte es die Zielmärkte, 
	              die Alleinstellungsmerkmale, die zwingenden Ereignisse und so 
	              weiter aufzeigen. Bei einer vertraglich vereinbarten 
	              Entwicklung sollte es die Hauptelemente der vertraglichen 
	              Vereinbarung erläutern.
              </para>
              <para lang="es">
                <emphasis>Contexto de Mercado</emphasis> o 
                <emphasis>Convenios Contractuales</emphasis>. 
                Para un desarrollo guiado por el mercado, 
                esto debería indicar mercados objetivo,
                diferencidores competitivos, eventos motivadores 
                y cosas así. 
                Para un desarrollo contractual esto debería explicar 
                los factores clave contractuales.
              </para>
 
            </listitem>

            <listitem>

              <indexterm lang="en">
              	<primary>Stakeholders</primary>
              	<secondary>in the Vision document</secondary>
              </indexterm>
              <indexterm lang="de">
              	<primary>Nutzer</primary>
              	<secondary>im Visions-Dokument</secondary>
              </indexterm>
              <indexterm lang="es">
                <primary>Partes Implicadas</primary>
                <secondary>en un documento de Visión</secondary>
              </indexterm>

              <para lang="en">
	              <emphasis>Stakeholders</emphasis>. The users (in 
	              the widest sense) of the system. Many of these will map 
	              in to actors, or control equipment that maps into 
	              actors.
              </para>
              <para lang="de">
              	<emphasis>Nutzer</emphasis>. Die Nutzer (im weitesten 
              	Sinne) des Systems. Viele davon werden als Akteure, oder 
              	Steuer-Equipment das in Akteure umgewandelt wird, abgebildet. 
              </para>
              <para lang="es">
                <emphasis>Partes Implicadas</emphasis>. 
                Los usuarios (en el sentido más amplio) del sistema. 
                Muchos de ellos se mapearán en actores, 
                o equipamiento de control que se mapea en actores.
              </para>

            </listitem>

            <listitem>

              <indexterm lang="en">
              	<primary>Key features</primary>
              	<secondary>in the Vision document</secondary>
              </indexterm>
              <indexterm lang="de">
              	<primary>Haupteigenschaften</primary>
              	<secondary>im Visions-Dokument</secondary>
              </indexterm>
              <indexterm lang="es">
                <primary>Caracteristicas clave</primary>
                <secondary>en el documento de Visión</secondary>
              </indexterm>

              <para lang="en">
	              <emphasis>Key Features</emphasis>. At the very 
	              highest level what are they key functional aspects of the 
	              problem/desired solution. These will largely map down to 
	              the use cases. It is helpful to give some prioritization 
	              here.
              </para>
              <para lang="de">
              	<emphasis>Haupteigenschaften</emphasis>. Auf einer sehr hohen 
              	Abstraktionsebene: Was sind die hauptsächlichen Aspekte des 
              	Problems/der gewünschten Lösung. Es ist hilfreich, hier bereits 
              	zu priorisieren.
              </para>
              <para lang="es">
                <emphasis>Caracteristicas clave</emphasis>. 
                Los aspectos funcionales clave de la solución deseada 
                al problema al nivel mas alto. 
                Estos se mapearán ampliamente en los casos de uso. 
                Es de ayuda poner algo de priorización aquí.
              </para>

            </listitem>

            <listitem>

              <indexterm lang="en">
              	<primary>Constraints</primary>
              	<secondary>in the Vision document</secondary>
              </indexterm>
              <indexterm lang="de">
              	<primary>Randbedingungen</primary>
              	<secondary>im Visions-Dokument</secondary>
              </indexterm>
              <indexterm lang="es">
                <primary>Limitaciones</primary>
                <secondary>en el documento de Visión</secondary>
              </indexterm>

              <indexterm lang="en">
              	<primary>Non-functional parameters</primary>
              	<secondary>in the Vision document</secondary>
              </indexterm>
              <indexterm lang="de">
              	<primary>Nicht-funktionale Parameter</primary>
              	<secondary>im Visions-Dokument</secondary>
              </indexterm>
              <indexterm lang="es">
                <primary>Parametros no funcionales</primary>
                <secondary>en el documento de Visión</secondary>
              </indexterm>

              <para lang="en">
	              <emphasis>Constraints</emphasis>. A high level view 
	              of the non-functional parameters of the system. These 
	              will be worked out in detail in the supplementary 
	              requirements specification.
              </para>
              <para lang="de">
              	<emphasis>Randbedingungen</emphasis>. Eine Sicht auf die 
              	nicht-funktionalen Parameter des Systems auf einer sehr hohen 
              	Abstraktionsebene. Diese werden in der ergänzenden 
              	Anforderungsspezifikation detailliert ausgearbeitet.
              </para>
              <para lang="es">
                <emphasis>Limitaciónes</emphasis>. 
                Una visión general de los parametros 
                no funcionales del sistema. 
                Estos serán tratados detalle en la especificación 
                de requerimientos suplementarios.
              </para>

            </listitem>

            <listitem>

              <para lang="en">
	              <emphasis>Appendix</emphasis>. A listing of the 
	              actors and use cases that will be needed to meet this 
	              vision. It is useful to link to these from the earlier 
	              sections to ensure comprehensive coverage.
              </para>
              <para lang="de">
              	<emphasis>Anhang</emphasis>. Eine Liste der Akteure und 
              	Anwendungsfälle die zur Erfüllung der Vision notwendig sind. Es
              	ist hilfreich, diese mit den vorher beschriebenen Abschnitten 
              	zu verlinken um eine in sich geschlossene Darstellung 
              	sicherzustellen. 
              </para>
              <para lang="es">
                <emphasis>Apendice</emphasis>.
                Un listado de los actores y
                casos de uso que serán necesarios para cumplir esta visión. 
                Es util enlazar a estos desde las secciones tempranas 
                para asegurar una cobertura exahustiva.
              </para>

            </listitem>

          </itemizedlist>

        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">Use Case Diagram</phrase>
          	<phrase lang="de">Anwendungsfalldiagramm</phrase>
          	<phrase lang="es">Diagrama de Casos de Uso</phrase>
          </title>

          <indexterm lang="en">
          	<primary>Use Case Diagram</primary>
          </indexterm>
          <indexterm lang="de">
          	<primary>Anwendungsfalldiagramm</primary>
          </indexterm>
          <indexterm lang="es">
            <primary>Diagrama de Casos de Uso</primary>
          </indexterm>

          <indexterm lang="en">
          	<primary>Diagram</primary>
          	<secondary>Use Case</secondary>
          </indexterm>
          <indexterm lang="de">
          	<primary>Diagramm</primary>
          	<secondary>Anwendungsfall</secondary>
          </indexterm>
          <indexterm lang="es">
            <primary>Diagrama</primary>
            <secondary>Casos de Uso</secondary>
          </indexterm>


          <para lang="en">
	          The vision document has identified the use cases and 
	          actors. The use case diagram captures how they interact. In 
	          our ATM example we have identified <quote>customer uses 
	          machine</quote>, <quote>maintain machine</quote> and 
	          <quote>audit</quote> as the three main use cases. We have 
	          identified <quote>customer</quote>, maintenance 
	          engineer<quote>,</quote><quote>local branch official</quote> 
	          and <quote>central computer</quote> as the actors.
          </para>
          <para lang="de">
          	 Das Visions-Dokument identifizierte die Anwendungsfälle und Akteure. 
          	 Das Anwendungsfalldiagramm stellt dar, wie sie interagieren. In 
          	 unserem ATM (Geldautomat) Beispiel haben wir <quote>Kunde nutzt den 
          	 Automaten</quote>, <quote>Wartung des Automaten</quote> und 
          	 <quote>Revision</quote> als die drei Hauptanwendungsfälle 
          	 identifiziert. Als Akteure haben wir <quote>Kunde</quote>, 
          	 <quote>Wartungsingenieur</quote>, <quote>lokaler Zweigstellenbeamter
          	 </quote> und <quote>Zentralcomputer</quote> identifiziert.
          </para>
          <para lang="es">
            El documento de visión ha identificado los casos 
            de uso y los actores. 
            El diagrama de casos de uso captura como interaccionan. 
            En nuestro ejemplo de Cajero Automatico hemos identificado
            <quote>cliente usa cajero</quote>, 
            <quote>mantener cajero</quote> y 
            <quote>auditar</quote> 
            como los tres casos de uso principales. 
            Hemos identificado <quote>cliente</quote>, 
            ingeniero de mantenimiento<quote>, </quote>
            <quote>oficial de sucursal</quote> y 
            <quote>sistema central</quote> como los actores.
          </para>

          <para lang="en">
	          <xref linkend="fig.tut.atm_use_case_diagram_basic"/> 
	          shows how this could be displayed on a use case diagram. The 
	          use cases are shown as ovals, the actors as stick people 
	          (even where they are machines), with lines (known as 
	          <emphasis>associations</emphasis> connecting use cases to the 
	          actors who are involved with them. A box around the use cases 
	          emphasizes the boundary between the system (defined by the 
	          use cases) and the actors who are external.
          </para>
          <para lang="de">
	          <xref linkend="fig.tut.atm_use_case_diagram_basic" /> zeigt, wie 
	          das in einem Anwendungsfalldiagramm dargestellt werden kann. Die 
	          Anwendungsfälle werden als Ovale dargestellt, die Akteure als 
	          Strichmännchen (auch wenn es Maschinen sind), mit Linien (als 
	          Assoziationen bekannt), die die Anwendungsfälle mit den damit 
	          involvierten Akteuren verbinden. Ein Rahmen um die Anwendungsfälle 
	          stellt die Abgrenzung zwischen dem System (durch die 
	          Anwendungsfälle definiert) und den Akteuren dar, die extern sind.
          </para>
          <para lang="es">
            <xref linkend="fig.tut.atm_use_case_diagram_basic" /> 
            muestra como esto puede ser visualizado 
            en un diagrama de casos de uso. 
            Los casos de uso son mostrados como ovalos, 
            los actores como monigotes (incluso cuando son maquinas), 
            con lineas (conocidas como <emphasis>asociaciones</emphasis>) 
            conectando los casos de uso a los actores 
            que están involucrados en ellos. 
            Un cuadro alrededor de los casos de uso enfatiza 
            la frontera entre el sistema (definido por los casos de uso) 
            y los actores que son externos.
          </para>

          <note>

            <para lang="en">
	            Not all analysts like to use a box around the use 
	            cases. It is a matter of personal choice.
            </para>
            <para lang="de">
            	Nicht alle Analytiker möchten einen Rahmen um die 
            	Anwendungsfälle verwenden. Dies ist ein Fall persönlicher 
            	Vorlieben.
            </para>
            <para lang="es">
              No todos los analisis gustan de usar un cuadro alrededor 
              de los casos de uso. 
              Es un asunto de opción personal.
            </para>

          </note>

          <figure float="1" id="fig.tut.atm_use_case_diagram_basic">

            <title>
            	<phrase lang="en">
            		Basic use case diagram for an ATM system
            	</phrase>
            	<phrase lang="de">
            		Grundlegendes Anwendungsfalldiagramm für einen Geldautomaten
            	</phrase>
            	<phrase lang="es">
            	  Diagrama de casos de uso basico 
            	  para un sistema de Cajero Automatico
            	</phrase>
            </title>

            <screenshot>
              <mediaobject>
                <imageobject>
                  <imagedata align="center"
                             fileref="images/tutorial/atm_use_case_diagram_basic.gif"
                             format="GIF"/>
                </imageobject>
              </mediaobject>
            </screenshot>
          </figure>

          <para lang="en">
	          The following sections show how the basic use case 
	          diagram can be extended to show additional information about 
	          the system being designed.
          </para>
          <para lang="de">
          	Die folgenden Abschnitte zeigen, wie das grundlegene 
          	Anwendungsfalldiagramm erweitert werden kann, um zusätzliche 
          	Informationen über das zu designende System darzustellen.
          </para>
          <para lang="es">
            Las siguientes secciones muestran como el diagrama 
            de casos de uso básico puede ser extendido 
            para mostrar información adicional sobre el sistema 
            que está siendo diseñado.
          </para>

          <sect3>

            <title>
            	<phrase lang="en">Active and Passive Actors</phrase>
            	<phrase lang="de">Aktive und passive Akteure</phrase>
            	<phrase lang="es">Actores Activos y Pasivos</phrase>
            </title>

            <indexterm lang="en"><primary>Active Actor</primary></indexterm>
            <indexterm lang="de"><primary>Aktiver Akteur</primary></indexterm>
            <indexterm lang="es">
              <primary>Actor Activo</primary>
            </indexterm>
            
            <para lang="en">
	            <emphasis>Active</emphasis> actors initiate 
	            interaction with the system. This can be shown by placing 
	            an arrow on the association from the actor pointing toward 
	            the use case. In the ATM example, the customer is an active 
	            actor.
            </para>
            <para lang="de">
            	<emphasis>Aktive</emphasis> Akteure initiieren eine Interaktion 
            	mit dem System. Dies kann durch einen Pfeil in der Assoziation 
            	vom Akteur zum Anwendungsfall dargestellt werden. Im 
            	Geldautomaten-Beispiel ist der Kunde ein aktiver Akteur.
            </para>
            <para lang="es">
              Los actores <emphasis>Activos</emphasis> inician 
              la interacción con el sistema. 
              Esto puede ser mostrado colocando una flecha en 
              la asociación desde el actor apuntando hacia el caso 
              de uso. 
              En le ejemplo del Cajero Automatico, el cliente es 
              un actor activo.
            </para>

            <indexterm lang="en"><primary>Passive Actor</primary></indexterm>
            <indexterm lang="de"><primary>Passiver Akteur</primary></indexterm>
            <indexterm lang="es">
              <primary>Actor Pasivo</primary>
            </indexterm>

            <para lang="en">
	            Interaction with <emphasis>passive</emphasis> actors 
	            is initiated by the system. This can be shown by placing an 
	            arrow on the association from the use case pointing toward 
	            the actor. In the ATM example, the central computer is a 
	            passive actor.
            </para>
            <para lang="de">
            	Die Interaktion mit <emphasis>passiven</emphasis> Akteuren wird 
            	durch das System initiiert. Dies kann durch einen Pfeil in der 
            	Assoziation vom Anwendungsfall zum Akteur dargestellt werden.
            	Im Geldautomaten-Beispiel ist der Zentralcomputer ein passiver 
            	Akteur.
            </para>
            <para lang="es">
              La interacción con los actores <emphasis>pasivos</emphasis> 
              es iniciada por el sistema. 
              Esto puede ser mostrado colocando una flecha 
              en la asociación desde el caso de uso apuntando hacia 
              el actor. 
              En el ejemplo del Cajero Automatico el sistema central 
              es un actor pasivo.
            </para>

            <para lang="en">
	            This is a good example where the arrow helps, since 
	            it allows us to distinguish an event driven system (the ATM 
	            initiates interaction with the central computer) from a 
	            polling system (the central computer interrogates the ATM 
	            from time to time).
            </para>
            <para lang="de">
            	Dies ist ein gutes Beispiel, wo die Pfeile helfen, da es uns 
            	erlaubt, ein ereignisgetriebenes System (der Geldautomat 
            	initiiert die Interaktion mit dem Zentralcomputer) von einem 
            	zyklisch abfragenden System (der Zentralcomputer fragt den 
            	Geldautomaten von Zeit zu Zeit ab) zu unterscheiden.
            </para>
            <para lang="es">
              Este es un buen ejemplo donde la flecha ayuda, 
              puesto que nos permite distinguir un sistema conducido 
              por eventos (el Cajero Automático inicia 
              la interacción con el sistema central) 
              de un sistema de consulta continua 
              (el sistema central interroga 
              al Cajero Automático de tiempo en tiempo).
            </para>

            <para lang="en">
	            Where an actor may be either active or passive, 
	            depending on circumstances, the arrow may be omitted. In 
	            the ATM example the bank engineer fits into this category. 
	            Normally he is active, turning up on a regular cycle to 
	            service the machine. However if the ATM detects a fault, it 
	            may summon the engineer to fix it.
            </para>
            <para lang="de">
            	Dort wo ein Akteur entweder aktiv oder passiv sein kann, je nach 
            	den Umständen, kann der Pfeil weggelassen werden. Im 
            	Geldautomaten-Beispiel fällt der Bankingenieur in diese 
            	Kategorie. Normalerweise ist er aktiv, indem er regelmässig 
            	auftaucht um die Maschine zu warten. Wenn jedoch der Geldautomat 
            	einen Fehler entdeckt, kann er den Ingenieur auffordern diesen 
            	zu beheben.
            </para>
            <para lang="es">
              Donde un actor puede ser, una de dos, activo o pasivo,
              dependiendo de las circunstancias, la flecha puede ser omitida. 
              En el ejemplo del Cajero Automático el ingeniero 
              del banco se ajusta a esta categoría. 
              Normalmente el está activo, 
              poniendose en funcionamiento en cicles regulares 
              para dar servicio al Cajero. 
              Sin embargo is el Cajero Automático detecta un fallo, 
              puede convocar al ingeniero para repararlo.
            </para>


            <para lang="en">
              The use of arrows on associations is referred to as 
              the <emphasis>navigation</emphasis> of the association.
              We shall see this used elsewhere in UML later on.
              The choice, by the OMG, of zero vice two arrowheads to show
              a bidirectional association is unfortunate.
              Under this convention you cannot distinguish between an
              association whose navigation has yet to be determined and one
              that is bidirectional.
            </para>
            <para lang="de">
            	Die Verwendung von Pfeilen bei Assoziationen wird als 
            	<emphasis>Navigation</emphasis> der Assoziation bezeichnet.
            	Wir sollten dies später in der UML im Einsatz sehen.
            	Die Wahl der OMG eine bidirektionale Assoziation durch keine 
            	anstelle von zwei Pfeilspitzen darzustellen ist unvorteilhaft.
            	Mit dieser Konvention können Sie nicht zwischen einer 
            	Assoziation unterscheiden, deren Navigation noch zu bestimmen 
            	ist und einer die bidirektional ist.
            </para>
            <para lang="es">
              El uso de flechas en asociaciones es referido como 
              la <emphasis>navegación</emphasis> de la asociación. 
              Veremos esto usado en otro lugar en UML mas tarde.
            </para>


            <para lang="en">
	            <xref linkend="fig.tut.atm_use_case_diagram_navigation"/> 
	            shows the ATM use case diagram with navigation 
	            displayed.
            </para>
            <para lang="de">
	            <xref linkend="fig.tut.atm_use_case_diagram_navigation"/>
	            zeigt das Geldautomaten-Anwendungsfalldiagramm mit dargestellter 
	            Navigation. 
            </para>
            <para lang="es">
              <xref linkend="fig.tut.atm_use_case_diagram_navigation" />
              muestra el diagrama de casos de uso del Cajero Automático 
              con navegación representada.
            </para>

            <figure float="1" id="fig.tut.atm_use_case_diagram_navigation">

              <title>
              	<phrase lang="en">
              		Use case diagram for an ATM system showing navigation.
              	</phrase>
              	<phrase lang="de">
              		Anwendungsfalldiagramm für einen Geldautomaten mit 
              		Navigation.
              	</phrase>
              	<phrase lang="es">
              	  Diagrama de casos de uso para un Cajero Automático
              	  mostrando navegación.
              	</phrase>
              </title>

              <screenshot>
                <mediaobject>
                  <imageobject>
                    <imagedata align="center"
                               fileref="images/tutorial/atm_use_case_diagram_navigation.gif"
                               format="GIF"/>
                  </imageobject>
                </mediaobject>
              </screenshot>
            </figure>

          </sect3>

          <sect3>

            <title>
            	<phrase lang="en">Multiplicity</phrase>
            	<phrase lang="de">Kardinalität</phrase>
            	<phrase lang="es">Multiplicidad</phrase>
            </title>

            <indexterm lang="en">
            	<primary>Multiplicity</primary>
            	<secondary>in a Use Case Diagram</secondary>
            </indexterm>
            <indexterm lang="de">
            	<primary>Kardinalität</primary>
            	<secondary>in einem Anwendungsfalldiagramm</secondary>
            </indexterm>
            <indexterm lang="es">
              <primary>Multiplicidad</primary>
              <secondary>en un Diagrama de Casos de Uso</secondary>
            </indexterm>

            <para lang="en">
	            It can be useful to show the 
	            <emphasis>multiplicity</emphasis> of associations between 
	            actors and use cases. By this we mean how many instances of 
	            an actor interact with how many instances of the use 
	            case.
            </para>
            <para lang="de">
            	Es kann sehr nützlich sein, die <emphasis>Multiplizität
            	</emphasis> von Assoziationen zwischen Akteuren und 
            	Anwendungsfällen darzustellen. Damit meinen wir, wie viele 
            	Ausprägungen eines Akteurs mit wie vielen Ausprägungen eines 
            	Anwendungsfalles interagieren.
            </para>
            <para lang="es">
              Puede ser util mostrar la <emphasis>multiplicidad</emphasis>
              de asociaciones entre actores y casos de uso. 
              Con esto queremos decir cuantas instancias 
              de un actor interacciona con cuantas instancias 
              del caso de uso.
            </para>

            <para lang="en">
	            By default we assume one instance of an actor 
	            interacts with one instance of a use case. In other cases 
	            we can label the multiplicity of one end of the 
	            association, either with a number to indicate how many 
	            instances are involved, or with a range separated by two 
	            periods (<literal>..</literal>). An asterisk (
	            <literal>*</literal>) is used to indicate an arbitrary 
	            number.
            </para>
            <para lang="de">
            	Standardmäßig nehmen wir an, dass eine Ausprägung eines Akteurs 
            	mit einer Ausprägung eines Anwendungsfalles interagiert. In den 
            	anderen Fällen können wird die Multiplizität an einem Ende der 
            	Assoziation kennzeichnen. Entweder mit einer Nummer, um 
            	darzustellen, wie viele Ausprägungen involviert sind, oder mit 
            	einem durch zwei Punkten separierten Bereich (<literal>..
            	</literal>). Ein Stern (<literal>*</literal>) wird verwendet, 
            	um eine beliebige Zahl darzustellen.
            </para>
            <para lang="es">
              Po defecto asumimos que una instancia 
              de un actor interacciona con una instancia 
              de un caso de uso. 
              En otros casos podemos etiquetar la multiplicidad  
              de un extremo de la asociación, una de dos con 
              un número para indicar cuantas instancias están
              involucradas, o con un rango separado por 
              dos puntos (<literal>..</literal>). 
              Un asterisco (<literal>*</literal>) es usado 
              para indicar un número arbitrario.
            </para>

            <para lang="en">
	            In the ATM example, there is only one central 
	            computer, but it may be auditing any number of ATM uses. So 
	            we place the label <literal>0..*</literal> at the use case 
	            end. There is no need for a label at the other end, since 
	            the default is one.
            </para>
            <para lang="de">
            	Im Geldautomaten-Beispiel gibt es nur einen Zentralcomputer, 
            	aber es können beliebig viele Nutzungen des Geldautomaten 
            	aufgezeichnet werden. Daher plazieren wir das Kennzeichen 
            	<literal>0..*</literal> am Ende des Anwendungsfalles. Es gibt 
            	keine Notwendigkeit für eine Kennzeichnung am anderen Ende, da 
            	der Standard 1 ist.
            </para>
            <para lang="es">
              En el ejemplo del Cajero Automático, 
              solo hay un sistema central, 
              pero el puede estar gestionando cualquier número 
              de usos de Cajero Automático. 
              Por lo tanto colocamos la etiqueta 
              <literal>0..*</literal> en el extremos del caso de uso. 
              No se necesita etiqueta en el otro extremo, 
              ya que por defecto es uno.
            </para>

            <para lang="en">
	            A local bank will have up to three officials 
	            authorized to unload and load ATM machines. So at the actor 
	            end of the relationship with the use case <literal>Maintain 
	            ATM</literal>, we place the label <literal>1..3</literal>. 
	            They may be dealing with any number of ATM machines, so at 
	            the other end we place the label <literal>
	            0..*</literal>.
            </para>
            <para lang="de">
            	Eine lokale Bank kann bis zu drei Beamte haben, die autorisiert  
            	sind, die Geldautomaten zu leeren und zu befüllen. Daher 
            	plazieren wir bei der Beziehung zwischen dem Akteur und dem 
            	Anwendungsfall <literal>Wartung Geldautomat</literal> am Ende 
            	zum Akteur die Kennzeichnung <literal>1..3</literal>.
            	Sie können sich mit beliebig vielen Geldautomaten befassen, 
            	so dass wir auf dem anderen Ende das Kennzeichen <literal>0..*
            	</literal> plazieren.
            </para>
            <para lang="es">
              Un banco local tendrá hasta tres oficiales autorizados 
              para cargar y descargar los Cajeros Automáticos. 
              Asi en el extremo del actor de la relación con 
              el caso de uso 
              <literal>Mantenimiento Cajero Automático</literal>, 
              colocamos la etiqueta <literal>1..3</literal>. 
              Ellos pueden estar tratando con cualquier número 
              de Cajeros Automaticos, así en el otro extremo colocamos 
              la etiqueta <literal>0..*</literal>.
            </para>

            <para lang="en">
	            There may be any number of customers and there may be 
	            any number of ATM systems they could use. So at each end of 
	            the association we place the label <literal>
	            0..*</literal>.
            </para>
            <para lang="de">
            	Es gibt beliebig viele Kunden und beliebig viele Geldautomaten 
            	die diese nutzen dürfen. Daher plazieren wir an jedem Ende der 
            	Assoziation das Kennzeichen <literal>0..*</literal>.
            </para>
            <para lang="es">
              Puede haber cualquier número de clientes y puede haber 
              cualquier número de sistemas de Cajero Automático 
              que pueden usar.
              Así a cada extremo de la asociación colocamos 
              la etiqueta <literal> 0..*</literal>.
            </para>

            <para lang="en">
	            <xref linkend="fig.tut.atm_use_case_diagram_multiplicity"/> 
	            shows the ATM use case diagram with multiplicity 
	            displayed.
            </para>
            <para lang="de">
	            <xref linkend="fig.tut.atm_use_case_diagram_multiplicity"/>
	            zeigt das Geldautomaten-Anwendungsfalldiagramm mit dargestellter 
	            Kardinalität. 
            </para>
            <para lang="es">
              <xref linkend="fig.tut.atm_use_case_diagram_multiplicity" />
              muestra el diagrama de casos de uso del Cajero Automático 
              con multiplicidad representada.
            </para>

            <figure float="1" id="fig.tut.atm_use_case_diagram_multiplicity">

              <title>
              	<phrase lang="en">
              		Use case diagram for an ATM system showing multiplicity.
              	</phrase>
              	<phrase lang="de">
	              	Anwendungsfalldiagramm für einen Geldautomaten und 
	              	dargestellter Kardinalität.
              	</phrase>
                <phrase lang="es">
                  Diagrama de casos de uso para un sistema 
                  de Cajero Automático mostrando multiplicidad.
                </phrase>

              </title>

              <screenshot>
                <mediaobject>
                  <imageobject>
                    <imagedata align="center"
                               fileref="images/tutorial/atm_use_case_diagram_multiplicity.gif"
                               format="GIF"/>
                  </imageobject>
                </mediaobject>
              </screenshot>
            </figure>

            <para lang="en">
	            Multiplicity can clutter a diagram, and is often not 
	            shown, except where it is critical to understanding. In the 
	            ATM example we would only choose to show <literal>
	            1..3</literal> against the local bank official, since all 
	            others are obvious from the context.
            </para>
            <para lang="de">
            	Die Multiplizität kann ein Diagramm überladen und wird oft nicht 
            	angezeigt, ausser wo es für das Verständnis kritisch ist. Im 
            	Beispiel Geldautomat würde wir nur <literal>1..3</literal> zum 
            	lokalen Bankbeamten darstellen, da alle anderen aus dem Kontext 
            	heraus offensichtlich sind.
            </para>
            <para lang="es">
              La multiplicidad puede abarrotar un diagrama, 
              y a menudo no se muestra, excepto donde 
              es crítico comprenderlo. 
              En el ejemplo de Cajero Automatico solo elegiriamos 
              mostrar <literal>1..3</literal> contra el oficial del banco, 
              ya que todos los demas son obvios por el contexto.
            </para>

          </sect3>

          <sect3>

            <title>
            	<phrase lang="en">Hierarchies of Use Cases</phrase>
            	<phrase lang="de">Hierarchien von Anwendungsfällen</phrase>
            	<phrase lang="es">Jerarquías de Casos de Uso</phrase>
            </title>

            <indexterm lang="en">
            	<primary>Hierarchy of Use Cases</primary>
            </indexterm>
            <indexterm lang="de">
            	<primary>Hierarchie von Anwendungsfällen</primary>
            </indexterm>
            <indexterm lang="es">
              <primary>Jerarquía de Casos de Uso</primary>
            </indexterm>

            <indexterm lang="en">
            	<primary>Use Case</primary>
            	<secondary>Hierarchy</secondary>
            </indexterm>
            <indexterm lang="de">
            	<primary>Anwendungsfall</primary>
            	<secondary>Hierarchie</secondary>
            </indexterm>
            <indexterm lang="es">
              <primary>Casos de Uso</primary>
              <secondary>Jerarquía</secondary>
            </indexterm>

            <para lang="en">
	            In our ATM example so far we have just three use 
	            cases to describe all the behavior of the system. While use 
	            cases should always describe a significant chunk of system 
	            behavior, if they are too general they can be difficult to 
	            describe.
            </para>
            <para lang="de">
            	In unserem Geldautomatenbeispiel haben wir jetzt drei 
            	Anwendungsfälle, um das Verhalten des Systems zu beschreiben. 
            	Auch wenn Anwendungsfälle immer einen signifikanten Teil des 
            	Systemverhaltens beschreiben sollten, wenn diese zu generell 
            	sind, können sie schwer zu beschreiben sein.
            </para>
            <para lang="es">
              En nuestro ejemplo de Cajero Automatico hasta 
              ahora tememos solo tres casos de uso para describir 
              el comportamiento del sistema. 
              Mientras los casos de uso siempre deberían describir 
              un trozo significativo del comportamiento del sistema, 
              si son demasiado generales pueden 
              ser dificiles de describir.
            </para>

            <para lang="en">
	            We could for example define the behavior of the use 
	            case <quote>Use ATM</quote> in terms of the behavior of 
	            three simpler use cases, <quote>Deposit Cash</quote>, 
	            <quote>Withdraw Cash</quote> and <quote>Query 
	            Account</quote>. The main use case could be specified by 
	            <emphasis>including</emphasis> the behavior of the 
	            subsidiary use cases where needed.
            </para>
            <para lang="de">
            	Wir könnten zum Beispiel das Verhalten des Anwendungsfalles 
            	<quote>Geldautomat nutzen</quote> durch das Verhalten von drei 
            	einfacheren Anwendungsfällen, wie <quote>Bargeld lagern</quote>,
            	<quote>Bargeld ausgeben</quote> und <quote>Konto abfragen</quote> 
            	ausdrücken. Der Hauptanwendungsfall könnte durch <emphasis>
            	einbinden (include)</emphasis> des Verhaltens der benötigten 
            	Unteranwendungsfälle spezifiziert werden.
            </para>
            <para lang="es">
              Podríamos por ejemplo definir el comportamiento 
              del caso de uso <quote>Uso Cajero</quote> en terminos 
              del comportamiento de los tres casos de uso mas simples, 
              <quote>Depositar Dinero</quote>, 
              <quote>Retirar Dinero</quote> y 
              <quote>Consultas de Cuenta</quote>. 
              El caso de uso principal podría ser especificado 
              <emphasis>incluyendo</emphasis> el comportamiento 
              de los casos de uso subsidiarios necesarios.
            </para>

            <para lang="en">
	            Similarly the <quote>Maintain ATM</quote> use case 
	            could be defined in terms of two use cases <quote>Maintain 
	            Equipment</quote> and <quote>Reload ATM</quote>. In this 
	            case the two actors involved in the main use case are 
	            really only involved in one or other of the two subsidiary 
	            use cases and this can be shown on the diagram.
            </para>
            <para lang="de">
            	Der Anwendungsfall <quote>Geldautomat warten</quote> könnte 
            	ebenfalls durch zwei Anwendungsfälle <quote>Equipment warten
            	</quote> und <quote>Geldautomat neu starten</quote> definiert 
            	werden. In diesem Fall sind die zwei im Hauptanwendungsfall 
            	involvierten Akteure natürlich nur in einem oder dem anderen 
            	der beiden Unteranwendungsfälle involviert. Dies wird im 
            	nachfolgenden Diagramm dargestellt.
            </para>
            <para lang="es">
              Similarmente el caso de uso <quote>Mantener Cajero</quote> 
              podría ser definido en terminos de dos casos de uso 
              <quote>Mantener Equipamiento</quote> 
              y <quote>Recargar Cajero</quote>. 
              En este caso los dos actores involucrados  
              en el caso de uso principal están realmente solo involucrados 
              en uno u otro de los dos casos de uso subsidiarios y 
              esto puede ser mostrado en el diagrama.
            </para>

            <indexterm lang="en">
            	<primary>Include Relationship</primary>
            </indexterm>
            <indexterm lang="de"><primary>Include-Beziehung</primary></indexterm>

            <indexterm lang="en">
            	<primary>Relationship</primary>
            	<secondary>Include</secondary>
            </indexterm>
            <indexterm lang="de">
            	<primary>Beziehung</primary>
            	<secondary>Include</secondary>
            </indexterm>
            <indexterm lang="es">
              <primary>Relación</primary>
              <secondary>Inclusión (Include)</secondary>
            </indexterm>

            <indexterm lang="es">
              <primary>Relación de Inclusión (Include)</primary>
            </indexterm>

            <para lang="en">
	            The decomposition of a use case into simpler sub-use 
	            cases is shown in UML by using an <emphasis>include 
	            relationship</emphasis>, a dotted arrow from the main use 
	            case to the subsidiary, with the label 
	            <emphasis>&laquo;include&raquo;</emphasis>.
            </para>
            <para lang="de">
            	Die Aufteilung eines Anwendungsfalles in einfacherere 
            	Unteranwendungsfälle wird in UML durch eine <emphasis>include 
	            Beziehung</emphasis>, einem gestrichelten Pfeil vom 
	            Hauptanwendungsfall zum Unteranwendungsfall mit der Kennzeichnung 
	            <emphasis>&laquo;include&raquo;</emphasis> bezeichnet.
            </para>
            <para lang="es">
              La descomposición de un caso de uso en subcasos 
              de uso mas simples es mostrada en UML usando 
              una <emphasis>relación de inclusión</emphasis>, 
              una flecha punteada desde el caso de uso principal hasta 
              el subsidiario, 
              con la etiqueta <emphasis>«include»</emphasis>.
            </para>


            <figure float="1" id="fig.tut.atm_use_case_diagram_include">

              <title>
              	<phrase lang="en">
              		Use case diagram for an ATM system showing include 
              		relationships.
              	</phrase>
              	<phrase lang="de">
	              	Anwendungsfalldiagramm für einen Geldautomaten mit 
	              	include-Beziehungen.
              	</phrase>
              	<phrase lang="es">
              	  Diagrama de caso de uso para un sistema 
              	  de Cajero Automático mostrando relaciones de inclusión.
              	</phrase>
              </title>

              <screenshot><mediaobject><imageobject>
              <imagedata align="center"
               fileref="images/tutorial/atm_use_case_diagram_include.gif"
               format="GIF"/></imageobject></mediaobject></screenshot>
            </figure>

            <para lang="en">
	            Include relationships are fine for breaking down the 
	            use case behaviors in to hierarchies. However we may also 
	            want to show a use case that is an 
	            <emphasis>extension</emphasis> to an existing use case to 
	            cater for a particular circumstance.
            </para>
            <para lang="de">
            	Include-Beziehungen sind ideal für das Herunterbrechen des 
            	Anwendungsfallverhaltens in Hierarchien. Wir wollen jedoch auch 
            	einen Anwendungsfall, der eine <emphasis>Erweiterung (extension)
            	</emphasis> eines existierenden Anwendungsfalles darstellt, in 
            	bestimmten Umständen darstellen.
            </para>
            <para lang="es">
              Las relaciones de inclusión son buenas para desmantelar 
              los comportamientos de casos de uso en jerarquias. 
              Sin embargo podemos tambien querer mostrar un caso de uso 
              que es una <emphasis>extensión</emphasis> de un caso de uso 
              existente para atender a una circunstancia particular.
            </para>


            <para lang="en">
	            In the ATM example we have a use case covering 
	            routine maintenance of the ATM, <quote>Maintain 
	            Equipment</quote>. We also want to cover the special case 
	            of an unscheduled repair caused by the ATM detecting an 
	            internal fault.
            </para>
            <para lang="de">
            	Im Geldautomatenbeispiel haben wir einen Anwendungsfall <quote>
            	Equipment warten</quote>, der die Routinewartung des 
            	Geldautomaten beinhaltet. Wir wollen aber auch den Spezialfall 
            	einer ungeplanten Reparatur abdecken, die durch den vom 
            	Geldautomaten erkannten internen Fehlers ausgelöst wurde.
            </para>
            <para lang="es">
              En el ejemplo del Cajero tenemos un caso de uso cubriendo 
              la rutina de mantenimiento del Cajero, 
              <quote>Mantener Equipamiento</quote>. 
              Tambien queremos cubrir el caso especial de 
              una reparación no programada causada por 
              la detección de un fallo interno por parte del Cajero.
            </para>


            <indexterm lang="en">
            	<primary>Extend Relationship</primary>
            </indexterm>
            <indexterm lang="de">
            	<primary>Extend Beziehung</primary>
            </indexterm>

            <indexterm lang="en">
            	<primary>Relationship</primary>
            	<secondary>Extend</secondary>
            </indexterm>
            <indexterm lang="de">
            	<primary>Beziehung</primary>
            	<secondary>Extend</secondary>
            </indexterm>
            <indexterm lang="es">
              <primary>Relatión</primary>
              <secondary>Extensión (Extend)</secondary>
            </indexterm>

            <indexterm lang="es">
              <primary>Relación de Extensión (Extend)</primary>
            </indexterm>


            <para lang="en">
	            This is shown in UML by the 
	            <emphasis>extend</emphasis> relationship. In the main use 
	            case, we specify a name for a location in the description, 
	            where an extension to the behavior could be attached. The 
	            name and location are shown in a separate compartment 
	            within the use case oval. The representation extend 
	            relationship is the same as the include relationship, but 
	            with the label <emphasis>&laquo;extend&raquo;</emphasis>. Alongside the 
	            extend relationship, we specify the condition under which 
	            that behavior will be attached.
            </para>
            <para lang="de">
            	Dies wird in UML durch die <emphasis>extend</emphasis>-Beziehung 
            	dargestellt. Im Hauptanwendungsfall spezifizieren wir einen 
            	Namen für einen Ort in der Beschreibung, an den die Erweiterung 
            	des Verhaltens hinzugefügt werden kann. Der Name und der Ort 
            	werden in einem separaten Abschnitt innerhalb des Anwendungsfall-
            	Ovales dargestellt. Die Darstellung der extend-Beziehung 
            	entspricht der include-Beziehung, aber mit dem Kennzeichen 
            	<emphasis>&laquo;extend&raquo;</emphasis>. An der extend-
            	Beziehung spezifizieren wird die Bedingung, unter der das 
            	Verhalten hinzugefügt wird.
            </para>
            <para lang="es">
              Esto está mostrado en UML por la relación de 
              <emphasis>extensión</emphasis>. 
              En el caso de uso principal, 
              especificamos un nombre para un lugar en la descripción, 
              donde una extensión del comportamiento podría ser adjuntada. 
              El nombre y lugar son mostrados en un compartimento separado 
              dentro del ovalo del caso de uso. 
              La representación de relación de extensión es la misma 
              que la de la relación de inclusión, 
              pero con la etiqueta <emphasis>«extend»</emphasis>. 
              Paralelamente a la relación de extensiñon, 
              especificamos la condicion bajo la cual ese 
              comportamiento será adjuntado.
            </para>


            <para lang="en">
	            <xref linkend="fig.tut.atm_use_case_diagram_extend"/> 
	            shows the ATM use case diagram with an extend relationship 
	            to a use case for unscheduled repairs. The diagram is now 
	            getting rather complex, and so we have split it into two, 
	            one for the maintenance side of things, the other for 
	            customer usage and audit.
            </para>
            <para lang="de">
            	<xref linkend="fig.tut.atm_use_case_diagram_extend" />
            	zeigt das Geldautomaten-Anwendungsfalldiagramm mit einer extend-
            	Beziehung auf einen Anwendungsfall für ungeplante Reparaturen. 
            	Das Diagramm ist jetzt sehr komplex so dass wir es in zwei 
            	aufteilen sollten. Eines für die hauptsächlichen Dinge, das 
            	andere für den Kundennutzen und Revision.
            </para>
            <para lang="es">
              <xref linkend="fig.tut.atm_use_case_diagram_extend" /> 
              muestra el diagrama de casos de uso del Cajero 
              con una relación de extensión a un caso de uso 
              para reparaciones no programadas. 
              El diagrama se está volviendo bastante complejo, 
              y así lo hemos dividido en dos, 
              uno para el lado del mantenimiento, 
              el otro para el uso del cliente y auditoría.
            </para>

            <para lang="en">
	            The <quote>Maintain Equipment</quote> use case 
	            defines a name <quote>Unsched</quote>, at the start of its 
	            description. The extending use case <quote>Unscheduled 
	            Repair</quote> is attached there when the ATM detects an 
	            internal error.
            </para>
            <para lang="de">
            	Der Anwendungsfall <quote>Equipment warten</quote> definiert 
            	den Namen <quote>Unshed</quote> am Anfang seiner Beschreibung. 
            	Der erweiterte Anwendungsfall <quote>ungeplante Reparatur</quote> 
                wird herangezogen, wenn der Geldautomat einen internen Fehler 
                entdeckt.
            </para>
            <para lang="es">
              El caso de uso <quote>Mantener Equipamiento</quote> 
              define un nombre <quote>Unsched</quote>, 
              al comienzo de su descripción. 
              El caso de uso extendido <quote>Unscheduled Repair</quote> 
              es adjuntado ahí cuando el Cajero detecta un error interno.
            </para>

            <figure float="1" id="fig.tut.atm_use_case_diagram_extend">

              <title>
              	<phrase lang="en">
                  Use case diagram for an ATM system showing an 
                  extend relationship.
                </phrase>
              	<phrase lang="de">
	              	Anwendungsfalldiagramm für einen Geldautomaten. Zeigt eine 
	              	extend-Beziehung.
                </phrase>
                <phrase lang="es">
                  Diagrama de casos de uso para un sistema de Cajero
                  Automático mostrando una relación de extensión.
                </phrase>
              </title>

              <screenshot><mediaobject><imageobject>
              <imagedata align="center"
               fileref="images/tutorial/atm_use_case_diagram_extend.gif"
               format="GIF"/></imageobject></mediaobject></screenshot>
            </figure>

            <indexterm lang="en">
              <primary>Use Case Generalization</primary>
            </indexterm>
            <indexterm lang="de">
              <primary>Anwendungsfall Generalisierung</primary>
            </indexterm>
            <indexterm lang="en">
              <primary>Use Case Specialization</primary>
            </indexterm>
            <indexterm lang="de">
              <primary>Anwendungsfall Spezialisierung</primary>
            </indexterm>
            <indexterm lang="en">
              <primary>Generalize a Use Case</primary>
            </indexterm>
            <indexterm lang="de">
              <primary>Einen Anwendungsfall generalisieren</primary>
            </indexterm>
            <indexterm lang="en">
              <primary>Specializations</primary>
              <secondary>of Use Case</secondary>
            </indexterm>
            <indexterm lang="de">
              <primary>Spezialisierungen</primary>
              <secondary>von Anwendungsfällen</secondary>
            </indexterm>
            <indexterm lang="es">
              <primary>Generalización de Casos de Uso</primary>
            </indexterm>

            <indexterm lang="es">
              <primary>Especialización de Casos de Uso</primary>
            </indexterm>

            <indexterm lang="es">
              <primary>Generalizar un Caso de Uso</primary>
            </indexterm>

            <indexterm lang="es">
              <primary>Especializaciones</primary>
              <secondary>de Casos de Uso</secondary>
            </indexterm>



            <para lang="en">
              Use cases may be linked together in one other way. 
              One use case may be a <emphasis>generalization</emphasis>
              of a subsidiary use case (or alternatively the subsidiary 
              is a <emphasis>specialization</emphasis> of the main use 
              case).
              This is very like the extends relationship, but 
              without the constraint of specific extension points at 
              which the main use case may be extended, and with no 
              condition on when the subsidiary use case may be 
              used.
            </para>
            <para lang="de">
            	Anwendungsfälle können auch auf andere Art und Weise miteinander 
            	verknüpft sein. Ein Anwendungsfall kann eine <emphasis>
            	Generalisierung</emphasis> eines Sub-Anwendungsfalles (oder 
            	alternativ: Der Sub-Anwendungsfall ist eine <emphasis>
            	Spezialisierung</emphasis> des Hauptanwendungsfalles).
            	Das ist der extend-Beziehung sehr ähnlich, aber ohne die 
            	Bedingung des spezifischen Erweiterungspunktes, unter welcher 
            	der Haupt-Anwendungsfall erweitert wird und ohne 
            	Bedingung unter welcher der Sub-Anwendungsfall verwendet wird.
			</para>
            <para lang="es">
              Los casos de uso pueden ser enlazados juntos de una forma 
              adicional. 
              Un caso de uso puede ser una 
              <emphasis>generalización</emphasis> de 
              un caso de uso subsidiario 
              (o alternativamente el subsidiario es una 
              <emphasis>especializatión</emphasis> del caso 
              de uso principal).
            </para>

            <para lang="es">
              Esto es muy parecido a la relación de extension, 
              pero sin la limitación de puntos 
              de extensión especificos en los cuales el caso 
              de uso principal puede ser extendido, 
              y sin condiciones sobre cuando 
              puede ser usado el caso de uso subsidiario.
            </para>

            <para lang="en">
              Generalization is shown on a use case diagram by an 
              arrow with solid line and solid white head from the 
              subsidiary to the main use case.
              This may be useful when a subsidiary use case 
              specializes the behavior of the main use case at a large 
              number of positions and under a wide range of 
              circumstances.
              However the lack of any restriction makes 
              generalization very hard to specify precisely.
              In general use an extend relationship instead.
            </para>
            <para lang="de">
            	Der Generalisierung wird in einem Anwendungsfalldiagramm durch 
            	einen Pfeil mit durchgehender Linie und einer weissen 
            	Pfeilspitze vom Sub-Anwendungsfall zum Hauptanwendungsfall 
            	dargestellt.
            	Das kann hilfreich sein, wenn ein Sub-Anwendungsfall das 
            	Verhalten des Hauptanwendungsfalles in einer Vielzahl von 
            	Positionen und in einem weiten Bereich von Sachverhalten 
            	spezialisiert.
            	Das Fehlen jeglicher Einschränkungen macht es sehr schwierig, 
            	die Generalisierung genau zu beschreiben.
            	Im Normalfall verwenden Sie besser eine extend-Beziehung.
            </para>
            <para lang="es">
              La generalización está representada en 
              un diagrama de casos de uso por una flecha 
              con una linea continua y una punta de flecha 
              blanca desde el subsidiario al caso de uso 
              principal.
            </para>

            <para lang="es">
              Esto puede ser util cuando un caso de uso subsidiario 
              especializa el comportamiento del caso de uso principal 
              en un gran número de posiciones y bajo un amplio rango 
              de circunstancias.
            </para>

            <para lang="es">
              Sin embargo la falta de alguna restricción hace 
              la generalización muy dificil de especificar con precisión. 
              En general usa una relación de extensión en su lugar.
            </para>
            

          </sect3>

        </sect2>

        <sect2>

          <title>
            <phrase lang="en">The Use Case Specification</phrase>
            <phrase lang="de">Die Anwendungsfall-Spezifikation</phrase>
            <phrase lang="es">La Especificación de Casos de Uso</phrase>
          </title>

          <indexterm lang="en">
            <primary>Use Case Specification</primary>
          </indexterm>
          <indexterm lang="de">
            <primary>Anwendungsfall-Spezifikation</primary>
          </indexterm>
          <indexterm lang="en">
            <primary>Specification</primary>
            <secondary>of Use Case</secondary>
          </indexterm>
          <indexterm lang="de">
            <primary>Spezifikation</primary>
            <secondary>eines Anwendungsfalles</secondary>
          </indexterm>
          <indexterm lang="en">
            <primary>Use Case Scenario</primary>
          </indexterm>
          <indexterm lang="de">
            <primary>Anwendungsfall-Szenario</primary>
          </indexterm>
          <indexterm lang="es">
            <primary>Especificación de Casos de Uso</primary>
          </indexterm>

          <indexterm lang="es">
            <primary>Especificación</primary>
            <secondary>de Casos de Uso</secondary>
          </indexterm>

          <indexterm lang="es">
            <primary>Escenario de Casos de Uso</primary>
          </indexterm>


          <para lang="en">
            Each use case must be documented to explain in detail 
            the behavior it is specifying.
            ArgoUML assists in this area through the generation of graphic
            files for inclusion in this documentation.
            This document is known by different names in different processes:
            <emphasis>use case specification</emphasis>,
            <emphasis>use case scenario</emphasis> or even (confusingly) just
            <emphasis>use case</emphasis>.
          </para>
          <para lang="de">
          	Jeder Anwendungsfall muss dokumentiert sein, um das das spezifizierte 
          	Verhalten im Detail zu erläutern.
          	ArgoUML unterstützt Sie in diesem Bereich durch das Generieren 
          	graphischer Dateien, die in diese Dokumentation eingebunden werden 
          	kann.
          	Dieses Dokument ist unter verschieden Namen in verschiedenen 
          	Prozessen bekannt:
            <emphasis>Anwendungsfall-Spezifikation</emphasis>,
            <emphasis>Anwendungsfall-Szenario</emphasis> oder auch (verwirrend) 
            nur <emphasis>Anwendungsfall</emphasis>.
          </para>
          <para lang="es">
            Cada caso de uso debe ser documentado para explicar 
            en detalle el comportamiento que está especificando. 
            Este documento es conocido por diferentes nombres 
            en diferentes procesos:
            <emphasis>especificación de caso de uso</emphasis>,
            <emphasis>escenario de caso de uso</emphasis> 
            o incluso (confusamente) solo 
            <emphasis>caso de uso</emphasis>.
          </para>

          <para lang="en">
          	A typical use case specification will include the following 
          	sections.
          </para>
          <para lang="de">
          	Eine typische Anwendungsfall-Spezifikation wird folgende Kapitel 
          	enthalten.
          </para>
          <para lang="es">
            Un caso de uso tipico incluirá las siguientes secciones.
          </para>

          <itemizedlist>

            <listitem>

              <indexterm lang="en">
                <primary>Name</primary>
                <secondary>of Use Case</secondary>
              </indexterm>
              <indexterm lang="de">
                <primary>Name</primary>
                <secondary>des Anwendungsfalles</secondary>
              </indexterm>
              <indexterm lang="en">
                <primary>Use Case Name</primary>
              </indexterm>
              <indexterm lang="de">
                <primary>Anwendungsfall-Name</primary>
              </indexterm>
              <indexterm lang="es">
                <primary>Nombre</primary>
                <secondary>del Caso de Uso</secondary>
              </indexterm>

              <indexterm lang="es">
                <primary>Nombre de Caso de Uso</primary>
              </indexterm>

              <para lang="en">
	              <emphasis>Name</emphasis>. The name of the use case 
	              to which this relates.
              </para>
              <para lang="de">
              	<emphasis>Name</emphasis>. Der Name des Anwendungsfalles.
              </para>
              <para lang="es">
                <emphasis>Nombre</emphasis>.
                El nombre del caso de uso al
                que esto se refiere.
              </para>

            </listitem>

            <listitem>

              <indexterm lang="en">
                <primary>Goal</primary>
                <secondary>of Use Case</secondary>
              </indexterm>
              <indexterm lang="de">
                <primary>Ziel</primary>
                <secondary>des Anwendungsfalles</secondary>
              </indexterm>
              <indexterm lang="en">
                <primary>Use Case Goal</primary>
              </indexterm>
              <indexterm lang="de">
                <primary>Anwendungsfall-Ziel</primary>
              </indexterm>

              <indexterm lang="es">
                <primary>Objetivo</primary>
                <secondary>del Caso de Uso</secondary>
              </indexterm>

              <indexterm lang="es">
                <primary>Objetivo del Caso de Uso</primary>
              </indexterm>

              <para lang="en">
	              <emphasis>Goal</emphasis>. A one or two line 
	              summary of what this use case achieves <emphasis>for its 
	              actors</emphasis>.
              </para>
              <para lang="de">
              	<emphasis>Ziel</emphasis>. Eine ein oder zweizeilige 
              	Zusammenfassung darüber, was dieser Anwendungsfall <emphasis>
              	für seine Akteure</emphasis> ausführt. 
              </para>
              <para lang="es">
                <emphasis>Objetivo</emphasis>.
                Un resumen de una o dos lineas de 
                que realiza este caso de uso 
                <emphasis>por sus actores</emphasis>.
              </para>

            </listitem>

            <listitem>

              <para lang="en">
	              <emphasis>Actors</emphasis>. The actors involved in 
	              this use case, and any context regarding their 
	              involvement.
              </para>
              <para lang="de">
              	<emphasis>Akteure</emphasis>. Die in diesen Anwendungsfall 
              	involvierten Akteure und jeden Umstand bezüglich Ihrer 
              	Einbindung.
              </para>
              <para lang="es">
                <emphasis>Actores</emphasis>.
                Los actores involucrados en este caso de uso, 
                y cualquier contexto con respecto a su participación.
              </para>

              <note>

                <para lang="en">
	                This should not be a description of the actor. 
	                That should be associated with the actor on the use 
	                case diagram.
                </para>
                <para lang="de">
                	Dies sollte keine Beschreibung des Akteurs sein. Diese sollte 
                	mit dem Akteur im Anwendungsfalldiagramm verknüpft sein.
                </para>
                <para lang="es">
                  Esto no debería ser una descripción del actor. 
                  Eso debería estar asociado con el actor en 
                  el diagrama de casos de uso.
                </para>

              </note>

            </listitem>

            <listitem>

              <indexterm lang="en">
                <primary>Pre-condition</primary>
                <secondary>of Use Case</secondary>
              </indexterm>
              <indexterm lang="de">
                <primary>Vorbedingung</primary>
                <secondary>des Anwendungsfalles</secondary>
              </indexterm>
              <indexterm lang="en">
                <primary>Pre-assumptions</primary>
                <secondary>of Use Case</secondary>
              </indexterm>
              <indexterm lang="de">
                <primary>Annahmen zu Beginn</primary>
                <secondary>des Anwendungsfalles</secondary>
              </indexterm>
              <indexterm lang="en">
                <primary>Use Case Pre-condition</primary>
               </indexterm>
              <indexterm lang="de">
                <primary>Anwendungsfall-Vorbedingung</primary>
               </indexterm>
              <indexterm lang="es">
                <primary>Pre-condición</primary>
                <secondary>de Caso de Uso</secondary>
              </indexterm>

              <indexterm lang="es">
                <primary>Pre-asumciones</primary>
                <secondary>de Casos de Uso</secondary>
              </indexterm>

              <indexterm lang="es">
                <primary>Pre-condicion de Casos de Uso</primary>
              </indexterm>


              <para lang="en">
	              <emphasis>Pre-condition</emphasis>. These would be 
	              better named <quote>pre-assumptions</quote>, but the term 
	              used everywhere is pre-conditions. This is a statement of 
	              any simplifying assumptions we can make at the start of 
	              the use case.
              </para>
              <para lang="de">
	              <emphasis>Vorbedingung</emphasis>. Diese würden besser als 
	              <quote>Voraussetzungen</quote> bezeichnet, aber der überall 
	              verwendete Begriff ist Vorbedingungen. Dies ist eine 
	              Beschreibung jeder vereinfachenden Voraussetzung, die wir zum 
	              Start des Anwendungsfalles machen können. 
              </para>
              <para lang="es">
                <emphasis>Pre-condición</emphasis>. 
                Sería mejor llamarlas <quote>pre-asumciones</quote>, 
                pero el termino usado en todos sitios es pre-condiciones. 
                Es una declaración de cualesquiera asumciones 
                de simplificación que podemos hacer al comienzo 
                del caso de uso.
              </para>

              <para lang="en">
	              In the ATM example we might make the assumption for 
	              the<quote>Maintain Equipment</quote> use case that an 
	              engineer is always available, and we do not need to worry 
	              about the case where a routine maintenance visit is 
	              missed.
              </para>
              <para lang="de">
           		Im Geldautomatenbeispiel könnten wir beim Anwendungsfall 
           		<quote>Equipment warten</quote> die Voraussetzung haben, das 
           		immer ein Ingenieur verfügbar ist und wir uns nicht vor dem Fall 
           		fürchten müssen, in dem ein Routinewartungs-Besuch ausgelassen 
           		wurde. 
              </para>
              <para lang="es">
                En el ejempli del Cajero Automatico, 
                podemos hacer la asumción para el caso de uso de
                <quote>Mantener Equipamiento</quote> 
                que un ingeniero está siempre disponible, 
                y no necesitamos preocuparnos sobre el caso de que 
                una visita de mantenimiento de rutina 
                se halla dejado pasar.
              </para>

              <caution>

                <para lang="en">
	                Avoid pre-conditions wherever possible. You need 
	                to be absolutely certain that the pre-condition holds 
	                under all possible circumstances. If not your system 
	                will be under specified and hence will fail when the 
	                pre-condition is not true. Alternatively, when you 
	                cannot be certain the pre-condition is always true, you 
	                will need to specify a second use case to handle the 
	                pre-condition being false. In the first case, 
	                pre-conditions are a source of problems, in the second 
	                a source of more work.
                </para>
                <para lang="de">
                	Vermeiden Sie Vorbedingungen wo immer das möglich ist. Sie 
                	müssen sich absolut sicher sein, dass die Vorbedingung 
                	unter allen möglichen Umständen eingehalten wird. Wenn nicht, 
                	ist ihr System zu wenig spezifiziert und wird daher 
                	fehlschlagen, wenn die Vorbedingung nicht wahr ist. Wenn Sie 
                	nicht sicher sein können, dass die Vorbedingung 
                	immer wahr ist, müssen Sie einen zweiten Anwendungsfall 
                	spezifizieren, der den Fall handhabt, wenn die 
                	Vorbedingung falsch ist. Im ersten Fall sind die 
                	Vorbedingungen die Ursache der Probleme, im zweiten Fall die 
                	Ursache für mehr Arbeit.
                </para>
                <para lang="es">
                  Evita pre-condiciones todo lo posible. 
                  Necesitas tener la absoluta certeza de 
                  que las pre-condiciones caben bajo todas
                  las posibles circunstancias. 
                  Si no tu sistema estará debilmente
                  especificado y por lo tanto fallara cuando 
                  la pre-condición no es cierta. 
                  Alternativamente, cuando no tienes la certeza 
                  de que la pre-condición es siempre cierta, 
                  necesitaras especificar un segundo caso 
                  de uso para manejar la pre-condición siendo falsa.
                  En el primer caso, las pre-condiciones son 
                  una fuente de problemas, 
                  en el segundo una fuente de mas trabajo.
                </para>

              </caution>

            </listitem>

            <listitem>

              <indexterm lang="en">
                <primary>Basic Flow</primary>
                <secondary>of Use Case</secondary>
              </indexterm>
              <indexterm lang="de">
                <primary>Standardablauf</primary>
                <secondary>des Anwendungsfalles</secondary>
              </indexterm>
              <indexterm lang="en">
                <primary>Use Case</primary>
                <secondary>Basic Flow</secondary>
              </indexterm>
              <indexterm lang="de">
                <primary>Anwendungsfall</primary>
                <secondary>Standardablauf</secondary>
              </indexterm>
              <indexterm lang="en">
                <primary>Scenario</primary>
              </indexterm>
              <indexterm lang="de">
                <primary>Szenario</primary>
              </indexterm>
              
              <indexterm lang="es">
                <primary>Flujo Basico</primary>
                <secondary>del Caso de Uso</secondary>
              </indexterm>

              <indexterm lang="es">
                <primary>Casos de Uso</primary>
                <secondary>Flujo Basico</secondary>
              </indexterm>

              <indexterm lang="es">
                <primary>Escenario</primary>
              </indexterm>

              <para lang="en">
	              <emphasis>Basic Flow</emphasis>. The linear 
	              sequence of steps that describe the behavior of the use 
	              case in the <quote>normal</quote> scenario. Where a use 
	              case has a number of scenarios that could be normal, one 
	              is arbitrarily selected. Specifying the basic flow is 
	              described in more detail in 
	              <xref linkend="s3.tut.basic_flow"/> below.
              </para>
              <para lang="de">
	              <emphasis>Standardablauf</emphasis>. Die aufeinander 
	              folgenden Schritte, die das Verhalten des Anwendungsfalles 
	              im <quote>Normalfall</quote> beschreiben. Wo ein Anwendungsfall 
	              mehrere normale Szenarien aufweist, wird einer davon 
	              willkürlich ausgewählt. Die Spezifizierung des 
	              Standardablaufes wird nachfolgend detaillierter beschrieben 
	              <xref linkend="s3.tut.basic_flow"/>.
              </para>
              <para lang="es">
                <emphasis>Flujo Básico</emphasis>. 
                La secuencia lineal de pasos que descruben 
                el comportamiento de el caso de uso en 
                el escenarío <quote>normal</quote>. 
                Donde un caso de uso tiene un número de escenarios 
                que podrían ser normales, uno es seleccionado
                arbitrariamente.
                Especificar el flujo básico está descrito 
                con más detalle mas
                <xref linkend="s3.tut.basic_flow" /> abajo.
              </para>

            </listitem>

            <listitem>

              <indexterm lang="en">
                <primary>Alternate Flows</primary>
                <secondary>of Use Case</secondary>
              </indexterm>
              <indexterm lang="de">
                <primary>Alternative Abläufe</primary>
                <secondary>des Anwendungsfalles</secondary>
              </indexterm>
              <indexterm lang="en">
                <primary>Use Case</primary>
                <secondary>Alternate Flows</secondary>
              </indexterm>
              <indexterm lang="de">
                <primary>Anwendungsfall</primary>
                <secondary>Alternative Abläufe</secondary>
              </indexterm>
              <indexterm lang="es">
                <primary>Flujos Alternativos</primary>
                <secondary>de Casos de Uso</secondary>
              </indexterm>
              <indexterm lang="es">
                <primary>Casos de Uso</primary>
                <secondary>Flujos Alternativos</secondary>
              </indexterm>

              <para lang="en">
	              <emphasis>Alternate Flows</emphasis>. A series of 
	              linear sequences describing each of the alternative 
	              behaviors to the basic flow. Specifying alternate flows 
	              is described in more detail in 
	              <xref linkend="s3.tut.alternate_flows"/>.
              </para>
              <para lang="de">
	              <emphasis>Alternative Abläufe</emphasis>. Eine Reihe von 
	              linearen Sequenzen beschreiben jede der alternativen, 
	              gegenüber dem Standardablauf abweichenden Verhaltensweisen. 
	              Die Spezifizierung alternativer Abläufe ist detaillierter in 
	              <xref linkend="s3.tut.alternate_flows"/> beschrieben.
              </para>
              <para lang="es">
                <emphasis>Flujos Alternativos</emphasis>. 
                Unas series de secuencias lineales describiendo 
                cada uno de los comportamientos
                alternativos al flujo básico. 
                Especificar flujos alternativos
                está descrito con mas detalle en 
                <xref linkend="s3.tut.alternate_flows" />.
              </para>

            </listitem>

            <listitem>

              <indexterm lang="en">
                <primary>Post-conditions</primary>
                <secondary>of Use Case</secondary>
              </indexterm>
              <indexterm lang="de">
                <primary>Nach-Bedingungen</primary>
                <secondary>des Anwendungsfalles</secondary>
              </indexterm>
              <indexterm lang="en">
                <primary>Post-assumptions</primary>
                <secondary>of Use Case</secondary>
              </indexterm>
              <indexterm lang="de">
                <primary>Nachfolgende Annahmen</primary>
                <secondary>zum Anwendungsfall</secondary>
              </indexterm>
              <indexterm lang="en">
                <primary>Use Case Post-conditions</primary>
              </indexterm>
              <indexterm lang="de">
                <primary>Anwendungsfall nachfolgende Annahmen</primary>
              </indexterm>

              <indexterm lang="es">
                <primary>Post-condiciones</primary>
                <secondary>de Caso de Uso</secondary>
              </indexterm>

              <indexterm lang="es">
                <primary>Post-asumciones</primary>
                <secondary>de Casos de Use</secondary>
              </indexterm>

              <indexterm lang="es">
                <primary>Post-conditions de Casos de Uso</primary>
              </indexterm>

              <para lang="en">
	              <emphasis>Post-conditions</emphasis>. These would 
	              be better named <quote>post-assumptions</quote>. This is 
	              a statement of any assumptions that we can make at the 
	              end of the use case. Most useful where the use case is 
	              one of a series of subsidiary use cases that are included 
	              in a main use case, where they can form the 
	              pre-conditions of the next use case to be included.
              </para>
              <para lang="de">
	              <emphasis>Nachbedingungen</emphasis>. Dies ist der Zustand 
	              jeder Nachbedingung, den wir am Ende des Anwendungsfalles 
	              feststellen können. Sehr hilfreich, wo der Anwendungsfall 
	              einer von einer Serie von in den Hauptanwendungsfall 
	              eingebundenen Unteranwendungsfällen ist, wo sie die 
	              Vorbedingung für den nächsten einzubindenden Anwendungsfall 
	              bilden. 
              </para>
              <para lang="es">
                <emphasis>Post-condiciones</emphasis>.
                Sería mejor llamarlas <quote>post-asumciones</quote>.
                Esta es una especificación de
                cualesquiera asumciones que podemos hacer al final 
                del caso de uso. 
                Son mas utiles donde el caso de uso es uno 
                de una serie de casos de uso subsidiarios 
                que estan incluidos en un caso de uso principal, 
                donde pueden formar las pre-condiciones 
                del siguiente caso de uso que va a ser incluido.
              </para>

              <caution>

                <para lang="en">
	                Like pre-conditions, post-conditions are best 
	                avoided. They place a burden on the specification of 
	                the use case flows, to ensure that the post-condition 
	                always holds. They therefore are also a source of 
	                problems and extra work.
                </para>
                <para lang="de">
                	Nachbedingungen sind wie Vorbedingungen am Besten zu 
                	vermeiden. Sie bilden eine Belastung für die Spezifikation 
                	des Anwendungsfallablaufes, das sichergestellt sein muss, 
                	dass die Nachbedingung immer eingehalten wird. Daher sind 
                	sie auch eine Ursache von Problemen und zusätzlicher 
                	Arbeit.
                </para>
                <para lang="es">
                  Como las pre-condiciones, 
                  las post-condiciones son mejor evitarlas. 
                  Colocan una carga en la especificación de los flujos
                  de caso de uso, para asegurar que 
                  la post-condición siempre se mantiene. 
                  Por lo tanto son tambien una fuente de problemas y
                  trabajo extra.
                </para>

              </caution>

            </listitem>

            <listitem>

              <para lang="en">
	              <emphasis>Requirements</emphasis>. In an ideal 
	              world the vision document, use case diagrams, use case 
	              specifications and supplementary requirements 
	              specification would form the requirements for a 
	              project.
              </para>
              <para lang="de">
              	<emphasis>Anforderungen</emphasis>. In einer idealen Welt würden 
              	das Visionsdokument, die Anwendungsfalldiagramme, die 
              	Anwendungsfallbeschreibungen und die Spezifikation der 
              	zusätzlichen Anforderungen die Anforderungen für ein Projekt 
              	bilden. 
              </para>
              <para lang="es">
                <emphasis>Requerimientos</emphasis>. 
                En un mundo ideal el documento de visión, 
                los diagramas de casos de uso, 
                las especificaciones de casos de uso y 
                la especificacion de requerimientos suplementarios 
                formarián los requerimientos para un proyecto.
              </para>


              <para lang="en">
	              For most market-led developments, where ownership 
	              of requirements is within the same business as the team 
	              who will do the development, this is now usually the 
	              case. The marketing department can learn use case based 
	              requirements capture and analysis to link to their 
	              customer facing activities.
              </para>
              <para lang="de">
              	Bei den meisten Marktführer-Entwicklungen, ist es gewöhnlich der 
              	Fall, dass sich die Eigentumsrechte der Anforderungen im 
              	gleichen Business befinden,	wie das Team, das die Entwicklung 
              	durchführen wird. Die Marketingabteilung kann das Erfassen und 
              	die Analyse der Anwendungsfallanforderungen erlernen, um ihre 
              	kundenspezifischen Aktivitäten damit zu verbinden.
              </para>
              <para lang="es">
                Para la mayoría de los desarrollos lideres del mercado,
                donde la propiedad de los requerimientos esta dentro 
                del mismo negocio que el equipo que hará el desarrollo,
                este no es normalmente el caso. 
                El departamento de marketing puede aprender
                captura de requerimientos basada en casos 
                de uso y analisis para enlazar con 
                las actividades primarias de sus consumidores.
              </para>

              <para lang="en">
	              However for external contract developments, 
	              customers may insist on a traditional <quote>list of 
	              features</quote> as the basis of the contract. Where this 
	              is the case, this section of the use case specification 
	              should link to the contract features that are covered by 
	              the use case.
              </para>
              <para lang="de">
              	Bei externen Vertragsentwicklungen jedoch, kann der Kunde auf 
              	einer traditionellen <quote>Liste von Features</quote> als Basis 
              	des Vertrages bestehen. Wo dies der Fall ist, sollte dieser 
              	Abschnitt der Anwendungsfallspezifikation mit den vertraglich 
              	festgelegten Features übereinstimmen, die durch den 
              	Anwendungsfall abgedeckt werden.
              </para>
              <para lang="es">
                Sin embargo para desarrollos externos por contrato, 
                los consumidores pueden insistir en una
                <quote>lista de caracteristicas</quote> 
                tradicional como la base del contrato. 
                Cuando este es el caso, esta sección de la
                especificación de casos de uso debería enlazar con las
                caracteristicas del contrato que son cubiertas 
                por el caso de uso.
              </para>

              <para lang="en">
	              This is often done through a third party tool that 
	              can link documents, providing automated checking of 
	              coverage, in which case this section is not needed, or 
	              may be generated automatically.
              </para>
              <para lang="de">
              	Das wird oft mit Hilfe eines Third-Party-Werkzeuges ausgeführt, 
              	das Dokumente verknüpfen kann und eine automatische Prüfung des 
              	Geltungsbereiches enthält. In diesem Fall wird dieser Abschnitt 
              	nicht benötigt oder kann automatisch generiert werden.
              </para>
              <para lang="es">
                Esto es hecho a menudo a traves de una herramienta 
                de terceros que puede enlazar documentos,
                proporcionando una prueba 
                automatizada de cobertura de requisitos,
                en tal caso esta sección no es necesaria, 
                o puede ser generada automaticamente.
              </para>
              

            </listitem>

          </itemizedlist>

          <para lang="en">
	          The final size of the use case specification will 
	          depend on the complexity of the use case. As a rule of thumb, 
	          most use cases take around 10-15 pages to specify, the bulk 
	          of which is alternate flows. If you are much larger than 
	          this, consider breaking the use case down. If you are much 
	          smaller consider whether the use case is addressing too small 
	          a chunk of behavior.
          </para>
          <para lang="de">
          	Die abschliessende Grösse der Anwendungsfallspezifikation hängt von 
          	der Komplexität der Anwendungsfälle ab. Als Faustregel gilt, dass 
          	die meisten Anwendungsfälle ca. 10-15 Seiten für die Spezifikation 
          	benötigen, das meiste davon für die alternativen Abläufe. Wenn sie 
          	sehr viel grösser sind, sollten Sie die Anwendungsfälle aufteilen. 
          	Wenn sie sehr viel kleiner sind, betrachten Sie, ob der 
          	Anwendungsfall einen zu kleinen Bereich des Verhaltens beschreibt.
          </para>
          <para lang="es">
            El tamaño final de la especificacíon de caos 
            de uso dependerá de la complejidad del caso de uso.
            Como pequeña regla, la mayoría de los casos de uso 
            toman alrededor de 10-15 paginas para especificar,
            la mayoría de las cuales son flujos alternativos.
            Si el tuyo es mucho mas largo que esto, 
            considera simplificar el caso de uso. 
            Si el tuyo es mucho mas pequeño considera que 
            el caso de uso esta describiendo 
            una parte demasiado pequeña del comportamiento.
          </para>
          

          <sect3 id="s3.tut.basic_flow">

            <title><phrase lang="en">
              <phrase lang="en">Specifying the Basic Flow</phrase>
              <phrase lang="de">Den Standardablauf spezifizieren</phrase>
              <phrase lang="es">Especificando el Flujo Basico</phrase>
            </phrase></title>

            <indexterm lang="en">
              <primary>Basic Flow</primary>
              <secondary>of Use Case</secondary>
            </indexterm>
            <indexterm lang="de">
              <primary>Standardablauf</primary>
              <secondary>des Anwendungsfalles</secondary>
            </indexterm>
            <indexterm lang="en">
              <primary>Use Case</primary>
              <secondary>Basic Flow</secondary>
            </indexterm>
            <indexterm lang="de">
              <primary>Anwendungsfall</primary>
              <secondary>Standardablauf</secondary>
            </indexterm>
            <indexterm lang="es">
              <primary>Flujo Basico</primary>
              <secondary>de Casos de Uso</secondary>
            </indexterm>

            <indexterm lang="es">
              <primary>Casos de Uso</primary>
              <secondary>Flujo Basico</secondary>
            </indexterm>

            <para lang="en">
	            All flows in a use case specification are linear&mdash;that 
	            is there is no conditional branching. Any choices in flows 
	            are handled by specifying another alternate flow that takes 
	            over at the choice point. It is important to remember we 
	            are specifying behavior here, not programming it.
            </para>
            <para lang="de">
            	Alle Abläufe in einer Anwendungsfallspezifikation sind linear
            	&mdash; d.h. es gibt keine bedingte Verzweigung. Jede Auswahl 
            	im Ablauf wird durch einen anderen, nach dem Auswahlpunkt 
            	kommenden alternativen Ablauf behandelt. Es ist wichtig, sich 
            	daran zu erinnern, dass wir hier das Verhalten und nicht die 
            	Programmierung spezifizieren.
            </para>
            <para lang="es">
              Todos los flujos en una especificación de casos de uso son
              lineales (esto es que no hay ramas condicionales).
              Cualesquiera elecciones en los flujos 
              son manejadas especificando otro flujo
              alternativo que recoge el punto de elección.
              Es importante recordar que estamos especificando 
              comportamiento aqui, no programandolo.
            </para>

            <para lang="en">
	            A flow is specified as a series of numbered steps. 
	            Each step must involve some interaction with an actor, or 
	            at least generate a change that is observable externally by 
	            an actor. Requirements capture should not be specifying 
	            hidden internal behavior of a system.
            </para>
            <para lang="de">
            	Ein Ablauf wird durch eine Reihe von numerierten Schritten 
            	spezifiziert. Jeder Schritt muss einige Interaktionen mit einem 
            	Akteur oder mindestens eine Änderung generieren, die durch 
            	einen Akteur extern überwacht wird. Das Anforderungen erfassen 
            	sollte nicht das versteckte interne Verhalten eines Systems 
            	spezifizieren.
            </para>
            <para lang="es">
              Un flujo es especificado como una serie de pasos numerados.
              Cada paso debe implicar alguna interacción con un actor, 
              o al menos generar un cambio que sea observable 
              externamente por un actor. 
              La captura de requerimientos no debería estar especificando 
              comportamiento interno y oculto del sistema.
            </para>

            <para lang="en">
	            For example we might give the following sequence of 
	            steps for the basic flow of the use case &quot;Withdraw 
	            Cash&quot; in our ATM example.
            </para>
            <para lang="de">
            	In unserem Geldautomatenbeispiel könnten wir im Anwendungsfall 
            	<quote>Bargeld ausgeben</quote> die folgende Sequenz von 
            	Schritten im Standardablauf haben:
            </para>
            <para lang="es">
              Por ejemplo nosotros podemos dar la siquiente secuencia 
              de pasos para el flujo basico del casos de uso 
              "Retirar Dinero" en nuestro ejemplo 
              de Cajero Automatico.
            </para>

            <orderedlist>

              <listitem>

                <para lang="en">Customer indicates a receipt is required.</para>
                <para lang="de">
                	Der Kunde gibt an, dass eine Quittung erforderlich ist.
                </para>
                <para lang="es">
                  Consumidor indica que se requiere recibo.
                </para>

              </listitem>

              <listitem>

                <para lang="en">Customer enters amount of cash required.</para>
                <para lang="de">
                	Der Kunde gibt die gewünschte Bargeldmenge ein.
                </para>
                <para lang="es">
                  Consumidor introduce cantidad de dinero requerido.
                </para>

              </listitem>

              <listitem>

                <para lang="en">ATM verifies with the central computer that the 
                customer can make this withdrawal.</para>
                <para lang="de">
                	Der Geldautomat überprüft mit dem Zentralcomputer, dass 
                	der Kunde diese Auszahlung durchführen kann. 
                </para>
                <para lang="es">
                  Cajero Automatico verifica con el ordenador central que
                  el consumidor puede realizar esta operación.
                </para>

              </listitem>

              <listitem>

                <para lang="en">ATM dispenses cash to the customer.</para>
                <para lang="de">
                	Der Geldautomat gibt das Bargeld an den Kunden.
                </para>
                <para lang="es">
                  Cajero Automatico entrega el dinero a el consumidor.
                </para>

              </listitem>

              <listitem>

                <para lang="en">ATM issues receipt to customer.</para>
                <para lang="de">
                	Der Geldautomat gibt die Quittung an den Kunden aus.
                </para>
                <para lang="es">
                  Cajero Automatico emite recibo al consumidor.
                </para>

              </listitem>

            </orderedlist>

            <para lang="en">Remember this is a sub-use case included in the main 
            <quote>Use ATM</quote> use case, which will presumably 
            handle checking of cards and PINs before invoking this 
            included use case.</para>
            <para lang="de">
            	Zur Erinnerung: Dies ist ein Sub-Anwendungsfall der im Haupt-
            	Anwendungsfall <quote>Geldautomat benutzen</quote> enthalten ist, 
            	der voraussichtlich das Prüfen von Karten und PINs handhaben 
            	wird, bevor dieser eingebundene Anwendungsfall aufgerufen wird.
            </para>
            <para lang="es">
              Recuerda que esta es un sub-caso de uso incluido en el
              caso de uso principal <quote>Usar Cajero Automatico</quote>,
              el cual presumiblemente manejará 
              la verificación de tarjetas y PINs antes de invocar este 
              caso de uso incluido.
            </para>

            <note>

              <para lang="en">The first step is not a condition. We take as our 
              basic flow the case where the customer does want a 
              receipt. The case where the customer does not want a 
              receipt will be an alternative flow.</para>
              <para lang="de">
              	Der erste Schritt ist keine Bedingung. Wir nehmen als unseren 
              	Standardablauf den Fall, wo der Kunden eine Quittung haben 
              	möchte. Der Fall, wo der Kunde keine Quittung haben will, wird 
              	ein alternativer Ablauf sein.
              </para>
              <para lang="es">
                El primer paso no es una condición.
                Tomamos como nuestro flujo básico el caso donde 
                el consumidor quiere un recibo. 
                El caso donde de consumidor no quiere un recibo 
                será un flujo alternativo.
              </para>

            </note>

          </sect3>

          <sect3 id="s3.tut.alternate_flows">

            <title><phrase lang="en">
              <phrase lang="en">Specifying the Alternate Flows</phrase>
              <phrase lang="de">Alternative Abläufe spezifizieren</phrase>
              <phrase lang="es">Especificando los Flujos Alternativos</phrase>
            </phrase></title>

            <indexterm lang="en">
              <primary>Alternate Flows</primary>
              <secondary>of Use Case</secondary>
            </indexterm>
            <indexterm lang="de">
              <primary>Alternative Abläufe</primary>
              <secondary>des Anwendungsfalles</secondary>
            </indexterm>
            <indexterm lang="en">
              <primary>Use Case</primary>
              <secondary>Alternate Flows</secondary>
            </indexterm>
            <indexterm lang="de">
              <primary>Anwendungsfall</primary>
              <secondary>Alternative Abläufe</secondary>
            </indexterm>
            <indexterm lang="en">
              <primary>Alternative scenarios</primary>
            </indexterm>
            <indexterm lang="de">
              <primary>Alternative Szenarien</primary>
            </indexterm>
            <indexterm lang="es">
              <primary>Flujos Alternativos</primary>
              <secondary>de Casos de Uso</secondary>
            </indexterm>

            <indexterm lang="es">
              <primary>Casos de Uso</primary>
              <secondary>Flujos Alternativos</secondary>
            </indexterm>

            <indexterm lang="es">
              <primary>Escenarios Alternativos</primary>
            </indexterm>


            <para lang="en">This captures the alternative scenarios, as linear 
            flows, by reference to the basic flow. Initially we just 
            build a list of the alternate flows.</para>
            <para lang="de">
            	Dies erfasst die alternativen Szenarien, wie lineare Abläufe, 
            	die durch den Standardablauf referenziert werden. Zu Beginn 
            	erzeugen wir eine Liste der alternativen Abläufe.
            </para>
            <para lang="es">
              Esto captura los escenarios alternativos, 
              como flujos lineales, mediante referencia la flujo básico. 
              Inicialmente unicamente construimos una lista de 
              los flujos alternativos.
            </para>

            <orderedlist inheritnum="inherit" numeration="upperalpha">

              <listitem>

                <orderedlist inheritnum="inherit" numeration="arabic">

                  <listitem>

                    <para lang="en">Customer does not require a receipt.</para>
                    <para lang="de">Der Kunde benötigt keine Quittung.</para>
                    <para lang="es">Consumidor no requiere recibo.</para>

                  </listitem>

                  <listitem>

                    <para lang="en">Customer&apos;s account will not support the 
                    withdrawal.</para>
                    <para lang="de">
                    	Das Kundenkonto unterstützt keine Auszahlung.
                    </para>
                    <para lang="es">
                      La cuenta del consumidor no soportará el retiro de 
                      dinero.
                    </para>

                  </listitem>

                  <listitem>

                    <para lang="en">Communication to the central computer is 
                    down.</para>
                    <para lang="de">
                    	Die Kommunikation mit dem Zentralcomputer ist 
                    	unterbrochen.
                    </para>
                    <para lang="es">
                      Comunicación con el ordenador central está
                      interrumpida.
                    </para>

                  </listitem>

                  <listitem>

                    <para lang="en">The customer cancels the transaction.</para>
                    <para lang="de">Der Kunde unterbricht die Transaktion.</para>
                    <para lang="es">
                      El consumidor cancela la transacción.
                    </para>

                  </listitem>

                  <listitem>

                    <para lang="en">The customer fails to take the dispensed 
                    cash.</para>
                    <para lang="de">
                    	Der Kunde macht beim Annehmen des Bargeldes Fehler.
                    </para>
                    <para lang="es">
                      El consumidor falla a coger el dinero entregado.
                    </para>

                  </listitem>

                </orderedlist>

              </listitem>

            </orderedlist>

            <para lang="en">Subsequently we flesh out each alternate flow, by 
            reference to the basic flow. For example the first 
            alternate flow might look like.</para>
            <para lang="de">
            	Nachfolgend arbeiten wir jeden alternativen Ablauf als 
            	Referenz zum Standardablauf aus. Der erste alternative Ablauf 
            	könnte zum Beispiel wie folgt aussehen:
            </para>

            <orderedlist inheritnum="inherit" numeration="upperalpha">

              <listitem>

                <orderedlist inheritnum="inherit" numeration="arabic">

                  <listitem>

                    <para lang="en">Customer does not require a receipt.</para>
                    <para lang="de">Der Kunde benötigt keine Quittung.</para>

                    <orderedlist inheritnum="inherit" numeration="arabic">

                      <listitem>

                        <para lang="en">At step 1 of the basic flow the customer 
                        indicates they do not want a receipt.</para>
                        <para lang="de">
                        	In Schritt 1 des Standardablaufes sagen die Kunden, 
                        	dass Sie keine Quittung benötigen.
                        </para>

                      </listitem>

                      <listitem>

                        <para lang="en">The basic flow proceeds from step 2 to 
                        step 4, and step 5 is not used.</para>
                        <para lang="de">
                        	Der Standardablauf geht von Schritt 2 in Schritt 4, 
                        	Schritt 5 wird nicht benötigt.
                        </para>

                      </listitem>

                    </orderedlist>

                  </listitem>

                </orderedlist>

              </listitem>

            </orderedlist>

            <para lang="en">The convention is to number the various alternate 
            flows as A.1, A.2, A.3, etc. The steps within an alternate 
            flow are then numbered from this. So the steps of the first 
            alternate flow would be A.1.1, A.1.2, A.1.3, etc.</para>
            <para lang="de">
            	Die Konvention ist, dass die verschiedenen alternativen Abläufe 
            	numeriert werden, wie A.1, A.2, A.3, usw. Die Schritte innerhalb 
            	eines alternativen Ablaufes werden darauf aufbauend numeriert. 
            	So dass die Schritte der ersten Alternative wie folgt lauten 
            	würden: A.1.1, A.1.2, A.1.3, usw.
            </para>

          </sect3>

          <sect3>

            <title>
	            <phrase lang="en">
	            	Iterative Development of Use Case Specifications
	            </phrase>
	            <phrase lang="de">
	            	Iterative Entwicklung der Anwendungsfallspezifikationen
	            </phrase>
            </title>

            <para lang="en">Iterative development will prioritize the use cases, 
            and the first iterations will address the most 
            important.</para>
            <para lang="de">
            	Die Iterative Entwicklung wird die die Anwendungsfälle 
            	priorisieren und die erste Iteration wird die wichtigsten 
            	adressieren.
            </para>

            <para lang="en">Early iterations will capture the basic flows of the 
            most important use cases with only essential detail and 
            list the headings of the main alternate flows.</para>
            <para lang="de">
            	Frühe Iterationen werden den Standardablauf der wichtigsten 
            	Anwendungsfälle nur mit den grundlegenden Details erfassen und 
            	die Überschriften der hauptsächlichen alternativen Abläufe 
            	auflisten.
            </para>

            <para lang="en">Later iterations will address the remaining use 
            cases, flesh out the steps on individual alternate flows 
            and possibly provide more detail on individual steps.</para>
            <para lang="de">
            	Spätere Iterationen werden die verbleibenden Anwendungsfälle 
            	adressieren, die Schritte der individuellen alternativen Abläufe 
            	ausformulieren und wahrscheinlich mehr Details über die 
            	individuellen Schritte enthalten.
            </para>

          </sect3>

        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">Supplementary Requirement Specification</phrase>
          	<phrase lang="de">Ergänzende Anforderungsspezifikation</phrase>
          </title>

          <indexterm lang="en">
          	<primary>Supplementary Requirement Specification</primary>
          </indexterm>
          <indexterm lang="de">
          	<primary>Ergänzende Anforderungsspezifikation</primary>
          </indexterm>
          <indexterm lang="en">
          	<primary>Non-functional requirements</primary>
          </indexterm>
          <indexterm lang="de">
          	<primary>Nicht-funktionale Anforderungen</primary>
          </indexterm>
          <indexterm lang="en">
          	<primary>Non-functional constraints</primary>
          </indexterm>
          <indexterm lang="de">
          	<primary>Nicht-funktionale Randbedingungen</primary>
          </indexterm>
          <para lang="en">This captures the non-functional requirements or 
          constraints placed on the system. Since use cases are 
          inherently functional in nature, they cannot capture this 
          sort of information.</para>
          <para lang="de">
          	Dies erfasst die nicht-funktionalen Anforderungen oder 
          	Randbedingungen, die für das System gelten. Da Anwendungsfälle von 
          	Natur aus inhärent funktional sind, können sie diese Art von 
          	Information nicht aufnehmen.
          </para>

          <note>

            <para lang="en">Some analysts like to place non-functional 
            requirements in a section at the end of each use case 
            specification, containing the non-functional requirements 
            relevant to the use case.</para>
            <para lang="de">
            	Einige Analytiker plazieren nicht-funktionale Anforderungen in 
            	einem Abschnitt am Ende einer jeden Anwendungsfallspezifikation, 
            	der die nicht-funktionalen, anwendungsfallbezogenen 
            	Anforderungen enthält.
            </para>

            <para lang="en">
              This can cause some problems.
              First key non-functional requirements (for example about
              performance) may need to appear in many use cases and it is bad
              practice to replicate information.
              Secondly there are invariably some non-functional requirements
              that are system wide and need a system wide document.
              Hence my preference for a single supplementary requirements
              specification.
            </para>
            <para lang="de">
            	Dies kann einige Probleme verursachen. Der erste Punkt ist, dass 
            	nicht-funktionale Anforderungen (zum Beispiel über die 
            	Performance) in vielen Anwendungsfällen erscheinen muß und es 
            	ist eine schlechte Praxis, Informationen zu replizieren.
            	Zweitens gibt es einige invariable systemweite nicht-funktionale 
            	Anforderungen, die ein systemweites Dokument erfordern.
            	Daher meine Präferenz für eine einzige ergänzende 
            	Anforderungsdokumentation.
            </para>

          </note>

          <para lang="en">There should be a section for each of the main areas of 
          non-functional requirements. The checklist provided by Ian 
          Sommerville in his book <emphasis>Software 
          Engineering</emphasis> (Third Edn, Addison-Wesley, 1989) is a 
          useful guide.</para>
          <para lang="de">
        	Es sollte ein Abschnitt für jeden Hauptbereich der nicht-funktionalen 
        	Anforderungen geben. Die Checkliste von Ian Sommerville in seinem 
        	Buch <emphasis>Software Engineering</emphasis>	(Third Edition, 
        	Addison-Wesley, 1989) ist eine hilfreiche Anleitung.
          </para>

          <itemizedlist>

            <listitem>

              <para lang="en"><emphasis>Speed</emphasis>. Processor performance, 
              user/event response times, screen refresh time.</para>
              <para lang="de">
              	<emphasis>Geschwindigkeit</emphasis>. Prozessorleistung, 
              	Anwender-/Ereignis-Antwortzeiten, Bildauffrischungszeiten.
              </para>

            </listitem>

            <listitem>

              <para lang="en"><emphasis>Size</emphasis>. Main memory (and 
              possibly caches), disc capacity.</para>
              <para lang="de">
              	<emphasis>Grösse</emphasis>. Hauptspeicher (und mögliche 
              	Zwischenspeicher), Plattenkapazität.
              </para>

            </listitem>

            <listitem>

              <para lang="en"><emphasis>Ease of use</emphasis>. Training time, 
              style and detail of help system.</para>
              <para lang="de">
              	<emphasis>Leichte Anwendbarkeit</emphasis>. Ausbildungszeit, 
              	Stil und Details des Hilfesystems. 
              </para>

            </listitem>

            <listitem>

              <para lang="en"><emphasis>Reliability</emphasis>. Mean time to 
              failure, probability of unavailability, rate of failure, 
              availability.</para>
              <para lang="de">
              	<emphasis>Zuverlässigkeit</emphasis>. Durchschnittliche 
              	Fehlerauftrittszeit, die Nichtverfügbarkeitswahrscheinlichkeit, 
              	die Fehlerrate, die Verfügbarkeit.
              </para>

            </listitem>

            <listitem>

              <para lang="en"><emphasis>Robustness</emphasis>. Time to restart 
              after failure, percentage of events causing failure, 
              probability of data corruption on failure.</para>
              <para lang="de">
              	<emphasis>Widerstandsfähigkeit</emphasis>. Wiederanlaufzeit 
              	nach einem Fehler, Prozentsatz der Ereignisse, die Fehler 
              	verursachen, die Wahrscheinlichkeit von Datenverlust bei einem 
              	Fehler. 
              </para>

            </listitem>

            <listitem>

              <para lang="en"><emphasis>Portability</emphasis>. Percentage of 
              target-dependent code/classes, number of target 
              systems.</para>
              <para lang="de">
              	<emphasis>Portabilität</emphasis>. Prozentsatz von zielabhängigem 
              	Code/Klassen, Anzahl der Zielsysteme. 
              </para>

            </listitem>

          </itemizedlist>

          <para lang="en">To this we should add sections on environment 
          (temperature, humidity, lightening protection status) and 
          standards compliance.</para>
          <para lang="de">
          	Dazu sollten wir Abschnitte über die Umgebung (Temperatur, 
          	Feuchtigkeit, Blitzschutz) und Übereinstimmung mit Standards 
          	hinzufügen.
          </para>

        </sect2>

      </sect1>

      <sect1 id="s1.argo_use_cases">

        <title>
        	<phrase lang="en">Using Use Cases in ArgoUML</phrase>
        	<phrase lang="de">Anwendungsfälle in ArgoUML verwenden</phrase>
        </title>

        <para lang="en">ArgoUML allows you to draw use case diagrams. When you 
        create a new project it has a use case diagram created by 
        default, named <literal>use case diagram 1</literal>. Select 
        this by button&nbsp;1 click on the diagram name in the explorer (the 
        upper left quadrant of the user screen).</para>
        <para lang="de">
        	ArgoUML erlaubt es Ihnen Anwendungsfalldiagramme zu zeichnen. 
        	Wenn Sie ein neues Projekt erstellen, ist ein Anwendungsfalldiagramm 
        	standardmäßig mit dem Namen <literal>Anwendungsfalldiagramm 1
        	</literal> angelegt. Wählen Sie diesen Diagrammnamen im Explorer 
        	durch einen Klick mit der Taste&nbsp;1 aus (der obere linke 
        	Quadrant des ArgoUML-Fensters).
        </para>

        <para lang="en">New use case diagrams can be created as needed through 
        <literal>Create Diagram</literal> on the main menu bar or on 
        the Create Diagram Toolbar. They are edited in the editing pane 
        (the upper right quadrant of the user screen).</para>
        <para lang="de">
        	Neue Anwendungsfalldiagramme können, wenn benötigt, über <literal>
        	Erzeuge Diagramm</literal> in der Menüzeile oder über die 
        	Werkzeugleiste erstellt werden. Sie werden im Bearbeitungsfenster 
        	(der obere rechte Quadrant des ArgoUML-Fensters) bearbeitet.
        </para>

        <sect2>

          <title>
          	<phrase lang="en">Actors</phrase>
          	<phrase lang="en">Akteure</phrase>
          </title>

          <indexterm lang="en">
          	<primary>Create New</primary>
          	<secondary>Actor</secondary>
          </indexterm>
          <indexterm lang="de">
          	<primary>Neu erstellen</primary>
          	<secondary>Akteur</secondary>
          </indexterm>
          <indexterm lang="en">
          	<primary>Actor</primary>
          </indexterm>
          <indexterm lang="de">
          	<primary>Akteur</primary>
          </indexterm>
          <para lang="en">To add an actor to the diagram use button&nbsp;1 click on 
          the actor icon on the editing pane toolbar (
          <guiicon><inlinemediaobject><imageobject>
          <imagedata align="center" fileref="images/icons/actor.gif"
           format="GIF"/></imageobject></inlinemediaobject></guiicon>) 
          and then button&nbsp;1 click at the location where you wish to 
          place it. The actor can be moved subsequently by button&nbsp;1 
          motion (i.e. button&nbsp;1 down over the actor to select it, move 
          to the new position and button&nbsp;1 release to drop the actor in 
          place.</para>
          <para lang="de">
	          Um einen Akteur dem Diagramm hinzuzufügen, klicken Sie mit der 
	          Taste&nbsp;1 auf das Akteur-Symbol in der Werkzeugleiste des 
	          Bearbeitenfensters (
	          <guiicon>
	          	<inlinemediaobject>
	          		<imageobject>
	          			<imagedata align="center"
	          				fileref="images/icons/actor.gif" format="GIF" />
	          		</imageobject>
	          	</inlinemediaobject>
	          </guiicon>)
	          und dann klicken Sie mit der Taste&nbsp;1 an die Stelle, wo Sie ihn 
	          plazieren wollen. Der Akteur kann nachträglich durch eine Taste
	          &nbsp;1-Bewegung bewegt werden (z.B. über dem Akteur die Taste
	          &nbsp;1herunterdrücken, um diesen zu markieren, ihn an die neue 
	          Position bewegen und die Taste&nbsp;1 loslassen, um den Akteur an 
	          diese Stelle zu bringen).	 
          </para>

          <para lang="en">Multiple actors can be added in one go, by using 
          button&nbsp;1 double click on the actor icon. Each subsequent 
          button&nbsp;1 click will drop an actor on the diagram. A button&nbsp;1 
          click on the select icon (
          <guiicon><inlinemediaobject><imageobject>
          <imagedata align="center" fileref="images/icons/select.gif"
           format="GIF"/></imageobject></inlinemediaobject></guiicon>) 
          will stop adding actors.</para>
          <para lang="de">
	          Mehrere Akteure können in einem Schritt durch einen Doppelklick mit 
	          der Taste&nbsp;1 auf das Akteursymbol hinzugefügt werden. Jeder 
	          nachträgliche Taste&nbsp;1-Klick wird einen Akteur in das Diagramm 
	          bringen. Ein Klick mit der Taste&nbsp;1 auf das Auswahlsymbol (
	          <guiicon>
	          	<inlinemediaobject>
	          		<imageobject>
	          			<imagedata align="center"
	          				fileref="images/icons/select.gif" format="GIF" />
	          		</imageobject>
	          	</inlinemediaobject>
	          </guiicon>
	          ) wird das Hinzufügen der Akteure stoppen.
          </para>

          <para lang="en">The actors name is set in its property panel. First 
          select the actor (if not already selected) on the editing 
          pane using button&nbsp;1 click. Then click on the <literal>
          Properties</literal> tab in the details pane. The name is 
          entered in the name field, and will appear on the 
          screen.</para>
          <para lang="de">
          	Der Name des Akteurs wird in seinem Eigenschaftsfenster vergeben. 
          	Zuerst markieren Sie den Akteur (wenn nicht bereits markiert) im 
          	Bearbeitungsfenster mit Hilfe des Taste&nbsp;1-Klick. Dann klicken 
          	Sie auf das <literal>Eigenschaften</literal>-Register im 
          	Detailfenster. Der Name wird im Feld Name eingegeben und wird am 
          	Bildschirm erscheinen.
          </para>

          <para lang="en">As a shortcut, double button&nbsp;1 click on the name of the 
          actor in the editing pane (or just typing on the keyboard 
          when an actor is selected) will allow the name to be edited 
          directly. This is a convenient way to enter a name for a new 
          actor.</para>
          <para lang="de">
          	Als eine Abkürzung, die Ihnen erlaubt, den Namen direkt einzugeben, 
          	führen Sie mit der Taste&nbsp;1 einen Doppelklick auf den Namen des 
          	Akteurs im Bearbeitenfenster aus (oder geben Sie ihn einfach über 
          	die Tastatur ein, wenn der Akteur markiert ist). Dies ist ein 
          	komfortabler Weg, einen Namen für einen neuen Akteur einzugeben.
          </para>

          <para lang="en">Having created the actor, you will see it appear in the 
          explorer (the upper left quadrant of the user screen). This 
          shows all the model elements created within the UML design. A drop 
          down at the top of the explorer controls the ordering of 
          model elements in the explorer. The most useful are the <literal>
          Package-centric</literal> (default) and <literal>
          Diagram-centric</literal>. The latter shows model elements grouped 
          by the diagram on which they appear.</para>
          <para lang="de">
          	Wenn sie einen Akteur erstellt haben, werden Sie sehen, dass er im 
          	Exlorer (der obere linke Quadrant des ArgoUML-Fensters) erscheint. 
          	Dieser zeigt alle im UML-Design erstellten Modellelemente. Eine 
          	Kombinationsfeldliste am oberen Ende des Explorers beeinflusst die 
          	Reihenfolge der Modellelemente im Explorer. Die nützlichsten sind 
			<literal>Nach Paketen</literal> (Standard) und <literal>
	        Nach Diagrammen</literal>. Das letztere gruppiert die Modellelemente 
	        nach Diagrammen. 
          </para>

        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">Use Cases</phrase>
          	<phrase lang="de">Anwendungsfälle</phrase>
          </title>

          <indexterm lang="en">
	          <primary>Create New</primary>
	          <secondary>Use Case</secondary>
          </indexterm>
          <indexterm lang="de">
	          <primary>Erstelle neu</primary>
	          <secondary>Anwendungsfall</secondary>
          </indexterm>
          <indexterm lang="en">
          	<primary>Use Case</primary>
          </indexterm>
          <indexterm lang="de">
          	<primary>Anwendungsfall</primary>
          </indexterm>
          <para lang="en">The procedure for adding use cases is the same as that 
          for adding actors, but using the use case icon on the editing 
          pane toolbar (<guiicon><inlinemediaobject><imageobject>
          <imagedata align="center" fileref="images/icons/use_case.gif"
           format="GIF"/></imageobject></inlinemediaobject></guiicon>).</para>
          <para lang="de">
          	Das Vorgehen, um Anwendungsfälle hinzuzufügen, ist das gleiche wie 
          	für das Hinzufügen von Akteuren, allerdings indem das Anwendungsfall-
          	Symbol im Bearbeitenfenster verwendet wird (
          	<guiicon>
          		<inlinemediaobject>
          			<imageobject>
          				<imagedata align="center"
          					fileref="images/icons/use_case.gif" format="GIF" />
          			</imageobject>
          		</inlinemediaobject>
          	</guiicon>
          	).
          </para>

          <para lang="en">By default use cases in ArgoUML do not display their 
          extension points (for use in extend relationships). You can 
          show the extension point compartment in one of two 
          ways.</para>
          <para lang="de">
          	Standardmäßig zeigen Anwendungsfälle in ArgoUML nicht ihre 
          	Erweiterungspunkte an (wird verwendet, um Beziehungen anzulegen). 
          	Sie können die Erweiterungspunkte auf einen von zwei Wegen anzeigen.
          </para>

          <orderedlist>

            <listitem>

              <para lang="en">Select the use case in the editing pane with 
              button&nbsp;1 click, then select the <literal>Style</literal> 
              tab in the details pane and button&nbsp;1 click on the 
              <literal>Display: Extension Points</literal> check 
              box.</para>
              <para lang="de">
              	Markieren Sie den Anwendungsfall im Bearbeitenfenster mit einem 
              	klick der Taste&nbsp;1 aus, dann markieren Sie das Register 
              	<literal>Darstellung</literal> und klicken auf die Checkbox 
              	<literal>Erweiterungspunkte</literal>.
              </para>

            </listitem>

            <listitem>

              <para lang="en">Use button&nbsp;2 click over the use case in the editing 
              pane to display a context-sensitive pop-up menu and from 
              that choose <literal>Show/Show Extension Point 
              Compartment</literal>.</para>
              <para lang="de">
              	Durch klicken mit der Taste&nbsp;2 auf dem Anwendungsfall im 
              	Bearbeitenfenster erscheint ein kontext-sensitives Popup-Menü 
              	und aus diesem wählen Sie <literal>Darstellung/
              	Erweiterungspunkte anzeigen</literal> aus.
              </para>

            </listitem>

          </orderedlist>

          <para lang="en">The same approaches can be used to hide the extension 
          point compartment.</para>
          <para lang="de">
          	Der gleiche Ansatz kann für das verstecken des 
          	Erweiterungspunktbereiches verwendet werden.
          </para>

          <sect3>

            <title>
            	<phrase lang="en">Adding an Extension Point to a Use Case</phrase>
            	<phrase lang="de">
            		Einem Anwendungsfall einen Erweiterungspunkt hinzufügen
            	</phrase>
            </title>

            <indexterm lang="en">
            	<primary>Create New</primary>
            	<secondary>Extension Point</secondary>
            </indexterm>
            <indexterm lang="de">
            	<primary>Erstelle neu</primary>
            	<secondary>Erweiterungspunkt</secondary>
            </indexterm>
            <indexterm lang="en">
            	<primary>Extension Point</primary>
            </indexterm>
            <indexterm lang="de">
            	<primary>Erweiterungspunkt</primary>
            </indexterm>
            <para lang="en">There are two ways to add an extension point to a use 
            case.</para>
            <para lang="de">
            	Es gibt zwei Wege, einem Anwendungsfall einen Erweiterungspunkt 
            	hinzuzufügen.
            </para>

            <orderedlist>

              <listitem>

                <para lang="en">Select the use case on the editing pane with 
                button&nbsp;1 click. Then click on the <literal>Add 
                Extension Point</literal> icon (
                <guiicon><inlinemediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/icons/extension_point.gif"
                 format="GIF"/></imageobject></inlinemediaobject></guiicon>) 
                on the toolbar, and a new extension point with default 
                name and location will be added after any existing 
                extension points.</para>
                <para lang="de">
                	Markieren Sie mit der Taste&nbsp;1 den Anwendungsfall im 
                	Bearbeitenfenster. Dann klicken Sie in der Werkzeugleiste 
                	auf das Symbol <literal>Neue Erweiterung</literal> (
			 		<guiicon>
			 			<inlinemediaobject>
			 				<imageobject>
			 					<imagedata align="center"
			 						fileref="images/icons/extension_point.gif" format="GIF" />
		 					</imageobject>
						 	</inlinemediaobject>
		 				</guiicon>
	 				und ein neuer Erweiterungspunkt mit Standardnamen und -ort 
	 				wird im Anschluss an die exisiterenden 
	 				Erweiterungspunkte hinzugefügt.
                </para>

                <note>

                  <para lang="en">The <literal>Add Extension Point</literal> icon 
                  is grayed out and unusable until a use case is 
                  selected.</para>
                  <para lang="de">
                  	Das Symbol <literal>Erweiterungspunkt hinzufügen</literal> 
                  	ist inaktiv, bis ein Anwendungsfall markiert ist.
				  </para>

                </note>

              </listitem>

              <listitem>

                <para lang="en">Select the use case on the editing pane with 
                button&nbsp;1 click and then select its property tab in the 
                details pane. A button&nbsp;2 click over the <literal>
                Extension Points:</literal> field will bring up a 
                context-sensitive pop-up menu. Select <literal>
                Add</literal> to add a new extension point.</para>
                <para lang="de">
                	Markieren Sie den Anwendungsfall im Bearbeitenfenster mit 
                	dem Taste&nbsp;1-Klick und dann wählen Sie das Register 
                	Eigenschaften im Detailfenster aus. Ein Taste&nbsp;2-Klick 
                	über dem Feld <literal>Erweiterungspunkt:</literal> wird 
                	ein kontext-sensitives Popup-Menü öffnen. Markieren Sie 
                	<literal>Hinzufügen</literal> aus, um einen neuen 
                	Erweiterungspunkt hinzuzufügen.
                </para>

                <para lang="en">If any extension points already exist, they will 
                be shown in this field on the property tab. The new 
                extension point will be inserted immediately before the 
                entry over which the pop-up menu was invoked. This 
                ordering can be changed later by using the <literal>
                Move Up</literal> and <literal>Move Down</literal> 
                entries on the pop-up menu.</para>
                <para lang="de">
                	Wenn bereits ein Erweiterungspunkt existiert, werden Sie in 
                	diesem Feld im Register Eigenschaften angezeigt. Der neue 
                	Erweiterungspunkt wird unmittelbar vor dem Eintrag über dem 
                	das Popup-Menü aufgerufen wurde eingefügt. Diese Reihenfolge 
                	kann später durch die <literal>Nach oben</literal> und 
                	<literal>Nach unten</literal>-Einträge im Popup-Menü 
                	verändert werden.
                </para>

              </listitem>

            </orderedlist>

            <para lang="en">Whichever method is used, the new extension point is 
            selected, and its property tab can be displayed in the 
            details pane. The name and location of the extension point 
            are free text, set in the corresponding fields of the 
            property tab.</para>
            <para lang="de">
            	Welche Methode auch immer verwendet wird, der neue 
            	Erweiterungspunkt wird markiert und sein Register Eigenschaften 
            	kann im Detailfenster angezeigt werden. Der Name und der Ort 
            	des Erweiterungspunktes sind Freitext, der die entsprechenden 
            	Felder des Registers Eigenschaften setzt.
            </para>

            <para lang="en">An existing extension point can be edited from its 
            property tab. The property tab can be reached in two 
            ways.</para>
            <para lang="de">
            	Ein exisiterender Erweiterungspunkt kann in seinem Register 
            	Eigenschaften bearbeitet werden. Das Register Eigenschaften 
            	kann auf zwei Wegen erreicht werden.
            </para>

            <orderedlist>

              <listitem>

                <para lang="en">If the extension point compartment for the use 
                case is displayed on the diagram, select the use case 
                with button&nbsp;1 click and then select the extension point 
                with a further button&nbsp;1 click. The property tab can 
                then be selected in the details pane.</para>
                <para lang="de">
                	Wenn für den Anwendungsfall der Erweiterungspunkt-Bereich 
                	im Diagramm angezeigt wird, markieren Sie den Anwendungsfall 
                	mit dem Taste&nbsp;1-Klick und dann markieren Sie den 
                	Erweiterungspunkt mit einem weiteren Taste&nbsp;1-Klick. 
                	Das Register Eigenschaften kann dann im Detailfenster 
                	ausgewählt werden.
                </para>

              </listitem>

              <listitem>

                <para lang="en">Otherwise select the use case and its property 
                tab in the details pane. A button&nbsp;1 click on the 
                desired entry in the <literal>Extension 
                Points</literal> field will bring up the property tab 
                for the extension point in the details pane.</para>
                <para lang="de">
                	Im anderen Fall markieren Sie den Anwendungsfall und sein 
                	Register Eigenschaften im Detailfenster. Ein Taste&nbsp;1-
                	Klick auf den gewünschten Eintrag im Feld <literal>
                	Erweiterungspunkte</literal> wird das Register Eigenschaften 
                	für den Erweiterungspunkt im Detailfenster zur Anzeige 
                	bringen.
                </para>

              </listitem>

            </orderedlist>

            <para lang="en">The name and location fields of the extension point 
            may then be edited.</para>
            <para lang="de">
            	Die Felder Name und Ort des Erweiterungspunktes können 
            	bearbeitet werden.
            </para>

            <para lang="en">As a shortcut, where the extension point compartment 
            is displayed, double click on the extension point allows 
            text to be typed in directly. This is parsed to set name 
            and location for the extension point.</para>
            <para lang="de">
            	Wenn der Erweiterungspunktbereich angezeigt wird, ist der 
            	Doppelklick auf den Erweiterungspunkt eine Abkürzung und erlaubt 
            	es Ihnen den Text direkt einzugeben. Dies wird analysiert, um 
            	den Namen und den Ort für den Erweiterungspunkt zu setzen.
            </para>

            <para lang="en">Extension points may be deleted, or their ordering 
            changed by using the button&nbsp;2 pop-up menu over the <literal>
            Extension Points</literal> field in the use case property 
            tab.</para>
            <para lang="de">
            	Erweiterungspunkte dürfen gelöscht oder deren Reihenfolge 
            	mit Hilfe des Taste&nbsp;2-Popup-Menüs über dem Feld <literal>
            	Erweiterungspunkte</literal> im Register Eigenschaften des 
            	Anwendungsfalles geändert werden.
            </para>

            <para lang="en">Having created an extension point, it will appear in 
            the explorer (upper left quadrant of the user screen). 
            Extension points are always shown in a sub-tree beneath 
            their owning use case.</para>
            <para lang="de">
            	Nachdem Sie einen Erweiterungspunkt erstellt haben, wird er im 
            	Explorer (oberer linker Quadrant des ArgoUML-Fensters) 
            	erscheinen. Erweiterungspunkte werden immer als Sub-Baum ihres 
            	eigenen Anwendungsfalles dargestellt. 
            </para>

          </sect3>

        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">Associations</phrase>
          	<phrase lang="de">Assoziationen</phrase>
          </title>

          <indexterm lang="en">
          	<primary>Create New</primary>
          	<secondary>Association in a Use CaseDiagram</secondary>
          </indexterm>
          <indexterm lang="de">
          	<primary>Erzeuge neue</primary>
          	<secondary>Assoziation in einem Anwendungsfalldiagramm</secondary>
          </indexterm>
          <indexterm lang="en">
          	<primary>Association</primary>
          	<secondary>in a Use Case Diagram</secondary>
          </indexterm>
          <indexterm lang="de">
          	<primary>Assoziation</primary>
          	<secondary>in einem Anwendungsfalldiagramm</secondary>
          </indexterm>
          <para lang="en">
          To join a use case to an actor on the diagram use 
          button&nbsp;1 click on the association icon on the editing pane 
          toolbar (<guiicon><inlinemediaobject><imageobject>
          <imagedata align="center"
           fileref="images/icons/association.gif"
           format="GIF"/></imageobject></inlinemediaobject></guiicon>). 
          Hold button&nbsp;1 down at the use case, move to the actor and 
          release button&nbsp;1 (or alternatively start at the actor and 
          finish at the use case).
          </para>
          <para lang="de">
          	 Um im Diagramm einen Anwendungsfall mit einem Akteur zu verbinden, 
          	 klicken Sie der Taste&nbsp;1 auf das Assoziationssymbol in der 
          	 Editierwerkzeugleiste (
	         <guiicon>
	          <inlinemediaobject>
	          	<imageobject>
	          		<imagedata align="center"
	          			fileref="images/icons/association.gif" format="GIF" />
	          	</imageobject>
	          </inlinemediaobject>
	         </guiicon>).
	         Auf dem Anwendungsfall halten Sie die Taste&nbsp;1 gedrückt, gehen 
	         zum Akteur und lassen die Taste&nbsp;1 los (oder beginnen Sie beim 
	         Akteur und enden am Anwendungsfall). 
          </para>

          <para lang="en">This will create a straight line between actor and use 
          case. You can segment the line by holding down button&nbsp;1 down 
          on the line and moving before releasing. A vertex will be 
          added to the line, which you can move by button&nbsp;1 motion. A 
          vertex can be removed by picking it up and sliding to one end 
          of the line.</para>
          <para lang="de">
          	Dadurch wird eine gerade Linie zwischen dem Akteur und dem 
          	Anwendungsfall erzeugt. Sie können die Linie segmentieren, indem 
          	Sie die Taste&nbsp;1 auf der Linie gedrückt halten und vor dem 
          	loslassen bewegen. Der Linie wird ein Schnittpunkt hinzugefügt, den 
          	Sie mit der Taste&nbsp;1 bewegen können. Durch Aufnehmen und durch 
          	verschieben zu einem Ende der Linie kann der Schnittpunkt entfernt 
          	werden.
          </para>

          <para lang="en">Multiple associations can be added in one go, by using 
          button&nbsp;1 double click on the association icon. Each 
          subsequent button&nbsp;1 down/motion/release sequence will join an 
          actor to a use case. Use button&nbsp;1 on the select icon (
          <guiicon><inlinemediaobject><imageobject>
          <imagedata align="center" fileref="images/icons/select.gif"
           format="GIF"/></imageobject></inlinemediaobject></guiicon>) 
          to stop adding associations.</para>
          <para lang="de">
          Es können mehrere Assoziationen gleichzeitig hinzugefügt werden, indem 
          Sie auf das Assoziationssymbol einen Taste&nbsp;1-Doppelklick 
          ausführen. Jede darauf folgende Taste&nbsp;1-drücken/bewegen/loslassen-
          Sequenz wird einen Akteur mit einem Anwendungsfall verbinden. Das 
          Anklicken des Auswahlsymbols (
          <guiicon>
          	<inlinemediaobject>
          		<imageobject>
          			<imagedata align="center"
          				fileref="images/icons/select.gif" format="GIF" />
          		</imageobject>
          	</inlinemediaobject></guiicon>) 
          mit der Taste&nbsp;1 stoppt das Hinzufügen von Assoziationen.
          </para>

          <para lang="en">It is also possible to add associations using small 
          <quote>handles</quote> that appear to the left and right of a 
          use case or actor when it is selected and the mouse is over 
          it. Dragging the handle from a use case to an actor will 
          create an association to that actor (and similarly by 
          dragging a handle from an actor to a use case).</para>
          <para lang="de">
	          Es ist auch möglich, Assoziationen mit Hilfe der kleinen <quote>
	          Griffe</quote> hinzuzufügen, die links und rechts eines 
	          Anwendungsfalles oder eines Akteurs erscheinen, wenn dieser 
	          markiert ist und sich die Maus darüber befindet. Das Ziehen des 
	          Griffes von einem Anwendungsfall zu einem Akteur wird eine 
	          Assoziation zu diesem Akteur erzeugen (und umgekehrt beim Ziehen 
	          eines Griffes von einem Akteur zu einem Anwendungsfall).
          </para>

          <para lang="en">Dragging a handle from a use case into empty space will 
          create a new actor to go on the other end. Similarly dragging 
          a handle from an actor into empty space will create a new use 
          case.</para>
          <para lang="de">
          	Das Ziehen eines Griffes von einem Anwendungsfall in den leeren 
          	Raum wird einen neuen Akteur am anderen Ende erzeugen. Umgekehrt 
          	wird das Ziehen eines Griffes von einem Akteur in den leeren Raum 
          	einen neuen Anwendungsfall erzeugen.
          </para>

          <para lang="en">It is possible to give an association a name, 
          describing the relationship of the actor to the use case, 
          although this is not usually necessary. This is done through 
          the property tab of the association. Such a name appears 
          alongside the association near its center.</para>
          <para lang="de">
          	Es ist möglich, der Assoziation einen Namen zu geben, der die 
          	Beziehung des Akteurs zum Anwendungsfall beschreibt. Obgleich das 
          	gewöhnlich nicht notwendig ist. Dies wird über das 
          	Eigenschaftsregister der Assoziation getan. Solch ein Name erscheint 
          	entlang der Assoziation in der Nähe der Mitte.
          </para>

          <sect3 id="s3.tut.req_argo_navigation">

            <title>
            	<phrase lang="en">Setting Navigation</phrase>
            	<phrase lang="de">Navigation einstellen</phrase>
            </title>

            <indexterm lang="en">
            	<primary>Setting Navigation</primary>
            	<secondary>to an association in a Use Case Diagram</secondary>
            </indexterm>
            <indexterm lang="de">
            	<primary>Navigation einstellen</primary>
            	<secondary>
            		auf eine Assoziation in einem Anwendungsfalldiagramm
            	</secondary>
            </indexterm>
            <indexterm lang="en">
            	<primary>Navigation</primary>
            	<secondary>Setting</secondary>
            </indexterm>
			<indexterm lang="de">
            	<primary>Navigation</primary>
            	<secondary>einstellen</secondary>
            </indexterm>            
            <para lang="en">There are two ways of setting the navigation of an 
            association.</para>
            <para lang="de">
            	Es gibt zwei Wege, die Navigation einer Assoziation einzustellen.
            </para>

            <orderedlist>

              <listitem>

                <para lang="en">Use button&nbsp;2 click on the association to bring up 
                a context-sensitive pop-up menu. The <literal>
                Navigability</literal> sub-menu has options for 
                bi-directional navigation (the default, with no arrows) 
                and for navigability Actor-&gt;Use Case and
                Use Case-&gt;Actor.</para>
                <para lang="de">
                	Das Anklicken der Assoziation mit der Taste&nbsp;2 bringt 
                	ein kontextsensitives Popup-Menü nach oben. Das Untermenü 
                	<literal>Navigierbarkeit</literal> enthält Optionen für die 
                	bidirektionale Navigation (der Standard, ohne Pfeile) und 
                	für die Navigierbarkeit Akteur-&gt;Anwendungsfall und 
                	Anwendungsfall-&gt;Akteur.
                </para>

              </listitem>

              <listitem>

                <para lang="en">Use button&nbsp;1 to select the association and select 
                its property tab in the details pane. This shows a 
                field named <literal>Association Ends:</literal>, with 
                entries for each end labeled by the actor or use case 
                name and its multiplicity. Select the end that should 
                be at the tail of the arrow with button&nbsp;1 click. This 
                brings up the property tab for the association end. Use 
                button&nbsp;1 click to uncheck the <literal>
                Navigability</literal> box.</para>
                <para lang="de">
                	Verwenden Sie die Taste&nbsp;1, um die Assoziation zu 
                	markieren und markieren Sie sein Eigenschaftsregister im 
                	Detailfenster. Dieses enthält ein Feld mit der Bezeichnung 
                	<literal>Verbindungen:</literal> mit Einträgen für 
                	jedes mit einem Akteur oder Anwendungsfall verbundenen Ende 
                	und seiner Kardinalität. Markieren Sie das Ende welches das 
                	Ende des Pfeiles darstellt mit einem Taste&nbsp;1-
                	Doppelklick. Dies bringt das Eigenschaftsregister für das 
                	Assoziationsende nach oben. Verwenden Sie den Taste&nbsp;1-
                	Klick, um die Markierung des Kästchens <literal>navigierbar
                	</literal> zu entfernen.
	            </para>

                <note>

                  <para lang="en">This may seem counter-intuitive, but in fact 
                  associations by default are navigable in both 
                  directions (when no arrows are shown). This process 
                  is <emphasis>turning off</emphasis> navigation at one 
                  end, rather than turning it on at the other.</para>
                  <para lang="de">
                  	Dies erscheint anti-intuitiv, aber tatsächlich sind 
                  	Assoziationen standardmäßig in beide Richtungen navigierbar 
                  	(wenn keine Pfeile angezeigt werden). Dieser Prozess ist 
                  	eher das <emphasis>Ausschalten</emphasis> der Navigation 
                  	an einem Ende, als das Einschalten am anderen Ende.
                  </para>

                </note>

              </listitem>

            </orderedlist>

            <para lang="en">You will see it is possible to give an association 
            end a name in its property tab. This name will appear at 
            that end of the association, and can be used to indicate 
            the <emphasis>role</emphasis> being played by an actor or 
            use case in an association.</para>
            <para lang="de">
            	Sie werden sehen, dass es möglich ist, einem Assoziationsende 
            	im Eigenschaftsregister einen Namen zu geben. Dieser Name wird 
            	an dem Ende der Assoziation erscheinen und kann dazu verwendet 
            	werden die <emphasis>Rolle</emphasis> zu beschreiben, die ein 
            	Akteur oder ein Anwendungsfall in dieser Assoziation spielt.
            </para>

            <para lang="en">For example a time management system for a business 
            may have use cases for completing time sheets and for 
            signing off time sheets. An employee actor may be involved 
            in both, one as an employee, but the other in a role as 
            manager.</para>
            <para lang="de">
           		Ein Zeitmanagmentsystem für ein Geschäft kann zum Beispiel 
           		Anwendungsfälle für die Vervollständigung der Zeittabellen und 
           		für das Abzeichnen der Zeittabellen aufweisen. Ein Akteur 
           		Mitarbeiter kann in beides involviert sein. Einmal als 
           		Mitarbeiter und zum anderen in der Rolle als Manager.
            </para>

          </sect3>

          <sect3>

            <title>
            	<phrase lang="en">Setting Multiplicity</phrase>
            	<phrase lang="de">Die Kardinalität einstellen</phrase>
            </title>

            <indexterm lang="en">
            	<primary>Setting Multiplicity</primary>
            	<secondary>to an association in a Use Case Diagram</secondary>
            </indexterm>
            <indexterm lang="de">
            	<primary>Kardinalität einstellen</primary>
            	<secondary>
            		für eine Assoziation in einem Anwendungsfalldiagramm
            	</secondary>
            </indexterm>
            <indexterm  lang="en">
            	<primary>Multiplicity</primary>
            	<secondary>Setting</secondary>
            </indexterm>
            <indexterm lang="de">
            	<primary>Kardinalität</primary>
            	<secondary>einstellen</secondary>
            </indexterm>
            <para lang="en">There are two ways of setting multiplicity at the end 
            of an association.</para>
            <para lang="de">
            	Es gibt zwei Wege, die Kardinalität am Ende einer Assoziation 
            	einzustellen.
            </para>

            <orderedlist>

              <listitem>

                <para lang="en">Button&nbsp;2 click over the end of an association 
                will cause a context-sensitive pop-up menu to appear 
                with a sub-menu labeled <literal>
                Multiplicity</literal>. This allows you to select from 
                <literal>1</literal> (the default), <literal>
                0..1</literal>, <literal>0..*</literal> and <literal>
                1..*</literal>.</para>
                <para lang="de">
                	Der Taste&nbsp;2-Klick über dem Ende einer Assoziation 
                	verursacht das Erscheinen eines kontextsensitiven Popup-
                	Menüs mit einem Untermenü <literal>Kardinalität</literal>.
                	Dieses erlaubt es Ihnen, auszuwählen aus <literal>1</literal> 
                	(dem Standard), <literal>0..1</literal>, <literal>0..*
                	</literal> und <literal>1..*</literal>.
                </para>

              </listitem>

              <listitem>

                <para lang="en">Bring up the property sheet for the association 
                end as described for setting navigation (see the second 
                option in <xref linkend="s3.tut.req_argo_navigation"/>
                ). A drop down menu gives a range of multiplicity 
                options that may be selected.</para>
                <para lang="de">
                	Bringen Sie das Eigenschaftsregister für das Assoziationsende 
                	wie in "Navigation einstellen" nach oben (siehe zweite 
                	Option in <xref linkend="s3.tut.req_argo_navigation"/>). 
                	Ein Dropdown-Menü gibt Ihnen die Kardinaltitätsoptionen aus, 
                	die ausgewählt werden können.
	            </para>

              </listitem>

            </orderedlist>

            <para lang="en">The second of these two approaches has a wider range 
            of options, although ArgoUML does not currently allow the 
            user to set an arbitrary multiplicity.</para>
            <para lang="de">
            	Der zweite dieser beiden Ansätze hat mehr Optionen, obgleich 
            	ArgoUML es dem Anwender aktuell nicht erlaubt eine beliebige 
            	Kardinaltität einzustellen.
            </para>

          </sect3>

        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">Hierarchical Use Cases</phrase>
          	<phrase lang="de">Hierarchische Anwendungsfälle</phrase>
          </title>

          <indexterm lang="en">
          	<primary>Hierarchical Use Cases</primary>
          </indexterm>
          <indexterm lang="de">
          	<primary>Hierarchische Anwendungsfälle</primary>
          </indexterm>
          <indexterm lang="en">
          	<primary>Use Case, Hierarchical</primary>
          </indexterm>
          <indexterm lang="de">
          	<primary>Anwendungsfall, hierarchisch</primary>
          </indexterm>

          <para lang="en">
            UML as originally designed allowed use cases to be organized by
            grouping them in packages as well as by specifying relations among
            them.
            In ArgoUML only the relations mechanism is supported.
            All Three of the relations that apply to use cases are supported.
            These are <emphasis>include</emphasis>, <emphasis>extend</emphasis>
            and <emphasis>generalization</emphasis>.
          </para>
          <para lang="de">
          	Der Originalentwurf der UML erlaubt es, dass Anwendungsfälle in 
          	Paketen gruppiert, sowie Beziehungen zwischen ihnen spezifiziert 
          	werden können.
          	In ArgoUML werden nur die Beziehungsmechanismen unterstützt.
          	Alle drei Beziehungen, die auf Anwendungsfälle angewendet werden 
          	können werden unterstützt. Dieses sind <emphasis>include</emphasis>, 
          	<emphasis>extend</emphasis> und <emphasis>generalization</emphasis>.
          </para>

          <sect3>

            <title>
            	<phrase lang="en">Includes</phrase>
            	<phrase lang="de">Includes</phrase>
            </title>

            <indexterm lang="en">
            	<primary>Create New</primary>
            	<secondary>
            		Include Relationship in a Use Case Diagram
            	</secondary>
            </indexterm>
            <indexterm lang="de">
            	<primary>Erzeuge neue</primary>
            	<secondary>
            		Include Beziehung in einem Anwendungsfalldiagramm
            	</secondary>
            </indexterm>
            <indexterm lang="en">
            	<primary>Include Relationship</primary>
            	<secondary>in a Use Case Diagram</secondary>
            </indexterm>
            <indexterm lang="de">
            	<primary>Include Beziehung</primary>
            	<secondary>in einem Anwendungsfalldiagramm</secondary>
            </indexterm>
            <indexterm lang="en">
            	<primary>Relationship</primary>
            	<secondary>Include</secondary>
            </indexterm>
            <indexterm lang="de">
            	<primary>Beziehung</primary>
            	<secondary>Include</secondary>
            </indexterm>
            <para lang="en">The procedure for adding an include relationship is 
            the same as that for adding an association, but using the 
            include icon from the editing pane toolbar (
            <guiicon><inlinemediaobject><imageobject>
            <imagedata align="center" fileref="images/icons/include.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon>) 
            to join two use cases.</para>
            <para lang="de">
            	Die Prozedur zum Hinzufügen einer Include-Beziehung ist die 
            	gleiche, wie für das Hinzufügen einer Assoziation. Allerdings 
            	verwenden Sie das Include-Symbol aus der Editier-Werkzeugleiste
				 (
	            <guiicon>
	            	<inlinemediaobject>
	            		<imageobject>
	            			<imagedata align="center"
	            				fileref="images/icons/include.gif" format="GIF" />
	            		</imageobject>
	            	</inlinemediaobject></guiicon>) 
	            um die beiden Anwendungsfälle zu verbinden.
            </para>

            <para lang="en">Since include relationships are directional the order 
            in which the two ends are selected is important. The 
            <emphasis>including</emphasis> (main) use case should be 
            selected first (button&nbsp;1 down) and the 
            <emphasis>included</emphasis> (subsidiary) use case second 
            (button&nbsp;1 release).</para>
            <para lang="de">
            	Seit Include-Beziehungen richtungsgebunden sind, ist die 
            	Reihenfolge mit der die beiden Enden markiert werden wichtig. 
            	Der <emphasis>einbindende</emphasis> (Haupt) Anwendungsfall 
            	sollte zuerst (Taste&nbsp;1 drücken) und der 
            	<emphasis>eingebundene</emphasis> (sekundäre) Anwendungsfall 
            	als zweiter (Taste&nbsp;1 loslassen) markiert werden.
            </para>

            <para lang="en">It is possible to name include relationships using 
            the property tab, but this is rarely done, and will not be 
            displayed on the use case diagram.</para>
            <para lang="de">
            	Es ist möglich die Include-Beziehungen mit Hilfe des 
            	Eigenschaftsregisters zu benennen. Dies wird aber selten getan 
            	und wird im Anwendungsfalldiagramm nicht dargestellt.
            </para>

          </sect3>

          <sect3>

            <title>
            	<phrase lang="en">Extends</phrase>
            	<phrase lang="de">Extends</phrase>
            </title>

            <indexterm lang="en">
            	<primary>Create New</primary>
            	<secondary>Extend Relationship in a Use Case Diagram</secondary>
            </indexterm>
            <indexterm lang="de">
            	<primary>Erzeuge neue</primary>
            	<secondary>
            		Extend-Beziehung in einem Anwendungsfalldiagramm
            	</secondary>
            </indexterm>
            <indexterm lang="en">
            	<primary>Extend Relationship</primary>
            	<secondary>in a Use Case Diagram</secondary>
            </indexterm>
            <indexterm lang="de">
            	<primary>Extend-Beziehung</primary>
            	<secondary>in einem Anwendungsfalldiagramm</secondary>
            </indexterm>
            <indexterm lang="en">
            	<primary>Relationship</primary>
            	<secondary>Extend</secondary>
            </indexterm>
            <indexterm lang="de">
            	<primary>Beziehung</primary>
            	<secondary>Extend</secondary>
            </indexterm>
            <para lang="en">The procedure for adding an extend relationship is 
            the same as that for adding an include relationship, but 
            using the extend icon from the editing pane toolbar (
            <guiicon><inlinemediaobject><imageobject>
            <imagedata align="center" fileref="images/icons/extend.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon>) 
            to join two use cases.</para>
            <para lang="de">
            	Die Prozedur zum Hinzufügen einer Extend-Beziehung ist die 
            	gleiche, wie für das Hinzufügen einer Include-Beziehung. 
            	Allerdings verwenden Sie das Extend-Symbol aus der Editier-
            	Werkzeugleiste
				 (
	            <guiicon>
	            	<inlinemediaobject>
	            		<imageobject>
	            			<imagedata align="center"
	            				fileref="images/icons/extend.gif" format="GIF" />
	            		</imageobject>
	            	</inlinemediaobject></guiicon>) 
	            um die beiden Anwendungsfälle zu verbinden.
            </para>

            <para lang="en">As with include relationships, the order of selection 
            matters. In this case, the <emphasis>extending</emphasis> 
            (subsidiary) use case should be selected first (button&nbsp;1 
            down) and the <emphasis>extending</emphasis> (main) use 
            case second (button&nbsp;1 release).</para>
            <para lang="de">
            	Wie bei den Include-Beziehungen ist die Reihenfolge des 
            	Markierens wichtig. In diesem Fall sollte der 
            	<emphasis>erweiternde</emphasis> 
	            (sekundäre) Anwendungsfall zuerst (Taste&nbsp;1 drücken) und 
	            dann der <emphasis>erweiterte</emphasis> (Haupt-) zweite 
	            Anwendungsfall markiert werden (Taste&nbsp;1 loslassen).
            </para>

            <note>

              <para lang="en">This is the reverse of the include relationship, 
              but reflects the way that designer&apos;s tend to think. 
              The fact that the extend icon&apos;s arrow points upward 
              (the opposite of the include icon) should help remind you 
              of this.</para>
              <para lang="de">
              	Dies ist gegenüber der Include-Beziehung genau umgekehrt, 
              	reflektiert aber die Art und Weise, wie Designer denken. Die 
              	Tatsache, dass der Pfeil des Extend-Symboles nach oben zeigt (
              	im Gegensatz zum Include-Symbol) sollte Ihnen helfen, sich daran 
              	zu erinnern.
              </para>

            </note>

            <para lang="en">To set a condition for the extend relationship, 
            select the extend relationship in the editing pane 
            (button&nbsp;1 click) and then bring up its property tab in the 
            details pane ((button&nbsp;1 click on the tab). The text of the 
            condition may be typed in the <literal>Condition</literal> 
            field. Long conditions may be split over several lines if 
            desired. The condition is displayed under the <literal>
            &laquo;extend&raquo;</literal> label on the diagram.</para>
            <para lang="de">
            	Um eine Bedingung für die Extend-Beziehung einzugeben, markieren 
            	Sie die Extend-Beziehung im Editierfenster (Taste&nbsp;1-Klick) 
            	und öffenen Sie das Eigenschaftsregister im Detailfenster (
            	Taste&nbsp;1-Klick auf das Register). Der Text der Bedingung 
            	kann in das <literal>Bedingung</literal>s-Feld eingegeben werden. 
            	Lange Bedingungen sollten - sofern gewünscht - über mehrere 
            	Zeilen aufgeteilt werden. Die Bedingung wird unterhalb der 
            	<literal>&laquo;extend&raquo;</literal>-Kennzeichnung im 
            	Diagramm dargestellt.
            </para>

            <para lang="en">It is possible to name extend relationships using the 
            property tab, but this is rarely done, and will not be 
            displayed on the use case diagram.</para>
            <para lang="de">
            	Es ist möglich die Extend-Beziehungen mit Hilfe des 
            	Eigenschaftsregisters zu benennen. Dies wird aber selten getan 
            	und wird im Anwendungsfalldiagramm nicht dargestellt.
            </para>

          </sect3>

          <sect3>

            <title>
            	<phrase lang="en">Generalization</phrase>
            	<phrase lang="de">Generalisierung</phrase>
            </title>

            <indexterm lang="en">
            	<primary>Create New</primary>
            	<secondary>
            		Generalization relationship in a Use Case Diagram
            	</secondary>
            </indexterm>
            <indexterm lang="de">
            	<primary>Erzeuge neue </primary>
            	<secondary>
            		Generalisierungs-Beziehung in einem Anwendungsfalldiagramm
            	</secondary>
            </indexterm>
            <indexterm lang="en">
            	<primary>Generalization Relationship</primary>
            	<secondary>in a Use Case Diagram</secondary>
            </indexterm>
            <indexterm lang="de">
            	<primary>Generalisierungs-Beziehung</primary>
            	<secondary>in einem Anwendungsfalldiagramm</secondary>
            </indexterm>
            <indexterm lang="en">
            	<primary>Relationship</primary>
            	<secondary>Generalization</secondary>
            </indexterm>
            <indexterm lang="de">
            	<primary>Beziehung</primary>
            	<secondary>Generalisierung</secondary>
            </indexterm>
            <para lang="en">The procedure for adding generalizations, is the same 
            as for adding extend relationships, but using the 
            generalization icon from the editing pane toolbar (
            <guiicon><inlinemediaobject><imageobject>
            <imagedata align="center"
             fileref="images/icons/generalization.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon>).</para>
            <para lang="de">
            	Die Prozedur zum Hinzufügen einer Generalisierung ist die 
            	gleiche, wie für das Hinzufügen einer Extend-Beziehung. 
            	Allerdings verwenden Sie das Generalisierungs-Symbol aus der 
            	Editier-Werkzeugleiste (
	            <guiicon>
	            	<inlinemediaobject>
	            		<imageobject>
	            			<imagedata align="center"
	            				fileref="images/icons/generalization.gif" format="GIF" />
	            		</imageobject>
	            	</inlinemediaobject>
	            </guiicon>
	            ).
	        </para>

            <para lang="en">Since generalization is a directed relationship, the 
            order of selection matters. The specialized use case should 
            be selected first (button&nbsp;1 down) and the generalized 
            second (button&nbsp;1 release).</para>
	        <para lang="de">
	        	Seit die Generalisierung eine gerichtete Beziehung ist, ist die 
	        	Reihenfolge des Markierens wichtig. Der spezialisierte 
	        	Anwendungsfall sollte zuerst (Taste&nbsp;1 drücken) und der 
	        	generalisierte als zweites markiert werden (Taste&nbsp;1 
	        	loslassen).
	        </para>

            <para lang="en">It is also possible to add generalizations using 
            small <quote>handles</quote> that appear to the top and 
            bottom of a use case when it is selected. Dragging the 
            handle at the top to another use case will create a 
            generalization. The original use case is the specializing 
            end, and the use case to which the handle was dragged will 
            be the generalizing end. Dragging into empty space will 
            create a new use case to be the generalizing end.</para>
            <para lang="de">
            	Es ist auch möglich, die Generalisierung mit Hilfe der kleinen 
            	Griffe, die oben und unten am Anwendungsfall erscheinen, wenn 
            	er markiert ist, hinzuzufügen. Das Ziehen des oberen Griffes auf 
            	einen anderen Anwendungsfall erzeugt eine Generalisierung. Der 
            	Original-Anwendungsfall ist das spezialisierte Ende und der 
            	Anwendungsfall auf den der Griff gezogen wurde wird das 
            	generalisierte Ende. Das ziehen in den leeren Raum wird einen 
            	neuen Anwendungsfall mit einem generalisierten Ende erzeugen.
            </para>

            <para lang="en">Similarly dragging on the bottom handle will create a 
            generalization in which the original use case is the 
            <emphasis>generalizing</emphasis> end.</para>
            <para lang="de">
            	Ähnlich ist es beim Ziehen des unteren Griffes. Dies erzeugt 
            	eine Generalisierung bei der der Original-Anwendungsfall das 
            	<emphasis>generalisierte</emphasis>Ende darstellt.
            </para>

            <para lang="en">Generalization is also permitted between actors, 
            although its use is beyond the scope of this tutorial. 
            Unlike use cases there are no generalization handles on 
            actors, so generalizations must be created using the 
            toolbar icon.</para>
            <para lang="de">
            	Die Generalisierung ist auch zwischen Akteuren erlaubt, obwohl 
            	dieser Gebrauch ausserhalb des Bezugsbereiches dieses Tutorials 
            	liegt. Im Gegensatz zu den Anwendungsfällen gibt es keine 
            	Generalisierungs-Griffe bei Akteuren, so dass Generalisierungen 
            	mit Hilfe der Symbole in der Werkzeugleiste erzeugt werden 
            	müssen.
            </para>

            <para lang="en">It is possible to name generalization relationships 
            using the property tab, but this is rarely done. If a name 
            is provided, it will be displayed on the use case 
            diagram.</para>
            <para lang="de">
            	Es ist möglich die Generalisierungs-Beziehungen mit Hilfe des 
            	Eigenschaftsregisters zu benennen. Wird ein Name eingegeben, 
            	wird dieser im Anwendungsfalldiagramm dargestellt.
            </para>

          </sect3>

        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">Stereotypes</phrase>
          	<phrase lang="de">Stereotypen</phrase>
          </title>

          <indexterm lang="en">
          	<primary>Stereotype</primary>
          	<secondary>in Use Case Diagrams</secondary>
          </indexterm>
          <indexterm lang="de">
          	<primary>Stereotypen</primary>
          	<secondary>in Anwendungsfalldiagrammen</secondary>
          </indexterm>
          <para lang="en">
            UML has the concept of <emphasis>stereotyping</emphasis> as a way
            of extending the basic notation.
            It may prove useful for example to model a problem at both the
            business level and the engineering level. 
            It is for this reason that the OMG distinguishes between a PIM
            and a PSM.
            For both of these we will need use cases, but the use cases 
            at the business level hold a different sort of information to 
            those at the engineering level.
            Very likely they use different language and notation in their
            underlying use case specifications.
          </para>
          <para lang="de">
          	Die UML enthält das Konzept der <emphasis>Schablonen</emphasis>, um 
          	die Basisnotation zu erweitern.
          	Es mag zum Beispiel nützlich erscheinen, ein Problem sowohl auf 
          	Geschäftsebene als auch auf der Ingenieur-Ebene zu modellieren. 
          	In diesem Fall unterscheidet die OMG zwischen einem PIM und einem 
          	PSM.
          	Für beide werden wir Anwendungsfälle benötigen, aber die 
          	Anwendungsfälle auf der Geschäftsebene enthalten eine andere Art von 
          	Informationen als die auf der Ingenieurs-Ebene.
          	Sie nutzen sehr wahrscheinlich eine andere Sprache und Notation in 
          	ihren darunter liegenden Anwendungsfallspezifikationen.
          </para>

          <para lang="en"><emphasis>Stereotypes</emphasis> are used to label UML 
          model elements such as use cases, to indicate that they belong to 
          a certain category. Such labels are shown in guillemots (
          <literal>&laquo;&nbsp;&raquo;</literal>) above the name of the model element on the 
          diagram. The UML standard defines a number of standard 
          stereotypes, and the user may define more stereotypes of his 
          own.</para>
          <para lang="de">
	          <emphasis>Stereotypen</emphasis> werden zur Kennzeichnung von 
	          UML-Modellelementen wie Anwendungsfälle benutzt, um darzustellen, 
	          dass diese zu einer bestimmten Kategorie gehören. Diese 
	          Kennzeichen werden in guillemots (
	          <literal>&laquo;&nbsp;&raquo;</literal>) über dem Namen des 
	          Modellelementes im Diagramm dargestellt. Der UML-Standard 
	          definiert eine Anzahl von Standard-Stereotypen und der Anwender 
	          darf weitere Stereotypen selbst definieren.
          </para>

          <para lang="en">You will see that ArgoUML has a drop down selector, 
          <literal>Stereotype</literal> on every property tab. This is 
          populated with the standard stereotypes, to which you may add 
          your own user defined ones.</para>
          <para lang="de">
          	Sie werden sehen, dass ArgoUML in jedem Eigenschaftsregister eine 
          	Drop-Down-Auswahl <literal>Stereotypen</literal> aufweist. Dieses 
          	ist mit den Standard-Stereotypen gefüllt, zu denen Sie Ihre eigenen 
          	hinzufügen können.
          </para>

          <para lang="en">The details of stereotyping are beyond the scope of 
          this tutorial. The reference manual (see 
          <xref linkend="s1.ref.stereotype"/>) documents the support 
          provided in ArgoUML.</para>
          <para lang="de">
          	Die Details der Schablonen liegt ausserhalb des Bezugsbereiches 
          	dieses Tutorials. Das Referenzhandbuch (siehe 
	        <xref linkend="s1.ref.stereotype"/>) dokumentiert die von ArgoUML 
	        bereitgestellte Unterstützung.
          </para>

          <warning>

            <para lang="en">ArgoUML is missing a few of the standard UML 
            stereotypes. In addition not all model elements will actually 
            display the stereotype on the diagram. At present this 
            includes use cases and actors.</para>
            <para lang="de">
            	In ArgoUML fehlen einige der Standard-UML-Stereotypen. Zusätzlich 
            	stellen nicht alle Modellelemente die Stereotypen im Diagramm 
            	dar. Aktuell sind sie in Anwendungsfällen und Akteuren enthalten.
            </para>

          </warning>

        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">Documentation</phrase>
          	<phrase lang="de">Dokumentation</phrase>
          </title>

          <indexterm lang="en">
          	<primary>Documentation in Use Case Diagrams</primary>
          </indexterm>
          <indexterm lang="de">
          	<primary>Dokumentation in Anwendungsfalldiagrammen</primary>
          </indexterm>
          <para lang="en">ArgoUML has some simple documentation facilities 
          associated with model elements on a diagram. In general these 
          should be used only to record the location of material in 
          documents that can be handled by a mainstream editor or word 
          processor, not the actual documentation itself.</para>
          <para lang="de">
          	ArgoUML enthält einige einfache Dokumentationsmöglichkeiten, die 
          	mit den Modellelementen im Diagramm verknüpft sind. Hauptsächlich 
          	sollten diese nur zum Aufzeichnen der Ablageorte der Dokumente 
          	verwendet werden, nicht für die aktuelle Dokumentation selbst.
          </para>

          <para lang="en">Documentation for a particular model element is recorded 
          through the documentation tab in the details pane (the 
          quadrant of the user screen at the bottom right).</para>
          <para lang="de">
          	Die Dokumentation für ein bestimmtes Modellelement wird im 
          	Dokumentationsregister im Detailfenster aufgezeichnet (der unten 
          	rechts befindliche Quadrant des Bildschirms).
          </para>

          <para lang="en">In addition annotation may be added to diagrams using 
          the text icon on the editing pane toolbar (
          <guiicon><inlinemediaobject><imageobject>
          <imagedata align="center" fileref="images/icons/text.gif"
           format="GIF"/></imageobject></inlinemediaobject></guiicon>).</para>
          <para lang="de">
          	Zusätzlich können in den Diagrammen Kommentare mit Hilfe des Text-
          	Symboles der Editier-Werkzeugleiste hinzugefügt werden (
	          <guiicon>
	          	<inlinemediaobject>
	          		<imageobject>
	          			<imagedata align="center"
	          				fileref="images/icons/text.gif" format="GIF" />
	          		</imageobject>
	          	</inlinemediaobject>
	          </guiicon>).
          </para>

          <para lang="en">The recommendation is that a use case diagram should 
          use the documentation tab of actors to record information 
          about the actor, or if the actor is complex to refer to a 
          separate document that holds information about the 
          actor.</para>
          <para lang="de">
          	Es wird empfohlen, dass ein Anwendungsfalldiagramm das 
          	Dokumentationsregister des Akteurs nutzen sollte, um die 
          	Informationen über den Akteur aufzuzeichnen. Oder, sollte der 
          	Akteur sehr komplex sein, sich auf ein separates Dokument beziehen, 
          	welches die Information über den Akteur beinhaltet.
          </para>

          <para lang="en">The documentation tab of use cases should record the 
          location of the use case specification. The information in a 
          use case specification (for all but the simplest use cases) 
          is too complex to be placed directly in the tab.</para>
          <para lang="de">
          	Das Dokumentationsregister des Anwendungsfalles sollte den Ablageort 
          	der Anwendungsfalldokumentation aufzeichnen. Die Information in der 
          	Anwendungsfallspezifikation (für alle, auch den einfachsten 
          	Anwendungsfällen) ist zu komplex, als dass sie direkt in das 
          	Register eingegeben werden könnte.
          </para>

          <para lang="en">The project should also have a separate vision document 
          and supplementary requirements specification. A text 
          annotation on diagrams may be used to refer to these if the 
          user finds this helpful.</para>
          <para lang="de">
          	Das Projekt sollte auch ein separates Visionsdokument haben und eine 
          	ergänzende Anforderungsspezifikation. Ein Kommentar in Diagrammen 
          	kann dazu verwendet werden, sich auf diese zu beziehen, wenn der 
          	Anwender dies nützlich findet.
          </para>

          <warning>

            <para lang="en">The documentation tab includes a <literal>
            Deprecated</literal> check box. The state of this flag is 
            not preserved over save and load in the current release of 
            ArgoUML</para>
            <para lang="de">
            	Das Dokumentationsregister enthält ein Kästchen <literal>
            	Veraltet</literal>. Der Status dieses Kennzeichens bleibt in der 
            	aktuellen Release von ArgoUML beim Speichern und Laden nicht 
            	erhalten.
	        </para>

          </warning>

        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">System Boundary Box</phrase>
          	<phrase lang="de">Systemgrenzen</phrase>
          </title>

          <indexterm lang="en">
          	<primary>System Boundary Box in Use Case Diagram</primary>
          </indexterm>
          <indexterm lang="de">
          	<primary>Systemgrenzen in Anwendungsfalldiagrammen</primary>
          </indexterm>
          <para lang="en">ArgoUML provides a series of tools to provide arbitrary 
          graphical annotation on diagrams (we have already mentioned 
          the text tool). These are found at the right hand end of the 
          editing pane toolbar and are fully documented in the 
          reference manual (see <xref linkend="ch.ref.editpane"/>
          ).</para>
          <para lang="de">
          	ArgoUML enthält eine Reihe von Werkzeugen, um beliebige grafische 
          	Kommentare in Diagramme einzufügen (wir lernten das Text-Tool bereits 
          	kennen). Diese finden Sie auf der rechten Seite der Editier-
          	Werkzeugleiste und sind im Referenzhandbuch vollständig dokumentiert 
          	(siehe <xref linkend="ch.ref.editpane"/>).
          </para>

          <para lang="en">The rectangle tool can be used to draw the boundary 
          box. Use the button&nbsp;2 context-sensitive <literal>
          Ordering</literal> pop-up menu to place it behind everything 
          else. However there is no way to change its fill color from 
          the default white. You may therefore prefer to draw the 
          boundary box as four lines. This is the method used for the 
          diagrams in this chapter.</para>
          <para lang="de">
          	Das Rechteck kann verwendet werden, um die Grenzen des Systems 
          	darzustellen. Nutzen Sie das Taste&nbsp;2-kontextsensitive Popup-
          	Menü <literal>Reihenfolge</literal>, um diese hinter alle anderen 
          	Elemente zu plazieren. Es gibt jedoch keinen Weg, die Füllfarbe zu 
          	ändern. Sie werden es daher vorziehen, die Systemgrenzen aus vier 
          	einzelnen Linien zu zeichnen. Dies ist die Methode, die für die 
          	Diagramme in diesem Kapitel verwendet wurde.
          </para>

          <note>

            <para lang="en">The editing pane in ArgoUML has a grid to which 
            objects snap to aid in drawing. The size of this grid and 
            its effect may be altered through the <literal>
            View</literal> menu (using <literal>Adjust Grid</literal> 
            and <literal>Adjust Grid Snap</literal>). This is described 
            fully in the reference manual (see 
            <xref linkend="ch.ref.menu"/>).</para>
            <para lang="de">
	            Das Editierfenster in ArgoUML hat ein Gitter, in das Objekte 
	            beim Zeichnen einrasten. Die Größe dieses Gitters und seine 
	            Auswirkungen können durch das <literal>Ansicht</literal>-Menü 
	            (verwenden Sie <literal>Raster einstellen</literal> und 
	            <literal>Einrasten einstellen</literal>) verändert werden. Dies 
	            ist im Referenzhandbuch vollständig beschrieben (siehe 
	            <xref linkend="ch.ref.menu"/>).
            </para>

          </note>

        </sect2>

      </sect1>

      <sect1 id="s3.tut.req_case_study">

        <title>
        	<phrase lang="en">Case Study</phrase>
        	<phrase lang="de">Fallstudie</phrase>
        </title>

        <sect2>

          <title>
          	<phrase lang="en">Vision Document</phrase>
          	<phrase lang="de">Das Dokument Vision</phrase>
          </title>

          <indexterm lang="en">
          	<primary>Vision Document</primary>
          	<secondary>Case Study</secondary>
          </indexterm>
          <indexterm lang="de">
          	<primary>Visions-Dokument</primary>
          	<secondary>Fallstudie</secondary>
          </indexterm>
          <para lang="en">A vision document contains more than those things 
          needed for the modeling effort. It also contains financial 
          and scheduling pertinent information. The following sections 
          are those parts of the Vision Document spelled out in 
          <xref linkend="s2.tut.vision_document"/> above. In practice 
          this format need not be followed religiously, but is used 
          here for consistency.</para>
          <para lang="de">
	          Ein Visionsdokument enthält mehr als nur die Dinge, die für die 
	          Modellierung erforderlich sind. Es enthält auch finanzielle und 
	          verwaltungsrelevante Informationen. Die folgenden Abschnitte sind 
	          solche Teile eines Visionsdokumentes 
	          <xref linkend="s2.tut.vision_document"/>. 
	          In der Praxis muss dieses Format nicht sklavisch eingehalten 
	          werden, aber es ist hier für die Konsistenz erforderlich.
          </para>

          <sect3>

            <title>
            	<phrase lang="en">Summary</phrase>
            	<phrase lang="de">Zusammenfassung</phrase>
            </title>

            <para lang="en">The company wishes to produce and market a line of 
            ATM devices. The purpose of this project is to produce the 
            hardware and the software to drive it that are both 
            maintainable and robust.</para>
            <para lang="de">
            	Die Firma möchte eine Serie von Geldautomaten produzieren und 
            	vermarkten. Der Zweck dieses Projektes ist es, die Hardware und 
            	die Software zu produzieren die beides ist: Wartbar und Robust.
            </para>

          </sect3>

          <sect3>

            <title>
            	<phrase lang="en">Goals</phrase>
            	<phrase lang="de">Ziele</phrase>
            </title>

            <para lang="en">To produce better designed products based on newer 
            technology. Follow the MDA philosophy of the OMG by 
            producing first a Platform Independent Model (PIM). As 
            current modeling technology does not admit of maintaining 
            the integrity of the connection between the PIM and 
            Platform Specific Models (PSMs), the PIM will become 
            comparatively stable before the first iteration of the PSM 
            is produced. The software platform will be Java technology. 
            The system will use a simple userid (from ATM card) and 
            password (or PIN) mechanism.</para>
            <para lang="de">
            	Bessere entworfene Produkte auf Basis neuer Technologien 
            	produzieren. Wir folgen der MDA-Philosophie der OMG indem wir 
            	zuerst ein plattformunabhängiges Modell (Platform Independent 
            	Model (PIM)) erzeugen. Da die aktuelle Modellierungstechnologie 
            	die Verwaltung der Integrität der Verbindung zwischen der PIM 
            	und den plattformspezifischen Modellen (Platform Specific 
            	Model (PSM)) nicht zulassen, wird die PIM vergleichsweise 
            	stabil werden bevor die erste Iteration der PSM produziert wird.
            	Die Softwareplattform wird die Java-Technologie sein. Das 
            	System wird einen einfachen Userid (von der Geldautomatenkarte) 
            	und Kennwort (oder PIN)-Mechanismus verwenden.
            </para>

          </sect3>

          <sect3>

            <title>
            	<phrase lang="en">Market Context</phrase>
            	<phrase lang="de">Der Markt</phrase>
            </title>

            <para lang="en">Equipment currently on the market is based on older 
            technology for both hardware and software. This technology 
            has not reached the end of its useful life, making it 
            unlikely that the vendors of that gear are going to update 
            it in the near future. On the other hand newer technology 
            is available that would put us at a competitive advantage 
            if implemented now.</para>
            <para lang="de">
            	Das aktuell auf dem Markt vorhandene Equipement basiert auf 
            	älterer Technologie bei der Hard- und Software. Diese 
            	Technologie hat noch nicht das Ende seiner Lebensdauer erreicht, 
            	was es unwahrscheinlich macht, das die Hersteller dieser 
            	Produkte diese in der nahen Zukunft austauschen werden. Auf der 
            	anderen Seite ist neuere Technologie verfügbar, die uns einen 
            	nennenswerten Vorteil verschafft, wenn wir sie jetzt 
            	implementieren.
            </para>

          </sect3>

          <sect3>

            <title>
            	<phrase lang="en">Stakeholders</phrase>
            	<phrase lang="de">Beteiligte</phrase>
            </title>

            <para lang="en">Among the stakeholders for this system are the 
            Engineering Department, the Maintenance Department, and the 
            Central Computer Facility. The full list of these 
            stakeholders and the specific individuals representing them 
            are.</para>
            <para lang="de">
            	Zwischen den Beteiligten dieses Systemes befinden sich die 
            	Entwicklungsabteilung, die Wartung und der zentrale Computer-
            	Betrieb. Die vollständige Liste der Projektbeteiligten und die 
            	spezifischen Personen, die diese repräsentieren sind:
            </para>

            <itemizedlist>

              <listitem>

                <para lang="en"><emphasis>Engineering</emphasis>.  Bunny, 
                Bugs</para>
                <para lang="de"><emphasis>Entwicklung</emphasis>.  Bunny, 
                Bugs</para>

              </listitem>

              <listitem>

                <para lang="en"><emphasis>Maintenance</emphasis>.  Hardy, 
                Oliver</para>
                <para lang="de">
                	<emphasis>Wartung</emphasis>. Hardy, Oliver
                </para>

              </listitem>

              <listitem>

                <para lang="en"><emphasis>Computer Facility</emphasis>.  Laurel, 
                Stanley</para>
                <para lang="de">
                	<emphasis>Computerbetrieb</emphasis>. Laurel, Stanley
                </para>

              </listitem>

              <listitem>

                <para lang="en"><emphasis>Chief Executive Officer</emphasis>. 
                 Hun, Atilla The</para>
                <para lang="de">
                	<emphasis>Geschäftsführer</emphasis>. Hun, Atilla von
                </para>

              </listitem>

              <listitem>

                <para lang="en"><emphasis>Marketing</emphasis>.  Harry, Oil 
                Can</para>
                <para lang="de">
                	<emphasis>Marketing</emphasis>. Harry, Oil Can
                </para>

              </listitem>

            </itemizedlist>

          </sect3>

          <sect3>

            <title>
            	<phrase lang="en">Key Features</phrase>
            	<phrase lang="de">Die Hauptfunktionen</phrase>
            </title>

            <para lang="en">Cash deposit, cash withdrawal, and account inquiries 
            by customers. Customers include people who have accounts at 
            the owning bank as well as people who wish to make 
            withdrawals from accounts in other banks or from credit 
            card accounts.</para>
            <para lang="de">
            	Geld aufbewahren, Geld abheben und Kontostandsabfragen der 
            	Kunden. Kunden sind Personen, die Konten bei ihrer Bank haben 
            	aber auch Personen, die Abhebungen von Konten anderer Banken 
            	oder von Kreditkarten vornehmen wollen.
            </para>

            <para lang="en">Maintenance of the equipment by the bank&apos;s 
            engineers. This action may be initiated by the engineer on 
            a routine basis. It may also be initiated by the equipment 
            that can call the engineer when it detects an internal 
            fault.</para>
            <para lang="de">
            	Wartung des Equipements durch die Bankingenieure. Diese Aktion 
            	kann durch den Ingenieur initiiert auf Basis eines 
            	Wartungsplanes werden. Sie kann aber auch durch das Equipement 
            	initiiert werden, die den Ingenieur ruft, wenn es einen internen 
            	Fehler entdeckt.
            </para>

            <para lang="en">Unloading of deposits and loading of cash by 
            officials of the local bank branch. These actions occur 
            either on a scheduled basis or when the central computer 
            determines that the cash supply is low or the deposit 
            receptacle is liable to be getting full.</para>
            <para lang="de">
            	Das Herausnehmen der Einlagen und das Aufladen von Geld erfolgt 
            	durch Beamte der lokalen Bankfiliale. Diese Aktionen werden 
            	entweder auf Basis eines Planes ausgeführt, oder wenn der 
            	Zentralcomputer feststellt, dass der Geldvorrat zu gering oder 
            	die Einlagenkassette fast voll ist.
            </para>

            <para lang="en">An audit trail for all activities will be maintained 
            and sent periodically to the bank&apos;s central computer. 
            It will be possible for the maintenance engineer to save a 
            copy of the audit trail to a diskette for transporting to 
            the central computer.</para>
            <para lang="de">
            	Es wird ein Nachweis von allen Aktivitäten erzeugt und 
            	periodisch an den Zentralcomputer der Banken gesandt. Es soll 
            	dem Wartungsingenieur möglich sein, eine Kopie des Nachweislog 
            	auf einer Diskette für den Transport zum Zentralcomputer zu 
            	speichern.
            </para>

            <para lang="en">
              Both dialup and leased line support will be provided. 
              The ATM will continue to provide services to customers when 
              communication with the central computer is not available.
            </para>
            <para lang="de">
            	Es wird Wähl- und Standleitungssupport benötigt. Der Geldautomat 
            	soll auch weiterarbeiten können, wenn die Kommunikation mit dem 
            	Zentralcomputer nicht verfügbar ist.
            </para>

          </sect3>

          <sect3>

            <title>
            	<phrase lang="en">Constraints</phrase>
            	<phrase lang="de">Randbedingungen</phrase>
            </title>

            <para lang="en">The project must be completed within nine months. It 
            must cost no more than 1,750,000 USD excluding production 
            costs. Components may be contracted out, but the basic 
            architecture as well as the infrastructure will be designed 
            in house. Close liaison must be maintained between the 
            software development and the design, development and 
            production of the hardware. Neither the hardware nor the 
            software shall be considered the independent variable, but 
            rather they shall be considered equal.</para>
            <para lang="de">
            	Das Projekt muss innerhalb von 9 Monaten abgeschlossen sein. Es 
            	darf nicht mehr als 1.750.000 USD ausschliesslich der 
            	Produktionskosten kosten. Komponenten können ausserhalb 
            	produziert werden aber die Basisarchitektur als auch die 
            	Infrastruktur wird im Haus entworfen. Eine enge Zusammenarbeit 
            	muss zwischen der Softwareentwicklung und dem Design, der 
            	Entwicklung und der Produktion der Hardware sichergestellt 
            	werden. Weder die Hardware noch die Software darf als unabhänige 
            	Variable betrachtet werden. Sie müssen immer gleichzeitig 
            	betrachtet werden.
            </para>

          </sect3>

          <sect3>

            <title>
            	<phrase lang="en">Appendix</phrase>
            	<phrase lang="de">Anhang</phrase>
            </title>

            <para lang="en">The following are the actors that directly support 
            this vision. Additional actors may be identified later that 
            are needed to support this or that technology. They should 
            not be added to this list unless they are deemed to 
            directly support the vision as described in this 
            document.</para>
            <para lang="de">
            	Im Folgenden finden Sie Akteure, die diese Vision direkt 
            	unterstützen. Zusätzliche Akteure können später identifiziert 
            	werden, sofern Sie zur Unterstützung dieser Vision oder der 
            	Technologie erforderlich sind. Sie sollten nicht zu dieser 
            	Liste hinzugefügt werden, es sei denn, sie sind zur direkten 
            	Unterstützung dieser Vision, wie in diesem Dokument beschrieben, 
            	erforderlich.
            </para>

            <itemizedlist>

              <listitem>

                <para lang="en">Central Computer</para>
                <para lang="de">Zentralcomputer</para>

              </listitem>

              <listitem>

                <para lang="en">Customer</para>
                <para lang="de">Kunde</para>

              </listitem>

              <listitem>

                <para lang="en">Local Branch Official</para>
                <para lang="de">Lokaler Bankbeamter</para>

              </listitem>

              <listitem>

                <para lang="en">Maintenance Engineer</para>
                <para lang="de">Wartungsingenieur</para>

              </listitem>

            </itemizedlist>

            <para lang="en">The following are the use cases that directly support 
            this vision. Additional use cases may be identified later 
            that are needed to support this or that technology or to 
            support the use cases listed here. They should not be added 
            to this list unless they are deemed to directly support the 
            vision as described in this document.</para>
            <para lang="de">
            	Im Folgenden finden Sie Anwendungsfälle, die diese Vision 
            	direkt unterstützen. Zusätzliche Anwendungsfälle können später 
            	identifiziert werden, wenn Sie zur Unterstützung dieser Vision 
            	oder der Technologie erforderlich sind oder die hier 
            	aufgelisteten Anwendungsfälle unterstützen. Sie sollten dieser 
            	Liste nicht hinzugefügt werden, es sei denn, sie sind für die 
            	direkte Unterstützung der Vision, wie in diesem Dokument 
            	beschrieben, erforderlich.
            </para>

            <itemizedlist>

              <listitem>

                <para lang="en">Audit</para>
                <para lang="de">Prüfen</para>

              </listitem>

              <listitem>

                <para lang="en">Customer Uses Machine</para>
                <para lang="de">Kunden nutzt den Automaten</para>

              </listitem>

              <listitem>

                <para lang="en">Maintain Machine</para>
                <para lang="de">Warten des Automaten</para>

              </listitem>

            </itemizedlist>

          </sect3>

        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">Identifying Actors and Use Cases</phrase>
          	<phrase lang="de">Akteure und Anwendungsfälle identifizieren</phrase>
          </title>

          <para lang="en">For the ATM case study, we will elaborate on the 
          examples in <xref linkend="s1.tut.req_process_output"/>, 
          <xref linkend="fig.tut.atm_use_case_diagram_include"/> and 
          <xref linkend="fig.tut.atm_use_case_diagram_extend"/>, and 
          progress to identify additional actors and use cases that 
          comprise our model of the ATM system. 
          <xref linkend="fig.tut.atm_use_case_diagram_include"/> and 
          <xref linkend="fig.tut.atm_use_case_diagram_extend"/> 
          exemplified the essential concepts and components of a use 
          case diagram such as, use cases, actors, multiplicity, and 
          include / extend relationships. They showed the relationships 
          between the actors and use cases, and demonstrated how these 
          actors and use cases interact.</para>
          <para lang="de">
          	Für die Geldautomaten-Fallstudie werden wir die Beispiele in 
			<xref linkend="s1.tut.req_process_output"/>, 
	        <xref linkend="fig.tut.atm_use_case_diagram_include"/> und 
	        <xref linkend="fig.tut.atm_use_case_diagram_extend"/>, und 
	        fortschreiben, um zusätzliche Akteure und Anwendungsfälle zu 
	        identifizieren, die unser Geldautomatenmodell enthält.
	        <xref linkend="fig.tut.atm_use_case_diagram_include"/> und 
	        <xref linkend="fig.tut.atm_use_case_diagram_extend"/> 
	        erläutert die grundsätzlichen Konzepte und Komponenten des 
	        Anwendungsfalldiagrammes wie Anwendungsfälle, Akteure, 
	        Kardinalität und Include-/Extend-Beziehungen. Sie zeigen die 
	        Beziehungen zwischen den Akteuren und den Anwendungsfällen und 
	        demonstieren wie diese Akteure und Anwendungsfälle miteinander 
	        interagieren. 
          </para>

          <para lang="en">In 
          <xref linkend="fig.tut.atm_use_case_diagram_include"/> we see 
          a use case diagram for an ATM system consisting of &laquo;include&raquo; 
          relationships for the use cases, Maintain ATM and Use ATM. 
          Maintain ATM was further defined by two use cases, 
          &quot;Maintain Equipment&quot; and &quot;Reload ATM&quot;. 
          Use ATM was further defined in terms of the behavior of three 
          simpler use cases: &quot;Deposit Cash&quot;, &quot;Withdraw 
          Cash&quot; and &quot;Query Account&quot;.</para>
          <para lang="de">
          In <xref linkend="fig.tut.atm_use_case_diagram_include"/> sehen wir 
          ein Anwendungsfalldiagramm für einen Geldautomaten, bestehend aus 
          &laquo;include&raquo;-Beziehungen für die Anwendungsfälle Geldautomat 
          warten und Geldautomat nutzen. Geldautomat warten wird darüber hinaus 
          durch zwei Anwendungsfälle definiert: &quot;Equipement warten&quot; 
          und &quot;Geldautomat neu starten&quot;.
          Geldautomat nutzen wurde darüber hinaus durch drei einfachere 
          Anwendungsfälle definiert: &quot;Geld einnehmen&quot;, &quot;Geld  
          abheben&quot; und &quot;Kontostand abfragen&quot;.</para>

          <remark lang="en">More to be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">Associations (To be written)</phrase>
          	<phrase lang="de">Assoziationen (Noch zu beschreiben)</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">Advanced Diagram Features (To be written)</phrase>
          	<phrase lang="de">
          		Erweiterte Diagrammfunktionen (Noch zu beschreiben)
          	</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">Use Case Specifications (To be written)</phrase>
          	<phrase lang="de">
          		Anwendungsfallspezifikationen (Noch zu beschreiben)
          	</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">
          		Supplementary Requirements Specification (To be written)
          	</phrase>
          	<phrase lang="de">
          		Ergänzende Anforderungsspezifikation (Noch zu beschreiben)
          	</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

      </sect1>

    </chapter>

    <chapter id="ch.tut.analysis">

      <title>
      	<phrase lang="en">Analysis</phrase>
      	<phrase lang="de">Analyse</phrase>
      </title>


        <para lang="en">Analysis is the process of taking the 
        <quote>customer</quote> requirements and re-casting them in the 
        language of, and from the perspective of, a putative 
        solution.</para>
        <para lang="de">
        	Die Analyse ist der Prozess, die <quote>Kunden</quote>-Anforderungen 
        	zu nehmen und in die Sprache und Perspektive der künftigen 
        	Lösung umzuwandeln.
        </para>

        <para lang="en">We are not actually trying the flesh out the detailed 
        solution at this stage. That occurs in the <emphasis>Design 
        Phase</emphasis> (see <xref linkend="ch.tut.design"/>).</para>
        <para lang="de">
        	Wir sollten zu diesem Zeitpunkt nicht versuchen die detaillierte 
        	Lösung auszuarbeiten. Dies passiert in der <emphasis>Design
        	</emphasis>-Phase (siehe <xref linkend="ch.tut.design"/>).
        </para>

        <para lang="en">Unlike the boundary between Requirements and Analysis 
        Phases, the boundary between Analysis and Design Phases is 
        inherently blurred. The key is that analysis should define the 
        solution no further than is necessary to specify the 
        requirements in the language of the solution. The model elements in 
        Analysis generally represent a high level of abstraction.</para>
        <para lang="de">
        	Wie die Grenze zwischen den Anforderungs- und der Analyse-Phase ist 
        	die Grenze zwischen Analyse und Design inhärent unscharf. Der 
        	Schlüssel dazu ist, dass die Analyse die Lösung nicht weiter als 
        	notwendig definieren sollte, um die Anforderungen in der Sprache 
        	der Lösung zu spezifizieren. Die Modellelemente in der Analyse 
        	repräsentieren generell eine höhere Abstraktionsebene.
        </para>

        <para lang="en">Once again the <emphasis>recursive</emphasis>, and 
        <emphasis>iterative</emphasis> nature of our process means we 
        will come back to the Analysis phase many times in the 
        future.</para>
        <para lang="de">
        	Noch einmal, die <emphasis>rekursive</emphasis>, und 
	        <emphasis>iterative</emphasis> Natur unserer Prozesse bedeutet, 
	        dass wir in der Zukunft noch häufig auf die Analysephase 
	        zurückkommen werden.
        </para>

      <sect1>

        <title>
        	<phrase lang="en">The Analysis Process</phrase>
        	<phrase lang="de">Der Analyseprozess</phrase>
        </title>

        <para lang="en">
          There are three schools of thought on how Analysis
          should be approached.
          The ontologist defines the data (actually the metadata)
          first and worries about processes later.
          The true ontologist would prefer not to have to think
          about processes at all.
          The phenomenonologist reverses this and favors
          process over data.
          The panparadigmist considers both process and data to be
          equally important and addresses both from the start.
        </para>
        <para lang="de">
        	Es gibt drei gedankliche Ausrichtungen darüber, wie man sich der 
        	Analyse annähern sollte.
        	Die Ontologen definieren die Daten (aktuell die Metadaten) zuerst 
        	und plagen sich später mit den Prozessen.
        	Der wahre Ontologe würde es vorziehen, überhaupt nicht an Prozesse 
        	denken zu müssen.
        	Der Phänomenalist kehrt dies um und stellt die Prozesse über die 
        	Daten.
        	Der Paradigmatiker betrachtet die Prozesse und Daten gleichwertig 
        	wichtig und adressiert beide von Beginn an. 
        </para>

        <para lang="en">
          When it comes to being a purist the ontologist has
          the upper hand.
          It is possible to define and build a database into
          which data can be entered and retrieved without concern for
          what happens to it or is done with it.
          On the other hand implementing a process without having any
          data structures for it to operate on is not very meaningful.
        </para>
        <para lang="de">
        	Wenn es dazu kommt, Purist zu sein, dann hat der Ontologe die 
        	Oberhand.
        	Es ist möglich, eine Datenbank zu definieren und zu erzeugen, in die 
        	Daten eingegeben und geholt werden kann, ohne Rücksicht darauf, was 
        	mit ihnen getan wird oder nicht.
        	Auf der anderen Seite ist es nicht besonders nützlich einen Prozess 
        	zu implementieren ohne irgendwelche Datenstrukturen zu haben auf 
        	denen der Prozess arbeitet.
        </para>

        <sect2>

          <title>
          	<phrase lang="en">
          		Class, Responsibilities, and Collaborators (CRC) Cards
          	</phrase>
          	<phrase lang="de">
          		Klasse-, Verantwortlichkeits- und Zusammenarbeits-Karten (CRC)
          	</phrase>
          </title>

          <para lang="en">
            The CRC methodology favors the phenomenonologists
            preference for analysis.
            It is the equivalent of starting with the use cases,
            the process aspects (operations) of the class diagrams,
            and scenarios from which sequence diagrams can be initiated.
          </para>
          <para lang="de">
          	Die CRC-Methode (CRC = Class, Responsibility, Collaborators) 
          	favorisiert die Vorliebe der Phänomenologen für die Analyse.
          	Es ist äquivalent mit den Anwendungsfällen zu beginnen, die Aspekte 
          	der Prozesse (Operationen) in Klassendiagrammen und Szenarien 
          	darzustellen aus denen Sequenzdiagramme initiiert werden können.
          </para>

          <para lang="en">
            CRC cards and the associated methodology are described
            in detail in <xref linkend="app.crc"/>.
            They are used again in the design phase and are further
            discussed in <xref linkend="ch.tut.design"/>.
          </para>
          <para lang="de">
          	CRC-Karten und die entsprechende Methode sind detailliert in 
            <xref linkend="app.crc"/> beschrieben.
            Sie werden in der Designphase erneut verwendet und weiter diskutiert 
            in <xref linkend="ch.tut.design"/>.
          </para>

          <para lang="en">
            The strength of CRC cards during analysis.
          <itemizedlist>
            <listitem><para lang="en">Common Project Vocabulary -</para></listitem>
            <listitem><para lang="en">Spread Domain Knowledge -</para></listitem>
            <listitem><para lang="en">Making the Paradigm Shift -</para></listitem>
            <listitem><para lang="en">Live Prototyping -</para></listitem>
            <listitem><para lang="en">Identifying Holes in Requirements -</para></listitem>
          </itemizedlist>
          </para>
          <para lang="de">
          	Die Stärke der CRC-Karten während der Analyse.
	          <itemizedlist>
	            <listitem>
	            	<para lang="de">Gemeinsames Projektvokabular -</para>
	            </listitem>
	            <listitem>
	            	<para lang="de">Breites Bereichswissen -</para>
	            </listitem>
	            <listitem>
	            	<para lang="de">Führt Paradigmenwechsel durch -</para>
	            </listitem>
	            <listitem>
	            	<para lang="de">Live-Prototyping -</para>
	            </listitem>
	            <listitem>
	            	<para lang="de">
	            		Indentifiziert Lücken in den Anforderungen -
	            	</para>
	            </listitem>
	          </itemizedlist>
          </para>

          <para lang="en">
            In this phase the group should consist of two or
            three domain experts, one object-oriented technology
            facilitator, and the rest of the group made up of people
            who are responsible for delivering the system.
          </para>
          <para lang="de">
          	In dieser Phase sollte die Gruppe aus zwei oder drei Fachexperten 
          	bestehen. Einer als Vermittler der objektorientierten Technologie 
          	und der Rest der Gruppe sollte aus Personen bestehen, die für das 
          	das Ausrollen des Systems verantwortlich sind.
          </para>

          <para lang="en">
            The first time that the Analysis phase occurs a special
            case of the CRC session happens as there are no classes
            or scenarios to choose from to define a CRC session.
            At this point a special type of session known
            as brainstorming is held.
            During this session you identify the initial set of
            classes in the problem domain by using the problem statement
            or requirements document or whatever you know about the
            desired result for a starting point.
            The nouns that are found in whatever you are starting from are
            a good key to an initial set of classes in the system.
            In a brainstorming session there should be little or no
            discussion of the ideas.
            Record them and filter the results after the brainstorming.
            At this stage the distinction between class and object
            is blurred.
          </para>
          <para lang="de">
          	Wenn man das erste Mal in die Analysephase eintritt, tritt ein 
          	spezieller Fall der CRC-Sitzung auf, weil es keine Klassen oder 
          	Szenarien gibt, die man in der CRC-Sitzung für die Definition 
          	auswählen könnte. Zu diesem Zeitpunkt tritt ein spezieller 
          	Sitzungstyp, Brainstorming genannt, auf.
          	Während dieser Phase identifizieren Sie den grundlegenden Satz von 
          	Klassen des Problembereiches, indem Sie die Problembeschreibung oder 
          	das Anforderungsdokument oder was immer Sie auch über das gewünschte 
          	Ergebnis wissen als Startpunkt verwenden.
          	Die Hauptwörter, die Sie finden, sind gute Ansätze für einen ersten 
          	Satz von Klassen in dem System. Während der Brainstorming-Sitzung 
          	sollten die Ideen wenig bis gar nicht diskutiert werden.
          	Schreiben Sie diese auf und filtern Sie die Ergebnisse nach dem 
          	Brainstorming.
          	Zu diesem Zeitpunkt ist die Unterscheidung zwischen Klasse und 
          	Objekt unscharf.
          </para>

          <para lang="en">
            Once a reasonable set of classes has been defined
            by the group, responsibilities can be added.
            Add responsibilities that are obvious from the requirements
            or the name of the class.
            You don&apos;t need to find them all (or any for that matter).
            The scenarios will make them more obvious.
            The advantage of finding some in the beginning is that
            it helps provide a starting place.
          </para>
          <para lang="de">
          	Nachdem ein vernünftiger Satz von Klassen durch die Gruppe definiert 
          	wurde, können die Verantwortlichkeiten hinzugefügt werden.
          	Fügen Sie Verantwortlichkeiten hinzu, die aus den Anforderungen oder 
          	den Namen der Klassen deutlich hervorgehen.
          	Sie müssen nicht alle finden müssen (oder in jedem Fall alle).
          	Die Szenarien werden dies deutlicher machen.
          	Der Vorteil, einige bereits am Anfang zu finden ist, dass es hilft, 
          	einen Anfangspunkt zu finden.
          </para>

          <para lang="en">
            Select the initial scenarios from the requirements document
            by examining it&apos;s verbs in much the same way that we scanned
            its nouns earlier.
            Then as many walk through sessions as necessary to complete
            the analysis phase are performed.
          </para>
          <para lang="de">
          	Wählen Sie die ersten Szenarios aus dem Anforderungsdokument aus, 
          	indem Sie dessen Verben auf die gleiche Weise prüfen, wie wir vorher 
          	die Hauptwörter durchgingen.
          	Dann führen Sie diesen Prozess so oft als notwendig durch, um die 
          	begonnene Analysephase zu vervollständigen.
          </para>

          <para lang="en">
            When is enough of the analysis complete that design can begin?
            When all the different responsibilities are in place
            and the system has become stable.
            After all the normal behavior has been covered, exceptional
            behavior needs to be simulated.
            When you notice that the responsibilities are all in place to
            support the new scenarios, and there is little change to the
            cards, this is a sign the you are ready to start design.
          </para>
          <para lang="de">
          	Wann ist genug Analyse durchgeführt worden und wann kann das Design 
          	beginnen? Wenn alle unterschiedlichen Verantwortlichkeiten zugeordnet 
          	wurden und das System stabil geworden ist.
          	Nachdem das gesamte normale Verhalten abgedeckt wurde, ist es 
          	notwendig aussergewöhnliches Verhalten zu simulieren.
          	Wenn Sie feststellen, dass die Verantwortlichkeiten alle an der 
          	richtigen Stelle sind, um die neuen Szenarien zu unterstützen und 
          	nur noch wenige Änderungen an den Karten vorzunehmen sind, dann ist 
          	das ein Anzeichen dafür, dass Sie mit dem Design beginnen können.
          </para>

        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">Concept Diagram (To be written)</phrase>
          	<phrase lang="de">Konzeptdiagramm (Noch zu beschreiben)</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">System Sequence Diagram (To be written)</phrase>
          	<phrase lang="de">
          		System-Sequenzdiagramm (Noch zu beschreiben)
          	</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">System Statechart Diagram (To be written)</phrase>
          	<phrase lang="de">System-Zustandsdiagramm (Noch zu beschreiben)</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">
          		Realization Use Case Diagram (To be written)
          	</phrase>
          	<phrase lang="de">
          		Anwendungsfalldiagramm realisieren (Noch zu beschreiben)
          	</phrase>
           </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">Documents (To be written)</phrase>
          	<phrase lang="de">Dokumente (Noch zu beschreiben)</phrase>
          </title>

          <remark lang="en">Use Case Specifications and Supplementary 
          Requirements Specifications recast in solution language. To 
          be written...</remark>
          <remark lang="de">
          	Anwendungsfall- und Ergänzende Anforderungs-Spezifikationen sind in 
          	die Sprache der Lösung umzuwandeln. Noch zu beschreiben...
          </remark>
        </sect2>


      </sect1>

      <sect1 id="s1.umlclassdiags">

        <title>
        	<phrase lang="en">Class Diagrams (To be written)</phrase>
        	<phrase lang="de">Klassendiagramme (Noch zu beschreiben)</phrase>
        </title>

        <remark lang="en">To be written...</remark>
        <remark lang="de">Noch zu beschreiben...</remark>
        <sect2>

          <title>
          	<phrase lang="en">The Class Diagram (To be written)</phrase>
          	<phrase lang="de">Das Klassendiagramm (Noch zu beschreiben)</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">Advanced Class Diagrams (To be written)</phrase>
          	<phrase lang="de">Erweiterte Klassendiagramme (Noch zu beschreiben)</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
          <sect3>

            <title>
            	<phrase lang="en">Association Classes (To be written)</phrase>
            	<phrase lang="de">Assoziationsklassen (Noch zu beschreiben)</phrase>
            </title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

        </sect2>

      </sect1>

      <sect1 id="s1.argoclassdiags">

        <title>
        	<phrase lang="en">Creating Class Diagrams in ArgoUML</phrase>
        	<phrase lang="de">Klassendiagramme in ArgoUML erzeugen</phrase>
        </title>

        <sect2>

          <title>
          	<phrase lang="en">Classes</phrase>
          	<phrase lang="de">Klassen</phrase>
          </title>

          <remark lang="en">Identifying class diagrams from existing materials 
          (Vision, Use Cases etc). To be written...</remark>
          <remark lang="de">
          	Klassendiagramme aus existierendem Material (Vision, Anwendungsfälle, 
          	usw.) identifizieren. Noch zu beschreiben...
          </remark>
          <sect3>

            <title>
            	<phrase lang="en">Using the Note Icon in the Tool Bar</phrase>
            	<phrase lang="de">
            		Das Kommentarsymbol in der Symbolleiste verwenden
            	</phrase>
            </title>

            <para lang="en">Click on your target class. Then click on the note 
            icon. ArgoUML will generate the link automatically.</para>
            <para lang="de">
            	Klicken Sie auf Ihre Zielklasse. Dann klicken Sie auf das 
            	Kommentarsymbol. ArgoUML wird die Verknüpfung automatisch 
            	generieren.
            </para>

            <para lang="en">You can also right click to add a note as well! Be 
            aware that you can add an undefined number of notes to any 
            one class!</para>
            <para lang="de">
            	Sie können auch einen Rechtsklick ausführen, um einen Kommentar 
            	hinzuzufügen! Beachten Sie, dass Sie eine unbegrenzte Anzahl 
            	von Kommentaren zu jeder Klasse hinzufügen können!
            </para>

            <warning>

              <para lang="en">Be aware that your note will not appear in the 
              source code documentation tab.</para>
              <para lang="de">
              	Beachten Sie, dass Ihr Kommentar nicht im Sourcecoderegister 
              	erscheint.
              </para>

            </warning>

          </sect3>

        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">Associations (To be written)</phrase>
          	<phrase lang="de">Assoziationen (Noch zu beschreiben)</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
          <sect3>

            <title>
            	<phrase lang="en">Aggregation (To be written)</phrase>
            	<phrase lang="de">Aggregation (Noch zu beschreiben)</phrase>
            </title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">
          		Class Attributes and Operations (To be written)
          	</phrase>
          	<phrase lang="de">
          		Klassenattribute und Operationen (Noch zu beschreiben)
          	</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
          <sect3>

            <title>
            	<phrase lang="en">
            		Entering Data Into Attributes and Methods Windows
            	</phrase>
            	<phrase lang="de">
            		Daten in Attribut- und Methodenfenster eingeben
            	</phrase>
            </title>

            <para lang="en">Click directly in the class model element and start 
            typing. Do not use the properties window dialog fields&mdash;they 
            are not fully functional and liable to cause you a little 
            frustration.</para>
            <para lang="de">
            	Klicken Sie direkt in das Klassenelement und beginnen Sie mit 
            	der Eingabe. Verwenden Sie nicht die Dialogfenster des 
            	Eigenschaftsregisters; sie sind noch nicht vollständig 
            	implementiert und führen nur zu ein bischen Frustration.
            </para>

            <para lang="en">
              In fact, it would be interesting to see if you can 
              type stereotypes right into the class attribute box for 
              generating XML diagrams.
            </para>
            <para lang="de">
            	Natürlich wäre es von Interessse, wenn Sie Stereotypen rechts 
            	in den Bereich für Klassenattribute schreiben könnten, um 
            	XML-Diagramme zu generieren.
            </para>

          </sect3>

          <sect3>

            <title>
            	<phrase lang="en">Class Attributes (To be written)</phrase>
            	<phrase lang="de">Klassenattribute (Noch zu beschreiben)</phrase>
            </title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

          <sect3>

            <title>
            	<phrase lang="en">Class Operations (To be written)</phrase>
            	<phrase lang="de">Klassenoperationen (Noch zu beschreiben)</phrase>
            </title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">Advanced Class Features (To be written)</phrase>
          	<phrase lang="de">
          		Erweiterte Klasseneigenschaften (Noch zu beschreiben)
          	</phrase>
          </title>

          <sect3>

            <title>
            	<phrase lang="en">Association Classes (To be written)</phrase>
            	<phrase lang="de">Assoziationsklassen (Noch zu beschreiben)</phrase>
            </title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

          <sect3>

            <title>
            	<phrase lang="en">Stereotypes (To be written)</phrase>
            	<phrase lang="de">Stereotypen (Noch zu beschreiben)</phrase>
            </title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

        </sect2>

      </sect1>

      <sect1 id="s1.umlseqdiags">

        <title>
        	<phrase lang="en">Sequence Diagrams (To be written)</phrase>
        	<phrase lang="de">Sequenzdiagramme (Noch zu beschreiben)</phrase>
        </title>

        <remark lang="en">To be written...</remark>
        <remark lang="de">Noch zu beschreiben...</remark>
        <sect2>

          <title>
          	<phrase lang="en">The Sequence Diagram (To be written)</phrase>
          	<phrase lang="de">Das Sequenzdiagramm (Noch zu beschreiben)</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">Identifying Actions (To be written)</phrase>
          	<phrase lang="de">Aktionen identifizieren (Noch zu beschreiben)</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">
          		Advanced Sequence Diagrams (To be written)
          	</phrase>
          	<phrase lang="de">
          		Erweiterte Sequenzdiagramme (Noch zu beschreiben)
          	</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

      </sect1>

      <sect1 id="s1.argoseqdiags">

        <title>
        	<phrase lang="en">Creating Sequence Diagrams in ArgoUML</phrase>
        	<phrase lang="de">Sequenzdiagramme in ArgoUML erzeugen</phrase>
        </title>

        <sect2>

          <title>
          	<phrase lang="en">Sequence Diagrams</phrase>
          	<phrase lang="de">Sequenzdiagramme</phrase>
          </title>

          <sect3>

            <title>
            	<phrase lang="en">Creating a Sequence Diagram</phrase>
            	<phrase lang="de">Ein Sequenzdiagramm erzeugen</phrase>
            </title>

            <para lang="en">Normally, you can just start a sequence diagram right 
            away. On the <literal>Create Diagram</literal> menu choose 
            <literal>Sequence</literal>.</para>
            <para lang="de">
            	Normalerweise können Sie mit einem Sequenzdiagramm sofort 
            	beginnen. Im Menü <literal>Neues Diagramm</literal> wählen Sie 
            	aus <literal>Sequenzdiagramm</literal>.
            </para>

          </sect3>

        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">Actions (To be written)</phrase>
          	<phrase lang="de">Aktionen (Noch zu beschreiben)</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">
          		Advanced Sequence Diagrams (To be written)
          	</phrase>
          	<phrase lang="en">
          		Erweiterte Sequenzdiagramme (Noch zu beschreiben)
          	</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

      </sect1>

      <sect1 id="s1.umlstatediags">

        <title>
        	<phrase lang="en">Statechart Diagrams (To be written)</phrase>
        	<phrase lang="de">Zustandsdiagramme (Noch zu beschreiben)</phrase>
        </title>

        <remark lang="en">To be written...</remark>
        <remark lang="de">Noch zu beschreiben...</remark>
        <sect2>

          <title>
          	<phrase lang="en">The Statechart Diagram (To be written)</phrase>
          	<phrase lang="de">Das Zustandsdiagramm (Noch zu beschreiben)</phrase>
          </title>

          <remark lang="en">Types of statechart diagram (Moore, Mealy); 
          Hierarchical diagrams. To be written...</remark>
          <remark lang="de">
          	Die Zustandsdiagrammarten (Moore, Mealy); Hierarchische 
          	Diagramme. Noch zu beschreiben...
          </remark>
        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">
          		Advanced Statechart Diagrams (To be written)
          	</phrase>
          	<phrase lang="de">
          		Erweiterte Zustandsdiagramme (Noch zu beschreiben)
          	</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
          <sect3>

            <title>
            	<phrase lang="en">
            		Hierarchical Statechart Diagrams (To be written)
            	</phrase>
            	<phrase lang="de">
            		Hierarchical Statechart Diagrams (To be written)
            	</phrase>
            </title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

        </sect2>

      </sect1>

      <sect1 id="s1.argostatediags">

        <title>
        	<phrase lang="en">Creating Statechart Diagrams in ArgoUML</phrase>
        	<phrase lang="de">Zustandsdiagramme in ArgoUML erstellen</phrase>
        </title>

        <sect2>

          <title>
          	<phrase lang="en">Statechart Diagrams (To be written)</phrase>
          	<phrase lang="de">Zustandsdiagramme (Noch zu beschreiben)</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
          <sect3>

            <title>
            	<phrase lang="en">Creating a Statechart Diagram</phrase>
            	<phrase lang="de">Ein Zustandsdiagramm erstellen</phrase>
            </title>

            <para lang="en">Select a class, then you can create a statechart 
            diagram.</para>
            <para lang="de">
            	Markieren Sie eine Klasse, dann können Sie ein Zustandsdiagramm 
            	erstellen.
            </para>

          </sect3>

        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">States (To be written)</phrase>
          	<phrase lang="de">Zustände (Noch zu beschreiben)</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
          <sect3>

            <title>
            	<phrase lang="en">Editing a Composite State</phrase>
            	<phrase lang="de">Einen zusammengesetzten Zustand editieren</phrase>
            </title>

            <para lang="en">When editing a composite state, how do you provide do 
            and event for a composite state?</para>
            <para lang="de">
            	Wenn Sie einen zusammengesetzten Zustands editieren, 
            	wie erhalten Sie Zugriff auf den zusammengesetzten 
            	Zustands?
            </para>

            <para lang="en">The answer is to select a class, then you can create 
            a statechart diagram.</para>
            <para lang="de">
            	Die Antwort ist, die Klasse markieren und dann das 
            	Zustandsdiagramm erstellen.
            </para>

          </sect3>

        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">Transitions (To be written)</phrase>
          	<phrase lang="de">Transitionen (Noch zu beschreiben)</phrase>
          	</title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">Actions (To be written)</phrase>
          	<phrase lang="de">Aktionen (Noch zu beschreiben)</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">
          		Advanced Statechart Diagrams (To be written)
          	</phrase>
          	<phrase lang="de">
          		Erweiterte Zustandsdiagramme (Noch zu beschreiben)
          	</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
          <sect3>

            <title>
            	<phrase lang="en">
            		Hierarchical Statechart Diagrams (To be written)
            	</phrase>
            	<phrase lang="de">
            		Hierarchische Zustandsdiagramme (Noch zu beschreiben)
            	</phrase>
            </title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

        </sect2>

      </sect1>

      <sect1>

        <title>
        	<phrase lang="en">Realization Use Cases (To be written)</phrase>
        	<phrase lang="de">Anwendungsfälle realisieren (Noch zu beschreiben)</phrase>
        </title>

        <remark lang="en">To be written...</remark>
        <remark lang="de">Noch zu beschreiben...</remark>
      </sect1>

      <sect1>

        <title>
        	<phrase lang="en">
        		Creating Realization Use Cases in ArgoUML (To be written)
        	</phrase>
        	<phrase lang="de">
        		Realisierungs-Anwendungsfälle in ArgoUML erstellen (Noch zu 
        		beschreiben)
        	</phrase>
        </title>

        <remark lang="en">To be written...</remark>
        <remark lang="de">Noch zu beschreiben...</remark>
      </sect1>

      <sect1>

        <title>
        	<phrase lang="en">Case Study (To be written)</phrase>
        	<phrase lang="de">Fallstudie (Noch zu beschreiben)</phrase>
        </title>

        <para lang="en">

          Regardless of which methodology you use, at this time you are
          undoubtedly going to take the problem statement from
          <xref linkend="s3.tut.req_case_study"/>
          and extract the nouns from it.
          This list should be compacted to contain only those nouns that are
          expected to result in a class.
          This effort results in the following.

          <itemizedlist>
            <listitem><para lang="en">Account</para></listitem>
            <listitem><para lang="en">Audit trail</para></listitem>
            <listitem><para lang="en">Bank</para></listitem>
            <listitem><para lang="en">Cash</para></listitem>
            <listitem><para lang="en">Customer</para></listitem>
          </itemizedlist>
          
        </para>
        <para lang="de">
			Abhängig davon, welche Methode Sie verwenden, ist es an der Zeit, 
			dass Sie ohne jeden Zweifel die Problembeschreibung aus 
			<xref linkend="s3.tut.req_case_study"/> nehmen und die Hauptwörter 
			extrahieren.
			Diese Liste sollte verdichtet werden, so dass nur noch die 
			Hauptwörter enthalten sind, die als Klasse erwartet werden.
			Dieser Ansatz hat folgendes Ergebnis:

          <itemizedlist>
            <listitem><para lang="de">Konto</para></listitem>
            <listitem><para lang="de">Nachweislog</para></listitem>
            <listitem><para lang="de">Bank</para></listitem>
            <listitem><para lang="de">Geld</para></listitem>
            <listitem><para lang="de">Kunde</para></listitem>
          </itemizedlist>
          
        </para>

        <sect2>

          <title>
          	<phrase lang="en">CRC Cards</phrase>
          	<phrase lang="de">CRC Karten</phrase>
          </title>

          <para lang="en">
            The project manager convenes a CRC session at which the initial
            set of classes are to be defined.
            The facilitator reminds the participants that we are in the
            analysis phase and are only interested in what needs to be done
            (at the business level) and are to leave out anything that smacks
            of how to do it.
            As a general rule of thumb this means a subset of
            the nouns from the problem statement (see above).
            The group starts with a complete list of all of the nouns in the
            statement, examines each one, and decides which are inappropriate
            crossing them off the list.
            Each class is then assigned to one of the participants.
          </para>
          <para lang="de">
          	Der Projektmanager beruft eine CRC-Sitzung ein, in der die ersten 
          	Klassen definiert werden.
          	Der Multiplikator erinnert die Teilnehmer daran, dass wir uns in der 
          	Analysephase befinden und nur an den Dingen interessiert sind, 
          	welche Bedürfnisse erfüllt werden müssen (auf Geschäftsebene) und 
          	alles weglassen müssen, was nach "wie müssen wir es tun" aussieht.
          	Als generelle Regel diese Ansatzes bedeutet das, eine Teilmenge der 
          	Hauptwörter aus dem Problembereich (siehe oben).
          	Die Gruppe beginnt mit einer vollständigen Liste aller Hauptwörter 
          	der Beschreibung, prüft jedes und entscheidet, welche unpassend 
          	sind und aus der Liste gestrichen werden.
          	Jede Klasse wird dann einem der Teilnehmer zugewiesen.
          </para>

          <para lang="en">
            <remark lang="en">to be continued</remark>...
          </para>
          <para lang="de">
            <remark lang="de">ist fortzusetzen...</remark>...
          </para>

        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">Concept Class Diagrams (To be written)</phrase>
          	<phrase lang="de">
          		Klassendiagramme konzipieren (Noch zu beschreiben)
          	</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
          <sect3>

            <title>
            	<phrase lang="en">Identifying classes (To be written)</phrase>
            	<phrase lang="de">Klassen identifizieren (Noch zu beschreiben)</phrase>
            </title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

          <sect3>

            <title>
            	<phrase lang="en">
            		Identifying associations (To be written)
            	</phrase>
            	<phrase lang="de">
            		Assoziationen identifizieren (Noch zu beschreiben)
            	</phrase>
            </title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">System Sequence Diagrams (To be written)</phrase>
          	<phrase lang="de">System-Sequenzdiagramme (Noch zu beschreiben)</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
          <sect3>

            <title>
            	<phrase lang="en">Identifying actions (To be written)</phrase>
            	<phrase lang="de">Aktionen identifizieren (Noch zu beschreiben)</phrase>
            </title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">
          		System Statechart Diagrams (To be written)
          	</phrase>
          	<phrase lang="de">
          		System-Zustandsdiagramme (Noch zu beschreiben)
          	</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">Realization Use Cases (To be written)</phrase>
          	<phrase lang="de">
          		Die Realisierung von Anwendungsfällen (Noch zu beschreiben)
          	</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

      </sect1>

    </chapter>

    <chapter id="ch.tut.design">

      <title>
      	<phrase lang="en">Design</phrase>
      	<phrase lang="de">Design</phrase>
      </title>

      <para lang="en">
        We now have the problem we are trying to solve specified 
        in the language of a putative solution.
        In the Design Phase, we 
        construct all the details of that solution.
      </para>
      <para lang="de">
      	Wir haben jetzt das Problem, das wir in der Sprache der vermeintlichen 
      	Lösung zu lösen versuchen. 
      	In der Designphase konstruieren wir alle Details dieser Lösung.
      </para>

      <para lang="en">
        The blurred boundary between Analysis and Design is 
        reflected in their use of many of the same UML tools.
        In this chapter we will mostly be reusing UML technology we have 
        already met once.
        The big step is casting everything into 
        concrete terms. We move from the abstract concepts of analysis 
        to their concrete realization.
      </para>
      <para lang="de">
      	Die verwischten Grenzen zwischen der Analyse und dem Design zeigt sich 
      	hier auch durch die gemeinsame Verwendung derselben UML-Werkzeuge.
      	In diesem Kapitel werden wir sehr häufig die UML-Technologie verwenden, 
      	die wir bereits kennengelernt haben.
      	Der grosse Schritt ist das Umwandeln in konkrete Ausdrücke. Wir bewegen 
      	uns von den abstrakten Konzepten der Analyse hin zu deren konkreten 
      	Realisierung.
      </para>

      <para lang="en">
        Once again the <emphasis>recursive</emphasis>, and 
        <emphasis>iterative</emphasis> nature of our process means we 
        will come back to the Design phase many times in the 
        future.
      </para>
      <para lang="de">
      	Erneut bedeutet die <emphasis>rekursive</emphasis> und 
        <emphasis>iterative</emphasis> Natur unseres Prozesses, dass wir in 
        Zukunft viele Male zurück in die Designphase kommen. 
      </para>

      <sect1>

        <title>
        	<phrase lang="en">The Design Process (To be written)</phrase>
        	<phrase lang="de">Der Designprozess (Noch zu beschreiben)</phrase>
        </title>

        <para lang="en">
          The design process extends the modeling effort beyond the business
          concerns and into the solutions space.
          It is during this effort that you decide whether you are going to use
          Java, C++, J2EE, CORBA, SOAP, Dial up line, internet connection
          dedicated line, XML, etc.
          Many of these decisions will impact directly the PSM model, others
          may only be reflected in the documents produced.
        </para>
        <para lang="de">
        	Der Designprozess erweitert den Modellierungsaufwand jenseits der 
        	Geschäftsanforderungen in Richtung des Lösungsraumes.
        	Während dieser Arbeit entscheiden Sie, ob Sie Java, C++, J3EE, CORBA, 
        	SOAP, Wählleitungen, Internetverbindungen, Standleitungen, XML, usw. 
        	verwenden werden.
        	Viele dieser Entscheidungen werden das PSM-Modell direkt beeinflussen,
        	andere widerum werden sich nur in den erzeugten Dokumenten 
        	wiederspiegeln.
        </para>

        <para>
          ...
        </para>

        <sect2>

          <title>
          	<phrase lang="en">
          		Class, Responsibilities, and Collaborators (CRC) Cards
          	</phrase>
          	<phrase lang="de">
          		Klasse, Verantwortlichkeits- und Zusammenhänge- (CRC) Karten
          	</phrase>
          </title>
          <para lang="en">
            Strength of CRC cards during Design
            <itemizedlist>
              <listitem><para lang="en">Spreading Objet-Oriented Design Expertise</para></listitem>
              <listitem><para lang="en">Design Reviews</para></listitem>
              <listitem><para lang="en">Framework for Implementation</para></listitem>
              <listitem><para lang="en">Informal Notation</para></listitem>
              <listitem><para lang="en">Choice of supporting software components</para></listitem>
              <listitem><para lang="en">Performance Requirements</para></listitem>
            </itemizedlist>
          </para>
          <para lang="de">
          	Die Stärken der CRC-Karten während des Design
            <itemizedlist>
              <listitem>
              	<para lang="de">
              		Verbreitern der objektorientierten Design-Expertise
              	</para>
              </listitem>
              <listitem>
              	<para lang="de">Design Reviews</para>
              </listitem>
              <listitem>
              	<para lang="de">Framework die Implementierung</para>
              </listitem>
              <listitem>
              	<para lang="de">Informelle Notation</para>
              </listitem>
              <listitem>
              	<para lang="de">
              		Auswahl der unterstützenden Softwarekomponenten
              	</para>
              </listitem>
              <listitem>
              	<para lang="de">Performance-Anforderungens</para>
              </listitem>
            </itemizedlist>
          </para>

          <para lang="en">
            In this phase developers replace some of the domain experts
            in the group, but there should always be at least one domain
            expert in the group.
          </para>
          <para lang="de">
          	In dieser Phase ersetzen die Entwickler einige der fachlichen 
          	Experten in der Gruppe. Es sollte aber immer mindestens ein 
          	fachlicher Experte in der Gruppe verbleiben.
          </para>

          <para lang="en">
            The focus of the group moves from what is to be done to
            how to do it.
            The classes from the solution domain are added to
            those defined in the analysis phase.
            Think about what classes are needed to make the system work.
            Do you need a List class to hold objects?
            Do you need classes to handle exceptions?
            Do you need wrapper classes for other subsystems?
            New classes that are looked for in this part, are classes
            that support the implementation of the system.
          </para>
          <para lang="de">
          	Der Fokus der Gruppe bewegt sich von der Frage was zu tun ist hin zu 
          	der Frage wie es zu tun ist.
          	Der Klassen aus dem Lösungsbereich werden denen der Analysephase 
          	hinzugefügt. Es wird darüber nachgedacht, welche Klassen werden 
          	benötigt, damit das System arbeitet.
          	Benötigen Sie eine Listenklasse, die Objekte beinhaltet?
          	Benötigen Sie Klassen, die Ausnahmen behandeln?
          	Benötigen Sie Wrapperklassen für andere Subsysteme?
          	In diesem Abschnitt wird nach neuen Klassen gesucht, nach Klassen, 
          	die die Implementierung des Systems unterstützen.
          </para>

          <para lang="en">
            During the design phase the distinction between class and object
            becomes important.
            Think about the objects in your scenarios.
            Who creates the objects?
            What happens when it is created and destroyed?
            What is the lifetime of the object vs. the lifetime of the
            information held be the object?
          </para>
          <para lang="de">
          	Während der Designphase wird der Unterschied zwischen Klasse und 
          	Objekt wichtig.
          	Denken Sie über die Objekte in Ihren Szenarien nach.
          	Wer erzeugt die Objekte?
          	Was passiert, wenn sie erzeugt und gelöscht werden?
          	Wie ist die Lebensdauer des Objektes im Gegensatz zur Lebensdauer 
          	der Information, die durch das Objekt gehalten wird.
          </para>

          <para lang="en">
            Now is the time to look at what information the objects hold
            compared to what is requested from other classes or computed
            on the fly.
            Use the back of the card to record the attributes found for
            the classes.
            Break you responsibilities into subresponsibilities and list the
            subresponsibilities indented under the main responsibilities.
            Move the collaborators next to the subresponsibilities
            that use them.
          </para>
          <para lang="de">
          	Jetzt ist es an der Zeit sich anzusehen, welche Informationen die 
          	Objekte halten, verglichen mit den von anderen Klassen angeforderten 
          	oder berechneten Informationen.
          	Benutzen Sie die Rückseite der Karte, um die gefundenen Attribute 
          	für diese Klassen aufzuschreiben.
          	Teilen Sie die Verantwortlichkeiten in Sub-Verantwortlichkeiten auf 
          	und listen Sie die Sub-Verantwortlichkeiten unter der 
          	Hauptverantwortlichkeit eingerückt auf.
          	Verschieben Sie die dafür notwendigen Klassen zu den 
          	Verantwortlichkeiten die sie nutzen.
^          </para>

          <para lang="en">
            After the Collaborator class on your card list the responsibility
            of the used class that is used in the collaboration.
            After the collaborating responsibilities on your cards, list the
            data passed back by the collaborating object in parenthesis.
          </para>
          <para lang="de">
          	Hinter der Kollaboratorklasse listen Sie auf Ihrer Karte die 
          	Verantwortlichkeit der in dieser Zusammenarbeit verwendeten Klasse 
          	auf. Hinter den kollaborierenden Verantwortlichkeiten Ihrer Karte 
          	listen Sie die durch die kollaborierenden Objekte zurückgelieferten 
          	Daten in Klammern auf.
          </para>

          <para lang="en">
            Redo the scenarios you did in the analysis phase, but know take
            into consideration all of the design heuristics discussed.
            Make up your own scenarios and try them.
          </para>
          <para lang="de">
          	Spielen Sie die Szenarien der Analysephase erneut durch, beachten 
          	Sie dabei aber alle Erwägungen der diskutierten Design-Heuristiken.
          	Nehmen Sie Ihre eigenen Szenarien und versuchen Sie es.
          </para>

        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">Package Diagram (To be written)</phrase>
          	<phrase lang="de">Paketdiagramm (Noch zu beschreiben)</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">
          		Realization Class Diagrams (To be written)
          	</phrase>
          	<phrase lang="de">
          		Klassendiagramme realisieren (Noch zu beschreiben)
          	</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">
          		Sequence Diagrams and Collaboration Diagrams (To be written)
          	</phrase>
          	<phrase lang="de">
          		Sequenz- und Kollaborationsdiagramme (Noch zu beschreiben)
          	</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">
          		Statechart Diagrams and Activity Diagrams (To be written)
          	</phrase>
          	<phrase lang="de">
          		Zustands- und Aktivitätsdiagramme (Noch zu beschreiben)
          	</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">Deployment Diagram (To be written)</phrase>
          	<phrase lang="de">Verteilungsdiagramme (Noch zu beschreiben)</phrase>
          </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

          <title>
          	<phrase lang="en">Documents (To be written)</phrase>
          	<phrase lang="de">Dokumente (Noch zu beschreiben)</phrase>
          </title>

          <remark lang="en">System Architecture. To be written...</remark>
          <remark lang="de">System Architektur. Noch zu beschreiben...</remark>
        </sect2>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Package Diagrams (To be written)</phrase>
			<phrase lang="de">Paketdiagramme (Noch zu beschreiben)</phrase>
		</title>

        <remark lang="en">To be written...</remark>
        <remark lang="de">Noch zu beschreiben...</remark>
        <sect2>

        <title>
			<phrase lang="en">The Package Diagram (To be written)</phrase>
			<phrase lang="de">Das Paketdiagramm (Noch zu beschreiben)</phrase>
		</title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

        <title>
			<phrase lang="en">Advanced Package Diagrams (To be written)</phrase>
			<phrase lang="de">Erweiterte Paketdiagramme (Noch zu beschreiben)</phrase>
		</title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
          <sect3>

        <title>
			<phrase lang="en">Subpackages (To be written)</phrase>
			<phrase lang="de">Subpakete (Noch zu beschreiben)</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

          <sect3>

        <title>
			<phrase lang="en">Adding DataTypes (To be written)</phrase>
			<phrase lang="de">Datentypen hinzufügen (Noch zu beschreiben)</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

          <sect3>

        <title>
			<phrase lang="en">Adding Stereotypes (To be written)</phrase>
			<phrase lang="de">Stereotypen hinzufügen (Noch zu beschreiben)</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

        </sect2>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Creating Package Diagrams in ArgoUML</phrase>
			<phrase lang="de">Paketdiagramme in ArgoUML erstellen</phrase>
		</title>

        <sect2>

          <title>
			<phrase lang="en">Packages</phrase>
			<phrase lang="de">Pakete</phrase>
		</title>

          <remark lang="en">How to work out what goes in packages. To be 
          written...</remark>
          <remark lang="de">
          	Ausarbeiten, was in Pakete kommt. Noch zu beschreiben...
          </remark>
          <sect3>

        <title>
			<phrase lang="en">Subpackages (To be written)</phrase>
			<phrase lang="de">Subpakete (Noch zu beschreiben)</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

        </sect2>

        <sect2>

        <title>
			<phrase lang="en">
				Relationships between packages (To be written)
			</phrase>
			<phrase lang="de">
				Beziehungen zwischen Paketen (Noch zu beschreiben)
			</phrase>
		</title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
          <sect3>

        <title>
			<phrase lang="en">Dependency (To be written)</phrase>
			<phrase lang="de">Abhängigkeit (Noch zu beschreiben)</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

          <sect3>

        <title>
			<phrase lang="en">Generalization (To be written)</phrase>
			<phrase lang="de">Generalisierung (Noch zu beschreiben)</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

          <sect3>

        <title>
			<phrase lang="en">
				Realization and Abstraction (To be written)
			</phrase>
			<phrase lang="de">
				Realisierung und Abstraktion (Noch zu beschreiben)
			</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

        </sect2>

        <sect2>

        <title>
			<phrase lang="en">Advanced Package Features (To be written)</phrase>
			<phrase lang="de">Erweiterte Paketfunktionen (Noch zu beschreiben)</phrase>
		</title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
          <sect3>

        <title>
			<phrase lang="en">Creating New Datatypes (To be written)</phrase>
			<phrase lang="de">Neue Datentypen erstellen (Noch zu beschreiben)</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

          <sect3>

        <title>
			<phrase lang="en">Creating New Stereotypes (To be written)</phrase>
			<phrase lang="de">
				Neue Stereotypen erstellen (Noch zu beschreiben)
			</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

        </sect2>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">More on Class Diagrams (To be written)</phrase>
			<phrase lang="de">Mehr über Klassendiagramme (Noch zu beschreiben)</phrase>
		</title>

        <remark lang="en">To be written...</remark>
        <remark lang="de">Noch zu beschreiben...</remark>
        <sect2>

          <title>
			<phrase lang="en">The Class Diagram (To be written)</phrase>
			<phrase lang="de">Das Klassendiagramm (Noch zu beschreiben)</phrase>
		</title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
          <sect3>

        <title>
			<phrase lang="en">Class Attributes (To be written)</phrase>
			<phrase lang="de">Klassenattribute (Noch zu beschreiben)</phrase>
		</title>

            <remark lang="en">To be written...</remark>
          	<remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

          <sect3>

        <title>
			<phrase lang="en">Class Operations (To be written)</phrase>
			<phrase lang="de">Klassenoperationen (Noch zu beschreiben)</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

        </sect2>

        <sect2>

        <title>
			<phrase lang="en">Advanced Class Diagrams (To be written)</phrase>
			<phrase lang="de">Erweiterte Klassendiagramme (Noch zu beschreiben)</phrase>
		</title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
          <sect3>

        <title>
			<phrase lang="en">Realization and Abstraction (To be written)</phrase>
			<phrase lang="de">
				Realisierung und Abstraktion (Noch zu beschreiben)
			</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

        </sect2>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">
				More on Class Diagrams in ArgoUML (To be written)
			</phrase>
			<phrase lang="de">
				Mehr über Klassendiagramme in ArgoUML (Noch zu beschreiben)
			</phrase>
		</title>

        <sect2>

        <title>
			<phrase lang="en">Classes (To be written)</phrase>
			<phrase lang="de">Klassen (Noch zu beschreiben)</phrase>
		</title>

          <remark lang="en">More on identifying classes from existing materials 
          and use of stereotypes. To be written...</remark>
          <remark lang="de">
          	Mehr über das Identifizieren von Klassen aus existierendem Material 
          	und der Gebrauch von Stereotypen. Noch zu beschreiben...
          </remark>
        </sect2>

        <sect2>

        <title>
			<phrase lang="en">
				Class Attributes and Operations (To be written)
			</phrase>
			<phrase lang="de">
				Klassenattribute und -operationen (Noch zu beschreiben)
			</phrase>
		</title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
          <sect3>

        <title>
			<phrase lang="en">Class Attributes (To be written)</phrase>
			<phrase lang="de">Klassenattribute (Noch zu beschreiben)</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

          <sect3>

        <title>
			<phrase lang="en">Class Operations (To be written)</phrase>
			<phrase lang="de">Klassenoperationen (Noch zu beschreiben)</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

        </sect2>

        <sect2>

        <title>
			<phrase lang="en">Advanced Class Features</phrase>
			<phrase lang="de">Erweiterte Klassenfunktionen</phrase>
		</title>

          <sect3>

        <title>
			<phrase lang="en">Operations on Interfaces</phrase>
			<phrase lang="de">Operationen bei Schnittstellen</phrase>
		</title>

            <sect4>

        <title>
			<phrase lang="en">Interfaces that extend interfaces</phrase>
			<phrase lang="de">
				Schnittstellen, die Schnittstellen erweitern
			</phrase>
		</title>

              <para lang="en">Add a unnamed interface to the current classdiagram 
              by single-clicking on the interface icon in the tool bar 
              and then clicking at the diagram pane (see 
              <xref linkend="fig.tut.iftool"/>).</para>
              <para lang="de">
              	Durch einfaches Klicken auf das Schnittstellensymbol in der 
              	Werkzeugleiste und anschliessendem klicken in das 
              	Diagrammfenster fügen Sie dem aktuellen Klassendiagramm eine 
              	unbenannte Schnittstelle hinzu (siehe 
	            <xref linkend="fig.tut.iftool"/>).
              </para>

              <figure float="1" id="fig.tut.iftool">

        <title>
			<phrase lang="en">Selecting the Interface tool</phrase>
			<phrase lang="de">Auswählen des Werkzeuges Schnittstelle</phrase>
		</title>

                <screenshot><mediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/tutorial/iftool.gif"
                 format="GIF"/></imageobject></mediaobject></screenshot>
              </figure>

              <para lang="en">Then double click on the interfaces name field to 
              change it&apos;s name as shown in 
              <xref linkend="fig.tut.if"/></para>
              <para lang="de">
              	Dann führen Sie einen Doppelklick auf das Namensfeld der 
              	Schnittstelle aus, um dessen Namen wie im Bild 
              	<xref linkend="fig.tut.if"/> gezeigt zu ändern.
              </para>

              <figure float="1" id="fig.tut.if">

        <title>
			<phrase lang="en">
				Interface model element on the Class Diagram
			</phrase>
			<phrase lang="de">
				Modellelement Schnittstelle im Klassendiagramm
			</phrase>
		</title>

                <screenshot><mediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/tutorial/if.gif"
                 format="GIF"/></imageobject></mediaobject></screenshot>
              </figure>

              <para lang="en">and type a name for it (like <literal>
              TestInterface</literal> in this case). Press 
              <quote>Enter</quote> when the name is complete. (You 
              could also enter the name by going to the Properties Tab 
              in the Details Pane after adding the interface.)</para>
              <para lang="de">
				Geben Sie den Namen ein (z.B. <literal>TestSchnittstelle</literal> 
				in diesem Fall). Drücken Sie <quote>Enter</quote>, wenn der 
				Name vollständig ist. (Sie können den Namen auch ändern, indem 
				Sie in das Eigenschaftsregister im Detailfenster nach dem 
				Hinzufügen der Schnittstelle gehen.) 
			  </para>

              <para lang="en">Add another interface with a different name by repeating 
              the last 2 steps. Then single-click on the Generalization 
              icon in the tool bar as shown in 
              <xref linkend="fig.tut.generalize"/>.</para>
              <para lang="de">
              	Fügen Sie eine weitere Schnittstelle hinzu, indem Sie die letzten 
              	beiden Schritte wiederholen. Dann klicken Sie auf das 
              	Generalisierungssymbol in der Werkzeugleiste wie in Bild 
              	<xref linkend="fig.tut.generalize"/> dargestellt.
              </para>

              <figure float="1" id="fig.tut.generalize">

        <title>
			<phrase lang="en">
				Generalization on the Class Diagram tool bar
			</phrase>
			<phrase lang="de">
				Generalisierung über die Symbolleiste des Klassendiagrammes
			</phrase>
		</title>

                <screenshot><mediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/tutorial/generalize.gif"
                 format="GIF"/></imageobject></mediaobject></screenshot>
              </figure>

              <para lang="en">Move the mouse pointer to the subinterface, press 
              the left mouse button and drag the generalization to the 
              superinterface, where you release the mouse button. 
              The screenshot of <xref linkend="fig.tut.ifgen"/> shows how your 
              diagram should look now.</para>
              <para lang="de">
              	Bewegen Sie den Mauszeiger auf die Subschnittstelle, drücken Sie 
              	die linke Maustaste und ziehen Sie die Generalisierung auf die 
              	Superschnittstelle, indem Sie die Maustaste loslassen. Bild 
				<xref linkend="fig.tut.ifgen"/> zeigt, wie Ihr Diagramm jetzt 
				aussehen sollte. 
              </para>

              <figure float="1" id="fig.tut.ifgen">

        <title>
			<phrase lang="en">Generalization between two Interfaces.</phrase>
			<phrase lang="de">
				Generalisierung zwischen zwei Schnittstellen.
			</phrase>
		</title>

                <screenshot><mediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/tutorial/ifgen.gif"
                 format="GIF"/></imageobject></mediaobject></screenshot>
              </figure>

              <para lang="en">By clicking on the subinterface and the source tab 
              properties pane, and then selecting Java Notation for the 
              source tab, you can see that the interface actually 
              extends it&apos;s superinterface.</para>
              <para lang="de">
              	Durch klicken auf die Subschnittstellen und das Sourceregister 
              	und anschliessende Auswahl der Javanotation für das 
              	Sourceregister können Sie sehen, dass die Schnittstelle nun 
              	seine Superschnittstelle erweitert.
              </para>

            </sect4>

          </sect3>

          <sect3>

        <title>
			<phrase lang="en">Stereotypes (To be written)</phrase>
			<phrase lang="de">Stereotypen (Noch zu beschreiben)</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

        </sect2>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">
				Sequence and Collaboration Diagrams (To be written)
			</phrase>
			<phrase lang="de">
				Sequenz- und Kollaborationsdiagramme (Noch zu beschreiben)
			</phrase>
		</title>

        <note>

          <para lang="en">Sequence diagrams does not work in ArgoUML version 
          0.14.</para>
          <para lang="de">Sequenzdiagramme funktionieren in der ArgoUML-Version 
          0.14 nicht.</para>

        </note>

        <remark lang="en">To be written...</remark>
        <remark lang="de">Noch zu beschreiben...</remark>
        <sect2>

        <title>
			<phrase lang="en">
				More on the Sequence Diagram (To be written)
			</phrase>
			<phrase lang="de">
				Mehr über das Sequenzdiagramm (Noch zu beschreiben)
			</phrase>
		</title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

        <title>
			<phrase lang="en">The Collaboration Diagram (To be written)</phrase>
			<phrase lang="de">Das Kollaborationsdiagramm (Noch zu beschreiben)</phrase>
		</title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
          <sect3>

        <title>
			<phrase lang="en">Messages (To be written)</phrase>
			<phrase lang="de">Nachrichten (Noch zu beschreiben)</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

          <sect3>

        <title>
			<phrase lang="en">Actions (To be written)</phrase>
			<phrase lang="de">Aktionen (Noch zu beschreiben)</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

        </sect2>

        <sect2>

        <title>
			<phrase lang="en">
				Advanced Collaboration Diagrams (To be written)
			</phrase>
			<phrase lang="de">
				Erweiterte Kollaborationsdiagramme (Noch zu beschreiben)
			</phrase>
		</title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">
				Creating Collaboration Diagrams in ArgoUML (To be written)
			</phrase>
			<phrase lang="de">
				Kollaborationsdiagramme in ArgoUML erstellen (Noch zu 
				beschreiben)
			</phrase>
		</title>

        <sect2>

        <title>
			<phrase lang="en">Collaboration Diagrams (To be written)</phrase>
			<phrase lang="de">
				Kollaborationsdiagramme (Noch zu beschreiben)
			</phrase>
		</title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

        <title>
			<phrase lang="en">Messages (To be written)</phrase>
			<phrase lang="de">Nachrichten (Noch zu beschreiben)</phrase>
		</title>

          	<remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          <sect3>

        <title>
			<phrase lang="en">Actions (To be written)</phrase>
			<phrase lang="de">Aktionen (Noch zu beschreiben)</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

        </sect2>

        <sect2>

        <title>
			<phrase lang="en">
				Advanced Collaboration Diagrams (To be written)
			</phrase>
			<phrase lang="de">
				Erweiterte Kollaborationsdiagramme (Noch zu beschreiben)
			</phrase>
		</title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Statechart Diagrams (To be written)</phrase>
			<phrase lang="de">Zustandsdiagramme (Noch zu beschreiben)</phrase>
		</title>

        	<remark lang="en">To be written...</remark>
          	<remark lang="de">Noch zu beschreiben...</remark>
        <sect2>

        <title>
			<phrase lang="en">The Statechart Diagram (To be written)</phrase>
			<phrase lang="de">Das Zustandsdiagramm (Noch zu beschreiben)</phrase>
		</title>

          <remark lang="en">More on this. To be written...</remark>
          <remark lang="de">Mehr darüber. Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

        <title>
			<phrase lang="en">Advanced Statechart Diagrams (To be written)</phrase>
			<phrase lang="de">
				Erweiterte Zustandsdiagramme (Noch zu beschreiben)
			</phrase>
		</title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
          <sect3>

        <title>
			<phrase lang="en">Actions (To be written)</phrase>
			<phrase lang="de">Aktionen (Noch zu beschreiben)</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

          <sect3>

        <title>
			<phrase lang="en">Transitions (To be written)</phrase>
			<phrase lang="de">Transitionen (Noch zu beschreiben)</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
            <sect4>

        <title>
			<phrase lang="en">Triggers (To be written)</phrase>
			<phrase lang="de">Trigger (Noch zu beschreiben)</phrase>
		</title>

              <remark lang="en">To be written...</remark>
              <remark lang="de">Noch zu beschreiben...</remark>
            </sect4>

            <sect4>

        <title>
			<phrase lang="en">Guards (To be written)</phrase>
			<phrase lang="de">Wächter (Noch zu beschreiben)</phrase>
		</title>

              <remark lang="en">To be written...</remark>
              <remark lang="de">Noch zu beschreiben...</remark>
            </sect4>

            <sect4>

        <title>
			<phrase lang="en">Effectss (To be written)</phrase>
			<phrase lang="de">Effekte (Noch zu beschreiben)</phrase>
		</title>

              <remark lang="en">To be written...</remark>
              <remark lang="de">Noch zu beschreiben...</remark>
            </sect4>

          </sect3>

          <sect3>

        <title>
			<phrase lang="en">Pseudo States (To be written)</phrase>
			<phrase lang="de">Pseudo-Zustände (Noch zu beschreiben)</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
            <sect4>

        <title>
			<phrase lang="en">Junction and Choice (To be written)</phrase>
			<phrase lang="de">Junction and Choice (To be written)</phrase>
		</title>

              <remark lang="en">To be written...</remark>
              <remark lang="de">Noch zu beschreiben...</remark>
            </sect4>

            <sect4>

        <title>
			<phrase lang="en">Fork and Join (To be written)</phrase>
			<phrase lang="de">
				Verzweigen und Verknüpfen (Noch zu beschreiben)
			</phrase>
		</title>

              <remark lang="en">To be written...</remark>
              <remark lang="de">Noch zu beschreiben...</remark>
            </sect4>

          </sect3>

          <sect3>

        <title>
			<phrase lang="en">Hierarchical State Machines (To be written)</phrase>
			<phrase lang="de">
				Hierarchische Zustandsautomaten (Noch zu beschreiben)
			</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

          <sect3>

        <title>
			<phrase lang="en">Models for State History (To be written)</phrase>
			<phrase lang="de">
				Modelle für die Zustandshistorie (Noch zu beschreiben)
			</phrase>
		</title>

            <remark lang="en">Shallow v Deep. To be written...</remark>
            <remark lang="de">Breite versus Tiefe. Noch zu beschreiben...</remark>
          </sect3>

        </sect2>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">
				Creating Statechart Diagrams in ArgoUML (To be written)
			</phrase>
			<phrase lang="de">
				Zustandsdiagramme in ArgoUML erstellen (Noch zu beschreiben)
			</phrase>
		</title>

        <sect2>

        <title>
			<phrase lang="en">Statechart Diagrams (To be written)</phrase>
			<phrase lang="de">Zustandsdiagramme (Noch zu beschreiben)</phrase>
		</title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

        <title>
			<phrase lang="en">States (To be written)</phrase>
			<phrase lang="de">Zustände (Noch zu beschreiben)</phrase>
		</title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

        <title>
			<phrase lang="en">Transitions (To be written)</phrase>
			<phrase lang="de">Transitionen (Noch zu beschreiben)</phrase>
		</title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

        <title>
			<phrase lang="en">Actions (To be written)</phrase>
			<phrase lang="de">Aktionen (Noch zu beschreiben)</phrase>
		</title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

        <title>
			<phrase lang="en">Advanced Statechart Diagrams (To be written)</phrase>
			<phrase lang="de">
				Erweiterte Zustandsdiagramme (Noch zu beschreiben)
			</phrase>
		</title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
          <sect3>

        <title>
			<phrase lang="en">Transitions (To be written)</phrase>
			<phrase lang="de">Transitionen (Noch zu beschreiben)</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
            <sect4>

        <title>
			<phrase lang="en">Triggers (To be written)</phrase>
			<phrase lang="de">Trigger (Noch zu beschreiben)</phrase>
		</title>

              <remark lang="en">To be written...</remark>
              <remark lang="de">Noch zu beschreiben...</remark>
            </sect4>

            <sect4>

        <title>
			<phrase lang="en">Guards (To be written)</phrase>
			<phrase lang="de">Wächter (Noch zu beschreiben)</phrase>
		</title>

              <remark lang="en">To be written...</remark>
              <remark lang="de">Noch zu beschreiben...</remark>
            </sect4>

            <sect4>

        <title>
			<phrase lang="en">Effectss (To be written)</phrase>
			<phrase lang="de">Effekte (Noch zu beschreiben)</phrase>
		</title>

              <remark lang="en">To be written...</remark>
              <remark lang="de">Noch zu beschreiben...</remark>
            </sect4>

          </sect3>

          <sect3>

        <title>
			<phrase lang="en">Pseudo States (To be written)</phrase>
			<phrase lang="de">Pseudozustände (Noch zu beschreiben)</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
            <sect4>

        <title>
			<phrase lang="en">Junction and Choice (To be written)</phrase>
			<phrase lang="de">Junction and Choice (To be written)</phrase>
		</title>

              <remark lang="en">To be written...</remark>
              <remark lang="de">Noch zu beschreiben...</remark>
            </sect4>

            <sect4>

        <title>
			<phrase lang="en">Fork and Join (To be written)</phrase>
			<phrase lang="de">
				Verzweigen und Verknüpfen (Noch zu beschreiben)
			</phrase>
		</title>

              <remark lang="en">To be written...</remark>
              <remark lang="de">Noch zu beschreiben...</remark>
            </sect4>

          </sect3>

          <sect3>

        <title>
			<phrase lang="en">Hierarchical State Machines (To be written)</phrase>
			<phrase lang="de">
				Hierarchische Zustandsautomaten (Noch zu beschreiben)
			</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

          <sect3>

        <title>
			<phrase lang="en">History (To be written)</phrase>
			<phrase lang="de">Historie (Noch zu beschreiben)</phrase>
		</title>

            <remark lang="en">Shallow v Deep. To be written...</remark>
            <remark lang="de">Breite versus Tiefe. Noch zu beschreiben...</remark>
          </sect3>

        </sect2>

      </sect1>

      <sect1 id="s1.umlactivitydiags">

        <title>
			<phrase lang="en">Activity Diagrams (To be written)</phrase>
			<phrase lang="de">Aktivitätsdiagramme (Noch zu beschreiben)</phrase>
		</title>

        <remark lang="en">To be written...</remark>
        <remark lang="de">Noch zu beschreiben...</remark>
        <sect2>

        <title>
			<phrase lang="en">The Activity Diagram (To be written)</phrase>
			<phrase lang="de">Das Aktivitätsdiagramm (Noch zu beschreiben)</phrase>
		</title>

          <remark lang="en">More on this. To be written...</remark>
          <remark lang="de">Mehr darüber. Noch zu beschreiben...</remark>
          <sect3>

        <title>
			<phrase lang="en">Action States (To be written)</phrase>
			<phrase lang="de">Aktionszustände (Noch zu beschreiben)</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

        </sect2>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">
				Creating Activity Diagrams in ArgoUML (To be written)
			</phrase>
			<phrase lang="de">
				Aktivitätsdiagramme in ArgoUML erstellen (Noch zu beschreiben)
			</phrase>
		</title>

        <sect2>

        <title>
			<phrase lang="en">Activity Diagrams (To be written)</phrase>
			<phrase lang="de">Aktivitätsdiagramme (Noch zu beschreiben)</phrase>
		</title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
          <sect3>

        <title>
			<phrase lang="en">Creating an Activity Diagram</phrase>
			<phrase lang="de">Ein Aktivitätsdiagramm erstellen</phrase>
		</title>

            <para lang="en">Select a use case or class, then you can create an 
            activity diagram.</para>
            <para lang="de">
            	Markieren Sie einen Anwendungsfall oder eine Klasse, dann 
            	können Sie ein Aktivitätsdiagramm erstellen.
            </para>

          </sect3>

        </sect2>

        <sect2>

        <title>
			<phrase lang="en">Action States (To be written)</phrase>
			<phrase lang="de">Aktionszustände (Noch zu beschreiben)</phrase>
		</title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Deployment Diagrams (To be written)</phrase>
			<phrase lang="de">
				Verteilungsdiagramme (Noch zu beschreiben)
			</phrase>
		</title>

        <remark lang="en">To be written...</remark>
        <remark lang="de">Noch zu beschreiben...</remark>
        <sect2>

        <title>
			<phrase lang="en">The Deployment Diagram (To be written)</phrase>
			<phrase lang="de">Das Verteilungsdiagramm (Noch zu beschreiben)</phrase>
		</title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">
				Creating Deployment Diagrams in ArgoUML (To be written)
			</phrase>
			<phrase lang="de">
				Verteilungsdiagramme in ArgoUML erstellen (Noch zu beschreiben)
			</phrase>
		</title>

        <sect2>

        <title>
			<phrase lang="en">Nodes (To be written)</phrase>
			<phrase lang="de">Knoten (Noch zu beschreiben)</phrase>
		</title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
          <sect3>

        <title>
			<phrase lang="en">Node Instances (To be written)</phrase>
			<phrase lang="de">Knoten-Instanzen (Noch zu beschreiben)</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

        </sect2>

        <sect2>

        <title>
			<phrase lang="en">Components (To be written)</phrase>
			<phrase lang="de">Komponenten (Noch zu beschreiben)</phrase>
		</title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
          <sect3>

        <title>
			<phrase lang="en">Component Instances (To be written)</phrase>
			<phrase lang="de">Komponenten-Instanzen (Noch zu beschreiben)</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

        </sect2>

        <sect2>

        <title>
			<phrase lang="en">
				Relationships between nodes and components (To be written)
			</phrase>
			<phrase lang="de">
				Beziehungen zwischen Knoten und Komponenten (Noch zu beschreiben)
			</phrase>
		</title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
          <sect3>

        <title>
			<phrase lang="en">Dependency (To be written)</phrase>
			<phrase lang="de">Abhängigkeit (Noch zu beschreiben)</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

          <sect3>

        <title>
			<phrase lang="en">Associations (To be written)</phrase>
			<phrase lang="de">Assoziationen (Noch zu beschreiben)</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

          <sect3>

        <title>
			<phrase lang="en">Links (To be written)</phrase>
			<phrase lang="de">Verknüpfungen (Noch zu beschreiben)</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

        </sect2>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">System Architecture (To be written)</phrase>
			<phrase lang="de">System-Architektur (Noch zu beschreiben)</phrase>
		</title>

        <remark lang="en">To be written...</remark>
        <remark lang="de">Noch zu beschreiben...</remark>
      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Case Study (To be written)</phrase>
			<phrase lang="de">Fallstudie (Noch zu beschreiben)</phrase>
		</title>

        <sect2>

        <title>
			<phrase lang="en">CRC Cards (To be written)</phrase>
			<phrase lang="de">CRC-Karten (Noch zu beschreiben)</phrase>
		</title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

        <title>
			<phrase lang="en">Packages (To be written)</phrase>
			<phrase lang="de">Pakete (Noch zu beschreiben)</phrase>
		</title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
          <sect3>

        <title>
			<phrase lang="en">Identifying Packages (To be written)</phrase>
			<phrase lang="de">Pakete identifzieren (Noch zu beschreiben)</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

          <sect3>

        <title>
			<phrase lang="en">Datatypes and Stereotypes (To be written)</phrase>
			<phrase lang="en">
				Datentypen und Stereotypen (Noch zu beschreiben)
			</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

        </sect2>

        <sect2>

        <title>
			<phrase lang="en">Class Diagrams (To be written)</phrase>
			<phrase lang="de">Klassendiagramme (Noch zu beschreiben)</phrase>
		</title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
          <sect3>

        <title>
			<phrase lang="en">Identifying classes (To be written)</phrase>
			<phrase lang="de">
				Klassen identifizieren (Noch zu beschreiben)
			</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

          <sect3>

        <title>
			<phrase lang="en">Identifying associations (To be written)</phrase>
			<phrase lang="de">
				Assoziationen identifizieren (Noch zu beschreiben)
			</phrase>
		</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

          <sect3>

          	<title>
				<phrase lang="en">
					Specifying Attributes and Operations (To be written)
				</phrase>
				<phrase lang="de">
					Attribute und Operationen spezifizieren (Noch zu beschreiben)
				</phrase>
			</title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Sequence Diagrams (To be written)</phrase>
			<phrase lang="de">Sequenzdiagramme (Noch zu beschreiben)</phrase>
		  </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
          <sect3>

            <title>
				<phrase lang="en">Identifying actions (To be written)</phrase>
				<phrase lang="de">
					Aktionen identifzieren (Noch zu beschreiben)
				</phrase>
		    </title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Collaboration Diagrams (To be written)</phrase>
			<phrase lang="de">
				Kollaborationsdiagramme (Noch zu beschreiben)
			</phrase>
		  </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
          <sect3>

            <title>
				<phrase lang="en">Identifying Messages (To be written)</phrase>
				<phrase lang="de">
					Nachrichten identifizieren (Noch zu beschreiben)
				</phrase>
		    </title>

            <remark lang="en">To be written...</remark>
            <remark lang="de">Noch zu beschreiben...</remark>
          </sect3>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Statechart Diagrams (To be written)</phrase>
			<phrase lang="de">Zustandsdiagramme (Noch zu beschreiben)</phrase>
		  </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Activity Diagrams (To be written)</phrase>
			<phrase lang="de">Aktivitätsdiagramme (Noch zu beschreiben)</phrase>
		  </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

          <title>
			<phrase lang="en">The Deployment Diagram (To be written)</phrase>
			<phrase lang="de">
				Das Verteilungsdiagramm (Noch zu beschreiben)
			</phrase>
		  </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

        <sect2>

          <title>
			<phrase lang="en">The System Architecture (To be written)</phrase>
			<phrase lang="de">Die System-Architektur (Noch zu beschreiben)</phrase>
		  </title>

          <remark lang="en">To be written...</remark>
          <remark lang="de">Noch zu beschreiben...</remark>
        </sect2>

      </sect1>

    </chapter>

    <chapter id="ch.tut.build">

      <title>
			<phrase lang="en">
				Code Generation, Reverse Engineering, and Round Trip Engineering
			</phrase>
			<phrase lang="de">
				Codegenerierung, Reverse Engineering und Round Trip Engineering
			</phrase>
		</title>

      <sect1>

        <title>
			<phrase lang="en">Introduction</phrase>
			<phrase lang="de">Einleitung</phrase>
		</title>

        <para lang="en">We now have our design fully specified. With the right 
        simulator we could actually execute the design and see if it 
        works. (ArgoUML does not provide such functionality, but this 
        functionality has been provided in alternative tools.)</para>
        <para lang="de">
        	Wir haben jetzt unser Design vollständig spezifiziert. Mit dem 
        	richtigen Simulator können wir das Design aktuell ausführen und 
        	sehen, wie es arbeitet. (ArgoUML enthält keine solche Funktionalität, 
        	aber diese Funktionalität wird in anderen Tools angeboten).
        </para>

        <para lang="en">ArgoUML does allow you to generate code from the design 
        in several different programming languages. We, most likely, 
        already in the design had a programming language in mind 
        because some of the design considerations are to care for a 
        specific language.</para>
        <para lang="de">
        	ArgoUML erlaubt es Ihnen, Code aus dem Design in vielen 
        	verschiedenen Programmiersprachen auszuführen. Wir haben bereits 
        	sehr wahrscheinlich im Design eine Programmiersprache ausgewählt, 
        	weil einige der Designanforderungen fordern, eine spezielle 
        	Sprache auszuwählen.
        </para>

        <para lang="en">The output of this process is the set of files that 
        constitute the program that solves the problem.</para>
        <para lang="de">
        	Das Ergebnis dieses Prozesses ist ein Satz von Dateien, der das 
        	Programm bildet, welches das Problem löst.
        </para>

        <para lang="en">Once again the <emphasis>recursive</emphasis>, and 
        <emphasis>iterative</emphasis> nature of our process means we 
        will come back to the Build phase many times in the 
        future.</para>
        <para lang="de">
        	Nochmals, die <emphasis>rekursive</emphasis> und 
	        <emphasis>iterative</emphasis> Natur unseres Prozesses bedeutet, dass 
	        wir in der Zukunft noch viele Male in die Buildphase zurückkehren 
	        werden. 
        </para>

        <para lang="en">There is also another side to this and that is the 
        reverse engineering side. If we happen to have an old program 
        that we would like to examine then we could take the files and 
        reverse engineer them to create a design. This can be used when 
        trying to understand some not so well documented program or as 
        a quick start for the design work.</para>
        <para lang="de">
        	Es gibt dazu auch noch eine andere Seite und das ist die Reverse 
        	Engineering-Seite. Wenn wir ein altes Programm haben, dass wir 
        	vielleicht überprüfen wollen, dann können wir die Dateien nehmen und 
        	daraus mit Hilfe des Reverse Engineering ein Design erstellen. 
        	Das kann eingesetzt werden, wenn wir versuchen wollen, ein nicht so 
        	gut dokumentiertes Programm verstehen zu wollen oder als 
        	Schnelleinstieg in die Designarbeit.
        </para>

        <para lang="en">The process of going back and forth between doing changes 
        in the design followed by a code generation and then doing 
        changes in the code followed by a reverse engineering using for 
        every change, the best possible perspective, is called 
        Round-trip Engineering.</para>
        <para lang="de">
        	Der Prozess des vor- und zurückgehens zwischen den Änderungen im 
        	Design gefolgt von einer Codegenerierung und anschliessender 
        	Änderungen im Code gefolgt von einem Reverse Engineering bei jeder 
        	Änderung, die bestmögliche Perspektive, wird Round-trip Engineering 
        	genannt.
        </para>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Code Generation</phrase>
			<phrase lang="de">Codegenerierung</phrase>
		</title>

        <indexterm lang="en">
        	<primary>Code Generation</primary>
        </indexterm>
        <indexterm lang="de"><primary>Codegenerierung</primary></indexterm>
        <para lang="en">The output of the Code Generation is the completed 
        program. Depending on the contents of the design, we could also 
        generate Unit test cases.</para>
        <para lang="de">
        	Das Ergebnis der Codegenerierung ist das vollständige Programm. Je 
        	nach Inhalt des Designs, können wir auch Unit-Testfälle generieren.
        </para>

        <para lang="en">To do the work we need the design model, containing both 
        static and dynamic descriptions of the program.</para>
        <para lang="de">
        	Um dies tun zu können, benötigen wir das Designmodell, welches die 
        	statischen und dynamischen Aspekte des Programmes beinhaltet.
        </para>

        <sect2>

          <title>
			<phrase lang="en">Generating Code from the Static Structure</phrase>
			<phrase lang="de">
				Code aus der statischen Struktur generieren
			</phrase>
		  </title>

          <indexterm lang="en">
          	<primary>Generating Code</primary>
          	<secondary>from the Static Structure</secondary>
          </indexterm>
          <indexterm lang="de">
          	<primary>Code generieren</primary>
          	<secondary>aus der statischen Struktur</secondary>
          </indexterm>
          <para lang="en">

            It is rather straightforward to do this generation, at 
            least as long as we do it for an object-oriented language. 
            This is some of the basic rules:
            <itemizedlist>

              <listitem>

                <para lang="en">A class will become a class.</para>

                <para lang="en">In some target languages (like java, c++) they 
                also become files and compilation units.</para>

              </listitem>

              <listitem>

                <para lang="en">A generalization will become an 
                inheritance.</para>

                <para lang="en">If the target language does not support 
                inheritance and we didn&apos;t address this during the 
                design, some special conversions are required to solve 
                this.</para>

              </listitem>

              <listitem>

                <para lang="en">An attribute will become a member variable.</para>

              </listitem>

              <listitem>

                <para lang="en">A navigable association will become a member 
                variable.</para>

                <para lang="en">Depending on the target language, target 
                platform, and the association multiplicities this will 
                be a pointer, a reference, a collection class, an entry 
                in some table or map.</para>

              </listitem>

              <listitem>

                <para lang="en">A non-abstract operation in a class will become a 
                method.</para>

              </listitem>

              <listitem>

                <para lang="en">An abstract operation in a class will become an 
                abstract method.</para>

              </listitem>

              <listitem>

                <para lang="en">An in parameter in an operation will become a 
                parameter in the method.</para>

                <para lang="en">For simple types (int, boolean), this is the 
                normal case. For C++, these will probably const 
                classes. For Java, this cannot be enforced for 
                classes.</para>

              </listitem>

              <listitem>

                <para lang="en">An out or in/out parameter in an operation will 
                become a referenced parameter in the method.</para>

                <para lang="en">For C++, these will be referenced non-const 
                parameters. For Java classes, this is the default. 
                Simple types (int, boolean) must, in java, be converted 
                to an object of a corresponding class (Integer, 
                Boolean).</para>

              </listitem>

              <listitem>

                <para lang="en">The visibilities of the attributes, associations, 
                and operations will become visibilities on the member 
                variables or methods.</para>

              </listitem>

              <listitem>

                <para lang="en">Packages will become directories, namespaces, or 
                both.</para>

              </listitem>

            </itemizedlist>

          </para>
          <para lang="de">
			Es ist ziemlich unkompliziert, diese Generierung durchzuführen. 
			Zumindestens so lange wir es für eine objektorientierte Sprache tun.
			Dies sind einige der grundlegenden Regeln:
            <itemizedlist>

              <listitem>

                <para lang="de">Eine Klasse wird eine Klasse.</para>

                <para lang="de">
                	In einigen Zielsprachen (wie Java, C++) werden sie auch 
                	Dateien und Übersetzungseinheiten.
                </para>

              </listitem>

              <listitem>

                <para lang="de">
                	Eine Generalisierung wird zu einer Vererbung.
                </para>

                <para lang="de">
                	Wenn die Zielsprache keine Vererbung unterstützt und wir 
                	dies während des Design's nicht adressieren, sind einige 
                	spezielle Konvertierungen erforderlich, um dieses Problem 
                	zu lösen.
                </para>

              </listitem>

              <listitem>

                <para lang="de">Ein Attribut wird zu einer Membervariablen.</para>

              </listitem>

              <listitem>

                <para lang="de">
                	Eine navigierbare Assoziation wird eine Membervariable.
                </para>

                <para lang="de">
                	Abhängig von der Zielsprache, der Zielplattform und der 
                	Kardinalitäten der Assoziation wird dies ein Zeiger, eine 
                	Referenz, eine Collection-Klasse, ein Eintrag in einigen 
                	Tabellen oder Bitabbildungen (map) sein.
                </para>

              </listitem>

              <listitem>

                <para lang="de">
                	Eine nicht abstrakte Operation in einer Klasse wird zu einer 
                	Methode.
                </para>

              </listitem>

              <listitem>

                <para lang="de">
                	Eine abstrakte Operation in einer Klasse wird zu einer 
                	abstrakten Methode.
                </para>

              </listitem>

              <listitem>

                <para lang="de">
                	Ein Parameter in einer Operation wird zu einem Parameter in 
                	der Methode.
                </para>

                <para lang="de">
                	Bei einfachen Typen (int, boolean) ist dies der Normalfall.
                	In C++ werden diese wahrscheinlich Const-Klassen. In Java 
                	kann dies für Klassen nicht eingefordert werden.
                </para>

              </listitem>

              <listitem>

                <para lang="de">
                	Ein out- oder in/out-Parameter in einer Operation wird zu 
                	einem referenzierenden Parameter in der Methode.
                </para>

                <para lang="de">
                	In C++ werden dies referenzierende nicht-konstante Parameter. 
                	Bei Javaklassen ist dies der Standard. Einfache Typen (int, 
                	boolean) müssen in Java in ein Objekt einer 
                	korrespondierenden Klasse (Integer, Boolean) konvertiert 
                	werden.
                </para>

              </listitem>

              <listitem>

                <para lang="de">
                	Die Sichtbarkeit von Attributen, Assoziationen und 
                	Operationen werden zu Sichtbarkeit von Membervariablen oder 
                	Methoden.
                </para>

              </listitem>

              <listitem>

                <para lang="de">
                	Pakete werden Verzeichnisse, Namensräume oder beides.
                </para>

              </listitem>

            </itemizedlist>

          </para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">
				Code aus Interaktionen und Zustandsautomaten generieren
			</phrase>
		  </title>

          <indexterm lang="en">
          	<primary>Generating Code</primary>
          	<secondary>from Sequence Diagrams</secondary>
          </indexterm>
          <indexterm lang="de">
          	<primary>Code generieren</primary>
          	<secondary>aus Sequenzdiagrammen</secondary>
          </indexterm>
          <indexterm lang="en">
          	<primary>Generating Code</primary>
          	<secondary>from Interactions</secondary>
          </indexterm>
          <indexterm lang="de">
          	<primary>Code generieren</primary>
          	<secondary>aus Interaktionen</secondary>
          </indexterm>
          <indexterm lang="en">
          	<primary>Generating Code</primary>
          	<secondary>from Collaboration Diagrams</secondary>
          </indexterm>
          <indexterm lang="de">
          	<primary>Code generieren</primary>
          	<secondary>aus Kollaborationsdiagrammen</secondary>
          </indexterm>
          <indexterm lang="en">
          	<primary>Generating Code</primary>
          	<secondary>from Statechart Diagrams</secondary>
          </indexterm>
          <indexterm lang="de">
          	<primary>Code generieren</primary>
          	<secondary>aus Zustandsdiagrammen</secondary>
          </indexterm>
          <para lang="en">This conversion is not as straight-forward as the 
          conversion of the static structure. It is much more depending 
          on the target language and target platform.</para>
          <para lang="de">
          	Diese Konvertierung ist nicht so unkompliziert, wie die 
          	Konvertierung der statischen Struktur. Sie hängt sehr viel mehr 
          	von der Zielsprache und der Zielplattform ab.
          </para>

          <para lang="en">

            In general it is only possible to say the following for 
            interactions:
            <itemizedlist>

              <listitem>

                <para lang="en">A message is converted into a function 
                call.</para>

                <para lang="en">The class of the recipient will have to have a 
                function with the correct name and signature.</para>

                <para lang="en">The sender function in the class of the sender 
                will have a call to the function in the 
                recipient.</para>

              </listitem>

              <listitem>

                <para lang="en">An asynchronous message is converted to either 
                posting a message to be handled by some other thread or 
                a function call to a function that starts a new 
                thread.</para>

              </listitem>

            </itemizedlist>

          </para>
          <para lang="de">
			Generell ist es nur möglich, das Folgende zu Interaktionen zu sagen:
            <itemizedlist>

              <listitem>

                <para lang="de">
                	Eine Nachricht wird in einen Funktionsaufruf konvertiert.
                </para>

                <para lang="de">
                	Die Empfängerklasse wird eine Funktion mit dem richtigen 
                	Namen und der richtigen Signatur haben.
                </para>

                <para lang="de">
                	Die sendende Funktion in der Klasse eines Senders wird einen 
                	Funktionsaufruf auf eine Funktion des Empfängers aufweisen.
                </para>

              </listitem>

              <listitem>

                <para lang="de">
                	Eine asynchrone Nachricht wird entweder eine Nachricht 
                	senden, die durch einige andere Thread- oder 
                	Funktionsaufrufe verarbeitet werden, die einen neuen Thread 
                	starten.
                </para>

              </listitem>

            </itemizedlist>

          </para>

          <para lang="en">

            The following describes one possible way to generate state 
            machines:
            <itemizedlist>

              <listitem>

                <para lang="en">A State Machine is generated to a set of member 
                variables that each method in this class refer to when 
                deciding behavior.</para>

              </listitem>

              <listitem>

                <para lang="en">A State is generated to a closed set of 
                combination of values on these member variables.</para>

              </listitem>

              <listitem>

                <para lang="en">An Event is generated as a call to a member 
                method that can change the state.</para>

                <para lang="en">These methods would then typically have one big 
                switch statement splitting on the current state.</para>

              </listitem>

              <listitem>

                <para lang="en">A Guard is generated to an <symbol>if</symbol> 
                statement in the event member method in the branch for 
                the correct state.</para>

              </listitem>

              <listitem>

                <para lang="en">A Transition is generated as an assignment of 
                some state variable.</para>

              </listitem>

              <listitem>

                <para lang="en">An Action is generated as a function call.</para>

              </listitem>

            </itemizedlist>

          </para>
          <para lang="de">
			Das Folgende beschreibt einen möglichen Weg, Zustandsautomaten zu 
			generieren:
            <itemizedlist>

              <listitem>

                <para lang="de">
                	Ein Zustandsautomat wird in einen Satz von Membervariablen 
                	generiert, bei dem sich jede Methode in dieser Klasse auf 
                	das entscheidende Verhalten bezieht.
                </para>

              </listitem>

              <listitem>

                <para lang="de">
                	Ein Zustand wird zu einem zusammengehörenden Satz von Werten 
                	dieser Membervariablen generiert.
                </para>

              </listitem>

              <listitem>

                <para lang="de">
                	Ein Ereignis wird zu einem Aufruf auf eine Membermethode 
                	generiert, der den Zustand ändern kann.
                </para>

                <para lang="de">
                	Diese Methoden würden dann typischerweise eine grosse 
                	switch-Anweisung haben, aufgesplittet je nach aktuellem 
                	Zustand.
                </para>

              </listitem>

              <listitem>

                <para lang="de">
                	Ein Wächter wird, in dem Zweig des richtigen Zustandes, zu 
                	einer <symbol>if</symbol>-Anweisung in der Ereignis-
                	Membermethode generiert.
				</para>

              </listitem>

              <listitem>

                <para lang="de">
                	Eine Transition wird als Zuordnung auf einige 
                	Zustandsvariablen generiert.
                </para>

              </listitem>

              <listitem>

                <para lang="de">Eine Aktion wird als Funktionsaufruf generiert.</para>

              </listitem>

            </itemizedlist>

          </para>

        </sect2>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Code Generation in ArgoUML</phrase>
			<phrase lang="de">Codegenerierung in ArgoUML</phrase>
		</title>

        <sect2>

          <title>
			<phrase lang="en">Static Structure</phrase>
			<phrase lang="de">Statische Struktur</phrase>
		  </title>

          <para lang="en">Most of the generation can be done automatically by the 
          provided language modules. Files are generated in a directory 
          hierarchy that need to be filled in by the actual code.</para>
          <para lang="de">
          	Der grösste Teil der Generierung wird automatisch durch die 
          	ausgewählten Sprachmodule erledigt. Dateien, die benötigt werden, 
          	um den aktuellen Code aufzunehmen, werden in Verzeichnis-
          	hierarchien generiert.
          </para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Interactions and statechart diagrams</phrase>
			<phrase lang="de">Interaktionen und Zustandsdiagramme</phrase>
		  </title>

          <para lang="en">There is currently no support for this in ArgoUML, not 
          for any language.</para>
          <para lang="de">
          	Es gibt aktuell keine Unterstützung dafür in ArgoUML, für keine 
          	Sprache.
          </para>

        </sect2>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Reverse Engineering</phrase>
			<phrase lang="de">Reverse Engineering</phrase>
		</title>

        <indexterm lang="en">
        	<primary>Reverse Engineering</primary>
        </indexterm>
        <indexterm lang="de">
        	<primary>Umkehr-Engineering</primary>
        </indexterm>
        <para lang="en">

          Reverse Engineering is used for two main purposes:
          <orderedlist>

            <listitem>

              <para lang="en">To get previously developed classed into the model 
              to build upon.</para>

            </listitem>

            <listitem>

              <para lang="en">To get a UML view of previously developed classes 
              to understand how they work.</para>

            </listitem>

          </orderedlist>

        </para>
        <para lang="de">

          Reverse Engineering wird in zwei Fällen verwendet:
          <orderedlist>

            <listitem>

              <para lang="de">
              	Um die vorher entwickelte Klasse in das aufzubauende Modell zu 
              	bekommen.
              </para>

            </listitem>

            <listitem>

              <para lang="de">
              	Um eine UML-Darstellung der vorher entwickelten Klassen zu 
              	erhalten, damit man verstehen kann, wie diese arbeiten.
              </para>



            </listitem>

          </orderedlist>

        </para>

        <para lang="en">Essentially this does the opposite of Code 
        Generation.</para>
        <para lang="de">
        	Grundsätzlich führt dies eine umgekehrte Codegenerierung aus.
        </para>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Round-Trip Engineering</phrase>
			<phrase lang="de">Round-Trip Engineering</phrase>
		</title>

        <indexterm lang="en">
        	<primary>Round-Trip Engineering</primary>
        </indexterm>
        <indexterm lang="de">
        	<primary>Round-Trip Engineering</primary>
        </indexterm>
        <para lang="en">Round-Trip Engineering makes it possible to switch 
        perspective while doing the design. Create some classes in a 
        class diagram. Write some code for some of the operations or 
        functions using your favorite editor. Move the operations from 
        one class to another in the class diagram...</para>
        <para lang="de">
        	Round-Trip Engineering macht es möglich, die Perspektive
        	während des Entwurfes zu wechseln. Erstellen Sie einige
        	Klassen in einem Klassendiagramm. Schreiben Sie mit Hilfe
        	Ihres favorisierten Editors etwas Code für einige
        	Operationen oder Funktionen. Verschieben Sie die Operationen
        	im Klassendiagramm von einer Klasse in eine andere...
        </para>

        <para lang="en">ArgoUML currently does not support this for any 
        language.</para>
        <para lang="de">
        	Aktuell wird dies durch ArgoUML für keine Sprache unterstützt.
        </para>

      </sect1>

    </chapter>

  </part>

  <part>

    <title>
			<phrase lang="en">User Interface Reference</phrase>
			<phrase lang="de">Referenz Anwenderschnittstelle</phrase>
		</title>

    <chapter id="ch.ref.ui">

      <title>
			<phrase lang="en">Introduction</phrase>
			<phrase lang="de">Einleitung</phrase>
		</title>

      <para lang="en">This chapter describes the overall behavior of the user 
      interface. Description of the various component parts&mdash;the menu 
      bar, panes and various diagrams&mdash; is in separate chapters.</para>
      <para lang="de">
      	Dieses Kapitel beschreibt das gesamte Verhalten der 
      	Anwenderschnittstelle. Die Beschreibung der verschiedenen Teile der 
      	Komponenten, die Menüzeile, Fenster und verschiedene Diagramme 
      	befinden sich in separaten Kapiteln.
      </para>

      <sect1>

        <title>
			<phrase lang="en">Overview of the Window</phrase>
			<phrase lang="de">Überblick über das Fenster</phrase>
		</title>

        <para lang="en"><xref linkend="fig.ref.gui_overview"/> shows the main 
        ArgoUML window.</para>
        <para lang="de">
        	<xref linkend="fig.ref.gui_overview" />
        	zeigt das Hauptfenster von ArgoUML.
        </para>

        <para lang="en">The titlebar of the window shows the following 4 parts of 
        information, separated from each other by a dash.</para>
        <para lang="de">
        	Die Titelzeile des Fensters zeigt die folgenden 4 Informationen, 
        	jeweils getrennt voneinander duch einen Bindestrich.
        </para>

        <itemizedlist>

          <listitem>

            <para lang="en">The current filename. If no filename for the project 
            is set yet, then the titlebar shows 
            &quot;Unititled&quot;.</para>
            <para lang="de">
            	Den aktuellen Dateinamen. Ist noch kein Dateiname für das 
            	Projekt vergeben, dann wird in der Titelzeile 
            	<quote>Unbenannt</quote> angezeigt.
            </para>

          </listitem>

          <listitem>

            <para lang="en">The name of the currently active diagram.</para>
            <para lang="de">Der Name des aktuell aktiven Diagrammes.</para>

          </listitem>

          <listitem>

            <para lang="en">The name <quote>ArgoUML</quote>.</para>
            <para lang="de">Der Name <quote>ArgoUML</quote>.</para>

          </listitem>

          <listitem>

            <para lang="en">An asterisk (*). This item is only present if the 
            current project file is <quote>dirty</quote>, i.e. it is 
            altered, but not yet saved. In other words, if the asterisk 
            is absent, then the current file has not been 
            altered.</para>
            <para lang="de">
            	Ein Stern (*). Dieses Symbol ist nur vorhanden, wenn die 
            	aktuelle Projektdatei <quote>ungesichert</quote> ist. Z.B. sie 
            	wurde verändert, aber noch nicht gespeichert. Mit anderen 
            	Worten, fehlt der Stern, dann wurde die aktuelle Datei nicht 
            	verändert.
			</para>

          </listitem>

        </itemizedlist>

        <figure float="1" id="fig.ref.gui_overview">

          <title>
			<phrase lang="en">Overview of the ArgoUML window</phrase>
			<phrase lang="de">Überblick über die ArgoUML-Fenster</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/gui_overview.png"
           format="PNG"/></imageobject></mediaobject></screenshot>
        </figure>

        <para lang="en">At the top of screen is a <emphasis>menu bar</emphasis>, 
        which is described in <xref linkend="ch.ref.menu"/>. Below that 
        is the <emphasis>toolbar</emphasis>, as described in 
        <xref linkend="ch.ref.toolbar"/>.</para>
        <para lang="de">
        	Oben am Bildschirm befindet sich eine <emphasis>Menüzeile</emphasis>, 
        	die in <xref linkend="ch.ref.toolbar"/> beschrieben wird. Darunter 
        	ist die <emphasis>Symbolleiste</emphasis>, die in 
        	<xref linkend="ch.ref.toolbar"/> beschrieben wird.
        </para>

        <para lang="en">The bulk of the window comprises four sub-windows or 
        <emphasis>panes</emphasis>. Clockwise from top left these are 
        the <emphasis>explorer</emphasis> (see 
        <xref linkend="ch.ref.navpane"/>), <emphasis>editing 
        pane</emphasis> (see <xref linkend="ch.ref.editpane"/>), 
        <emphasis>details pane</emphasis> (see 
        <xref linkend="ch.ref.detpane"/>) and <emphasis>to-do 
        pane</emphasis> (see <xref linkend="ch.ref.todopane"/>). All 4 
        panes have a <emphasis>tool bar</emphasis> at the top (in the 
        <emphasis>details pane</emphasis> it is located under the 
        <emphasis>properties</emphasis> tab). An overview of the panes 
        is given in <xref linkend="s1.ref.panes"/>. Finally at the 
        bottom of the window is a <emphasis>status bar</emphasis> 
        described in <xref linkend="s1.ref.status"/>.</para>
        <para lang="de">
        	Der Fensterrumpf teilt sich in vier Subfenster oder <emphasis>Felder
        	</emphasis> auf. Von oben links im Uhrzeigersinn sind dies der 
        	<emphasis>Explorer</emphasis> (siehe 
        	<xref linkend="ch.ref.navpane"/>), 
        	<emphasis>das Editierfenster</emphasis> (siehe 
        	<xref linkend="ch.ref.editpane"/>), 
        	<emphasis>das Detailfenster</emphasis> (siehe 
        	<xref linkend="ch.ref.detpane"/>) und 
        	<emphasis>das <quote>Zu bearbeiten</quote>-Fenster</emphasis> (siehe 
        	<xref linkend="ch.ref.todopane"/>). Alle 4 Fenster haben oben eine 
        	<emphasis>Werkzeugleiste</emphasis> (im Detailfenster befindet sie 
        	sich unter dem <emphasis>Eigenschafts-</emphasis>Register. Einen 
        	Überblick über die Fenster finden Sie in 
        	<xref linkend="s1.ref.panes"/>. Im unteren Bereich des Fensters 
        	befindet sich eine <emphasis>Statuszeile</emphasis>, die in 
        	<xref linkend="s1.ref.status"/> beschrieben ist.
        </para>

      </sect1>

      <sect1 id="s1.ref.mouse">

        <title>
			<phrase lang="en">General Mouse Behavior in ArgoUML</phrase>
			<phrase lang="de">Generelles Verhalten der Maus in ArgoUML</phrase>
		</title>

        <para lang="en">Mouse behavior that is specific to the various panes of 
        ArgoUML (see <xref linkend="s1.ref.panes"/>) or the menu bar, 
        is discussed in the chapters covering those panes and the menu 
        bar. In this section we cover behavior that is general across 
        all of ArgoUML.</para>
        <para lang="de">
        	Das in verschiedenen Fenstern von ArgoUML (siehe 
        	<xref linkend="s1.ref.panes"/>) oder der Menüzeile vorhandene, 
        	spezifische Verhalten der Maus wird in den Kapiteln diskutiert, die
        	diese Fenster und die Menüzeile beschreiben. In diesem Abschnitt 
        	behandeln wir das Verhalten, das in ArgoUML generell anzutreffen 
        	ist.
        </para>

        <para lang="en">In a number of places in ArgoUML text may be directly 
        edited (for example the constraint editor&mdash;see 
        <xref linkend="s2.ref.details_constraint_editor"/>). The 
        behavior of the mouse when handling text is discussed in the 
        sections that follow.</para>
        <para lang="de">
        	An verschiedenen Stellen in ArgoUML muss Text direkt editiert 
        	werden (zum Beispiel im Randbedingungs-Editor; siehe 
        	<xref linkend="s2.ref.details_constraint_editor"/>). Das Verhalten 
        	der Maus beim Bearbeiten von Text wird in den nachfolgenden 
        	Abschnitten diskutiert.
        </para>

        <sect2>

          <title>
			<phrase lang="en">Mouse Button Terminology</phrase>
			<phrase lang="de">Maustasten-Terminologie</phrase>
		</title>

          <para lang="en">ArgoUML assumes a two button mouse. We will refer to 
          the buttons as <quote>button&nbsp;1</quote> and 
          <quote>button&nbsp;2</quote>. Button&nbsp;1 is the leftmost button on a 
          right-handed mouse, and sometimes referred to as the 
          <emphasis>select</emphasis> button. Button&nbsp;2 is the rightmost 
          button on a right-handed mouse, and is sometimes referred to 
          as the <emphasis>adjust</emphasis> button.</para>
          <para lang="de">
          	ArgoUML unterstellt eine Maus mit zwei Tasten. Wir beziehen uns auf 
          	die Tasten mit den Bezeichnungen <quote>Taste&nbsp;1</quote> und 
          	<quote>Taste&nbsp;2</quote>. Taste&nbsp;1 ist die linke Taste auf 
          	einer Rechtshänder-Maus und wird manchmal als 
          	<emphasis>Auswahl</emphasis>-Taste bezeichnet. Taste&nbsp;2 ist die 
          	rechte Taste auf einer Rechtshänder-Maus und wird manchmal als 
          	<emphasis>Einstell-</emphasis>-Taste bezeichnet.
          </para>

          <para lang="en">A single depress and release of a mouse button with the 
          mouse is referred to as a <emphasis>click</emphasis>. Two 
          clicks in quick succession is referred to as a 
          <emphasis>double click</emphasis>. Moving the mouse while 
          holding a button down is referred to as <emphasis>button 
          motion</emphasis> with the starting point being at 
          <emphasis>button down</emphasis> and the end point at 
          <emphasis>button up</emphasis>.</para>
          <para lang="de">
          	Ein einfaches Drücken und Loslassen der Maustaste wird als 
          	<emphasis>Klick</emphasis> bezeichnet. Zwei Klicks in schneller 
          	Abfolge wird als <emphasis>Doppelklick</emphasis> bezeichnet. Das 
          	Bewegen der Maus während eine Taste gedrückt ist, wird als 
          	<emphasis>Tastenbewegung</emphasis> bezeichnet, mit einem Startpunkt 
          	bei <emphasis>Taste gedrückt</emphasis> und einem Endpunkt bei 
          	<emphasis>Taste losgelassen</emphasis>.
          </para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Button&nbsp;1 Click</phrase>
			<phrase lang="de">Taste&nbsp;1 Klick</phrase>
		  </title>

          <para lang="en">Clicking on an user-interface object or on a diagram 
          model element may establish many different things. Most of the 
          behaviour is experienced quite intuitive by the user, mainly 
          because the high degree of standardisation, even spanning 
          different computer platforms (Macintosh, PC, UNIX,...). 
          ArgoUML follows the <emphasis>Java Look and Feel Design 
          Guidelines</emphasis> by Sun. See 
          <ulink url="http://java.sun.com/products/jlf/"/>. Hence, 
          behaviour of common user-interface components is generally 
          not discussed in this document.</para>
          <para lang="de">
          	Das Klicken auf ein Objekt der Anwenderschnittstelle oder auf ein 
          	Modellelement eines Diagrammes kann unterschiedliche Dinge auslösen. 
          	Der größte Teil des Verhaltens ist für den Anwender erfahrungsgemäß 
          	vollständig intuitiv. Hauptsächlich wegen des hohen Grades an 
          	Standardisierung, auch plattformübergreifend (Macintosh, PC, 
          	UNIX,...). ArgoUML befolgt die <emphasis>Java Look and Feel Design- 
          	Richtlinien</emphasis> von Sun. Siehe 
          	<ulink url="http://java.sun.com/products/jlf/"/>. Daraus folgt, 
          	dass das Verhalten von allgemeinen Komponenten der 
          	Anwenderschnittstelle in diesem Dokument generell nicht diskutiert 
          	wird. 
          </para>

          <para lang="en">On the other hand, mouse actions in a diagram may not 
          seem so intuitive to the user, since it is specific for 
          ArgoUML. Hence they are explained here. In short, clicking 
          selects or activates the object beneath the mouse-pointer, 
          and moves the focus (i.e. navigation).</para>
          <para lang="de">
          	Auf der anderen Seite können Mausaktionen in einem Diagramm für 
          	den Anwender nicht so intuitiv erscheinen, da sie spezifisch für 
          	ArgoUML sind. Deshalb werden sie hier erläutert. In Kürze: klicken 
          	markiert oder aktiviert das Objekt nahe des Mauszeigers und 
          	verschiebt den Fokus (z.B. Navigation).
          </para>

          <para lang="en">More in detail, the button&nbsp;1 click may cause the 
          following result:</para>
          <para lang="de">
          	Noch detaillierter: der Taste&nbsp;1-Klick kann die folgenden 
          	Ergebnisse verursachen:
          </para>

          <sect3>

            <title>
				<phrase lang="en">Selection</phrase>
				<phrase lang="de">Auswahl</phrase>
			</title>

            <para lang="en">Here button&nbsp;1 is used to choose (select) a model element 
            (in a list or tree or on a diagram) on which subsequent 
            operations will take place. Multiple model elements may be 
            selected by using Shift and/or Ctrl in combination with 
            button&nbsp;1, see <xref linkend="s2.ref.mouse.shift_control"/>. 
            Selection is always clearly indicated by a colored 
            background.</para>
            <para lang="de">
            	Hier wird die Taste&nbsp;1 dazu verwendet, ein Modellelement 
            	(aus einer Liste oder einer Baumstruktur oder aus einem 
            	Diagramm) auszuwählen (zu markieren), auf das die darauf 
            	folgenden Operationen angewendet werden sollen. Mehrere 
            	Modellelemente können durch eine Umschalt- und/oder Strg-
            	Kombination mit der Taste&nbsp;1 ausgewählt werden, siehe
				<xref linkend="s2.ref.mouse.shift_control"/>.
				Die Markierung wird immer durch einen eingefärbten Hintergrund 
				klar angezeigt. 
            </para>

            <para lang="en">On a diagram, the selected model element is indicated with 
            colored &quot;blocks&quot; at the corners/ends of the 
            object. Model elements can be selected or deselected in 
            different ways:</para>
            <para lang="de">
            	In einem Diagramm werden die markierten Modellelemente durch 
            	farbige <quote>Vierecke</quote> an den Ecken/Enden des Objektes 
            	dargestellt. Modellelemente können auf unterschiedlichen Wegen 
            	markiert oder dessen Markierung aufgehoben werden:
            </para>

            <itemizedlist>

              <listitem>

                <para lang="en">Button&nbsp;1 click. Deselects all model elements, and 
                selects the one clicked on.</para>
                <para lang="de">
                	Taste&nbsp;1-Klick. Entfernt die Markierung aller 
                	Modellelemente und markiert das angeklickte Element. 
                </para>

              </listitem>

              <listitem>

                <para lang="en">Button&nbsp;1 motion. Button motion (moving the mouse 
                with the button down) in the diagram, not on any 
                model element, allows to draw a rectangle around model elements 
                which will be selected when the button&nbsp;1 is 
                released.</para>
                <para lang="de">
                	Taste&nbsp;1-Bewegung. Das Bewegen der Maus mit gedrückter 
                	Taste erlaubt in einem Diagramm, nicht mit einem 
                	Modellelement, das Zeichnen eines Rechteckes um die 
                	Modellelemente, die markiert werden, wenn die Taste&nbsp;1 
                	losgelassen wird. 
                </para>

              </listitem>

              <listitem>

                <para lang="en">Menu functions and shortcuts. Many menu 
                operations change selection as side-effect, e.g. 
                creating a new diagram. Many keyboard shortcuts for 
                menu operations change the selection, e.g. Ctrl-A, 
                which stands for the <literal>Select All</literal> 
                function.</para>
                <para lang="de">
                	Menüfunktionen und Tastenkürzel. Viele Menüoperationen 
                	verändern die Markierung als Seiteneffekt. Zum Beispiel 
                	beim erstellen eines neuen Diagrammes. Viele Tastenkürzel 
                	für Menüoperationen ändern die Markierung, z. B. Strg-A, 
                	die für die Funktion <literal>Markiere alles</literal> steht.
                </para>

              </listitem>

            </itemizedlist>

          </sect3>

          <sect3>

            <title>
				<phrase lang="en">Activation</phrase>
				<phrase lang="de">Aktivierung</phrase>
			</title>

            <para lang="en">Here button&nbsp;1 is used to activate the user interface 
            component, e.g. a button. The object is usually highlighted 
            when the mouse button is pressed and then activated when 
            the mouse button is released. Activating an user-interface 
            object means that its function is executed.</para>
            <para lang="de">
            	Hier wird die Taste&nbsp;1 dazu verwendet, die Komponente der 
            	Anwenderschnittstelle zu aktivieren. Z.B. eine Schaltfläche. Das 
            	Objekt wird gewöhnlich hervorgehoben, wenn die Maustaste 
            	gedrückt und dann aktiviert, wenn die Maustaste losgelassen wird.
            	Ein Objekt der Anwenderschnittstelle aktivieren bedeutet, dass 
            	dessen Funktion ausgeführt wird.
            </para>

          </sect3>

          <sect3>

            <title>
				<phrase lang="en">Navigation</phrase>
				<phrase lang="de">Navigation</phrase>
			</title>

            <para lang="en">Here button&nbsp;1 is used to move the focus from one user 
            interface component or diagram model element to another. It is 
            better known under the term keyboard focus. This because 
            keyboard commands usually work on the model element that has the 
            focus. The focus is indicated by a (hardly visible) box 
            around the model element, or for a text entry box, by a flashing 
            cursor.</para>
            <para lang="de">
            	Hier wird die Taste&nbsp;1 dazu verwendet, den Fokus von einer 
            	Komponente der Anwenderschnittstelle oder eines Modellelementes 
            	eines Diagrammes auf ein anderes zu verändern. Dies ist unter 
            	dem Begriff Tastaturfokus besser bekannt, weil Tastaturkommandos 
            	gewöhnlich auf Modellelemente wirken, die den Fokus haben. Der 
            	Fokus wird durch einen (hart sichtbaren) Rahmen um das 
            	Modellelement, oder bei einem Texteingabefeld durch einen 
            	blinkenden Cursor dargestellt.
            </para>

          </sect3>

          <sect3>

            <title>
				<phrase lang="en">General Behavior When Editing Text</phrase>
				<phrase lang="de">
					Generelles Verhalten beim Editieren von Text
				</phrase>
			</title>

            <para lang="en">Here button&nbsp;1 is used to select the point within the 
            text at which operations (text entry and deletion) will 
            take place.</para>
            <para lang="de">
            	Hier wird Taste&nbsp;1 dazu verwendet, die Stelle innerhalb des 
            	Textes zu markieren, an dem die Operation (Text hinzufügen und 
            	löschen) ausgeführt werden soll.
            </para>

          </sect3>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Button&nbsp;1 Double Click</phrase>
			<phrase lang="de">Taste&nbsp;1-Doppelklick</phrase>
		  </title>

          <para lang="en">The behavior of button&nbsp;1 double click varies betweens 
          panes and is discussed in their chapters.</para>
          <para lang="de">
          	Das Verhalten des Taste&nbsp;1-Doppelklicks variiert in den 
          	einzelnen Fenstern und wird in den zugehörigen Kapiteln behandelt.
          </para>

          <sect3>

            <title>
				<phrase lang="en">General Behavior When Editing Text</phrase>
				<phrase lang="de">
					Generelles Verhalten beim Editieren von Text
				</phrase>
			</title>

            <para lang="en">Here button&nbsp;1 double click is used to select a 
            complete word, or other syntactic unit within the text. 
            Subsequent operations (text entry and deletion) will 
            replace the selected text.</para>
            <para lang="de">
            	Hier wird der Taste&nbsp;1-Doppelklick dazu verwendet, ein 
            	vollständiges Wort oder eine andere syntaktische Einheit 
            	innerhalb des Textes zu markieren. Nachfolgende Operationen 
            	(Text einfügen und löschen) werden den markierten Text 
            	ersetzen.
            </para>

          </sect3>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Button&nbsp;1 Motion</phrase>
			<phrase lang="de">Taste&nbsp;1-Bewegung</phrase>
		  </title>

          <sect3>

            <title>
				<phrase lang="en">General Behavior When Editing Text</phrase>
				<phrase lang="de">
					Generelles Verhalten beim Editieren von Text
				</phrase>
		    </title>

            <para lang="en">Here button&nbsp;1 motion is used to select a range of 
            text. Subsequent operations (text entry and deletion) will 
            replace the selected text.</para>
            <para lang="de">
            	Hier wird die Taste&nbsp;1-Bewegung verwendet, um einen 
            	Textbereich zu markieren. Nachfolgende Operationen (Text 
            	einfügen und löschen) werden den markierten Text ersetzen.
            </para>

          </sect3>

        </sect2>

        <sect2 id="s2.ref.mouse.shift_control">

          <title>
			<phrase lang="en">Shift and Ctrl modifiers with Button&nbsp;1</phrase>
			<phrase lang="de">Umschalt- und Strg- und die Taste&nbsp;1</phrase>
		  </title>

          <sect3>

            <title>
				<phrase lang="en">Within Lists</phrase>
				<phrase lang="de">Innerhalb von Listen</phrase>
			</title>

            <para lang="en">This behavior applies where there is a list of things 
            that may be selected. This includes various dialog boxes, 
            and the to-do pane, where there is a list of to-do items to 
            be selected.</para>
            <para lang="de">
            	Dieses Verhalten tritt auf, wo es Listen mit Dingen gibt, die 
            	markiert werden dürfen. Dies schliesst verschiedene 
            	Dialogfenster und das <quote>Zu bearbeiten</quote>-Fenster ein, 
            	wo es eine Liste von <quote>zu bearbeitenden</quote> Elementen 
            	gibt, die zu markieren sind.
            </para>

            <para lang="en">Where selections are to be made, the SHIFT key is 
            used to with button&nbsp;1 to <emphasis>extend</emphasis> from 
            the original button&nbsp;1 selection to the current 
            position.</para>
            <para lang="de">
            	Dort, wo markiert werden muss wird die Umschalttaste mit der 
            	Taste&nbsp;1 verwendet, um die Markierung von der ursprünglichen 
            	Taste&nbsp;1-Markierung zur aktuellen Position zu 
            	<emphasis>erweitern</emphasis>.
			</para>

            <para lang="en">Similarly the CTRL key with button&nbsp;1 is used to 
            add individual items to the current selection. Where 
            Ctrl-button&nbsp;1 is used on an item already selected, that 
            item is removed from the selection.</para>
            <para lang="de">
            	Die Strg-Taste und die Taste&nbsp;1 wird ähnlich verwendet, um 
            	individuelle Elemente der aktuellen Markierung hinzuzufügen. 
            	Wird Strg-Taste&nbsp;1 auf einem bereits markierten Element 
            	verwendet, wird das Element aus der Markierung entfernt.
            </para>

            <caution>

              <para lang="en">Users of Microsoft Windows might be familiar with 
              the use of SHIFT-CTRL-Click (i.e. holding both the 
              Shift and Ctrl key down when clicking), to add 
              sub-lists to an existing selection. ArgoUML does not 
              support this. SHIFT-CTRL-Click will behave as 
              CTRL-Click.</para>
              <para lang="de">
              	Anwender von Microsoft Windows könnten mit dem Gebrauch des 
              	Umschalt-Strg-Klick vertraut sein (z.B. Umschalt- und Strg-Taste 
              	während des klickens gedrückt halten), um der existierenden 
              	Markierung Sublisten hinzuzufügen. ArgoUML unterstützt dies 
              	nicht. Umschalt-Strg-Klicks wirken wie Strg-Klicks.
              </para>

            </caution>

          </sect3>

          <sect3>

            <title>
				<phrase lang="en">General Behavior When Editing Text</phrase>
				<phrase lang="de">
					Generelles Verhalten beim Editieren von Text
				</phrase>
			</title>

            <para lang="en">In a number of places in ArgoUML text may be directly 
            edited (for example when naming a model&mdash;element in the 
            properties pane, or when typing a UML note / comment). Here 
            SHIFT button&nbsp;1 is used to select a range of text from the 
            previously selected point. Subsequent operations (text 
            entry and deletion) will replace the selected text.</para>
            <para lang="de">
            	In verschiedenen Fällen kann Text in ArgoUML direkt editiert 
            	werden (zum Beispiel beim Benennen eines Modellelementes im 
            	Eigenschaftsregister oder bei der Eingabe eines UML-Hinweises/
            	-Kommentares. Hier wird Umschalt-Taste&nbsp;1 verwendet, um 
            	ausgehend von einem vorher markierten Punkt einen Textbereich zu 
            	markieren. Nachfolgende Operationen (Text einfügen und löschen) 
            	werden den markierten Text ersetzen.
            </para>

          </sect3>

        </sect2>

        <sect2 id="s2.ref.mouse.alt">

          <title>
			<phrase lang="en">Alt with Button&nbsp;1: Panning</phrase>
			<phrase lang="de">Alt mit Taste&nbsp;1: Verschieben</phrase>
		  </title>

          <para lang="en">When holding down the Alt key during button&nbsp;1 down on a 
          diagram, movement of the mouse pans the drawing area. The 
          function is indicated by the mousepointer which turns into a 
          crosshair with arrows.</para>
          <para lang="de">
          	Wenn Sie die Alt Gr-Taste gedrückt halten, während Sie die 
          	Taste&nbsp;1 in einem Diagramm drücken, wird die Bewegung der Maus 
          	den Zeichenbereich verschieben. Diese Funktion wird durch den 
          	Mauszeiger angezeigt, der zu einer Kreuz mit Pfeilen-Darstellung 
          	wechselt.
          </para>

        </sect2>
        
        <sect2 id="s2.ref.mouse.ctrl">

          <title>
			<phrase lang="en">Ctrl with Button&nbsp;1: Constrained Drag</phrase>
			<phrase lang="de">Strg mit Taste&nbsp;1: Bedingtes ziehen</phrase>
		  </title>

          <para lang="en">When holding down the Ctrl key while dragging with 
          mouse button&nbsp;1 down on a diagram, the movement of the dragged
          element element will be constrained to one of eight 
          cardinal directions : North, South, East, West, NE, SE, SW, NW.
          </para>
          <para lang="de">
          	Wenn Sie die Strg-Taste herunterdrücken, während Sie mit der 
          	gedrückten Maustaste&nbsp;1 auf ein Diagramm ziehen, wird die 
          	Bewegung des gezogenen Elementes bedingt in eine der acht 
          	grundsätzlichen Richtungen erfolgen: Norden, Süden, Osten, Westen, 
          	Nordosten, Südosten, Südwesten, Nordwesten.
          </para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Button&nbsp;2 Actions</phrase>
			<phrase lang="de">Taste&nbsp;2-Aktionen</phrase>
		  </title>

          <para lang="en">Button&nbsp;2 actions are all dependent on the pane or menu 
          bar, and discussed in their various chapters.</para>
          <para lang="de">
          	Taste&nbsp;2-Aktionen sind alle vom Fenster oder der Menüzeile 
          	abhängig und werden in den jeweiligen Kapiteln behandelt.
          </para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Button&nbsp;2 Double Click</phrase>
			<phrase lang="de">Taste&nbsp;2-Doppelklick</phrase>
		  </title>

          <para lang="en">Button&nbsp;2 actions are all dependent on the pane or menu 
          bar, and discussed in their various chapters.</para>
          <para lang="de">
          	Taste&nbsp;2-Aktionen sind alle vom Fenster oder der Menüzeile 
          	abhängig und werden in den jeweiligen Kapiteln behandelt.
          </para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Button&nbsp;2 Motion</phrase>
			<phrase lang="de">Taste&nbsp;2-Bewegung</phrase>
		  </title>

          <para lang="en">Button&nbsp;2 actions are all dependent on the pane or menu 
          bar, and discussed in their various chapters.</para>
          <para lang="de">
          	Taste&nbsp;2-Aktionen sind alle vom Fenster oder der Menüzeile 
          	abhängig und werden in den jeweiligen Kapiteln behandelt.
          </para>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.panes">

        <title>
			<phrase lang="en">General Information About Panes</phrase>
			<phrase lang="de">Generelle Informationen über Fenster</phrase>
		</title>

        <para lang="en">The four sub-windows of the main ArgoUML window are 
        called <emphasis>panes</emphasis>. Clockwise from top left 
        these are the <emphasis>explorer</emphasis> (see 
        <xref linkend="ch.ref.navpane"/>), <emphasis>editing 
        pane</emphasis> (see <xref linkend="ch.ref.editpane"/>), 
        <emphasis>details pane</emphasis> (see 
        <xref linkend="ch.ref.detpane"/>) and <emphasis>to-do 
        pane</emphasis> (see <xref linkend="ch.ref.todopane"/>). At the 
        top the editing pane is a <emphasis>tool bar</emphasis>.</para>
        <para lang="de">
        	Die vier Sub-Fenster des ArgoUML-Hauptfensters werden 
        	<emphasis>Fenster</emphasis> genannt. Von oben links im 
        	Uhrzeigersinn sind dies der <emphasis>Explorer</emphasis> (siehe 
        	<xref linkend="ch.ref.navpane"/>), <emphasis>das Editierfenster 
        	</emphasis> (siehe <xref linkend="ch.ref.editpane"/>), 
        	<emphasis>das Detailfenster</emphasis> (siehe 
        	<xref linkend="ch.ref.detpane"/>) und <emphasis>das 
        	<quote>Zu bearbeiten</quote>-Fenster</emphasis> (siehe 
        	<xref linkend="ch.ref.todopane"/>). Oben im Editierfenster gibt es 
        	eine <emphasis>Werkzeugleiste</emphasis>.
        </para>

        <sect2>

          <title>
			<phrase lang="en">Re-sizing Panes</phrase>
			<phrase lang="de">Fenstergrösse verändern</phrase>
		  </title>

          <para lang="en">You can re-size panes by dragging on the divider bars 
          between them. To indicate this possibility, the mouse cursor 
          changes shape when hovering over the divider bars.</para>
          <para lang="de">
          	Sie können die Fenstergrösse verändern, indem Sie die Trennbalken 
          	zwischen den Fenstern verschieben. Um diese Möglichkeit anzuzeigen, 
          	wechselt die Mausdarstellung, wenn sie sich über den Trennbalken 
          	befindet.
          </para>

          <para lang="en">In addition you will see there are two small left 
          pointing arrows within the vertical divider bars, one at the 
          top of the vertical divider bar between explorer and editing 
          pane and one at the top of the vertical divider bar between 
          to-do pane and details pane. Button&nbsp;1 click on the first of 
          these will expand the editing pane to the full width of the 
          window, button&nbsp;1 click on the second will expand the details 
          pane to the full width of the window.</para>
          <para lang="de">
          	Darüber hinaus gibt es zwei kleine nach links zeigende Pfeile in 
          	den vertikalen Trennbalken, einer im oberen Bereich des Trennbalkens, 
          	zwischen dem Explorer und dem Editierfenster und einen im oberen 
          	Bereich des vertikalen Trennbalkens zwischen dem <quote>Zu 
          	bearbeiten</quote>- und dem Detailfenster. Ein Taste&nbsp;1-Klick 
          	auf den ersten von ihnen erweitert das Editierfenster bis zur vollen 
          	Breite des Fensters, der Taste&nbsp;1-Klick auf den zweiten 
          	erweitert das Detailfenster auf die volle Breite des Fensters.
          </para>

          <para lang="en">There is also a small downward pointing arrow within 
          the horizontal divider bar at its leftmost end. Clicking on 
          this will expand the explorer and editing panes to the full 
          depth of the window.</para>
          <para lang="de">
          	Es gibt ebenso kleine nach unten gerichtete Pfeile in den 
          	horizontalen Trennbalken, jeweils am linken Ende. Klicken auf diese 
          	Pfeile wird den Explorer und das Editierfenster auf die volle Höhe 
          	des Fensters erweitern.
          </para>

          <para lang="en">By using both the top arrow on the vertical divider and 
          the arrow on the horizontal divider, it is possible to expand 
          the editing pane to use the entire window.</para>
          <para lang="de">
          	Durch die Verwendung des oberen Pfeile der vertikalen Trennbalken 
          	und des Pfeiles des horizontalen Trennbalkens ist es möglich, das 
          	Editierfenster auf das gesamte Fenster zu erweitern.
          </para>

          <para lang="en">The original configuration can be restored by clicking 
          again on these arrows, which are now located at the edge of 
          the window.</para>
          <para lang="de">
          	Die ursprüngliche Konfiguration kann durch erneutes Klicken auf 
          	diese Pfeile wiederhergestellt werden, die sich jetzt am Rand des 
          	Fensters befinden.
          </para>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.status">

        <title>
			<phrase lang="en">The status bar</phrase>
			<phrase lang="de">Die Statuszeile</phrase>
		</title>

        <para lang="en">The status bar is at the very bottom of the ArgoUML 
        window and is used to display short advisory messages. In 
        general such messages are self explanatory. It is e.g. used for 
        displaying parsing error messages in case a text entered on the 
        diagram can not be interpreted.</para>
        <para lang="de">
        	Die Statuszeile befindet sich am unteren Rand des ArgoUML-Fensters 
        	und wird dazu verwendet, kurzes Hinweisnachrichten anzuzeigen. 
        	Normalerweise sind diese Nachrichten selbsterklärend. Sie wird z. B. 
        	für die Anzeige von Parsing-Fehlermeldungen verwendet, wenn ein 
   			in ein Diagramm eingegebener Text nicht interpretiert werden kann.
        </para>

      </sect1>

    </chapter>

    <chapter id="ch.ref.toolbar">

      <title>
			<phrase lang="en">The Toolbar</phrase>
			<phrase lang="de">Die Symbolleiste</phrase>
		</title>

      <section>

        <title>
			<phrase lang="en">File operations</phrase>
			<phrase lang="de">Dateioperationen</phrase>
		</title>

        <para lang="en">These buttons have identical functions as their 
        counterparts in the <literal>File</literal> menu.</para>
        <para lang="de">
        	Diese Schaltflächen haben wie ihre Gegenstücke im Menü 
        	<literal>Datei</literal> identische Funktionen.
		</para>

        <itemizedlist>

          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center" fileref="images/icons/new.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>New</literal> See for a full description 
            <xref linkend="s2.ref.menu_new"/>.</para>
            <para lang="de">
	            <guiicon>
	            	<inlinemediaobject>
	            		<imageobject>
	            			<imagedata align="center"
	            				fileref="images/icons/new.gif" format="GIF" />
	            		</imageobject>
	            	</inlinemediaobject>
	            </guiicon>
	            <literal>Neu</literal> Siehe vollständige Beschreibung unter 
	            <xref linkend="s2.ref.menu_new"/>.
            </para>

          </listitem>

          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center"
             fileref="images/icons/open_project.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>Open Project...</literal> See for a full 
            description <xref linkend="s2.ref.menu_open_project"/>
            .</para>
            <para lang="de">
	            <guiicon>
	            	<inlinemediaobject>
	            		<imageobject>
	            			<imagedata align="center"
	            				fileref="images/icons/open_project.gif" format="GIF" />
	            		</imageobject>
	            	</inlinemediaobject>
	            </guiicon>
	            <literal>Projekt öffnen...</literal> Siehe vollständige 
	            Beschreibung unter <xref linkend="s2.ref.menu_open_project"/>
            .</para>

          </listitem>

          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center"
             fileref="images/icons/save_project.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>Save Project</literal> See for a full description 
            <xref linkend="s2.ref.menu_save_project"/>.</para>
            <para lang="de">
	            <guiicon>
	            	<inlinemediaobject>
	            		<imageobject>
	            			<imagedata align="center"
	            				fileref="images/icons/save_project.gif" format="GIF" />
	            		</imageobject>
	            	</inlinemediaobject>
	            </guiicon>
	            <literal>Projekt speichern</literal> Siehe vollständige 
	            Beschreibung unter<xref linkend="s2.ref.menu_save_project"/>.
	        </para>

          </listitem>

          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center" fileref="images/icons/properties.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>Project Properties</literal> 
            See for a full description
            <xref linkend="s2.ref.menu_properties"/>.
            </para>
            <para lang="de">
            	<guiicon>
            		<inlinemediaobject>
            			<imageobject>
            				<imagedata align="center" fileref="images/icons/properties.gif"
             						   format="GIF"/>
             			</imageobject>
             		</inlinemediaobject>
             	</guiicon> 
            <literal>Projekt-Eigenschaften</literal> 
            Siehe vollständige Beschreibung unter
            <xref linkend="s2.ref.menu_properties"/>.
            </para>

          </listitem>

          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center" fileref="images/icons/print.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>Print</literal> See for a full description 
            <xref linkend="s2.ref.menu_print"/>.</para>
            <para lang="de">
	            <guiicon>
	            	<inlinemediaobject>
	            		<imageobject>
	            			<imagedata align="center" 
	            			fileref="images/icons/print.gif" format="GIF" />
	            		</imageobject>
	            	</inlinemediaobject>
	            </guiicon>
	            <literal>Drucken</literal> Siehe vollständige 
		            Beschreibung unter <xref linkend="s2.ref.menu_print"/>.
            </para>

          </listitem>

        </itemizedlist>

      </section>

      <section>

        <title>
			<phrase lang="en">Edit operations</phrase>
			<phrase lang="de">Editieroperationen</phrase>
		</title>

        <para lang="en">These buttons have identical functions as their 
        counterparts in the <literal>Edit</literal> menu.</para>
		<para lang="de">
			Diese Schaltflächen haben mit Ihren Gegenstücken im Menü 
			<literal>Bearbeiten</literal> identische Funktionen.
		</para>

        <itemizedlist>

<!--      <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center" fileref="images/icons/cut.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>Cut</literal> See for a full description 
            <xref linkend="s2.ref.menu_cut"/>.</para>

          </listitem>

          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center" fileref="images/icons/copy.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>Copy</literal> See for a full description 
            <xref linkend="s2.ref.menu_copy"/>.</para>

          </listitem>

          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center" fileref="images/icons/paste.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>Paste</literal> See for a full description 
            <xref linkend="s2.ref.menu_paste"/>.</para>

          </listitem>
-->
          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center"
             fileref="images/icons/remove_from_diagram.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>Remove From Diagram</literal> See for a full 
            description 
            <xref linkend="s2.menu_edit_remove_from_diagram"/>.</para>
            <para lang="de">
	            <guiicon>
	            	<inlinemediaobject>
	            		<imageobject>
	            			<imagedata align="center"
	            				fileref="images/icons/remove_from_diagram.gif"
	            				format="GIF" />
	            		</imageobject>
	            	</inlinemediaobject>
	            </guiicon>
	            <literal>Aus Diagramm entfernen</literal> Siehe vollständige 
		        Beschreibung unter 
	            <xref linkend="s2.menu_edit_remove_from_diagram"/>.
            </para>

          </listitem>

          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center"
             fileref="images/icons/delete_from_model.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>Delete From Model</literal> See for a full 
            description 
            <xref linkend="s2.menu_edit_delete_from_model"/>.</para>
            <para lang="de">
            	<guiicon>
            		<inlinemediaobject>
            			<imageobject>
            				<imagedata align="center"
             					fileref="images/icons/delete_from_model.gif"
             					format="GIF"/>
             				</imageobject>
             			</inlinemediaobject>
             		</guiicon> 
            	<literal>Aus Modell entfernen</literal> Siehe vollständige 
		        Beschreibung unter 
            	<xref linkend="s2.menu_edit_delete_from_model"/>.
            </para>

          </listitem>

          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center"
             fileref="images/icons/configure_perspectives.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>Configure Perspectives</literal> See for a full 
            description 
            <xref linkend="s2.menu_edit_configure_perspectives"/>.</para>
            <para lang="de">
            	<guiicon>
            		<inlinemediaobject>
            			<imageobject>
            				<imagedata align="center"
             					fileref="images/icons/configure_perspectives.gif"
             					format="GIF"/>
             				</imageobject>
             			</inlinemediaobject>
             		</guiicon> 
            	<literal>Perspektiven konfigurieren</literal> Siehe vollständige 
		        Beschreibung unter 
            	<xref linkend="s2.menu_edit_configure_perspectives"/>.
            </para>

          </listitem>

          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center"
             fileref="images/icons/settings.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>Settings</literal> See for a full 
            description 
            <xref linkend="s2.ref.menu_settings"/>.</para>
            <para lang="de">
            	<guiicon>
            		<inlinemediaobject>
            			<imageobject>
            				<imagedata align="center"
             					fileref="images/icons/settings.gif"
             					format="GIF"/>
             				</imageobject>
             			</inlinemediaobject>
             		</guiicon> 
            	<literal>Einstellungen</literal> Siehe vollständige 
		        Beschreibung unter 
            	<xref linkend="s2.ref.menu_settings"/>.
            </para>

          </listitem>

<!-- 
          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center"
             fileref="images/icons/navigate_back.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>Navigate Back</literal> See for a full description 
            <xref linkend="s2.ref.menu_select"/>.</para>
            <para lang="de">
	            <guiicon>
	            	<inlinemediaobject>
	            		<imageobject>
	            			<imagedata align="center"
		            		fileref="images/icons/navigate_back.gif" format="GIF" />
		            	</imageobject>
	            	</inlinemediaobject>
	            </guiicon>
	            <literal>Zurück</literal> Siehe vollständige Beschreibung 
	            unter <xref linkend="s2.ref.menu_select"/>.
            </para>

          </listitem>

          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center"
             fileref="images/icons/navigate_forward.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>Navigate Forward</literal> See for a full 
            description <xref linkend="s2.ref.menu_select"/>.</para>
            <para lang="de">
	            <guiicon>
	            	<inlinemediaobject>
	            		<imageobject>
	            			<imagedata align="center"
	            				fileref="images/icons/navigate_forward.gif"
	            				format="GIF" />
	            		</imageobject>
	            	</inlinemediaobject>
	            </guiicon>
	            <literal>Vorwärts</literal> Siehe vollständige Beschreibung 
	            unter <xref linkend="s2.ref.menu_select"/>.
            </para>

          </listitem>
 -->
 
        </itemizedlist>

      </section>

      <section>

        <title>
			<phrase lang="en">View operations</phrase>
			<phrase lang="de">Ansicht-Operationen</phrase>
		</title>

        <para lang="en">The <literal>Find...</literal> button has identical 
        behaviour as its counterpart in the <literal>View</literal> 
        menu. The <literal>Zoom</literal> button is a more luxurously 
        version of the function in the <literal>View</literal> 
        menu.</para>
        <para lang="de">
        	Die Schaltfläche <literal>Suche...</literal> hat das identische 
        	Verhalten wie das Gegenstück im Menü <literal>Ansicht</literal>. 
        	Die Schaltfläche <literal>Zoom</literal> ist die luxeriöser als 
        	die Version im Menü <literal>Ansicht</literal>.
        </para>

        <itemizedlist>

          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center" fileref="images/icons/find.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>Find...</literal> See for a full description 
            <xref linkend="s2.ref.menu_find"/>.</para>
            <para lang="de">
	            <guiicon>
	            	<inlinemediaobject>
	            		<imageobject>
	            			<imagedata align="center"
	            				fileref="images/icons/find.gif" format="GIF" />
	            		</imageobject>
	            	</inlinemediaobject>
	            </guiicon>
	            <literal>Suche...</literal> Siehe vollständige Beschreibung 
	            unter <xref linkend="s2.ref.menu_find"/>.
            </para>

          </listitem>

          <listitem>

            <para lang="en">

              <guiicon><inlinemediaobject><imageobject>
              <imagedata align="center" fileref="images/icons/zoom.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon>
               
              <literal>Zoom</literal>
               This is a different version of the menu-item for 
              zooming, as described in 
              <xref linkend="s2.ref.menu_zoom"/>
              . Clicking with button&nbsp;1 on the zoom-icon opens a panel 
              as in the figure below.
              <figure float="1" id="fig.ref.toolbar_zoom">

                <title>
					<phrase lang="en">The Zoom slider on the Toolbar</phrase>
				</title>

                <screenshot><mediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/reference/toolbar_zoom_slider.png"
                 format="PNG"/></imageobject></mediaobject></screenshot>
              </figure>

              Once the panel is open, the following actions are 
              possible:
            </para>
            <para lang="de">

              <guiicon>
              	<inlinemediaobject>
              		<imageobject>
              			<imagedata align="center"
              				fileref="images/icons/zoom.gif" 
              				format="GIF" />
              		</imageobject>
              	</inlinemediaobject>
              </guiicon>
               
              <literal>Zoom</literal>
              Dies ist eine andere Version als die im Menü 
              <literal>Ansicht</literal> in <xref linkend="s2.ref.menu_zoom"/> 
              beschriebene Fassung. Das Klicken mit der Taste&nbsp;1 auf das 
              Zoom-Symbol öffnet ein Fenster wie im Bild unten dargestellt.
              <figure float="1" id="fig.ref.toolbar_zoom">

                <title>
                	<phrase lang="de">
                		Der Zoom-Schieberegler in der Symbolleiste
                	</phrase>
                </title>

                <screenshot>
                	<mediaobject>
                		<imageobject>
                			<imagedata align="center"
                				fileref="images/reference/toolbar_zoom_slider.png"
                				format="PNG" />
                		</imageobject>
                	</mediaobject>
                </screenshot>
              </figure>

				Wenn das Fenster geöffnet ist, sind folgende Aktionen möglich:
            </para>

            <itemizedlist>

              <listitem>

                <para lang="en">Clicking with button&nbsp;1 on the &quot;knob&quot; 
                followed by button&nbsp;1 movement will adjust the 
                zoomfactor.</para>
                <para lang="de">
                	Das Klicken mit der Taste&nbsp;1 auf den 
                	<quote>Schieberegler</quote> gefolgt von der Bewegung der 
                	Taste&nbsp;1 wird den Zoomfaktor einstellen.
                </para>

              </listitem>

              <listitem>

                <para lang="en">Clicking with button&nbsp;1 on the shown percentage 
                allows editing the given zoomfactor (in percent) 
                directly with the keyboard. Double clicking on the 
                value shown selects the whole entry for easy 
                overtyping.</para>
                <para lang="de">
                	Das Klicken mit der Taste&nbsp;1 auf die angezeigte 
                	Prozentzahl erlaubt das direkte Editieren des vorgegebenen 
                	Zoomfaktors (in Prozent) mit der Tastatur. Ein Doppelklick 
                	auf den angezeigten Wert markiert den vollständigen Eintrag 
                	für ein leichtes überschreiben.
                </para>

              </listitem>

              <listitem>

                <para lang="en">Clicking with button&nbsp;1 below or above the knob 
                increases or decreass the zoom factor with 1%. Use this 
                function to easily fine-adjust the percentage.</para>
                <para lang="de">
                	Das Klicken mit der Taste&nbsp;1 ober- oder unterhalb des 
                	Schiebereglers erhöht oder verringert den Zoomfaktor um 1%. 
                	Verwenden Sie diese Funktion, um die Feinjustierung des
                	Prozentsatzes vorzunehmen.
                </para>

              </listitem>

              <listitem>

                <para lang="en">Clicking with button&nbsp;1 or button&nbsp;2 on the 
                <literal>Zoom</literal> tool, or anywhere outside the 
                slider panel closes the panel.</para>
                <para lang="de">
                	Das Klicken mit der Taste&nbsp;1 oder mit der Taste&nbsp;2 
                	auf das <literal>Zoom</literal>-Werkzeug oder ausserhalb 
                	des Schiebereglerfensters schliesst das Fenster.
                </para>

              </listitem>

              <listitem>

                <para lang="en">The keyboard can be used to operate the Zoom 
                Slider as follows: When the <literal>Zoom</literal> 
                icon in the toolbar has the focus (indicated by the 
                thin blue box around it), then pressing the <keycap>
                spacebar</keycap> opens the zoon slider panel. Use the 
                <keycap>arrow</keycap> keys to increase and decrease 
                the percentage 1 by 1. Use <keycap>Shift-Tab</keycap> 
                to set the focus to the percentage box, where you can 
                edit the given value directly. Pressing <keycap>
                Enter</keycap> activates the changed value. When the 
                &quot;knob&quot; has the focus, pressing <keycap>
                PageUp</keycap>/<keycap>PageDown</keycap> 
                increases/decreases the percentage by some amount. Pressing 
                <keycap>Home</keycap> sets the percentage to 300%, and 
                <keycap>End</keycap> sets it to 25%.</para>
                <para lang="de">
                	Mit Hilfe der Tastatur kann der Zoom-Schieberegler wie 
                	folgt bedient werden: Wenn das <literal>Zoom</literal>-
                	Symbol in der Werkzeugleiste den Fokus hat (wird durch 
                	einen dünnen blauen Rahmen dargestellt) und drücken der 
                	<keycap>Leertaste</keycap> öffnet sich das Zoom-
                	Schiebereglerfenster. Verwenden Sie die 
                	<keycap>Pfeil</keycap>-Tasten, um den Prozentsatz 1 durch 
                	1 zu erhöhen bzw. zu verringern. Verwenden Sie 
                	<keycap>Umschalt-Tab</keycap>, um den Fokus auf das 
                	Eingabefeld Prozentsatz zu bringen, in dem sie den 
                	vorgegebenen Wert direkt editieren können. Drücken der 
                	Taste <keycap>Return</keycap> aktiviert den geänderten Wert. 
                	Wenn der <quote>Schieberegler</quote> den Fokus hat, drücken 
                	der Taste <keycap>Bild nach oben</keycap>/
                	<keycap>Bild nach unten</keycap> erhöht/verringert den 
                	Prozentsatz um 50. Drücken der Taste <keycap>Pos 1</keycap> 
                	setzt den Prozentsatz auf 500% und <keycap>Ende</keycap> 
                	auf 0%.
                </para>

              </listitem>

            </itemizedlist>

          </listitem>

        </itemizedlist>

      </section>

      <section id="ch.ref.toolbar.create">

        <title>
			<phrase lang="en">Create operations</phrase>
			<phrase lang="de">Neues Diagramm</phrase>
		</title>

        <para lang="en">These buttons have identical functions as their 
        counterparts in the <literal>Create</literal> menu.</para>
        <para lang="de">
        	Diese Schaltflächen haben wie Ihre Gegenstücke im Menü 
        	<literal>Neues Diagramm</literal> identische Funktionen.
 		</para>

        <itemizedlist>

          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center"
             fileref="images/icons/use_case_diagram.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>New Use Case Diagram</literal> See for a full 
            description 
            <xref linkend="s2.ref.create.diagram.use_case_diagram"/>
            .</para>
            <para lang="de">
	            <guiicon>
	            	<inlinemediaobject>
	            		<imageobject>
	            			<imagedata align="center"
	            				fileref="images/icons/use_case_diagram.gif"
	            				format="GIF" />
	            		</imageobject>
	            	</inlinemediaobject>
	            </guiicon>
	            <literal>Anwendungsfalldiagramm</literal> Siehe 
	            vollständige Beschreibung unter 
	            <xref linkend="s2.ref.create.diagram.use_case_diagram"/>.
            </para>

          </listitem>

          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center"
             fileref="images/icons/class_diagram.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>New Class Diagram</literal> See for a full 
            description 
            <xref linkend="s2.ref.create.diagram.class_diagram"/>
            .</para>
            <para lang="de">
	            <guiicon>
	            	<inlinemediaobject>
	            		<imageobject>
	            			<imagedata align="center"
	            				fileref="images/icons/class_diagram.gif" format="GIF" />
	            		</imageobject>
	            	</inlinemediaobject>
	            </guiicon>
	            <literal>Klassendiagramm</literal> Siehe vollständige  
	            Beschreibung unter  
	            <xref linkend="s2.ref.create.diagram.class_diagram"/>.
            </para>

          </listitem>

          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center"
             fileref="images/icons/sequence_diagram.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>New Sequence Diagram</literal> See for a full 
            description 
            <xref linkend="s2.ref.create.diagram.sequence_diagram"/>
            .</para>
            <para lang="de">
	            <guiicon>
	            	<inlinemediaobject>
	            		<imageobject>
	            			<imagedata align="center"
	            				fileref="images/icons/sequence_diagram.gif"
	            				format="GIF" />
	            		</imageobject>
	            	</inlinemediaobject>
	            </guiicon>
	            <literal>Sequenzdiagramm</literal> Siehe vollständige  
	            Beschreibung unter 
	            <xref linkend="s2.ref.create.diagram.sequence_diagram"/>.
            </para>

          </listitem>

          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center"
             fileref="images/icons/collaboration_diagram.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>New Collaboration Diagram</literal> See for a full 
            description 
            <xref linkend="s2.ref.create.diagram.collaboration_diagram"/>
            .</para>
            <para lang="de">
	            <guiicon>
	            	<inlinemediaobject>
	            		<imageobject>
	            			<imagedata align="center"
	            				fileref="images/icons/collaboration_diagram.gif"
	            				format="GIF" />
	            		</imageobject>
	            	</inlinemediaobject>
	            </guiicon>
	            <literal>Kollaborationsdiagramm</literal> Siehe vollständige  
	            Beschreibung unter  
	            <xref linkend="s2.ref.create.diagram.collaboration_diagram"/>.
            </para>

          </listitem>

          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center"
             fileref="images/icons/state_diagram.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>New Statechart Diagram</literal> See for a full 
            description 
            <xref linkend="s2.ref.create.diagram.state_diagram"/>
            .</para>
            <para lang="de">
	            <guiicon>
	            	<inlinemediaobject>
	            		<imageobject>
	            			<imagedata align="center"
	            				fileref="images/icons/state_diagram.gif" format="GIF" />
	            		</imageobject>
	            	</inlinemediaobject>
	            </guiicon>
	            <literal>Zustandsdiagramm</literal> Siehe vollständige  
	            Beschreibung unter  
	            <xref linkend="s2.ref.create.diagram.state_diagram"/>.
            </para>

          </listitem>

          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center"
             fileref="images/icons/activity_diagram.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>New Activity Diagram</literal> See for a full 
            description 
            <xref linkend="s2.ref.create.diagram.activity_diagram"/>
            .</para>
            <para lang="de">
	            <guiicon>
	            	<inlinemediaobject>
	            		<imageobject>
	            			<imagedata align="center"
	            				fileref="images/icons/activity_diagram.gif"
	            				format="GIF" />
	            		</imageobject>
	            	</inlinemediaobject>
	            </guiicon>
	            <literal>Aktivitätsdiagramm</literal> Siehe vollständige 
	            Beschreibung unter  
	            <xref linkend="s2.ref.create.diagram.activity_diagram"/>.
            </para>

          </listitem>

          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center"
             fileref="images/icons/deployment_diagram.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>New Deployment Diagram</literal> See for a full 
            description 
            <xref linkend="s2.ref.create.diagram.deployment_diagram"/>
            .</para>
            <para lang="de">
	            <guiicon>
	            	<inlinemediaobject>
	            		<imageobject>
	            			<imagedata align="center"
	            				fileref="images/icons/deployment_diagram.gif"
	            				format="GIF" />
	            		</imageobject>
	            	</inlinemediaobject>
	            </guiicon>
	            <literal>Verteilungsdiagramm</literal> Siehe vollständige  
	            Beschreibung unter  
	            <xref linkend="s2.ref.create.diagram.deployment_diagram"/>.
            </para>

          </listitem>

        </itemizedlist>

      </section>

    </chapter>

    <chapter id="ch.ref.menu">

      <title>
			<phrase lang="en">The Menu bar</phrase>
			<phrase lang="de">Die Menüzeile</phrase>
		</title>

      <sect1>

        <title>
			<phrase lang="en">Introduction</phrase>
			<phrase lang="de">Einleitung</phrase>
		</title>

        <para lang="en">An important principle behind ArgoUML is that actions 
        should be able to be invoked in whatever way the user finds 
        convenient. As a result many (but not all) actions that can be 
        carried out on the menu can be carried out in other ways as 
        well under ArgoUML.</para>
        <para lang="de">
        	Ein wichtiges Prinzip hinter ArgoUML ist es, dass Aktionen auf 
        	jedem Weg, den der Anwender für günstig hält, aufgerufen werden 
        	können. Im Ergebnis können viele (aber nicht alle) Aktionen über das 
        	Menü aber auch über andere Wege in ArgoUML ausgeführt werden.
        </para>

        <para lang="en">A number of the common menu entries are also available 
        through keyboard shortcuts.</para>
        <para lang="de">
        	Eine Anzahl gemeinsamer Menüeinträge ist auch über Tastaturkürzel 
        	verfügbar.
        </para>

        <para lang="en">It is also be possible to navigate the menu from the 
        keyboard. Each level of each menu is identified by a letter 
        (shown underlined in the menu or entry name from the moment the 
        ALT key is pressed). This sequence of letters while holding 
        down the ALT key selects the entry. 
        </para>
        <para lang="de">
        	Es ist auch möglich, das Menü von der Tastatur aus zu bedienen. Jede 
        	Ebene eines Menüs wird durch einen Buchstaben (im Menü unterstrichen 
        	dargestellt oder durch Eingabe des Namens im Moment des drückens 
        	der ALT-Taste) identifiziert. Diese Buchstabensequenz, während die 
        	ALT-Taste gedrückt wird, wählt den Eintrag aus.
        </para>

        <para lang="en">The following is an explanation of why the menuitems are 
        grouped as they are.</para>
        <para lang="de">
        	Das Folgende ist eine Erläuterung, wie die Menüelemente angeordnet 
        	sind.
        </para>

        <para lang="en">

          <itemizedlist>

            <listitem>

              <para lang="en">The <emphasis>File</emphasis> menu contains 
              operations that affect on the whole project/file. All the 
              items in this menu can be explained as such.</para>

            </listitem>

            <listitem>

              <para lang="en">The <emphasis>Edit</emphasis> menu is generally 
              intended for editing the model or changing the content of 
              a diagram. It also contains functions to enable editing, 
              like e.g. selecting. This menu is not intended for 
              diagram layout functions. Most functions here do 
              something with the selected modelelement and diagram. The 
              items &quot;Configure Perspectives...&quot;
              and &quot;Settings...&quot; are a bit different,
              since they adjust the way ArgoUML works - but they do not 
              belong in the File menu, since their settings are not
              stored in the project.</para>

            </listitem>

            <listitem>

              <para lang="en">The <emphasis>View</emphasis> menu is for functions 
              that do never alter the model, nor the diagram layout, 
              only the way you view the diagram. A good example is
              &quot;zoom&quot;. 
              Also navigational functions belong here, e.g. &quot;Find&quot; 
              and &quot;Goto Diagram...&quot;. All changes of settings 
              in this menu apply to all diagrams (e.g. zoom).</para>

            </listitem>

            <listitem>

              <para lang="en">The <emphasis>Create</emphasis> menu contains all 
              possible diagrams that can be created. 
              These functions are
              context dependend, since they work on the 
              selected modelelement.
              </para>

            </listitem>

            <listitem>

              <para lang="en">The <emphasis>Arrange</emphasis> menu allows layout 
              changes in the current diagram, which is not the same as 
              the items in the View menu. Functions here can not alter 
              the UML model.</para>

            </listitem>

            <listitem>

              <para lang="en">The <emphasis>Generation</emphasis> menu is for 
              Code Generation. The functions here work either on the 
              selected modelelements, or on the whole project.</para>

            </listitem>

            <listitem>

              <para lang="en">The <emphasis>Critique</emphasis> menu is specific 
              for settings related to critics, 
              which apply for all  projects.</para>

            </listitem>

            <listitem>

              <para lang="en">The <emphasis>Tools</emphasis> menu is currently 
              empty. If 
              plugins are installed, then their functions appear 
              here.</para>

            </listitem>

            <listitem>

              <para lang="en">The <emphasis>Help</emphasis> menu contains the 
              usual &quot;information&quot; and 
              &quot;about&quot;.</para>

            </listitem>

          </itemizedlist>

        </para>
        <para lang="de">

          <itemizedlist>

            <listitem>

              <para lang="de">
              	Das Menü <emphasis>Datei</emphasis> enthält Operationen, die 
              	auf das ganze Projekt/Datei wirken. Alle Elemente in diesem 
              	Menü können so begründet werden.
              </para>

            </listitem>

            <listitem>

              <para lang="de">
              	Das Menü <emphasis>Bearbeiten</emphasis> ist hauptsächlich dafür 
              	gedacht, das Modell zu editieren oder den Inhalt eines 
              	Diagrammes zu verändern. Es enthält auch Funktionen, die das 
              	Editieren erst ermöglichen, wie z.B. das Markieren. Dieses 
              	Menü ist nicht für Diagramm-Layout-Funktionen gedacht. Die 
              	meisten Funktionen hier, tun irgendetwas mit dem markierten 
              	Modellelement und Diagramm. Die Elemente <quote>Konfiguriere 
              	Perspektiven...</quote> und <quote>Einstellungen...</quote> 
              	sind ein bißchen unterschiedlich, da sie einstellen, wie ArgoUML 
              	arbeitet - aber sie gehören nicht in das Dateimenü, da ihre 
              	Einstellungen nicht im Projekt gespeichert werden.
              </para>

            </listitem>

            <listitem>

              <para lang="de">
              	Das Menü <emphasis>Ansicht</emphasis> ist für Funktionen, die 
              	weder das Modell noch das Diagrammlayout verändern, sondern nur 
              	die Art und Weise wie das Diagramm angezeigt wird. Ein gutes 
              	Beispiel ist <quote>Zoom</quote>. 
              	Auch navigierende Funktionen befinden sich hier, z.B. 
              	<quote>Suchen</quote> und <quote>Gehezu Diagramm...</quote>. 
              	Alle Änderungen der Einstellungen dieses Menüs wirken sich auf 
              	alle Diagramme aus (z.B. Zoom).
              </para>

            </listitem>

            <listitem>

              <para lang="de">
              	Das Menü <emphasis>Neues Diagramm</emphasis> enthält alle 
              	möglichen Diagramme, die erstellt werden können. Dies Funktionen 
              	sind kontextabhänig, da mit dem markierten Modellelement 
              	arbeiten.
              </para>

            </listitem>

            <listitem>

              <para lang="de">
              	Das Menü <emphasis>Anordnen</emphasis> erlaubt Layoutänderungen 
              	im aktuellen Diagramm, was nicht das selbe ist wie die Elemente 
              	im Menü Ansicht. Die Funktionen können nicht das UML-Modell 
              	ändern.
			  </para>

            </listitem>

            <listitem>

              <para lang="de">
              	Das Menü <emphasis>Generieren</emphasis> ist für die 
              	Codegenerierung. Die Funktionen hier wirken entweder auf das 
              	markierte Modellelement oder auf das ganze Projekt.
              </para>

            </listitem>

            <listitem>

              <para lang="de">
              	Das Menü <emphasis>Kritiken</emphasis> ist speziell für die 
              	Einstellungen der Kritiken, die für alle Projekte gelten.
              </para>

            </listitem>

            <listitem>

              <para lang="de">
              	Das Menü <emphasis>Werkzeuge</emphasis> ist aktuell leer. 
              	Wurden Plugins installiert, erscheinen deren Funktionen an 
              	dieser Stelle.
              </para>

            </listitem>

            <listitem>

              <para lang="de">
              	Das Menü <emphasis>Hilfe</emphasis> enthält die üblichen 
              	<quote>Systeminformationen</quote> und <quote>Über 
              	ArgoUML</quote>.
              </para>

            </listitem>

          </itemizedlist>

        </para>

      </sect1>

      <sect1 id="s1.ref.menu_mouse">

        <title>
			<phrase lang="en">Mouse Behavior in the Menu Bar</phrase>
			<phrase lang="de">Das Mausverhalten in der Menüzeile</phrase>
		</title>

        <para lang="en">Behavior of the mouse in general, and the naming of the 
        buttons is covered in the chapter on the overall user interface 
        (see <xref linkend="s1.ref.mouse"/>). There is no ArgoUML 
        specific behaviour for the menu.</para>
        <para lang="de">
        	Das generelle Verhalten der Maus und die Bezeichnung der Tasten 
        	ist umfassend im Kapitel Anwenderschnittstelle ausgeführt (siehe 
			<xref linkend="s1.ref.mouse"/>). Es gibt kein ArgoUML-spezifisches 
			Verhalten für Menüs.
		</para>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">The File Menu</phrase>
			<phrase lang="de">Das Menü Datei</phrase>
		</title>

        <para lang="en">These are actions concerned with input and output and the 
        overall management of projects and the ArgoUML system.</para>
        <para lang="de">
        	Dieses sind Aktionen, welche die Ein- und Ausgabe betreffen und das 
        	umfassende Management von Projekten sowie das ArgoUML-System.
        </para>

        <sect2 id="s2.ref.menu_new">

          <title>
			<phrase lang="en"><guiicon><inlinemediaobject><imageobject>
          <imagedata align="center" fileref="images/icons/new.gif"
           format="GIF"/></imageobject></inlinemediaobject></guiicon> 
          New</phrase>
          <phrase lang="de">
          	<guiicon>
          		<inlinemediaobject>
          			<imageobject>
          				<imagedata align="center"
          					fileref="images/icons/new.gif" format="GIF" />
          			</imageobject>
          		</inlinemediaobject>
          	</guiicon>
          	Neu
          </phrase>
		</title>

          <indexterm lang="en"><primary>New</primary></indexterm>
          <indexterm lang="de"><primary>Neu</primary></indexterm>
          <indexterm lang="en">
          	<primary>Shortcut key</primary>
          	<secondary>Ctrl-N</secondary>
          </indexterm>
          <indexterm lang="de">
          	<primary>Tastenkürzel</primary>
          	<secondary>Strg-N</secondary>
          </indexterm>
          <para lang="en">Shortcut Ctrl-N.</para>
          <para lang="de">Tastenkürzel Strg-N.</para>

          <para lang="en">This initializes a new project within ArgoUML. The 
          project is created without a the name. It contains a 
          (top-level) <literal>Model</literal> named <literal>
          untitledModel</literal> and two empty diagrams: a class 
          diagram and a use case diagram.</para>
          <para lang="de">
          	Dies initialisiert ein neues Projekt in ArgoUML. Das Projekt wird 
          	ohne Name erstellt. Es enthält ein (oberste Ebene) 
          	<literal>unbenanntesModell</literal> bezeichnetes 
          	<literal>Modell</literal> und zwei leere Diagramme: Ein 
          	Klassendiagramm und ein Anwendungsfalldiagramm.
          </para>

          <caution>

            <para lang="en"><literal>untitledModel</literal> is not a 
            conventional model name (most processes suggest models 
            should be build from lower case letters). ArgoUML permits 
            you to use any case letters, but a critic will trigger to 
            warn that this is not conventional. See 
            <xref linkend="s1.ref.model"/> for a discussion of 
            this.</para>
            <para lang="de">
            	<literal>unbenanntesModell</literal> ist kein Modellname, der 
            	der Konvention entspricht (die meisten Prozesse erwarten, dass 
            	Modelle aus Kleinbuchstaben gebildet werden sollten). ArgoUML 
            	erlaubt es Ihnen Groß- und Kleinbuchstaben zu verwenden, aber 
            	eine Kritik wird Sie warnen, dass dies nicht der Konvention 
            	entspricht. Siehe <xref linkend="s1.ref.model"/>.
            </para>

          </caution>

          <para lang="en">If the model has been altered (as indicated by the 
          &quot;*&quot; in the titlebar of ArgoUML&apos;s window), then 
          activating the &quot;New&quot; function is potentionally not 
          the user&apos;s intention, since it will erase the changes. 
          Hence a confirmation dialog appears to allow the user to save 
          his work first, or cancel the operation completely.</para>
          <para lang="de">
          	Wurde das Modell geändert (was durch den <quote>*</quote> in der 
          	Titelzeile des ArgoUML-Fensters angezeigt wird), ist die Aktivierung 
          	der Funktion <quote>Neu</quote> potentiell nicht die Absicht des 
          	Anwenders, da sie die Änderungen löschen würde. Aus diesem Grund 
          	erscheint ein Bestätigungsdialog, der es dem Anwender erlaubt, zuerst 
          	seine Arbeit zu speichern oder die Operation vollständig rückgängig 
          	zu machen.
          </para>

          <figure float="1">

            <title>
				<phrase lang="en">
					The confirmation dialog for <literal>New</literal>.
				</phrase>
				<phrase lang="de">
					Der Bestätigungsdialog für <literal>Neu</literal>.
				</phrase>
			</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/menu_dialog_confirm_new.png"
             format="PNG"/></imageobject></mediaobject></screenshot>
          </figure>

        </sect2>

        <sect2 id="s2.ref.menu_open_project">

          <title>
			<phrase lang="en">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/open_project.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		Open Project...
            </phrase>
			<phrase lang="de">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/open_project.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		Projekt öffnen...
            </phrase>
		  </title>

          <indexterm lang="en"><primary>Open Project...</primary></indexterm>
          <indexterm lang="de"><primary>Projekt öffnen...</primary></indexterm>
          <indexterm lang="en"><primary>Shortcut 
          key</primary><secondary>Ctrl-O</secondary></indexterm>
          <indexterm lang="de">
          	<primary>Tastenkürzel</primary>
          	<secondary>Strg-O</secondary>
          </indexterm>
          <para lang="en">Shortcut Ctrl-O.</para>
          <para lang="de">Tastenkürzel Strg-O.</para>

          <para lang="en">This opens an existing project from a file. Selecting 
          this menu option will open a file selection dialog (see 
          <xref linkend="fig.ref.menu_open_project"/>).</para>
          <para lang="de">
          	Diese Funktion öffnet ein existierendes Projekt aus einer Datei. 
          	Die Auswahl dieser Menüoption wird einen Dateiauswahldialog öffnen 
          	(siehe <xref linkend="fig.ref.menu_open_project"/>).
          </para>

          <figure float="1" id="fig.ref.menu_open_project">

            <title>
				<phrase lang="en">
					The file selection dialog for <literal>
	            	Open Project...</literal>.
	            </phrase>
				<phrase lang="de">
					Der Dateiauswahldialog für <literal>Projekt öffnen...
					</literal>.
	            </phrase>
			</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/menu_open_project.png"
             format="PNG"/></imageobject></mediaobject></screenshot>
          </figure>

          <para lang="en">The main body of the dialog is a text area with a 
          listing of all directories and files in the currently 
          selected directory which match the current filter (see 
          below).</para>
          <para lang="de">
          	Der Hauptbereich des Dialoges ist ein Textbereich mit einer Liste 
          	aller Verzeichnisse und Dateien im aktuell ausgewählten Verzeichnis, 
          	welches mit dem aktuellen Filter übereinstimmt (siehe nachfolgend).
          </para>

          <para lang="en">Navigating in the directory tree is possible by 
          selecting a directory in the drop down selector at the top of 
          this dialog. Navigating deeper in the tree may be done by 
          double clicking button&nbsp;1 on the directory shown in the main 
          text area.</para>
          <para lang="de">
          	Das Navigieren im Verzeichnisbaum ist durch das Markieren eines 
          	Verzeichnisses in der DropDown-Auswahl oben im Dialog möglich. Im 
          	Baum tiefer navigieren kann durch Doppelklicken auf das im 
          	Hauptbereich angezeigte Verzeichnis mit der Taste&nbsp;1 bewirkt 
          	werden.
          </para>

          <para lang="en">In the lower portion of the dialog is a text box 
          labeled <literal>File name:</literal> for the name of the 
          file to be opened. The file name may be typed directly in 
          here, or selected from the directory listing above using 
          button&nbsp;1 click.</para>
          <para lang="de">
          	Im unteren Teil des Dialoges befindet sich ein Textfeld mit der 
          	Bezeichnung <literal>Dateiname:</literal> für den Namen der Datei, 
          	die geöffnet werden soll. Der Dateiname kann hier direkt eingegeben 
          	oder aus der obigen Verzeichnisliste mit Hilfe des 
          	Taste&nbsp;1-Klick ausgewählt werden.
          </para>

          <para lang="en">Beneath this is a drop down selector labeled <literal>
          Files of type:</literal> to specify a filter on the files to 
          be shown in the directory listing. Only files that match the 
          filter are listed. The available filters are listed below. 
          The default filter is the first one, 
          which combines all available formats.</para>
          <para lang="de">
          	Darunter befindet sich eine mit <literal>Dateityp:</literal> 
          	bezeichnete DropDown-Auswahl, um einen Filter für die Dateien 
          	auszuwählen, die in der Verzeichnisliste angezeigt werden sollen. 
          	Nur die Dateien werden angezeigt, die mit diesem Filter 
          	übereinstimmen. Die verfügbaren Filter sind nachstehend aufgeführt. 
          	Der Standardfilter ist der erste, der alle verfügbaren Formate 
          	kombiniert.
          </para>

          <itemizedlist>

            <listitem>
              <para lang="en">
              	ArgoUML file (*.zargo, *.uml, *.xmi, *.xml, *.zip)
              </para>
              <para lang="de">
              	ArgoUML-Datei (*.zargo, *.uml, *.xmi, *.xml, *.zip)
              </para>
            </listitem>

            <listitem>
              <para lang="en">ArgoUML compressed project file (*.zargo)</para>
              <para lang="de">ArgoUML-komprimierte Projektdatei (*.zargo)</para>
            </listitem>

            <listitem>
              <para lang="en">ArgoUML project file (*.uml)</para>
              <para lang="de">ArgoUML-Projektdatei (*.uml)</para>
            </listitem>

            <listitem>
              <para lang="en">XML Metadata Interchange (*.xmi)</para>
              <para lang="de">XML Metadata Interchange (*.xmi)</para>
            </listitem>
            
            <listitem>
              <para lang="en">XML Metadata Interchange (*.xml)</para>
              <para lang="de">XML Metadata Interchange (*.xmi)</para>
            </listitem>
            
            <listitem>
              <para lang="en">XMI compressed project file (*.zip)</para>
              <para lang="de">XMI komprimierte Projektdatei (*.zip)</para>
            </listitem>

          </itemizedlist>

        </sect2>

        <sect2 id="s2.ref.menu_save_project">

          <title>
			<phrase lang="en">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/save_project.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		Save Project
          	</phrase>
			<phrase lang="de">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/save_project.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		Projekt speichern
          	</phrase>
		  </title>

          <indexterm lang="en"><primary>Save Project</primary></indexterm>
          <indexterm lang="de"><primary>Projekt speichern</primary></indexterm>
          <indexterm lang="en"><primary>Shortcut 
          key</primary><secondary>Ctrl-S</secondary></indexterm>
          <indexterm lang="de">
          	<primary>Tastenkürzel</primary>
          	<secondary>Strg-S</secondary>
          </indexterm>
          <para lang="en">Shortcut Ctrl-S.</para>
          <para lang="de">Tastenkürzel Strg-S.</para>

          <para lang="en">This saves the project using its current file name. Use 
          <literal>Save Project As...</literal> to save the project to a 
          different file. If no filename is given yet (e.g. after 
          <literal>New</literal>), then this function works exactly as 
          <literal>Save Project As...</literal>.</para>
          <para lang="de">
          	Speichert das Projekt unter seinem aktuellen Dateinamen. Benutzen 
          	Sie <literal>Projekt speichern unter...</literal>, um das Projekt 
          	in einer anderen Datei zu speichern. Wurde kein Dateiname vergeben (
          	z.B. nach <literal>Neu</literal>), dann arbeitet diese Funktion 
          	genau wie <literal>Projekt speichern unter...</literal>.
          </para>

          <note>

            <para lang="en">In certain circumstances, there is nothing to save, 
            and this menuitem is downlighted. E.g. when the user did 
            not yet alter a loaded project. The presence of a 
            <quote>*</quote> in the titlebar of ArgoUML&apos;s window 
            indicates that the current project is <quote>dirty</quote> 
            (has been altered), and can be saved.</para>
            <para lang="de">
           		Unter bestimmten Umständen gibt es nichts zu speichern. Dann ist 
           		diese Menüoption deaktiviert. Z.B. wenn der Anwender das geladene 
           		Projekt nicht verändert hat. Die Präsenz eines <quote>*</quote> 
           		in der Titelzeile von ArgoUML zeigt an, dass das aktuelle 
           		Projekt <quote>ungesichert</quote> ist (geändert wurde) und 
           		gespeichert werden kann.
            </para>

          </note>

        </sect2>

        <sect2 id="s2.ref.menu_save_project_as">

          <title>
			<phrase lang="en">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/save_project_as.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		Save Project As...
          	</phrase>
			<phrase lang="de">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/save_project_as.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		Projekt speichern unter...
          	</phrase>
		  </title>

          <para lang="en">This opens a dialog allowing you to save the project 
          under a different file name (or to specify a file name for 
          the first time if the project is a new project).</para>
          <para lang="de">
          	Öffnet einen Dialog, der es Ihnen erlaubt, das Projekt unter einem 
          	anderen Dateinamen zu speichern (oder das erste Mal einen Dateinamen 
          	zu spezifizieren, wenn das Projekt ein neues Projekt ist).
          </para>

          <para lang="en">The dialog box is almost identical to that for <literal>
          Open Project</literal> (see 
          <xref linkend="fig.ref.menu_open_project"/>). The extension 
          of the filename is automatically set.</para>
          <para lang="de">
          	Der Dialog ist weitgehend identisch mit dem für <literal>Projekt 
          	öffnen</literal> (siehe <xref linkend="fig.ref.menu_open_project"/>). 
          	Die Dateinamenerweiterung wird automatisch gesetzt.
          </para>

        </sect2>

        <sect2 id="s2.ref.menu_revert_to_saved">

          <title>
			<phrase lang="en">Revert to Saved</phrase>
			<phrase lang="en">Projekt speichern rückgängig machen</phrase>
		</title>

          <para lang="en">This menu-item allows you to throw away all your recent 
          changes, and reload the last saved version of the current 
          project. It works a bit like an <literal>Undo</literal> 
          feature, but only restores changes done since the last time 
          the file was saved.</para>
          <para lang="de">
          	Diese Menüoption erlaubt es Ihnen, alle vorher vorgenommen Änderungen 
          	rückgängig zu machen und die zuletzt gespeicherte Version des 
          	aktuellen Projektes zurückzuladen. Sie arbeitet ein bisschen wie 
          	die <literal>Rückgängig</literal>-Funktion, speichert aber nur die 
          	Änderungen zurück, die seit dem letzten Speichern der Datei 
          	vorgenommen wurden.
          </para>

          <para lang="en">This menu-item is downlighted unless the currentproject 
          has been saved or loaded before (i.e. it has a name), and it 
          has been altered.</para>
          <para lang="de">
          	Diese Menüoption ist deaktiviert, bis das aktuelle Projekt 
          	gespeichert oder vorher geladen und geändert wurde.
          </para>

          <para lang="en">When this menu-item is activated, a small confirmation 
          dialog box opens, as shown in the figure below. This warning 
          that all recent changes will be discarded, is needed because 
          the action can not be undone. Selecting <literal>No</literal> 
          cancels the whole action as if you did not select the 
          menu-item in the first place. Selecting <literal>
          Yes</literal> reloads the last saved file.</para>
          <para lang="de">
          	Wenn diese Menüoption aktiviert ist, öffnet sich ein kleiner 
          	Bestätigungsdialog, wie im nachfolgenden Bild gezeigt. Diese 
          	Warnung, dass alle vorher vorgenommenen Änderungen rückgängig 
          	gemacht werden ist notwendig, da diese Aktion nicht mehr rückgängig 
          	gemacht werden kann. Die Auswahl <literal>Nein</literal> bricht 
          	die ganze Aktion ab. Das ist dann so, als hätten Sie die Menüoption 
          	niemals ausgewählt. Die Auswahl <literal>Ja</literal> lädt die 
          	zuletzt gespeicherte Datei zurück.
          </para>

          <figure float="1" id="fig.ref.menu_revert_to_saved">

            <title>
				<phrase lang="en">The warning dialog for Revert to Saved.</phrase>
				<phrase lang="de">
					Der Warndialog für Projekt speichern rückgängig machen.
				</phrase>
			</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/menu_revert_to_saved.png"
             format="PNG"/></imageobject></mediaobject></screenshot>
          </figure>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Import XMI...</phrase>
			<phrase lang="de">XMI importieren...</phrase>
		  </title>

          <para lang="en">This menu-item allows to load an 
          UML 1.3 or 1.4 model which was exported by e.g. another tool,
          as a XMI file, according the XMI V1.0, V1.1 or V1.2 standard. 
          The extension of such file should be <literal>.xmi</literal>.
          </para>
          <para lang="de">
          	Diese Menüoption erlaubt es Ihnen, ein UML 1.3 oder 1.4-Modell zu 
          	laden, welches durch ein anderes Tool als XMI-Datei, entsprechend 
          	dem XMI-V1.0-, V1.1- oder V1.2-Standard exportiert wurde. Die 
          	Erweiterung einer solchen Datei sollte <literal>.xmi</literal> 
          	lauten.
          </para>

          <para lang="en">If the model has been altered (as indicated by the 
          &quot;*&quot; in the titlebar of ArgoUML&apos;s window), then 
          activating the &quot;Import XMI...&quot; 
          function is potentionally not 
          the user&apos;s intention, since it will erase the changes. 
          Hence a confirmation dialog appears to allow the user to save 
          his work first, or cancel the operation completely.</para>
          <para lang="de">
          	Wenn das Modell geändert wurde (angezeigt durch einen <quote>*
          	</quote> in der Titelzeile von ArgoUML), dann ist die Aktivierung 
          	der <quote>XMI importieren...</quote>-Funktion wahrscheinlich nicht 
          	die Absicht des Anwenders, da dies die Änderungen löscht. Aus diesem 
          	Grund erscheint die Dialog, der es dem Anwender erlaubt, zuerst 
          	seine Arbeit zu speichern oder die Operation vollständig abzubrechen.
          </para>

          <figure float="1">

            <title>
				<phrase lang="en">
					The confirmation dialog for <literal>
	            	Import XMI...</literal>.
	            </phrase>
				<phrase lang="de">
					Der Bestätigungsdialog für <literal>
            		XMI importieren...</literal>.
	            </phrase>
			</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/menu_dialog_confirm_new.png"
             format="PNG"/></imageobject></mediaobject></screenshot>
          </figure>

          <para lang="en">When the menu is activated, the standard filechooser 
          appears, see <xref linkend="fig.ref.menu_import_xmi"/>.
          Beware the fact that this file will only contain the model, 
          not any diagram layout. Hence, 
          the new project will not contain any diagrams.</para>
          <para lang="de">
          	Ist dieses Menü aktiviert erscheint die Standarddateiauswahl, siehe 
			<xref linkend="fig.ref.menu_import_xmi"/>.
			Beachten Sie die Tatsache, dass diese Datei nur das Modell 
			beinhaltet, nicht irgendein Diagrammlayout. Aus diesem Grund wird 
			das neue Projekt keinerlei Diagramme enthalten.
          </para>

          <figure float="1" id="fig.ref.menu_import_xmi">

            <title>
				<phrase lang="en">
					The dialog for <literal>
	            	Import XMI...</literal>.
	            </phrase>
				<phrase lang="de">
					Der Dialog für <literal>
            		XMI importieren...</literal>.
	            </phrase>
			</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/menu_import_xmi.png"
             format="PNG"/></imageobject></mediaobject></screenshot>
          </figure>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Export XMI...</phrase>
			<phrase lang="de">Exportiere als XMI...</phrase>
		  </title>

          <para lang="en">This menu-item allows to save the complete structure of 
          the UML 1.4 model as a XMI file, according the XMI V1.2 standard. 
          Beware the fact that this file will only contain the model, 
          not any diagram layout. Hence, if the XMI file is reloaded 
          with the <literal>File - Open Project...</literal> menu, then 
          the diagrams are lost.</para>
          <para lang="de">
          	Dieses Menü erlaubt es Ihnen, die vollständige Struktur eines UML 
          	1.4-Modelles als XMI-Datei entsprechend dem XMI V2.1-Standard zu 
          	speichern. Beachten Sie die Tatsache, dass diese Datei nur das 
          	Modell enthalten wird, nicht irgendein Diagrammlayout. Aus diesem 
          	Grund gehen die Diagramme verloren, wenn die XMI-Datei über das 
          	Menü <literal>Datei - Projekt öffnen...</literal> erneut geladen 
          	wird.
          </para>

          <para lang="en">When the menu is activated, the standard filechooser 
          appears, see <xref linkend="fig.ref.menu_export_xmi"/>.</para>
          <para lang="de">
          	Ist das Menü aktiviert, erscheint die Standarddateiauswahl, siehe 
			<xref linkend="fig.ref.menu_export_xmi"/>.
		  </para>

          <figure float="1" id="fig.ref.menu_export_xmi">

            <title>
				<phrase lang="en">
					The dialog for <literal>
            		Export XMI...</literal>.
	            </phrase>
				<phrase lang="de">
					Der Dialog für <literal>
            		Exportiere als XMI...</literal>.
	            </phrase>
			</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/menu_export_xmi.png"
             format="PNG"/></imageobject></mediaobject></screenshot>
          </figure>

        </sect2>

        <sect2 id="s3.ref.menu_import_sources">

          <title>
			<phrase lang="en">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/import_sources.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		Import Sources...
          	</phrase>
			<phrase lang="de">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/import_sources.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		Quellcode importieren...
          	</phrase>
		  </title>

          <para lang="en">A very powerful feature of ArgoUML is that it can 
          <quote>Reverse Engineer</quote> Java code to yield a class 
          diagram. This sub-menu entry specifies Java code to be 
          imported for reverse engineering.</para>
          <para lang="de">
          	Eine sehr leistungsfähige Eigenschaft von ArgoUML ist es, das es 
          	Java-Code <quote>reengineeren</quote> kann, um ein Klassendiagramm 
          	zu erhalten. Dieser Untermenüeintrag spezifiert den Java-Code, der 
          	zum reengineeren importiert werden soll.
          </para>

          <para lang="en">The dialog box is similar to that for <literal>
          Open Project</literal> (see 
          <xref linkend="fig.ref.menu_open_project"/>), but with two 
          extra tabs placed alongside the directory listing, as shown 
          in <xref linkend="fig.ref.menu_import_sources"/>).</para>
          <para lang="de">
          	Der Dialog ist ähnlich dem für <literal>Projekt öffnen...</literal> 
          	(siehe <xref linkend="fig.ref.menu_open_project"/>), allerdings mit 
          	zwei zusätzlichen Registern neben der Verzeichnisliste, wie in 
          	<xref linkend="fig.ref.menu_import_sources"/> gezeigt).
          </para>

          <figure float="1" id="fig.ref.menu_import_sources">

            <title>
				<phrase lang="en">
					The file selection dialog for <literal>
	            Import Sources...</literal>.
	            </phrase>
				<phrase lang="de">
					Der Dateiauswahldialog für <literal>
            		Quellcode importieren...</literal>.
	            </phrase>
			</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/menu_import_sources.png"
             format="PNG"/></imageobject></mediaobject></screenshot>
          </figure>

          <para lang="en">Those fields that are the same as <literal>
          Open Project</literal> behave in the same way (see 
          <xref linkend="s2.ref.menu_open_project"/>).</para>
          <para lang="de">
          	Diese Felder sind im Verhalten die gleichen wie in <literal>Projekt 
          	öffnen...</literal> (siehe 
          	<xref linkend="s2.ref.menu_open_project"/>).
          </para>

          <para lang="en">Next to the &quot;All Files&quot; file filter, there is 
          the default filter &quot;Java Source File 
          (*.java)&quot;.</para>
          <para lang="de">
          	In der Nähe des Dateifilters <quote>Alle Dateien</quote> gibt es den 
          	Standardfilter <quote>Java-Quelldatei (*.java).</quote>
          </para>

          <para lang="en">The first of the two tabs is labeled <literal>
          General</literal> and is selected by button&nbsp;1 click on its 
          tab. It provides a combo box for the language selection (in 
          V0.18 of ArgoUML only Java can be chosen), and the following 
          selections:</para>
          <para lang="de">
          	Das erste der beiden Register ist mit <literal>Allgemeines</literal> 
          	bezeichnet und durch einen Taste&nbsp;1-Klick auf das Register 
          	ausgewählt. Es enthält eine Auswahlbox für die Auswahl der Sprache (
          	in V0.18 von ArgoUML kann nur Java ausgewählt werden) und der 
          	folgenden Wahlmöglichkeiten:
          </para>

          <itemizedlist>

            <listitem>

              <para lang="en"><literal>Descend directories recursively</literal>. 
              If enabled (the default), reverse engineering will track 
              through sub-directories for any further Java files. If 
              not it will restrict to the selected directory.</para>
              <para lang="de">
              	<literal>Verzeichnisse rekursiv absteigend</literal>
              	. Wenn markiert (Standard), dann wird das Reengineering auch 
              	die Unterverzeichnisse nach Javadateien durchsuchen. Wenn nicht, 
              	wird die Suche auf das aktuelle Verzeichnis eingeschränkt.
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Changed/new files only</literal>. 
              If enabled (the default), only changed and new files are imported. 
              If not all classes will be replaced.</para>
              <para lang="de">
              	<literal>Nur geänderte/neue Dateien</literal>
              	. Wenn markiert (Standard), dann werden nur geänderte oder 
              	neue Dateien importiert. Wenn nicht, werden alle Klassen 
              	ersetzt. 
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Create diagrams from imported 
              code</literal>. If you unselect this, then no diagrams 
              are created, i.e. all data will only be visible in the 
              explorer.</para>
              <para lang="de">
              	<literal>Erzeuge Diagramme aus dem importierten Code</literal>
              	. Wenn Sie dies deaktivieren, werden keine Diagramme erzeugt. 
              	Z.B., alle Daten werden nur im Explorer sichtbar sein.
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Minimise Class icons in 
              diagrams</literal>. If enabled, then the attributes and 
              operations compartiments will not be shown in the classes 
              on the generated class diagrams. Note: This item is 
              checked by default, and is overseen by many users, which 
              are then surprised by the result.</para>
              <para lang="de">
              	<literal>Minimiere Klassensymbole in den Diagrammen</literal>
              	. Wenn aktiviert, dann werden die Attribut- und Operations-
              	Trenner in den Klassen des generierten Klassendiagrammes nicht 
              	angezeigt. Achtung: Dieses Element ist standardmäßig markiert 
              	und wird durch viele Anwender übersehen, die dann von dem 
              	Ergebnis überrascht sind. 
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Perform Automatic Diagram 
              Layout</literal>. If selected, then ArgoUML will do its 
              best to layout the generated diagrams automatically. If 
              not, then all items will be placed at the top left corner 
              of the diagram.</para>
              <para lang="de">
              	<literal>Automatisches Diagramm-Layout ausführen</literal>.
              	Wenn markiert, dann wird ArgoUML sein Bestes tun, um
              	die generierten Diagramme automatisch zu formatieren.
              	Wenn nicht, dann werden alle Elemente in die linke
              	obere Ecke des Diagrammes plaziert.
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Level of import detail: Classifiers only / 
              Classifiers plus feature specifications / Full 
              import</literal>. The latter is the default.</para>
              <para lang="de">
              	<literal>
              		Importdetails: Nur Klassifizierungen /
              		Klassifizierungen und Eigenschaften / Vollständiger 
              		Import
              	</literal>
              	. Das letztere ist der Standard.
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Import source file encoding:</literal>. 
              The value <literal>Cp1252</literal> is often the default. 
              This string represents the <literal>coded character set 
              identifier (CCSID)</literal>.</para>
              <para lang="de">
              	<literal>Codierung der Eingabedatei:</literal>. Der Wert 
				<literal>Cp1252</literal> ist sehr oft der Standard. Diese 
				Zeichenkette repräsentiert den <literal>codierten Zeichensatz- 
				Bezeichnung (CCSID)</literal>.
              </para>

            </listitem>

          </itemizedlist>

          <para lang="en">The second of the two tabs is labeled <literal>
          Java</literal> and is selected by button&nbsp;1 click on its tab. 
          It provides two pairs of radio boxes.</para>
          <para lang="de">
          	Das zweite der beiden Register ist mit <literal>Java</literal> 
          	bezeichnet und wird durch einen Taste&nbsp;1-Klick auf das Register 
          	ausgewählt. Es enthält zwei Paar Optionsauswahlfelder.
          </para>

          <itemizedlist>

            <listitem>

              <para lang="en">The first radio box allows selection between 
              modeling attributes of Java classes as UML attributes 
              (the default) or as UML associations to the class 
              specified.</para>
              <para lang="de">
              	Die erste Optionsauswahl erlaubt die Auswahl zwischen der 
              	Modellierung der Attribute von Javaklassen als UML-Attribute (
              	der Standard) oder als UML-Assoziationen auf die Klasse.
              </para>

            </listitem>

            <listitem>

              <para lang="en">The second radio box allows selection between 
              modeling arrays as new datatypes in their own right (the 
              default) or as their base datatype with 
              multiplicity.</para>
              <para lang="de">
              	Die zweite Optionsauswahl erlaubt die Auswahl zwischen der 
              	Modellierung von arrays als eigenständige neue Datentypen 
              	(der Standard) oder als Basisdatentyp mit Kardinalität.
              </para>

            </listitem>

          </itemizedlist>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/page_setup.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		Page Setup...
          </phrase>
			<phrase lang="de">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/page_setup.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		Seite einrichten...
          </phrase>
		</title>

          <indexterm lang="en"><primary>Page Setup ...</primary></indexterm>
          <indexterm lang="de">
          	<primary>Seite einrichten ...</primary>
          </indexterm>
          <para lang="en">This brings up the standard dialog box provided by the 
          operating system to adjust printer paper size, orientation, 
          and other options.</para>
          <para lang="de">
          	Diese Option öffnet den Standarddialog des Betriebssystems, um die 
          	Drucker-Papiergrösse, die Ausrichtung und andere Optionen 
          	einzustellen.
          </para>

        </sect2>

        <sect2 id="s2.ref.menu_print">

          <title>
			<phrase lang="en">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center" 
          						fileref="images/icons/print.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		Print...
          </phrase>
			<phrase lang="de">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center" 
          						fileref="images/icons/print.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		Drucken...
          </phrase>
		</title>

          <indexterm lang="en"><primary>Print ...</primary></indexterm>
          <indexterm lang="de"><primary>Drucken ...</primary></indexterm>
          <indexterm lang="en">
          	<primary>Shortcut key</primary>
          	<secondary>Ctrl-P</secondary>
          </indexterm>
          <indexterm lang="de">
          	<primary>Tastenkürzel</primary>
          	<secondary>Strg-P</secondary>
          </indexterm>
          <para lang="en">Shortcut Ctrl-P.</para>
          <para lang="de">Tastenkürzel Strg-P.</para>

          <para lang="en">This brings up the standard dialog box provided by the 
          operating system allowing the current diagram to be printed 
          out.</para>
          <para lang="de">
          	Diese Option öffent den Standarddialog des Betriebssystems, der es 
          	Ihnen erlaubt, das aktuelle Diagramm auszudrucken.
          </para>

          <para lang="en">In some cases, when the printing is started, the dialog 
          box of <xref linkend="fig.ref.menu_diagram_exceeds_page"/> 
          appears. Selecting the &quot;Fit to page&quot; button does 
          print the whole diagram fitted on one page by scaling it 
          down. Which might cause all text to be too small to read in 
          case of big diagrams, but it is a quick and easy way to get 
          an usable printout. Selecting the &quot;Multiple pages&quot; 
          option does print unscaled, by dividing the diagram in 
          pieces, on as many pages as needed. Pressing the close button 
          of the dialog does the former option.</para>
          <para lang="de">
          	In einigen Fällen erscheint der Dialog 
          	<xref linkend="fig.ref.menu_diagram_exceeds_page"/>, wenn der 
          	Druckvorgang gestartet wurde. 
          	Die Auswahl der Schaltfläche <quote>An Seite anpassen</quote> druckt 
          	das gesamte Diagramm auf eine Seite, indem es das Diagramm 
          	herunterskaliert. Dies kann dazu führen, dass der gesamte Text bei 
          	grossen Diagrammen zu klein zum lesen wird. Aber es ist ein 
          	schneller und einfacher Weg einen verwendbaren Ausdruck zu bekommen. 
          	Die Auswahl der Option <quote>Mehrere Seiten</quote> druckt 
          	unskaliert, indem es das Diagramm in so viele Einzelteile aufteilt,
			wie nötig. Drücken der Schliessen-Schaltfläche führt zum Schliessen 
			des Dialoges.
          </para>

          <figure float="1" id="fig.ref.menu_diagram_exceeds_page">

            <title>
				<phrase lang="en">The diagram exceeds page size dialog.</phrase>
				<phrase lang="de">
					Der Dialog: Das Diagramm überschreitet die Seitengrösse.
				</phrase>
			</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/menu_diagram_exceeds_page.png"
             format="PNG"/></imageobject></mediaobject></screenshot>
          </figure>

          <warning>

            <para lang="en">If the current diagram contains no selected 
            model elements, then the whole diagram is printed. However, if 
            one or more model elements are selected, then only the area they 
            cover is printed! If scaling is selected (by the &quot;Fit 
            to page&quot; choice in the dialog box descibed above), 
            then the scaling is done on basis of the selected model elements 
            only. If scaling is not chosen (or in case it is not 
            needed), then all pages containing a selected model element are 
            printed.</para>
            <para lang="de">
            	Wenn das aktuelle Diagramm keine markierten Modellelemente 
            	enthält, dann wird das gesamte Diagramm gedruckt. Jedoch, wenn 
            	ein oder mehrere Modellelemente markiert sind, wird nur der 
            	Bereich ausgedruckt den diese umfassen! Wenn die Skalierung 
            	ausgewählt ist (durch die Wahl der Option <quote>An Seite 
            	anpassen</quote> im oben beschriebenen Dialog), dann wird die 
            	Skalierung nur auf  Basis der markierten Modellelemente 
            	ausgeführt. Ist keine Skalierung ausgewählt (oder nicht 
            	notwendig), dann werden alle Seiten ausgedruckt, die ein 
            	markiertes Modellelement beinhalten.
            </para>

          </warning>

        </sect2>

        <sect2 id="s2.ref.menu_export_graphics">

          <title>
			<phrase lang="en">Export Graphics...</phrase>
			<phrase lang="en">Grafik exportieren...</phrase>
		  </title>

          <para lang="en">This menu entry brings up a dialog box allowing the 
          currently selected diagram (in the editing pane) to be saved 
          in one of a number of graphic formats.</para>
          <para lang="de">
          	Diese Menüoption öffnet einen Dialog, der es erlaubt, das aktuell 
          	markierte Diagramm (im Editierfenster) in einem von einer Vielzahl 
          	von Grafikformaten zu speichern.
          </para>

          <para lang="en">The dialog box is identical to that for <literal>
          Open Project</literal> (see 
          <xref linkend="fig.ref.menu_open_project"/>), except for the 
          <literal>Files of type:</literal>. The chosen filetype 
          specifies the graphics format used for saving. The filename 
          is automatically extended with the corresponding ending (if 
          not entered already). A default filename is generated based 
          on the diagram name.</para>
          <para lang="de">
          	Der Dialog ist mit dem in <literal>Projekt öffnen</literal> 
          	verwendeten identisch (siehe 
          	<xref linkend="fig.ref.menu_open_project"/>), mit Ausnahme des 
          	Feldes <literal>Dateityp:</literal>. Der ausgewählte Dateityp 
          	bestimmt das beim Speichern verwendete Grafikformat. Der Dateiname 
          	wird automatisch mit der entsprechenden Dateierweiterung erweitert (
          	wenn er nicht bereits eingegeben wurde). Auf Basis des Diagrammnamens 
          	wird ein Standarddateiname generiert. 
          </para>

          <para lang="en">The available graphics types are:</para>
          <para lang="de">Die verfügbaren Grafiktypen sind:</para>

          <itemizedlist>

            <listitem>
              <para lang="en">GIF image (*.gif)</para>
              <para lang="de">GIF-Bild (*.gif)</para>
            </listitem>
            <listitem>
              <para lang="en">Encapsulated Postscript file (*.eps)</para>
              <para lang="de">Encapsulated Postscript-Datei (*.eps)</para>
            </listitem>
            <listitem>
              <para lang="en">PNG image (*.png)</para>
              <para lang="de">PNG-Bild (*.png)</para>
            </listitem>
            <listitem>
              <para lang="en">Postscript file (*.ps)</para>
              <para lang="de">Postscript-Datei (*.ps)</para>
            </listitem>
            <listitem>
              <para lang="en">Scalable Vector Graphics file (*.svg)</para>
              <para lang="de">Scalable Vector Graphics-Datei (*.svg)</para>
            </listitem>

          </itemizedlist>

          <para lang="en">The graphics format that is selected by default
          is set in the dialog under the menu entry Edit - Settings...</para>
          <para lang="de">
          	Das standardmäßig ausgewählte Grafikformat wird im Dialog unter der 
          	Menüoption Bearbeiten - Einstellungen... eingestellt.
          </para>

          <!--caution>
            TODO: Is this still true?

            <para lang="en">The PNG graphics does not support shadows very well, 
            so maybe it is better to either save in GIF format, or 
            switch shadows off before saving in PNG format.</para>

          </caution-->

        </sect2>
        
        <sect2 id="s2.ref.menu_export_all_graphics">

          <title>
			<phrase lang="en">Export All Graphics...</phrase>
			<phrase lang="de">Alle Grafiken exportieren...</phrase>
		  </title>

          <para lang="en">This menu entry brings up a dialog box 
          to select a directory. 
          In this directory, for all diagrams in the current project,
          a graphics file is generated.</para>
          <para lang="de">
          	Diese Menüoption öffnet einen Dialog, um ein Verzeichnis auszuwählen. 
          	In dieses Verzeichnis wird für alle Diagramme des aktuellen Projektes 
          	je eine Grafikdatei generiert.
          </para>
          
          <para lang="en">The names of the files are deducted from the diagram names.
          The graphics format that is produced
          is set in the dialog under the Edit menu 
          (see <xref linkend="s2.ref.menu_settings"/>).</para>
          <para lang="de">
          	Die Namen der Dateien werden aus den Diagrammnamen gebildet. Das 
          	verwendete Grafikformat wurde im Bearbeiten-Menü (siehe 
			<xref linkend="s2.ref.menu_settings"/>) eingestellt.
		  </para>

        </sect2>
        
        <sect2 id="s2.ref.menu_notation">

          <title>
			<phrase lang="en">Notation</phrase>
			<phrase lang="de">Notation</phrase>
		  </title>

          <para lang="en">This sub-menu presents a radio button selection for 
          notation, i.e. the language in which all textual adornments 
          are shown on the diagrams. 
          </para>
          <para lang="de">
          	Dieses Untermenü präsentiert eine Auswahl von Optionsschaltflächen 
          	für die Notation, z.B. die Sprache, in der alle textuellen 
          	Erläuterungen in den Diagrammen dargestellt werden.
          </para>

          <para lang="en">This feature defines the project&apos;s notation language.
          </para>
          <para lang="de">
          	Diese Eigenschaft definiert die Notation des Projektes.
          </para>

          <para lang="en">There are 2 ways to set the notation language:</para>
          <para lang="de">Es gibt 2 Wege, die Notation einzustellen:</para>

          <itemizedlist>

            <listitem>

              <para lang="en">In the Edit menu,
              see <xref linkend="s3.ref.menu_settings_notations"/>
              in the notation tab of the settings dialog,
              which defines the default notation language for new projects.
              This choice is stored in the 
              <filename>argo.user.properties</filename> file in the 
              <filename>.argouml</filename> directory under the 
              user&apos;s home directory.
              </para>
              <para lang="de">
              	Im Bearbeiten-Menü, siehe 
              	<xref linkend="s3.ref.menu_settings_notations"/> im 
              	Notationsregister des Dialoges Einstellungen, der die Standard-
              	Notation für neue Projekte definiert. Diese Einstellung wird 
              	in der Datei <filename>argouml.user.properties</filename> im 
              	Verzeichnis <filename>.argouml</filename> des User-Home-
              	Verzeichnisses gespeichert.
              </para>

            </listitem>

            <listitem>

              <para lang="en">In the File menu, item Notation. This determines  
              how all textual adornments of figures 
              on all diagrams 
              of the current project are shown.
              This choice is stored in the project file.
              </para>
              <para lang="de">
              	Im Datei-Menü, Menüelement Notation. Dieses bestimmt, wie alle 
              	textuellen Erläuterungen in den Diagrammen des aktuellen 
              	Projektes dargestellt werden. Diese Einstellung wird in der 
              	Projektdatei gespeichert.
              </para>

            </listitem>

          </itemizedlist>

          <para lang="en">The following 2 notations are build in ArgoUML:</para>
          <para lang="de">
          	Die folgenden 2 Notationen werden in ArgoUML erzeugt:
          </para>

          <itemizedlist>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/uml_notation.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>UML 1.4</literal>. Uses UML notation as the 
              default notation for every modelelement on any diagram.</para>
              <para lang="de">
	              <guiicon>
	              	<inlinemediaobject>
	              		<imageobject>
	              			<imagedata align="center"
	              				fileref="images/icons/uml_notation.gif" 
	              				format="GIF" />
	              		</imageobject>
	              	</inlinemediaobject>
	              </guiicon>
	              <literal>UML 1.4</literal>. Verwendet die UML-Notation als 
	              Standardnotation für jedes Modellelement in jedem Diagramm.
              </para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/java_notation.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Java</literal>. Uses Java notation as the 
              default notation for every modelelement on any diagram.</para>
              <para lang="de">
	              <guiicon>
	              	<inlinemediaobject>
	              		<imageobject>
	              			<imagedata align="center"
	              				fileref="images/icons/java_notation.gif" 
	              				format="GIF" />
	              		</imageobject>
	              	</inlinemediaobject>
	              </guiicon>
	              <literal>Java</literal>. Verwendet die Java-Notation als 
	              Standardnotation für jedes Modellelement in jedem Diagramm.
              </para>

            </listitem>

          </itemizedlist>

          <para lang="en">The following choices are only available if the 
          corresponding plugin languages are installed.</para>
          <para lang="de">
          	Die folgenden Optionen sind nur verfügbar, wenn das entsprechende 
          	Plugin installiert wurde.
          </para>

          <itemizedlist>

            <listitem>

              <para lang="en"><literal>Cpp</literal>.</para>
              <para lang="de"><literal>Cpp</literal>.</para>
            </listitem>

            <listitem>

              <para lang="en"><literal>CSharp</literal>.</para>
              <para lang="de"><literal>CSharp</literal>.</para>
            </listitem>

            <listitem>

              <para lang="en"><literal>PHP</literal>.</para>
              <para lang="de"><literal>PHP</literal>.</para>
            </listitem>

          </itemizedlist>

          <remark lang="en">Besides UML, 
          only Java is partly implemented in V0.22 of ArgoUML.</remark>
          <remark lang="de">
          	Neben UML ist in V0.22 von ArgoUML nur Java teilweise implementiert.
          </remark>

        </sect2>
        
        <sect2 id="s2.ref.menu_properties">
        
          <title>
			<phrase lang="en">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center" 
          						fileref="images/icons/settings.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon>
           		Project Properties
           </phrase>
			<phrase lang="de">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center" 
          						fileref="images/icons/settings.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon>
           		Projekteinstellungen...
           </phrase>
		</title>

          <para lang="en">This menu entry brings up a dialog box, which allows 
          the user to set various options
          of the currently loaded project.</para>
          <para lang="de">
          	In dieser Menüoption erscheint ein Dialog, der es dem Anwender 
          	erlaubt, verschiedene Optionen des aktuell geladenen Projektes 
          	einzustellen.
          </para>

          <para lang="en">All settings in this dialog 
          are stored in the project-file 
          together with the model.</para>
          <para lang="de">
          	Alle Einstellungen in diesem Dialog werden in der Projektdatei, 
          	zusammen mit dem Modell, gespeichert.
          </para>
          
          <figure float="1" id="fig.ref.menu_properties_user">

            <title>
				<phrase lang="en">
					The dialog for Project Properties - the User tab.
				</phrase>
				<phrase lang="de">
					Der Dialog Projekteinstellungen: Das Register Benutzer.
				</phrase>
			</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/properties-user.gif"
             format="GIF"/></imageobject></mediaobject></screenshot>
          </figure>
          
          <para lang="en">In the User tab, 
          you are able to set the following fields:
          </para>
          <para lang="de">
          	Im Register Benutzer können Sie folgende Felder einstellen:
          </para>
          
          <itemizedlist>

          <listitem>
	          <para lang="en">
	          	  The first field contains 
		          the name of the author or responsible 
		          for the current project.
		          By default the name and email of the creator
		          are filled in, 
		          so probably you will never need to edit this, 
		          but it is possible.
	          </para>
	          <para lang="de">
	          	Das erste Feld enthält den Namen des Autors oder den 
	          	Verantwortlichen für das aktuelle Projekt. Standardmäßig wird 
	          	der Name und die E-Mailadresse des Erstellers eingefügt, so dass 
	          	Sie dies wahrscheinlich niemals bearbeiten müssen. Aber, es ist 
	          	möglich.
	          </para>
          </listitem>
          
          <listitem>
          <para lang="en">The Project Description field may contain any text
          that you need to describe the project.
          By default it is empty.</para>
	          <para lang="de">
	          	Das Feld Projektbeschreibung kann einen beliebigen Text 
	          	enthalten, den Sie zur Beschreibung des Projektes benötigen. 
	          	Standardmäßig ist dieses Feld leer.
	          </para>
          </listitem>
          
          <listitem>
          <para lang="en">The "Last saved with ArgoUML" field 
          indicates the version of ArgoUML 
          that was used to save this project 
          (the last time it was saved).
          This may be usefull if multiple designers have different 
          versions of ArgoUML, 
          which may not be backwards compatible all the time.
          </para>
	          <para lang="de">
	          	Das Feld "Zuletzt gespeichert mit ArgUML" gibt die Version von 
	          	ArgoUML an, mit der dieses Projekt gespeichert wurde (zum 
	          	letzten Mal gespeichert wurde). Dies kann hilfreich sein, wenn 
	          	mehrere Designer mit unterschiedlichen Versionen von ArgoUML 
	          	arbeiten, die nicht immer rückwärtskompatibel sind.
         	  </para>
          </listitem>

          </itemizedlist>
          
          <figure float="1" id="fig.ref.menu_properties_profiles">

            <title>
				<phrase lang="en">
					The dialog for Project Properties &ndash; the Profiles tab.
				</phrase>
				<phrase lang="de">
					Der Dialog Projekteinstellungen &ndash; Das Register Profile.
				</phrase>
			</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/properties-profiles.gif"
             format="GIF"/></imageobject></mediaobject></screenshot>
          </figure>
          
          <para lang="en">In the Profiles tab, you are able change the following settings:
          </para>
          <para lang="de">
          	Im Register Profile können Sie die folgenden Einstellungen ändern:
          </para>
          
          <itemizedlist>
          <listitem>
          <para lang="en">The type of &ldquo;Stereotype Visualization&rdquo; for the
	  project, which may be textual, small or with big icons.
          </para>
          		<para lang="de">
          			Den Typ der &ldquo;Stereotype Darstellung&rdquo; für das 
          			Projekt; diese kann als Text, mit kleinen oder großen 
          			Symbolen erscheinen. 
          		</para>
          </listitem>
          
          <listitem>
          <para lang="en">The UML profiles which are configured in the project &ndash;
	  model elements of these UML profiles may be referenced in the project.
          </para>
          		<para lang="de">
          			Die im Projekt konfigurierten UML-Profile &ndash; die 
          			Modellelemente dieser UML-Profile können im Projekt 
          			referenziert werden.
          		</para>
          </listitem>

          </itemizedlist>

          <figure float="1" id="fig.ref.menu_properties_notations">

            <title>
				<phrase lang="en">
					The dialog for Project Properties - the Notations tab.
				</phrase>
				<phrase lang="de">
					Der Dialog Projekteinstellungen: &ndash; Das Register 
					Notationen.
				</phrase>
			</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/properties-notations.gif"
             format="GIF"/></imageobject></mediaobject></screenshot>
          </figure>
          
          <para lang="en">In the Notations tab, 
          you are able to set the following fields:
          </para>
          <para lang="de">
          	Im Register Notationen können Sie die folgenden Felder einstellen:
          </para>
        
        <itemizedlist>

          <listitem>
            <para lang="en">The first field is a combobox that allows
            selection of the project's Notation language.
            By default, it lists UML and Java, 
            but other languages may be added by plugins.
            See the chapter on Notation for more explanation:
            <xref linkend="s1.ref.notation"/>.
            </para>
            <para lang="de">
            	Das erste Feld ist ein Dialogfeld, das die Auswahl der im 
            	Projekt verwendeten Notation erlaubt. Standardmäßig werden UML 
            	und Java aufgelistet. Es können aber auch andere Sprachen per 
            	Plugins hinzugefügt werden. Weitere Erläuterungen entnehmen Sie 
            	dem Kapitel über die Notation:
            	<xref linkend="s1.ref.notation"/>.
            </para>

          </listitem>

          <listitem>
            <para lang="en"><literal>Use guillemots</literal> (&laquo;&nbsp;&raquo;) for 
                stereotypes (clear by default). By default ArgoUML uses 
                pairs of <emphasis>less than</emphasis> and 
                <emphasis>greater than</emphasis> (&lt;&lt; &gt;&gt;) 
                characters for stereotypes. If this box is checked 
                stereotypes on diagrams are shown between true 
                guillemots (&laquo;&nbsp;&raquo;).</para>
            <para lang="de">
            	<literal>Französische Anführungszeichen</literal> 
            	(&laquo;&nbsp;&raquo;) für Stereotypen (standarmäßig leer). 
            	Standardmäßig verwendet ArgoUML Paare von <emphasis>kleiner als
            	</emphasis> und <emphasis>größer als</emphasis> 
            	(&lt;&lt; &gt;&gt;) Zeichen für Stereotypen. Wird dieses 
            	Kästchen markiert, werden die Stereotypen in den Diagrammen 
            	in richtigen französische Anführungszeichen gestellt
				(&laquo;&nbsp;&raquo;).
            </para>

            <para lang="en">This feature is presumably added to ArgoUML 
                because guillemots are poorly supported by various 
                fonts, and if they are present, then they are quite 
                small and poorly visible.</para>
            <para lang="de">
            	Diese Eigenschaft wurde ArgoUML vermutlich hinzugefügt, weil 
            	französische Anführungszeichen durch die verschiedensten 
            	Schriften nur sehr schlecht unterstützt werden und wenn Sie 
            	vorhanden sind, dann sind sie sehr klein und schlecht sichtbar.
            </para>
          </listitem>
          
          <listitem>
            <para lang="en"><literal>Show visibility</literal> (clear by 
                default). If this is selected, then ArgoUML will
                show the visibility indicators in front of e.g. attributes
                in the diagram.
                In UML the notation is "+" for public, "-" for private,
                "#" for protected, and "~" for package. 
                E.g. for an attribute, it may show:
                <literal>+newAttr : int</literal>.
            </para>
            <para lang="de">
                <literal>Sichtbarkeit anzeigen</literal>
                (standardmäßig leer). Ist dies markiert, dann wird ArgoUML die 
                Sichtbarkeitssymbole vor jedem z.B. Attribut im Diagramm 
                anzeigen. In der UML-Notation ist dies das "+" für public, "-" 
                für private, "#" für protected und "~" für Paket. Für ein 
                Attribut könnte es z.B. anzeigen: <literal>+neuesAttr : int
                </literal>.
            </para>
          </listitem>
          
          <listitem>
                <para lang="en"><literal>Show multiplicity</literal> (clear by 
                default). If this is selected, then ArgoUML will show 
                the multiplicity of e.g. attributes in the diagram. 
                In UML notation, the multiplicity is shown between [], such as: 
                <literal>+newAttr [0..*] : int</literal>.
                This setting has no impact on showing multiplicity 
                near associationends.
                </para>
                <para lang="de">
	                <literal>Kardinalität anzeigen</literal>
	                (standardmäßig leer). Ist dies markiert, wird ArgoUML die 
	                Kardinalität von z.B. Attributen im Diagramm anzeigen. In der 
	                UML-Notation wird die Kardinalität zwischen [] angezeigt. Wie 
	                z.B.: <literal>+neuesAttr [0..*] : int</literal>.
	                Diese Einstellung hat keinen Einfluss auf die Anzeige der 
	                Kardinalität an Assoziationsenden.
                </para>
              </listitem>

              <listitem>
                <para lang="en"><literal>Show initial value</literal> (clear by 
                default). If this is selected, then ArgoUML will show
                the initial value of e.g. attributes in the diagram.
                In UML notation, the initial value is shown e.g. like this:
                <literal>+newAttr : int = 1</literal>.
              </para>
                <para lang="de">
	                <literal>Anfangswerte anzeigen</literal>
	                (standardmäßig leer). Ist dies markiert, wird ArgoUML den 
	                Anfangswert eines z.B. Attributes im Diagramm anzeigen. In  
	                der UML-Notation wird der Anfangswert wie folgt dargestellt: 
	                <literal>+neuesAttr : int = 1</literal>.
                </para>
              </listitem>

              <listitem>
                <para lang="en"><literal>Show properties</literal> (clear by 
                default). If this is selected, then ArgoUML will show
                various properties between braces {}.
                E.g. for an attribute, it may show:
                <literal>+newAttr : int { frozen }</literal>.
                </para>
                <para lang="de">
	                <literal>Eigenschaften anzeigen</literal>
	                (standardmäßig leer). Ist dies markiert, wird ArgoUML die 
	                Eigenschaften zwischen geschweiften Klammern {} anzeigen.
	                Für ein Attribut könnte die Anzeige wie folgt aussehen: 
	                <literal>+neuesAttr : int { eingefroren }</literal>.
	            </para>
              </listitem>

              <listitem>
                <para lang="en"><literal>Show types and parameters</literal> 
                (set by default). When this checkbox is unmarked, 
                attributes in classes are shown without type indication, 
                and operations are shown without parameters.
                This feature may be usefull during 
                the analysis phase of your project.
                If all checkmarks in 
                the Notation Tab are unchecked, then
                e.g. for an attribute, ArgoUML may show:
                <literal>newAttr</literal>. And for an operation: 
                <literal>newOperation()</literal>.
                </para>
                <para lang="de">
	                <literal>Typen und Parameter anzeigen</literal>
	                (standardmäßig markiert). Wenn dieses Markierfeld nicht 
	                markiert ist, werden die Attribute in Klassen ohne Typ 
	                dargestellt und Operationen ohne Parameter angezeigt. Diese 
	                Eigenschaft kann während der Analysephase Ihres Projektes 
	                nützlich sein. Sind alle Markierfelder im Register Notation 
	                nicht markiert, dann zeigt ArgoUML z.B. für ein Attribut 
	                folgendes an:  
	                <literal>neueOperation()</literal>.
                </para>
              </listitem>

              <listitem>
                <para lang="en"><literal>Show stereotypes in explorer</literal> 
                (clear by default). If this is selected, then ArgoUML will show
                stereotypes next to the icons of the modelelements 
                in the Explorer, i.e. the tree structure at the left hand side.
                </para>
                <para lang="de">
                	<literal>Stereotypen im Explorer anzeigen</literal>
                	(standardmäßig leer). Ist dies markiert, dann wird ArgoUML 
                	die Stereotypen in der Nähe des Modellelementsymboles im 
                	Explorer anzeigen. Z.B. in der Baumstruktur auf der linken 
                	Seite. 
                </para>
              </listitem>

              <listitem>
                <para lang="en"><literal>Default shadow width</literal> (set to 1 
                by default). ArgoUML is able to draw all elements 
                on a diagram with a shadow,
                for esthetical reasons. 
                Use this setting to adjust the 
                size of the shadow, used when the modelelement is created.
                The details tab "Presentation" allows to set the shadow per
                modelelement, after they are created, but ArgoUML V0.22 does
                not retain this latter change after save and load.
                </para>
                <para lang="de">
                	<literal>Standard-Schattenbreite</literal>
                	(standardmäßig auf 1 eingestellt). ArgoUML ist in der Lage, 
                	aus ästhetischen Gründen alle Elemente in einem Diagramm mit 
                	einem Schatten zu zeichnen. Verwenden Sie diese Einstellung, 
                	um die Größe des Schattens einzustellen. Diese Einstellung 
                	wird beim Erstellen des Modellelementes verwendet. Das 
                	Register "Darstellung" im Detailfenster erlaubt es Ihnen, 
                	den Schatten nach dem Erstellen je Modellelement 
                	einzustellen. ArgoUML V0.22 behält diese Änderungen 
                	allerdings nach dem Speichern und Laden nicht. 
                </para>
              </listitem>

        </itemizedlist>
          
          <figure float="1" id="fig.ref.menu_properties_diagram_appearance">

            <title>
				<phrase lang="en">
					The dialog for Project Properties &ndash; the Diagram 
					Appearance tab.
				</phrase>
				<phrase lang="de">
					Der Dialog Projekteinstellungen &ndash; Das Register 
					Diagramm-Darstellung.
				</phrase>
			</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/properties-diagram-appearance.gif"
             format="GIF"/></imageobject></mediaobject></screenshot>
          </figure>
          
          <para lang="en">In the Diagram Appearance tab, you are able change the diagrams
	  font. </para>
          <para lang="de">
          	Im Register Diagramm-Darstellung können Sie die im Diagramm 
          	verwendete Schriftart ändern.
	   	  </para>
          
        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Most Recent Used Files</phrase>
			<phrase lang="de">Am häufigsten verwendete Dateien</phrase>
		  </title>

          <para lang="en">ArgoUML remembers a few of the most recently saved 
          files, and lists them here, to enable loading then in the 
          most simple way.</para>
          <para lang="de">
          	ArgoUML erinnert sich an die am häufigsten gespeicherten Dateien 
          	und listet sie an dieser Stelle auf, um Sie in die Lage zu versetzen, 
          	diese auf einfache Weise zu laden.
          </para>

          <para lang="en">The maximum number of files that is listed here, can be 
          adjusted in the <literal>Edit</literal> -&gt; <literal>
          Settings...</literal> menu. The list of files is stored in the 
          <filename>argo.user.properties</filename> file in the 
          <filename>.argouml</filename> directory under the 
          user&apos;s home directory.</para>
          <para lang="de">
          	Die maximale Anzahl von Dateien, die hier gelistet werden können, 
          	kann im Menü <literal>Bearbeiten</literal> -&gt; <literal>
            Einstellungen...</literal> eingestellt werden. Die Liste der Dateien 
            wird in der Datei <filename>argo.user.properties</filename> im 
            Homeverzeichnis des Benutzers gespeichert.
          </para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Exit</phrase>
			<phrase lang="de">Beenden</phrase>
		</title>

          <indexterm lang="en"><primary>Exit</primary></indexterm>
          <indexterm lang="de"><primary>Beenden</primary></indexterm>
          <indexterm lang="en">
          	<primary>Shortcut key</primary>
          	<secondary>Alt-F4.</secondary>
          </indexterm>
          <indexterm lang="de">
          	<primary>Tastenkürzel</primary>
          	<secondary>Alt-F4.</secondary>
          </indexterm>
          <para lang="en">Shortcut Alt-F4.</para>
          <para lang="de">Tastenkürzel Alt-F4.</para>

          <para lang="en">This closes down ArgoUML. A warning message will pop-up 
          if you have a project open with unsaved changes asking if you 
          wish to save it. See 
          <xref linkend="fig.ref.menu_save_changes"/>. The options 
          are:</para>
          <para lang="de">
          	Diese Menüoption schliesst ArgoUML. Wenn Sie ein Projekt mit 
          	ungesicherten Änderungen haben, erscheint eine Warnmeldung, die Sie 
          	fragt, ob Sie diese speichern wollen. Siehe 
          	<xref linkend="fig.ref.menu_save_changes"/>. Die Optionen sind: 
          </para>

          <itemizedlist>

            <listitem>

              <para lang="en"><literal>Yes</literal> (save the project and exit 
              ArgoUML);</para>
              <para lang="de">
              	<literal>Ja</literal>
              	(das Projekt speichern und ArgoUML beenden);
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>No</literal> (do not save the project, but 
              still exit ArgoUML); and</para>
              <para lang="de">
              	<literal>Nein</literal>
              	(das Projekt nicht speichern, aber ArgoUML beenden); und
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Cancel</literal> (do not save the project 
              and do not exit ArgoUML).</para>
              <para lang="de">
              	<literal>Abbrechen</literal>
              	(das Projekt nicht speichern und ArgoUML nicht beenden).
              </para>

            </listitem>

            <listitem>

              <para lang="en">The dialog box can also be closed by clicking in 
              the close button in the window border. The effect is the 
              same as selecting &quot;Cancel&quot;.</para>
              <para lang="de">
              	Der Dialog kann auch durch Klicken auf die 
              	Schliessen-Schaltfläche im Fensterrand geschlossen werden. 
              	Dies hat den gleichen Effekt wie die Auswahl 
              	&quot;Abbrechen&quot;.
              </para>

            </listitem>

          </itemizedlist>

          <figure float="1" id="fig.ref.menu_save_changes">

            <title>
				<phrase lang="en">The save changes dialog.</phrase>
				<phrase lang="de">Der Dialog Änderungen speichern.</phrase>
			</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/menu_save_changes.png"
             format="PNG"/></imageobject></mediaobject></screenshot>
          </figure>

        </sect2>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">The Edit Menu</phrase>
			<phrase lang="de">Das Menü Bearbeiten</phrase>
		</title>

        <para lang="en">This menu provides support for 
        selecting model elements on the editing pane; 
        removal of model elements from diagrams and the model; 
        and control of user settings.</para>
        <para lang="de">
        	Dieses Menü enthält die Unterstützung für das Markieren von 
        	Modellelemente im Editierfenster; das Entfernen von Modellelementen 
        	aus Diagrammen und dem Modell und die Steuerung der 
        	Benutzereinstellungen.
        </para>

        <sect2 id="s2.ref.menu_select">

          <title>
			<phrase lang="en">Select</phrase>
			<phrase lang="de">Markieren</phrase>
		  </title>

          <para lang="en">This sub-menu provides for selection of items on the 
          editing menu. It has the following entries.</para>
          <para lang="de">
          	Dieses Untermenü unterstützt das Markieren von Elementen im Menü 
          	Bearbeiten. Es hat folgende Einträge:
          </para>

          <itemizedlist>

            <listitem>

              <para lang="en"><literal>Select All</literal> (shortcut Ctrl-A). 
              <indexterm lang="en"><primary>Select All</primary></indexterm> 
              <indexterm lang="en"><primary>Shortcut 
              key</primary><secondary>Ctrl-A</secondary></indexterm> 
              Selects all model elements on the current pane or in the 
              current field. The exact behaviour depends on the 
              <literal>current pane</literal> (i.e. the last one you 
              clicked in): explorer pane, editing pane, to-do pane, 
              details pane. One rule applies in all cases though: the 
              selection on the diagram (editing pane) and in the 
              explorer are always synchronised.</para>
              <para lang="de">
	              <literal>Alle Elemente</literal>
	              (Tastenkürzel Strg-A).
	              <indexterm lang="de">
	              	<primary>Alle Elemente</primary>
	              </indexterm> 
	              <indexterm lang="de">
	              	<primary>Tastenkürzel</primary>
	              	<secondary>Strg-A</secondary>
	              </indexterm>
	              Markiert alle Modellelemente im aktuellen Fenster oder im 
	              aktuellen Feld. Das genaue Verhalten hängt vom 
	              <literal>aktuellen Fenster</literal> ab (z.B. das Letzte, in 
	              das Sie hineingeklickt haben); Explorerfenster, Editierfenster, 
	              "Zu Bearbeiten"-Fenster, Detailfenster. Eine Regel ist auf 
	              alle Fälle anwendbar: die Markierung im Diagramm 
	              (Editierfenster) und im Explorer sind immer synchronisiert. 
              </para>

              <para lang="en">If the editing pane is the <literal>current 
              pane</literal>: First everything in the explorer and on 
              the current diagram is deselected, and then everything 
              that is on the current diagram is selected (and if the 
              same items apear in the explorer, then they are also 
              there indicated as selected, because they are always 
              synchronised).</para>
              <para lang="de">
              	Wenn das Editierfenster das <literal>aktuelle Fenster</literal> 
              	ist: Zuerst werden die Markierungen im Explorer und im aktuellen 
              	Diagramm entfernt und dann wird alles im Diagramm befindliche 
              	markiert (und wenn die gleichen Elemente im Explorer erscheinen, 
              	werden diese ebenfalls markiert, weil dies immer synchronisiert 
              	ist).
              </para>

              <para lang="en">If the explorer pane is the <literal>current 
              pane</literal>: All visible items in the explorer pane 
              are selected, and non-visible items are deselected.</para>
              <para lang="de">
              	Wenn der Explorer das <literal>aktuelle Fenster</literal> ist: 
              	Alle sichtbaren Elemente im Explorer sind markiert und 
              	unsichtbare Elemente sind nicht markiert.
              </para>

              <para lang="en">If the to-do pane is the <literal>current 
              pane</literal>: All visible items in the to-do pane are 
              selected, and non-visible items are deselected. In fact, 
              this works the same as for the explorer pane, because 
              both are tree structures.</para>
              <para lang="de">
              	Wenn das "Zu Bearbeiten"-Fenster das <literal>aktuelle 
              	Fenster</literal> ist: Alle sichtbaren Elemente im "Zu 
              	Bearbeiten"-Fenster sind markiert, alle unsichtbaren Elemente 
              	sind nicht markiert. Tatsächlich funktioniert dies genauso wie 
              	im Explorerfenster, weil beides Baumstrukturen sind.
              </para>

              <para lang="en">If the details pane is the <literal>current 
              pane</literal>: The function only works when the cursor 
              is in certain fields, where selecting is possible, e.g. a 
              Name field. In such a case, the Select All function 
              extends the current selection to the whole field 
              contents.</para>
              <para lang="de">
              	Wenn das Detailfenster das <literal>aktuelle Fenster</literal> 
              	ist: Die Funktion arbeitet nur, wenn sich der Cursor in einem 
              	bestimmten Feld befindet, in dem das Markieren möglich ist. Z.B. 
              	in einem Namensfeld. In so einem Fall erweitert die Funktion 
              	Alle Elemente markieren die aktuelle Markierung auf den gesamten 
              	Feldinhalt.
              </para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_back.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Navigate Back</literal>. ArgoUML keeps a record 
              of the model elements that you have been selecting while 
              navigating the model. This button moves you back to the 
              previous one selected. If there are no more previous 
              model elements, the button is grayed out.</para>
              <para lang="de">
	              <guiicon>
	              	<inlinemediaobject>
	              		<imageobject>
	              			<imagedata align="center"
	              				fileref="images/icons/navigate_back.gif" 
	              				format="GIF" />
	              		</imageobject>
	              	</inlinemediaobject>
	              </guiicon>
	              <literal>Vorheriges Element</literal>. ArgoUML merkt sich 
	              einen Satz von Modellelementen, den Sie während der Navigation 
	              durch das Modell markiert haben. Diese Menüoption bringt Sie 
	              zu dem zuvor markierten Modellelement. Gibt es keine zuvor 
	              markierten Modellelemente, dann ist diese Menüoption 
	              deaktiviert. 
              </para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_forward.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Navigate Forward</literal>. ArgoUML keeps a 
              record of the model elements that you have been selecting 
              while navigating the model. This button moves you forward 
              to the next one selected (after you have used the 
              Navigate Back button to move back). If there are no more 
              next model elements, the button is grayed out.</para>
              <para lang="de">
	              <guiicon>
	              	<inlinemediaobject>
	              		<imageobject>
	              			<imagedata align="center"
	              				fileref="images/icons/navigate_forward.gif"
	              				format="GIF" />
	              		</imageobject>
	              	</inlinemediaobject>
	              </guiicon>
	              <literal>Nächstes Element</literal>. ArgoUML merkt sich einen 
	              Satz von Modellelementen, den Sie während der Navigation durch 
	              das Modell markiert haben. Diese Menüoption bringt Sie zum 
	              nächsten markierten Modellelement (nachdem Sie die Menüoption 
	              Zurück verwendet haben). Gibt es keine nächsten Modellelemente, 
	              dann ist diese Menüoption deaktiviert. 
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Invert Selection</literal>. This inverts 
              the current selection on the <literal>current 
              pane</literal>. More exact: everything that was selected 
              is de-selected and everything that was not selected 
              within the current pane is selected.</para>
              <para lang="de">
              	<literal>Umkehren</literal>.
              	Diese Menüoption kehrt die aktuelle Markierung im <literal>
              	aktuellen Fenster</literal> um. Genauer: Alles, was markiert ist 
              	wird demarkiert und alles was innerhalb des aktuellen Fensters 
              	nicht markiert ist wird markiert.
              </para>

            </listitem>

          </itemizedlist>

        </sect2>

<!--
        <sect2 id="s2.ref.menu_cut">

          <title>
			<phrase lang="en"><guiicon><inlinemediaobject><imageobject>
          <imagedata align="center" fileref="images/icons/cut.gif"
           format="GIF"/></imageobject></inlinemediaobject></guiicon> 
          Cut</phrase>
		</title>

          <indexterm lang="en"><primary>Cut</primary></indexterm>
          <indexterm lang="en"><primary>Shortcut 
          key</primary><secondary>Ctrl-X</secondary></indexterm>
          <para lang="en">Shortcut Ctrl-X.</para>

          <para lang="en">This takes the currently selected items, remove them 
          from the diagram, and place them on the clipboard for 
          subsequent pasting.</para>

          <warning>

            <para lang="en">In the V0.18 implementation of ArgoUML there are some 
            difficulties with clipboard based functions. This menu 
            option is best avoided.</para>

          </warning>

        </sect2>
-->
<!--
        <sect2 id="s2.ref.menu_copy">

          <title>
			<phrase lang="en"><guiicon><inlinemediaobject><imageobject>
          <imagedata align="center" fileref="images/icons/copy.gif"
           format="GIF"/></imageobject></inlinemediaobject></guiicon> 
          Copy</phrase>
		</title>

          <indexterm lang="en"><primary>Copy</primary></indexterm>
          <indexterm lang="en"><primary>Shortcut 
          key</primary><secondary>Ctrl-C</secondary></indexterm>
          <para lang="en">Shortcut Ctrl-C.</para>

          <para lang="en">This takes the currently selected items and make a copy 
          of them on the clipboard for subsequent pasting.</para>

          <warning>

            <para lang="en">In the V0.18 implementation of ArgoUML there are some 
            difficulties with clipboard based functions. This menu 
            option is best avoided.</para>

          </warning>

        </sect2>
-->
<!--
        <sect2 id="s2.ref.menu_paste">

          <title>
			<phrase lang="en"><guiicon><inlinemediaobject><imageobject>
          <imagedata align="center" fileref="images/icons/paste.gif"
           format="GIF"/></imageobject></inlinemediaobject></guiicon> 
          Paste</phrase>
		</title>

          <indexterm lang="en"><primary>Paste</primary></indexterm>
          <indexterm lang="en"><primary>Shortcut 
          key</primary><secondary>Ctrl-V</secondary></indexterm>
          <para lang="en">Shortcut Ctrl-V.</para>

          <para lang="en">This pastes the item(s) last cut or copied to the 
          clipboard on to the current diagram in the drawing 
          pane.</para>

          <warning>

            <para lang="en">In the V0.18 implementation of ArgoUML there are some 
            difficulties with clipboard based functions. This menu 
            option is best avoided.</para>

          </warning>

        </sect2>
-->

        <sect2 id="s2.menu_edit_remove_from_diagram">

          <title>
			<phrase lang="en">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/remove_from_diagram.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		Remove From Diagram
          </phrase>
			<phrase lang="de">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/remove_from_diagram.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		Aus Diagramm entfernen
          </phrase>
		</title>

          <indexterm lang="en"><primary>Remove From Diagram</primary></indexterm>
          <indexterm lang="de">
          	<primary>Aus Diagramm entfernen</primary>
          </indexterm>
          <indexterm lang="en"><primary>Shortcut 
          key</primary><secondary>Delete</secondary></indexterm>
          <indexterm lang="de">
          	<primary>Tastenkürzel</primary>
          	<secondary>Entf</secondary>
          </indexterm>
          <para lang="en">Shortcut Delete.</para>
          <para lang="de">Tastenkürzel Entf.</para>

          <para lang="en">This removes the currently selected item(s) from the 
          diagram, but not from the model.</para>
          <para lang="de">
          	Dies entfernt die aktuell markierten Elemente aus dem Diagramm, aber 
          	nicht aus dem Modell.
          </para>

          <para lang="en">The modelelement can be re-added to the diagram by 
          button&nbsp;2 click on the modelelement in the explorer, 
          or by dragging it onto the diagram.</para>
          <para lang="de">
          	Das Modellelement kann durch einen Taste&nbsp;2-Klick auf das 
          	Modellelement im Explorer, oder durch ziehen des markierten 
          	Elementes in das Diagramm  wieder in das Diagramm eingefügt werden.
          </para>

        </sect2>

        <sect2 id="s2.menu_edit_delete_from_model">

          <title>
			<phrase lang="en">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/delete_from_model.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		Delete From Model
          </phrase>
			<phrase lang="de">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/delete_from_model.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		Aus Modell entfernen
          </phrase>
		</title>

          <indexterm lang="en"><primary>Delete From Model</primary></indexterm>
          <indexterm lang="de">
          	<primary>Aus Modell entfernen</primary>
          </indexterm>
          <indexterm lang="en"><primary>Shortcut 
          key</primary><secondary>Ctrl-Delete</secondary></indexterm>
          <indexterm lang="de">
          	<primary>Tastenkürzel</primary>
          	<secondary>Strg-Entf</secondary>
          </indexterm>
          <para lang="en">Shortcut Ctrl-Delete.</para>
          <para lang="de">Tastenkürzel Strg-Entf.</para>

          <para lang="en">This function deletes the selected item(s) from the 
          model completely.</para>
          <para lang="de">
          	Diese Funktion löscht die markierten Elemente vollständig aus dem 
          	Modell.
          </para>

          <para lang="en">If the item to be deleted is also present on another 
          diagram than the current one, the dialog box from figure x 
          appears.</para>
          <para lang="de">
          	Wenn das zu löschende Element nicht nur im aktuellen Diagramm 
          	sondern auch in einem anderen Diagramm vorhanden ist, erscheint der 
          	Dialog x.
          </para>

          <figure float="1" id="fig.ref.menu_remove_from_model">

            <title>
				<phrase lang="en">
					The dialog for confirmation of <literal>Remove from 
		            Model</literal>.
	            </phrase>
				<phrase lang="de">
	            	Der Bestätigungsdialog zu <literal>Aus Modell 
	            	entfernen</literal>.
	            </phrase>
			</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/confirm_remove.png"
             format="PNG"/></imageobject></mediaobject></screenshot>
          </figure>

        </sect2>

		<sect2 id="s2.menu_edit_configure_perspectives">
		
		<title>
			<phrase lang="en">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/nav_config.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon>
           		Perspektiven konfigurieren...
           </phrase>
		</title>
		
		<para lang="en">This menu-item invokes the same dialog 
		  as the button at the top of the explorer.
		  See 
          <xref linkend="s1.ref.configure_perspectives"/>.
          for a complete description.</para>
		<para lang="de">
			Diese Menüoption ruft den gleichen Dialog auf, wie die Schaltfläche 
			oben im Explorer. Die vollständige Beschreibung entnehmen Sie bitte  
			<xref linkend="s1.ref.configure_perspectives"/>.
        </para>
		
		</sect2>

        <sect2 id="s2.ref.menu_settings">

          <title>
			<phrase lang="en">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center" 
          						fileref="images/icons/settings.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		Einstellungen...
          </phrase>
		</title>

          <para lang="en">This menu entry brings up a dialog box, which allows 
          the user to set various options that control the behavior of 
          ArgoUML (see <xref linkend="fig.ref.menu_settings"/>).</para>
          <para lang="de">
          	Diese Menüoption öffnet einen Dialog, der es dem Benutzer erlaubt, 
          	verschiedene Optionen, die das Verhalten von ArgoUML bestimmen 
          	einzustellen (siehe <xref linkend="fig.ref.menu_settings"/>).
		  </para>
          <para lang="en">These settings are saved persistently for use by
          	subsequent ArgoUML sessions.
          </para>
          <para lang="de">
          	Diese Einstellungen werden persistent für die Nutzung durch 
          	nachfolgende ArgoUML-Sitzungen gespeichert.
          </para>
          
          <para lang="en">ArgoUML has various user specific configurations that can
          	be set in this dialog box,
          	or directly on the various panes. Also the main window
          	size and location is such a setting. Activating this menu
          	entry causes the information to be saved in the file
          	<literal>argo.user.properties</literal>.
          	The location of this file is in the <literal>.argouml</literal> directory
          	under the &quot;users home directory&quot;, 
          	which is defined as <literal>${user.home}</literal>
          	, and can be determined as described in
          	<xref linkend="s3.ref.menu.environment" />
          	.
          </para>
          <para lang="de">
          	ArgoUML hat verschiedene benutzerspezifische Konfigurationen, die in 
          	diesem Dialog oder direkt in den verschiedenen Fenstern eingestellt 
          	werden können. Auch die Lage und Größe des Hauptfensters ist eine 
          	solche Einstellung. Die Aktivierung dieser Menüoption veranlasst, 
          	dass die Informationen in der Datei 
          	<literal>argo.user.properties</literal> gespeichert werden.
          	Der Speicherort dieser Datei ist das &quot;Benutzer-Homeverzeichnis
          	&quot;, welches als <literal>${user.home}</literal> definiert ist 
          	und wie in <xref linkend="s3.ref.menu.environment" /> beschrieben, 
          	bestimmt werden kann.
          </para>

          <tip>
            <para lang="en">This is a text file, which you can edit to configure
            	ArgoUML.
            </para>
            <para lang="de">
            	Dies ist eine Textdatei, die Sie zum Konfigurieren von ArgoUML 
            	bearbeiten können.
            </para>
          </tip>
          
          <figure float="1" id="fig.ref.menu_settings">

            <title>
				<phrase lang="en">
					The dialog for <literal>Settings - 
	            	Preferences</literal>.
	            </phrase>
				<phrase lang="de">
					Der Dialog <literal>Einstellungen - 
            		Voreinstellungen</literal>.
	            </phrase>
			</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/menu_settings.png"
             format="PNG"/></imageobject></mediaobject></screenshot>
          </figure>

          <para lang="en">The options that can be set up on the various tabs are 
          described in the following sections. For each tab there are 
          three buttons at the bottom of the dialog box.</para>
          <para lang="de">
          	Die Optionen können in verschiedenen Registern eingestellt werden, 
          	die in den folgenden Abschnitten beschrieben werden. Für jedes 
          	Register gibt es drei Schaltflächen im unteren Bereich des Dialoges.
          </para>

          <itemizedlist>

            <listitem>

              <para lang="en"><literal>OK</literal>. Activating this button 
              (button&nbsp;1 click) applies the chosen settings and exits 
              the dialog.</para>
              <para lang="de">
              	<literal>OK</literal>.
              	Die Aktivierung dieser Schaltfläche (Taste&nbsp;1-Klick) 
              	übernimmt die gewählten Einstellungen und beendet den Dialog. 
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Cancel</literal>. Selecting this button 
              (button&nbsp;1 click) exits the dialog without applying any 
              settings changed since the last <literal>Apply</literal> 
              (or since the dialog started if <literal>Apply</literal> 
              has not been used).</para>
              <para lang="de">
				<literal>Abbrechen</literal>.
				Die Auswahl dieser Schaltfläche (Taste&nbsp;1-Klick) beendet 
				den Dialog ohne irgendeine, seit dem letzten <literal>Übernehmen
				</literal> geänderte Einstellung anzuwenden (oder seit dem der 
				Dialog gestartet wurde, wenn <literal>Übernehmen</literal> noch 
				nicht verwendet wurde).
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Apply</literal>. Selecting this button 
              (button&nbsp;1 click) applies the chosen settings and remains 
              in the dialog.</para>
              <para lang="de">
              	<literal>Übernehmen</literal>.
              	Die Auswahl dieser Schaltfläche (Taste&nbsp;1-Klick) übernimmt 
              	die gewählten Einstellungen und verbleibt im Dialog.
              </para>

            </listitem>

          </itemizedlist>

          <para lang="en">Closing the dialog (with the close button in the top 
          corner in the border of the window) causes the same effect as 
          <literal>Cancel</literal>.</para>
          <para lang="de">
          	Das Schliessen des Dialoges (mit der Schliessen-Schaltfläche in der 
          	oberen Ecke des Fensterrandes) hat den gleichen Effekt, wie 
          	<literal>Abbrechen</literal>.
          </para>

          <sect3>

            <title>
				<phrase lang="en">Preferences Tab</phrase>
				<phrase lang="de">Register Voreinstellungen</phrase>
			</title>

            <para lang="en">Selecting the <literal>Preferences</literal> tab 
            (button&nbsp;1 click on the tab) gives the following options as 
            check boxes.</para>
            <para lang="de">
            	Die Auswahl des Registers <literal>Voreinstellungen</literal> 
            	(Taste&nbsp;1-Klick auf das Register) enthält die folgenden 
            	Optionen als Markierfelder.
            </para>

            <itemizedlist>

              <listitem>

                <para lang="en"><literal>Show Splash Panel</literal> (set by 
                default). If enabled ArgoUML will show a small panel 
                with a picture while starting up.</para>
                <para lang="de">
                	<literal>Start-Fenster anzeigen</literal>
                	(standardmäßig markiert). Wenn markiert, wird ArgoUML ein 
                	kleines Fenster mit einem Bild während des Startvorganges 
                	anzeigen. 
                </para>

                <tip>

                  <para lang="en">The splash panel can be seen by using the Help 
                  menu (see <xref linkend="s2.ref.menu_help_about"/>
                  ).</para>
                  <para lang="de">
                  	Das Start-Fenster kann auch im Hilfe-Menü angesehen werden 
                  	(siehe <xref linkend="s2.ref.menu_help_about"/>).
                  </para>

                </tip>

              </listitem>

              <listitem>

                <para lang="en"><literal>Reload last saved project on 
                startup</literal> (clear by default). Check this item 
                if you always work on the same project, and wish to 
                load it automatically when you start up ArgoUML.</para>
                <para lang="de">
                	<literal>
                		Beim Starten: Letztes Projekt laden
                	</literal>
                	(standardmäßig leer). Prüfen Sie diesen Eintrag, wenn Sie 
                	immer im gleichen Projekt arbeiten und wollen, dass dieses 
                	automatisch geladen wird, wenn Sie ArgoUML starten. 
                </para>

              </listitem>

              <listitem>

                <para lang="en"><literal>Strip (non-standard) diagrams 
                from XMI file during import</literal>
                (clear by default). Checking this item will tell
                ArgoUML to ignore the "Diagram" elements when 
                importing XMI files. </para> 
                <para lang="de">
                	<literal>
                		Entferne (Nicht-Standard)-Diagramme während des Importes
                	</literal>
                	(standardmäßig leer). Das Markieren dieses Elementes weist 
                	ArgoUML an, die "Diagrammelemente" während des importieren 
                	der XMI-Dateien zu ignorieren. 
                </para> 
                
                <para lang="en">You only need to use this setting, if
                ArgoUML gives an error while importing your
                XMI file saying that it encountered unrecognized
                elements named "Diagram."  Some versions of Poseidon
                are known to create this type of file by default
                although there's usually an export option to
                force them to create standard XMI files.</para>
                <para lang="de">
                	Sie müssen diese Einstellung nur verwenden, wenn ArgoUML 
                	einen Fehler während des importierens Ihrer XMI-Datei 
                	ausgibt, die besagt, das unbekannte Elemente mit der 
                	Bezeichnung "Diagramm" aufgetreten sind. Einige Versioen von 
                	Poseidon sind bekannt dafür, dass sie diesen Dateityp 
                	standardmäßig erstellen, obwohl es gewöhnlich eine 
                	Exportoption gibt, die Erstellung von Standard-XMI-Dateien 
                	zu erzwingen.
                </para>

              </listitem>

<!--              
              <listitem>

                <para lang="en"><literal>UML Profile file</literal> (
                /org/argouml/model/mdr/mof/default-uml14.xmi 
                by default). </para>
                <para lang="de">
                	<literal>UML-Profildatei</literal>
                	( /org/argouml/model/mdr/mof/default-uml14.xmi per
                	Standard).
                </para>
                <para lang="en">This is a read-only field which shows the current
                profile being used by ArgoUML.  If you specified an alternate
                profile at startup time or a plugin-module installed a
                different profile, it will display here.</para>
                <para lang="de">
                	Dies ist ein Read-Only-Feld, welches das aktuell von ArgoUML 
                	verwendete Profil anzeigt. Wenn Sie zum Start ein anderes 
                	Profil spezifizieren oder ein Plugin mit einem anderen Profil 
                	installieren, dann wird es hier angezeigt.
                </para>
                
                <para lang="en">In the future this will be a settable field that
                allows you to select different profiles to match different
                modeling environments (Java, C++, AndroMDA, etc).</para>
                <para lang="de">
                	In der Zukunft wird dies ein beschreibbares Feld, dass es 
                	Ihnen erlaubt, unterschiedliche Profile auszuwählen, die 
                	mit der jeweiligen Modellierungsumgebung (Java, C++, 
                	AndroMDA, usw.) übereinstimmen.
                </para>

              </listitem>
-->
            </itemizedlist>

          </sect3>

          <sect3 id="s3.ref.menu.environment">

            <title>
				<phrase lang="en">Environment Tab</phrase>
				<phrase lang="de">Register Umgebung</phrase>
			</title>

            <para lang="en">Selecting the <literal>Environment</literal> tab 
            (button&nbsp;1 click on the tab) lists several environmental items. 
            Note that none of the paths can be altered &mdash; these are 
            just a matter of record.</para>
            <para lang="de">
            	Das Auswählen des Registers <literal>Umgebung</literal> 
            	(Taste&nbsp;1-Klick auf das Register) listet verschiedene 
            	Umgebungselemente auf. Beachten Sie, dass keiner der Pfade 
            	geändert werden kann &mdash; diese sind nur Gegenstand einer 
            	Aufzeichnung.
            </para>

            <figure float="1">

              <title>
				<phrase lang="en">
					The dialog for <literal>Settings - 
              		Environment</literal>.
              	</phrase>
				<phrase lang="de">
					Der Dialog <literal>Einstellungen - Umgebung</literal>.
              	</phrase>
			  </title>

              <screenshot><mediaobject><imageobject>
              <imagedata align="center"
               fileref="images/reference/menu_settings_environment.png"
               format="PNG"/></imageobject></mediaobject></screenshot>
            </figure>

            <itemizedlist>

              <listitem>

                <para lang="en"><literal>Default Graphics Format</literal>. 
                Here you can select the same graphics formats as in the 
                menu <xref linkend="s2.ref.menu_export_graphics"/>.
                The chosen format is selected by default 
                in the Export Graphics and Export All Graphics menu-items.
                </para>
                <para lang="de">
					<literal>Standard-Grafikformat</literal>. Hier können Sie 
					das gleiche Grafikformat auswählen, wie im Menü 
					<xref linkend="s2.ref.menu_export_graphics"/>.
					Das ausgewählte Format wird standardmäßig in den 
					Menüoptionen &quot;Grafik exportieren...&quot; und 
					&quot;Alle Grafiken exportieren...&quot; verwendet.
                </para>

              </listitem>

              <listitem>

                <para lang="en"><literal>Graphics Export Resolution</literal>.
                This allows you to artificially increase 
                the resolution of produced graphics.
                The advised setting is "Standard". 
                To be able to use "High" or "Extra High", 
                you usually need to start the Java virtual machine 
                with extra memory.
                </para>
                <para lang="de">
                	<literal>Auflösung Grafikexport</literal>. Dies erlaubt es 
                	Ihnen, die Auflösung der erzeugten Grafiken künstlich zu 
                	erhöhen. Die vorgegebene Einstellung ist "Standard". Um in 
                	der Lage zu sein "Hoch" oder "Extra hoch" einzustellen, 
                	müssen Sie gewöhnlich die virtuelle Maschine von Java mit 
                	zusätzlich reserviertem Speicher starten.
                </para>

              </listitem>

              <listitem>

                <para lang="en"><literal>${argo.ext.dir}</literal>. The directory 
                holding ArgoUML extensions&mdash;by default the <literal>
                ext</literal> sub-directory of the ArgoUML build 
                directory.</para>
                <para lang="de">
					<literal>${argo.ext.dir}</literal>. 
					Das Verzeichnis, welches die ArgoUML-Erweiterungen 
					beinhaltet; standardmäßig ist dies das Unterverzeichnis 
					<literal>ext</literal> im Build-Verzeichnis von ArgoUML.
                </para>

              </listitem>

              <listitem>

                <para lang="en"><literal>${java.home}</literal>. The home 
                directory of the Java Runtime Environment (JRE).</para>
                <para lang="de">
                	<literal>${java.home}</literal>. Das Home-Verzeichnis der 
                	Java Laufzeitumgebung (Java Runtime Environment = JRE).
                </para>

              </listitem>

              <listitem>

                <para lang="en"><literal>${user.home}</literal>. The user&apos;s 
                home directory. Used for storing the <literal>
                argo.user.properties</literal> file, under the
                <literal>.argouml</literal> directory.</para>
                <para lang="de">
					<literal>${user.home}</literal>.
					Das Homeverzeichnis des Benutzers. Wird zum Speichern der 
					Datei <literal>argo.user.properties</literal> im Verzeichnis 
					<literal>.argouml</literal> verwendet.
				</para>

              </listitem>

              <listitem>

                <para lang="en"><literal>${user.dir}</literal>. The directory 
                from which ArgoUML was started.</para>
                <para lang="de">
                	<literal>${user.dir}</literal>. Das Verzeichnis, von dem aus 
                	ArgoUML gestartet wurde.
                </para>

              </listitem>

              <listitem>

                <para lang="en"><literal>Startup Directory</literal>. The 
                directory in which ArgoUML starts file searches 
                etc.</para>
                <para lang="de">
                	<literal>Startverzeichnis</literal>. Das Verzeichnis, in 
                	dem ArgoUML seine Dateisuche startet usw.
                </para>

              </listitem>

            </itemizedlist>

          </sect3>

          <sect3>

            <title>
				<phrase lang="en">User Tab</phrase>
				<phrase lang="de">Register Benutzer</phrase>
			</title>

            <para lang="en">This tab allows the user to record additional 
            information of use to the system. There are two text boxes 
            provided.</para>
            <para lang="de">
            	Dieses Register erlaubt es dem Benutzer zusätzliche Informationen 
            	zu erfassen, die im System genutzt werden. Es werden zwei 
            	Textfelder angeboten.
            </para>

            <figure float="1">

              <title>
				<phrase lang="en">
					The dialog for <literal>Settings - 
              		User</literal>.
              	</phrase>
				<phrase lang="de">
					Der Dialog für <literal>Einstellungen - Benutzer</literal>.
              	</phrase>
			  </title>

              <screenshot><mediaobject><imageobject>
              <imagedata align="center"
               fileref="images/reference/menu_settings_user.png"
               format="PNG"/></imageobject></mediaobject></screenshot>
            </figure>

            <itemizedlist>

              <listitem>

                <para lang="en"><literal>Full Name</literal>. Allows the user to 
                record her full name.</para>
                <para lang="de">
                	<literal>Vollständiger Name</literal>. Erlaubt es dem 
                	Benutzer seinen vollständigen Namen einzugeben.
                </para>

              </listitem>

              <listitem>

                <para lang="en"><literal>Email Address</literal>. Allows the 
                user to record his Email address.</para>
                <para lang="de">
                	<literal>Email-Adresse</literal>. Erlaubt es dem Benutzer, 
                	seine EMail-Adresse einzugeben.
                </para>

              </listitem>

            </itemizedlist>

            <para lang="en">This information is used when requesting to-do help 
            by Email.</para>
            <para lang="de">
            	Diese Informationen werden benötigt, wenn Sie Hilfe per 
            	EMail anfordern.
            </para>

          </sect3>

          <sect3 id="s3.ref.menu_settings_appearance">

            <title>
				<phrase lang="en">Appearance Tab</phrase>
				<phrase lang="de">Register Erscheinungsbild</phrase>
			</title>

            <para lang="en">This tab allows the user to specify the LAF (Look And 
            Feel) and theme, i.e. what the complete ArgoUML UI looks 
            like. It comprises the following settings.</para>
            <para lang="de">
            	Dieses Register erlaubt es dem Benutzer, das Aussehen (Look and 
            	Feel) und das Thema einzustellen. Z.B. wie die gesamte 
            	Anwenderschnittstelle von ArgoUML aussehen soll. Es bietet die 
            	folgenden Einstellungen an.
            </para>

            <figure float="1">

              <title>
				<phrase lang="en">
					The dialog for <literal>Settings - 
              		Appearance</literal>.
                </phrase>
				<phrase lang="de">
					Der Dialog für<literal>Einstellungen - Erscheinungsbild
					</literal>.
                </phrase>
			  </title>

              <screenshot><mediaobject><imageobject>
              <imagedata align="center"
               fileref="images/reference/menu_settings_appearance.png"
               format="PNG"/></imageobject></mediaobject></screenshot>
            </figure>

            <itemizedlist>

              <listitem>

                <para lang="en"><literal>Look and Feel</literal>. The choice made 
                here influences the complete User Interface. It only 
                becomes effective when ArgoUML is exited and 
                restarted.</para>
                <para lang="de">
                	<literal>Look and Feel</literal>.
                	Die hier gemachte Auswahl beeinflusst die gesamte 
                	Anwenderschnittstelle. Die Änderung wird nur wirksam, wenn 
                	ArgoUML beendet und neu gestartet wird.
                </para>

              </listitem>

              <listitem>

                <para lang="en"><literal>Metal Theme</literal>. This item is 
                downlighted if the Metal LAF is not chosen. The choice 
                made here influences the complete User Interface. It 
                only becomes effective when ArgoUML is exited and 
                restarted.</para>
                <para lang="de">
                	<literal>Metall-Thema</literal>.
                	Dieses Element ist deaktivert, wenn das Aussehen Metall 
                	nicht ausgwählt wurde. Die Auswahl hier beeinflusst die 
                	gesamte Anwenderschnittstelle. Die Änderung wird nur 
                	wirksam, wenn ArgoUML beendet und neu gestartet wird. 
                </para>

              </listitem>

              <listitem>

                <para lang="en"><literal>Smooth edges of diagram lines and 
                text</literal>. This feature is known as 
                <quote>anti-aliasing</quote> on certain platforms. It 
                causes diagonal lines to look much less jagged, by 
                making use of several shades of gray. This feature only 
                works if the operating system supports it.</para>
                <para lang="de">
	                <literal>
	                	Ränder von Diagrammlinien und Text glätten.
	                </literal>
	                Diese Funktion ist in bestimmten Plattformen als 
	                <quote>Anti-aliasing</quote> bekannt. Sie bewirkt, dass 
	                diagonale Linien durch die Nutzung von verschiedenen 
	                Grauschattierungen nicht so stark gezackt aussehen.  Diese 
	                Funktion arbeitet nur, wenn es das Betriebssystem  
	                unterstützt.
	            </para>

              </listitem>

            </itemizedlist>

          </sect3>

          <sect3 id="s3.ref.menu_settings_profiles">

            <title>
				<phrase lang="en">Profiles Tab</phrase>
				<phrase lang="de">Das Register Profile</phrase>
			</title>

            <para lang="en">In this tab the user may configure the ArgoUML application
	    settings related to the profiles.</para>
            <para lang="de">
            	In diesen Register kann der Anwender die Einstellungen der 
            	ArgoUML-Anwendung bezüglich der Profile ändern.
	    	</para>

            <figure float="1">

              <title>
				<phrase lang="en">
					The dialog for <literal>Settings - 
              		Profiles</literal>.
                </phrase>
				<phrase lang="de">
					Der Dialog <literal>Einstellungen - 
              		Profile</literal>.
                </phrase>
			  </title>

              <screenshot><mediaobject><imageobject>
              <imagedata align="center"
               fileref="images/reference/menu_settings_profiles.png"
               format="PNG"/></imageobject></mediaobject></screenshot>
            </figure>

            <itemizedlist>

              <listitem>
              <para lang="en"><literal>Stereotype Visualization</literal> &ndash; select
              to view stereotypes as text, small or big icons.</para>
              	<para lang="de">
              		<literal>Stereotyp-Darstellung</literal> &ndash; Auswahl, 
              		um Stereotypen als Text, kleine oder große Symbole 
              		darzustellen.
              	</para>
              </listitem>

              <listitem>
              <para lang="en"><literal>Default XMI directories</literal> &ndash; allows
		the user to configure directories where ArgoUML can find the
	        user defined profiles.</para>
              	<para lang="de">
              		<literal>Standard-XMI-Verzeichnisse</literal> &ndash; erlaubt 
              		dem Anwender, die Verzeichnisse zu konfigurieren, in denen 
              		ArgoUML die benutzerdefinierten Profile finden kann.
              	</para>
              </listitem>

              <listitem>
              <para lang="en"><literal>Default Profiles</literal> &ndash; select which 
	      profiles from the available profiles are configured in new
	      projects by default.</para>
              	<para lang="de">
              		<literal>Standard-Profile</literal> &ndash; Auswahl, welches 
              		Profil von den verfügbaren Profilen als Standard für neue 
              		Projekte festgelegt wurde.
              	</para>
              </listitem>

            </itemizedlist>

          </sect3>

          <sect3 id="s3.ref.menu_settings_configure_shortcuts">
            <title>
				<phrase lang="en">Configure Shortcuts Tab</phrase>
				<phrase lang="de">
					Das Register Tastenkombinationen konfigurieren
				</phrase>
			</title>
            <para lang="en">(To Be Written)</para>
            <para lang="de">(Noch zu beschreiben)</para>
            <figure float="1">

              <title>
				<phrase lang="en">
					The dialog for <literal>Settings - 
	              	Configure Shortcuts</literal>.
              	</phrase>
				<phrase lang="de">
					Der Dialog für <literal>Einstellungen - 
              		Tastenkombinationen konfigurieren</literal>.
              	</phrase>
			  </title>

              <screenshot><mediaobject><imageobject>
              <imagedata align="center"
               fileref="images/reference/menu_settings_configure_shortcuts.png"
               format="PNG"/></imageobject></mediaobject></screenshot>
            </figure>

          </sect3>

          <sect3 id="s3.ref.menu_settings_notations">

            <title>
				<phrase lang="en">Notation Tab</phrase>
				<phrase lang="de">Register Notation</phrase>
			</title>

            <para lang="en">This tab allows the user to specify certain notation 
            settings, i.e. how things are shown on diagrams. It 
            comprises the following check boxes.</para>
            <para lang="de">
            	Dieses Register erlaubt es dem Nutzer, bestimmte 
            	Notationseinstellungen zu spezifizieren. Z. B. wie Dinge in 
            	Diagrammen dargestellt werden. Es bietet folgende Markierfelder 
            	an.
            </para>
            
            <para lang="en">All settings here, only define the defaults used for new projects.
            If you want to change the way 
            the diagrams in your current project look, 
            then see the File - Properties menu.</para>
            <para lang="de">
            	Alle Einstellungen definieren nur die Standards, die in neuen 
            	Projekten verwendet werden. Wenn Sie die Art und Weise wie 
            	Diagramme in Ihrem aktuellen Projekt aussehen sollen ändern 
            	wollen, dann siehe Menü Datei - Eigenschaften.
            </para>

            <figure float="1">

              <title>
				<phrase lang="en">
					The dialog for <literal>Settings - 
              		Notations</literal>.
                </phrase>
				<phrase lang="de">
					Der Dialog für <literal>Einstellungen - Notationen</literal>.
                </phrase>
			  </title>

              <screenshot><mediaobject><imageobject>
              <imagedata align="center"
               fileref="images/reference/menu_settings_notations.png"
               format="PNG"/></imageobject></mediaobject></screenshot>
            </figure>

            <itemizedlist>

              <listitem>

                <para lang="en"><literal>Notation Language</literal> (
                UML 1.4
                by default). This feature allows changing the default notation 
                (i.e. language: UML, Java,...) used on the diagrams 
                for new projects. 
                Suppose that a designer indicates that the 
                default notation of a project is Java.
                When he saves the project, 
                the choice for Java is stored inside the project file.
                If someone else is viewing the 
                diagram, he will see the Java notation, too.
                This person can select the UML notation in the 
                File - Notation menu, and see all diagrams in UML language.
                See
                <xref linkend="s2.ref.menu_notation"/>).</para>
                <para lang="de">
	                <literal>Notationssprache</literal>
	                (standardmäßig UML 1.4). Diese Funktion erlaubt die 
	                Änderung der Standardnotation (z.B. Sprache: UML, Java, ...), 
	                die in Diagrammen neuer Projekte verwendet wird. Nehmen Sie 
	                an, dass ein Designer fordert, dass die Standardnotation 
	                des Projektes Java sein soll. Wenn er das Projekt speichert, 
	                wird die Auswahl Java innerhalb der Projektdatei gespeichert. 
	                Wenn irgendjemand anderes das Diagramm anzeigt, wird es die 
	                Java-Notation ebenfalls vorfinden. Diese Person kann die 
	                UML-Notation im Menü Datei - Notation auswählen und wird 
	                alle Diagramme in UML sehen. Siehe 
	                <xref linkend="s2.ref.menu_notation"/>.
                </para>

              </listitem>

              <listitem>

                <para lang="en"><literal>Show name of nodes in bold font</literal>.</para>
                <para lang="de">
                	<literal>Die Namen der Knoten fettgedruckt darstellen
                	</literal>.
                </para>

                <para lang="en">This feature causes the names of every node (i.e. something drawn with a closed polygon) to be bold.</para>
                <para lang="de">
                	Diese Eigenschaft veranlasst, dass die Namen jedes Knotens 
                	(z.B. etwas mit einem geschlossenen Polygon gezeichnet) 
                	fettgedruckt dargestellt werden.
                </para>
                
                <para lang="en">There is no semantics to showing bold names, but it may make your diagrams look nicer.</para>
                <para lang="de">
                	Es gibt keine Semantik, fettgedruckte Namen darzustellen, 
                	aber ihr Diagramm wird schöner aussehen.
                </para>

              </listitem>

              <listitem>

                <para lang="en"><literal>Use guillemots</literal> (&laquo;&nbsp;&raquo;) for 
                stereotypes (clear by default). By default ArgoUML uses 
                pairs of <emphasis>less than</emphasis> and 
                <emphasis>greater than</emphasis> (&lt;&lt; &gt;&gt;) 
                characters for stereotypes. If this box is checked 
                stereotypes on diagrams are shown between true 
                guillemots (&laquo;&nbsp;&raquo;).</para>
                <para lang="de">
					<literal>Französische Anführungszeichen</literal>
					(&laquo;&nbsp;&raquo;) für Stereotypen (standardmäßig leer). 
					Standardmäßig verwendet ArgoUML die Zeichenpaare 
					<emphasis>kleiner als</emphasis> und <emphasis>größer als
					</emphasis> (&lt;&lt; &gt;&gt;) für Stereotypen. Ist dieses 
					Feld markiert, werden die Stereotypen in Diagrammen zwischen  
					französische Anführungszeichen gestellt 
					(&laquo;&nbsp;&raquo;).
                </para>

                <para lang="en">This feature is presumably added to ArgoUML 
                because guillemots are poorly supported by various 
                fonts, and if they are present, then they are quite 
                small and poorly visible.</para>
                <para lang="de">
                	Diese Funktion wird in ArgoUML selten genutzt, da 
                	französische Anführungszeichen in diversen Schriften 
                	schlecht unterstützt werden und wenn sie vorhanden sind, 
                	sind sie sehr klein und schlecht sichtbar.
                </para>
                
                <para lang="en">Independent of the way they are shown, 
                when entering stereotypes, you can always type
                real guillemots (if your keyboard supports it)
                or their &lt;&lt; &gt;&gt; equivalents.</para>
                <para lang="de">
                	Unabhhängig von der Art und Weise in der sie dargestellt 
                	werden, können Sie immer reale französische Anführungszeichen 
                	(wenn Ihre Tastatur dies unterstützt) oder deren &lt;&lt;
                	&gt;&gt;-Äquivalente eingeben.
                </para>

              </listitem>

              <listitem>

                <para lang="en"><literal>Show association names</literal>.</para>
                <para lang="de">
                	<literal>Zeige Assoziationsnamen</literal>.
                </para>

                <para lang="en">This feature causes the names of every association to be hidden 
                if not marked.</para>
                <para lang="de">
                	Diese Eigenschaft veranlasst, dass die Namen jeder 
                	Assoziation versteckt werden, sofern sie nicht markiert 
                	wurden.
                </para>

              </listitem>

              <listitem>

                <para lang="en"><literal>Show visibility</literal> (clear by 
                default). If this is selected, then ArgoUML will
                show the visibility indicators in front of e.g. attributes
                in the diagram.
                In UML the notation is "+" for public, "-" for private,
                "#" for protected, and "~" for package. 
                E.g. for an attribute, it may show:
                <literal>+newAttr : int</literal>.
                </para>
                <para lang="de">
	                <literal>Sichtbarkeit anzeigen</literal>
	                (standardmäßig leer). Ist dies markiert, dann wird ArgoUML 
	                die Sichtbarkeitsmarkierungen vor z.B. jedem Attribut in 
	                den Diagrammen anzeigen. In UML steht die Notation "+" für 
	                public, "-" für private, "#" für protected und "~" für 
	                Paket. Es könnte für ein Attribut z.B. wie folgt aussehen: 
	                <literal>+neuesAttr : int</literal>.
                </para>

              </listitem>

              <listitem>

                <para lang="en"><literal>Show multiplicity</literal> (clear by 
                default). If this is selected, then ArgoUML will show 
                the multiplicity of e.g. attributes in the diagram. 
                In UML notation, the multiplicity is shown between [], such as: 
                <literal>+newAttr [0..*] : int</literal>.
                This setting has no impact on showing multiplicity 
                near associationends.
                </para>
                <para lang="de">
	                <literal>Kardinalitäten anzeigen</literal>
	                (standardmäßig leer). Wenn dies markiert ist, dann wird 
	                ArgoUML die Kardinalität z.B. jeden Attributes im Diagramm 
	                darstellen. In der UML-Notation wird die Kardinalität 
	                zwischen [] gestellt: 
	                <literal>+neuesAttr [0..*] : int</literal>.
	                Diese Einstellung hat keine Auswirkung auf die Darstellung 
	                der Kardinalität von Assoziationsenden.
                </para>

              </listitem>

              <listitem>

                <para lang="en"><literal>Show initial value</literal> (clear by 
                default). If this is selected, then ArgoUML will show
                the initial value of e.g. attributes in the diagram.
                In UML notation, the initial value is shown e.g. like this:
                <literal>+newAttr : int = 1</literal>.
              </para>
                <para lang="de">
	                <literal>Anfangswerte anzeigen</literal>
	                (standardmäßig leer). Wenn dies markiert ist, dann wird 
	                ArgoUML den Anfangswert z.B. eines Attributes im Diagramm 
	                darstellen. In der UML-Notation wird der Anfangswert wie 
	                folgt dargestellt: 
	                <literal>+neuesAttr : int = 1</literal>.
              </para>

              </listitem>

              <listitem>

                <para lang="en"><literal>Show properties</literal> (clear by 
                default). If this is selected, then ArgoUML will show
                various properties between braces {}.
                E.g. for an attribute, it may show:
                <literal>+newAttr : int { frozen }</literal>.
                </para>
                <para lang="de">
	                <literal>Eigenschaften anzeigen</literal>
	                (standardmäßig leer). Wenn dies markiert ist, dann wird 
	                ArgoUML die verschiedenen Eigenschaften zwischen geschweifte 
	                Klammern {} darstellen. Für ein Attribut z.B. könnte dies 
	                wie folgt aussehen: 
	                <literal>+neuesAttr : int { eingefroren }</literal>.
                </para>

              </listitem>

              <listitem>

                <para lang="en"><literal>Show types and parameters</literal> 
                (set by default). When this checkbox is unmarked, 
                attributes in classes are shown without type indication, 
                and operations are shown without parameters.
                This feature may be usefull during 
                the analysis phase of your project.
                If all checkmarks in 
                the Notation Tab are unchecked, then
                e.g. for an attribute, ArgoUML may show:
                <literal>newAttr</literal>. And for an operation: 
                <literal>newOperation()</literal>.
                </para>
                <para lang="de">
	                <literal>Typen und Parameter anzeigen</literal>
	                (standardmäßig markiert). Wenn das Feld nicht markiert ist, 
	                werden die Attribute in Klassen ohne Typ und Operationen 
	                ohne Parameter dargestellt. Diese Funktion kann während der 
	                Analysephase Ihres Projektes nützlich sein. Sind alle Felder 
	                im Register Notation nicht markiert, dann könnte ArgoUML ein 
	                Attribut wie folgt anzeigen: 
	                <literal>neuesAttr</literal>. Und für eine Operation: 
	                <literal>neueOperation()</literal>.
                </para>

              </listitem>

              <listitem>

                <para lang="en"><literal>Show stereotypes in explorer</literal> 
                (clear by default). If this is selected, then ArgoUML will show
                stereotypes next to the icons of the modelelements 
                in the Explorer, i.e. the tree structure at the left hand side.
                </para>
                <para lang="de">
                	<literal>Stereotypen im Explorer anzeigen</literal>
                	(standardmäßig leer). Wenn dies markiert ist, dann wird 
                	ArgoUML die Stereotypen in der Nähe der Symbole der 
                	Modellelemente im Explorer anzeigen. Z.B. in der 
                	Baumstruktur auf der linken Seite.
                </para>

              </listitem>

              <listitem>

                <para lang="en"><literal>Show "1" multiplicities</literal>.</para>
                <para lang="de">
                	<literal>Zeige "1"-Kardinalitäten</literal>.
                </para>

                <para lang="en">This feature allows the user to select if he wants 
                to show all multiplicities that are "1" to be shown or not..</para>
                <para lang="de">
                	Diese Eigenschaft erlaubt es dem Anwender auszuwählen, ob er 
                	alle Kardinalitäten, die "1" sind darstellen will oder 
                	nicht...
                </para>
                
                <para lang="en">Some people consider not showing 
                the multiplicity as "undefined".
                So, the only way to differentiate between 
                a multiplicity of 1 and an undefined multiplicity, 
                is to mark this checkbox.</para>
                <para lang="de">
                	Manche Menschen betrachten eine nicht dargestellte 
                	Kardinalität als "undefiniert", so dass es der 
                	einzige Weg ist, zwischen einer Kardinalität von 1 und einer 
                	undefinierten Kardinalität zu unterscheiden, indem man 
                	dieses Markierfeld markiert.
                </para>

              </listitem>

              <listitem>

                <para lang="en"><literal>Hide arrowheads for bi-directional associations.</literal>.</para>
                <para lang="de">
                	<literal>Verstecke Pfeilspitzen bei bi-direktionalen 
                	Assoziationen.</literal>.
                </para>

                <para lang="en">The UML standard defines different ways 
                to indicate navigability of an association on diagrams. 
                Presentation option 1 is to show all arrows 
                (i.e. you can only navigate in a certain direction if an arrow is drawn), 
                presentation option 2 is to show no arrows at all, 
                and presentation option 3 is to show only an arrow
                if the association is unidirectional.</para>
                <para lang="de">
                	Der UML-Standard definiert unterschiedliche Arten, die 
                	Navigierbarkeit von Assoziationen in Diagrammen darzustellen.
                	Darstellungsoption 1 ist es, alle Pfeile anzuzeigen (z.B. 
                	sie können nur in eine bestimmte Richtung navigieren, wenn 
                	ein Pfeil dargestellt wird). Darstellungsoption 2 ist, keine 
                	Pfeile anzuzeigen und Darstellungsoption 3 ist, nur dann 
                	einen Pfeil anzuzeigen, wenn die Assoziation gerichtet (
                	unidirektional) ist.
                </para>
                
                <para lang="en">Before the release of version 0.26, 
                ArgoUML could only use presentation option 3. 
                Currently, the user can choose between option 1 and 3. 
                <!-- This is introduced thanks to issue 535. -->
                Option 2 is not supported.</para>
                <para lang="de">
                	Vor der Version 0.26, konnte ArgoUML nur die 
                	Darstellungsoption 3 verwenden. Aktuell kann der Anwender 
                	zwischen der Option 1 und 3 auswählen. Die Option 2 wird 
                	nicht unterstützt. 
                </para>

                <para lang="en">In the past, option 3 was used most often in other UML tools, 
                but nowadays option 1 is more common.</para>
                <para lang="de">
                	In der Vergangenheit wurde die Option 3 sehr häufig in 
                	anderen UML-Werkzeugen verwendet, aber neuerdings wird die 
                	Option 1 häufiger eingesetzt.
                </para>

              </listitem>

              <listitem>

                <para lang="en"><literal>Default shadow width</literal> (set to 1 
                by default). ArgoUML is able to draw all elements 
                on a diagram with a shadow. Use this setting to adjust the 
                size of the shadow, used when the modelelement is created.
                The details tab "Presentation" allows to set the shadow per
                modelelement, after they are created.
                </para>
                <para lang="de">
                	<literal>Standard-Schattenbreite</literal>
                	(standardmäßig auf 1 eingestellt). ArgoUML ist in der Lage, 
                	alle Elemente in einem Diagramm mit einem Schatten zu 
                	versehen. Verwenden Sie diese Einstellung, um die Größe des 
                	Schattens einzustellen, der beim Erzeugen des Modellelementes 
                	verwendet wird. Das Register "Darstellung" im Detailfenster 
                	erlaubt das Einstellen des Schattens je Modellelement, 
                	nachdem diese erzeugt wurden.
                </para>

              </listitem>

            </itemizedlist>

          </sect3>


          <sect3 id="s3.ref.menu_settings_diagram_appearance">
            <title>
				<phrase lang="en">Diagram Appearance Tab</phrase>
				<phrase lang="de">Das Register Diagramm-Darstellung</phrase>
			</title>
            <para lang="en">(To Be Written)</para>
            <para lang="de">(Noch zu beschreiben)</para>
            <figure float="1">

              <title>
				<phrase lang="en">
					The dialog for <literal>Settings - 
              		Diagram Appearance</literal>.
                </phrase>
				<phrase lang="de">
					Der Dialog für <literal>Einstellungen - 
              		Diagramm-Darstellung</literal>.
                </phrase>
			  </title>

              <screenshot><mediaobject><imageobject>
              <imagedata align="center"
               fileref="images/reference/menu_settings_diagram_appearance.png"
               format="PNG"/></imageobject></mediaobject></screenshot>
            </figure>

          </sect3>


          <sect3 id="s3.ref.menu_settings_modules">

            <title>
				<phrase lang="en">Modules Tab</phrase>
				<phrase lang="de">Das Register Module</phrase>
			</title>

            <para lang="en">This tab shows a list of modules that are installed, 
            which may be enabled or disabled. Since this is a new 
            concept for ArgoUML, it currently contains a list of modules that 
            can not be removed, and a button to test the concept. 
            Pressing this button adds a useless menu-item
            on the Tools menu, nothing else.</para>
            <para lang="de">
            	Dieses Register zeigt eine Liste der installierten Module an, 
            	die aktiviert oder deaktiviert werden können. Seitdem dies ein 
            	neues Konzept in ArgoUML ist, enthält es derzeit eine Liste 
            	von Modulen, die nicht entfernt werden können und eine 
            	Schaltfläche, um das Konzept zu testen. Das Drücken dieser 
            	Schaltfläche fügt dem Menü Werkzeuge eine nutzlose Menüoption 
            	hinzu.
            </para>

            <para lang="en">Notice also that this is a &quot;new&quot; modules 
            concept so the old Pluggable modules do not work this way, 
            and are not listed.</para>
            <para lang="de">
            	Beachten Sie auch, dass es sich um ein Konzept für &quot;neue
            	&quot; Module handelt, so dass alte einbindbare Module nicht 
            	auf diese Weise arbeiten und daher nicht aufgelistet sind. 
            </para>

          </sect3>

          <sect3 id="s3.ref.menu_settings_plugins">

            <title>
				<phrase lang="en">Extra Tabs added by Plugins</phrase>
				<phrase lang="de">
					Durch Plugins zusätzlich hinzugefügte Register
				</phrase>
			</title>

            <para lang="en">A plug-in module has the possibility to add 
            extra tabs. 
            One example is C++; it adds the following tab.
            </para>
            <para lang="de">
            	Ein Plugin-Modul hat die Möglichkeit zusätzliche Register 
            	hinzufügen zu können. Ein Beispiel ist C++, welches folgendes 
            	Register hinzufügt.
            </para>

            <figure float="1">

              <title>
				<phrase lang="en">
					The dialog for <literal>Settings - 
              		C++</literal>.
                </phrase>
				<phrase lang="de">
					Der Dialog für <literal>Einstellungen - C++</literal>.
                </phrase>
			</title>

              <screenshot><mediaobject><imageobject>
              <imagedata align="center"
               fileref="images/reference/menu_settings_cpp.png"
               format="PNG"/></imageobject></mediaobject></screenshot>
            </figure>

          </sect3>

        </sect2>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">The View Menu</phrase>
			<phrase lang="de">Das Menü Ansicht</phrase>
		</title>

        <para lang="en">This menu is used for actions that affect how the various 
        panes are viewed.</para>
        <para lang="de">
        	Dieses Menü wird für Aktionen verwendet, die Auswirkungen darauf 
        	haben, wie die verschiedenen Fenster dargestellt werden.
        </para>

        <sect2>

          <title>
			<phrase lang="en">Goto Diagram...</phrase>
			<phrase lang="de">Gehezu Diagramm...</phrase>
		  </title>

          <para lang="en">This menu entry brings up a dialog box, describing all 
          the diagrams in the current project under ArgoUML.</para>
          <para lang="de">
          	Dieses Menü öffnet einen Dialog, der alle im aktuellen Projekt 
          	befindlichen Diagramme aufführt.
          </para>

          <figure float="1" id="fig.ref.menu_goto_diagram">

            <title>
				<phrase lang="en">
					The dialog for <literal>Goto 
	            	Diagram...</literal>.
	            </phrase>
				<phrase lang="de">
					Der Dialog für <literal>Gehe zu Diagramm...</literal>.
	            </phrase>
			</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/menu_goto_diagram.png"
             format="PNG"/></imageobject></mediaobject></screenshot>
          </figure>

          <para lang="en">The dialog box contains a table with three columns and 
          one row for each diagram in the current project. A scroll bar 
          gives access if the table is too long for the box. Double 
          button&nbsp;1 click on any row will select that diagram in the 
          editing pane. The three columns are as follows.</para>
          <para lang="de">
          	Der Dialog enthält eine Tabelle aus drei Spalten und einer Zeile 
          	für jedes Diagramm im aktuellen Projekt. Ein Schieberegler erlaubt 
          	den Zugriff auf die gesamte Tabelle, wenn diese für das Fenster zu 
          	gross ist. Ein Doppelklick mit der Taste&nbsp;1 auf eine beliebige 
          	Zeile wird das Diagramm im Editierfenster markieren. Die drei 
          	Spalten sehen wie nachfolgend beschrieben aus:
          </para>

          <itemizedlist>

            <listitem>

              <para lang="en"><literal>Type</literal>. Lists the type of 
              diagram.</para>
              <para lang="de">
              	<literal>Typ</literal>. Auflistung des Diagrammtyps.
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Name</literal>. Lists the name given to 
              the diagram.</para>
              <para lang="de">
              	<literal>Name</literal>. Auflistung der für die Diagramme 
              	vergebenen Namen.
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Description</literal>. Shows how many 
              nodes and edges there are on the diagrams. A node is a 
              <quote>2-D</quote> model element and an edge is a connector 
              model element.</para>
              <para lang="de">
	              <literal>Beschreibung</literal>. Stellt dar, wieviele Knoten und 
	              Kanten sich im Diagramm befinden. Ein Knoten ist ein <quote>2-D
	              </quote>-Modellelement und eine Kante ist eine Verküpfung zu 
	              einem Modellelement. 
              </para>

            </listitem>

          </itemizedlist>

          <para lang="en">This dialog box is not modal, which allows it to remain 
          open while editing the model for easy navigation.</para>
          <para lang="de">
          	Wenn der Dialog nicht modal ist, kann der Dialog während des 
          	Editierens des Modelles zur leichteren Navigation geöffnet bleiben.
          </para>

          <warning>

            <para lang="en">The V0.26 implementation of ArgoUML does not 
            immediately update the dialog box with changes made to 
            diagrams: change of name, addition of diagrams, deletion of 
            diagrams.<!-- This is issue 2475. -->
            </para>
            <para lang="de">
            	Die Version 0.26 von ArgoUML aktualisiert den Dialog nicht 
            	sofort, wenn Änderungen in den Diagrammen vorgenommen 
            	werden: Änderung des Namens, hinzufügen von Diagrammen, löschen 
            	von Diagrammen.<!-- This is issue 2475. -->
            </para>

          </warning>

        </sect2>

        <sect2 id="s2.ref.menu_find">

          <title>
			<phrase lang="en">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center" 
          						fileref="images/icons/find.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		Find...
          </phrase>
			<phrase lang="de">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center" 
          						fileref="images/icons/find.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		Suchen...
          </phrase>
		</title>

          <para lang="en">This menu entry brings up a non-modal dialog box for 
          the ArgoUML search engine.</para>
          <para lang="de">
          	Diese Menü öffnet einen nicht-modalen Dialog mit der ArgoUML-
          	Suchmaschine.
          </para>

          <figure float="1" id="fig.ref.menu_find">

            <title>
				<phrase lang="en">
					The dialog for <literal>Find...</literal>.
				</phrase>
				<phrase lang="de">
					Der Dialog für <literal>Suchen...</literal>.
				</phrase>
			</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/menu_find.png"
             format="PNG"/></imageobject></mediaobject></screenshot>
          </figure>

          <!-- 
          <para lang="en">At the top, the dialog box has four tabs labelled 
          <literal>Name and Location</literal>, <literal>
          Last Modified</literal>, <literal>Tagged Values</literal> and 
          <literal>Constraints</literal>. Of these all but the first 
          are grayed out in the V0.22 version of ArgoUML (because they
          are not implemented yet), so the first tab is always 
          selected.</para>
          <para lang="de">
          	Oben im Dialog befinden sich die vier Register <literal>Name und 
          	Ort</literal>, <literal>Zuletzt geändert</literal>, <literal>
          	Gekennzeichnete Werte</literal> und <literal>Randbedingungen
          	</literal>. Bis auf das erste sind alle in V0.22 von ArgoUML 
          	deaktiviert (weil sie noch nicht implementiert sind), so dass das  
	        erste Register immer markiert ist.
          </para> 
          -->
          <!-- This is issue 2501 -->

          <para lang="en">The <literal>Name and Location</literal> specifies the 
          search to be made. It contains the following:</para>
          <para lang="de">
          	Das Register <literal>Name und Ort</literal> definiert die 
          	durchzuführende Suche. Es enthält folgendes: 
          </para>

          <itemizedlist>

            <listitem>

              <para lang="en">A text box labeled <literal>Element Name:</literal> 
              specifies the name of the model element to search 
              for. Wild cards (<literal>*</literal>, <literal>
              ?</literal>) may be used here. A drop down gives access 
              to find expressions previously used.</para>
              <para lang="de">
              	Ein Textfeld mit der Bezeichnung <literal>Elementname:</literal>, 
              	in dem der Name des zu suchenden Modellelementes spezifiziert 
              	wird. Die Ersetzungszeichen (<literal>*</literal> und <literal>?
              	</literal> können hier verwendet werden. Ein Pull-down-Menü 
              	gewährt den Zugriff auf vorher verwendete Ausdrücke.
              </para>

            </listitem>

            <listitem>

              <para lang="en">A text box labeled <literal>In Diagram:</literal> 
              specifies which diagrams are to be searched. Again wild 
              cards may be used. Both these two text boxes have a 
              default entry of <literal>*</literal>, i.e. match 
              anything.</para>
              <para lang="de">
              	Ein Textfeld mit der Bezeichnung <literal>Im Diagramm:</literal> 
              	spezifiziert, welche Diagramme durchsucht werden sollen. Erneut 
              	können Ersetzungszeichen verwendet werden. Beide Textfelder 
              	haben den Standardeintrag <literal>*</literal>. Z.B. Alles 
              	suchen.
              </para>

            </listitem>

            <listitem>

              <para lang="en">To the right of these two text boxes, a selector 
              labeled <literal>Element Type:</literal> allows you to 
              specify the UML metaclass for which you are 
              searching.</para>
              <para lang="de">
              	Rechts von den beiden Textfeldern erlaubt ein Auswahlelement 
              	mit der Bezeichnung <literal>Elementtyp: </literal> die 
              	Spezifikation der zu suchenden UML-Metaklasse.
              </para>

            </listitem>

            <listitem>

              <para lang="en">A selector labeled <literal>Find in:</literal> 
              allows the search to be made over the entire project (the 
              default) or as a sub-search over the results of a 
              previous search. When opened, a list of all the search 
              result tabs appears.</para>
              <para lang="de">
              	Die Auswahl <literal>Suche in:</literal> erlaubt die Suche über 
              	das gesamte Projekt (Standard) oder eine Teilsuche über die 
              	Ergebnisse der vorhergehenden Suche. Wenn sie geöffnet ist, 
              	erscheint eine Liste mit Registern, welche die Suchergebnisse 
              	enthalten.
              </para>

            </listitem>

            <listitem>

              <para lang="en">Beneath these boxes is the button <literal>Clear 
              Tabs</literal>. This clears the display of tabs with the 
              results from previous searches (see below). This button 
              is downlighted if there are no tabs but the <literal>
              Help</literal> tab.</para>
              <para lang="de">
              	Unterhalb dieser Felder befindet sich die Schaltfläche <literal>
              	Lösche Register</literal>. Diese löscht die Darstellung der 
              	Register aus den vorangegangenen Suchläufen (siehe unten). Diese 
              	Schaltfläche ist deaktiviert, wenn keine Register, ausser dem 
              	Register Hilfe, vorhanden sind.
              </para>

            </listitem>

            <listitem>

              <para lang="en">And finally, there is the button <literal>
              Find</literal>. This causes the search specified in the 
              text boxes and selectors above to be executed. The 
              results are displayed in a tab taking up the lower two 
              thirds of the page.</para>
              <para lang="de">
              	Und abschliessend gibt es die Schaltfläche <literal>Suchen
              	</literal>. Diese löst die Suche anhand der in den Text- und 
              	Auswahlfeldern spezifizierten Suchkriterien aus. Die Ergebnisse 
              	werden in einem Register angezeigt, welche die unteren beiden 
              	Drittel der Seite einnehmen.
              </para>

            </listitem>

          </itemizedlist>

          <para lang="en">The lower two thirds of the dialog comprises an initial 
          tab (labeled <literal>Help</literal>) giving summary help, 
          and further tabs displaying the results of searches. These 
          search tabs are labeled with a summary of the search 
          <emphasis>element</emphasis> 
          <literal>in</literal> <emphasis>diagram</emphasis> and are 
          divided horizontally in two halves.</para>
          <para lang="de">
          	Die beiden unteren Drittel des Dialoges beinhalten ein grundlegendes 
          	Register (mit <literal>Hilfe</literal> bezeichnet), das eine 
          	zusammenfassende Hilfestellung bereitstellt und weitere Register, 
          	welche die Ergebnisse der Suchläufe anzeigen. Diese Bezeichnungen 
          	der Suchregister werden aus dem gesuchten <emphasis>Element</emphasis> 
          	<literal>im</literal><emphasis>Diagramm</emphasis> zusammengesetzt 
          	und sind horizontal in zwei Hälften unterteilt.
          </para>

          <para lang="en">Button&nbsp;1 double clicking on these tabs removes the tab, 
          and spawns a new window that contains the tab contents, i.e. 
          the search results. This window can be moved and sized at 
          will. This does not work for the help tab.</para>
          <para lang="de">
          	Der Taste&nbsp;1-Doppelklick auf dieses Register entfernt dieses und 
          	öffnet ein neues Fenster, welches den Registerinhalt enthält. Z. B. 
          	die Suchergebnisse. Diese Fenster kann beliebig verschoben und in 
          	seiner Größe verändert werden. Beim Register Hilfe funktioniert dies 
          	nicht.
          </para>

          <para lang="en">The top half is labeled <literal>Search 
          Results:</literal> followed by a count of the number of items 
          found. It comprises a table with one row for each
          model element and four columns. The width of the columns can be 
          adjusted.</para>
          <para lang="de">
          	Die obere Hälfte ist mit <literal>Ergebnis: </literal> und der 
          	Anzahl der gefundenen Elemente bezeichnet. Es zeigt eine Tabelle 
          	mit einer Zeile mit vier Spalten für jedes Modellelement. Die 
          	Breite der Spalten kann eingestellt werden.
          </para>

          <itemizedlist>

            <listitem>

              <para lang="en"><literal>Type</literal>. Lists the type of
              model element.</para>
              <para lang="de">
              	<literal>Typ</literal>. Enthält den Typ des Modellelementes.
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Name</literal>. Lists the name given to 
              the model element.</para>
              <para lang="de">
              	<literal>Name</literal>. Enthält den Namen des Modellelementes.
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>In Diagram</literal>. Where the model element 
              is visible on a diagram, this lists the name of the 
              diagram, otherwise it shows <literal>N/A</literal>.</para>
              <para lang="de">
				<literal>Im Diagramm</literal>. Wo Modellelemente in einem 
				Diagramm sichtbar sind, werden hier die Namen der Diagramme 
				aufgelistet. Im anderen Fall wird <literal>N/A</literal> 
				angezeigt.
			  </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Description</literal>. Contains a 
              description of the model element. In ArgoUML V0.18 
              this seems to be restricted to the single entry <literal>
              docs</literal>.</para>
              <para lang="de">
				<literal>Beschreibung</literal>. Enthält die Beschreibung des 
				Modellelementes. In ArgoUML V0.18 scheint dies auf einen 
				Dokumenteintrag begrenzt zu sein.
              </para>

            </listitem>

          </itemizedlist>

          <para lang="en">Button&nbsp;1 click on any row will give more information on 
          that model element by showing related model elements in the bottom half 
          (see below). Double click on any row describing a model element 
          on a diagram and that item and diagram will be 
          selected.</para>
          <para lang="de">
          	Der Taste&nbsp;1-Klick auf eine Zeile wird mehr Informationen über 
          	das Modellelement preisgeben, indem es die zugehörigen Modellelemente 
          	in der unteren Hälfte (siehe unten) darstellt. Der Doppelklick auf 
          	eine Zeile beschreibt ein Modellelement im Diagramm und das Element 
          	und das Diagramm werden markiert.
          </para>

          <para lang="en">The bottom half of the tab is a table labeled <literal>
          Related Elements:</literal> and is a table with the same 
          columns as the top half. When a model element has been 
          selected in the top half, this table shows the details of any 
          related elements.</para>
          <para lang="de">
          	Die untere Hälfte des Registers ist eine Tabelle mit der Bezeichnung 
			<literal>Zugehörige Elemente:</literal> mit den gleichen Spalten 
			wie in der oberen Hälfte. Wenn ein Modellelement in der oberen 
			Hälfte markiert wurde, zeigt diese Tabelle die Details eines jeden 
			zugehörigen Elementes. 
          </para>

          <tip>

            <para lang="en">Enlarging the dialog vertically shows that the 
            &quot;Related Items&quot; part changes in size, but not the 
            Search results part. However, between them is a divider 
            line and when hovering over this line, the mouse pointer 
            changes into a sizing icon, and the border between these 2 
            areas can be moved up or down to redistribute the space in 
            the window.</para>
            <para lang="de">
            	Wenn Sie den Dialog vertikal vergrössern, zeigt es sich, dass 
            	der Teil &quot;Zugehörige Elemente&quot; ebenfalls seine Größe 
            	ändert, aber nicht der Teil mit den Suchergebnissen. Zwischen 
            	diesen Teilen befindet sich jedoch eine Trennlinie. Wenn Sie die 
            	Maus darüber bewegen, verwandelt sich der Mauszeiger in das 
            	Grössenveränderungs-Symbol und die Begrenzung zwischen diesen 
            	beiden Bereichen kann nach oben oder nach unten bewegt werden, 
            	um den Platz im Fenster aufzuteilen.
            </para>

          </tip>

          <warning>

            <para lang="en">This dialog box is not modal, which allows it to 
            remain open while editing the model for easy navigation. 
            But the V0.26 implementation of ArgoUML does not immediately 
            update the dialog box with changes made to the found 
            model elements: change of model element name, change of diagram name. 
            Deletion of a diagram does not stop the possibility to 
            navigate to it.
            <!-- This is issue 4376. -->
            </para>
            <para lang="de">
            	Dieser Dialog ist nicht modal, was es erlaubt, dass er während 
            	des editierens des Modelles geöffnet bleiben kann. Aber die 
            	Implementierung der Version 0.26 von ArgoUML aktualisiert diesen 
            	Dialog nicht sofort, wenn Änderungen an den gefundenen 
            	Modellelementen vorgenommen werden: Änderungen des Namens des 
            	Modellelementes, Änderung des Diagrammnamens. Das Löschen eines 
            	Diagrammes stoppt nicht die Möglichkeit danach zu suchen.
            	<!-- This is issue 4376. -->
            </para>

          </warning>

        </sect2>

        <sect2 id="s2.ref.menu_zoom">

          <title>
			<phrase lang="en">Zoom</phrase>
			<phrase lang="de">Zoom</phrase>
		  </title>

          <para lang="en">This entry brings up a sub-entry, which allows scaling 
          the view of all diagrams to a factor of its normal size. This 
          setting is not saved persistently.</para>
          <para lang="de">
          	Diese Menüoption öffnet ein Untermenü, welches das Skalieren aller 
          	Diagramme um einen Faktor erlaubt. Diese Einstellung  wird nicht 
          	persistent gespeichert.
          </para>

          <para lang="en">The sub-menu items that can be selected are:</para>
          <para lang="de">Im Untermenü kann folgendes ausgewählt werden:</para>

          <itemizedlist>

            <listitem>

              <para lang="en"><literal>Zoom Out</literal>. Shortcut (Ctrl-Minus). 
              Gives more overview over the drawing.</para>
              <para lang="de">
              	<literal>Verkleinern</literal>. Tastenkürzel (Strg-Minus). 
              	Verbessert den Überblick über die Zeichnung.
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Zoom Reset</literal>. Returns to the 
              default zoom ratio (i.e. 100%).</para>
              <para lang="de">
              	<literal>Rückgängig</literal>.
              	Kehrt zur Standard-Zoomrate zurück (z.B. 100%). 
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Zoom In</literal>. Shortcut (Ctrl-Plus). 
              Makes the items on the drawings bigger.</para>
              <para lang="de">
              	<literal>Vergrössern</literal>. Tastenkürzel (Strg-Plus).
              	Vergrössert die Elemente in den Zeichnungen. 
              </para>

            </listitem>

          </itemizedlist>

        </sect2>

        <sect2 id="s2.ref.menu_adjust_grid">

          <title>
			<phrase lang="en">Adjust Grid</phrase>
			<phrase lang="de">Gitter einstellen</phrase>
		  </title>

          <para lang="en">This allows selection of the grid representation on the screen 
          between the following:</para>
          <para lang="de">
          	Dieses Menü erlaubt folgende Auswahl der 
          	Bildschirm-Gitterdarstellungen:
          </para>

          <itemizedlist>

            <listitem>

              <para lang="en"><literal>Lines 16</literal>: 
              full grid at 16 pixel spacing. </para>
              <para lang="de">
	              <literal>Zeilen 16</literal>:
	              vollständiges Gitter, mit einem Zwischenraum von 16 Pixeln. 
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Lines 8</literal>:
              full grid at 8 pixel spacing.</para>
              <para lang="de">
	              <literal>Zeilen 8</literal>:
	              vollständiges Gitter, mit einem Zwischenraum von 8 Pixeln.
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Dots 16</literal>:
              dots at 16 pixel spacing (the default).</para>
              <para lang="de">
	              <literal>Punkte 16</literal>:
	              Punkte, mit einem Zwischenraum von 16 Pixeln (der Standard).
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Dots 32</literal>:
              dots at 32 pixel spacing.</para>
              <para lang="de">
	              <literal>Punkte 32</literal>:
	              Punkte, mit einem Zwischenraum von 32 Pixeln.
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>None</literal>:
              no grid of any form.</para>
              <para lang="de">
	              <literal>Kein Gitter</literal>:
	              Kein irgendwie geartetes Gitter.
              </para>

            </listitem>

          </itemizedlist>

        </sect2>

        <sect2 id="s2.ref.menu_grid_snap">

          <title>
			<phrase lang="en">Adjust Snap</phrase>
			<phrase lang="de">Einrasten einrichten</phrase>
		  </title>

          <para lang="en">This allows selection of the spacing of grid snapping
          between the following:</para>
          <para lang="de">
          	Dieses Menü erlaubt die Auswahl zwischen folgenden 
          	Gitter-Einrast-Schwellwerten:
          </para>

          <itemizedlist>

            <listitem>

              <para lang="en"><literal>Snap 4</literal>:
              snap at 4 pixel spacing.</para>
              <para lang="de">
              	<literal>Einrasten 4</literal>: 
              	Rastet innerhalb eines Bereiches von 4 Pixeln ein.
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Snap 8</literal>:
              snap at 8 pixel spacing (the default).</para>
              <para lang="de">
              	<literal>Einrasten 8</literal>: 
              	Rastet innerhalb eines Bereiches von 8 Pixeln ein.
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Snap 16</literal>:
              snap at 16 pixel spacing.</para>
              <para lang="de">
              	<literal>Einrasten 16</literal>: 
              	Rastet innerhalb eines Bereiches von 16 Pixeln ein.
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Snap 32</literal>:
              snap at 32 pixel spacing.</para>
              <para lang="de">
              	<literal>Einrasten 32</literal>: 
              	Rastet innerhalb eines Bereiches von 32 Pixeln ein.
              </para>

            </listitem>

          </itemizedlist>

          <note>

            <para lang="en">There is no option to turn off snap to grid 
            altogether</para>
            <para lang="de">
            	Es gibt keine Option das Einrasten auf das Gitter abzustellen.
            </para>

          </note>

          <note>

            <para lang="en">If you wish to align existing elements to changed
            snap boundaries, 
            you can use the <literal>
            Arrange &gt; Align To Grid Snap</literal> menu (see 
            <xref linkend="s2.ref.menu_align"/>).</para>
            <para lang="de">
            	Wenn Sie existierende Elemente auf geänderte Einrastbereiche  
            	ausrichten wollen, können Sie das Menü <literal>Anordnen &gt; 
            	Am Gitter ausrichten</literal> verwenden (siehe  
            	<xref linkend="s2.ref.menu_align"/>).
            </para>

          </note>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Page Breaks</phrase>
			<phrase lang="de">Seitenumbrüche</phrase>
		  </title>

          <para lang="en">This toggles whether page breaks are shown on the 
          diagram (as white dotted lines).</para>
          <para lang="de">
          	Mit dieser Menüoption werden die Seitenumbrüche im Diagramm 
          	dargestellt oder nicht (durch weiss gepunktete Linien).
          </para>

          <warning>
            <para lang="en">This menu item does not work in ArgoUML V0.26.</para>
            <para lang="de">
            	Diese Menüoption funktioniert in ArgoUML V0.26 nicht.
            </para>
            <!-- This menu-item is incorrectly implemented in the 
            V0.22 version of ArgoUML, since it should be a tick box 
            toggle.  This is issue  604.
            Also, the lines are reported to be incorrect 
            regarding the chosen paper format and orientation.
            This is issue 1874. 
            And the lines are reported not visible at all in ArgoUML V0.24.
            This is mentioned in issue 604 and in issue 1874. 
            -->
          </warning>

        </sect2>
        
        <sect2>
          <title>
			<phrase lang="en">Toolbars</phrase>
			<phrase lang="de">Symbolleisten</phrase>
		  </title>
          <para lang="en">This menu allows the user to hide or show any of the bars at will. 
            By default, all of them are shown.</para>
          <para lang="de">
          	Dieses Menü erlaubt es dem Anwender beliebige Symbolleisten zu 
          	verbergen oder anzuzeigen. Standardmäßig werden alle angezeigt.
          </para>
        </sect2>

        <sect2>

        	<title>
				<phrase lang="en">XML Dump</phrase>
				<phrase lang="de">XML-Quelltext</phrase>
			</title>

        	<para lang="en">
        		This activates a window that shows the complete contents 
        		of the current project in XML format. 
        	</para>
        	<para lang="de">
        		Aktiviert ein Fenster, das den gesamten Inhalt des aktuellen 
        		Projektes im XML-Format darstellt.
        	</para>

        	<para lang="en">Although very useful for debugging ArgoUML, 
        	this menu function is hardly interesting to the common user.</para>
        	<para lang="de">
        		Obwohl sehr nützlich zum Debuggen von ArgoUML, ist diese 
        		Menüoption für den normalen Benutzer wenig interessant.
        	</para>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.create.diagram.menu">

        <title>
			<phrase lang="en">The Create Menu</phrase>
			<phrase lang="de">Das Menü "Neues Diagramm"</phrase>
		</title>

        <para lang="en">This menu provides for creating the various types of UML 
        diagrams supported by ArgoUML.</para>
        <para lang="de">
        	Dieses Menü ist dafür gedacht, die verschiedenen, von ArgoUML 
        	unterstützten Typen von UML-Diagrammen zu erzeugen.
        </para>

        <sect2 id="s2.ref.create.diagram.use_case_diagram">

          <title>
			<phrase lang="en">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/use_case_diagram.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		New Use Case Diagram
          </phrase>
			<phrase lang="de">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/use_case_diagram.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		Anwendungsfalldiagramm
          </phrase>
		</title>

          <para lang="en">This menu entry creates a blank use case diagram, and 
          selects that diagram in the editing pane. If a package is 
          currently selected, then the use case diagram will be created 
          within that package. 
          This means that it will be shown within the package on 
          the explorer hierarchy (under Package-centric view) and 
          model elements created on the diagram will be created within the 
          namespace of the package. This does not only apply to a 
          package, but also to a class, interface, use case, etc.</para>
          <para lang="de">
          	Dieser Menüeintrag erstellt ein leeres Anwendungsfalldiagramm und 
          	markiert das Diagramm im Editierfenster. Ist ein Paket aktuell
          	markiert, dann wird das Anwendungsfalldiagramm innerhalb dieses 
          	Paketes erstellt. Das bedeutet, dass es in der Explorerhierarchie 
          	(Ansicht: Nach Paketen) als Teil des Paketes dargestellt wird. 
          	Im Diagramm erstellte Modellelemente werden im Namensraum des 
          	Paketes erzeugt. Dies wirkt sich nicht nur auf das Paket aus, 
          	sondern auch auf eine Klasse, Schnittstelle, Anwendungsfall, usw..
          </para>

          <tip>

            <para lang="en">This does not prevent model elements from other 
            namespaces/packages appearing on the diagram. They can be 
            added from the explorer using <literal>Add to 
            Diagram</literal> from the button&nbsp;2 pop-up menu.</para>
            <para lang="de">
            	Das verhindert nicht, dass Modellelemente aus anderen 
            	Namensräumen/Paketen im Diagramm erscheinen. Sie können im 
            	Explorer mit Hilfe des Popup-Menüs <literal>Zum Diagramm 
            	hinzufügen</literal> hinzugefügt werden.
            </para>

          </tip>

        </sect2>

        <sect2 id="s2.ref.create.diagram.class_diagram">

          <title>
			<phrase lang="en">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/class_diagram.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		New Class Diagram
          </phrase>
			<phrase lang="en">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/class_diagram.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		Klassendiagramm
          </phrase>
		</title>

          <para lang="en">This menu entry creates a blank class diagram, and 
          selects that diagram in the editing pane. If a package is 
          currently selected, the class diagram will be created within 
          that package. 
          This means that it will be shown within the package on the 
          explorer hierarchy (under Package-centric view) and model elements 
          created on the diagram will be created within the namespace 
          of the package. This does not only apply to a package, but 
          also to a class, interface, use case, etc.</para>
          <para lang="de">
          	Dieser Menüeintrag erstellt ein leeres Klassendiagramm und markiert 
          	das Diagramm im Editierfenster. Ist ein Paket aktuell markiert, 
          	dann wird das Klassendiagramm innerhalb dieses Paketes erstellt. 
          	Das bedeutet, dass es in der Explorerhierarchie (Ansicht: Nach 
          	Paketen) als Teil des Paketes dargestellt wird. Im Diagramm 
          	erstellte Modellelemente werden innerhalb des Namensraumes des 
          	Paketes erstellt. Dies wirkt sich nicht nur auf das Paket aus, 
          	sondern auch auf eine Klasse, Schnittstelle, Anwendungsfall, usw..
          </para>

          <tip>

            <para lang="en">This does not prevent model elements from other 
            namespaces/packages appearing on the diagram. They can be 
            added from the explorer using <literal>Add to 
            Diagram</literal> from the button&nbsp;2 pop-up menu.</para>
            <para lang="de">
            	Das verhindert nicht, dass Modellelemente aus anderen 
            	Namensräumen/Paketen im Diagramm erscheinen. Sie können im 
            	Explorer mit Hilfe des Popup-Menüs <literal>Zum Diagramm 
            	hinzufügen</literal> hinzugefügt werden.
            </para>

          </tip>

        </sect2>

        <sect2 id="s2.ref.create.diagram.sequence_diagram">

          <title>
			<phrase lang="en">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/sequence_diagram.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		New Sequence Diagram
          	</phrase>
			<phrase lang="de">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/sequence_diagram.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		Sequenzdiagramm
          	</phrase>
		  </title>

          <para lang="en">This menu entry creates a blank sequence diagram, and 
          selects that diagram in the editing pane. 
          It also creates a <literal>
          Collaboration</literal> UML element, 
          which is a container for the elements shown on the new diagram.
          If a class is 
          currently selected, a sequence diagram and a collaboration
          will be created
          that represent the behaviour of that class. 
          This means that the created elements 
          will be shown within the class in the 
          explorer hierarchy (under Package-centric view) and model elements 
          created on the diagram will be created within the namespace 
          of the collaboration. A sequence diagram may 
          not only represent the behavior of a class, but 
          also of any other classifier, such as interface, use case, etc.
          It is also possible to make sequence diagrams for an operation.
          </para>
          <para lang="de">
          	Dieser Menüeintrag erstellt ein leeres Sequenzdiagramm und markiert 
          	das Diagramm im Editierfenster. Er erzeugt auch ein UML-Element 
          	<literal>Kollaboration</literal>, das ein Container für die im 
          	neuen Diagramm dargestellten Elemente ist. Wenn eine Klasse aktuell 
          	markiert ist, wird ein Sequenzdiagramm und eine Kollaboration 
          	erstellt, die das Verhalten dieser Klasse repräsentieren. Das 
          	bedeutet, dass die erstellten Elemente in der Explorerhierarchie 
          	(Ansicht: Nach Paketen) als Teil der Klasse dargestellt werden. 
          	Im Diagramm erstellte Modellelemente werden innerhalb des 
          	Namensraumes der Kollaboration erzeugt. Ein Sequenzdiagramm muss 
          	nicht nur das Verhalten einer Klasse repräsentieren, sondern auch 
          	jeden anderen Klassifizierer, wie zum Beispiel eine Schnittstelle, 
          	einen Anwendungsfall, usw.. Es ist auch möglich, Sequenzdiagramme 
          	für eine Operation zu erstellen.
          </para>

        </sect2>

        <sect2 id="s2.ref.create.diagram.collaboration_diagram">

          <title>
			<phrase lang="en">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/collaboration_diagram.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		New Collaboration Diagram
            </phrase>
			<phrase lang="de">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/collaboration_diagram.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		Kollaborationsdiagramm
            </phrase>
		  </title>

          <para lang="en">This menu entry creates a blank collaboration diagram, 
          and selects that diagram. 
          It also creates a <literal>
          Collaboration</literal> UML element, 
          which is a container for the elements shown on the new diagram.
          If a 
          package is selected when this menu item is activated, 
          the collaboration diagram will 
          be created within a collaboration within that package.
          This means that it 
          will be shown within the collaboration within the package on 
          the explorer hierarchy (under Package-centric view) and 
          model elements created on the diagram will be created within the 
          namespace of the collaboration within the package.</para>
          <para lang="de">
          	Dieser Menüeintrag erstellt ein leeres Kollaborationsdiagramm und 
          	markiert das Diagramm. Es erstellt auch ein UML-Element <literal>
          	Kollaboration</literal>, das ein Container für die im neuen 
          	Diagramm dargestellten Elemente ist. Wenn ein Paket markiert ist, 
          	wenn dieser Menüeintrag aktiviert wird, wird das 
          	Kollaborationsdiagramm unterhalb einer Kollaboration innerhalb 
          	dieses Paketes erstellt. Das bedeutet, dass es in der 
          	Explorerhierarchie (Ansicht: Nach Paketen) als Teil der 
          	Kollaboration innerhalb des Paketes dargestellt wird. Im Diagramm 
          	erstellte Modellelemente werden im Namensraum der Kollaboration des 
          	Paketes erstellt.
          </para>

          <tip>

            <para lang="en">This does not prevent model elements from other 
            namespaces/packages appearing on the diagram. They can 
            added from the explorer by 
            dragging or by 
            using <literal>Add to Diagram</literal> 
            from the button&nbsp;2 pop-up menu.</para>
            <para lang="de">
            	Das verhindert nicht, dass Modellelemente aus anderen 
            	Namensräumen/Paketen im Diagramm erscheinen. Sie können im 
            	Explorer mit Hilfe des Popup-Menüs <literal>Zum Diagramm 
            	hinzufügen</literal> hinzugefügt werden.
            </para>

          </tip>

        </sect2>

        <sect2 id="s2.ref.create.diagram.state_diagram">

          <title>
			<phrase lang="en">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/state_diagram.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		New Statechart Diagram
          	</phrase>
			<phrase lang="de">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/state_diagram.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		Zustandsübergangsdiagramm
          	</phrase>
		  </title>

          <para lang="en">This menu entry creates a blank statechart diagram 
          associated with the currently selected class, and selects 
          that diagram in the editing pane. 
          It also creates a <literal>
          Statemachine</literal> UML element, 
          which is a container for the elements shown on the new diagram.
          </para>
          <para lang="de">
	          Dieser Menüeintrag erstellt ein, mit der aktuellen Klasse 
	          verknüpftes, leeres Zustandsübergangsdiagramm und markiert das 
	          Diagramm im Editierfenster. Er erstellt auch ein UML-Element 
	          <literal>Zustandsautomat</literal>, der ein Container für die im 
	          neuen Diagramm dargestellten Elemente ist.
          </para>

          <para lang="en">Statechart diagrams are
            associated with a model element capable of dynamic behavior, such as
            a classifier or a behavioral feature, 
            which provides the context for the
            state machine it represents. 
            Suitable model elements are e.g. a class,
            an operation, and a use case. 
            If such element is not selected at the time the
           <literal>New Statechart Diagram</literal> 
            menu is activated,
            then an unattached  
            statemachine is created.
            To obtain a well-formed UML model, 
            you have to set the context of the statemachine 
            on its details pane.
            </para>
          <para lang="de">
          	Zustandsübergangsdiagramme sind mit einem Modellelement mit 
          	dynamischem Verhalten verknüpft, wie z.B. einem Klassifizierer oder 
          	einer Verhaltenseigenschaft, welche den Kontext für den zu 
          	repräsentierenden Zustandsautomaten enthält. Passende Modellelemente 
          	sind zum Beispiel eine Klasse, eine Operation und ein Anwendungsfall. 
          	Wenn kein solches Elemente zum Zeitpunkt des aktivierens des Menüs 
          	<literal>Neues Zustandsübergangsdiagramm</literal> markiert ist, 
          	dann wird eine ungebundener Zustandsautomat erstellt. Um ein 
          	korrektes UML-Modell zu erhalten, müssen Sie den Kontext des 
          	Zustandsautomaten im Detailfenster einstellen.
          </para>

        </sect2>

        <sect2 id="s2.ref.create.diagram.activity_diagram">

          <title>
			<phrase lang="en">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/activity_diagram.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		New Activity Diagram
          	</phrase>
			<phrase lang="de">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/activity_diagram.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		Aktivitätsdiagramm
          	</phrase>
		  </title>

          <para lang="en">This menu entry creates a blank activity diagram 
          associated with the currently selected class, and selects 
          that diagram in the editing pane. 
          It also creates a <literal>
          ActivityGraph</literal> UML element, 
          which is a container for the elements shown on the new diagram.
          </para>
          <para lang="de">
          	Dieser Menüeintrag erstellt ein, mit der aktuell markierten Klasse 
          	verknüpftes, leeres Aktivitätsdiagramm und markiert das Diagramm 
          	im Editierfenster. Er erzeugt auch ein UML-Element <literal>
          	Aktivitätsgraph</literal>, der einen Container für die im neuen 
          	Diagramm dargestellten Elemente ist.
          </para>

          <para lang="en">Activity diagrams are 
            associated with a model element capable of dynamic behavior, such as
            packages, classifiers (including use cases) 
            and behavioral features. Suitable model elements are e.g. a 
            class, a use case, an operation, and a package. 
            If such element is not selected at the time the
           <literal>New Activity Diagram</literal> 
            menu is activated,
            then an unattached  
            ActivityGraph is created.
            To obtain a well-formed UML model, 
            you have to set the context of the ActivityGraph 
            on its details pane.
          </para>
          <para lang="de">
          	Aktivitätsdiagramm sind mit einem Modellelement mit dynamischem 
          	Verhalten verknüpft, wie z.B. Pakete, Klassifizierer (
          	einschliesslich Anwendungsfällen) und Verhaltenseigenschaften. 
          	Passende Modellelemente sind z.B. eine Klasse, ein Anwendungsfall, 
          	eine Operation und ein Paket. Wenn ein solches Element zum Zeitpunkt 
          	des aktivierens des Menüs <literal>Neues Aktivitätsdiagramm</literal> 
          	nicht markiert ist, wird ein ungebundener Aktivitätsgraph erstellt. 
          	Um ein korrektes UML-Modell zu erhalten, müssen Sie den Kontext des 
          	Aktivitätsgraphen im Detailfenster angeben.
          </para>

        </sect2>

        <sect2 id="s2.ref.create.diagram.deployment_diagram">

          <title>
			<phrase lang="en">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/deployment_diagram.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		New Deployment Diagram
         	</phrase>
			<phrase lang="de">
				<guiicon>
					<inlinemediaobject>
						<imageobject>
          					<imagedata align="center"
           						fileref="images/icons/deployment_diagram.gif"
           						format="GIF"/>
           				</imageobject>
           			</inlinemediaobject>
           		</guiicon> 
          		Verteilungsdiagramm
         	</phrase>
		  </title>

          <para lang="en">This menu entry creates a blank deployment diagram, and 
          selects that diagram in the editing pane. 
          <!--If a package is 
          currently selected, the deployment diagram will be created 
          within that package, it will be shown within the package on 
          the explorer hierarchy (under Package-centric view) and 
          model elements created on the diagram will be created within the 
          namespace of the package.-->
          </para>
          <para lang="de">
	          Dieser Menüeintrag erstellt ein leeres Verteilungsdiagramm und 
	          markiert das Diagramm im Editierfenster.
	          <!--If a package is 
	          currently selected, the deployment diagram will be created 
	          within that package, it will be shown within the package on 
	          the explorer hierarchy (under Package-centric view) and 
	          model elements created on the diagram will be created within the 
	          namespace of the package.-->
	       </para>

          <tip>

            <para lang="en">Model elements from other 
            namespaces/packages can be
            added from the explorer by
            dragging or by
            using <literal>Add to Diagram</literal> 
            from the button&nbsp;2 pop-up menu.</para>
            <para lang="de">
            	Modellelemente aus anderen Namensräumen/Paketen können vom 
            	Explorer aus durch ziehen oder durch das Popup-Menü <literal>Zum 
            	Diagramm hinzufügen</literal> hinzugefügt werden.
            </para>

          </tip>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.menu_arrange">

        <title>
			<phrase lang="en">The Arrange Menu</phrase>
			<phrase lang="de">Das Menü Anordnen</phrase>
		</title>

        <para lang="en">This menu provides a range of functions to help in the 
        alignment of model elements on diagrams within the editing pane. In 
        general the menu function invoked is applied to any model element or 
        model elements currently selected in the editing pane.</para>
        <para lang="de">
        	Dieses Menü enthält Funktionen, die dabei helfen, die Modellelemente 
        	in den Diagrammen des Editierfensters auszurichten. Die aufgerufenen 
        	Menüfunktionen werden hauptsächlich auf jedes Modellelement oder 
        	auf die aktuell im Editierfenster markierten Modellelemente 
        	angewendet.
        </para>

        <sect2 id="s2.ref.menu_align">

          <title>
			<phrase lang="en">Align</phrase>
			<phrase lang="de">Ausrichten</phrase>
		</title>

          <para lang="en">This sub-menu aligns the selected items. There are 
          seven alignment options provided.</para>
          <para lang="de">
          	Dieses Untermenü richtet die markierten Elemente aus. Es enthält 
          	sieben Ausrichtungsoptionen.
          </para>

          <itemizedlist>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/align_tops.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Align Tops</literal>. Aligns the selected 
              model elements by their top edges.</para>
              <para lang="de">
	              <guiicon>
	              	<inlinemediaobject>
	              		<imageobject>
	              			<imagedata align="center"
	              				fileref="images/icons/align_tops.gif" 
	              				format="GIF" />
	              		</imageobject>
	              	</inlinemediaobject>
	              </guiicon>
	              <literal>Oben bündig</literal>. Richtet die markierten 
	              Modellelemente entlang  ihren oberen Kanten aus.
              </para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/align_bottoms.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Align Bottoms</literal>. Aligns the selected 
              model elements by their bottom edges.</para>
              <para lang="de">
	              <guiicon>
	              	<inlinemediaobject>
	              		<imageobject>
	              			<imagedata align="center"
	              				fileref="images/icons/align_bottoms.gif" 
	              				format="GIF" />
	              		</imageobject>
	              	</inlinemediaobject>
	              </guiicon>
	              <literal>Unten bündig</literal>. Richtet die markierten 
	              Modellelemente entlang ihrer unteren Kanten aus. 
              </para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/align_rights.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Align Rights</literal> (Shortcut Ctrl-R). Aligns 
              the selected model elements by their right edges.</para>
              <para lang="de">
	              <guiicon>
	              	<inlinemediaobject>
	              		<imageobject>
	              			<imagedata align="center"
	              				fileref="images/icons/align_rights.gif" 
	              				format="GIF" />
	              		</imageobject>
	              	</inlinemediaobject>
	              </guiicon>
	              <literal>Rechtsbündig</literal> (Tastenkürzel Strg-R). Richtet 
	              die markierten Modellelemente entlang ihrer rechten Kanten aus. 
              </para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/align_lefts.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Align Lefts</literal> (Shortcut Ctrl-L). Aligns 
              the selected model elements by their left edges.</para>
              <para lang="de">
	              <guiicon>
	              	<inlinemediaobject>
	              		<imageobject>
	              			<imagedata align="center"
	              				fileref="images/icons/align_lefts.gif" 
	              				format="GIF" />
	              		</imageobject>
	              	</inlinemediaobject>
	              </guiicon>
	              <literal>Linksbündig</literal> (Tastenkürzel Strg-L). Richtet 
	              die markierten Modellelemente entlang ihrer linken Kanten aus. 
              </para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/align_horizontal_centers.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Align Horizontal Centers</literal>. Aligns the 
              selected model elements so their horizontal centers are in a 
              vertical line.</para>
              <para lang="de">
	              <guiicon>
	              	<inlinemediaobject>
	              		<imageobject>
	              			<imagedata align="center"
	              				fileref="images/icons/align_horizontal_centers.gif"
	              				format="GIF" />
	              		</imageobject>
	              	</inlinemediaobject>
	              </guiicon>
	              <literal>Horizontal mittig</literal>. Richtet die markierten 
	              Modellelemente entlang der horizontalen Mitten in einer 
	              vertikalen Linie aus. 
              </para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/align_vertical_centers.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Align Vertical Centers</literal>. Aligns the 
              selected model elements so their vertical centers are in a 
              horizontal line.</para>
              <para lang="de">
	              <guiicon>
	              	<inlinemediaobject>
	              		<imageobject>
	              			<imagedata align="center"
	              				fileref="images/icons/align_vertical_centers.gif"
	              				format="GIF" />
	              		</imageobject>
	              	</inlinemediaobject>
	              </guiicon>
	              <literal>Vertikal mittig</literal>. Richtet die markierten 
	              Modellelemente entlang ihrer vertikalen Mitten in einer 
	              horizontalen Linie aus. 
              </para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/align_to_grid.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Align To Grid</literal>. Aligns the selected 
              model elements so their top and right edges are on the grid 
              snap boundary (see <xref linkend="s2.ref.menu_grid_snap"/>
              ) edge.</para>
              <para lang="de">
	              <guiicon>
	              	<inlinemediaobject>
	              		<imageobject>
	              			<imagedata align="center"
	              				fileref="images/icons/align_to_grid.gif" 
	              				format="GIF" />
	              		</imageobject>
	              	</inlinemediaobject>
	              </guiicon>
	              <literal>Am Gitter ausrichten</literal>. Richtet die markierten 
	              Modellelemente entlang ihrer oberen und rechten Kanten auf die 
	              Gittereinrastgrenzen aus ( siehe 
	              <xref linkend="s2.ref.menu_grid_snap"/>
	              ).
              </para>

              <tip>

                <para lang="en">The alignment is to the current <emphasis>grid 
                snap</emphasis> setting, which may be smaller, larger 
                or the same as the displayed grid. Since items are 
                aligned to the grid snap boundary any way when you 
                place them, this menu entry has no effect unless you 
                have either changed the grid snap to a larger value or 
                used one of the other <literal>Arrange</literal> menu 
                entries to push items off their initial 
                positions.</para>
                <para lang="de">
                	Die Ausrichtung erfolgt bezogen auf die aktuelle <emphasis>
                	Gittereinrast</emphasis>-Einstellung. Diese kann kleiner,
                	größer oder identisch mit dem dargestellten Gitter sein.
                	Seitdem die elemente an den Gittereinrastgrenzen ausgerichtet 
                	werden hat dieser Menüeintrag solange keine Auswirkungen bis 
                	Sie entweder die Gittereinrasteinstellungen auf einen 
                	größeren Wert eingestellt haben oder einen der anderen 
                	<literal>Anordnen</literal>-Menüeinträge verwendet haben, 
                	um die Elemente aus ihren ursprünglichen Positionen zu 
                	bewegen.
                </para>

              </tip>

            </listitem>

          </itemizedlist>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Distribute</phrase>
			<phrase lang="de">Anordnen</phrase>
		</title>

          <para lang="en">This sub-menu distributes the selected items. There are 
          four distribution options provided.</para>
          <para lang="de">
          	Dieses Untermenü ordnet die markierten Elemente an. Es enthält vier 
          	Optionen zum Anordnen.
          </para>

          <itemizedlist>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/distribute_horizontal_spacing.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Distribute Horizontal Spacing</literal>. The 
              leftmost and rightmost selected model elements are not moved. 
              The others are adjusted horizontally until the horizontal 
              space (i.e. from the right edge of the left model element to 
              the left edge of the right model element) is the same for all 
              of the selected items</para>
              <para lang="de">
	              <guiicon>
	              	<inlinemediaobject>
	              		<imageobject>
	              			<imagedata align="center"
	              				fileref="images/icons/distribute_horizontal_spacing.gif"
	              				format="GIF" />
	              		</imageobject>
	              	</inlinemediaobject>
	              </guiicon>
	              <literal>Horizontal gleiche Zwischenräume</literal>. Die am 
	              weitesten rechts und links befindlichen Modellelemente werden 
	              nicht bewegt. Die anderen werden horizontal justiert, bis der 
	              horizontale Zwischenraum (z.B. von der rechten Kante des linken 
	              Modellelementes zur linken Kante des rechten Modellelementes ) 
	              zwischen allen markierten Elementen gleich ist. 
              </para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/distribute_horizontal_centers.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Distribute Horizontal Centers</literal>. The 
              leftmost and rightmost selected model elements are not moved. 
              The others are adjusted horizontally until the distance 
              between the horizontal centers of all the selected items 
              is the same.</para>
              <para lang="de">
	              <guiicon>
	              	<inlinemediaobject>
	              		<imageobject>
	              			<imagedata align="center"
	              				fileref="images/icons/distribute_horizontal_centers.gif"
	              				format="GIF" />
	              		</imageobject>
	              	</inlinemediaobject>
	              </guiicon>
	              <literal>Horizontal gleiche Abstände</literal>. Die am 
	              weitesten rechts und links befindlichen Modellelemente werden 
	              nicht bewegt. Die anderen werden horizontal justiert, bis der 
	              Abstand zwischen den horizontalen Mitten aller markierten 
	              Elemente gleich ist. 
              </para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/distribute_vertical_spacing.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Distribute Vertical Spacing</literal>. The top 
              and bottom selected model elements are not moved. The others 
              are adjusted vertically until the vertical space (i.e. 
              from the bottom edge of the top model element to the top edge 
              of the bottom model element) is the same for all of the 
              selected items</para>
              <para lang="de">
	              <guiicon>
	              	<inlinemediaobject>
	              		<imageobject>
	              			<imagedata align="center"
	              				fileref="images/icons/distribute_vertical_spacing.gif"
	              				format="GIF" />
	              		</imageobject>
	              	</inlinemediaobject>
	              </guiicon>
	              <literal>Vertikal gleiche Zwischenräume</literal>. Die oberen 
	              und die unteren Modellelemente werden nicht bewegt. Die anderen 
	              werden vertikal justiert, bis der vertikale Zwischenraum (z.B. 
	              von der unteren Kante des oberen Modellelementes zur oberen 
	              Kante des unteren Modellelementes) für alle markierten 
	              Elemente gleich ist. 
              </para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/distribute_vertical_centers.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Distribute Vertical Centers</literal>. The top 
              and bottom selected model elements are not moved. The others 
              are adjusted vertically until the distance between the 
              vertical centers of all the selected items is the 
              same.</para>
              <para lang="de">
	              <guiicon>
	              	<inlinemediaobject>
	              		<imageobject>
	              			<imagedata align="center"
	              				fileref="images/icons/distribute_vertical_centers.gif"
	              				format="GIF" />
	              		</imageobject>
	              	</inlinemediaobject>
	              </guiicon>
	              <literal>Vertikal gleiche Abstände</literal>. Die oberen und 
	              die unteren Modellelemente werden nicht bewegt. Die anderen 
	              werden vertikal justiert, bis der Abstand zwischen den 
	              vertikalen Mitten aller markierten Elemente gleich ist. 
			  </para>

            </listitem>

          </itemizedlist>

        </sect2>

        <sect2 id="s2.ref.menu_reorder">

          <title>
			<phrase lang="en">Reorder</phrase>
			<phrase lang="de">Reihenfolge</phrase>
		  </title>

          <para lang="en">This sub-menu adjusts the ordering of overlapping 
          items. There are four reorder options provided.</para>
          <para lang="de">
          	Dieses Untermenü bestimmt die Reihenfolge überlappender Elemente. 
          	Es enthält vier Optionen.
          </para>

          <itemizedlist>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/forward.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Forward</literal>. The selected model elements are 
              moved one step forward in the ordering hierarchy with 
              respect to other model elements they overlap.</para>
              <para lang="de">
	              <guiicon>
	              	<inlinemediaobject>
	              		<imageobject>
	              			<imagedata align="center"
	              				fileref="images/icons/forward.gif" format="GIF" />
	              		</imageobject>
	              	</inlinemediaobject>
	              </guiicon>
	              <literal>Nach vorne</literal>. Die markierten Modellelemente 
	              werden in der Reihenfolge einen Schritt nach vorne geholt.
              </para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/backward.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Backward</literal>. The selected model elements are 
              moved one step back in the ordering hierarchy with 
              respect to other model elements they overlap.</para>
              <para lang="de">
	              <guiicon>
	              	<inlinemediaobject>
	              		<imageobject>
	              			<imagedata align="center"
	              				fileref="images/icons/backward.gif" format="GIF" />
	              		</imageobject>
	              	</inlinemediaobject>
	              </guiicon>
	              <literal>Nach hinten</literal>. Die markierten Modellelemente 
	              werden in der Reihenfolge einen Schritt nach hinten gesetzt.
              </para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/to_front.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>To Front</literal>. The selected model elements are 
              moved to the front of any other model elements they 
              overlap.</para>
              <para lang="de">
	              <guiicon>
	              	<inlinemediaobject>
	              		<imageobject>
	              			<imagedata align="center"
	              				fileref="images/icons/to_front.gif" format="GIF" />
	              		</imageobject>
	              	</inlinemediaobject>
	              </guiicon>
	              <literal>In den Vordergrund</literal>. Die markierten 
	              Modellelemente werden in der Reihenfolge vor alle anderen 
	              Modellelemente gebracht. 
              </para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/to_back.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>To Back</literal>. The selected model elements are 
              moved to the back of any other model elements they 
              overlap.</para>
              <para lang="de">
	              <guiicon>
	              	<inlinemediaobject>
	              		<imageobject>
	              			<imagedata align="center"
	              				fileref="images/icons/to_back.gif" format="GIF" />
	              		</imageobject>
	              	</inlinemediaobject>
	              </guiicon>
	              <literal>In den Hintergrund</literal>. Die markierten 
	              Modellelemente werden in der Reihenfolge hinter alle anderen 
	              Modellelemente gebracht. 
              </para>

            </listitem>

          </itemizedlist>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Size To Fit Contents</phrase>
			<phrase lang="de">Grösse an Inhalt anpassen</phrase>
		  </title>

          <para lang="en">This menu-item acts on all selected items on the 
          current diagram. It resets all sizes of all model elements to its 
          minimum size for 
          which all text fits inside.</para>
          <para lang="de">
          	Dieses Menüelement wirkt auf alle markierten Elemente im aktuellen 
          	Diagramm. Es setzt die Grösse aller Modellelemente auf die minimale 
          	Grösse, in welcher der gesamte Text gerade noch in das Element passt.
          </para>

        </sect2>

        <!--sect2>

          <title>
			<phrase lang="en">Toggle Auto Resizing</phrase>
		</title>

          <para lang="en">This menu-item is a checkbox 
          that currently does not do anything.
          </para>

        </sect2-->

        <sect2>

          <title>
			<phrase lang="en">Layout</phrase>
			<phrase lang="de">Layout</phrase>
		  </title>

          <para lang="en">This menu-item provides an automatic diagram layout 
          function, i.e. when activating this menu-item, all items on 
          the current class diagram are rearranged according a certain 
          layout algorithm.</para>
          <para lang="de">
          	Dieses Menüelement enthält eine automatische Diagramm-Layoutfunktion. 
          	Wenn Sie z.B. dieses Menüelement aktivieren, werden alle Elemente 
          	des aktuellen Klassendiagrammes entsprechend bestimmter 
          	Layoutalgorithmen neu angeordnet.
          </para>

          <para lang="en">This function currently only works for classdiagrams. 
          For all other types of diagrams, the menu-item
          does not do anything 
          <!--(it should be downlighted)-->.</para>
          <para lang="de">
          	Diese Funktion arbeitet aktuell nur bei Klassendiagrammen. Bei allen 
          	anderen Diagrammtypen führt dieses Menüelement nichts aus.
          	<!--(it should be downlighted)-->.
          </para>

        </sect2>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">The Generation Menu</phrase>
			<phrase lang="de">Das Menü Generieren</phrase>
		</title>

        <para lang="en">This menu provides support for code generation from UML 
        diagrams. The functionality is built around the structural 
        information of class diagrams.</para>
        <para lang="de">
        	Dieses Menü enthält die Funktionen für die Codegenerierung aus 
        	UML-Diagrammen. Diese Funktionalität baut auf den strukturellen 
        	Informationen der Klassendiagramme auf.
        </para>

        <note>

          <para lang="en">Without any plugin modules installed, ArgoUML supports 
          only code generation of Java. ArgoUML V0.20 supports the 
          following languages by plugin: C#, C++, php4, php5.</para>
          <para lang="de">
          	Ohne installierte Plugin-Module unterstützt ArgoUML nur die 
          	Codegenerierung mit Java. ArgoUML V0.20 unterstützt die folgenden 
          	Sprachen per Plugin: C#, C++, php4, php5.
          </para>

        </note>

        <warning>

          <para lang="en">Code generation is still very much a work in progress. 
          The current version of ArgoUML will generate a structural 
          template for your code, but is not able to handle behavioral 
          specifications to generate code for the dynamic behavior of 
          the model.</para>
          <para lang="de">
          	Codegenerierung ist natürlich eine sehr fortschrittsbezogene Arbeit. 
          	Die aktuelle Version von ArgoUML wird ein strukturelles Template für 
          	Ihren Code generieren, aber es ist nicht in der Lage mit der 
          	Verhaltens-Spezifikationen umzugehen, um Code für das dynamische 
          	Verhalten des Modelles zu generieren.
          </para>

        </warning>

        <sect2 id="s2.ref.menu_generate_selected_classes">

          <title>
			<phrase lang="en">Generate Selected Classes ...</phrase>
			<phrase lang="de">Markierte Klassen generieren ...</phrase>
		  </title>

          <para lang="en">This menu entry brings up a dialog box for the ArgoUML 
          code generator (see 
          <xref linkend="fig.ref.menu_generate_selected_classes"/>
          ).</para>
          <para lang="de">
          	Dieser Menüeintrag öffnet den Dialog für den ArgoUML-Codegenerator 
          	(siehe
          	<xref linkend="fig.ref.menu_generate_selected_classes"/>
          	).
          </para>

          <figure float="1" id="fig.ref.menu_generate_selected_classes">

            <title>
				<phrase lang="en">
					The dialog for <literal>Generate Selected 
	            	Classes...</literal>.
            	</phrase>
				<phrase lang="de">
					Der Dialog für <literal>Markierte Klassen 
            		generieren ...</literal>.
            	</phrase>
			</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/menu_generate_dialog.png"
             format="PNG"/></imageobject></mediaobject></screenshot>
          </figure>

          <para lang="en">Below a label <literal>Available Classes</literal> the 
          dialog box lists each of the selected classes by name with a 
          check box to the left, for each language installed. All the 
          checkboxes are initially unchecked. Checking any of these 
          boxes will cause code generation for that class. Checking 
          multiple languages for a class causes it to be generated in 
          all these languages.</para>
          <para lang="de">
          	Neben der Beschriftung <literal>Verfügbare Klassen</literal> listet 
          	der Dialog für jede installierte Sprache alle markierten Klassen 
          	namentlich auf, mit einem Markierfeld auf der linken Seite. Alle 
          	Markierfelder sind beim ersten Mal nicht markiert. Das Markieren 
          	eines Markierfeldes veranlasst die Codegenerierung für diese Klasse. 
          	Das Markieren mehrerer Sprachen für eine Klasse veranlasst, dass 
          	die Klasse in all diesen Sprachen generiert wird.
          </para>

          <para lang="en">The buttons <literal>Select All</literal> and <literal>
          Select None</literal> may help when a lot of items have to be 
          selected or deselected.</para>
          <para lang="de">
          	Die Schaltflächen <literal>Alles markieren</literal> und <literal>
          	Nichts markieren</literal> kann helfen, wenn sehr viele Elemente 
          	markiert oder deren Markierung entfernt werden sollen.
          </para>

          <para lang="en">In the lower portion of the dialog box is an editable 
          combo box labeled <literal>Output Directory</literal> to 
          specify the directory in which code is generated. Within this 
          directory, a top level directory will be created with the 
          name of the model. Further sub-directories will be created to 
          reflect the package/namespace hierarchy of the model. A drop 
          down selector gives access to previously selected output 
          directories.</para>
          <para lang="de">
          	Der untere Teil des Dialoges ist ein editierbares Kombinationsfeld 
          	mit der Beschriftung <literal>Ausgabeverzeichnis</literal>, um 
          	das Verzeichnis festzulegen, in das der Code generiert wird. 
          	Innerhalb dieses Verzeichnisses wird ein Oberverzeichnis mit dem 
          	Namen des Modelles erstellt. Weitere Unterverzeichnisse werden 
          	erzeugt, welche die Hierarchie der Pakete/Namensräume des Modelles 
          	reflektieren. Ein Pull-down-Menü erlaubt den Zugriff auf vorher 
          	verwendete Ausgabeverzeichnisse.
          </para>

          <para lang="en">Finally, at the bottom of the dialog box are two 
          buttons, labeled <literal>Generate</literal> and <literal>
          Cancel</literal>. Button&nbsp;1 click on the former will cause the 
          code to be generated, button&nbsp;1 click on the latter will 
          cancel code generation.</para>
          <para lang="de">
          	Am Ende des Dialoges befinden sich zwei Schaltflächen, die mit 
          	<literal>Generieren</literal> und <literal>Abbrechen</literal> 
          	beschriftet sind. Ein Taste&nbsp;1-Klick auf die erstgenannte wird 
          	die Codegenerierung auslösen, ein Taste&nbsp;1-Klick auf die 
          	zuletzt genannte wird die Codegenerierung abbrechen.
          </para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Generate All Classes...</phrase>
			<phrase lang="de">Alle Klassen generieren...</phrase>
		  </title>

          <indexterm lang="en"><primary>Generate All Classes</primary></indexterm>
          <indexterm lang="de">
          	<primary>Alle Klassen generieren</primary>
          </indexterm>
          <indexterm lang="en"><primary>Shortcut 
          key</primary><secondary>F7</secondary></indexterm>
          <indexterm lang="de">
          	<primary>Tastenkürzel</primary>
          	<secondary>F7</secondary>
          </indexterm>
          <para lang="en">Shortcut F7.</para>
          <para lang="de">Tastenkürzel F7.</para>

          <para lang="en">This function behaves as <literal>
          Generate Selected Classes...</literal> (see 
          <xref linkend="s2.ref.menu_generate_selected_classes"/>) 
          would with all classes in the current diagram selected.</para>
          <para lang="de">
          	Diese Funktion verhält sich wie <literal>Markierte Klassen 
          	generieren...</literal> (siehe 
          	<xref linkend="s2.ref.menu_generate_selected_classes"/>) als wären 
          	alle Klassen im aktuellen Diagramm markiert. 
          </para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Generate Code for Project... (To be Written)</phrase>
			<phrase lang="de">
				Gesamtes Projekt generieren... (Noch zu beschreiben)
			</phrase>
		  </title>

          <para />

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">
				Settings for Generate for Project... (To be Written)
          	</phrase>
			<phrase lang="de">
	          	Einstellungen zur Codegenerierung im Projekt... (Noch zu
	          	beschreiben)
          	</phrase>
		</title>

          <para />

        </sect2>

      </sect1>

      <sect1 id="s1.ref.menu_critique">

        <title>
			<phrase lang="en">The Critique Menu</phrase>
			<phrase lang="de">Das Menü Kritiken</phrase>
		</title>

        <para lang="en">This menu controls one of ArgoUML&apos;s unique 
        features&mdash;the use of critics to guide the designer. The theory 
        behind this is well described in Jason Robbins&apos; PhD 
        dissertation 
        <ulink url="http://argouml.tigris.org/docs/robbins_dissertation/">
        http://argouml.tigris.org/docs/robbins_dissertation/</ulink>.</para>
        <para lang="de">
        	Dieses Menü steuert eines von ArgoUML&apos;s 
        	Alleinstellungsmerkmalen; die Verwendung von Kritiken, um den 
        	Designer anzuleiten. Die dahinterstehende Theorie ist ausführlich 
        	in Jason Robbins&apos; PhD-Dissertation beschrieben 
        	<ulink url="http://argouml.tigris.org/docs/robbins_dissertation/">
        	http://argouml.tigris.org/docs/robbins_dissertation/</ulink>.
        </para>

        <note>

          <para lang="en">A word about terminology: The 
          <emphasis>critics</emphasis> are background processes, which 
          evaluate the current model according to various 
          <quote>good</quote> design criteria. There is one critic for 
          every design criterion.</para>
          <para lang="de">
          	Ein Wort zur Terminilogie: Die <emphasis>Kritiken</emphasis> sind 
          	Hintergrundprozesse, die das aktuelle Modell anhand verschiedener 
          	<quote>guter</quote> Designkriterien überprüfen. Es gibt jeweils 
          	eine Kritik für jedes Designkriterium.
          </para>

          <para lang="en">The output of a critic is a 
          <emphasis>critique</emphasis>&mdash;a statement about some aspect 
          of the model that does not appear to follow good design 
          practice.</para>
          <para lang="de">
          	Die Ausgabe einer Kritik ist eine <emphasis>kritische Beschreibung
          	</emphasis>&mdash; eine Ausführung zu einigen Aspekten des Modelles, 
          	die nicht der guten Designpraxis zu folgen scheinen. 
          </para>

          <para lang="en">Finally a critique will generally suggest how the bad 
          design issue it has identified can be rectified, by raising a 
          <emphasis>to-do item</emphasis>.</para>
          <para lang="de">
          	Zum Schluss wird die kritische Beschreibung generell durch ein 
          	hochgestelltes <emphasis>"zu bearbeiten"-Element </emphasis> 
          	empfehlen, wie der identifizierte, schlechte Designansatz berichtigt 
          	werden kann.
          </para>

        </note>

        <note>

          <para lang="en">The critics run as asynchronous processes in parallel 
          with the main ArgoUML tool. Changes typically take a second 
          or two to propagate as the critics wake up.</para>
          <para lang="de">
          	Die Kritiken sind asynchrone Prozesse die parallel zum Hauptprozess 
          	von ArgoUML ablaufen. Änderungen benötigen üblicherweise eine oder 
          	zwei Sekunden bis die Kritiken verfügbar sind.
          </para>

        </note>

        <sect2>

          <title>
			<phrase lang="en">Toggle Auto-Critique</phrase>
			<phrase lang="de">Kritiken ein-/ausschalten</phrase>
		  </title>

          <para lang="en">This is a check box, controlling whether the critics 
          are running. By default it is checked. If unchecked, then all 
          critics are disabled, and any to-do items generated by 
          critics (the only others being those the designer has added 
          by hand) are hidden in the to-do pane.</para>
          <para lang="de">
          	Dies ist ein Markierfeld, welches steuert, ob die Kritiken 
          	eingeschaltet sind. Standardmäßig ist das Feld markiert. Ist es 
          	nicht markiert, sind alle Kritiken ausgeschaltet und jedes, durch 
          	die Kritiken generierte "zu bearbeiten"-Element (alle, außer den 
          	vom Designer von Hand erstellten) wird im "Zu bearbeiten"-Fenster 
          	versteckt.
          </para>

        </sect2>

        <sect2 id="s2.ref.menu_design_issues">

          <title>
			<phrase lang="en">Design Issues...</phrase>
			<phrase lang="de">Design-Wichtungen...</phrase>
		  </title>

          <para lang="en">This menu entry brings up a dialog box controlling how 
          critics associated with a particular design area are to be 
          handled (see <xref linkend="fig.ref.menu_design_issues"/>
          ).</para>
          <para lang="de">
          	Dieser Menüeintrag öffnet einen Dialog, der steuert, wie die mit 
          	einem bestimmten Designbereich verknüpften Kritiken angewendet 
          	werden (siehe <xref linkend="fig.ref.menu_design_issues"/>).
          </para>

          <figure float="1" id="fig.ref.menu_design_issues">

            <title>
				<phrase lang="en">
					The dialog for <literal>
            		Design Issues...</literal>.
            	</phrase>
				<phrase lang="de">
					Der Dialog für <literal>Design-Wichtungen...</literal>.
            	</phrase>
			</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/menu_design_issues.png"
             format="PNG"/></imageobject></mediaobject></screenshot>
          </figure>

          <para lang="en">ArgoUML categorizes critics according the the design 
          issue they address. There are 16 such categories. The critics 
          in each category are discussed in detail in the chapter on 
          critics (<xref linkend="ch.ref.critics"/>).</para>
          <para lang="de">
          	ArgoUML kategorisiert Kritiken je nachdem wie die Designwichtungen 
          	diese adressieren. Es gibt 16 solcher Kategorien. Die Kritiken in 
          	jeder Kategorie werden detailliert im Kapitel über Kritiken (
          	<xref linkend="ch.ref.critics"/>) diskutiert.
          </para>

          <para lang="en">The sliders may be set for each category to control the 
          critics that trigger for that category. Setting a slider to 
          <literal>Off</literal> will disable all critics in that 
          category, and remove all associated to-do items from the 
          to-do pane.</para>
          <para lang="de">
          	Die Schieberegler können für jede Kategorie eingestellt werden, um 
          	die Kritiken zu steuern, die in dieser Kategorie ausgelöst werden. 
          	Das verschieben eines Reglers auf <literal>Aus</literal> schaltet 
          	alle Kritiken dieser Kategorie ab und entfernt alle damit verbundenen 
          	"zu bearbeiten"-Elemente aus dem "Zu bearbeiten"-Fenster.
          </para>

          <para lang="en">Setting a slider to a higher priority value will enable 
          all critics at or above that priority level within the design 
          issue category (<literal>Off</literal> being the lowest 
          priority).</para>
          <para lang="de">
          	Das Einstellen des Reglers auf einen höher priorisierten Wert, wird 
          	alle auf oder über dieser Priorität befindlichen Kritiken innerhalb 
          	der Design...kategorie freischalten (<literal>Aus</literal> ist die 
          	niedrigste Priorität)
          </para>

          <note>

            <para lang="en">The sliders are set by default to <literal>
            High</literal> for all design categories.</para>
            <para lang="de">
            	Die Regler sind für alle Designkategorien standardmäßig auf 
            	<literal>Hoch</literal> eingestellt.
            </para>

          </note>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Design Goals...</phrase>
			<phrase lang="de">Design Ziele...</phrase>
		  </title>

          <para lang="en">This menu entry brings up a dialog box controlling how 
          design goals are to be handled (see 
          <xref linkend="fig.ref.menu_design_goals"/>).</para>
          <para lang="de">
          	Dieser Menüeintrag öffnet einen Dialog, der steuert, wie Designziele 
          	behandelt werden (siehe <xref linkend="fig.ref.menu_design_goals"/>).
          </para>

          <figure float="1" id="fig.ref.menu_design_goals">

            <title>
				<phrase lang="en">
					The dialog for <literal>
            		Design Goals...</literal>.
            	</phrase>
				<phrase lang="de">
					Der Dialog für <literal>Design Ziele...</literal>.
            	</phrase>
			</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/menu_design_goals.png"
             format="PNG"/></imageobject></mediaobject></screenshot>
          </figure>

          <para lang="en">ArgoUML has the concept that the designer will have a 
          number of design goals to be achieved (for example good 
          structural representation, detailed behavioral representation 
          etc). Critics are associated with one or more goals.</para>
          <para lang="de">
          	ArgoUML verfolgt das Konzept, dass Designer eine Anzahl von 
          	Designzielen haben, die sie erreichen wollen (zum Beispiel eine 
          	gute strukturelle Darstellung, eine detaillierte 
          	Verhaltensdarstellung usw.). Kritiken sind mit einem oder mehreren 
          	Zielen verknüpft.
          </para>

          <para lang="en">This dialog allows the user to specify the priority of 
          each design goal.</para>
          <para lang="de">
          	Dieser Dialog erlaubt es dem Benutzer, die Priorität eines jeden 
          	Designzieles zu spezifizieren.
          </para>

          <para lang="en">The sliders may be set for each design goal to control 
          the critics that trigger for that goal. Setting a slider to 
          zero will disable all critics in that goal, and remove all 
          associated to-do items from the to-do pane.</para>
          <para lang="de">
          	Um die Kritiken, die das jeweilige Ziel beeinflussen zu steuern, 
          	können die Schieberegler für jedes Designziel eingestellt werden. 
          	Das Einstellen des Reglers auf Null, wird alle Kritiken dieses 
          	Zieles ausschalten und alle damit verknüpften "Zu bearbeiten"-
          	Elemente aus dem "Zu bearbeiten"-Fenster entfernen.
          </para>

          <para lang="en">Setting a slider to a higher value will enable all 
          critics at or above that priority level within the design 
          issue category (1 being the highest priority and 5 the 
          lowest).</para>
          <para lang="de">
          	Die Einstellung eines Reglers auf einen höheren Wert wird alle 
          	Kritiken auf oder über der Priorität innerhalb der 
          	Designwichtungskategorie freigeben (1 ist die höchste und 5 die 
          	niedrigste Priorität).
          </para>

          <tip>

            <para lang="en">It may be useful to think of this function as very 
            similar to <literal>Design Issues...</literal> (see 
            <xref linkend="s2.ref.menu_design_issues"/>), but with 
            grouping of critics according to the outcomes of OOA&amp;D 
            rather than grouping according to the structure of 
            UML.</para>
            <para lang="de">
            	Es kann nützlich sein, über diese Funktion ähnlich zu denken wie 
            	bei <literal>Design-Wichtungen</literal>  
            	(siehe <xref linkend="s2.ref.menu_design_issues"/>), 
            	aber mit der Gruppierung der Kritiken gemäß dem Ergebnis der 
            	OOA&amp;D und nicht mit der Gruppierung gemäß der Struktur der 
            	UML.
            </para>

          </tip>

          <warning>

            <para lang="en">The V0.20 version of ArgoUML provides a single design 
            goal, <literal>Unspecified</literal>, with its slider set 
            by default to priority 1. However it contains no critics 
            and so has no effect.</para>
            <para lang="de">
            	Die Version 0.20 von ArgoUML enthält ein einziges Designziel mit 
            	der Bezeichnung <literal>Nicht spezifiziert</literal>. Der 
            	Regler ist standardmäßig auf die Priorität 1 eingestellt. Jedoch 
            	enthält es keine Kritiken und hat somit keine Auswirkungen.
            </para>

          </warning>

        </sect2>

        <sect2 id="s2.ref.menu_browse_critics">

          <title>
			<phrase lang="en">Browse Critics...</phrase>
			<phrase lang="de">Kritiken anzeigen...</phrase>
		  </title>

          <para lang="en">This menu entry brings up a dialog box controlling the 
          individual critics (see 
          <xref linkend="fig.ref.menu_browse_critics"/>).</para>
          <para lang="de">
          	Dieser Menüeintrag öffnet einen Dialog, der die individuellen 
          	Kritiken steuert (siehe 
          	<xref linkend="fig.ref.menu_browse_critics"/>).
          </para>

          <figure float="1" id="fig.ref.menu_browse_critics">

            <title>
				<phrase lang="en">
					The dialog for <literal>
            		Browse Critics...</literal>.
            	</phrase>
				<phrase lang="de">
					Der Dialog für <literal>Kritiken anzeigen...</literal>.
            	</phrase>
			</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/menu_browse_critics.png"
             format="PNG"/></imageobject></mediaobject></screenshot>
          </figure>

          <para lang="en">This dialog controls the behavior of individual 
          critics. To the left is a list of all the critics, to enable 
          them to be switched on or off individually. For each critic 
          there are three columns, labeled <literal>Active</literal>, 
          <literal>Headline</literal> and <literal>Snoozed</literal>. 
          The first of these is a check box, which may be toggled with 
          button&nbsp;1 click. The second is the headline name of the 
          critic, the third indicates if the critic has been snoozed 
          from the to-do pane (see <xref linkend="ch.ref.todopane"/>. A 
          critic is only really active if the box in the first column 
          is checked <emphasis>and</emphasis> the critic has not been 
          snoozed.</para>
          <para lang="de">
          	Dieser Dialog steuert das Verhalten der einzelnen Kritiken. Links 
          	befindet sich eine Liste aller Kritiken, um diese individuell ein- 
          	oder ausschalten zu können. Für jede Kritik gibt es drei Spalten, 
          	beschriftet mit <literal>Aktiv</literal>, <literal>Titel</literal> 
          	und <literal>deaktiviert</literal>. Die erste davon ist ein 
          	Markierfeld, das mit Taste&nbsp;1-Klicks verändert werden kann. Die 
          	zweite ist der Titel der Kritik und die dritte zeigt an, wenn die 
          	Kritik im "Zu bearbeiten"-Fenster deaktiviert wurde (siehe 
          	<xref linkend="ch.ref.todopane"/>. Eine Kritik ist nur dann wirklich 
          	aktiv, wenn das Markierfeld in der ersten Spalte markiert ist 
          	<emphasis>und</emphasis> die Kritik nicht deaktiviert wurde.
          </para>

          <para lang="en">Any critic for which the box in the first column is 
          unchecked is inactive and will not trigger. In addition any 
          to-do items associated with that critic will be removed from 
          the to-do pane.</para>
          <para lang="de">
          	Jede Kritik, bei der das Markierfeld in der ersten Spalte nicht 
          	markiert ist, ist inaktiv und wird nicht ausgelöst. Zusätzlich wird 
          	jedes, mit dieser Kritik verknüpfte "Zu bearbeiten"-Element aus dem 
          	"Zu bearbeiten"-Fenster entfernt.
          </para>

          <para lang="en">The V0.26 version of ArgoUML has a total of 90 critics, 
          a few of which are incompletely implemented. They are 
          described in detail by design issue category in the chapter 
          on critics (see <xref linkend="ch.ref.critics"/>).</para>
          <para lang="de">
          	Die Version 0.26 von ArgoUML umfasst 90 Kritiken, einige davon sind 
          	unvollständig implementiert. Sie sind je Designwichtungskategorie 
          	im Kapitel Kritiken detailliert beschrieben (siehe 
          	<xref linkend="ch.ref.critics"/>).
		  </para>

          <para lang="en">To the right of the list are a series of fields, titled 
          <literal>Critic Details</literal>, giving detailed control 
          over individual critics. Selecting a critic in the list on 
          the left will populate the fields for that critic.</para>
          <para lang="de">
          	Rechts von der Liste gibt es eine Reihe von Feldern, mit 
          	<literal>Details Kritik</literal> bezeichnet, die eine detaillierte 
          	Kontrolle über die einzelnen Kritiken gibt. Das Markieren einer 
          	Kritik in der linken Liste wird die Felder für diese Kritik befüllen.
          </para>

          <para lang="en">The first field on the right is titled <literal>Critic 
          Class:</literal> and then the full name of the class in 
          ArgoUML that implements the critic. This name can be used as 
          unique identifier of the critique, e.g. in conversations 
          about the critic.</para>
          <para lang="de">
          	Das erste Feld rechts ist mit <literal>Klasse:</literal> bezeichnet.
          	Darauf folgt der vollständige Name der Klasse in ArgoUML, welche die 
          	Kritik implementiert. Dieser Name kann aus eindeutiger Bezeichner 
          	für diese Kritik verwendet werden, z.B. bei der Kommunikation über 
          	diese Kritik.
          </para>

          <para lang="en">The first field below this title is a text box labeled 
          <literal>Headline:</literal> giving the complete headline of 
          the critic (which may be truncated in the list on the 
          left).</para>
          <para lang="de">
          	Das erste Feld danach ist ein Textfeld mit der Beschriftung 
          	<literal>Titel:</literal>. Dieses Textfeld beinhaltet den 
          	vollständigen Titel der Kritik (der in der linken Liste abgeschnitten  
          	sein kann).
          </para>

          <note>

            <para lang="en">In the headline you may see the text <literal>
            &lt;ocl&gt;self&lt;/ocl&gt;</literal>, which will be 
            replaced by the name of the model element in question when the 
            critic is triggered.</para>
            <para lang="de">
            	Im Titel können Sie den Text <literal>&lt;ocl&gt;self&lt;/ocl&gt;
            	</literal> sehen, der durch den Namen des in Frage kommenden 
            	Modellelementes ersetzt wird, wenn die Kritik ausgelöst wird. 
            </para>

          </note>

          <para lang="en">The next field is a drop-down selector, labeled 
          <literal>Priority:</literal>. The three options available are 
          <literal>High</literal>, <literal>Medium</literal> and 
          <literal>Low</literal> and specify the priority category of 
          any to-do item generated by this critic. This does not alter 
          the priority of the already existing todo items, only the 
          newly generated ones. Changing the priority of a critic is 
          not saved persistently.</para>
          <para lang="de">
          	Das nächste Feld ist ein mit <literal>Priorität</literal> 
          	beschriftetes Pull-down-Menü. Die drei verfügbaren Optionen sind 
          	<literal>Hoch</literal>, <literal>Mittel</literal> und <literal>
          	Niedrig</literal> und spezifizieren die Prioritätskategorie eines 
          	jeden "Zu bearbeiten"-Elementes dieser Kritik. Dies ändert nich die 
          	Priorität bereits existierender "Zu bearbeiten"-Elemente. Nur die 
          	neu generierten. Die Änderung der Priorität einer Kritik wird nicht 
          	dauerhaft gespeichert.
          </para>

          <para lang="en">The next field is labeled <literal>MoreInfo:</literal> 
          and contains a URL pointing to further information with a 
          button to the right labeled <literal>Go</literal> to navigate 
          to that URL.</para>
          <para lang="de">
          	Das nächste Feld ist mit <literal>Mehr Informationen:</literal> 
          	beschriftet und enthält eine URL, die auf weitergehende Informationen 
          	zeigt. Mit der rechts befindlichen Schaltfläche <literal>Gehe zu
          	</literal> können Sie zu dieser URL springen.
          </para>

          <warning>

            <para lang="en">In the V0.26 release of ArgoUML there is no further 
            information available, and the <literal>Go</literal> button 
            is always grayed out and disabled.</para>
            <para lang="de">
            	In der Version 0.26 von ArgoUML sind keine weitergehende 
            	Informationen verfügbar und die Schaltfläche <literal>Gehe zu
            	</literal> ist deaktiviert.
            </para>

          </warning>

          <para lang="en">The next field is labeled <literal>
          Description:</literal> and is a text area with a detailed 
          explanation of what this critic means. If the text is too 
          large for the area a scroll bar is provided to the 
          right.</para>
          <para lang="de">
          	Das nächste Textfeld ist mit <literal>Beschreibung:</literal> 
          	bezeichnet und ist ein Textbereich mit einer detaillierten 
          	Beschreibung dessen, was die Kritik bedeutet. Ist der Text zu gross 
          	für den Bereich, erscheint auf der rechten Seite ein Schieberegler.
          </para>

          <note>

            <para lang="en">In this text area you may see the text <literal>
            &lt;ocl&gt;self&lt;/ocl&gt;</literal>, which will be 
            replaced by the name of the model element in question when the 
            critic is triggered.</para>
            <para lang="de">
            	In diesem Textbereich können Sie den Text <literal>
            	&lt;ocl&gt;self&lt;/ocl&gt;</literal> vorfinden, der durch den 
            	Namen des in Frage kommenden Modellelementes ersetzt wird, wenn 
            	die Kritik ausgelöst wird.
            </para>

          </note>

          <para lang="en">The last field is a drop-down selector labeled <literal>
          Use Clarifier</literal>, with three options, <literal>
          Always</literal>, <literal>If Only One</literal> and <literal>
          Never</literal>.</para>
          <para lang="de">
          	Das letzte Feld ist ein mit <literal>Verwende Kennzeichen:</literal> 
          	beschriftetes Pull-down-Menü, mit drei Optionen: <literal>Immer
          	</literal>, <literal>Wenn, nur eines</literal> und <literal>Nie
          	</literal>.
          </para>

          <para lang="en">Clarifiers are the icons and wavy red underlines drawn 
          on the actual diagrams to indicate the artefact to which the 
          critic refers. The original intention was to make the mapping 
          from critics to clarifiers somewhat customizable.</para>
          <para lang="de">
          	Kennzeichen sind Symbole und rote Wellenlinien in aktuellen 
          	Diagrammen, um den Artefakt zu kennzeichnen, auf den sich die Kritik 
          	bezieht. Die ursprüngliche Absicht war es, die Verbindung zwischen 
          	den Kritiken und den Kennzeichen etwas flexibler zu machen.
          </para>

          <para lang="en">For example one user might make a <literal>Missing 
          Name</literal> critic show a red underline, another user 
          might turn off the clarifier, or have it draw a wavy green 
          underline or a blue questionmark. Critics with their 
          clarifier&apos;s disabled would still produce feedback that 
          is listed in the to-do pane.</para>
          <para lang="de">
          	Ein Benutzer möchte z.B. die Kritik <literal>Fehlender Name
          	</literal> mit einem roten Unterstrich angezeigt bekommen, ein 
          	anderer Benutzer möchte die Kennzeichen ausschalten oder mit einer 
          	grünen Wellenlinie oder einem blauen Fragezeichen bezeichnet haben. 
          	Kritiken, bei denen die Kennzeichen ausgeschaltet sind, würden 
          	immer noch im "Zu bearbeiten"-Fenster aufgelistetes Feedback 
          	erzeugen.
          </para>

          <caution>

            <para lang="en">In the V0.26 release of ArgoUML this selector has no 
            function whatsoever. It is for future development.</para>
            <para lang="de">
            	In der Release V0.26 von ArgoUML hat diese Auswahl keine 
            	Funktion. Sie ist für die künftige Entwicklung.
            </para>

          </caution>

          <para lang="en">Underneath the fields are two buttons in a horizontal 
          row.</para>
          <para lang="de">
          	Unterhalb der Felder befinden sich zwei Schaltflächen in einer 
          	horizontalen Reihe.
          </para>

          <itemizedlist>

            <listitem>

              <para lang="en"><literal>Wake</literal>. It is possible to snooze a 
              critic from the to-do pane (see 
              <xref linkend="ch.ref.todopane"/>), which makes the 
              critic inactive for a period. If the critic has been 
              snoozed, this button is enabled and will wake the critic 
              back up again. Otherwise it is grayed out.</para>
              <para lang="de">
	              <literal>Aktivieren</literal>.
	              Es ist möglich, eine Kritik im "Zu bearbeiten"-Fenster zu 
	              deaktivieren ( siehe <xref linkend="ch.ref.todopane"/>), was 
	              die Kritik für eine bestimmte Zeit ausschaltet. Wenn die Kritik 
	              deaktiviert wurde, wird diese Schaltfläche aktiviert und wird 
	              die Kritik wieder aktivieren. Ansonsten ist sie deaktiviert. 
	          </para>

              <tip>

                <para lang="en">You can tell a snoozed critic, because in the 
                list on the left it will be indicated in the third 
                column.</para>
                <para lang="de">
                	Sie können eine deaktivierte Kritik erkennen, da dies in der 
                	linken Liste in der dritten Spalte angezeigt wird.
                </para>

              </tip>

            </listitem>

            <listitem>

              <para lang="en"><literal>Advanced</literal>. This button 
              causes ArgoUML to show a few columns extra
              in the table of critics. 
              It allows more detailed inspection 
              of critic properties.</para>
              <para lang="de">
              	<literal>Erweitert</literal>. Diese Schaltfläche veranlasst 
              	ArgoUML einige zusätzliche Spalten in der Tabelle der Kritiken 
              	anzuzeigen. Sie erlauben eine detailliertere Untersuchung der 
              	Eigenschaften einer Kritik.
              </para>

            </listitem>

          </itemizedlist>

          <para lang="en">Finally the bottom right of the dialog contains a 
          button labeled <literal>OK</literal>. Button&nbsp;1 click here 
          dismisses the dialog.</para>
          <para lang="de">
          	Die untere rechte Schaltfläche des Dialoges ist mit <literal>
          	Schliessen</literal> beschriftet. Ein Taste&nbsp;1-Klick schliesst 
          	den Dialog.
          </para>

        </sect2>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">The Tools Menu</phrase>
			<phrase lang="de">Das Menü Werkzeuge</phrase>
		</title>

        <para lang="en">This menu provides a generic menu attachment point for 
        any plug-ins provided with ArgoUML. The standard system has no 
        plug-in, and this menu entry 
        is empty by 
        default.</para>
        <para lang="de">
        	Dieses Menü enthält einen generieschen Menüerweiterungspunkt für die 
        	in ArgoUML enthaltenen Plugins. Das Standardsystem hat kein Plugin 
        	und dieser Menüeintrag ist standardmäßig leer.
        </para>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">The Help Menu</phrase>
			<phrase lang="de">Das Menü Hilfe</phrase>
		</title>

        <para lang="en">This menu provides help on the use of ArgoUML. It has two 
        entries.</para>
        <para lang="de">
        	Diese Menü enthält Hilfen für den Gebrauch von ArgoUML. Es hat 
        	zwei Einträge.
        </para>

        <sect2>

          <title>
			<phrase lang="en">System Information</phrase>
			<phrase lang="de">Systeminformation</phrase>
		</title>

          <para lang="en">This menu entry brings up the system information 
          dialog, see <xref linkend="fig.ref.menu_help_system_info"/>
          </para>
          <para lang="de">
          	Dieses Menü öffnet den Dialog Systeminformation, siehe 
          	<xref linkend="fig.ref.menu_help_system_info"/>
          </para>

          <figure float="1" id="fig.ref.menu_help_system_info">

            <title>
				<phrase lang="en">
					The dialog for <literal>
            		System Information</literal>.
            	</phrase>
				<phrase lang="de">
					Der Dialog für <literal>
            		Systeminformation</literal>.
            	</phrase>
			</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/menu_help_system_info.png"
             format="PNG"/></imageobject></mediaobject></screenshot>
          </figure>

          <para lang="en">Use this menu to describe the system that runs ArgoUML 
          to the system manager or developer. Pressing the button 
          <literal>Run Garbage Collector</literal> not only runs the 
          Java gargage collector, but also refreshes the information 
          shown. To facilitate copy and paste into (e.g.) an email, the 
          button <literal>Copy Information to System 
          Clipboard</literal> is foreseen. The <literal>
          Cancel</literal> button dismisses the dialog box.</para>
          <para lang="de">
          	Verwenden Sie dieses Menü, um das System für den Systemmanager oder 
          	Entwickler zu beschreiben auf dem ArgoUML läuft. Das Drücken der 
          	Schaltfläche <literal>Starte Speicherbereinigung (GC)</literal> 
          	startet nicht nur den Java Garbage Collector sondern aktualisiert 
          	auch die dargestellten Informationen. Um das Kopieren und Einfügen 
          	in (z.B.) eine E-Mail zu unterstützen, dafür ist die Schaltfläche 
          	<literal>In Zwischenablage kopieren</literal> vorgesehen. Die 
          	Schaltfläche <literal>Schliessen</literal> schließt den Dialog.
          </para>

        </sect2>

        <sect2 id="s2.ref.menu_help_about">

          <title>
			<phrase lang="en">About ArgoUML</phrase>
			<phrase lang="de">Über ArgoUML</phrase>
		  </title>

          <para lang="en">This menu entry brings up the help window for ArgoUML 
          (see <xref linkend="fig.ref.menu_help"/>).</para>
          <para lang="de">
          	Dieser Menüeintrag öffnet das Hilfefenster von ArgoUML (siehe 
          	<xref linkend="fig.ref.menu_help"/>).
		  </para>

          <figure float="1" id="fig.ref.menu_help">

            <title>
				<phrase lang="en">The help window for ArgoUML</phrase>
				<phrase lang="de">Das Hilfefenster von ArgoUML</phrase>
		    </title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/menu_help.png"
             format="PNG"/></imageobject></mediaobject></screenshot>
          </figure>

          <para lang="en">The window has six tabs, which are selected by button&nbsp;1 
          click. By default the first tab (<literal>Splash</literal>) 
          is shown.</para>
          <para lang="de">
          	Das Fenster weist sechs Register auf, die durch einen Taste&nbsp;1-
          	Klick ausgewählt werden können. Standardmäßig wird das erste 
          	Register (<literal>Startfenster</literal>) angezeigt.
		  </para>

          <itemizedlist>

            <listitem>

              <para lang="en"><literal>Splash</literal>. This displays the 
              picture shown when ArgoUML starts up, and the current 
              version number.</para>
              <para lang="de">
              	<literal>Startfenster</literal>. 
              	Dies zeigt das Bild und die aktuelle Versionsnummer, welche 
              	angezeigt werden, wenn ArgoUML hochfährt.
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Version</literal>. This provides version 
              information on the various packages that make up ArgoUML, 
              and some operating system and environment 
              information.</para>
              <para lang="de">
              	<literal>Version</literal>. 
              	Dieses Register enthält die Versionsinformationen von den 
              	verschiedenen Paketen aus denen ArgoUML besteht, sowie einigen 
              	Betriebssystem- und Umgebungsinformationen.
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Credits</literal>. This details all those 
              who have created ArgoUML, including contact details for 
              the various module owners.</para>
              <para lang="de">
              	<literal>Anerkennung</literal>.
              	Dieses Register führt alle auf, die ArgoUML erstellt haben, 
              	einschliesslich der Kontaktdaten für die verschiedenen 
              	Modul-Eigentümer. 
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Contact Info</literal>. This gives the 
              major contact points for the ArgoUML project&mdash;the web 
              site, and the developers mailing list.</para>
              <para lang="de">
              	<literal>Kontakt</literal>.
              	Dieses Register enthält die Haupt-Kontaktdaten für ArgoUML-
              	Projekt-Webseite und der Entwickler-Mail-Listen. 
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Report bugs</literal>. This gives 
              information about how to deal with bugs in ArgoUML. It is 
              important that all bugs are reported, and all cooperation 
              is appreciated.</para>
              <para lang="de">
              	<literal>Fehler mitteilen</literal>.
              	Dieses Register gibt Ihnen Informationen, wie Sie mit Fehlern 
              	in ArgoUML umgehen sollen. Es ist wichtig, dass alle Fehler 
              	erfasst und jede Kooperation gewürdigt wird. 
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Legal</literal>. A statement of the 
              FreeBSD license which covers all the ArgoUML 
              software.</para>
              <para lang="de">
              	<literal>Recht</literal>. 
              	Ein Auszug der FreeBSD-Lizenz, der die gesamte ArgoUML-Software 
              	unterliegt.
              </para>

              <caution>

                <para lang="en">The various documentation of the project are not 
                all covered by FreeBSD (which is really meant for 
                software). In particular this manual is covered by the 
                OpenPub license (see <xref linkend="app.legal"/>
                ).</para>
                <para lang="de">
                	Die verschiedenen Projektdokumentationen unterliegen nicht 
                	alle der FreeBSD-Lizenz (wie es für die Software der Fall 
                	ist). Im speziellen unterliegt dieses Handbuch der 
                	OpenPub-Lizenz (siehe <xref linkend="app.legal"/>).
                </para>

              </caution>

            </listitem>

          </itemizedlist>

        </sect2>

      </sect1>

    </chapter>

    <chapter id="ch.ref.navpane">

      <title>
			<phrase lang="en">The Explorer</phrase>
			<phrase lang="de">Der Explorer</phrase>
	  </title>

      <indexterm lang="en"><primary>Explorer</primary></indexterm>
      <indexterm lang="en">
      <primary>Navigation</primary><secondary>Tree</secondary></indexterm>
      <indexterm lang="en">
      <primary>Navigation</primary><secondary>Pane</secondary></indexterm>
      <indexterm lang="en">
      <primary>Navigator</primary><secondary>Tree</secondary></indexterm>
      <indexterm lang="en">
      <primary>Navigator</primary><secondary>Pane</secondary></indexterm>
      <para lang="en">The Explorer was previously called Navigation Pane/Tree or 
      sometimes Navigator Pane/Tree.</para>

      <sect1>

        <title>
			<phrase lang="en">Introduction</phrase>
		</title>

        <para lang="en"><xref linkend="fig.ref.navigation_pane"/> shows the 
        ArgoUML window, with the explorer highlighted.</para>

        <figure float="1" id="fig.ref.navigation_pane">
          <!-- This diagram shows the navigation overview. 
          It is a complete ArgoUML
          window, but with all except the explorer grayed out. This was
          done using GIMP with selected areas using Filters->Color->Map->
          Color Range Mapping from black to black & white to HSV 0,0,75.-->
          <title>
			<phrase lang="en">Overview of the explorer</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/navigator_pane.png"
           format="PNG"/></imageobject></mediaobject></screenshot>
        </figure>

        <para lang="en">The explorer allows the user to view the structure of the 
        model from a number of predefined perspectives. It also allows 
        the user to define their own perspetives for custom exploring 
        of the model.</para>

        <para lang="en">An important feature, related to the cognitive psychology 
        ideas behind ArgoUML is that not all model elements are necessarily 
        shown in all perspectives. Rather, the perspectives are used to 
        implement hiding of uninteresting parts of the model.</para>

      </sect1>

      <sect1 id="s1.ref.nav_mouse">

        <title>
			<phrase lang="en">Mouse Behavior in the Explorer</phrase>
		</title>

        <indexterm lang="en"><primary>Explorer</primary><secondary>Mouse 
        Behavior</secondary></indexterm>
        <indexterm lang="en"><primary>Mouse Behavior</primary><secondary>in the 
        Explorer</secondary></indexterm>
        <para lang="en">Behavior of the mouse in general, and the naming of the 
        buttons is covered in the chapter on the overall user interface 
        (see <xref linkend="ch.ref.ui"/>).</para>

        <sect2>

          <title>
			<phrase lang="en">Button&nbsp;1 Click</phrase>
		</title>

          <para lang="en">Within the hierarchical display, elements which have 
          sub-hierarchies are indicated by <guiicon>
          <inlinemediaobject><imageobject><imagedata align="center"
           fileref="images/icons/hierarchy_closed.gif"
           format="GIF"/></imageobject></inlinemediaobject></guiicon> 
          when the hierarchy is hidden and <guiicon>
          <inlinemediaobject><imageobject><imagedata align="center"
           fileref="images/icons/hierarchy_open.gif"
           format="GIF"/></imageobject></inlinemediaobject></guiicon> 
          when the hierarchy is open.</para>

          <para lang="en">Button&nbsp;1 click over the name of any diagram model element 
          will cause the diagram to be selected and displayed in the 
          editing pane. Its details will also be displayed in the 
          details pane.</para>

          <para lang="en">Button&nbsp;1 click over the name of any model element other than 
          a diagram in the main area of the explorer will cause it to 
          be selected, and its details shown in the details pane. If 
          the model element is part of a diagram currently displayed in the 
          editing pane, it will be highlighted there.</para>

          <note>

            <para lang="en">If the model element is part of a diagram other than that 
            currently displayed in the Editing Pane, there will be 
            <emphasis>no</emphasis> change of diagram in the Editing 
            Pane.</para>

          </note>

          <para lang="en">Where button&nbsp;2 click has been used to bring up a 
          context sensitive pop-up menu (see below), button&nbsp;1 click is 
          used to select the menu entry required. button&nbsp;1 click 
          outside the menu area will remove it.</para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Button&nbsp;1 Double Click</phrase>
		</title>

          <para lang="en">This has the effect of a button&nbsp;1 single click, and if 
          the tree item was not a leaf, it will toggle the hierarchy 
          open or close.</para>

        </sect2>
        
        <sect2>

          <title>
			<phrase lang="en">Button&nbsp;1 Motion</phrase>
		</title>
          
          <para lang="en">Button&nbsp;1 motion means that you pick up one or more 
          modelelements, and drag them to a new location. 
          Dropping the modelelement somewhere 
          causes ArgoUML to execute some function 
          that depends on where you drop the modelelements. 
          </para>

          <sect3>
          <title>
			<phrase lang="en">From Explorer to Explorer</phrase>
		</title>
          <para lang="en">
          Releasing the mouse button above a namespace, 
          makes the modelelement owned by the namespace.
          In the Package-centric explorer perspective, this
          means a straigh-forward drag-and-drop function.
		  </para>
		  
		  <para lang="en">Use this drap and drop feature to easily move 
		  e.g. classes from one package into another.
		  </para>
		  </sect3>

          <sect3>
          <title>
			<phrase lang="en">From Explorer to Diagram</phrase>
		</title>
          <para lang="en">Dropping a modelelement on the diagram 
          is the equivalent of the "Add to Diagram" function.
          Hence, if the diagram did not yet show this modelelement, 
          it is added.
		  </para>
		  
		  <para lang="en">Use this drap and drop feature e.g. to easily create 
		  a diagram from imported XMI files. 
		  This because XMI files contain all the modelelements, 
		  but not any diagram information.
		  </para>
		  </sect3>

        </sect2>
        
        <sect2>

          <title>
			<phrase lang="en">Button&nbsp;2 Actions</phrase>
		</title>

          <para lang="en">When used in the the explorer, this will display a 
          selection dependent pop-up menu. Menu entries are highlighted 
          (but not selected) and sub-menus exposed by subsequent mouse 
          motion (without any buttons). Menu entry selection is with 
          button&nbsp;1 or button&nbsp;2.</para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Button&nbsp;2 Double Click</phrase>
		</title>

          <para lang="en">This has no effect other than that of button&nbsp;2 single 
          click.</para>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.explorer_keyboard">

        <title>
			<phrase lang="en">Keyboard Behavior in the Explorer</phrase>
		</title>

        <para lang="en">All keys active in a tree widget have their normal 
        behaviour.</para>

        <para lang="en">When a diagram is selected, pressing Ctrl-C will copy the 
        diagram in GIF format to the system clipboard.</para>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Perspective Selection</phrase>
		</title>

        <para lang="en">The model elements in the ArgoUML model may be configured for 
        displaying in the tree by a number of perspectives. To this 
        end, a drop-down at the top allows selection of the explorer 
        perspective.</para>

        <para lang="en">Below that, there is a drop-down to select the ordering 
        of the atifacts within the hierarchy. The two possibilities are 
        &quot;Order by Type, Name&quot; and &quot;Order by Name&quot;. 
        The former groups all items per type, and sorts them per group 
        alphabetically on the name. The lattter simply sorts on name 
        only.</para>

        <para lang="en">The following explorer perspectives may be selected in 
        the drop-down at the top:</para>

        <itemizedlist>

          <listitem>

            <para lang="en"><literal>Package-centric</literal> (the default). The 
            exploring hierarchy is organized by package hierarchy. The 
            top level shows the model. Under this are all the top level 
            packages in the model and all the model elements that are 
            directly in the namespace of the model.</para>

            <para lang="en">Beneath each package are all the model elements that sit 
            within the namespace of that package, including any further 
            sub-packages (which in turn have their own 
            sub-hierarchies).</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>Class-centric</literal>. 
            Shows classes in their package hierarchy as well as  
            datatypes and use case diagram elements. Similar to the  
            Package-centric view but it doesn't show connecting or  
            associating elements.  
            <!-- Got this from 
            http://www.devshed.com/c/a/Practices/Design-with-ArgoUML/3/ -->
            </para>

          </listitem>

          <listitem>

            <para lang="en"><literal>Diagram-centric</literal>. In this view the 
            top level comprises all the diagrams in the model. Beneath 
            each diagram is a flat listing of all the model elements on the 
            diagram. Model elements that have sub-model elements that do not 
            appear on the diagram have their own hierarchy (for example 
            attributes and operations of classes).</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>Inheritance-centric</literal>. In this view 
            the top level shows the model. Beneath this are all 
            model elements that have no generalization in the model. Those 
            model elements that have specializations have a sub-hierarchy 
            showing the specializations.</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>Class Associations</literal>. In this view 
            the top level shows the model. Beneath this are all 
            diagrams and all classes. All classes that have 
            associations have a hierarchy tracking through the 
            associated classes.</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>Residence-centric</literal>. In this view 
            the model is shown at the top-level, with below it only 
            Nodes, and below these only components that reside on the 
            nodes, and below these components all elements that reside 
            on the components.</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>State-centric</literal>. In this view the 
            top level shows all the state machines and all activity 
            graphics associated with classes.</para>

            <para lang="en">Beneath each state machine is a hierarchy showing the 
            statechart diagram and all of the states. Beneath each state is 
            a list of the transitions in and out of the state.</para>

            <para lang="en">Beneath each activity graph is a hierarchy showing 
            the activity diagram and all of the action states. Beneath 
            each action state is a list of the transitions in and out 
            of the action state.</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>Transitions-centric</literal>. This is very 
            similar to <literal>State-centric</literal> view, but under 
            each state machine is listed the diagrams and all 
            transitions on the diagram, with states being shown as 
            sub-hierarchies under their connected transitions.</para>

            <para lang="en">Similarly under each activity graph is listed the 
            diagrams and all transitions on the diagram, with action 
            states being shown as sub-hierarchies under their connected 
            transitions.</para>

          </listitem>
          
          <listitem>

            <para lang="en"><literal>Composite-centric</literal>. In this 
            view, all modelelements are shown
            according their composition in the UML metamodel.</para>

            <para lang="en">This perspective shows far more modelelements 
            then all others - it does not hide anything. 
            Hence, this view is not so user-friendly, but very suited
            for the UML specialist.</para>

          </listitem>

        </itemizedlist>

      </sect1>

      <sect1 id="s1.ref.configure_perspectives">

        <title>
			<phrase lang="en">Configuring Perspectives</phrase>
		</title>

        <para lang="en">The explorer is designed to be user configurable, to 
        allow the designer to view in his or her preferred way.</para>

        <sect2>

          <title>
			<phrase lang="en">The Configure Perspectives dialog</phrase>
		</title>

          <para lang="en">button&nbsp;1 click on the &quot;Configure 
          Perspectives&quot; icon (
          <guiicon><inlinemediaobject><imageobject>
          <imagedata align="center"
           fileref="images/icons/nav_config.gif"
           format="GIF"/></imageobject></inlinemediaobject></guiicon>) 
          at the top left of the explorer brings up the explorer 
          perspectives dialog (see 
          <xref linkend="fig.ref.navigator_pane_perspectives"/>).</para>

          <figure float="1" id="fig.ref.navigator_pane_perspectives">

            <title>
			<phrase lang="en">The Configure Perspectives dialog box</phrase>
		</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/navigator_pane_perspectives.png"
             format="PNG"/></imageobject></mediaobject></screenshot>
          </figure>

          <para lang="en">The top half of the dialog contains a list of all the 
          currently defined perspectives and to the right a series of 
          buttons stacked vertically. Button&nbsp;1 click can be used to 
          select a perspective. You can select only one perspective at 
          a time.</para>

          <para lang="en">Selecting a perspective reveals a text field above the 
          list, where the name of the perspective can be edited.</para>

          <para lang="en">The lower half of the dialog contains two list areas. 
          The one on the left, labeled <literal>
          Rules Library</literal>, contains the list of available rules 
          that may be used to create the perspective. The one on the 
          right, labeled <literal>Selected Rules</literal> contains the 
          actual rules chosen for the perspective that has been 
          selected in the list of perspectives at the top. In both 
          lists, you can select only one rule at a time.</para>

          <para lang="en">Separating the two areas in the lower half of the 
          dialog are buttons labeled <literal>&gt;&gt;</literal> and 
          <literal>&lt;&lt;</literal>. The first of these transfers the 
          rule selected in the library on the left to the list of rules 
          on the right&mdash;i.e. it adds a rule to the perspective. The 
          second one transfers the rule selected on the right to the 
          library list on the left&mdash;i.e. it removes a rule from the 
          perspective.</para>

          <para lang="en">If you hover the mouse over the horizontal line that 
          separates the two halves of the dialog, then you see it 
          change shape, to indicate that you can grab this line and 
          drag it up or down.</para>

          <para lang="en">All three titles of the lists show the number of 
          items in the list. ArgoUML V0.26 has 9 default perspectives, 
          and 72 rules in the library to build perspectives from.</para>

          <para lang="en">The buttons at the top right are explained as 
          follows:</para>

          <itemizedlist>

            <listitem>

              <para lang="en"><literal>New</literal>. This creates a new 
              perspective from scratch with no rules selected, with an 
              automatically generated name.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Remove</literal>. This removes the 
              selected perspective.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Duplicate</literal>. This creates a copy 
              the selected perspective so it can be used as the basis 
              of a new perspective. The new one is named &quot;Copy 
              of&quot; followed by the original name.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Move Up</literal>. This moves the selected 
              perspective one place up in the list. This button is 
              downlighted for the topmost perspective.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Move Down</literal>. This moves the 
              selected perspective one place down in the list. This 
              button is downlighted for the last perspective.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Restore Defaults</literal>. This restores 
              all perspectives and their selected rules to the build-in 
              defaults of ArgoUML.</para>

            </listitem>

          </itemizedlist>

          <para lang="en">At the very bottom right is a button labeled <literal>
          OK</literal> to be used when all changes are complete. 
          button&nbsp;1 click on this button will close the dialog window. 
          The changes are saved when you exit ArgoUML in 
          the <literal>argo.user.properties</literal> file.</para>

          <para lang="en">Then there is the <literal>Cancel</literal> button, 
          which cancels all changes made in the dialog. Pressing the 
          dialog close icon (usually at the top right corner) has the 
          same effect as pressing the cancel button.</para>

        </sect2>

        <!--sect2>

          <title>
			<phrase lang="en">The Explorer Panes</phrase>
		</title>

          <para lang="en">The explorer was conceived as being able to offer 
          multiple views simultaneously, with up to three panels of 
          hierarchy. A dialog offers control of these panels, with an 
          option to show or not show each panel, and the option of the 
          second and third panels to be rooted at the selection on the 
          previous panel, or to show the previously used 
          hierarchy.</para>

          <caution>

            <para lang="en">This functionality is not yet implemented in ArgoUML. 
            The dialog is never shown.</para>

          </caution>

          <para lang="en">When using the explorer, it is worth bearing in mind 
          that this is a useful visualization of the model, it is not 
          <emphasis>solely</emphasis> for navigation and selection. It 
          is also useful for users to easily (meaning a few mouse 
          clicks without having to arrange a diagram) visualize the 
          model structured according to some perspective. For example, 
          show me the state nesting, or show me the class inheritance 
          tree, or show me the package nesting, or show me the list of 
          actors.</para>

          <para lang="en">The idea with the second and third explorer tree panes, 
          is that sometimes it is easier to explore the tree to a 
          certain level in one tree and then continue expanding in a 
          second tree. Since each tree will not be so deep, it will 
          look more like a list.</para>

          <para lang="en">For example, look at the way javadocs are viewed with 
          frames: the packages are selected from one list, and 
          interfaces, classes, and exceptions in that package are shown 
          in a second pane. In the case of javadocs, the second pane 
          has a tree with three roots that are always expanded, but it 
          is visually presented as three lists with three 
          headers.</para>

          <para lang="en">The other suggested use of a second or third nav panel 
          is to list recently visited model elements. This is simliar 
          to the recently visited files listed on the <literal>
          File</literal> menu of most applications, but for model 
          elements rather than files.</para>

          <para lang="en">The motivtion is the fact that designers frequently 
          <quote>interrupt</quote> themselves: they are thinking of 
          working on one part of the design, and then they make a 
          decision that needs a change in some other part, and then 
          that has an implication on some other part, and... and... and... 
          the designer forgets what it was they were originally trying 
          to accomplish. They need to <quote>pop their mental 
          stack</quote> to come back to finish what the started. If 
          they fail to do that, they leave half-finished fragments all 
          over the design which always seem to come out as soon as it 
          is presented to someone else.</para>

          <para lang="en">A recently visited list should be LIFO (stack) ordered, 
          or FIFO (queue) ordered. The goal would be to help designers 
          come back to finish what they were doing, or simply to help 
          them switch between two or three related parts of the design. 
          The <literal>Navigate Back</literal> and <literal>Navigate 
          Forward</literal> buttons in the toolbar serve the same basic 
          purpose and use a lot less screen space.</para>

          <para lang="en">Tear-off tabs would also help with alternating between 
          views, but sometimes users don&apos;t want to work with so 
          many separate windows.</para>

          <para lang="en">This is the theory that motivates the idea of multiple 
          nav panes. For more information see Jason Robbins&apos; PhD 
          dissertation 
          <ulink url="http://argouml.tigris.org/docs/robbins_dissertation/">
          http://argouml.tigris.org/docs/robbins_dissertation/</ulink>. 
          One practical usability concern is available screen space and 
          another is visual complexity. For this reason the multiple 
          panes have yet to be implemented in ArgoUML while more 
          pressing issues are addressed.</para>

        </sect2-->

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Context Sensitive Menu</phrase>
		</title>

        <para lang="en">Button&nbsp;2 Click over any selected model element in the main 
        area of the explorer will cause a pop-up menu to appear.</para>
        
        <para lang="en">The presence of all these menu entries depends on the 
          selected element(s), 
          and other circumstances. 
          E.g. the "Create ModelElement" submenu is not present 
          on modelelements that are 
          part of a non-editable profile element.</para>

        <sect2>
          <title>
			<phrase lang="en">Create Diagram</phrase>
		</title>
          
          <para lang="en">This entry on the pop-up menu opens a choice
            of submenus, one for each diagram type. </para>
          <para lang="en">The namespace of the new diagram 
            will be based on the selected modelelement.</para>
        </sect2>

        <sect2>
          <title>
			<phrase lang="en">Create ModelElement</phrase>
		</title>
          
          <!-- Added thanks to issue 1009. -->
          <para lang="en">This entry on the pop-up menu opens a choice
            of submenus, one for each model element. </para>
          <para lang="en">The new model element 
            will be composed by the selected modelelement.</para>
          <para lang="en">Selecting multiple elements leads to different menu items, 
            e.g. selecting 2 classes 
            allows the creation of several kinds of relationships.</para>
        </sect2>

        <sect2>
          <title>
			<phrase lang="en">Copy Diagram to Clipboard as Image</phrase>
		</title>
          
          <para lang="en">This entry on the pop-up menu creates a graphical file,
          in the default graphical format, and puts it on the clipboard of your PC. 
          The graphics can inmediately be pasted into 
          e.g. a requirements document in OpenOffice.Org.</para>
          
          <para lang="en">The graphics format and its resolution are determined by 
          ArgoUML's default setting: Select in the menu 
          <literal>Edit</literal>, then <literal>Settings...</literal>,
          then the tab <literal>Environment</literal>.
          The PNG and GIF formats are advised, 
          and the resolution <literal>Standard</literal>.
          </para>
          
          <tip><para lang="en">Some applications (such as Doors from Telelogic) 
          require the background color 
          of the generated graphics to be adapted (else the image is empty). 
          This can be done with a tool like IrfanView; 
          it is as easy as clicking its paste button, 
          and then its copy button.
          </para></tip>
        </sect2>
         
        <sect2>

          <title>
			<phrase lang="en">Add to Diagram</phrase>
		</title>

          <para lang="en">This entry on the pop-up menu appears for any model element 
          that could be added to the diagram in the editing pane.</para>

          <para lang="en">The item can be placed in a diagram by moving the 
          cursor to the editing pane or a spawned editing pane window 
          (where it will appear as a cross) and clicking 
          button&nbsp;1.</para>

          <caution>

            <para lang="en">This menu entry only appears as not grayed out, if 
            the diagram in the editor pane allows to contain the 
            model element, and the model element is not present yet in the 
            diagram. ArgoUML will not let you place more than one copy 
            of any particular model element on a diagram.</para>

          </caution>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en"><guiicon><inlinemediaobject><imageobject>
          <imagedata align="center"
           fileref="images/icons/delete_from_model.gif"
           format="GIF"/></imageobject></inlinemediaobject></guiicon> 
          Delete From Model</phrase>
		</title>

          <para lang="en">This entry on the pop-up menu appears for any model element 
          that could be deleted from the model.</para>

          <warning>

            <para lang="en">This deletes the model element from the model completely, 
            not just from the diagram. To remove the model element just from 
            the diagram, use the edit menu (see 
            <xref linkend="s2.menu_edit_remove_from_diagram"/>).</para>

          </warning>

          <caution>

            <para lang="en">You can delete a diagram from the model. Depending on 
            the type of diagram, that might delete all model elements shown 
            on the diagram. To illustrate the differences, consider the 
            following examples:</para>

            <itemizedlist>

              <listitem>

                <para lang="en">Deleting a class diagram does not delete any 
                model element drawn on it. All model elements that were shown on 
                the diagram remain present in the model. This because a 
                class diagram does not &quot;map&quot; on any model element 
                according the UML standard V1.4.</para>

              </listitem>

              <listitem>

                <para lang="en">Deleting a statechart diagram also deletes the 
                statemachine it represents, and hence also all the 
                model elements owned by the statemachine. This because a 
                statechart diagram does &quot;map&quot; into a 
                StateMachine according the UML standard V1.4.</para>

              </listitem>

            </itemizedlist>

          </caution>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Set Source Path... (To be written)</phrase>
		</title>

          <para lang="en">This entry on the pop-up menu ...</para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Add Package</phrase>
		</title>

          <para lang="en">This entry on the pop-up menu is available whenever a 
          model element is selected that may contain a package, e.g. a 
          package. After activating this menu the model element will own a 
          new package.</para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">New Stereotype</phrase>
		</title>

          <para lang="en">This entry on the pop-up menu is available ...
          (to be written)</para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Add All Classes in Namespace</phrase>
		</title>

          <para lang="en">This entry on the pop-up menu is available for Class 
          Diagrams only. Activating this menu-item will add all classes 
          in the current namespace to the diagram. They will be located 
          at the top left corner&mdash;obviously a perfect occasion to use 
          the <quote>Arrange-&gt;Layout</quote> function in the 
          menu.</para>

        </sect2>

      </sect1>

    </chapter>

    <chapter id="ch.ref.editpane">

      <title>
			<phrase lang="en">The Editing Pane</phrase>
		</title>

      <sect1>

        <title>
			<phrase lang="en">Introduction</phrase>
		</title>

        <para lang="en"><xref linkend="fig.ref.editing_pane"/> shows the ArgoUML 
        window with the editing pane highlighted.</para>

        <figure float="1" id="fig.ref.editing_pane">

          <title>
			<phrase lang="en">Overview of the editing pane</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/editing_pane.png"
           format="PNG"/></imageobject></mediaobject></screenshot>
        </figure>

        <para lang="en">This is where all the diagrams are drawn. In earlier 
        versions of ArgoUML this pane went under a variety of names. 
        You may encounter <quote>drawing pane</quote>, <quote>diagram 
        pane</quote> or <quote>multi-editor pane</quote> in other 
        documentation that is still being updated.</para>

        <para lang="en">The pane has a tool bar at the top, and a single tab 
        labeled <literal>As Diagram</literal> at the bottom, which has 
        no function in the 0.20 version of ArgoUML. The main area shows 
        the currently selected diagram, of which the name is shown in 
        the window title bar.</para>

      </sect1>

      <sect1 id="s1.ref.edit_mouse">

        <title>
			<phrase lang="en">Mouse Behavior in the Editing Pane</phrase>
		</title>

        <para lang="en">Behavior of the mouse in general, and the naming of the 
        buttons is covered in the chapter on the overall user interface 
        (see <xref linkend="ch.ref.ui"/>).</para>

        <sect2>

          <title>
			<phrase lang="en">Button&nbsp;1 Click</phrase>
		</title>

          <para lang="en">In the tool bar of the editing pane, button&nbsp;1 click is 
          used to select a tool for creating a new model element and adding 
          it to the diagram (see double clicking for creating multiple 
          model elements). For most tools, adding a new model element to the 
          diagram is achieved by moving the mouse into the editing area 
          and clicking again.</para>

          <para lang="en">In the main editing area button&nbsp;1 click is used to 
          select an individual model element.</para>

          <para lang="en">Many model elements (e.g. actor, class) show special handles 
          when selected and the mouse hovers over them. These are 
          called <quote>Selection Action Buttons</quote>, see 
          <xref linkend="s1.ref.edit_pane_selection_action_buttons"/>. 
          They appear at the sides, top and bottom, and indicate a 
          relationship type. Clicking on a Selection Action Button 
          creates a new related model element, with the relation of the type 
          that was indicated. If the shift key is pressed when hovering 
          the mouse over a selected model element, sometimes different 
          handles are shown, which stand for different relation 
          types.</para>

          <para lang="en">Where button&nbsp;2 click has been used to bring up a 
          context sensitive pop-up menu (see below), button&nbsp;1 click is 
          used to select the menu entry required. The pop-up menu will 
          be removed by any button&nbsp;1 click outside of the menu 
          area.</para>

          <para lang="en">There are various more detailed effects, which are 
          discussed under the descriptions of the various tools (see 
          <xref linkend="s1.ref.edit_pane_tool_bar"/>).</para>

        </sect2>

        <sect2 id="s2.ref.edit_button1_double_click">

          <title>
			<phrase lang="en">Button&nbsp;1 Double Click</phrase>
		</title>

          <para lang="en">When used on the tool bar with a tool to add a 
          model element, the selected model element will be added multiple times 
          to the drawing area, once for each further button click, 
          until the tool is again selected or another tool 
          chosen.</para>

          <para lang="en">When used within the drawing area on a model element that 
          has sub-components, double click will select the 
          sub-component for editing (creating it if necessary).</para>

          <para lang="en">For example double clicking over an operation 
          compartment of a class will select the operation. Or create 
          one if there is none yet.</para>

          <para lang="en">A special use is with package model elements on the class 
          diagram. A double click on a package will navigate to the 
          class diagram associated with a package (the first created if 
          there is more than one), or will offer to create one for you 
          if there is none. See 
          <xref linkend="fig.ref.edit_add_class_diagram"/></para>

          <figure float="1" id="fig.ref.edit_add_class_diagram">

            <title>
			<phrase lang="en">The dialog for adding a new class diagram</phrase>
		</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/edit_add_class_diagram.png"
             format="PNG"/></imageobject></mediaobject></screenshot>
          </figure>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Button&nbsp;1 Motion</phrase>
		</title>

          <!-- This has never worked AFAIK!
          <para lang="en">When adding a model element using the toolbar, button&nbsp;1 
          motion can generally be used to define the size of the new 
          model element. Its dimensions (line ends, diagonal corners of a 
          rectangular model element etc) are defined by button&nbsp;1 down and 
          button&nbsp;1 up.</para>
          -->

          <para lang="en">Where the model element being added is some form of 
          connector its termination point is shown with button&nbsp;1 up 
          over the terminating model element. button&nbsp;1 click may be used in 
          the space between model elements to create articulation points in 
          the connector. This is particularly useful where connectors 
          must loopback on themselves.</para>

          <para lang="en">Over graphical model elements button&nbsp;1 motion will move the 
          model element to a new position.</para>

          <para lang="en">Graphical model elements that are selected show handles at 
          the corners or ends, and these can be used for 
          re-sizing.</para>

          <para lang="en">Some model elements (e.g. actor, class) show special handles 
          (called <quote>Selection Action Buttons</quote>, see 
          <xref linkend="s1.ref.edit_pane_selection_action_buttons"/>) 
          at the sides, top and bottom, which can be dragged to form 
          types of relationship with other model elements.</para>

          <para lang="en">Where the model element is some form of connector between 
          other items, button&nbsp;1 motion other than at a handle will 
          cause a new handle to be created, allowing the connector to 
          be articulated at that point. This only works when the 
          connecting line is not straight angled. Such new handles can 
          be removed by moving them to the end of the connector.</para>

          <para lang="en">There are various more detailed effects, which are 
          discussed under the descriptions of the various tools (see 
          <xref linkend="s1.ref.edit_pane_tool_bar"/>).</para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Shift and Ctrl modifiers with Button&nbsp;1</phrase>
		</title>

          <para lang="en">Where multiple selections are to be made, the CTRL key 
          is used with button&nbsp;1 to <emphasis>add</emphasis> unselected 
          model elements to the current selection. Where a model element is 
          already selected, it is removed from the current 
          selection.</para>

          <para lang="en">Clicking Button&nbsp;1 while the SHIFT key is pressed, 
          invokes the broom tool, which causes the selected model elements 
          (and any others swept up with them) to be moved with the 
          broom tool (see <xref linkend="s2.ref.edit_layout"/>).</para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Alt with Button&nbsp;1 motion</phrase>
		</title>

          <para lang="en">Button&nbsp;1 down anywhere in the diagram while the ALT key 
          is pressed, allows to scroll the canvas in all directions 
          with button&nbsp;1 motion.</para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Button&nbsp;2 Actions</phrase>
		</title>

          <para lang="en">When used over model elements in the the editing pane, this 
          will display a context dependent pop-up menu. Menu entries 
          are highlighted (but not selected) and sub-menus exposed by 
          subsequent mouse motion (without any buttons). Menu entry 
          selection is with button&nbsp;1 or button&nbsp;2. See 
          <xref linkend="s1.ref.edit_pane_pop_up"/> for details of the 
          specific pop-up menus.</para>

          <para lang="en">In case multiple elements are selected, the pop-up menu 
          only appears if all the items are of the same kind. 
          In this case, the 
          functions apply to all selected elements.</para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Button&nbsp;2 Double Click</phrase>
		</title>

          <para lang="en">This has no effect other than that of button&nbsp;2 single 
          click.</para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Button&nbsp;2 Motion</phrase>
		</title>

          <para lang="en">This is used to select items in a context sensitive 
          menu popped up by use of button&nbsp;2 click.</para>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.edit_pane_keyboard">

        <title>
			<phrase lang="en">Keyboard Behavior in the Editing Pane</phrase>
		</title>

        <para lang="en">Many keyboard shortcuts can be used when the editing pane
        is active, mainly to change the selection or to move across the
        model elements.</para>

        <sect2>

          <title>
			<phrase lang="en">Nudging a model element</phrase>
		</title>

          <para lang="en">You can nudge a fig by selecting an element and using
          arrow keys. Keeping the shift or the alt key pressed will produce
          a wider movement.</para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Moving across the model elements</phrase>
		</title>

          <para lang="en">You can select the model element nearer to the selected one by 
          using the arrow keys while clicking the right button of the mouse.
          You can also select the next model element using the tab key, or the
          previous using the ctrl+tab keys.</para>

        </sect2>

      </sect1>
      
      <sect1 id="s1.ref.edit_pane_tool_bar">

        <title>
			<phrase lang="en">The tool bar</phrase>
		</title>

        <para lang="en">The toolbar at the top of the editing pane provides the 
        main functions of the pane. The default tool is the <literal>
        Select</literal> tool (<guiicon><inlinemediaobject><imageobject>
        <imagedata align="center" fileref="images/icons/select.gif"
         format="GIF"/></imageobject></inlinemediaobject></guiicon>). 
        In general button&nbsp;1 click on any tool selects a tool for one 
        use, before reverting to the default tool, and button&nbsp;1 double 
        click selects a tool for repeated use.</para>

        <para lang="en">The tools fall into four categories.</para>

        <itemizedlist>

          <listitem>

            <para lang="en"><emphasis>Layout tools.</emphasis> Provide assistance 
            in laying out model elements on the diagram.</para>

          </listitem>

          <listitem>

            <para lang="en"><emphasis>Annotation tools.</emphasis> Used to 
            annotate model elements on the diagram.</para>

          </listitem>

          <listitem>

            <para lang="en"><emphasis>Drawing tools.</emphasis> Used to add 
            general graphic objects to diagrams.</para>

          </listitem>

          <listitem>

            <para lang="en"><emphasis>Diagram specific tools.</emphasis> Used to 
            add UML model elements specific to a particular diagram type to 
            the diagram.</para>

          </listitem>

        </itemizedlist>
        
        <para lang="en">Some of the tools that are generally not all used so often, 
        are combined in a dropdown, 
        to take less space on the toolbar. 
        See e.g. <xref linkend="fig.ref.edit_graphical_tools"/>.
        Press the symbol at the right of the tool to pop it open.
        These drop-down tools remember their last used tool persistently. 
        This means that when ArgoUML starts, 
        they show the last tool that was activated 
        the previous time ArgoUML was run.
        </para>

        <sect2 id="s2.ref.edit_layout">

          <title>
			<phrase lang="en">Layout Tools</phrase>
		</title>

          <para lang="en">The following two tools are provided in all diagrams in 
          this category.</para>

          <itemizedlist>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/select.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Select</literal>. This tool provides for general 
              selection of model elements on the diagram. Button&nbsp;1 click 
              will select a model element. CTRL with button&nbsp;1 can be used 
              to select (or deselect) multiple model elements. Button&nbsp;1 
              motion will move selected 2D items or add and move a new 
              control point on a link. Button&nbsp;1 motion on a selected 
              component&apos;s control point will stretch that 
              component&apos;s shape.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center" fileref="images/icons/broom.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <emphasis>Broom</emphasis>. Button&nbsp;1 motion with this 
              tool provide a <quote>broom</quote> which will sweep all 
              model elements along. This is a very shortcut way of lining 
              things up.</para>

              <para lang="en">The Broom can also be invoked by using SHIFT with 
              button&nbsp;1 motion when the <literal>Select</literal> tool 
              is in use.</para>

              <para lang="en">The Broom is discussed at length in its own 
              chapter, see <xref linkend="s1.ref.edit_pane_broom"/>
              </para>

            </listitem>

          </itemizedlist>

          <tip>

            <para lang="en">Additional control of model element layout is provided 
            through the <literal>Arrange</literal> menu (see 
            <xref linkend="s1.ref.menu_arrange"/>).</para>

          </tip>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Annotation Tools</phrase>
		</title>

          <para lang="en">The annotation tool <literal>Comment</literal> (
          <guiicon><inlinemediaobject><imageobject>
          <imagedata align="center" fileref="images/icons/note.gif"
           format="GIF"/></imageobject></inlinemediaobject></guiicon>) 
          is used to add a comment to a selected UML model element.</para>

          <caution>

            <para lang="en">Unlike most other tools you use the <literal>
            Select</literal> tool to select a model element, and then 
            button&nbsp;1 click on <literal>Comment</literal> to create the 
            comment. If no element is selected when the comment tool is 
            clicked, then the comment is created and put at the left 
            top corner.</para>

          </caution>

          <para lang="en">The comment is created alongside the selected model element, 
          empty by default. The text can be selected with button&nbsp;1 
          double-click and edited from the keyboard.</para>

          <para lang="en">The UML standard allows comments to be attached to any 
          model element.</para>

          <para lang="en">You can link any comment to aditional elements using 
          the <literal>CommentLink</literal> (
          <guiicon><inlinemediaobject><imageobject>
          <imagedata align="center"
           fileref="images/icons/commentlink.gif"
           format="GIF"/></imageobject></inlinemediaobject></guiicon>) 
          tool.</para>

        </sect2>

        <sect2 id="s2.ref.edit_pane_drawing_tools">

          <title>
			<phrase lang="en">Drawing Tools</phrase>
		</title>

          <para lang="en">These are a series of tools for providing graphical 
          additions to diagrams. Although they are not UML model elements, 
          the UML standard provides for such decoration to improve the 
          readability of diagrams.</para>

          <tip>

            <para lang="en">These drawing tools provide a useful way to partially 
            support some of the UML features (such as general purpose 
            notes) that are missing from the current release of 
            ArgoUML.</para>

          </tip>

          <para lang="en">Eight tools are provided, all grouped into one 
          drop-down widget. See 
          <xref linkend="fig.ref.edit_graphical_tools"/>. Button&nbsp;1 
          click on the diagram will place an instance of the graphical 
          item of the same size as the last one placed. The size can be 
          controlled by button&nbsp;1 motion during placement. One side or 
          end of the element will be at button&nbsp;1 down, the other side 
          or end at button&nbsp;1 up. In general after they are placed on 
          the diagram, graphical elements can be dragged with the 
          <literal>Select</literal> tool and button&nbsp;1 and re-sized by 
          button&nbsp;1 motion on the handles after they have been 
          selected.</para>

          <figure float="1" id="fig.ref.edit_graphical_tools">

            <title>
			<phrase lang="en">The drawing tools selector.</phrase>
		</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/edit_graphical_tools.png"
             format="PNG"/></imageobject></mediaobject></screenshot>
          </figure>

          <itemizedlist>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/rectangle.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Rectangle</literal>. Provides a rectangle.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/rounded_rectangle.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Rounded Rectangle</literal>. Provides a 
              rectangle with rounded corners. There is no control over 
              the degree of rounding.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/circle.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Circle</literal>. Provides a circle.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center" fileref="images/icons/line.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Line</literal>. Provides a line.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center" fileref="images/icons/text.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Text</literal>. Provides a text box. The text is 
              entered by selecting the box and typing. Text is centered 
              horizontally and after typing, the box will shrink to the 
              size of the text. However it can be re-sized by dragging 
              on the corners.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/polygon.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Polygon</literal>. Provides a polygon. The 
              points of the polygon are selected by button&nbsp;1 click and 
              the polygon closed with button&nbsp;1 double click (which will 
              link the final point to the first point).</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/spline.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Spline</literal>. Provide an open spline. The 
              control points of the spline are selected with button&nbsp;1 
              and the last point selected with button&nbsp;1 double 
              click.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center" fileref="images/icons/ink.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Ink</literal>. Provide a polyline. The points 
              are provided by button&nbsp;1 motion.</para>

            </listitem>

          </itemizedlist>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Use Case Diagram Specific Tools</phrase>
		</title>

          <para lang="en">Several tools are provided specific to UML model elements on 
          use case diagrams. The detailed properties of these model elements 
          are described in the section on use case diagram model elements 
          (see <xref linkend="ch.ref.entusecase"/>).</para>

          <itemizedlist>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center" fileref="images/icons/actor.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Actor</literal>. Add an actor to the diagram. 
              For convenience, when the mouse is over a selected actor 
              it displays two handles to left and right which may be 
              dragged to form association relationships.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/use_case.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Use Case</literal>. Add a use case to the 
              diagram. For convenience, when the mouse is over a 
              selected use case it displays two handles to left and 
              right which may be dragged to form association 
              relationships and two handles top and bottom which may be 
              dragged to form generalization and specialization 
              relationships respectively.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/association_plain.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Association</literal>. Add an association 
              between two model elements selected using button&nbsp;1 motion 
              (from the first model element to the second). There are 6 
              types of association offered here, see 
              <xref linkend="fig.ref.edit_association_tools"/>: 
              <literal>association</literal>, <literal>
              aggregation</literal> and <literal>composition</literal>, 
              and all these three can be <literal>
              bidirectional</literal> or <literal>
              unidirectional</literal>.</para>

              <figure float="1" id="fig.ref.edit_association_tools">

                <title>
			<phrase lang="en">The association tool selector.</phrase>
		</title>

                <screenshot><mediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/reference/edit_association_tools.png"
                 format="PNG"/></imageobject></mediaobject></screenshot>
              </figure>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/dependency.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Dependency</literal>. Add a dependency between 
              two model elements selected using button&nbsp;1 motion (from the 
              dependent model element).</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/generalization.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Generalization</literal>. Add a generalization 
              between two model elements selected using button&nbsp;1 motion 
              (from the child to the parent).</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/extend.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Extend</literal>. Add an extend relationship 
              between two model elements selected using button&nbsp;1 motion 
              (from the extended to the extending use case).</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/include.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Include</literal>. Add an include relationship 
              between two model elements selected using button&nbsp;1 motion 
              (from the including to the included use case).</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/extension_point.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Add Extension Point</literal>. Add an extension 
              point to a selected use case. The extension point is 
              given the default name <literal>newEP</literal> and 
              location <literal>loc</literal>. Where the extension 
              point compartment is displayed, the extension point may 
              be edited by button&nbsp;1 double click and using the 
              keyboard, or by selecting with button&nbsp;1 click (after the 
              use case has been selected) and using the property tab. 
              Otherwise it may be edited through its property tab, 
              selected through the property tab of the owning use 
              case.</para>

              <note>

                <para lang="en">This tool is grayed out except when a use case is 
                selected.</para>

              </note>

            </listitem>

          </itemizedlist>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Class Diagram Specific Tools</phrase>
		</title>

          <para lang="en">Several tools are provided specific to UML model elements on 
          class diagrams. The detailed properties of these model elements 
          are described in the section on class diagram model elements (see 
          <xref linkend="ch.ref.entclass"/>).</para>

          <itemizedlist>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/package.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Package</literal>. Add a package to the 
              diagram.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center" fileref="images/icons/class.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Class</literal>. Add a class to the diagram. For 
              convenience, when the mouse is over a selected class it 
              displays two handles to left and right which may be 
              clicked or
              dragged to form association relationships (or composition 
              in case SHIFT has been pressed) and two handles top and 
              bottom which may be dragged or clicked
              to form generalization and 
              specialization relationships respectively.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/association_plain.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Association</literal>. Add an association 
              between two model elements selected using button&nbsp;1 motion 
              (from the first model element to the second). There are 2 
              types of association offered here, <literal>
              bidirectional</literal> or <literal>
              unidirectional</literal>.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/aggregation_plain.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Aggregation</literal>. Add an aggregation
              between two model elements selected using button&nbsp;1 motion 
              (from the first model element to the second). There are 2
              types of aggregation offered here, <literal>
              bidirectional</literal> or <literal>
              unidirectional</literal>.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/composition_plain.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Composition</literal>. Add an composition 
              between two model elements selected using button&nbsp;1 motion 
              (from the first model element to the second). There are 2 
              types of composition offered here, <literal>
              bidirectional</literal> or <literal>
              unidirectional</literal>.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/association_end.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Association-end</literal>. Add 
              another end to an already existing association 
              using button&nbsp;1 (from the 
              association middle to a class, or vice versa).
              This is the way to create so-calld N-ary associations.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/generalization.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Generalization</literal>. Add a generalization 
              between two model elements selected using button&nbsp;1 (from the 
              child to the parent).</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/interface.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Interface</literal>. Add an interface to the 
              diagram. For convenience, when the mouse is over a 
              selected interface it displays a handle at the bottom 
              which may be dragged to form a realization relationship 
              (the target being the realizing class).</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/realization.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Realization</literal>. Add a realization between 
              a class and an interface selected using button&nbsp;1 motion 
              (from the realizing class to the realized 
              interface).</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/dependency.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Dependency</literal>. Add a dependency between 
              two model elements selected using button&nbsp;1 motion (from the 
              dependent model element). There are also 2 special types of 
              dependency offered here, <literal>Permission</literal> (
              <guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/permission.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon>) 
              and <literal>Usage</literal> (
              <guiicon><inlinemediaobject><imageobject>
              <imagedata align="center" fileref="images/icons/usage.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon>).
               A <literal>Permission</literal> is created by default 
               with stereotype <literal>Import</literal>, and is used to import
               elements from one package into another.
              </para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/attribute.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Attribute</literal>. Add a new attribute to the 
              currently selected class. The attribute is given the 
              default name <literal>newAttr</literal> of type <literal>
              int</literal> and may be edited by button&nbsp;1 double click 
              and using the keyboard, or by selecting with button&nbsp;1 
              click (after the class has been selected) and using the 
              property tab.</para>

              <note>

                <para lang="en">This tool is grayed out except when a class is 
                selected.</para>

              </note>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/operation.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Operation</literal>. Add a new operation to the 
              currently selected class or interface. The operation is 
              given the default name <literal>newOperation</literal> 
              with no arguments and return type <literal>void</literal> 
              and may be edited by button&nbsp;1 double click and using the 
              keyboard, or by selecting with button&nbsp;1 click (after the 
              class has been selected) and using the property 
              tab.</para>

              <note>

                <para lang="en">This tool is grayed out except when a class or 
                interface is selected.</para>

              </note>

            </listitem>
            
            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/associationclass.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Association Class</literal>. 
              Add a new association class 
              between two model elements selected using button&nbsp;1 motion 
              (from the first model element to the second).</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/datatype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Datatype</literal>. 
              Add a datatype to the 
              diagram. For convenience, when the mouse is over a 
              selected datatype it displays handles 
              at the top and at the bottom 
              which may be clicked or dragged 
              to form a generalization relationship 
              (the target being another datatype).
              There are 2 other elements available here, 
              <guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/enumeration.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Enumeration</literal>
              and
              <guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Stereotype</literal>.
              These two have similar handles, 
              except the one at the top of a stereotype: 
              when clicked, it creates a metaclass, 
              connected by a dependency marked with &laquo;stereotype&raquo;.
              This eases the creation of "stereotype declaration" diagrams - 
              see the literature on the subject.
              </para>

            </listitem>

          </itemizedlist>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Sequence Diagram Specific Tools</phrase>
		</title>

          <para lang="en">Seven tools are provided specific to UML model elements on 
          sequence diagrams. The detailed properties of these model elements 
          are described in the section on sequence diagram model elements 
          (see <xref linkend="ch.ref.entseq"/>).</para>

          <itemizedlist>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/classifierrole_sd.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>ClassifierRole</literal>. Add a classifierrole to the 
              diagram.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/call_action.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Message with Call Action</literal>. 
              Add a call message 
              between two classifierroles selected using button&nbsp;1 motion (from 
              the originating classifierrole to the receiving classifierrole).
              </para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/return_action.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Message with Return Action</literal>. 
              Add a return message 
              between two classifierroles selected using button&nbsp;1 motion (from 
              the originating classifierrole to the receiving classifierrole).
              </para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/create_action.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Message with Create Action</literal>. 
              Add a create message 
              between two classifierroles selected using button&nbsp;1 motion (from 
              the originating classifierrole to the receiving classifierrole).
              </para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/destroy_action.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Message with Destroy Action</literal>. 
              Add a destroy message 
              between two classifierroles selected using button&nbsp;1 motion (from 
              the originating classifierrole to the receiving classifierrole).
              </para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/sequence_expand.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Add Vertical Space to Diagram</literal>.  
              Add vertical space to a diagram by moving all messages
              below this down.  Click the mouse at the point where you 
              want the space to be added and drag down the screen vertically
              the distance which matches the height of the space you'd 
              like to have added.
              </para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/sequence_contract.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Remove Vertical Space in Diagram</literal>. 
              Remove vertical space from diagram and move all elements
              below up vertically.  Click and drag the mouse vertically
              over the space that you want deleted.
              </para>

            </listitem>

          </itemizedlist>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Collaboration Diagram Specific Tools</phrase>
		</title>

          <para lang="en">Three tools are provided specific to UML model elements on 
          collaboration diagrams. The detailed properties of these 
          model elements are described in the section on collaboration 
          diagram model elements (see <xref linkend="ch.ref.entcollab"/>
          ).</para>

          <itemizedlist>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/classifier_role.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Classifier Role</literal>. Add a classifier role 
              to the diagram.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/association_plain.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Association Role</literal>. Add an association 
              role between two classifier roles selected using button&nbsp;1 
              motion (from the originating classifier role to the 
              receiving classifier role). There are 6 types of 
              association roles offered here, see 
              <xref linkend="fig.ref.edit_association_tools"/>: 
              <literal>association</literal>, <literal>
              aggregation</literal> and <literal>composition</literal>, 
              and all these three can be <literal>
              bidirectional</literal> or <literal>
              unidirectional</literal>.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/generalization.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Generalization</literal>. Add a generalization 
              between two model elements selected using button&nbsp;1 (from the 
              child to the parent).</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/dependency.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Dependency</literal>. Add a dependency between 
              two model elements selected using button&nbsp;1 motion (from the 
              dependent model element).</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/message.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Add Message</literal>. Add a message to the 
              selected association role.</para>

              <note>

                <para lang="en">This tool is grayed out except when an 
                association role is selected.</para>

              </note>

            </listitem>

          </itemizedlist>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Statechart Diagram Specific Tools</phrase>
		</title>

          <para lang="en">Eleven tools are provided specific to UML model elements on 
          statechart diagrams. The detailed properties of these model elements 
          are described in the section on statechart diagram model elements 
          (see <xref linkend="ch.ref.entstate"/>).</para>

          <itemizedlist>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center" fileref="images/icons/state.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Simple State</literal>. Add a simple state to the 
              diagram.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/composite_state.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Composite State</literal>. Add a composite state 
              to the diagram. All model elements that are subsequently 
              placed on the diagram on top of the composite state will 
              form part of that composite state.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/transition.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Transition</literal>. Add a transition between 
              two states selected using button&nbsp;1 motion (from the 
              originating state to the receiving state).</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/synchstate.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Synch State</literal>. Add a synchstate to the 
              diagram.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/submachinestate.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Submachine State</literal>. Add a submachinestate to the 
              diagram.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stubstate.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Stub State</literal>. Add a stubstate to the 
              diagram.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/initial_state.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Initial</literal>. Add an initial pseudostate to 
              the diagram.</para>

              <caution>

                <para lang="en">There is nothing to stop you adding more than one 
                initial state to a diagram or composite state. However 
                to do so is meaningless, and one of the critics will 
                complain.</para>

              </caution>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/final_state.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Final State</literal>. Add a final state to the 
              diagram.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/junction.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Junction</literal>. Add a junction pseudostate 
              to the diagram.</para>

              <caution>

                <para lang="en">A well formed junction should have at least one incoming 
                transition and at least one outgoing. ArgoUML does not 
                enforce this, but an ArgoUML critic will complain about 
                any junction that does not follow this rule.</para>

              </caution>
            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/branch.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Choice</literal>. Add a choice pseudostate to 
              the diagram.</para>

              <caution>

                <para lang="en">A well formed choice should have at least one incoming 
                transition and at least one outgoing. ArgoUML does not 
                enforce this, but an ArgoUML critic will complain about 
                any choice that does not follow this rule.</para>

              </caution>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center" fileref="images/icons/fork.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Fork</literal>. Add a fork pseudostate to the 
              diagram.</para>

              <caution>

                <para lang="en">A well formed fork should have exactly one incoming 
                transition and two or more outgoing. ArgoUML does not 
                enforce this, but an ArgoUML critic will complain about 
                any fork that does not follow this rule.</para>

              </caution>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center" fileref="images/icons/join.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Join</literal>. Add a join pseudostate to the 
              diagram.</para>

              <caution>

                <para lang="en">A well formed join should have exactly one outgoing 
                transition and two or more incoming. ArgoUML does not 
                enforce this, but an ArgoUML critic will complain about 
                any join that does not follow this rule.</para>

              </caution>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/shallow_history.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Shallow History</literal>. Add a shallow history 
              pseudostate to the diagram.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/deep_history.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Deep History</literal>. Add a deep history 
              pseudostate to the diagram.</para>

            </listitem>
            
            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/call_event.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Call Event</literal>. Add a Call Event as trigger
              to a transition.
              There are 4 types of 
              events offered here: 
              <literal>Call Event</literal>, <literal>
              Change Event</literal>, 
              <literal>Signal Event</literal> and <literal>
              Time Event</literal>.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/guard.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Guard</literal>. Add a guard 
              to a transition.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/call_action.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Call Action</literal>. Add a call action 
              (i.e. the effect)
              to a transition.
              There are 7 types of 
              actions offered here: 
              <literal>Call Action</literal>, 
              <literal>Create Action</literal>, 
              <literal>Destroy Action</literal>, 
              <literal>Return Action</literal>, 
              <literal>Send Action</literal>, 
              <literal>Terminate Action</literal>, 
              <literal>Uninterpreted Action</literal> and 
              <literal>Action Sequence</literal>.
              </para>

            </listitem>

          </itemizedlist>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Activity Diagram Specific Tools</phrase>
		</title>

          <para lang="en">Seven tools are provided specific to UML model elements on 
          activity diagrams. The detailed properties of these model elements 
          are described in the section on activity diagram model elements 
          (see <xref linkend="ch.ref.entactiv"/>).</para>

          <itemizedlist>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/action_state.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Action State</literal>. Add an action state to 
              the diagram.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/transition.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Transition</literal>. Add a transition between 
              two action states selected using button&nbsp;1 motion (from 
              the originating action state to the receiving action 
              state).</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/initial_state.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Initial</literal>. Add an initial pseudostate to 
              the diagram.</para>

              <caution>

                <para lang="en">There is nothing to stop you adding more than one 
                initial state to a diagram. However to do so is 
                meaningless, and one of the critics will 
                complain.</para>

              </caution>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/final_state.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Final State</literal>. Add a final state to the 
              diagram.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/junction.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Junction</literal>. Add a junction (decision) 
              pseudostate to the diagram.</para>

              <caution>

                <para lang="en">A well formed junction should have one incoming 
                transition and two or more outgoing. ArgoUML does not 
                enforce this, but an ArgoUML critic will complain about 
                any junction that does not follow this rule.</para>

              </caution>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center" fileref="images/icons/fork.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Fork</literal>. Add a fork pseudostate to the 
              diagram.</para>

              <caution>

                <para lang="en">A well formed fork should have one incoming 
                transition and two or more outgoing. ArgoUML does not 
                enforce this, but an ArgoUML critic will complain about 
                any fork that does not follow this rule.</para>

              </caution>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center" fileref="images/icons/join.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Join</literal>. Add a join pseudostate to the 
              diagram.</para>

              <caution>

                <para lang="en">A well formed join should have one outgoing 
                transition and two or more incoming. ArgoUML does not 
                enforce this, but an ArgoUML critic will complain about 
                any join that does not follow this rule.</para>

              </caution>

            </listitem>
            
            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/callstate.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>CallState</literal>. Add a callstate to the 
              diagram. 
              A call state is an action state that calls a single operation.
              Hence, the name of the operation being called 
              is put in the symbol, 
              along with the name of the classifier that
              hosts the operation in parentheses under it.
              </para>

            </listitem>
            
            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/objectflowstate.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>ObjectFlowState</literal>. Add a objectflowstate to the 
              diagram.
              An objectflowstate is 
              an object that is input to or output from 
              an action.</para>

            </listitem>

          </itemizedlist>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Deployment Diagram Specific Tools</phrase>
		</title>

          <para lang="en">Ten tools are provided specific to UML model elements on 
          deployment diagrams. The detailed properties of these 
          model elements are described in the section on deployment diagram 
          model elements (see <xref linkend="ch.ref.entdeploy"/>).</para>

          <note>

            <para lang="en">Remember that ArgoUML&apos;s deployment diagrams are 
            also used for component diagrams.</para>

          </note>

          <itemizedlist>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center" fileref="images/icons/node.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Node</literal>. Add a node to the diagram. For 
              convenience, when the mouse is over a selected node it 
              displays four handles to left, right, top and bottom 
              which may be dragged to form association 
              relationships.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/node_instance.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Node Instance</literal>. Add a node instance to 
              the diagram. For convenience, when the mouse is over a 
              selected node instance it displays four handles to left, 
              right, top and bottom which may be dragged to form link 
              relationships.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/component.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Component</literal>. Add a component to the 
              diagram. For convenience, when the mouse is over a 
              selected component it displays four handles to left, 
              right, top and bottom which may be dragged to form 
              dependency relationships.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/component_instance.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Component Instance</literal>. Add a component 
              instance to the diagram. For convenience, when the mouse 
              is over a selected component instance it displays four 
              handles to left, right, top and bottom which may be 
              dragged to form dependency relationships.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/generalization.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Generalization</literal>. Add a generalization 
              between two model elements selected using button&nbsp;1 (from the 
              child to the parent).</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/realization.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Realization</literal>. Add a realization between 
              a class and an interface selected using button&nbsp;1 motion 
              (from the realizing class to the realized 
              interface).</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/dependency.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Dependency</literal>. Add a dependency between 
              two model elements selected using button&nbsp;1 motion (from the 
              dependent model element).</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/association_plain.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Association</literal>. Add an association 
              between two model elements (node, component, class or 
              interface) selected using button&nbsp;1 motion (from the first 
              model element to the second model element). There are 6 types of 
              association offered here, see 
              <xref linkend="fig.ref.edit_association_tools"/>: 
              <literal>association</literal>, <literal>
              aggregation</literal> and <literal>composition</literal>, 
              and all these three can be <literal>
              bidirectional</literal> or <literal>
              unidirectional</literal>.</para>

              <caution>

                <para lang="en">The constraint that associations between classes 
                and interfaces must not be navigable 
                <emphasis>from</emphasis> the interface still applies 
                on deployment diagrams.</para>

              </caution>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/object.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Object</literal>. Add an object to the diagram. 
              For convenience, when the mouse is over a selected object 
              it displays four handles to left, right, top and bottom, 
              which may be dragged to form link relationships.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center" fileref="images/icons/link.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Link</literal>. Add a link between two model elements 
              (node instance, component instance or object) selected 
              using button&nbsp;1 motion.</para>

            </listitem>

          </itemizedlist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.edit_pane_broom">

        <title>
			<phrase lang="en">The Broom</phrase>
		</title>

        <para lang="en">ArgoUML&apos;s broom alignment tool is specialized to 
        support the needs of designers in achieving the kind of 
        alignment used in UML diagrams. It is common for designers to 
        roughly align objects as they are created or by using simple 
        movement commands. The broom is an easy way to precisely align 
        objects that are already roughly aligned. Furthermore, the 
        broom&apos;s distribution options are suited to the needs of 
        UML designers: making related objects appear evenly spaced, 
        packing objects to save diagram space, and spreading objects 
        out to make room for new objects. The broom also makes it easy 
        to change from horizontal to vertical alignment or from 
        left-alignment to right-alignment.</para>

        <para lang="en">The T-shaped icon in ArgoUML&apos;s diagram toolbar 
        invokes the broom alignment tool. When the mouse button&nbsp;1 is 
        pressed while in broom-mode, the designer&apos;s initial mouse 
        movement orients the broom to face in one of four directions: 
        north, south, east, or west. After that, mouse drag events 
        cause the broom to advance in the chosen direction, withdraw, 
        or grow in a lateral direction. Like a real-world push broom, 
        the broom tool pushes diagram elements that come in contact 
        with it. This has the effect of aligning objects along the face 
        of the broom and provides immediate visual feedback (see the 
        figure below). Unlike a real-world broom, moving backwards 
        allows diagram elements to return to their original position. 
        Growing the broom makes it possible to align objects that are 
        not near each other. When the mouse button is released, the 
        broom disappears and the moved objects are selected to make it 
        easy to manipulate them further.</para>

        <figure float="1" id="fig.ref.editpane_broom">

          <title>
			<phrase lang="en">The Broom.</phrase>
		</title>

          <informaltable frame="none">

            <tgroup cols="2">

              <tbody>

                <row><entry><screenshot><mediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/reference/edit_broom1.png"
                 format="PNG"/></imageobject></mediaobject></screenshot></entry><entry><screenshot><mediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/reference/edit_broom2.png"
                 format="PNG"/></imageobject></mediaobject></screenshot></entry></row>

                <row><entry><screenshot><mediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/reference/edit_broom3.png"
                 format="PNG"/></imageobject></mediaobject></screenshot></entry><entry><screenshot><mediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/reference/edit_broom4.png"
                 format="PNG"/></imageobject></mediaobject></screenshot></entry></row>

              </tbody>

            </tgroup>

          </informaltable>

        </figure>

        <para lang="en">If the designer presses the <emphasis>space bar</emphasis> 
        while using the 
        broom, objects on the face of the broom are distributed (i.e., 
        spaced evenly). ArgoUML&apos;s broom supports three 
        distribution modes: objects can be spaced evenly across the 
        space that they use, objects can be packed together with only a 
        small gap between them, or objects can be distributed evenly 
        over the entire length of the broom&apos;s face. Repeatedly 
        pressing the space bar cycles among these three distribution 
        modes and displays a brief message indicating the operation 
        just performed: Space evenly, Pack tightly, Spread out and 
        Original.</para>
        
        <para lang="en">If the designer presses the <emphasis>Enter</emphasis> 
        key while using the broom,
        the broom turns red (instead of the normal blue), and objects are not
        picked up by the broom when moving forward. 
        It works like lifting up the broom. 
        Pressing Enter again returns to the normal mode.</para>
        
        <para lang="en">Pressing the <emphasis>Tab</emphasis>
        key works exactly like the Enter key.</para>

      </sect1>

      <sect1 id="s1.ref.edit_pane_selection_action_buttons">

        <title>
			<phrase lang="en">Selection Action Buttons</phrase>
		</title>

        <para lang="en">When the user selects a model element in a UML diagram, 
        several handles are drawn on it to indicate that it is selected 
        and to provide user interface affordances to resize the node. 
        ArgoUML also displays some <quote>selection-action 
        buttons</quote> around the selected model element. See the figure 
        below for some examples of the handles and 
        <quote>selection-action buttons</quote>. The two figures for a 
        class differ because for creating the second one, the shift key 
        has been depressed.</para>

        <figure float="1" id="fig.ref.editpane_selection_action_buttons">

          <title>
			<phrase lang="en">Some examples of <quote>Selection Action 
          Buttons</quote>.</phrase>
		</title>

          <informaltable frame="none">

            <tgroup cols="3">

              <tbody>

                <row><entry><screenshot><mediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/reference/edit_selection_action_buttons1.png"
                 format="PNG"/></imageobject></mediaobject></screenshot></entry><entry><screenshot><mediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/reference/edit_selection_action_buttons2.png"
                 format="PNG"/></imageobject></mediaobject></screenshot></entry><entry><screenshot><mediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/reference/edit_selection_action_buttons3.png"
                 format="PNG"/></imageobject></mediaobject></screenshot></entry></row>

                <row><entry><screenshot><mediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/reference/edit_selection_action_buttons4.png"
                 format="PNG"/></imageobject></mediaobject></screenshot></entry><entry><screenshot><mediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/reference/edit_selection_action_buttons5.png"
                 format="PNG"/></imageobject></mediaobject></screenshot></entry><entry><screenshot><mediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/reference/edit_selection_action_buttons6.png"
                 format="PNG"/></imageobject></mediaobject></screenshot></entry></row>

              </tbody>

            </tgroup>

          </informaltable>

        </figure>

        <para lang="en">Selection-action buttons offer common operations on the 
        selected object. For example, a class node has a button at 
        12-o&apos;clock for adding a superclass, one at 6-o&apos;clock 
        for adding a subclass, and buttons at 3-o&apos;clock and 
        9-o&apos;clock for adding associations. These buttons support a 
        &quot;click or drag&quot; interaction: a single click creates a 
        new related class at a default position relative to the 
        original class and creates a generalization or association; a 
        drag from the button to an existing class creates only the 
        generalization or association; and, a drag to an empty space in 
        the diagram creates a new class at the mouse position and the 
        generalization or association. ArgoUML provides some automated 
        layout support so that clicking the subclass button will 
        position the new classes so that they do not overlap.</para>

        <para lang="en">Selection-action buttons are transparent. They have a 
        visibly recognizable rectangular shape and size and they 
        contain an icon that is the same as the icon used for the 
        corresponding type of design element on the standard toolbar. 
        However, these icons are unfilled line drawings with many 
        transparent pixels. This allows selection-action buttons to be 
        overlaid onto the drawing area without overly obscuring the 
        diagram itself. Also, the buttons are only drawn when the mouse 
        is over the selected model element; if any part of the diagram is 
        obscured, the mouse can simply be moved away to get a clearer 
        view of the diagram.</para>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Clarifiers</phrase>
		</title>

        <para lang="en">A key feature of ArgoUML are the critics, which run in 
        parallel with the main ArgoUML tool. When they find a problem, 
        they typically raise a to-do item, and also highlight the 
        problem on the editing pane. The graphical techniques used for 
        highlighting are called <emphasis>Clarifiers</emphasis></para>

        <itemizedlist>

          <listitem>

            <para lang="en">Note icon (<guiicon><inlinemediaobject><imageobject>
            <imagedata align="center" fileref="images/icons/note.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon>). 
            Displayed at the top left of a model element indicates a critic 
            of that model element. Moving the mouse over the icon will pop 
            up the critic headline.</para>

          </listitem>

          <listitem>

            <para lang="en">Colored wavy line (
            <guiicon><inlinemediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/wavy_line.png"
             format="PNG"/></imageobject></inlinemediaobject></guiicon>). 
            Used for critics specific to sub-components of graphical 
            model elements. For example to underline attributes with a 
            problem within a class.</para>

          </listitem>

          <listitem>

            <para lang="en">Solid colored line (
            <guiicon><inlinemediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/solid_line.png"
             format="PNG"/></imageobject></inlinemediaobject></guiicon>). 
            Not seen in ordinary editing, but used when a to-do item is 
            highlighted from the to-do pane (see 
            <xref linkend="ch.ref.todopane"/>) by button&nbsp;1 double 
            click. The solid line is used to show all the model elements 
            affected by the critic, for example all stimuli that are 
            out of order.</para>

          </listitem>

        </itemizedlist>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">The Drawing Grid</phrase>
		</title>

        <para lang="en">The editing pane is provided with a background grid which 
        can be set in various styles or turned off altogether through 
        the menu (see <xref linkend="s2.ref.menu_adjust_grid"/>).</para>

        <para lang="en">Whatever grid is actually displayed, placement of items 
        on the diagram is always controlled by the setting for grid 
        snap, which ranges from 4 to 32 pixels (see 
        <xref linkend="s2.ref.menu_grid_snap"/>).</para>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">The Diagram Tab</phrase>
		</title>

        <para lang="en">At the bottom of the editing pane is a small tab labeled 
        as <literal>As Diagram</literal>. The concept is that a UML 
        diagram can be displayed in a number of ways, for example as a 
        graphical diagram or as a table. Each representation would have 
        its own tab and be selected by button&nbsp;1 click on the tab.</para>

        <para lang="en">Earlier versions of ArgoUML did implement a tabular 
        representation, but the current release only supports a diagram 
        representation, so this tab does not have any function.</para>

      </sect1>

      <sect1 id="s1.ref.edit_pane_pop_up">

        <title>
			<phrase lang="en">Pop-Up Menus</phrase>
		</title>

        <para lang="en">Within the editing pane, button&nbsp;2 click over a model element 
        will bring up a pop-up menu with a variable number of main 
        entries, many with a sub-menu.</para>

        <sect2>

          <title>
			<phrase lang="en">Critiques</phrase>
		</title>

          <para lang="en">This sub-menu gives list of all the critics that have 
          triggered for this model element. Selection of a menu entry causes 
          that entry to be highlighted in the to-do pane and its 
          detailed explanation to be placed in the <literal>
          ToDoItem</literal> tab of the details pane. A solid colored 
          line indicates the offending element.</para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Ordering</phrase>
		</title>

          <para lang="en">This menu controls the ordering of overlapping 
          model elements on the diagram. It is equivalent to the <literal>
          Reorder</literal> sub-menu of the <literal>Arrange</literal> 
          menu (see <xref linkend="s2.ref.menu_reorder"/>). There are 
          four entries.</para>

          <itemizedlist>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/forward.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Forward</literal>. The selected model elements are 
              moved one step forward in the ordering hierarchy with 
              respect to other model elements they overlap.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/backward.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Backward</literal>. The selected model elements are 
              moved one step back in the ordering hierarchy with 
              respect to other model elements they overlap.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/to_front.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>To Front</literal>. The selected model elements are 
              moved to the front of any other model elements they 
              overlap.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/to_back.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>To Back</literal>. The selected model elements are 
              moved to the back of any other model elements they 
              overlap.</para>

            </listitem>

          </itemizedlist>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Add</phrase>
		</title>

          <para lang="en">This sub-menu only appears for model elements that can have 
          notes attached (class, interface, object, state, pseudostate) 
          or have operations or attributes added (class, interface). 
          There are at most three entries.</para>

          <itemizedlist>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/attribute.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Attribute</literal>. Only appears where the 
              selected model element is a class. Creates a new attribute on 
              the model element.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/operation.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Operation</literal>. Only appears where the 
              selected model element is a class or interface. Creates a new 
              operation on the model element.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center" fileref="images/icons/note.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Comment</literal>. Attaches a new comment to 
              the selected model element.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Add All Relations</literal>. 
              Only appears where the 
              selected model element is a class or interface. 
              Makes all relations visible that exist in the model and
              that are connected to the selected model element.
              </para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Remove all Relations</literal>. 
              Only appears where the 
              selected model element is a class or interface.
              Removes all connected relations from the diagram 
              (without removing them from the model).
              </para>

            </listitem>
          </itemizedlist>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Show</phrase>
		</title>

          <para lang="en">This sub-menu only appears with certain model elements. It 
          is completely context dependent. There are many possible 
          entries, depending on the selected model element and its 
          state.</para>

          <itemizedlist>

            <listitem>

              <para lang="en"><literal>Hide Extension Point 
              Compartment</literal>. Only appears when the extension 
              point compartment of a use case is displayed. Hides the 
              compartment.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Show Extension Point 
              Compartment</literal>. Only appears when the extension 
              point compartment of a use case is hidden. Displays the 
              compartment.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Hide All Compartments</literal>. Only 
              appears when both attribute and operation compartments 
              are displayed on a class or object. Hides both 
              compartments.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Show All Compartments</literal>. Only 
              appears when both attribute and operation compartments 
              are hidden on a class or object. Displays both 
              compartments.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Hide Attribute Compartment</literal>. Only 
              appears when the attribute compartment of a class or 
              object is displayed. Hides the compartment.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Show Attribute Compartment</literal>. Only 
              appears when the attribute compartment of a class or 
              object is hidden. Displays the compartment.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Hide Operation Compartment</literal>. Only 
              appears when the operation compartment of a class or 
              object is displayed. Hides the compartment.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Show Operation Compartment</literal>. Only 
              appears when the operation compartment of a class or 
              object is hidden. Displays the compartment.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Hide Enumeration Literal Compartment</literal>. Only 
              appears when the enumeration literal compartment 
              of an enumeration 
              is displayed. Hides the compartment.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Show Enumeration Literal Compartment</literal>. Only 
              appears when the enumeration literal compartment of an enumeration
              is hidden. Displays the compartment.</para>

            </listitem>
            
            <listitem>

              <para lang="en"><literal>Show All Edges</literal>. Only appears on 
              a class. Displays all associations (to shown model elements) 
              that are not shown yet. This is the same function as the 
              &quot;add to Diagram&quot; on the asociation in the 
              explorer context menu. currently.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Hide All Edges</literal>. Only appears on 
              a class. Hides all associations. This is the same 
              function as <quote>Remove from Diagram</quote> on all the 
              associations of this class.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Hide Stereotype</literal>. Only appears 
              when the Stereotype of a package is displayed. Hides the 
              stereotype.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Show Stereotype</literal>. Only appears 
              when the Stereotype of a package is hidden. Displays the 
              stereotype.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Hide Visibility</literal>. Only appears 
              when the visibility of a package is displayed. Hides the 
              visibility.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Show Visibility</literal>. Only appears 
              when the visibility of a package is hidden. Displays the 
              visibility.</para>

            </listitem>
          </itemizedlist>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Modifiers</phrase>
		</title>

          <para lang="en">This sub-menu only appears with class, interface, 
          package and use case model elements. It is used to set or clear 
          the values of the various modifiers available.</para>

          <itemizedlist>

            <listitem>

              <para lang="en"><literal>Abstract</literal>. Set for an abstract 
              model element.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Leaf</literal>. Set for a final model element, 
              i.e. one with no sub-model elements.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Root</literal>. Set for a root model element, 
              i.e. one with no super-model elements.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Active</literal>. Set for a model element with 
              dynamic behavior.</para>

              <note>

                <para lang="en">This really ought to be set automatically for 
                model elements with state machines or activity 
                diagrams.</para>

              </note>

            </listitem>

          </itemizedlist>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Multiplicity</phrase>
		</title>

          <para lang="en">This sub-menu only appears with association model elements, 
          when clicking at one end of the association. It is used to 
          control the multiplicity at the end of the association 
          nearest the mouse click point. There are only four entries, a 
          sub-set of the range of multiplicities that are available 
          through the property sheet of a association end (see 
          <xref linkend="s1.ref.association_end_use_case"/>).</para>

          <itemizedlist>

            <listitem>

              <para lang="en"><literal>1</literal></para>

            </listitem>

            <listitem>

              <para lang="en"><literal>0..1</literal></para>

            </listitem>

            <listitem>

              <para lang="en"><literal>1..*</literal></para>

            </listitem>

            <listitem>

              <para lang="en"><literal>0..*</literal></para>

            </listitem>

          </itemizedlist>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Aggregation</phrase>
		</title>

          <para lang="en">This sub-menu only appears with association model elements, 
          when clicking at one end of the association. It is used to 
          control the aggregation at the end of the association nearest 
          the mouse click point. There are three entries.</para>

          <itemizedlist>

            <listitem>

              <para lang="en"><literal>none</literal>. Remove any 
              aggregation.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>aggregate</literal>. Make this end a 
              shared aggregation (loosely known as an 
              <quote>aggregation</quote>).</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>composite</literal>. Make this end a 
              composite aggregation (loosely known as a 
              <quote>composition</quote>).</para>

            </listitem>

          </itemizedlist>

          <caution>

            <para lang="en">UML requires that an end with a composition 
            relationship must have a multiplicity of 1 (the 
            default).</para>

          </caution>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Navigability</phrase>
		</title>

          <para lang="en">This sub-menu only appears with association model elements, 
          when clicking at one end of the association. It is used to 
          control the navigability of the association. There are three 
          entries.</para>

          <itemizedlist>

            <listitem>

              <para lang="en"><literal>bidirectional</literal>. Make the 
              association navigable in both directions.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>&lt;class1&gt; to 
              &lt;class2&gt;</literal>. Make the association navigable 
              only from &lt;class1&gt; to &lt;class2&gt;. In other 
              words &lt;class1&gt; can reference &lt;class2&gt; but not 
              the other way round.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>&lt;class2&gt; to 
              &lt;class1&gt;</literal>. Make the association navigable 
              only from &lt;class2&gt; to &lt;class1&gt;. In other 
              words &lt;class2&gt; can reference &lt;class1&gt; but not 
              the other way round.</para>

            </listitem>

          </itemizedlist>

          <note>

            <para lang="en">UML does permit an association to be non-navigable in 
            both directions. ArgoUML will allow this, but you will have 
            to set each of the association ends navigation property, 
            reached from the property tab of the association - and the 
            diagram does not show any arrows in this case.</para>

            <para lang="en">This is considered bad design practice (it will 
            trigger a critic in ArgoUML), so is only of theoretical 
            interest.</para>

          </note>

          <note>

            <para lang="en">UML does not permit navigability from an interface to 
            a class. ArgoUML does not prevent this.</para>

          </note>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.notation">

        <title>
			<phrase lang="en">Notation</phrase>
		</title>

        <para lang="en">Notation is the textual representation 
        on the diagram of a modelelement or its properties.
        </para>

        <sect2>
        <title>
			<phrase lang="en">Notation Languages</phrase>
		</title>
        <para lang="en">ArgoUML supports showing notation in different languages.
        By default, all text is shown in UML notation, 
        but the menus contain an item to select between
        Java and UML.
        With plugin modules, 
        it is even possible to select other languages, 
        such as C++.
        </para>
        
        <para lang="en"><xref linkend="fig.ref.notation_uml"/>
        shows a class in UML notation, while
        <xref linkend="fig.ref.notation_java"/>
        shows the same class in Java notation. 
        </para>

        <figure float="1" id="fig.ref.notation_uml">

          <title>
			<phrase lang="en">A class in UML notation</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/notation_uml.png"
           format="PNG"/></imageobject></mediaobject></screenshot>
        </figure>
        
        <figure float="1" id="fig.ref.notation_java">

          <title>
			<phrase lang="en">A class in Java notation</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/notation_java.png"
           format="PNG"/></imageobject></mediaobject></screenshot>
        </figure>

        </sect2>

        <sect2>
        <title>
			<phrase lang="en">Notation Editing on the diagram</phrase>
		</title>

        <para lang="en">Most text shown on a diagram may be edited by
        double-clicking button&nbsp;1 on the text. 
        This causes a edit box to be shown, 
        with the previous text selected,
        ready for amending.</para>

        <para lang="en">Also, the status bar of ArgoUML 
        (i.e. the small area at the bottom of the ArgoUML window),
        shows an help text that indicates the syntax of the text to be entered.
        Text entry can be concluded by pressing F2, 
        or for single-line fields, by pressing the enter key.
        Additionally, editing can be concluded by 
        clicking somewhere in the diagram outside the edit area.
        </para>
        
        <para lang="en">Editing notation on the diagram is a very powerful way
        to enter a lot of model-information in a very compact way. 
        It is e.g. possible to create an operation, 
        its stereotype,
        all parameters and their types, 
        and operation properties (visibility, concurrency), all
        at once by typing:</para>
        
        <programlisting>+Order(customerID : int,items : List) : void {sequential}</programlisting>
        
        <para lang="en">An association (e.g. between two classes) is showing many
        texts close to its middle and ends, 
        so it deserves some extra explanation.
        <xref linkend="fig.ref.notation_association"/> shows two associations
        to clarify the following:
        </para>

        <figure float="1" id="fig.ref.notation_association">

          <title>
			<phrase lang="en">A couple of associations with adornments</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/notation_association.png"
           format="PNG"/></imageobject></mediaobject></screenshot>
        </figure>        

        <para lang="en">The association on the right shows that 
        invisible fields where text can be entered
        become visible once the modelelement is selected.
        The fields are indicated by blue rectangles - 
        double-click on them with mouse button&nbsp;1 to start editing.</para>
        
        <para lang="en">The visibility (the +, -, # or ~) is shown 
        together with the association-end name, 
        but it is not shown 
        for an unnamed association end.</para>
        
        <para lang="en">Likewise, the multiplicity is not shown if it is 1, 
        unless the setting 
        <literal>Show "1" multiplicities</literal>
        in the menu 
        <literal>File=&gt;Properties</literal>
        is checked.</para>
        
        <para lang="en">The example figure does not demonstrate this, but 
        stereotypes of an association are shown on the diagram, 
        but are not editable. 
        And stereotypes of association-ends are shown
        together with the association-end name.
        </para>
        
        </sect2>

        <sect2>
        <title>
			<phrase lang="en">Notation Parsing</phrase>
		</title>
        <para lang="en">(to be written)</para>
        <!-- TODO: Describe all Notation providers' syntax. -->
        </sect2>

      </sect1>

    </chapter>

    <chapter id="ch.ref.detpane">

      <title>
			<phrase lang="en">The Details Pane</phrase>
		</title>

      <sect1>

        <title>
			<phrase lang="en">Introduction</phrase>
		</title>

        <para lang="en"><xref linkend="fig.ref.details_pane"/> shows the ArgoUML 
        window, with the details pane highlighted.</para>

        <figure float="1" id="fig.ref.details_pane">

          <title>
			<phrase lang="en">Overview of the details pane</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/details_pane.png"
           format="PNG"/></imageobject></mediaobject></screenshot>
        </figure>

        <para lang="en">For any model element within the system, this pane is where 
        all its associated data is viewed and entered.</para>

        <para lang="en">The Pane has a series of tabs at the top, which are 
        selected by button&nbsp;1 click The body of a tab is a menu of items 
        to be checked, selected or entered specific to the particular 
        tab selected.</para>

        <para lang="en">Of these, the <literal>Properties</literal> Tab is by far 
        the most complex, with a different presentation for each 
        model element within the system. The detailed descriptions of the 
        properties tab for each model element are the subject of separate 
        chapters covering the model elements that may appear on the various 
        diagrams (see <xref linkend="ch.ref.entities"/> through 
        <xref linkend="ch.ref.entdeploy"/>).</para>

      </sect1>

      <sect1 id="s1.ref.to_do">

        <title>
			<phrase lang="en">To Do Item Tab</phrase>
		</title>

        <para lang="en">This tab provides control over the various to-do items 
        created by the user, or raised automatically by the ArgoUML 
        critics (discussed in more detail in the section on the 
        <literal>Critique</literal> menu&mdash;see 
        <xref linkend="s1.ref.menu_critique"/>). 
        <xref linkend="fig.ref.details_to_do"/> shows a typical pane. 
        The to-do item is selected with button&nbsp;1 in the to-do pane (see 
        <xref linkend="ch.ref.todopane"/>) or by using the <literal>
        Critiques</literal> context sensitive pop-up menu on the 
        editing pane.</para>

        <figure float="1" id="fig.ref.details_to_do">

          <title>
			<phrase lang="en">Example of the <literal>To Do Item</literal> tab on 
          the properties pane</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/details_to_do.png"
           format="PNG"/></imageobject></mediaobject></screenshot>
        </figure>

        <para lang="en">Customization of the critics behaviour is possible 
        through the <literal>Browse critics...</literal> menu (see 
        <xref linkend="s2.ref.menu_browse_critics"/>).</para>

        <para lang="en">The body of the tab describes the problem found by the 
        critic and outlines how it can be fixed. To the left are four 
        buttons.</para>

        <itemizedlist>

          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center"
             fileref="images/icons/new_to_do_item.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>New To Do Item...</literal> This launches a dialog 
            box (see <xref linkend="fig.ref.details_new_to_do"/>), 
            which allows you to create your own to-do item, with its 
            own headline (which appears in the to-do pane), priority 
            for the to-do pane, reference URL and detailed description 
            for further information.</para>

            <figure float="1" id="fig.ref.details_new_to_do">

              <title>
			<phrase lang="en">Dialog box for <literal>
              New To Do Item</literal></phrase>
		</title>

              <screenshot><mediaobject><imageobject>
              <imagedata align="center"
               fileref="images/reference/details_new_to_do.png"
               format="PNG"/></imageobject></mediaobject></screenshot>
            </figure>

          </listitem>

          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center"
             fileref="images/icons/resolve_item.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>Resolve Item...</literal> This pops up a dialog 
            allowing the user to resolve the selected to-do item (see 
            <xref linkend="fig.ref.details_resolve_to_do"/>). This is 
            an important dialog, because it allows you to deal with 
            to-do items in ways other than the recommendation of the 
            to-do item (which is the whole point of their being 
            advisory).</para>

            <para lang="en">This dialog box is intended to be used for the 
            following reasons: deleting todo items that were manually 
            created, preventing a single critic to trigger on a single 
            object, and dismissing categories of todo items by lowering 
            design concerns or design goals.</para>

            <figure float="1" id="fig.ref.details_resolve_to_do">

              <title>
			<phrase lang="en">Dialog box for <literal>
              Resolve Item</literal></phrase>
		</title>

              <screenshot><mediaobject><imageobject>
              <imagedata align="center"
               fileref="images/reference/details_resolve_to_do.png"
               format="PNG"/></imageobject></mediaobject></screenshot>
            </figure>

            <para lang="en">At the top are three radio-buttons, of which by 
            default the last is selected, labeled 1) <literal>It is not 
            relevant to my goals</literal>, 2) <literal>It is not of 
            concern at the moment</literal>, and 3) <literal>Reason 
            given below</literal>. If you choose the third of these you 
            should enter a reason in the main text box.</para>

            <tip>

              <para lang="en">If you wish to resolve a to-do item (that is 
              generated by a critic) by following its recommendations, 
              just make the recommended changes and the to-do item will 
              disappear of its own accord. There is no need to use this 
              dialog.</para>

            </tip>

            <warning>

              <para lang="en">The V0.20 version of ArgoUML implementation is 
              incomplete: The reason given is not stored when the 
              project is saved. And there is no way to retrieve todo 
              items that were resolved. So, it is not usefull to give a 
              reason at all.</para>

              <para lang="en">When a todo item generated by a critic is resolved, 
              then there is no way to undo this (unless by re-creating 
              the object that triggered the critic).</para>

            </warning>

          </listitem>

          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center"
             fileref="images/icons/snooze_critic.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>Snooze Critic</literal> This suspends the activity 
            of the critic that generated the current to-do item. The 
            to-do item (and all others generated by the critic) will 
            disappear from the to-do pane.</para>

            <para lang="en">The critic will wake up after a period of time. 
            Initially this period is 10 minutes, but it doubles on each 
            successive application of the Snooze button. The critic can 
            be awakened explicitly through the <literal>
            Critique &gt; Browse Critics...</literal> menu (see 
            <xref linkend="s2.ref.menu_browse_critics"/>).</para>

            <tip>

              <para lang="en">Some common critics can fire the whole time as you 
              build a big diagram. Some users find it useful to snooze 
              these critics until the diagram has been completed.</para>

            </tip>

          </listitem>

        </itemizedlist>

        <sect2>

          <title>
			<phrase lang="en">Wizards</phrase>
		</title>

          <para lang="en">Some of the more common critics have a 
          <quote>wizard</quote> available to help in fixing the 
          problem. The wizard comprises a series of pages (one or more) 
          in the <literal>ToDo Item</literal> tab that step you through 
          the changes. Start the wizard by clicking the 
          <literal>Next&gt;</literal> button.
          </para>

          <figure float="1" id="fig.ref.details_wizard">

            <title>
			<phrase lang="en">Example of a <literal>Wizard</literal></phrase>
		</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/details_wizard.png"
             format="PNG"/></imageobject></mediaobject></screenshot>
          </figure>

          <para lang="en">The wizard is driven through the first three buttons at 
          the bottom of the <literal>ToDo Item</literal> tab.</para>

          <itemizedlist>

            <listitem>

              <para lang="en"><literal>&lt;Back</literal>. This will take you back to 
              the previous step in the wizard. Grayed out if this is 
              the first step.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Next&gt;</literal>. This will take you back to 
              the next step in the wizard. Grayed out if this is the 
              last step.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Finish</literal>. This will commit the 
              changes you have made through the wizard in previous 
              steps, and/or use the defaults for all next steps.</para>

            </listitem>

          </itemizedlist>

          <note>

            <para lang="en">Not all to-do items have wizards. If there is no 
            wizard all three buttons will remain grayed out.</para>

          </note>
          
          <para lang="en">
          The ArgoUML wizards are <emphasis>non-modal</emphasis>, i.e. 
          once started, you may select other todo items, 
          or do some other actions, and all the while the wizard will
          remeber where it was, so if you return to the todo item,
          the wizard will indicate the same step it was on when you left it.
          </para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">The Help Button</phrase>
		</title>

          <para lang="en">There is one remaining button at the bottom of the 
          <literal>To Do Item</literal> tab, labeled <literal>
          Help</literal>. This will fire up a browser to a URL with 
          further help.</para>

          <!--warning>

            <para lang="en">In the V0.20 release of ArgoUML the URLs are 
            generally invalid. The few that are valid have no 
            information.</para>

          </warning-->

        </sect2>

      </sect1>

      <sect1 id="s1.ref.proptab">

        <title>
			<phrase lang="en">Properties Tab</phrase>
		</title>

        <para lang="en">Through this tab, the properties of model elements selected in 
        the explorer or editing pane may be set. The properties of an 
        model element may be displayed in one of the following ways:</para>

        <orderedlist>

          <listitem>

            <para lang="en">Selection of the model element in the explorer or editing 
            panes, followed by selection of the properties tab in the 
            details pane; or</para>

          </listitem>

          <listitem>

            <para lang="en">Navigation buttons cause different model elements to be 
            selected. I.e. the <literal>Go Up</literal> button on the 
            properties tab, the <literal>Navigate Back</literal> and 
            <literal>Navigate Forward</literal> buttons in the main 
            tool bar, and the various menu-items under <literal>Edit - 
            Select</literal>.</para>

          </listitem>

        </orderedlist>

        <para lang="en"><xref linkend="fig.ref.details_properties"/> shows a 
        typical properties tab for a model element in ArgoUML (in this case 
        a class).</para>

        <figure float="1" id="fig.ref.details_properties">

          <title>
			<phrase lang="en">A typical <literal>Properties</literal> tab on the 
          details pane</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/details_properties.png"
           format="PNG"/></imageobject></mediaobject></screenshot>
        </figure>

        <para lang="en">At the top left is the icon and name of the type of 
        model element (i.e. the UML metaclass, not the actual name of this 
        particular model element). In this example the property tab is for a 
        class.</para>

        <para lang="en">To the right of this is a toolbar of icons relevant to 
        this property tab. The first one is always navigation <literal>
        Go up</literal>. The last is always <literal>Delete</literal> 
        to delete the selected model element from the model. The ones in 
        between depend on the model element.</para>

        <para lang="en">The remainder of the tab comprises fields, laid out in 
        two or three columns. Each field has a label to its left. The 
        fields may be text boxes, text areas, drop down selectors, 
        radio boxes and check boxes. In most (but not all cases) the 
        values can be changed. In the case of text boxes this is 
        sometimes by just typing the required value.</para>

        <para lang="en">However for many text boxes and text areas, data entry is 
        via a context sensitive pop-up menu (using button&nbsp;2 click), 
        which offers options to add a new entry, delete an entry or 
        move entries up and down (in text areas with multiple 
        entries).</para>

        <para lang="en">The first field is almost always a text field <literal>
        Name</literal>, where the name of the specific model element can be 
        entered. The remaining fields vary depending on the model element 
        selected.</para>

        <para lang="en">The detailed property sheets for all ArgoUML model elements 
        are discussed in separate chapters for each of the diagram 
        types (use case diagram (<xref linkend="ch.ref.entusecase"/>, 
        class diagram (<xref linkend="ch.ref.entclass"/>, sequence 
        diagram (<xref linkend="ch.ref.entseq"/>, statechart diagram (
        <xref linkend="ch.ref.entstate"/>, collaboration diagram (
        <xref linkend="ch.ref.entcollab"/>, activity diagram (
        <xref linkend="ch.ref.entactiv"/>, deployment diagram (
        <xref linkend="ch.ref.entdeploy"/>). Property sheets for 
        model elements that are common to all diagram types have their own 
        chapter (<xref linkend="ch.ref.entities"/>).</para>

        <caution>

          <para lang="en">ArgoUML will always try to squeeze all fields on to the 
          property sheet. If the size of the property tab is too small, 
          it may become unusable. The solution is to either enlarge the 
          property tab by enlarging the main window, or by moving the 
          dividers to left and top.</para>

        </caution>

      </sect1>

      <sect1 id="s2.ref.documentation_tab">

        <title>
			<phrase lang="en">Documentation Tab</phrase>
		</title>

        <para lang="en">Within the UML&nbsp;1.4 standard, all model elements are children 
        of the <literal>Element</literal> metaclass. The <literal>
        Element</literal> metaclass defines a tagged value <literal>
        documentation</literal> for comment, description or explanation 
        of the element to which it is attached. Since this tagged value 
        applies to every model element, it is given its own tab in the 
        details pane, rather than being part of the <literal>
        Tagged Values</literal> tab.</para>

        <para lang="en"><xref linkend="fig.ref.details_documentation"/> shows a 
        typical documentation tab for a model element in ArgoUML.</para>

        <figure float="1" id="fig.ref.details_documentation">

          <title>
			<phrase lang="en">A typical <literal>Documentation</literal> tab on the 
          details pane</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/details_documentation.png"
           format="PNG"/></imageobject></mediaobject></screenshot>
        </figure>

        <para lang="en">As you can see, many more fields have been added 
        to the Documentation field alone. The other fields 
        similarly store their information under tagged values:
        <literal>author</literal>,
        <literal>version</literal>, 
        <literal>since</literal>, 
        <literal>deprecated</literal>, 
        <literal>see</literal>.
        </para>
        
        <para lang="en">The fields on this tab are the same for all 
        model elements.</para>

        <para lang="en">Since UML comments are a kind of documentation, 
        they are also shown on this tab, with name and body.</para>

        <itemizedlist>

          <listitem>

            <para lang="en"><literal>Author:</literal> A text box for the author 
            of the documentation.</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>Version:</literal> A text box for the 
            version of the documentation.</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>Since:</literal> A text box to show how long 
            the documentation has been valid.</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>Deprecated:</literal> A check box to 
            indicate whether this model element is deprecated (i.e. planned 
            for removal in future versions of the design model).</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>See:</literal> Pointers to documentation 
            outside the system.</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>Documentation:</literal> Literal text of any 
            documentation.</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>Comment Name:</literal> 
            The names of all comments attached to the modelelement.
            </para>

          </listitem>
          
          <listitem>

            <para lang="en"><literal>Body:</literal> 
            The bodies of all comments attached to this modelelement.
            </para>

          </listitem>
          
        </itemizedlist>

        <tip>

          <para lang="en">ArgoUML is not primarily a documentation system. For 
          model elements that require heavy documentation, notably use 
          cases, the use of the <literal>See:</literal> field to point 
          to external documents is more practical.</para>

        </tip>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Presentation Tab</phrase>
		</title>

        <para lang="en">This tab provides some limited control over the graphical 
        representation of model elements in the diagram in the editing 
        pane.</para>

        <para lang="en">Model elements that do not have any specific direct graphical 
        representation on the screen (beyond their textual description) 
        do not have style tabs of their own. For example the style 
        sheet of an operation on a class will be downlighted.</para>

        <para lang="en">Style sheets vary a little from model element to model element, but 
        <xref linkend="fig.ref.details_style"/> shows a typical style 
        tab for a model element in ArgoUML (in this case a class).</para>

        <figure float="1" id="fig.ref.details_style">

          <title>
			<phrase lang="en">A typical <literal>Presentation</literal> tab on the 
          details pane</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/details_style.png"
           format="PNG"/></imageobject></mediaobject></screenshot>
        </figure>

        <para lang="en">There may be further fields in some cases, e.g. for a 
        package, but most fields are common to many model elements.</para>

        <itemizedlist>

          <listitem>
            <para lang="en"><literal>Path</literal>
              This checkbox allow to display or hide the path  
              in front of the name of the modelelement. 
              It is shown in UML notation with <literal>::</literal>
              seperators. E.g. the ArgoUML Main class would be shown as: 
              <literal>org::argouml::application::Main</literal>.
            </para>
          </listitem>

          <listitem>
            <para lang="en"><literal>Attributes</literal>
            This checkbox allows to hide or show the attributes compartment of 
            a class.
            </para>
          </listitem>

          <listitem>
            <para lang="en"><literal>Operation</literal>
            This checkbox allows to hide or show the operations compartment of 
            a class or interface.
            </para>
          </listitem>

          <listitem>
            <para lang="en"><literal>Stereotype</literal>
            This checkbox allows to reveal or hide the stereotypes of 
            a package, shown above the name.
            </para>
          </listitem>

          <listitem>
            <para lang="en"><literal>Visibility</literal>
            This checkbox allows to hide the visibility of 
            a package. 
            The visibility is shown in UML notation as +, -, # or ~.
            </para>
          </listitem>

          <listitem>
            <para lang="en"><literal>Extension Points</literal>
            This checkbox allows to reveal or hide 
            the extensions points compartment of 
            a usecase.
            </para>
          </listitem>

          <listitem>
            <para lang="en"><literal>Bounds:</literal> This defines the corners 
            of the bounding box for a 2D model element. It comprises four 
            numbers separated by commas. These four numbers are 
            respectively: i) the X coordinate of the upper left corner 
            of the box; ii) the Y coordinate of the upper left corner 
            of the box; iii) the width of the box; and iv) the height 
            of the box. All units are pixels on the editing pane.</para>

            <para lang="en">This field has no effect on 1D model elements that link 
            other model elements (associations, generalizations etc), since 
            their position is constrained by their connectedness. In 
            this case the field is downlighted.</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>Fill:</literal> This drop-down selector 
            specifies the fill color for 2D model elements. It is not 
            present for line model elements. Selecting <literal>No 
            Fill</literal> makes the model element transparant. Selecting 
            <literal>Custom</literal> allows to create other colors 
            then the ones listed. It causes the color selector dialog 
            box to appear, see 
            <xref linkend="fig.ref.details_style_colorpicker1"/>.</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>Line:</literal> This drop-down selector 
            specifies the line color for model elements. Selecting <literal>
            No Fill</literal> makes the model element transparant. Selecting 
            <literal>Custom</literal> allows to create other colors 
            then the ones listed. It causes the color selector dialog 
            box to appear, see 
            <xref linkend="fig.ref.details_style_colorpicker1"/>.</para>

          </listitem>

        </itemizedlist>

        <figure float="1" id="fig.ref.details_style_colorpicker1">

          <title>
			<phrase lang="en">The <literal>Custom Fill/Line Color</literal> dialog 
          box</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/details_style_colorpicker1.png"
           format="PNG"/></imageobject></mediaobject></screenshot>
        </figure>

        <figure float="1" id="fig.ref.details_style_colorpicker2">

          <title>
			<phrase lang="en">The <literal>Custom Fill/Line Color</literal> dialog 
          box</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/details_style_colorpicker2.png"
           format="PNG"/></imageobject></mediaobject></screenshot>
        </figure>

        <figure float="1" id="fig.ref.details_style_colorpicker3">

          <title>
			<phrase lang="en">The <literal>Custom Fill/Line Color</literal> dialog 
          box</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/details_style_colorpicker3.png"
           format="PNG"/></imageobject></mediaobject></screenshot>
        </figure>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Source Tab</phrase>
		</title>

        <para lang="en">This tab shows the source code that 
        will be generated for this model element, in the selected language. 
        ArgoUML generates the code e.g. for classes and interfaces. 
        The code shown here, may be saved in the indicated files 
        with the aid of the functions in the Generation menu.
        </para>

        <figure float="1" id="fig.ref.details_source">

          <title>
			<phrase lang="en">The Source Tab of a class.</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/details_source.png"
           format="PNG"/></imageobject></mediaobject></screenshot>
        </figure>
        
        <para lang="en">Any code you add will be lost - that 
        is not the intention of ArgoUML - use an IDE instead.
        </para>
        
        <para lang="en">The dropdown at the right allows selection of the output file. 
        This function is not very useful for languages 
        that generate all code for a class within one file,
        but serves its purpose for e.g. C++, where a .h and .cpp file
        are generated. See the figure below.</para>
         
        <figure float="1" id="fig.ref.details_source_cpp">

          <title>
			<phrase lang="en">A C++ example.</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/details_source_cpp.png"
           format="PNG"/></imageobject></mediaobject></screenshot>
        </figure>
        
      </sect1>

      <sect1 id="s1.ref.details_constraints">

        <title>
			<phrase lang="en">Constraints Tab</phrase>
		</title>

        <para lang="en">Constraints are one of the extension mechanisms provided 
        for UML. ArgoUML is equipped with a powerful constraint editor 
        based on the <emphasis>Object Constraint Language 
        (OCL)</emphasis> defined in the UML&nbsp;1.4 standard.</para>

        <caution>

          <para lang="en">The OCL editor implementation for ArgoUML V0.26 
          doesn&apos;t support OCL constraints for elements other than 
          Classes and Features.</para>

          <para lang="en">This is something of a general restriction of OCL. 
          Although the UML specification claims that there may be a 
          constraint for every model element, the OCL specification 
          only defines classes/interfaces and operations as allowable 
          contexts.</para>

          <para lang="en">It is not before OCL 2.0 that a more general definition 
          of allowable contexts is introduced. The key issue is that 
          for each context definition you need to define what is the 
          contextualClassifier, i.e., the classifier that will be 
          associated with the self keyword. The creators of the OCL 
          specification claim that this is not an issue for the OCL 
          specification, but rather for UML or some integration task 
          force. Conversely, it seems that the UML specification people 
          seem to expect this to be defined in the OCL specification 
          (which is why we did a first step in that direction in OCL 
          2.0).</para>

          <para lang="en">So, to cut a long story short, it appeared that the 
          simplest solution for ArgoUML at the moment would be to 
          enable the OCL property panel only for those model elements 
          for which there actually exists a definition of the 
          contextualClassifier in OCL 1.4. These are (s. above) 
          Class/Interface and Feature.</para>

        </caution>

        <para lang="en">The standard pre-defines a small number of constraints 
        (for example the <literal>xor</literal> constraint over a set 
        of associations indicating that only one may be manifest for 
        any particular instance).</para>

        <para lang="en">The standard also envisages a number of circumstances 
        where general purpose constraints may be useful:</para>

        <itemizedlist>

          <listitem>

            <para lang="en">To specify invariants on classes and types in the 
            class model;</para>

          </listitem>

          <listitem>

            <para lang="en">To specify type invariants for stereotypes;</para>

          </listitem>

          <listitem>

            <para lang="en">To describe pre-conditions and post-conditions on operations 
            and methods;</para>

          </listitem>

          <listitem>

            <para lang="en">To describe guards;</para>

          </listitem>

          <listitem>

            <para lang="en">As a navigation language; and</para>

          </listitem>

          <listitem>

            <para lang="en">To specify constraints on operations.</para>

          </listitem>

        </itemizedlist>

        <para lang="en"><xref linkend="fig.ref.details_constraints"/> shows a 
        typical constraint tab for a model element in ArgoUML (in this case 
        a class).</para>

        <figure float="1" id="fig.ref.details_constraints">

          <title>
			<phrase lang="en">A typical <literal>Constraints</literal> tab on the 
          details pane</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/details_constraints.png"
           format="PNG"/></imageobject></mediaobject></screenshot>
        </figure>

        <para lang="en">Along the top of the tab are a series of icons.</para>

        <itemizedlist>

          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center"
             fileref="images/icons/new_constraint.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>New Constraint</literal>. This creates a new 
            constraint and launches the constraint editor in the 
            <literal>Constraints tab</literal> for that new constraint 
            (see <xref linkend="s2.ref.details_constraint_editor"/>). 
            The new constraint is created with a context declaration 
            for the currently selected model element.</para>

            <warning>

              <para lang="en">It seems logical, that when a new constraint is 
              created, it needs to be edited. But ArgoUML V0.26 fails 
              to start the OCL editor upon creation; you have to do 
              this by primo selecting the new constraint first, secundo 
              rename it, and tertio press the <literal>Edit 
              Constraint</literal> button. It is essental for 
              successfully creating a constraint to follow these 4 
              steps accurately: create, select, rename, edit. The step 
              to rename is necessary, because the validity check will 
              refuse the constraint if its name differs from the name 
              mentioned in the constraint text. For the same reason, 
              renaming a constraint afterwards is impossible.</para>

            </warning>

          </listitem>

          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center"
             fileref="images/icons/delete_constraint.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>Delete Constraint</literal>. The constraint 
            currently selected in the <literal>
            Constraint Name</literal> box (see below) is deleted.</para>

            <caution>

              <para lang="en">In V0.26 of ArgoUML this button is not downlighted 
              when it is not functional, i.e. when no constraint is 
              selected.</para>

            </caution>

          </listitem>

          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center"
             fileref="images/icons/edit_constraint.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>Edit Constraint</literal>. This launches the 
            constraint editor in the <literal>Constraints</literal> tab 
            (see <xref linkend="s2.ref.details_constraint_editor"/>). 
            The editor is invoked on the constraint currently selected 
            in the <literal>Constraint Name</literal> box.</para>

            <caution>

              <para lang="en">In V0.26 of ArgoUML this button is not downlighted 
              when it is not functional, i.e. when no constraint is 
              selected.</para>

            </caution>

          </listitem>

          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center"
             fileref="images/icons/configure_constraints.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>Configure Constraint Editor</literal>. This a 
            dialog to configure options in the constraint editor (see 
            <xref linkend="fig.ref.details_constraints_dialog"/>
            ).</para>

            <figure float="1" id="fig.ref.details_constraints_dialog">

              <title>
			<phrase lang="en">Dialog box for configuring constraints</phrase>
		</title>

              <screenshot><mediaobject><imageobject>
              <imagedata align="center"
               fileref="images/reference/details_constraints_dialog.png"
               format="PNG"/></imageobject></mediaobject></screenshot>
            </figure>

            <para lang="en">The dialog box has a check box for the following 
            option.</para>

            <itemizedlist>

              <listitem>

                <para lang="en"><literal>Check type conformance of OCL 
                constraints</literal>. OCL is strictly typed. At the 
                early stages of design it may be helpful to disable 
                type checking, rather than follow through all the 
                detailed specification needed to get type 
                consistency.</para>

              </listitem>

            </itemizedlist>

            <para lang="en">At the bottom are two buttons, labeled <literal>
            OK</literal> (to accept the option changes) and <literal>
            Cancel</literal> (to discard the changes).</para>

          </listitem>

        </itemizedlist>

        <para lang="en">The main body of the constraints tab comprises two boxes, 
        a smaller to the left and a larger one to the right. The two 
        are separated by two small arrow buttons which control the size 
        of the boxes.</para>

        <itemizedlist>

          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center"
             fileref="images/icons/constraints_left.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>Shrink Left</literal>. Button&nbsp;1 click on this icon 
            shrinks the box on the left. Its effect may be reversed by 
            use of the <literal>Shrink Right</literal> button (see 
            below).</para>

          </listitem>

          <listitem>

            <para lang="en"><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center"
             fileref="images/icons/constraints_right.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>Shrink Right</literal>. Button&nbsp;1 click on this 
            icon shrinks the box on the right. Its effect may be 
            reversed by use of the <literal>Shrink Left</literal> 
            button (see above).</para>

          </listitem>

        </itemizedlist>

        <para lang="en">Finer control can be achieved by using button&nbsp;1 motion to 
        drag the dividing bar to left and right.</para>

        <para lang="en">The box on the left is titled <literal>Constraint 
        Name</literal> and lists all the constraints (if any) so far 
        defined for the selected model element. A constraint may be selected 
        by button&nbsp;1 click.</para>

        <para lang="en">The box on the right is labeled <literal>
        Preview</literal> and contains the text of the constraint. This 
        box only shows some contents if a constraint is selected. Where 
        a constraint is too large for the box, a scroll bar is provided 
        to the right.</para>

        <sect2 id="s2.ref.details_constraint_editor">

          <title>
			<phrase lang="en">The Constraint Editor</phrase>
		</title>

          <para lang="en">This is invoked through the use of the <literal>
          Edit Constraint</literal> button on the main <literal>
          Constraints</literal> tab. The constraint editor takes up the 
          whole tab (see 
          <xref linkend="fig.ref.details_constraint_editor"/>).</para>

          <figure float="1" id="fig.ref.details_constraint_editor">

            <title>
			<phrase lang="en">Dialog box for configuring constraints</phrase>
		</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/details_constraint_editor.png"
             format="PNG"/></imageobject></mediaobject></screenshot>
          </figure>

          <para lang="en">Along the top of the tab are a series of icons.</para>

          <itemizedlist>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/cancel_edit_constraint.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Cancel Edit Constraint</literal>. This exits the 
              constraint editor without saving any changes and returns 
              to the main <literal>Constraints</literal> tab.</para>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/check_constraint.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Check OCL Syntax</literal>. This button invokes 
              a full syntax check of the OCL written in the editor. If 
              the syntax is valid, the constraint is saved, and control 
              returns to the main <literal>Constraints</literal> tab. 
              If the syntax is not valid, a dialog box explains the 
              problem.</para>

              <warning>

                <para lang="en">Whether type checking is included should be 
                configurable with the <literal>
                Configure Constraint Editor</literal> button (see 
                below). But ArgoUML V0.20 does always check, and 
                refuses to accept any constraint with the slightest 
                error.</para>

              </warning>

            </listitem>

            <listitem>

              <para lang="en"><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/configure_constraints.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Configure Constraint Editor</literal>. This a 
              dialog to configure options in the constraint editor. It 
              is also available in the main <literal>
              Constraints</literal> tab and is discussed in detail 
              there (see <xref linkend="s1.ref.details_constraints"/>
              ).</para>

            </listitem>

          </itemizedlist>

          <para lang="en">To the right of the toolbar is a check box labeled 
          <literal>Syntax Assistant</literal> (unchecked by default), 
          which will enable the syntax assistant in the constraint 
          editor.</para>

          <para lang="en">If the syntax assistant is enabled, six drop down menus 
          are provided in a row immediately below the toolbar. These 
          provide standard templates for OCL that, when selected, will 
          be inserted into the constraint being edited.</para>

          <para lang="en">The syntax assistant can be made floating in a separate 
          window by button&nbsp;1 motion on the small divider area to the 
          left of the row of drop-down menus.</para>

          <itemizedlist>

            <listitem>

              <para lang="en"><literal>General</literal>. General OCL 
              constructors. Entries: <literal>inv</literal> (inserts an 
              invariant); <literal>pre</literal> (inserts a 
              pre-condition); <literal>post</literal> (inserts a 
              post-condition); <literal>self</literal> (inserts a 
              self-reference); <literal>@pre</literal> (inserts a 
              reference to a value at the start of an operation); and 
              <literal>result</literal> (inserts a reference to a 
              previous result).</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Basic Operators</literal>. Relational 
              operators and parentheses. Entries: <literal>=</literal>; 
              <literal>&lt;&gt;</literal>; <literal>&lt;</literal>; 
              <literal>&gt;</literal>; <literal>&lt;=</literal>; 
              <literal>&gt;=</literal>; and <literal>
              ()</literal>.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Numbers</literal>. Arithmetic operators 
              and functions. Entries: <literal>+</literal>; <literal>
              -</literal>; <literal>*</literal>; <literal>/</literal>; 
              <literal>mod</literal>; <literal>div</literal>; <literal>
              abs</literal>; <literal>max</literal>; <literal>
              min</literal>; <literal>round</literal>; and <literal>
              floor</literal>.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Strings</literal>. String functions. 
              Entries: <literal>concat</literal>; <literal>
              size</literal>; <literal>toLower</literal>; <literal>
              toUpper</literal>; and <literal>
              substring</literal>.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Booleans</literal>. Logical functions. 
              Entries: <literal>or</literal>; <literal>and</literal>; 
              <literal>xor</literal>; <literal>not</literal>; <literal>
              implies</literal>; and <literal>
              if then else</literal>.</para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Collections</literal>. Operators and 
              functions on collections&mdash;bags, sets and sequences. The 
              large number of functions are organized into 
              sub-groups.</para>

              <itemizedlist>

                <listitem>

                  <para lang="en"><literal>General</literal>. Functions that 
                  apply to all types of collection. Entries: <literal>
                  Collection {}</literal> (insert a new collection); 
                  <literal>Set {}</literal> (insert a a new set); 
                  <literal>Bag {}</literal> (insert a new bag); 
                  <literal>Sequence {}</literal> (insert a new 
                  sequence); <literal>size</literal>; <literal>
                  count</literal>; <literal>isEmpty</literal>; <literal>
                  notEmpty</literal>; <literal>includes</literal>; 
                  <literal>includesAll</literal>; <literal>
                  iterate</literal>; <literal>exists</literal>; 
                  <literal>forAll</literal>; <literal>
                  collect</literal>; <literal>select</literal>; 
                  <literal>reject</literal>; <literal>union</literal>; 
                  <literal>intersection</literal>; <literal>
                  including</literal>; <literal>excluding</literal>; 
                  and <literal>sum</literal>.</para>

                </listitem>

                <listitem>

                  <para lang="en"><literal>Sets</literal>. Operators and 
                  functions that apply only to sets. Entries: <literal>
                  -</literal> (set difference); and <literal>
                  symmetricDifference</literal>.</para>

                </listitem>

                <listitem>

                  <para lang="en"><literal>Sequences</literal>. Functions that 
                  apply to sequences. Entries: <literal>
                  first</literal>; <literal>last</literal>; <literal>
                  at</literal>; <literal>append</literal>; <literal>
                  prepend</literal>; and <literal>
                  subSequence</literal>.</para>

                </listitem>

              </itemizedlist>

            </listitem>

          </itemizedlist>

          <para lang="en">The remainder of the tab comprises a writable text area 
          containing the text to be edited. The mouse buttons have 
          their standard behavior within an editable text area (see 
          <xref linkend="s1.ref.mouse"/>).</para>

          <para lang="en">In addition, cut, copy and paste operations may be 
          invoked through the keyboard shortcuts <literal>
          Ctrl-X</literal>, <literal>Ctrl-C</literal> and <literal>
          Ctrl-V</literal> respectively.</para>

          <!--warning>

            <para lang="en">There is a known problem with the V0.20 release of 
            ArgoUML. The <literal>Cut</literal>, <literal>
            Copy</literal> and <literal>Paste</literal> functions on 
            the <literal>Edit</literal> menu cannot be used within the 
            constraint editor. If used they will work on the currently 
            selected model element in the editing pane.</para>

          </warning-->

        </sect2>

      </sect1>
      
      <sect1>
      <title>
			<phrase lang="en">Stereotype Tab</phrase>
		</title>
      
      <para lang="en">This tab shows the available and applied stereotypes for the 
      currently selected modelelement. 
      It consists of 2 panels and 2 buttons.
      The buttons allow to move the stereotypes
      from one list to the other.
      </para>
      
      <figure float="1" id="fig.ref.detpane_stereotype">

          <title>
			<phrase lang="en">An example of a stereotype tab for a class.</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/detpane_stereotype.png"
           format="PNG"/></imageobject></mediaobject></screenshot>
        </figure>
        
        <para lang="en">In the lists, between <literal>[]</literal> 
        the baseclass of the stereotypes is shown.
        E.g. in the figure above, 
        the <literal>thread [Classifier]</literal> stereotype 
        may be applied to all types of classifiers, 
        such as Class, UseCase,...
        </para>
        
      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Tagged Values Tab</phrase>
		</title>

        <para lang="en">Tagged values are another extension mechanism provided by 
        UML. The user can define name-value pairs to be associated with 
        model elements which define properties of that model element. The names 
        are known as <emphasis>tags</emphasis>. UML pre-defines a 
        number of tags that are useful for many of its model elements.</para>

        <note>

          <para lang="en">The tag <literal>documentation</literal> is defined for 
          the top UML metaclass, <literal>Element</literal> and is so 
          available to all model elements. In ArgoUML documentation values 
          are provided through the <literal>Documentation</literal> 
          tab, rather than by using the <literal>
          Tagged Values</literal> tab.</para>

        </note>

        <para lang="en">The <literal>Tagged Values</literal> tab in ArgoUML 
        comprises a two column table, with a combo-box on 
        the left to select the tagdefinition
        and an editable box on the right for 
        the associated value. There is always at least one empty row 
        available for any new tag. 
        </para>
        
        <para lang="en">The button at the top of this tab allows creation of a new 
        tagdefinition. 
        After clicking this button, go to the properties tab first
        to set the name of the new tagdefinition. 
        <!-- Why does ArgoUML not do this? TODO: Create issue. -->
        </para>

        <para lang="en">The mouse buttons have their 
        standard behavior within the editable value area (see 
        <xref linkend="s1.ref.mouse"/>).
        In addition, 
        when in the value field,
        cut, copy and paste operations may be 
        invoked through the keyboard shortcuts <literal>
        Ctrl-X</literal>, <literal>Ctrl-C</literal> and <literal>
        Ctrl-V</literal> respectively.</para>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Checklist Tab</phrase>
		</title>

        <para lang="en">Conducting design reviews and inspections is one of the 
        most effective ways of detecting errors during software 
        development. A design review typically consists of a small 
        number of designers, implementers, or other project 
        stakeholders holding a meeting to review a software development 
        artifact. Many development organizations have developed 
        checklists of common design problems for use in design review 
        meetings. Recent research indicated that reviewers inspecting 
        code without meeting, makeing use of these checklists, are just 
        as effective as design review meetings.</para>

        <para lang="en">Hence, a checklist feature has been added to ArgoUML, 
        that is much in the spirit of design review checklists. 
        However, ArgoUML&apos;s checklists are integrated into the 
        design tool user interface and the design task.</para>

        <para lang="en">A software designer using ArgoUML can see a review 
        checklist for any design element. The <quote>Checklist</quote> 
        tab presents a list of check-off items that is appropriate to 
        the currently selected design element. For example, when a 
        class is selected in a design diagram, the checklist tab shows 
        items that prompt critical thinking about classes. See the 
        figure below. Designers may check off items as they consider 
        them. Checked items are kept in the list to show what has 
        already been considered, while unchecked items prompt the 
        designer to consider new design issues. ArgoUML supplies many 
        different checklists with many possible items.</para>

        <figure float="1" id="fig.ref.detpane_checklist">

          <title>
			<phrase lang="en">An example of a checklist for a class.</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/detpane_checklist.png"
           format="PNG"/></imageobject></mediaobject></screenshot>
        </figure>

        <caution>

          <para lang="en">In the V0.22 release of ArgoUML, this tab is not 
          completely implemented. E.g. the checks are not saved.</para>

        </caution>

      </sect1>

    </chapter>

    <chapter id="ch.ref.todopane">

      <title>
			<phrase lang="en">The To-Do Pane</phrase>
		</title>

      <sect1>

        <title>
			<phrase lang="en">Introduction</phrase>
		</title>

        <para lang="en"><xref linkend="fig.ref.todo_pane"/> shows the ArgoUML 
        window with the to-do pane highlighted.</para>

        <figure float="1" id="fig.ref.todo_pane">

          <title>
			<phrase lang="en">Overview of the to-do pane</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/todo_pane.png"
           format="PNG"/></imageobject></mediaobject></screenshot>
        </figure>

        <para lang="en">This pane provides access to the advice that comes from 
        the critics processes running within ArgoUML.</para>

        <para lang="en">A selector box at the top allows a choice of how the data 
        is presented, a button allows the display of the hierarchy to 
        be changed, and there is an indicator of the number of to-do 
        items identified.</para>

        <para lang="en">More information on critics can be found in the 
        discussion of the <literal>Critique</literal> menu (see 
        <xref linkend="s1.ref.menu_critique"/>).</para>

      </sect1>

      <sect1 id="s1.ref.todo_mouse">

        <title>
			<phrase lang="en">Mouse Behavior in the To-Do Pane</phrase>
		</title>

        <para lang="en">Behavior of the mouse in general, and the naming of the 
        buttons is covered in the chapter on the overall user interface 
        (see <xref linkend="ch.ref.ui"/>).</para>

        <sect2>

          <title>
			<phrase lang="en">Button&nbsp;1 Click</phrase>
		</title>

          <para lang="en">This action is generally used to select an item for 
          subsequent operations.</para>

          <para lang="en">Within the hierarchical display, elements which have 
          sub-hierarchies may be indicated by <guiicon>
          <inlinemediaobject><imageobject><imagedata align="center"
           fileref="images/icons/hierarchy_closed.gif"
           format="GIF"/></imageobject></inlinemediaobject></guiicon> 
          when the hierarchy is hidden and <guiicon>
          <inlinemediaobject><imageobject><imagedata align="center"
           fileref="images/icons/hierarchy_open.gif"
           format="GIF"/></imageobject></inlinemediaobject></guiicon> 
          when the hierarchy is open.</para>

          <para lang="en">When these icons are displayed, the display of the 
          hierarchy is toggled by button&nbsp;1 click on these icons.</para>

          <para lang="en">Button&nbsp;1 click over the headline of any to-do item will 
          cause its details to be shown in the <literal>
          To Do Item</literal> tab of the details pane. That tab is 
          automatically selected if it is not currently visible.</para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Button&nbsp;1 Double Click</phrase>
		</title>

          <para lang="en">When applied to the folder icon alongside a hierarchy 
          category, this will cause the display of that hierarchy to be 
          toggled.</para>

          <para lang="en">When applied to a headline, button&nbsp;1 double click will 
          show the diagram for the model element to which the to-do item 
          applies in the editing pane and select the model element on the 
          diagram using an appropriate clarifier (the model element may be 
          highlighted, underlined with a wavy line or surrounded by a 
          colored box as appropriate).</para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Button&nbsp;2 Actions</phrase>
		</title>

          <para lang="en">There are no button&nbsp;2 functions in the to-do 
          pane.</para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Button&nbsp;2 Double Click</phrase>
		</title>

          <para lang="en">There are no button&nbsp;2 functions in the to-do 
          pane.</para>

        </sect2>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Presentation Selection</phrase>
		</title>

        <para lang="en">At the top of the pane is a drop-down selector 
        controlling how the to-do items are presented. The to-do items 
        may be presented in six different ways. This setting is not 
        stored persistently, i.e. it is on its default vallue when 
        ArgoUML is started.</para>

        <itemizedlist>

          <listitem>

            <para lang="en"><literal>By Priority</literal>. This is the default 
            setting. The to-do items are organized into three 
            hierarchies by priority: <literal>High</literal>, <literal>
            Medium</literal> and <literal>Low</literal>. The priority 
            associated with the to-do items generated by a particular 
            critic may be altered through the <literal>
            Critique &gt; Browse Critics...</literal> menu (see 
            <xref linkend="s2.ref.menu_browse_critics"/>).</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>By Decision</literal>. The to-do items are 
            organized into 17 hierarchies by design issue: <literal>
            Uncategorized</literal>, <literal>
            Class Selection</literal>, <literal>Behavior</literal>, 
            <literal>Naming</literal>, <literal>Storage</literal>, 
            <literal>Inheritance</literal>, <literal>
            Containment</literal>, <literal>
            Planned Extensions</literal>, <literal>
            State Machines</literal>, <literal>
            Design Patterns</literal>, <literal>
            Relationships</literal>, <literal>Instantiation</literal>, 
            <literal>Modularity</literal>, <literal>
            Expected Usage</literal>, <literal>Methods</literal>, 
            <literal>Code Generation</literal> and <literal>
            Stereotypes</literal>. The details of the critics in each 
            category are discussed in 
            <xref linkend="s2.ref.menu_design_issues"/>.</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>By Goal</literal>. ArgoUML has a concept 
            that critics may be grouped according to the user goals 
            they affect. This presentation groups the to-do items into 
            hierarchies by goal.</para>

            <caution>

              <para lang="en">In the current release of ArgoUML there is only one 
              goal, <literal>Unspecified</literal> and all to-do items 
              will appear under this heading.</para>

            </caution>

          </listitem>

          <listitem>

            <para lang="en"><literal>By Offender</literal>. The to-do items are 
            organized into a hierarchy according to the model element that 
            caused the problem. Todo items that were manually created 
            with the &quot;New ToDo item&quot; button (i.e. not by a 
            critic), are not listed here.</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>By Poster</literal>. The to-do items are 
            organized into a hierarchy according to which critic 
            generated the to-do item. The class name of the critic is 
            listed instead of just its headline name since the former 
            is guaranteed to be a unique name.</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>By Knowledge Type</literal>. ArgoUML has the 
            concept that a critic reflects a deficiency in a category 
            of knowledge. This presentation option groups the critics 
            according to their knowledge category: <literal>
            Designer&apos;s</literal>, <literal>Correctness</literal>, 
            <literal>Completeness</literal>, <literal>
            Consistency</literal>, <literal>Syntax</literal>, <literal>
            Semantics</literal>, <literal>Optimization</literal>, 
            <literal>Presentational</literal>, <literal>
            Organizational</literal>, <literal>Experiencial</literal> 
            and <literal>Tool</literal>. The former category 
            (Designer&apos;s) contains the manually entered todo 
            items.</para>

          </listitem>

        </itemizedlist>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Item Count</phrase>
		</title>

        <para lang="en">To the right of the flat/hierarchical button is a count 
        of the number of to-do items currently found. It will be 
        highlighted in yellow when the number of to-do items grows 
        above 50 todo items, and red when above 100.</para>

      </sect1>

    </chapter>

    <chapter id="ch.ref.critics">

      <title>
			<phrase lang="en">The Critics</phrase>
		</title>

      <sect1>

        <title>
			<phrase lang="en">Introduction</phrase>
		</title>

        <para lang="en">The key feature that distinguishes ArgoUML from other UML 
        CASE tools is its use of concepts from cognitive psychology. 
        The theory behind this is well described in Jason Robbins&apos; 
        PhD dissertation 
        <ulink url="http://argouml.tigris.org/docs/robbins_dissertation/">
        http://argouml.tigris.org/docs/robbins_dissertation/</ulink>.</para>

        <para lang="en">Critics are one of the main ways in which these ideas are 
        implemented. Running in the background they offer advice to the 
        designer which may be accepted or ignored. A key point is that 
        they do not <emphasis>impose</emphasis> a decision on the 
        designer.</para>

        <note>

          <para lang="en">The critics are asynchronous processes that run in 
          parallel with the main ArgoUML tool. Changes typically take a 
          second or two to propagate as the critics wake up.</para>

        </note>

        <sect2>

          <title>
			<phrase lang="en">Terminology</phrase>
		</title>

          <para lang="en">The <emphasis>critics</emphasis> are background 
          processes, which evaluate the current model according to 
          various <quote>good</quote> design criteria. There is one 
          critic for every design criterion.</para>

          <para lang="en">The output of a critic is a 
          <emphasis>critique</emphasis>&mdash;a statement about some aspect 
          of the model that does not appear to follow good design 
          practice.</para>

          <para lang="en">Finally a critique will generally suggest how the bad 
          design issue it has identified can be rectified, by raising a 
          <emphasis>to-do item</emphasis>.</para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Design Issues</phrase>
		</title>

          <para lang="en">ArgoUML categorizes critics according the the design 
          issue they address (some critics may be in more than one 
          category). At present there are 16 such categories.</para>

          <para lang="en">Within this manual the descriptions of critics are 
          grouped in sections by design issue.</para>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.design_issues_uncategorized">

        <title>
			<phrase lang="en">Uncategorized</phrase>
		</title>

        <para lang="en">These are critics that do not fit into any other 
        category.</para>

        <para lang="en">ArgoUML has no critics in this category. Maybe some will 
        be added in later versions.</para>

      </sect1>

      <sect1 id="s1.ref.design_issues_class_selection">

        <title>
			<phrase lang="en">Class Selection</phrase>
		</title>

        <para lang="en">These are critics concerning how classes are chosen and 
        used.</para>

        <para lang="en">ArgoUML has the following critics in this category.</para>

        <sect2 id="critics.CrNonAggDataType">

          <title>
			<phrase lang="en">Wrap DataType</phrase>
		</title>

          <para lang="en">DataTypes are not full classes within UML 1.4. They can 
          only have enumeration literals as values, and only support 
          <literal>query</literal> operations (that is operations that 
          do not change the DataType&apos;s state).</para>

          <para lang="en">DataTypes cannot be associated with classes, unless the 
          DataType is part of a composite (black diamond) aggregation. 
          Such an association relects the tight binding of a collection 
          of DataType instances to a class instance. In effect such a 
          DataType is an attribute of the class with 
          multiplicity.</para>

          <para lang="en">Good OOA&amp;D depends on careful choices about which 
          entities to represent as full objects and which to represent 
          as attributes of objects.</para>

          <para lang="en">There are two options to fix this problem.</para>

          <itemizedlist>

            <listitem>

              <para lang="en">Replace the DataType with a full class.</para>

            </listitem>

            <listitem>

              <para lang="en">or change the association aggregation to composite 
              relationship at the DataType end.</para>

            </listitem>

          </itemizedlist>

        </sect2>

        <sect2 id="critics.CrTooManyClasses">

          <title>
			<phrase lang="en">Reduce Classes in namespace &lt;namespace&gt;</phrase>
		</title>

          <para lang="en">Suggestion to improve understandability by having fewer 
          classes in one namespace. If one namespace 
          (such as the model, a package, or a class) 
          has too many classes
          it may become very difficult for humans to 
          understand. Defining an understandable set of
          namespaces 
          is an important part of your design.</para>
          
          <para lang="en">The Wizard of this critic allows setting of the treshold, 
          i.e. the maximum number of classes
          allowed before this critic fires.  </para>

          <caution>
            <para lang="en">This number is not stored persistently, and
            there is no way to reduce it after it has been set higher,
            except by creating more classes until the critic fires again.
            Restarting ArgoUML resets this number to its default: 20.
            </para>
          </caution>

        </sect2>

        <sect2 id="critics.CrNodesOverlap">

          <title>
			<phrase lang="en">Clean Up Diagram</phrase>
		</title>

          <para lang="en">Suggestion that the diagram could be improved by moving 
          model elements that are overlapping.</para>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.design_issues_naming">

        <title>
			<phrase lang="en">Naming</phrase>
		</title>

        <para lang="en">These are critics concerning the naming of model elements. The 
        current version of ArgoUML has 18 critics in this 
        category.</para>

        <sect2 id="critics.CrAssocNameConflict">

          <title>
			<phrase lang="en">Resolve Association Name Conflict</phrase>
		</title>

          <para lang="en">Suggestion that two association names in the same 
          namespace have the same name. This is not permitted in 
          UML.</para>

        </sect2>

        <sect2 id="critics.CrAttrNameConflict">

          <title>
			<phrase lang="en">Revise Attribute Names to Avoid Conflict</phrase>
		</title>

          <para lang="en">Suggestion that two attribute names of a class have the 
          same name. This is not permitted in UML.</para>

          <note>

            <para lang="en">The problem may be caused by inheritance of an 
            attribute through a generalization relationship.</para>

          </note>

        </sect2>

        <sect2 id="critics.CrOperNameConflict">

          <title>
			<phrase lang="en">Change Names or Signatures in a model element</phrase>
		</title>

          <para lang="en">Two operations in &lt;model element&gt; have the same 
          signature. This means their name is the same, and the list of 
          parameters has the same type.</para>

          <para lang="en">Where there are conflicting signatures, correct code 
          cannot be generated for mainstream OO languages. It also 
          leads to very unclear semantics of the design.</para>

          <para lang="en">In comparing signatures, this critic considers:</para>

          <orderedlist>

            <listitem>

              <para lang="en">the name;</para>

            </listitem>

            <listitem>

              <para lang="en">the list of in, out and in-out parameter types 
              <emphasis>in order</emphasis>; and</para>

            </listitem>

          </orderedlist>

          <para lang="en">Only if these all match in both type and order, will 
          the signatures be considered as the same.</para>

          <para lang="en">This follows the line of Java/C++ in ignoring the 
          return parameters for the signature. This 
          <emphasis>may</emphasis> be unsatisfactory for some 
          functional OO languages.</para>

          <note>

            <para lang="en">Some purists would argue that the comparison should 
            really differentiate between in, out and in-out parameters. 
            However no practical programming language can do this when 
            resolving an overloaded method invocation, so this critic 
            lumps them all together.</para>

          </note>

        </sect2>

        <sect2 id="critics.CrDupRoleNames">

          <title>
			<phrase lang="en">Duplicate End (Role) Names for an Association</phrase>
		</title>

          <para lang="en">The specified association has two (or more) ends 
          (roles) with the same name. One of the well-formedness rules 
          in UML 1.4 for associations, is that all end (role) names 
          must be unique.</para>

          <para lang="en">This ensures that there can be unambiguous reference to 
          the ends of the association.</para>

          <para lang="en">To fix this, manually select the association and change 
          the names of one or more of the offending ends (roles) using 
          the button&nbsp;2 pop-up menu or the property sheet.</para>

        </sect2>

        <sect2 id="critics.CrNameConflictAC">

          <title>
			<phrase lang="en">Role name conflicts with member</phrase>
		</title>

          <para lang="en">A suggestions that good design avoids role names for 
          associations that clash with attributes or operations of the 
          source class. Roles may be realized in the code as attributes 
          or operations, causing code generation problems.</para>

        </sect2>

        <sect2 id="critics.CrMissingClassName">

          <title>
			<phrase lang="en">Choose a Name (Classes and Interfaces)</phrase>
		</title>

          <para lang="en">The class or interface concerned has been given no name 
          (it will appear in the model as <literal>Unnamed</literal>). 
          Suggestion that good design requires that all interfaces and 
          classes are named.</para>

        </sect2>

        <sect2 id="critics.CrNameConflict">

          <title>
			<phrase lang="en">Name conflict in a namespace</phrase>
		</title>

          <para lang="en">The namespace (e.g. package) concerned 
          contains a class or interface specified that has 
          the same name as another (in the same namespace), 
          which is bad design and will prevent valid code generation.</para>

        </sect2>

        <sect2 id="critics.CrDisambigClassName">

          <title>
			<phrase lang="en">Choose a Unique Name for a model element (Classes and 
          Interfaces)</phrase>
		</title>

          <para lang="en">Suggestion that the class or interface specified has 
          the same name as another (in the namespace), which is bad 
          design and will prevent valid code generation.</para>

        </sect2>

        <sect2 id="critics.CrMissingAttrName">

          <title>
			<phrase lang="en">Choose a Name (Attributes)</phrase>
		</title>

          <para lang="en">The attribute concerned has been given no name (it will 
          appear in the model as <literal>(Unnamed Attribute)</literal>). 
          Suggestion that good design requires that all attributes are 
          named.</para>

        </sect2>

        <sect2 id="critics.CrMissingOperName">

          <title>
			<phrase lang="en">Choose a Name (Operations)</phrase>
		</title>

          <para lang="en">The operation concerned has been given no name (it will 
          appear in the model as <literal>(Unnamed Operation)</literal>). 
          Suggestion that good design requires that all operations are 
          named.</para>

        </sect2>

        <sect2 id="critics.CrMissingStateName">

          <title>
			<phrase lang="en">Choose a Name (States)</phrase>
		</title>

          <para lang="en">The state concerned has been given no name (it will 
          appear in the model as <literal>(Unnamed State)</literal>). 
          Suggestion that good design requires that all states are 
          named.</para>

        </sect2>

        <sect2 id="critics.CrDisambigStateName">

          <title>
			<phrase lang="en">Choose a Unique Name for a (State related) 
          model element</phrase>
		</title>

          <para lang="en">Suggestion that the state specified has the same name 
          as another (in the current statechart diagram), which is bad 
          design and will prevent valid code generation.</para>

        </sect2>

        <sect2 id="critics.CrNameConfusion">

          <title>
			<phrase lang="en">Revise Name to Avoid Confusion</phrase>
		</title>

          <para lang="en">Two names in the same namespace have very similar names 
          (differing only by one character). Suggestion this could 
          potentially lead to confusion.</para>

          <caution>

            <para lang="en">This critic can be particularly annoying, since at 
            times it is useful and good design to have a series of 
            model elements <literal>var1</literal>, <literal>var2</literal> 
            etc.</para>

            <para lang="en">It is important to remember that critics offer 
            guidance, and are not always correct. ArgoUML lets you 
            dismiss the resulting to-do items through the to-do pane 
            (see <xref linkend="ch.ref.todopane"/>).</para>

          </caution>

        </sect2>

        <sect2 id="critics.CrIllegalName">

          <title>
			<phrase lang="en">Choose a Legal Name</phrase>
		</title>

          <para lang="en">All model element names in ArgoUML must use only letters, 
          digits and underscore characters. This critic suggests an 
          entity has not met this requirement.</para>

        </sect2>

        <sect2 id="critics.CrReservedName">

          <title>
			<phrase lang="en">Change a model element to a Non-Reserved Word</phrase>
		</title>

          <para lang="en">Suggestion that this model element&apos;s name is the same 
          as a reserved word in UML (or within one character of one), 
          which is not permitted.</para>

        </sect2>

        <sect2 id="critics.CrUnconventionalOperName">

          <title>
			<phrase lang="en">Choose a Better Operation Name</phrase>
		</title>

          <para lang="en">Suggestion that an operation has not followed the 
          naming convention that operation names begin with lower case 
          letters.</para>

          <caution>

            <para lang="en">Following the Java and C++ convention most designers 
            give their constructors the same name as the class, which 
            begins with an upper case character. In ArgoUML, this will 
            trigger this critic, unless the constructor is stereotyped 
            <literal>&laquo;create&raquo;</literal>.</para>

            <para lang="en">It is important to remember that critics offer 
            guidance, and are not always correct. ArgoUML lets you 
            dismiss the resulting to-do items through the to-do pane 
            (see <xref linkend="ch.ref.todopane"/>).</para>

          </caution>

        </sect2>

        <sect2 id="critics.CrUnconventionalAttrName">

          <title>
			<phrase lang="en">Choose a Better Attribute Name</phrase>
		</title>

          <para lang="en">Suggestion that an attribute has not followed the 
          naming convention that attribute names begin with lower case 
          letters.</para>

        </sect2>

        <sect2 id="critics.CrUnconventionalClassName">

          <title>
			<phrase lang="en">Capitalize Class Name</phrase>
		</title>

          <para lang="en">Suggestion that a class has not followed the naming 
          convention that classes begin with upper case letters.</para>

          <note>

            <para lang="en">Although not triggering this critic, the same 
            convention should apply to interfaces.</para>

          </note>

        </sect2>

        <sect2 id="critics.CrUnconventionalPackName">

          <title>
			<phrase lang="en">Revise Package Name</phrase>
		</title>

          <para lang="en">Suggestion that a package has not followed the naming 
          convention of using lower case letters with periods used to 
          indicated sub-packages.</para>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.design_issues_storage">

        <title>
			<phrase lang="en">Storage</phrase>
		</title>

        <para lang="en">Critics concerning attributes of classes.</para>

        <para lang="en">The current version of ArgoUML has the following critics 
        in this category.</para>

        <sect2>

          <title>
			<phrase lang="en">Revise Attribute Names to Avoid Conflict</phrase>
		</title>

          <para lang="en">This critic is discussed under an earlier design issues 
          category (see <xref linkend="critics.CrAttrNameConflict"/>
          ).</para>

        </sect2>

        <sect2 id="critics.CrNoInstanceVariables">

          <title>
			<phrase lang="en">Add Instance Variables to a Class</phrase>
		</title>

          <para lang="en">Suggestion that no instance variables have been 
          specified for the given class. Such classes may be created to 
          specify static attributes and methods, but by convention 
          should then be given the stereotype <literal>
          &laquo;utility&raquo;</literal>.</para>

        </sect2>

        <sect2 id="critics.CrConstructorNeeded">

          <title>
			<phrase lang="en">Add a Constructor to a Class</phrase>
		</title>

          <para lang="en">You have not yet defined a constructor for class 
          <emphasis>class</emphasis>. Constructors initialize new 
          instances such that their attributes have valid values. This 
          class probably needs a constructor because not all of its 
          attributes have initial values.</para>

          <para lang="en">Defining good constructors is key to establishing class 
          invariants, and class invariants are a powerful aid in 
          writing solid code.</para>

          <para lang="en">To fix this, add a constructor manually by clicking on 
          <emphasis>class</emphasis> in the explorer and adding an 
          operation using the context sensitive pop-up menu in the 
          property tab, or select <emphasis>class</emphasis> where it 
          appears on a class diagram and use the <literal>Add 
          Operation</literal> tool.</para>

          <para lang="en">In the UML 1.4 standard, a constructor is an operation 
          with the stereotype &laquo;create&raquo;. Although not strictly standard, 
          ArgoUML will also accept &laquo;Create&raquo; as a stereotype for 
          constructors.</para>

          <para lang="en">By convention in Java and C++ a constructor has the 
          same name as the class, is not static, and returns no value. 
          ArgoUML will also accept any operation that follows these 
          conventions as a constructor even if it is not stereotyped 
          &laquo;create&raquo;.</para>

          <caution>

            <para lang="en">Operators are created in ArgoUML with a default 
            return parameter (named <literal>return</literal>). You 
            will need to remove this parameter to meet the Java/C++ 
            convention.</para>

          </caution>

        </sect2>

        <sect2 id="critics.CrTooManyAttr">

          <title>
			<phrase lang="en">Reduce Attributes on a Class</phrase>
		</title>

          <para lang="en">Suggestion that the class has too many attributes for a 
          good design, and is at risk of becoming a design 
          bottleneck.</para>
          
          <para lang="en">The Wizard of this critic allows setting of the treshold, 
          i.e. the maximum number of attributes 
          allowed before this critic fires.  </para>

          <caution>
            <para lang="en">This number is not stored persistently, and
            there is no way to reduce it after it has been set higher,
            except by creating more attributes until the critic fires again.
            Restarting ArgoUML resets this number to its default: 7.
            </para>
          </caution>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.design_issues_planned_extensions">

        <title>
			<phrase lang="en">Planned Extensions</phrase>
		</title>

        <para lang="en">Critics concerning interfaces and subclasses.</para>

        <note>

          <para lang="en">It is not clear why this category has the name 
          <quote>Planned Extensions</quote>.</para>

        </note>

        <para lang="en">The current version of ArgoUML has three critics in this 
        category.</para>

        <sect2 id="critics.CrIntefaceAllPublic">

          <title>
			<phrase lang="en">Operations in Interfaces must be public</phrase>
		</title>

          <para lang="en">Suggestion that there is no point in having non-public 
          operations in Interfaces, since they must be visible to be 
          realized by a class.</para>

        </sect2>

        <sect2 id="critics.CrInterfaceOperOnly">

          <title>
			<phrase lang="en">Interfaces may only have operations</phrase>
		</title>

          <para lang="en">Suggestion that an interfaces has attributes defined. 
          The UML standard defines interfaces to have operations.</para>

          <caution>

            <para lang="en">ArgoUML does not allow you to add attributes to 
            interfaces, so this should never occur in the ArgoUML 
            model. It might trigger if a project has been loaded with 
            XMI created by another tool.</para>

          </caution>

        </sect2>

        <sect2 id="critics.CrSubclassReference">

          <title>
			<phrase lang="en">Remove Reference to Specific Subclass</phrase>
		</title>

          <para lang="en">Suggestion that in a good design, a class should not 
          reference its subclasses directly through attributes, 
          operations or associations.</para>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.design_issues_state_machines">

        <title>
			<phrase lang="en">State Machines</phrase>
		</title>

        <para lang="en">Critics concerning state machines.</para>

        <para lang="en">ArgoUML has the following critics in this category.</para>

        <sect2 id="critics.CrTooManyTransitions">

          <title>
			<phrase lang="en">Reduce Transitions on &lt;state&gt;</phrase>
		</title>

          <para lang="en">Suggestion given state is involved in so many 
          transitions it may be a maintenance bottleneck.</para>
                    
          <para lang="en">The Wizard of this critic allows setting of the treshold, 
          i.e. the maximum number of transitions 
          allowed before this critic fires.  </para>

          <caution>
            <para lang="en">This number is not stored persistently, and
            there is no way to reduce it after it has been set higher,
            except by creating more transition until the critic fires again.
            Restarting ArgoUML resets this number to its default: 10.
            </para>
          </caution>
          

        </sect2>

        <sect2 id="critics.CrTooManyStates">

          <title>
			<phrase lang="en">Reduce States in machine &lt;machine&gt;</phrase>
		</title>

          <para lang="en">Suggestion that the given state machine has so many 
          states as to be confusing and should be simplified (perhaps 
          by breaking into several machines, or using a 
          hierarchy).</para>
                    
          <para lang="en">The Wizard of this critic allows setting of the treshold, 
          i.e. the maximum number of states 
          allowed before this critic fires.  </para>

          <caution>
            <para lang="en">This number is not stored persistently, and
            there is no way to reduce it after it has been set higher,
            except by creating more states until the critic fires again.
            Restarting ArgoUML resets this number to its default: 20.
            </para>
          </caution>
          

        </sect2>

        <sect2 id="critics.CrNoTransitions">

          <title>
			<phrase lang="en">Add Transitions to &lt;state&gt;</phrase>
		</title>

          <para lang="en">Suggestion that the given state requires both incoming 
          and outgoing transitions.</para>

        </sect2>

        <sect2 id="critics.CrNoIncomingTransitions">

          <title>
			<phrase lang="en">Add Incoming Transitions to &lt;model element&gt;</phrase>
		</title>

          <para lang="en">Suggestion that the given state requires incoming 
          transitions.</para>

        </sect2>

        <sect2 id="critics.CrNoOutgoingTransitions">

          <title>
			<phrase lang="en">Add Outgoing Transitions from &lt;model element&gt;</phrase>
		</title>

          <para lang="en">Suggestion that the given state requires outgoing 
          transitions.</para>

        </sect2>

        <sect2 id="critics.CrMultipleInitialStates">

          <title>
			<phrase lang="en">Remove Extra Initial States</phrase>
		</title>

          <para lang="en">Suggestion that there is more than one initial state in 
          the state machine or composite state, which is not permitted 
          in UML.</para>

        </sect2>

        <sect2 id="critics.CrNoInitialState">

          <title>
			<phrase lang="en">Place an Initial State</phrase>
		</title>

          <para lang="en">Suggestion that there is no initial state in the state 
          machine or composite state.</para>

        </sect2>

        <sect2 id="critics.CrNoTriggerOrGuard">

          <title>
			<phrase lang="en">Add Trigger or Guard to Transition</phrase>
		</title>

          <para lang="en">Suggestion that a transition is missing either a 
          trigger or guard, one at least of which is required for it to 
          be taken.</para>

        </sect2>

        <sect2 id="critics.CrInvalidJoin">

          <title>
			<phrase lang="en">Change Join Transitions</phrase>
		</title>

          <para lang="en">Suggestion that the join pseudostate has an invalid 
          number of transitions. Normally there should be one outgoing 
          and two or more incoming.</para>

        </sect2>

        <sect2 id="critics.CrInvalidFork">

          <title>
			<phrase lang="en">Change Fork Transitions</phrase>
		</title>

          <para lang="en">Suggestion that the fork pseudostate has an invalid 
          number of transitions. Normally there should be one incoming 
          and two or more outgoing.</para>

        </sect2>

        <sect2 id="critics.CrInvalidBranch">

          <title>
			<phrase lang="en">Add Choice/Junction Transitions</phrase>
		</title>

          <para lang="en">Suggestion that the branch (choice or junction) 
          pseudostate has an invalid number of transitions. Normally 
          there should be at least one incoming transition and at least 
          one outgoing transition.</para>

        </sect2>

        <sect2 id="critics.CrNoGuard">

          <title>
			<phrase lang="en">Add Guard to Transition</phrase>
		</title>

          <para lang="en">Suggestion that the transition requires a guard.</para>

          <caution>

            <para lang="en">It is not clear that this is a valid critic. It is 
            perfectly acceptable to have a transition without a 
            guard&mdash;the transition is always taken when the trigger is 
            invoked.</para>

          </caution>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Clean Up Diagram</phrase>
		</title>

          <para lang="en">This critic is discussed under an earlier design issues 
          category (see <xref linkend="critics.CrNodesOverlap"/>
          ).</para>

        </sect2>

        <sect2 id="critics.CrZeroLengthEdge">

          <title>
			<phrase lang="en">Make Edge More Visible</phrase>
		</title>

          <para lang="en">Suggestion that an edge model element such as an association 
          or abstraction is so short it may be missed. Move the 
          connected model elements apart to make the edge more 
          visible.</para>

        </sect2>

        <sect2 id="critics.CrMultiComposite">

          <title>
			<phrase lang="en">Composite Association End with Multiplicity &gt; 
          1</phrase>
		</title>

          <para lang="en">An instance may not belong by composition to more than 
          one composite instance. You must change the multiplicity at 
          the composite end of the association to either 0..1 or 1..1 
          (1) for your model to make sense.</para>

          <para lang="en">Remember that composition is the stronger aggregation 
          kind and aggregation is the weaker. The problem can be 
          compared to a model where a finger can be an integral part of 
          several hands at the same time.</para>

          <para lang="en">This is the second well-formedness rule on 
          AssociationEnd in UML 1.4.</para>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.design_issues_design_patterns">

        <title>
			<phrase lang="en">Design Patterns</phrase>
		</title>

        <para lang="en">Critics concerning design pattern usage in ArgoUML.</para>

        <para lang="en">These relate to the use of patterns as described by the 
        so called <quote>Gang of Four</quote>. ArgoUML also uses this 
        category for critics associated with deployment and sequence 
        diagrams. The current version of ArgoUML has the following 
        critics in this category.</para>

        <sect2 id="critics.CrConsiderSingleton">

          <title>
			<phrase lang="en">Consider using Singleton Pattern for 
          &lt;class&gt;</phrase>
		</title>

          <para lang="en">The <emphasis>class</emphasis> has no non-static 
          attributes nor any associations that are navigable away from 
          instances of this class. This means that every instance of 
          this class will be identical to every other instance, since 
          there will be nothing about the instances that can 
          differentiate them.</para>

          <para lang="en">Under these circumstances you should consider making 
          explicit that you have exactly one instance of this class, by 
          using the singleton Pattern. Using the singleton pattern can 
          save time and memory space. Within ArgoUML this can be done 
          by using the &laquo;singleton&raquo; stereotype on this class.</para>

          <para lang="en">If it is not your intent to have a single instance, you 
          should define instance variables (i.e. non-static attributes) 
          and/or outgoing associations that will represent differences 
          bewteen instances.</para>

          <para lang="en">Having specified <emphasis>class</emphasis> as a 
          singleton, you need to define the class so there can only be 
          a single instance. This will complete the information 
          representation part of your design. To achieve this you need 
          to do the following.</para>

          <orderedlist>

            <listitem>

              <para lang="en">You must define a static attribute (a class 
              variable) holding the instance. This must therefore have 
              <emphasis>class</emphasis> as its type.</para>

            </listitem>

            <listitem>

              <para lang="en">You must have only private constructors so that new 
              instances cannot be made by other code. The creation of 
              the single instance could be through a suitable helper 
              operation, which invokes this private constructor just 
              once.</para>

            </listitem>

            <listitem>

              <para lang="en">You must have at least one constructor to override 
              the default constructor, so that the default constructor 
              is not used to create multiple instances.</para>

            </listitem>

          </orderedlist>

          <para lang="en">For the definition of a constructor under the UML 1.4 
          standard, and extensions to that definition accepted by 
          ArgoUML see <xref linkend="critics.CrConstructorNeeded"/>
          .</para>

        </sect2>

        <sect2 id="critics.CrSingletonViolated">

          <title>
			<phrase lang="en">Singleton Stereotype Violated in &lt;class&gt;</phrase>
		</title>

          <para lang="en">This class is marked with the &laquo;singleton&raquo; stereotype, 
          but it does not satisfy the constraints imposed on singletons 
          (ArgoUML will also accept &laquo;Singleton&raquo; stereotype as defining 
          a singleton). A singleton class can have at most one 
          instance. This means that the class must meet the design 
          criteria for a singleton (see 
          <xref linkend="critics.CrConsiderSingleton"/>).</para>

          <para lang="en">Whenever you mark a class with a stereotype, the class 
          should satisfy all constraints of the stereotype. This is an 
          important part of making a self-consistent and understangle 
          design. Using the singleton pattern can save time and memory 
          space.</para>

          <para lang="en">If you no longer want this class to be a singleton, 
          remove the &laquo;singleton&raquo; stereotype by clicking on the class 
          and selecting the blank selection on the stereotype drop-down 
          within the properties tab.</para>

          <para lang="en">To apply the singleton pattern you should follow the 
          directions in <xref linkend="critics.CrConsiderSingleton"/>
          .</para>

        </sect2>

        <sect2 id="critics.CrNodeInsideElement">

          <title>
			<phrase lang="en">Nodes normally have no enclosers</phrase>
		</title>

          <para lang="en">A suggestion that nodes should not be drawn inside 
          other model elements on the deployment diagram, since they 
          represent an autonomous physical object.</para>

        </sect2>

        <sect2 id="critics.CrNodeInstanceInsideElement">

          <title>
			<phrase lang="en">NodeInstances normally have no enclosers</phrase>
		</title>

          <para lang="en">A suggestion that node instances should not be drawn 
          inside other model elements on the deployment diagram, since they 
          represent an autonomous physical object.</para>

        </sect2>

        <sect2 id="critics.CrComponentWithoutNode">

          <title>
			<phrase lang="en">Components normally are inside nodes</phrase>
		</title>

          <para lang="en">A suggestion that components represent the logical 
          entities within physical nodes, and so should be drawn within 
          a node, where nodes are shown on the deployment 
          diagram.</para>

        </sect2>

        <sect2 id="critics.CrCompInstanceWithoutNode">

          <title>
			<phrase lang="en">ComponentInstances normally are inside nodes</phrase>
		</title>

          <para lang="en">A suggestion that component instances represent the 
          logical entities within physical nodes, and so should be 
          drawn within a node instance, where node instances are shown 
          on the deployment diagram.</para>

        </sect2>

        <sect2 id="critics.CrClassWithoutComponent">

          <title>
			<phrase lang="en">Classes normally are inside components</phrase>
		</title>

          <para lang="en">A suggestion that classes, as model elements making up 
          components, should be drawn within components on the 
          deployment diagram.</para>

        </sect2>

        <sect2 id="critics.CrInterfaceWithoutComponent">

          <title>
			<phrase lang="en">Interfaces normally are inside components</phrase>
		</title>

          <para lang="en">A suggestion that interfaces, as model elements making up 
          components, should be drawn within components on the 
          deployment diagram.</para>

        </sect2>

        <sect2 id="critics.CrObjectWithoutComponent">

          <title>
			<phrase lang="en">Objects normally are inside components</phrase>
		</title>

          <para lang="en">A suggestion that objects, as instances of model elements 
          making up components, should be drawn within components or 
          component instances on the deployment diagram.</para>

        </sect2>

        <sect2 id="critics.CrWrongLinkEnds">

          <title>
			<phrase lang="en">LinkEnds have not the same locations</phrase>
		</title>

          <para lang="en">A suggestion that a link (e.g. association) connecting 
          objects on a deployment diagram has one end in a component 
          and the other in a component instance (since objects can be 
          in either). This makes no sense.</para>

        </sect2>

        <sect2 id="critics.CrInstanceWithoutClassifier">

          <title>
			<phrase lang="en">Set classifier (Deployment Diagram)</phrase>
		</title>

          <para lang="en">Suggestion that there is an instance (object) without 
          an associated classifier (class, datatype) on a deployment 
          diagram.</para>

        </sect2>

        <sect2 id="critics.CrCallWithoutReturn">

          <title>
			<phrase lang="en">Missing return-actions</phrase>
		</title>

          <para lang="en">Suggestion that a sequence diagram has a send or call 
          action without a corresponding return action.</para>

        </sect2>

        <sect2 id="critics.CrReturnWithoutCall">

          <title>
			<phrase lang="en">Missing call(send)-action</phrase>
		</title>

          <para lang="en">Suggestion that a sequence diagram has a return action, 
          but no preceding call or send action.</para>

        </sect2>

        <sect2 id="critics.CrLinkWithoutStimulus">

          <title>
			<phrase lang="en">No Stimuli on these links</phrase>
		</title>

          <para lang="en">Suggestion that a sequence diagram has a link 
          connecting objects without an associated stimulus (without 
          which the link is meaningless).</para>

          <warning>

            <para lang="en">Triggering this critic indicates a serious problem, 
            since ArgoUML provides no mechanism for creating a link 
            without a stimulus. It probably indicates that the diagram 
            was created by loading a corrupt project, with an XMI file 
            describing a link without a stimulus, possibly created by a 
            tool other than ArgoUML.</para>

          </warning>

        </sect2>

        <sect2 id="critics.CrSeqInstanceWithoutClassifier">

          <title>
			<phrase lang="en">Set Classifier (Sequence Diagram)</phrase>
		</title>

          <para lang="en">Suggestion that there is an object without an 
          associated classifier (class, datatype) on a sequence 
          diagram.</para>

        </sect2>

        <sect2 id="critics.CrStimulusWithWrongPosition">

          <title>
			<phrase lang="en">Wrong position of these stimuli</phrase>
		</title>

          <para lang="en">Suggestion that the initiation of send/call-return 
          message exchanges in a sequence diagram does not properly 
          initiate from left to right.</para>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.design_issues_relationships">

        <title>
			<phrase lang="en">Relationships</phrase>
		</title>

        <para lang="en">Critics concerning associations in ArgoUML.</para>

        <para lang="en">The current version of ArgoUML has the following critics 
        in this category.</para>

        <sect2 id="critics.CrCircularAssocClass">

          <title>
			<phrase lang="en">Circular Association</phrase>
		</title>

          <para lang="en">Suggestion that an association class has a role that 
          refers back directly to itself, which is not permitted.</para>

          <warning>

            <para lang="en">This critic is meaningless in the V0.14 version of 
            ArgoUML which does not support association classes.</para>

          </warning>

        </sect2>

        <sect2 id="critics.CrUnnavigableAssoc">

          <title>
			<phrase lang="en">Make &lt;association&gt; Navigable</phrase>
		</title>

          <para lang="en">Suggestion that the association referred to is not 
          navigable in either direction. This is permitted in the UML 
          standard, but has no obvious meaning in any practical 
          design.</para>

        </sect2>

        <sect2 id="critics.CrNavFromInterface">

          <title>
			<phrase lang="en">Remove Navigation from Interface via 
          &lt;association&gt;</phrase>
		</title>

          <para lang="en">Associations involving an interface can be not be 
          navigable in the direction from the interface. This is 
          because interfaces contain only operation declarations and 
          cannot hold pointers to other objects.</para>

          <para lang="en">This part of the design should be changed before you 
          can generate code from this design. If you do generate code 
          before fixing this problem, the code will not match the 
          design.</para>

          <para lang="en">To fix this, select the association and use the 
          <literal>Properties</literal> tab to select in turn each 
          association end that is <emphasis>not</emphasis> connected to 
          the interface. Uncheck <literal>Navigable</literal> for each 
          of these ends.</para>

          <para lang="en">The association should then appear with a stick 
          arrowhead pointed towards the interface</para>

          <para lang="en">When an association between a class and interface is 
          created in ArgoUML, it is by default navigable only from the 
          class to the interface. However, ArgoUML does not prevent to 
          change the navigability afterwards into a wrong situation. 
          Which will cause this critic to be triggered.</para>

        </sect2>

        <sect2 id="critics.CrNoAssociations">

          <title>
			<phrase lang="en">Add Associations to &lt;model element&gt;</phrase>
		</title>

          <para lang="en">Suggestion that the specified model element (actor, use case 
          or class) has no associations connecting it to other 
          model elements. This is required for the model element to be useful in 
          a design.</para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Remove Reference to Specific Subclass</phrase>
		</title>

          <para lang="en">This critic is discussed under an earlier design issues 
          category (see <xref linkend="critics.CrSubclassReference"/>
          ).</para>

        </sect2>

        <sect2 id="critics.CrTooManyAssoc">

          <title>
			<phrase lang="en">Reduce Associations on &lt;model element&gt;</phrase>
		</title>

          <para lang="en">Suggestion that the given model element (actor, use case, 
          class or interface) has so many associations it may be a 
          maintenance bottleneck.</para>
          
          <para lang="en">The Wizard of this critic allows setting of the treshold, 
          i.e. the maximum number of associations 
          allowed before this critic fires.  </para>

          <caution>
            <para lang="en">This number is not stored persistently, and
            there is no way to reduce it after it has been set higher,
            except by creating more associations until the critic fires again.
            Restarting ArgoUML resets this number to its default: 7.
            </para>
          </caution>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Make Edge More Visible</phrase>
		</title>

          <para lang="en">This critic is discussed under an earlier design issues 
          category (see <xref linkend="critics.CrZeroLengthEdge"/>
          ).</para>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.design_issues_instantiation">

        <title>
			<phrase lang="en">Instantiation</phrase>
		</title>

        <para lang="en">Critics concerning instantiation of classifiers in 
        ArgoUML.</para>

        <para lang="en">The current version of ArgoUML has no critics in this 
        category.</para>

      </sect1>

      <sect1 id="s1.ref.design_issues_modularity">

        <title>
			<phrase lang="en">Modularity</phrase>
		</title>

        <para lang="en">Critics concerning modular development in ArgoUML.</para>

        <para lang="en">The current version of ArgoUML has the following critics 
        in this category.</para>

        <sect2 id="critics.CrCrossNamespaceAssoc">

          <title>
			<phrase lang="en">Classifier not in Namespace of its Association</phrase>
		</title>

          <para lang="en">One of the well-formedness rules in UML 1.4 for 
          associations, is that all the classifiers attached to the 
          ends of the association should belong to the same namespace 
          as the association.</para>

          <para lang="en">If this were not the case, there would be no naming, by 
          which each end could refer to all the others.</para>

          <para lang="en">This critic is triggered when an association does not 
          meet this criterion. The solution is to delete the 
          association, and recreate it on a diagram, whose namespace 
          includes those of all the attached classifiers.</para>

          <caution>

            <para lang="en">In the current implementation of ArgoUML this critic 
            does not handle hierarchical namespaces. As a consequence 
            it will trigger for associations where the immediate 
            namespaces of the attached classifiers is different, even 
            though they are part of the same namespace hierarchy.</para>

          </caution>

        </sect2>

        <sect2 id="critics.CrEmptyPackage">

          <title>
			<phrase lang="en">Add Elements to Package &lt;package&gt;</phrase>
		</title>

          <para lang="en">Suggestion that the specified package has no content. 
          Good design suggests packages are created to put things 
          in.</para>

          <note>

            <para lang="en">This will always trigger when you first create a 
            package, since you cannot create one that is not 
            empty!</para>

          </note>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.design_issues_expected_usage">

        <title>
			<phrase lang="en">Expected Usage</phrase>
		</title>

        <para lang="en">Critics concerning generally accepted good practice in 
        ArgoUML.</para>

        <para lang="en">The current version of ArgoUML has one critic in this 
        category.</para>

        <sect2>

          <title>
			<phrase lang="en">Clean Up Diagram</phrase>
		</title>

          <para lang="en">This critic is discussed under an earlier design issues 
          category (see <xref linkend="critics.CrNodesOverlap"/>
          ).</para>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.design_issues_methods">

        <title>
			<phrase lang="en">Methods</phrase>
		</title>

        <para lang="en">Critics concerning operations in ArgoUML.</para>

        <para lang="en">The current version of ArgoUML has the following critics 
        in this category.</para>

        <sect2>

          <title>
			<phrase lang="en">Change Names or Signatures in &lt;model element&gt;</phrase>
		</title>

          <para lang="en">This critic is discussed under an earlier design issues 
          category (see <xref linkend="critics.CrOperNameConflict"/>
          ).</para>

        </sect2>

        <sect2 id="critics.CrClassMustBeAbstract">

          <title>
			<phrase lang="en">Class Must be Abstract</phrase>
		</title>

          <para lang="en">Suggestion that a class that inherits or defines 
          abstract operations must be marked abstract.</para>

        </sect2>

        <sect2 id="critics.CrNoOperations">

          <title>
			<phrase lang="en">Add Operations to &lt;class&gt;</phrase>
		</title>

          <para lang="en">Suggestion that the specified class has no operations 
          defined. This is required for the class to be useful in a 
          design.</para>

        </sect2>

        <sect2 id="critics.CrTooManyOper">

          <title>
			<phrase lang="en">Reduce Operations on &lt;model element&gt;</phrase>
		</title>

          <para lang="en">Suggestion that the model element (class or interface) has 
          too many operations for a good design, and is at risk of 
          becoming a design bottleneck.</para>
          
          <para lang="en">The Wizard of this critic allows setting of the treshold, 
          i.e. the maximum number of operations 
          allowed before this critic fires.  </para>

          <caution>
            <para lang="en">This number is not stored persistently, and
            there is no way to reduce it after it has been set higher,
            except by creating more operations until the critic fires again.
            Restarting ArgoUML resets this number to its default: 20.
            </para>
          </caution>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.design_issues_code_generation">

        <title>
			<phrase lang="en">Code Generation</phrase>
		</title>

        <para lang="en">Critics concerning code generation in ArgoUML.</para>

        <para lang="en">The current version of ArgoUML has one critic in this 
        category.</para>

        <sect2 id="critics.CrMultipleInheritance">

          <title>
			<phrase lang="en">Change Multiple Inheritance to interfaces</phrase>
		</title>

          <para lang="en">Suggestion that a class has multiple generalizations, 
          which is permitted by UML, but cannot be generated into Java 
          code, because Java does not support multiple 
          inheritance.</para>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.design_issues_stereotypes">

        <title>
			<phrase lang="en">Stereotypes</phrase>
		</title>

        <para lang="en">Critics concerning stereotypes in ArgoUML.</para>

        <para lang="en">The current version of ArgoUML has no critics in this 
        category.</para>

      </sect1>

      <sect1 id="s1.ref.design_issues_inheritance">

        <title>
			<phrase lang="en">Inheritance</phrase>
		</title>

        <para lang="en">Critics concerning generalization and specialization in 
        ArgoUML.</para>

        <para lang="en">The current version of ArgoUML has the following critics 
        in this category.</para>

        <sect2>

          <title>
			<phrase lang="en">Revise Attribute Names to Avoid Conflict</phrase>
		</title>

          <para lang="en">This critic is discussed under an earlier design issues 
          category (see <xref linkend="critics.CrAttrNameConflict"/>
          ).</para>

        </sect2>

        <sect2 id="critics.CrCircularInheritance">

          <title>
			<phrase lang="en">Remove &lt;class&gt;&apos;s Circular 
          Inheritance</phrase>
		</title>

          <para lang="en">Suggestion that a class inherits from itself, through a 
          chain of generalizations, which is not permitted.</para>

          <caution>

            <para lang="en">This critic is marked inactive by default in the 
            current release of ArgoUML (the only one so marked). It 
            will not trigger unless made active.</para>

          </caution>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Class Must be Abstract</phrase>
		</title>

          <para lang="en">This critic is discussed under an earlier design issues 
          category (see <xref linkend="critics.CrClassMustBeAbstract"/>
          ).</para>

        </sect2>

        <sect2 id="critics.CrFinalSubclassed">

          <title>
			<phrase lang="en">Remove final keyword or remove subclasses</phrase>
		</title>

          <para lang="en">Suggestion that a class that is final has 
          specializations, which is not permitted in UML.</para>

        </sect2>

        <sect2 id="critics.CrIllegalGeneralization">

          <title>
			<phrase lang="en">Illegal Generalization</phrase>
		</title>

          <para lang="en">Suggestion that there is a generalization between 
          model elements of different UML metaclasses, which is not 
          permitted.</para>

          <caution>

            <para lang="en">It is not clear that such a generalization can be 
            created within ArgoUML. It probably indicates that the 
            diagram was created by loading a corrupt project, with an 
            XMI file describing such a generalization, possibly created 
            by a tool other than ArgoUML.</para>

          </caution>

        </sect2>

        <sect2 id="critics.CrAlreadyRealizes">

          <title>
			<phrase lang="en">Remove Unneeded Realizes from &lt;class&gt;</phrase>
		</title>

          <para lang="en">Suggestion that the specified class has a realization 
          relationship both directly and indirectly to the same 
          interface (by realization from two interfaces, one of which 
          is a generalization of the other for example). Good design 
          deprecates such duplication.</para>

        </sect2>

        <sect2 id="critics.CrUselessAbstract">

          <title>
			<phrase lang="en">Define Concrete (Sub)Class</phrase>
		</title>

          <para lang="en">Suggestion that a class is abstract with no concrete 
          subclasses, and so can never be realized.</para>

        </sect2>

        <sect2 id="critics.CrUselessInterface">

          <title>
			<phrase lang="en">Define Class to Implement &lt;interface&gt;</phrase>
		</title>

          <para lang="en">Suggestion that the interface referred to has no 
          influence on the running system, since it is never 
          implemented by a class.</para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Change Multiple Inheritance to interfaces</phrase>
		</title>

          <para lang="en">This critic is discussed under an earlier design issues 
          category (see <xref linkend="critics.CrMultipleInheritance"/>
          ).</para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Make Edge More Visible</phrase>
		</title>

          <para lang="en">This critic is discussed under an earlier design issues 
          category (see <xref linkend="critics.CrZeroLengthEdge"/>
          ).</para>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.design_issues_containment">

        <title>
			<phrase lang="en">Containment</phrase>
		</title>

        <para lang="en">Critics concerning containment in ArgoUML, that is where 
        one model element forms a component part of another.</para>

        <para lang="en">The current version of ArgoUML has the following critics 
        in this category.</para>

        <sect2 id="critics.CrCircularComposition">

          <title>
			<phrase lang="en">Remove Circular Composition</phrase>
		</title>

          <para lang="en">Suggestion that there is a series of composition 
          relationships (associations with black diamonds) that form a 
          cycle, which is not permitted.</para>

        </sect2>

        <sect2 id="critics.CrDupParamName">

          <title>
			<phrase lang="en">Duplicate Parameter Name</phrase>
		</title>

          <para lang="en">Suggestion that a parameter list to an operation or 
          event has two or more parameters with the same name, which is 
          not permitted.</para>

        </sect2>

        <sect2 id="critics.CrMultipleAgg">

          <title>
			<phrase lang="en">Two Aggregate Ends (Roles) in Binary 
          Association</phrase>
		</title>

          <para lang="en">Only one end (role) of a binary association can be 
          aggregate or composite. This a well-formedness rule of the 
          UML 1.4 standard.</para>

          <para lang="en">Aggregation and composition are used to indicate 
          whole-part relationships, and by definition, the 
          <quote>part</quote> end cannot be aggregate.</para>

          <para lang="en">To fix this, identify the <quote>part</quote> end of 
          the association, and use the critic wizard (the <literal>
          Next&gt;</literal> button, or manually set its aggregation to 
          <literal>none</literal> using the button&nbsp;2 pop-up menu or the 
          property sheet.</para>

          <para lang="en">Composition (more correctly called composite 
          aggregation) is used where there is a whole-part relationship 
          that is one-to-one or one-to-many, and the lifetime of the 
          part is inextricably tied to the lifetime of the whole. 
          Instances of the whole will have responsibility for creating 
          and destroying instances of the associated part. This also 
          means that a class can only be a part in one composite 
          aggregation.</para>

          <para lang="en">An example of a composite aggregation might be a 
          database of cars and their wheels. This is a one-to-four 
          relationship, and the database entry for a wheel is 
          associated with its car. When the car ceases to exist in the 
          database, so do its wheels.</para>

          <para lang="en">Aggregation (more correctly called shared aggregation) 
          is used where there is a whole-part relationship, that does 
          not meet the criteria for a composite aggregation. An example 
          might be a database of university courses and the students 
          that attend them. There is a whole-part relationship between 
          courses and students. However there is no lifetime 
          relationship between students and course (a student continues 
          to exist even after a course is finished) and the 
          relationship is many-to-many.</para>

        </sect2>

        <sect2 id="critics.CrNWayAgg">

          <title>
			<phrase lang="en">Aggregate End (Role) in 3-way (or More) 
          Association</phrase>
		</title>

          <para lang="en">Three-way (or more) associations can not have aggregate 
          ends (roles). This a well-formedness rule of the UML 1.4 
          standard.</para>

          <para lang="en">Aggregation and composition are used to indicate 
          whole-part relationships, and by definition can only apply to 
          binary associations between model elements.</para>

          <para lang="en">To fix this, manually select the association, and set 
          the aggregation of each of its ends (roles) to <literal>
          none</literal> using the button&nbsp;2 pop-up menu or the property 
          sheet.</para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Wrap DataType</phrase>
		</title>

          <para lang="en">This critic is discussed under an earlier design issues 
          category (see <xref linkend="critics.CrNonAggDataType"/>
          ).</para>

        </sect2>

      </sect1>

    </chapter>

  </part>

  <part>

    <title>
			<phrase lang="en">Model Reference</phrase>
		</title>

    <chapter id="ch.ref.entities">

      <title>
			<phrase lang="en">Top Level Model Element Reference</phrase>
		</title>

      <sect1>

        <title>
			<phrase lang="en">Introduction</phrase>
		</title>

        <para lang="en">This chapter describes each model element that can be created 
        within ArgoUML. The chapter covers top-level 
        <quote>general</quote> model elements. The following chapters (see 
        <xref linkend="ch.ref.entusecase"/> through 
        <xref linkend="ch.ref.entdeploy"/>) cover each of the ArgoUML 
        diagrams.</para>

        <para lang="en">There is a close relationship between this material and 
        the properties tab of the details pane (see 
        <xref linkend="s1.ref.proptab"/>). That section covers 
        properties in general, in this chapter they are linked to 
        specific model elements.</para>

      </sect1>

      <sect1 id="s1.ref.model">

        <title>
			<phrase lang="en">The Model</phrase>
		</title>

        <indexterm lang="en"><primary>Model, The</primary></indexterm>
        <para lang="en">The model is the top level model element within ArgoUML. In 
        the UML meta-model it is a sub-class of package. In many 
        respects within ArgoUML it behaves similarly to a package (see 
        <xref linkend="s1.ref.package"/>).</para>

        <note>

          <para lang="en">ArgoUML is restricted to one model within the 
          tool.</para>

        </note>

        <para lang="en">Standard data types, classes and packages are loaded (the 
        default, see <xref linkend="ch.ref.entbuiltin"/>) as 
        sub-packages of the model. These sub-packages are not initially 
        present in the model but are added to the model when 
        used.</para>

        <sect2>

          <title>
			<phrase lang="en">Model Details Tabs</phrase>
		</title>

          <indexterm lang="en"><primary>Model Details Tabs</primary></indexterm>
          <indexterm lang="en"><primary>Details Tabs</primary><secondary>for 
          Model</secondary></indexterm>
          <para lang="en">The details tabs that are active for the model are as 
          follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.model_property_toolbar"/> and 
                <xref linkend="s2.ref.model_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. See 
                <xref linkend="s2.ref.documentation_tab"/>.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Standard tab. 
                This contains a a list of the stereotypes 
                applied to this model, and a list of
                available stereotypes that may be applied to the model.
                </para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab. In the UML meta-model, <literal>
                Model</literal> has the following standard tagged 
                values defined.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>derived</literal> (from the 
                    superclass, <literal>ModelElement</literal>).</para>

                    <para lang="en">Values <literal>true</literal>, meaning the 
                    class is redundant &mdash; it can be formally derived 
                    from other elements, or <literal>false</literal> 
                    meaning it cannot.</para>

                    <para lang="en">Derived models have their value in analysis 
                    to introduce useful names or concepts, and in 
                    design to avoid re-computation.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.model_property_toolbar">

          <title>
			<phrase lang="en">Model Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the composition structure of the 
                model.</para>

                <para lang="en">Since the model is the top package nothing can 
                happen, and this button is allways downlighted.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/package.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Package</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Package</primary></indexterm>
                <indexterm lang="en"><primary>New Package</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Package</secondary></indexterm>
                <para lang="en">This creates a new Package (see 
                <xref linkend="s1.ref.package"/>) within the model 
                (which appears on no diagram), navigating immediately 
                to the properties tab for that package.</para>

                <tip>

                  <para lang="en">While it can make sense to create Packages of 
                  the model this way, it is usually a lot clearer to 
                  create them within diagrams where you want 
                  them.</para>

                </tip>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/datatype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New DataType</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add DataType</primary></indexterm>
                <indexterm lang="en"><primary>New DataType</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>DataType</secondary></indexterm>
                <para lang="en">This creates a new DataType (see 
                <xref linkend="s1.ref.datatype"/>) within the model 
                (which appears on no diagram), navigating immediately 
                to the properties tab for that DataType.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/enumeration.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Enumeration</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Enumeration</primary></indexterm>
                <indexterm lang="en"><primary>New Enumeration</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Enumeration</secondary></indexterm>
                <para lang="en">This creates a new Enumeration (see 
                <xref linkend="s1.ref.enumeration"/>) within the model 
                (which appears on no diagram), navigating immediately 
                to the properties tab for that Enumeration.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) within the model, 
                navigating immediately to the properties tab for that 
                stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This tool is always downlighted, since it is 
                meaningless to delete the model!</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.model_property_fields">

          <title>
			<phrase lang="en">Property Fields For The Model</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Model Name</primary></indexterm>
                <indexterm lang="en"><primary>Name</primary><secondary>of 
                Model</secondary></indexterm>
                <para lang="en">Text box. The name of the model. The name of a 
                model, like all packages, is by convention all lower 
                case.</para>

                <note>

                  <para lang="en">The default name supplied to a new model by 
                  ArgoUML, <literal>untitledModel</literal>, is thus 
                  erroneous and guarantees that ArgoUML always starts 
                  up with at least one problem being reported by the 
                  design critics.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Model 
                Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Stereotype</primary><secondary>of 
                Model</secondary></indexterm>
                <para lang="en">Drop down selector. Model is provided by default 
                with the UML standard stereotypes for model (
                <literal>systemModel</literal> and <literal>
                metamodel</literal>) and package (
                <literal>facade</literal>, <literal>
                framework</literal>, <literal>stub</literal>).</para>

                <para lang="en">Stereotyping models is a useful thing, although 
                it is of limited value in ArgoUML where you have only a 
                single model.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Navigate Stereotype</literal></term>

              <listitem>

                <para lang="en"><guiicon><inlinemediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/icons/navigate_stereotype.gif"
                 format="GIF"/></imageobject></inlinemediaobject></guiicon> 
                icon. If a stereotype has been selected, this will 
                navigate to the stereotype property panel (see 
                <xref linkend="s1.ref.stereotype"/>).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Namespace</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Model 
                Namespace</primary></indexterm>
                <indexterm lang="en"><primary>Namespace</primary><secondary>of 
                Model</secondary></indexterm>
                <para lang="en">Text box. Records the namespace for the model. 
                This is the package hierarchy. However since the model 
                is at the top of the hierarchy in ArgoUML, this box is 
                always empty.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Visibility</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Model 
                Visibility</primary></indexterm>
                <indexterm lang="en"><primary>Visibility</primary><secondary>of 
                Model</secondary></indexterm>
                <para lang="en">Radio box, with entries <literal>
                public</literal>, <literal>private</literal>,  
                <literal>protected</literal>, and 
                <literal>package</literal>.</para>

                <para lang="en">Records the visibility for the model. Since 
                ArgoUML only permits one model, this has no meaningful 
                use.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Modifiers</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Model 
                Modifiers</primary></indexterm>
                <indexterm lang="en"><primary>Modifiers</primary><secondary>of 
                Model</secondary></indexterm>
                <para lang="en">Check box, with entries <literal>
                Abstract</literal>, <literal>Leaf</literal> and 
                <literal>Root</literal>.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>abstract</literal> is used to 
                    declare that this model cannot be instantiated, but 
                    must always be specialized.</para>

                    <para lang="en">The meaning of <literal>abstract</literal> 
                    applied to a model is not that clear. It might mean 
                    that the model contains interfaces or abstract 
                    classes without realizations. Since ArgoUML only 
                    permits one model, this is not a meaningful box to 
                    check.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Leaf</literal> indicates that this 
                    model can have no further subpackages, while 
                    <literal>root</literal> indicates it is the top 
                    level model.</para>

                    <para lang="en">Within ArgoUML <literal>root</literal> only 
                    meaningfully applies to the Model, since all 
                    packages sit within the model. In the absence of 
                    the <literal>topLevel</literal> stereotype, this 
                    could be used to emphasize that the Model is at the 
                    top level.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Generalizations</literal></term>

              <listitem>

                <para lang="en">Text area. Lists any model that 
                <emphasis>generalizes</emphasis> this model.</para>

                <note>

                  <para lang="en">Since there is only one model in ArgoUML there 
                  is no sensible specialization or generalization that 
                  could be created.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Specializations</literal></term>

              <listitem>

                <para lang="en">Text box. Lists any specialized model (i.e. for 
                which this model is a generalization.</para>

                <note>

                  <para lang="en">Since there is only one model in ArgoUML there 
                  is no sensible specialization or generalization that 
                  could be created.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Owned Elements</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Model Owned 
                Elements</primary></indexterm>
                <indexterm lang="en"><primary>Owned 
                Elements</primary><secondary>of 
                Model</secondary></indexterm>
                <para lang="en">Text area. A listing of the top level packages, 
                classes, interfaces, datatypes, actors, use cases, 
                associations, generalizations, and stereotypes within 
                the model.</para>

                <para lang="en">Button&nbsp;1 double click on any of the model elements 
                yields navigating to that model element.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.datatype">

        <title>
			<phrase lang="en">Datatype</phrase>
		</title>

        <indexterm lang="en"><primary>Datatype</primary></indexterm>
        <para lang="en">Datatypes can be thought of as simple classes. They have 
        no attributes, and any operations on them must have no 
        side-effects. A useful analogy is primitive datatypes in a 
        language like Java. The integer <quote>3</quote> stands on its 
        own&mdash;it has no inner structure. There are operations (for 
        example addition) on the integers, but when I perform <literal>
        3&nbsp;+&nbsp;4</literal> the result is a new number, <quote>3</quote> 
        and <quote>4</quote> are unchanged by the exercise.</para>

        <para lang="en">Within UML&nbsp;1.4, <literal>DataType</literal> is a 
        sub-class of the <literal>Classifier</literal> metaclass. It 
        embraces the predefined primitive types (
        <literal>byte</literal>, <literal>char</literal>, <literal>
        double</literal>, <literal>float</literal>, <literal>
        int</literal>, <literal>long</literal> and <literal>
        short</literal>), the predefined enumeration, <literal>
        boolean</literal> and user defined <emphasis>enumeration 
        types</emphasis>.</para>

        <note>

          <para lang="en">Also <literal>void</literal> is implemented as a 
          datatype within ArgoUML</para>

        </note>

        <para lang="en">Within ArgoUML new datatypes may be created using the 
        <literal>New datatype</literal> button on the property tabs of 
        the model and packages (in which case the new datatype is 
        restricted in scope to the package), as well as the properties 
        tab for datatype. 
        Datatypes can also be created with the tool 
        in the diagram toolbar of a class diagram.</para>

        <para lang="en">The UML&nbsp;1.4 standard 
        allows user defined datatypes to be placed on 
        class diagrams to define their inheritence structure. 
        This is also possible in ArgoUML.
        It is represented on the diagram by a box with two compartments, of
        which the top one is marked with 
        <literal>&laquo;datatype&raquo;</literal>, 
        and contains the name. 
        The lower one contains operations.
        </para>

        <sect2>

          <title>
			<phrase lang="en">Datatype Details Tabs</phrase>
		</title>

          <indexterm lang="en"><primary>Datatype Details 
          Tabs</primary></indexterm>
          <indexterm lang="en"><primary>Details Tabs</primary><secondary>for 
          Datatype</secondary></indexterm>
          <para lang="en">The details tabs that are active for datatypes are as 
          follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Datatype 
                Properties</primary></indexterm>
                <indexterm lang="en"><primary>Properties</primary><secondary>of 
                Datatype</secondary></indexterm>
                <para lang="en">See 
                <xref linkend="s2.ref.datatype_property_toolbar"/> and 
                <xref linkend="s2.ref.datatype_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. See 
                <xref linkend="s2.ref.documentation_tab"/>.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Source</literal></term>

              <listitem>

                <para lang="en">Standard tab. Unused. One would expect a class 
                declaration for the new datatype to support code 
                generation.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Datatype Tagged 
                Values</primary></indexterm>
                <indexterm lang="en"><primary>Tagged 
                Values</primary><secondary>of 
                Datatype</secondary></indexterm>
                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Datatype</literal> has the following standard tagged 
                values defined.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>persistence</literal> (from the 
                    superclass, <literal>Classifier</literal>). Values 
                    <literal>transitory</literal>, indicating state is 
                    destroyed when an instance is destroyed or <literal>
                    persistent</literal>, marking state is preserved 
                    when an instance is destroyed.</para>

                    <tip>

                      <para lang="en">Since user defined datatypes are 
                      enumerations, they have no state to preserve, and 
                      the value of this tagged value is 
                      irrelevant.</para>

                    </tip>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>semantics</literal> (from the 
                    superclass, <literal>Classifier</literal>). The 
                    value is a specification of the semantics of the 
                    datatype.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>derived</literal> (from the 
                    superclass, <literal>ModelElement</literal>). 
                    Values <literal>true</literal>, meaning the class 
                    is redundant&mdash;it can be formally derived from other 
                    elements, or <literal>false</literal> meaning it 
                    cannot.</para>

                    <tip>

                      <para lang="en">While formally available, a derived 
                      datatype does not have an obvious value, and so 
                      datatypes should always be marked with <literal>
                      derived=false</literal>.</para>

                    </tip>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.datatype_property_toolbar">

          <title>
			<phrase lang="en">Datatype Property Toolbar</phrase>
		</title>

          <indexterm lang="en"><primary>Datatype Property 
          Toolbar</primary></indexterm>
          <indexterm lang="en"><primary>Property Toolbar</primary><secondary>for 
          Datatype</secondary></indexterm>
          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/datatype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New datatype</literal></term>

              <listitem>

                <para lang="en">This creates a new datatype (see 
                <xref linkend="s1.ref.class_class"/>) within the same 
                package as the current datatype.</para>

                <tip>

                  <para lang="en">While it can make sense to create datatypes 
                  this way, it can be clearer to create them within the 
                  package or model where you want them.</para>

                </tip>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/enumeration.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Enumeration</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Enumeration</primary></indexterm>
                <indexterm lang="en"><primary>New Enumeration</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Enumeration</secondary></indexterm>
                <para lang="en">This creates a new Enumeration (see 
                <xref linkend="s1.ref.enumeration"/>) 
                in the same package as the datatype, 
                navigating immediately 
                to the properties tab for that Enumeration.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/operation.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Operation</literal></term>

              <listitem>

                <para lang="en">This creates a new operation within the datatype, 
                navigating immediately to the properties tab for that 
                operation.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) within the same 
                package as the datatype, navigating immediately to the 
                properties tab for that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the datatype from the model.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.datatype_property_fields">

          <title>
			<phrase lang="en">Property Fields For Datatype</phrase>
		</title>

          <indexterm lang="en"><primary>Datatype Property 
          Fields</primary></indexterm>
          <indexterm lang="en"><primary>Property Fields</primary><secondary>for 
          Datatype</secondary></indexterm>
          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Datatype Name</primary></indexterm>
                <indexterm lang="en"><primary>Name</primary><secondary>of 
                Datatype</secondary></indexterm>
                <para lang="en">Text box. The name of the datatype. The primitive 
                datatypes all have lower case names, but there is no 
                formal convention.</para>

                <note>

                  <para lang="en">The default name supplied for a newly created 
                  datatype is the empty string <quote />. Datatypes 
                  with empty string names will appear with the name 
                  <literal>(Unnamed Datatype)</literal> in the 
                  explorer.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Namespace</literal></term>

              <listitem>

                <para lang="en">Drop down selector with navigate button. 
                Allows changing the 
                namespace for the datatype. This is the package 
                hierarchy.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Modifiers</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Datatype 
                Modifiers</primary></indexterm>
                <indexterm lang="en"><primary>Modifiers</primary><secondary>of 
                Datatype</secondary></indexterm>
                <para lang="en">Check box, with entries <literal>
                Abstract</literal>, <literal>Leaf</literal> and 
                <literal>Root</literal>.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Abstract</literal> is used to 
                    declare that this datatype cannot be instantiated, 
                    but must always be specialized.</para>

                    <note>

                      <para lang="en">ArgoUML provides no mechanism for 
                      specializing datatypes, so this check box is of 
                      little use.</para>

                    </note>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Leaf</literal> indicates that this 
                    datatype can have no further sub-types, while 
                    <literal>Root</literal> indicates it is a top level 
                    datatype.</para>

                    <tip>

                      <para lang="en">You can define the specialization of 
                      datatypes in a class diagram 
                      by drawing generalizations between them.</para>

                    </tip>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Visibility</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Datatype 
                Visibility</primary></indexterm>
                <indexterm lang="en"><primary>Visibility</primary><secondary>of 
                Datatype</secondary></indexterm>
                <para lang="en">Radio box, with entries <literal>
                public</literal>, <literal>private</literal>, 
                <literal>protected</literal>, and
                <literal>package</literal>.</para>

                <para lang="en">Records the visibility for the Datatype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Client Dependencies</literal></term>

              <listitem>

                <para lang="en">Text area. Lists any elements that depend on this 
                datatype.</para>

                <caution>

                  <para lang="en">It is not clear that dependencies between 
                  datatypes makes much sense.</para>

                </caution>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Supplier Dependencies</literal></term>

              <listitem>

                <para lang="en">Text area. Lists any elements that this datatype 
                depends on.</para>

                <caution>

                  <para lang="en">It is not clear that dependencies between 
                  datatypes makes much sense.</para>

                </caution>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Generalizations</literal></term>

              <listitem>

                <para lang="en">Text area. Lists any datatype that 
                <emphasis>generalizes</emphasis> this datatype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Specializations</literal></term>

              <listitem>

                <para lang="en">Text box. Lists any specialized datatype (i.e. 
                for which this datatype is a generalization.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Operations</literal></term>

              <listitem>

                <para lang="en">Text area. Lists all the operations defined on 
                this datatype. Button&nbsp;1 double click navigates to the 
                selected operation. button&nbsp;2 click brings up a pop up 
                menu with two entries.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Move Up</literal>. Only available 
                    where there are two or more operations, and the 
                    operation selected is not at the top. It is moved 
                    up one.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Move Down</literal>. Only available 
                    where there are two or more operations listed, and 
                    the operation selected is not at the bottom. It is 
                    moved down one.</para>

                  </listitem>

                </itemizedlist>

                <para lang="en">See <xref linkend="s1.ref.operation"/> for 
                details of operations.</para>

                <caution>

                  <para lang="en">ArgoUML treats all operations as equivalent. 
                  Any operations created here will use the same 
                  mechanism as operations for classes. Remember that 
                  operations on datatypes must have no side effects 
                  (they are read-only). This means the <literal>
                  query</literal> modifier <emphasis>must</emphasis> be 
                  checked for all operations.</para>

                </caution>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.enumeration">

        <title>
			<phrase lang="en">Enumeration</phrase>
		</title>

        <indexterm lang="en"><primary>Enumeration</primary></indexterm>
        <para lang="en">An enumeration is a primitive datatype 
        that can have a fixed short list of values. 
        It has no attributes, 
        and any operations on them must have no 
        side-effects. A useful analogy is the primitive datatype
        boolean in a language like Java.
        The boolean stands on its 
        own&mdash;it has no inner structure. 
        There are operations (for 
        example logical xor) on the booleans, but when I perform <literal>
        true xor true</literal> the result is a new boolean, 
        and the original 2 booleans <quote>true</quote> 
        are unchanged by the exercise.</para>

        <para lang="en">Within UML&nbsp;1.4, <literal>Enumeration</literal> is a 
        sub-class of the <literal>DataType</literal> metaclass.  
        </para>

        <para lang="en">The big difference with other DataTypes, is that an
        Enumeration has <literal>EnumerationLiteral</literal>s. 
        E.g. the Enumeration <quote>boolean</quote> is defined as
        having 2 EnumerationLiterals, <quote>true</quote> and
        <quote>false</quote>.
        </para>

        <para lang="en">Within ArgoUML new enumerations may be created using the 
        <literal>New Enumeration</literal> button on the property tabs of 
        the model and packages (in which case the new enumeration is 
        restricted in scope to the package), as well as the properties 
        tab for datatype and enumeration. 
        Enumerations can also be created with the tool 
        in the diagram toolbar of a class diagram.
        </para>

        <para lang="en">The UML&nbsp;1.4 standard allows user defined 
          enumerations to be placed on class diagrams 
          to define their inheritence structure. 
          This is also possible in ArgoUML. 
          It is represented on the diagram by a box 
          with three compartments, 
          of which the top one is marked with 
          <literal>&laquo;enumeration&raquo;</literal>, 
          and contains the name. 
          The middle compartment shows the enumeration literals.
          The lower one contains operations.
        </para>

        <sect2>

          <title>
			<phrase lang="en">Enumeration Details Tabs</phrase>
		</title>

          <indexterm lang="en"><primary>Enumeration Details 
          Tabs</primary></indexterm>
          <indexterm lang="en"><primary>Details Tabs</primary><secondary>for 
          Enumeration</secondary></indexterm>
          <para lang="en">The details tabs that are active for enumerations are as 
          follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Enumeration 
                Properties</primary></indexterm>
                <indexterm lang="en"><primary>Properties</primary><secondary>of 
                Enumeration</secondary></indexterm>
                <para lang="en">See 
                <xref linkend="s2.ref.enumeration_property_toolbar"/> and 
                <xref linkend="s2.ref.enumeration_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. See 
                <xref linkend="s2.ref.documentation_tab"/>.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. 
                </para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Source</literal></term>

              <listitem>

                <para lang="en">Standard tab. 
                </para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Standard tab. The UML metamodel has the following 
                stereotypes defined by default for a Classifier, 
                which also apply to an Enumeration: 
                </para>
                
                <itemizedlist>

                  <listitem>
                    <para lang="en"><literal>metaclass</literal> (from the 
                    superclass, <literal>Classifier</literal>). 
                    <!-- TODO: Not present! -->
                    </para>
                  </listitem>

                  <listitem>
                    <para lang="en"><literal>powertype</literal> (from the 
                    superclass, <literal>Classifier</literal>). 
                    <!-- TODO: Not present! -->
                    </para>
                  </listitem>

                  <listitem>
                    <para lang="en"><literal>process</literal> (from the 
                    superclass, <literal>Classifier</literal>). 
                    </para>
                  </listitem>

                  <listitem>
                    <para lang="en"><literal>thread</literal> (from the 
                    superclass, <literal>Classifier</literal>). 
                    </para>
                  </listitem>

                  <listitem>
                    <para lang="en"><literal>utility</literal> (from the 
                    superclass, <literal>Classifier</literal>). 
                    </para>
                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Enumeration Tagged 
                Values</primary></indexterm>
                <indexterm lang="en"><primary>Tagged 
                Values</primary><secondary>of 
                Enumeration</secondary></indexterm>
                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Enumeration</literal> has no standard tagged 
                values defined.</para>


              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.enumeration_property_toolbar">

          <title>
			<phrase lang="en">Enumeration Property Toolbar</phrase>
		</title>

          <indexterm lang="en"><primary>Enumeration Property 
          Toolbar</primary></indexterm>
          <indexterm lang="en"><primary>Property Toolbar</primary><secondary>for 
          Enumeration</secondary></indexterm>
          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the composition structure.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/datatype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New datatype</literal></term>

              <listitem>

                <para lang="en">This creates a new datatype (see 
                <xref linkend="s1.ref.class_class"/>) within the same 
                package as the current enumeration.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/enumeration.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New enumeration</literal></term>

              <listitem>

                <para lang="en">This creates a new enumeration within the 
                same namespace as the current enumeration, 
                navigating immediately to the properties tab 
                for new enumeration.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/enumeration_literal.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New enumeration literal</literal></term>

              <listitem>

                <para lang="en">This creates a new enumeration literal within the 
                enumeration, navigating immediately to the properties tab 
                for that literal.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/operation.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Operation</literal></term>

              <listitem>

                <para lang="en">This creates a new operation within the enumeration, 
                navigating immediately to the properties tab for that 
                operation.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) within the same 
                package as the enumeration, navigating immediately to the 
                properties tab for that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete from Model</literal></term>

              <listitem>

                <para lang="en">This deletes the datatype from the model.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.enumeration_property_fields">

          <title>
			<phrase lang="en">Property Fields For Enumeration</phrase>
		</title>

          <indexterm lang="en"><primary>Enumeration Property 
          Fields</primary></indexterm>
          <indexterm lang="en"><primary>Property Fields</primary><secondary>for 
          Enumeration</secondary></indexterm>
          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Enumeration Name</primary></indexterm>
                <indexterm lang="en"><primary>Name</primary><secondary>of 
                Enumeration</secondary></indexterm>
                <para lang="en">Text box. The name of the enumeration. The primitive 
                enumerations all have lower case names, but there is no 
                formal convention.</para>

                <note>

                  <para lang="en">The default name supplied for a newly created 
                  datatype is the empty string <quote />. Enumerations 
                  with empty string names will appear with the name 
                  <literal>(Unnamed Enumeration)</literal> in the 
                  explorer.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Namespace</literal></term>

              <listitem>

                <para lang="en">Drop down selector with navigation button. 
                Allows changing the 
                namespace for the enumeration. This is the composition 
                hierarchy.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Modifiers</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Enumeration 
                Modifiers</primary></indexterm>
                <indexterm lang="en"><primary>Modifiers</primary><secondary>of 
                Enumeration</secondary></indexterm>
                <para lang="en">Check box, with entries <literal>
                Abstract</literal>, <literal>Leaf</literal> and 
                <literal>Root</literal>.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Abstract</literal> is used to 
                    declare that this enumeration cannot be instantiated, 
                    but must always be specialized.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Leaf</literal> indicates that this 
                    enumeration can have no further sub-types, while 
                    <literal>Root</literal> indicates it is a top level 
                    enumeration.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Visibility</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Enumeration 
                Visibility</primary></indexterm>
                <indexterm lang="en"><primary>Visibility</primary><secondary>of 
                Enumeration</secondary></indexterm>
                <para lang="en">Radio box, with entries <literal>
                public</literal>, <literal>private</literal>, 
                <literal>protected</literal>, and
                <literal>package</literal>.</para>

                <para lang="en">Records the visibility for the Enumeration.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Client Dependencies</literal></term>

              <listitem>

                <para lang="en">Text area. Lists any elements that depend on this 
                enumeration. Button&nbsp;1 double click navigates to the 
                selected modelelement. Button&nbsp;2 click brings up a pop up 
                menu with following entry.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Add...</literal>. 
                    This brings up a dialog box 
                    that allows to create dependencies 
                    from other modelelements.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Supplier Dependencies</literal></term>

              <listitem>

                <para lang="en">Text area. Lists any elements that this enumeration 
                depends on. Button&nbsp;1 double click navigates to the 
                selected modelelement. Button&nbsp;2 click brings up a pop up 
                menu with the following entry.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Add...</literal>. 
                    This brings up a dialog box 
                    that allows to create dependencies 
                    to other modelelements.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Generalizations</literal></term>

              <listitem>

                <para lang="en">Text area. Lists any enumeration that 
                <emphasis>generalizes</emphasis> this enumeration.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Specializations</literal></term>

              <listitem>

                <para lang="en">Text box. Lists any specialized enumerations (i.e. 
                for which this enumeration is a generalization.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Operations</literal></term>

              <listitem>

                <para lang="en">Text area. Lists all the operations defined on 
                this enumeration. Button&nbsp;1 double click navigates to the 
                selected operation. Button&nbsp;2 click brings up a pop up 
                menu with two entries.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Move Up</literal>. Only available 
                    where there are two or more operations, and the 
                    operation selected is not at the top. It is moved 
                    up one.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Move Down</literal>. Only available 
                    where there are two or more operations listed, and 
                    the operation selected is not at the bottom. It is 
                    moved down one.</para>

                  </listitem>

                </itemizedlist>

                <para lang="en">See <xref linkend="s1.ref.operation"/> for 
                details of operations.</para>

                <caution>

                  <para lang="en">ArgoUML treats all operations as equivalent. 
                  Any operations created here will use the same 
                  mechanism as operations for classes. Remember that 
                  operations on enumerations must have no side effects 
                  (they are read-only). This means the <literal>
                  query</literal> modifier <emphasis>must</emphasis> be 
                  checked for all operations.</para>

                </caution>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Literals</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Enumeration 
                Literals</primary></indexterm>
                <indexterm lang="en"><primary>Literals</primary><secondary>of 
                Enumeration</secondary></indexterm>
                <para lang="en">Text area. Lists all the enumeration literals 
                defined for this enumeration. Button&nbsp;1 double click 
                navigates to the selected literal, button&nbsp;2 click 
                brings up a pop up menu with two entries.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Move Up</literal>. Only available 
                    where there are two or more literals, and the 
                    literal selected is not at the top. It is moved up 
                    one.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Move Down</literal>. Only available 
                    where there are two or more literals listed, and 
                    the literal selected is not at the bottom. It is 
                    moved down one.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.enumeration-literal">
        <title>
			<phrase lang="en">Enumeration Literal</phrase>
		</title>
        <indexterm lang="en"><primary>Enumeration Literal</primary></indexterm>
        <para lang="en">An enumeration literal is one of the predefined values 
        of an Enumeration.</para>
      </sect1>

      <sect1 id="s1.ref.stereotype">

        <title>
			<phrase lang="en">Stereotype</phrase>
		</title>

        <indexterm lang="en"><primary>Stereotype</primary></indexterm>
        <para lang="en">Stereotypes are the main extension mechanism of UML, 
        providing a way to derive specializations of the standard 
        metaclasses. <literal>Stereotype</literal> is a sub-class of 
        <literal>GeneralizableElement</literal> in the UML metamodel. 
        Stereotypes are supplemented by 
        <emphasis>constraints</emphasis> and <emphasis>tagged 
        values</emphasis>.</para>

        <para lang="en">New stereotypes are added from the property tab of almost 
        any model element. Properties of existing stereotypes can be reached 
        by selecting the property tab for any model element with that 
        stereotype and using the navigate button (
        <guiicon><inlinemediaobject><imageobject>
        <imagedata align="center"
         fileref="images/icons/navigate_stereotype.gif"
         format="GIF"/></imageobject></inlinemediaobject></guiicon>) 
        within the property tab.</para>

        <sect2>

          <title>
			<phrase lang="en">Stereotype Details Tabs</phrase>
		</title>

          <indexterm lang="en"><primary>Stereotype Details 
          Tabs</primary></indexterm>
          <indexterm lang="en"><primary>Details Tabs</primary><secondary>for 
          Stereotype</secondary></indexterm>
          <para lang="en">The details tabs that are active for stereotypes are as 
          follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.stereotype_property_toolbar"/> 
                and <xref linkend="s2.ref.stereotype_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. See 
                <xref linkend="s2.ref.documentation_tab"/>.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

                <warning>

                  <para lang="en">Here you can set stereotypes of stereotypes, 
                  not a very usefull thing to do.</para>

                </warning>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Stereotype</literal> has the following standard tagged 
                values defined.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>derived</literal> (from the 
                    superclass, <literal>ModelElement</literal>). 
                    Values <literal>true</literal>, meaning the class 
                    is redundant&mdash;it can be formally derived from other 
                    elements, or <literal>false</literal> meaning it 
                    cannot.</para>

                    <note>

                      <para lang="en">This indicates any element with this 
                      stereotype has the <literal>derived</literal> tag 
                      set accordingly.</para>

                    </note>

                  </listitem>

                </itemizedlist>

                <caution>

                  <para lang="en">Tagged values for a stereotype are rather 
                  different to those for elements in the UML core 
                  architecture, in that they apply to all model elements to 
                  which the stereotype is applied, 
                  <emphasis>not</emphasis> just the stereotype 
                  itself.</para>

                </caution>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.stereotype_property_toolbar">

          <title>
			<phrase lang="en">Stereotype Property Toolbar</phrase>
		</title>

          <indexterm lang="en"><primary>Stereotype Property 
          Toolbar</primary></indexterm>
          <indexterm lang="en"><primary>Property Toolbar</primary><secondary>for 
          Stereotype</secondary></indexterm>
          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure of the 
                model.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Add stereotype</literal></term>

              <listitem>

                <para lang="en">This creates a new stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) within the model 
                (which appears on no diagram), navigating immediately 
                to the properties tab for that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/tag_definition.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Tag Definition</literal></term>

              <listitem>

                <para lang="en">This creates a new tag definition (see 
                <xref linkend="s1.ref.tagdefinition"/>) within the model 
                (which appears on no diagram), navigating immediately 
                to the properties tab for that tagdefinition.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the stereotype from the model.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.stereotype_property_fields">

          <title>
			<phrase lang="en">Property Fields For Stereotype</phrase>
		</title>

          <indexterm lang="en"><primary>Stereotype Property 
          Fields</primary></indexterm>
          <indexterm lang="en"><primary>Property Fields</primary><secondary>for 
          Stereotype</secondary></indexterm>
          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Stereotype 
                Name</primary></indexterm>
                <indexterm lang="en"><primary>Name</primary><secondary>of 
                Stereotype</secondary></indexterm>
                <para lang="en">Text box. The name of the stereotype. There is no 
                convention for naming stereotypes, beyond starting them 
                with a lower case letter. Even the standard UML 
                stereotypes vary between all lower case (e.g. <literal>
                metamodel</literal>), bumpy caps (e.g. <literal>
                systemModel</literal>) and space separated (e.g. 
                <literal>object model</literal>).</para>

                <note>

                  <para lang="en">ArgoUML does not enforce any naming convention 
                  for stereotypes</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Base Class</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Stereotype Base 
                Class</primary></indexterm>
                <indexterm lang="en"><primary>Base Class</primary><secondary>of 
                Stereotype</secondary></indexterm>
                <para lang="en">Drop down selector. Any stereotype must be 
                derived from one of the metaclasses in the UML 
                metamodel <!--
                <literal>Abstraction</literal>, <literal>
                Actor</literal>, <literal>Association</literal>, 
                <literal>AssociationEnd</literal>, <literal>
                Attribute</literal>, <literal>
                BehavioralFeature</literal>, <literal>
                CallEvent</literal>, <literal>Class</literal>, <literal>
                Classifier</literal>, <literal>Collaboration</literal>, 
                <literal>Comment</literal>, <literal>
                Component</literal>, <literal>Constraint</literal>, 
                <literal>DataType</literal>, <literal>
                Exception</literal>, <literal>Flow</literal>, <literal>
                Generalization</literal>, <literal>Interface</literal>, 
                <literal>Link</literal>, <literal>Model</literal>, 
                <literal>ModelElement</literal>, <literal>
                Node</literal>, <literal>NodeInstance</literal>, 
                <literal>ObjectFlowState</literal>, <literal>
                Operation</literal>, <literal>Package</literal>, 
                <literal>Permission</literal>, <literal>
                Signal</literal>, <literal>Subsystem</literal> and 
                <literal>Usage</literal>) -->
                or the model element classes that 
                derive from them. The stereotype will then be available 
                to model elements that derive from that same metaclass or 
                that model element.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Namespace</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Stereotype 
                Namespace</primary></indexterm>
                <indexterm lang="en"><primary>Namespace</primary><secondary>of 
                Stereotype</secondary></indexterm>
                <para lang="en">Drop down selector with navigation button. 
                Records the namespace for the stereotype. 
                This is the package hierarchy.</para>
 
              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Modifiers</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Stereotype 
                Modifiers</primary></indexterm>
                <indexterm lang="en"><primary>Modifiers</primary><secondary>of 
                Stereotype</secondary></indexterm>
                <para lang="en">Check box, with entries <literal>
                Abstract</literal>, <literal>Leaf</literal> and 
                <literal>Root</literal>.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Abstract</literal> is used to 
                    declare that model elements that use this stereotype 
                    cannot be instantiated, but must always be 
                    specialized.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Leaf</literal> indicates that 
                    model elements that use this stereotype can have no 
                    further sub-types, while <literal>Root</literal> 
                    indicates it is a top level model element.</para>

                  </listitem>

                </itemizedlist>

                <caution>

                  <para lang="en">Remember that these modifiers apply to the 
                  model elements using the stereotype, not just the 
                  stereotype.
                  <!-- TODO: MVW: I strongly doubt this. 
                  The standard says: "Tag definitions and constraints 
                  attached to a stereotype apply to all model elements 
                  branded by that stereotype." 
                  But it does not say the same for modifiers. -->
                  </para>

                </caution>

                <warning>

                  <para lang="en">ArgoUML neither imposes, nor checks that 
                  model elements using a stereotype adopt the 
                  stereotype&apos;s modifiers.</para>

                </warning>

              </listitem>

            </varlistentry>

            <varlistentry>
              <term><literal>Visibility</literal></term>
              <listitem>
                <indexterm lang="en"><primary>Stereotype 
                Visibility</primary></indexterm>
                <indexterm lang="en"><primary>Visibility</primary><secondary>of 
                Stereotype</secondary></indexterm>
                <para lang="en">Radio box, with entries <literal>
                public</literal>, <literal>private</literal>, 
                <literal>protected</literal>, and
                <literal>package</literal>.</para>

                <para lang="en">Records the visibility for the stereotype.</para>

              </listitem>
            </varlistentry>

            <varlistentry>

              <term><literal>Generalizations</literal></term>

              <listitem>

                <para lang="en">Text area. Lists any stereotype that 
                <emphasis>generalizes</emphasis> this stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Specializations</literal></term>

              <listitem>

                <para lang="en">Text area. Lists any specialized stereotype (i.e. 
                for which this stereotype is a generalization.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tag Definitions</literal></term>

              <listitem>

                <para lang="en">Text area. Lists any tag definitions 
                that are defined for this stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Extended Elements</literal></term>

              <listitem>

                <para lang="en">Text area. Lists all modelelements 
                that are stereotyped by this stereotype.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.tagdefinition">

        <title>
			<phrase lang="en">Tag Definition</phrase>
		</title>
        
        <para lang="en">(To Be Written)</para>
        
      </sect1>

      <sect1 id="s1.ref.diagram_types">

        <title>
			<phrase lang="en">Diagram</phrase>
		</title>

        <indexterm lang="en"><primary>Diagram</primary></indexterm>
        <para lang="en">The UML standard specifies eight principal diagrams, all 
        of which are supported by ArgoUML.</para>

        <itemizedlist>

          <listitem>

            <para lang="en"><emphasis>Use case diagram</emphasis>. Used to 
            capture and analyse the requirements for any OOA&amp;D 
            project. See <xref linkend="ch.ref.entusecase"/> for 
            details of the ArgoUML use case diagram and the model elements 
            it supports.</para>

          </listitem>

          <listitem>

            <para lang="en"><emphasis>Class diagram</emphasis>. This diagram 
            captures the static structure of the system being designed, 
            showing the classes, interfaces and datatypes and how they 
            are related. Variants of this diagram are used to show 
            package structures within a system (the <emphasis>package 
            diagram</emphasis>) and the relationships between 
            particular instances (the <emphasis>object 
            diagram</emphasis>).</para>

            <para lang="en">The ArgoUML class diagram provides support for class 
            and package diagrams. See <xref linkend="ch.ref.entclass"/> 
            for details of the model elements it supports. The object 
            diagram is suported on the Deployment diagram.</para>

          </listitem>

          <listitem>

            <para lang="en"><emphasis>Behavior diagrams</emphasis>. There are 
            four such diagrams (or strictly speaking, five, since the 
            use case diagram is a type of behavior diagram), which show 
            the dynamic behavior of the system at all levels.</para>

            <itemizedlist>

              <listitem>

                <para lang="en"><emphasis>Statechart diagram</emphasis>. Used to 
                show the dynamic behavior of a single object (class 
                instance). This diagram is of particular use in systems 
                using complex communication protocols, such as in 
                telecommunications. See 
                <xref linkend="ch.ref.entstate"/> for details of the 
                ArgoUML statechart diagram and the model elements it 
                supports.</para>

              </listitem>

              <listitem>

                <para lang="en"><emphasis>Activity diagram</emphasis>. Used to 
                show the dynamic behavior of groups of objects (class 
                instance). This diagram is an alternative to the 
                statechart diagram, and is better suited to systems 
                with a great deal of user interaction. See 
                <xref linkend="ch.ref.entactiv"/> for details of the 
                ArgoUML activity diagram and the model elements it 
                supports.</para>

              </listitem>

              <listitem>

                <para lang="en"><emphasis>Interaction diagrams</emphasis>. There 
                are two diagrams in this category, used to show the 
                dynamic interaction between objects (class instances) 
                in the system.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><emphasis>Sequence diagram</emphasis>. Shows 
                    the interactions (typically messages or procedure 
                    calls) between instances of classes (objects) and 
                    actors against a timeline. Particularly useful 
                    where the timing relationships between interactions 
                    are important. See <xref linkend="ch.ref.entseq"/> 
                    for details of the ArgoUML sequence diagram and the 
                    model elements it supports.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><emphasis>Collaboration diagram</emphasis>. 
                    Shows the interactions (typically messages or 
                    procedure calls) between instances of classes 
                    (objects) and actors against the structural 
                    relationships between those instances. Particularly 
                    suitable where it is useful to relate interactions 
                    to the static structure of the system. See 
                    <xref linkend="ch.ref.entcollab"/> for details of 
                    the ArgoUML collaboration diagram and the model elements 
                    it supports.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </itemizedlist>

          </listitem>

          <listitem>

            <para lang="en"><emphasis>Implementation diagrams</emphasis>. UML 
            defines two implementation diagrams to show the 
            relationship between the software components that make up a 
            system (the <emphasis>component diagram</emphasis>) and the 
            relationship between the software and the hardware on which 
            it is deployed at run-time (the <emphasis>deployment 
            diagram</emphasis>.</para>

            <para lang="en">The ArgoUML deployment diagram provides support for 
            both component and deployment diagrams, and additionally 
            for object diagrams. See <xref linkend="ch.ref.entdeploy"/> 
            for details of the diagram and the model elements it 
            supports.</para>

          </listitem>

        </itemizedlist>

        <para lang="en">Diagrams are created using the <literal>Create</literal> 
        drop down menu (see <xref linkend="s1.ref.create.diagram.menu"/>
        ), or with the tools on the toolbar (see 
        <xref linkend="ch.ref.toolbar.create"/>),
        or with the pop-up menus in the explorer.</para>

        <note>

          <para lang="en">ArgoUML uses its deployment diagram to create the UML 
          1.4 component, deployment and object diagrams.</para>

        </note>

        <caution>

          <para lang="en">Statechart and activity diagrams are associated with a 
          particular class or operation (or the latter also with a 
          package), and can only be created when this modelelement has 
          been selected.</para>

        </caution>

        <warning>

          <para lang="en">In ArgoUML version 0.26, the UML 1.4 object diagram as 
          a variant of the class diagram is not directly supported. 
          However, it is possible to create object diagrams 
          within the ArgoUML deployment diagram.</para>

        </warning>

        <sect2>

          <title>
			<phrase lang="en">Diagram Details Tabs</phrase>
		</title>

          <indexterm lang="en"><primary>Diagram Details Tabs</primary></indexterm>
          <indexterm lang="en"><primary>Details Tabs</primary><secondary>for 
          Diagrams</secondary></indexterm>
          <para lang="en">The details tabs that are active for diagrams are as 
          follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.diagram_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Diagram Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure of the 
                model.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the diagram from the model. As a 
                consequence, in case of a statechart diagram or an 
                activity diagram, all contained elements are deleted, 
                too.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.diagram_property_fields">

          <title>
			<phrase lang="en">Property Fields For Diagram</phrase>
		</title>

          <indexterm lang="en"><primary>Diagram Property 
          Fields</primary></indexterm>
          <indexterm lang="en"><primary>Property Fields</primary><secondary>for 
          Diagrams</secondary></indexterm>
          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Diagram Name</primary></indexterm>
                <indexterm lang="en"><primary>Name</primary><secondary>of 
                Diagrams</secondary></indexterm>
                <para lang="en">The name of the diagram. There are no conventions 
                for naming diagrams. By default, ArgoUML uses the 
                (space separated) diagram name and a sequence number, 
                thus <literal>Use Case Diagram 1</literal>.</para>

                <tip>

                  <para lang="en">This name is used to generate a filename when 
                  activating the <quote>Save Graphics...</quote> 
                  menu-item.</para>

                </tip>

              </listitem>
            </varlistentry>

            <varlistentry>
              <term><literal>Home Model</literal></term>
              <listitem>

                <indexterm lang="en"><primary>Home Model</primary></indexterm>
                <indexterm lang="en"><primary>Home Model</primary><secondary>of 
                Diagrams</secondary></indexterm>
                <para lang="en">The Home Model of the diagram
                is not something defined in the UML specification.
                The Home Model is the modelelement represented by the diagram.
                Hence its type depends on the type of diagram: e.g. 
                it is the namespace represented by a class diagram, 
                or the statemachine in case of a Statechart diagram.
                </para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

    </chapter>

    <chapter id="ch.ref.entusecase">

      <title>
			<phrase lang="en">Use Case Diagram Model Element Reference</phrase>
		</title>

      <indexterm lang="en"><primary>Use Case Diagram</primary></indexterm>
      <sect1>

        <title>
			<phrase lang="en">Introduction</phrase>
		</title>

        <para lang="en">This chapter describes each model element that can be created 
        within a use case diagram. Note that some sub-model elements of 
        model elements on the diagram may not actually themselves appear on 
        the diagram.</para>

        <para lang="en">There is a close relationship between this material and 
        the properties tab of the details pane (see 
        <xref linkend="s1.ref.proptab"/>). That section covers 
        properties in general, in this chapter they are linked to 
        specific model elements.</para>

        <para lang="en"><xref linkend="fig.ref.use_case_diagram"/> shows a use 
        case diagram with all typical model elements displayed.</para>

        <figure float="1" id="fig.ref.use_case_diagram">

          <title>
			<phrase lang="en">Typical model elements on a use case diagram.</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/use_case_diagram.gif"
           format="GIF"/></imageobject></mediaobject></screenshot>
        </figure>

        <sect2>

          <title>
			<phrase lang="en">ArgoUML Limitations Concerning Use Case 
          Diagrams</phrase>
		</title>

          <para lang="en">Use case diagrams are now well supported within 
          ArgoUML. There still are some minor limitations though,
          especially with extension points.</para>

          <note>

            <para lang="en">Earlier versions of ArgoUML (0.9 and earlier) 
            implemented extend and include relationships by using a 
            stereotyped dependency relationship. Although such diagrams 
            will show correctly on the diagram, they will not link 
            correctly to the use cases, and should be replaced by 
            proper extend and include relationships using the current 
            system.</para>

          </note>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.actor">

        <title>
			<phrase lang="en">Actor</phrase>
		</title>

        <indexterm lang="en"><primary>Actor</primary></indexterm>
        <indexterm lang="en"><primary>External entity</primary></indexterm>
        <para lang="en">An actor represents any external entity (human or 
        machine) that interacts with the system, providing input, 
        receiving output, or both.</para>

        <para lang="en">Within the UML metamodel, actor is a sub-class of 
        <literal>classifier</literal>.</para>

        <para lang="en">The actor is represented by a <quote>stick man</quote> 
        figure on the diagram (see 
        <xref linkend="fig.ref.use_case_diagram"/>).</para>

        <sect2>

          <title>
			<phrase lang="en">Actor Details Tabs</phrase>
		</title>

          <indexterm lang="en"><primary>Actor Details Tabs</primary></indexterm>
          <indexterm lang="en"><primary>Details Tabs</primary><secondary>for 
          Actor</secondary></indexterm>
          <para lang="en">The details tabs that are active for actors are as 
          follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.actor_property_toolbar"/> and 
                <xref linkend="s2.ref.actor_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. See 
                <xref linkend="s2.ref.documentation_tab"/>.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. The fill color is used for the 
                stick man&apos;s head.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Source</literal></term>

              <listitem>

                <para lang="en">Standard tab. Usually, no code is provided for an 
                actor, since it is external to the system.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Actor</literal> has the following standard tagged 
                values defined.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>persistence</literal> (from the 
                    superclass, <literal>Classifier</literal>). Values 
                    <literal>transitory</literal>, indicating state is 
                    destroyed when an instance is destroyed or <literal>
                    persistent</literal>, marking state is preserved 
                    when an instance is destroyed.</para>

                    <tip>

                      <para lang="en">Actors sit outside the system, and so their 
                      internal behavior is of little concern, and this 
                      tagged value is best ignored.</para>

                    </tip>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>semantics</literal> (from the 
                    superclass, <literal>Classifier</literal>). The 
                    value is a specification of the semantics of the 
                    actor.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>derived</literal> (from the 
                    superclass, <literal>ModelElement</literal>). 
                    Values <literal>true</literal>, meaning the actor 
                    is redundant&mdash;it can be formally derived from other 
                    elements, or <literal>false</literal> meaning it 
                    cannot.</para>

                    <note>

                      <para lang="en">Derived actors have limited value, since 
                      they sit outside the system being designed. They 
                      may have their value in analysis to introduce 
                      useful names or concepts.</para>

                    </note>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Checklist</literal></term>

              <listitem>

                <para lang="en">Standard tab for a Classifier.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.actor_property_toolbar">

          <title>
			<phrase lang="en">Actor Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure of the 
                model.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center" fileref="images/icons/actor.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Add Actor</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Actor</primary></indexterm>
                <indexterm lang="en"><primary>New Actor</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Actor</secondary></indexterm>
                <para lang="en">This creates a new actor within the model, (but 
                not within the diagram), navigating immediately to the 
                properties tab for that actor.</para>

                <tip>

                  <para lang="en">This method of creating a new actor may be 
                  confusing. It is much better to create an actor on 
                  the diagram.</para>

                </tip>

              </listitem>

            </varlistentry>

            <varlistentry>
            
              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center" fileref="images/icons/reception.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Reception</literal></term>
            
              <listitem>

                <indexterm lang="en"><primary>Add Reception</primary></indexterm>
                <indexterm lang="en"><primary>New Reception</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Reception</secondary></indexterm>

                <para lang="en">This creates a new reception within the model,(but 
                not within the diagram), navigating immediately to the 
                properties tab for that rception.</para>

                <tip>

                  <para lang="en">A reception is a declaration that the actor
                  handles a signal, but the actual handling 
                  is specified by a state machine.</para>

                </tip>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the selected actor from the 
                model.</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram. To delete 
                  an actor from the diagram, but keep it within the 
                  model, use the main menu <literal>Remove From 
                  Diagram</literal> (or press the Delete key).</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.actor_property_fields">

          <title>
			<phrase lang="en">Property Fields For Actor</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Actor Name</primary></indexterm>
                <indexterm lang="en"><primary>Name</primary><secondary>of 
                Actor</secondary></indexterm>
                <para lang="en">Text box. The name of the actor. The diagram 
                shows this name below the stick man figure. Since an 
                actor is a classifier, it would be conventional to 
                Capitalize the first letter (and initial letters of any 
                component words), e.g. <literal>
                RemoteSensor</literal>.</para>

                <note>

                  <para lang="en">ArgoUML does not enforce any naming convention 
                  for actors</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Namespace</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Actor 
                Namespace</primary></indexterm>
                <indexterm lang="en"><primary>Namespace</primary><secondary>of 
                Actor</secondary></indexterm>
                <para lang="en">Text box with navigation button. 
                Records the namespace for the actor. 
                This is the package hierarchy.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Modifiers</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Actor 
                Modifiers</primary></indexterm>
                <indexterm lang="en"><primary>Modifiers</primary><secondary>of 
                Actor</secondary></indexterm>
                <para lang="en">Check box, with entries <literal>
                Abstract</literal>, <literal>Leaf</literal> and 
                <literal>Root</literal>.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Abstract</literal> is used to 
                    declare that this actor cannot be instantiated, but 
                    must always be specialized.</para>

                    <caution>

                      <para lang="en">While actors can be specialized and 
                      generalized, it is not clear that an abstract 
                      actor has any meaning. Perhaps it might be used 
                      to indicate an actor that does not itself 
                      interact with a use case, but whose children 
                      do.</para>

                    </caution>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>leaf</literal> indicates that this 
                    actor can have no further children, while <literal>
                    Root</literal> indicates it is a top level actor 
                    with no parent.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Generalizations</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Actor 
                Generalizations</primary></indexterm>
                <indexterm lang="en">
                <primary>Generalizations</primary><secondary>of 
                Actor</secondary></indexterm>
                <para lang="en">Text area. Lists any actor that 
                <emphasis>generalizes</emphasis> this actor.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the 
                generalization and opens its property tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Specializations</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Actor 
                Specializations</primary></indexterm>
                <indexterm lang="en">
                <primary>Specializations</primary><secondary>of 
                Actor</secondary></indexterm>
                <para lang="en">Text box. Lists any specialized actor (i.e. for 
                which this actor is a generalization. The specialized 
                actors can communicate with the same use case instances 
                as this actor.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the 
                generalization and opens its property tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Association Ends</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Actor Association 
                Ends</primary></indexterm>
                <indexterm lang="en"><primary>Association 
                Ends</primary><secondary>of 
                Actor</secondary></indexterm>
                <para lang="en">Text area. Lists any association ends of 
                associations connected to this actor.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the selected 
                entry.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.use_case">

        <title>
			<phrase lang="en">Use Case</phrase>
		</title>

        <indexterm lang="en"><primary>Use Case</primary></indexterm>
        <para lang="en">A use case represents a complete meaningful 
        <quote>chunk</quote> of activity by the system in relation to 
        its external users (actors), human or machine. It represents 
        the primary route through which requirements are captured for 
        the system under construction</para>

        <para lang="en">Within the UML metamodel, use case is a sub-class of 
        <literal>classifier</literal>.</para>

        <para lang="en">The use case icon is an oval (see 
        <xref linkend="fig.ref.use_case_diagram"/>). It may be split in 
        two, with the lower compartment showing extension points</para>

        <caution>

          <para lang="en">By default ArgoUML does not show the extension point 
          compartment. It may be revealed by the context sensitive 
          <literal>Show</literal> menu (using button&nbsp;2 click), or from 
          the Presentation tab.</para>

        </caution>

        <sect2>

          <title>
			<phrase lang="en">Use Case Details Tabs</phrase>
		</title>

          <indexterm lang="en"><primary>Use Case Details 
          Tabs</primary></indexterm>
          <indexterm lang="en"><primary>Details Tabs</primary><secondary>for Use 
          Case</secondary></indexterm>
          <para lang="en">The details tabs that are active for use cases are as 
          follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.use_case_property_toolbar"/> and 
                <xref linkend="s2.ref.use_case_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. See 
                <xref linkend="s2.ref.documentation_tab"/>.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. The Fill color is used for the use 
                case oval.</para>

                <para lang="en">The <literal>Display: Extension Points</literal> 
                check box is used to control whether an extension point 
                compartment is displayed.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Source</literal></term>

              <listitem>

                <para lang="en">Standard tab. It would not be usual to provide 
                any code for a use case, since it is primarily a 
                vehicle for capturing requirements about the system 
                under construction, not creating the solution.</para>

              </listitem>

            </varlistentry>
            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab. In the UML metamodel, <literal>
                UseCase</literal> has the following standard tagged 
                values defined.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>persistence</literal> (from the 
                    superclass, <literal>Classifier</literal>). Values 
                    <literal>transitory</literal>, indicating state is 
                    destroyed when an instance is destroyed or <literal>
                    persistent</literal>, marking state is preserved 
                    when an instance is destroyed.</para>

                    <tip>

                      <para lang="en">In general the instantiation of use cases 
                      is not a major aspect of any design method (they 
                      are mostly concerned with requirements capture. 
                      For most OOA&amp;D methodologies, this tag can 
                      safely be ignored.</para>

                    </tip>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>semantics</literal> (from the 
                    superclass, <literal>Classifier</literal>). The 
                    value is a specification of the semantics of the 
                    use case.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>derived</literal> (from the 
                    superclass, <literal>ModelElement</literal>). 
                    Values <literal>true</literal>, meaning the use 
                    case is redundant&mdash;it can be formally derived from 
                    other elements, or <literal>false</literal> meaning 
                    it cannot.</para>

                    <note>

                      <para lang="en">Derived use cases still have their value in 
                      analysis to introduce useful names or 
                      concepts.</para>

                    </note>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Checklist</literal></term>

              <listitem>

                <para lang="en">Standard tab for a Classifier.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.use_case_property_toolbar">

          <title>
			<phrase lang="en">Use Case Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure of the 
                model.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/use_case.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New use case</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Use Case</primary></indexterm>
                <indexterm lang="en"><primary>New Use Case</primary></indexterm>
                <indexterm lang="en"><primary>Create New</primary><secondary>Use 
                Case</secondary></indexterm>
                <para lang="en">This creates a new use case within the model, 
                (but not within the diagram), and shows immediately the 
                properties tab for that use case.</para>

                <tip>

                  <para lang="en">This method of creating a new use case can be 
                  confusing. It is much better to create a new use case 
                  on the diagram of your choice.</para>

                </tip>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/extension_point.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New extension point</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Extension 
                Point</primary></indexterm>
                <indexterm lang="en"><primary>New Extension 
                Point</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Extension 
                Point</secondary></indexterm>
                <para lang="en">This creates a new use extension point within the 
                namespace of the current use case, with the current use 
                case as its associated use case, navigating immediately 
                to the properties tab for that extension point.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/attribute.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Attribute</literal></term>

              <listitem>
                <para lang="en">This creates a new attribute within the 
                current use case, 
                navigating immediately 
                to the properties tab for that attribute.</para>
              </listitem>
            </varlistentry>
            
            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/operation.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Operation</literal></term>

              <listitem>
                <para lang="en">This creates a new operation within the 
                current use case, 
                navigating immediately 
                to the properties tab for that operation.</para>
              </listitem>
            </varlistentry>
            
            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/reception.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Reception</literal></term>

              <listitem>
                <para lang="en">This creates a new reception within the 
                current use case, 
                navigating immediately 
                to the properties tab for that reception.</para>
              </listitem>
            </varlistentry>
            
            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>
                <para lang="en">This creates a new stereotype within the 
                current use case, 
                navigating immediately 
                to the properties tab for that stereotype.</para>
              </listitem>
            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the selected use case from the 
                model.</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram. To delete 
                  a use case from the diagram, but keep it within the 
                  model, use the main menu <literal>Remove From 
                  Diagram</literal> (or press the Delete key).</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.use_case_property_fields">

          <title>
			<phrase lang="en">Property Fields For Use Case</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Use Case Name</primary></indexterm>
                <indexterm lang="en"><primary>Name</primary><secondary>of Use 
                Case</secondary></indexterm>
                <para lang="en">Text box. The name of the use case. Since a use 
                case is a classifier, it would be conventional to 
                Capitalize the first letter (and initial letters of any 
                component words), e.g. <literal>RemoteSensor</literal>. 
                The name is shown inside the oval representation of the 
                use case on the diagram.</para>

                <note>

                  <para lang="en">ArgoUML does not enforce any naming convention 
                  for use cases</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Namespace</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Use Case 
                Namespace</primary></indexterm>
                <indexterm lang="en"><primary>Namespace</primary><secondary>of 
                Use Case</secondary></indexterm>
                <para lang="en">Text box with navigation button. 
                Records the namespace for the use case. 
                This is the package hierarchy.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Modifiers</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Use Case 
                Modifiers</primary></indexterm>
                <indexterm lang="en"><primary>Modifiers</primary><secondary>of 
                Use Case</secondary></indexterm>
                <para lang="en">Check box, with entries <literal>
                Abstract</literal> <literal>Leaf</literal> and <literal>
                Root</literal>.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Abstract</literal> is used to 
                    declare that this actor cannot be instantiated, but 
                    must always be specialized. .</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Leaf</literal> indicates that this 
                    use case can have no further children, while 
                    <literal>Root</literal> indicates it is a top level 
                    use case with no parent.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Client Dependencies</literal></term>

              <listitem>

                <para lang="en">Text area. Lists the <quote>depending</quote> 
                ends of the relationship, i.e. the end that makes use 
                of the other end.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the dependency 
                and opens its property tab.</para>
                <para lang="en">Button&nbsp;2 click shows a pop-up menu with one entry
                <literal>Add...</literal> that
                opens a dialog box where you can add and remove 
                depending modelelements.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Supplier Dependencies</literal></term>

              <listitem>

                <para lang="en">Text area. Lists the <quote>supplying</quote> 
                ends of the relationship, i.e. the end supplying what 
                is needed by the other end.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the dependency 
                and opens its property tab.</para>
                <para lang="en">Button&nbsp;2 click shows a pop-up menu with one entry
                <literal>Add...</literal> that
                opens a dialog box where you can add and remove 
                dependent modelelements.</para>
              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>
              <anchor id="ref.use_case_generalization"/>Generalizations</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Use Case 
                Generalization</primary></indexterm>
                <indexterm lang="en">
                <primary>Generalizations</primary><secondary>of Use 
                Case</secondary></indexterm>
                <para lang="en">Text area. Lists use cases which are 
                generalizations of this one. Will be set whenever a 
                generalization is created on the from this Use Case. 
                Button&nbsp;1 Double Click on a generalization will navigate 
                to that generalization.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Specializations</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Use Case 
                Specialization</primary></indexterm>
                <indexterm lang="en">
                <primary>Specializations</primary><secondary>of Use 
                Case</secondary></indexterm>
                <para lang="en">Text box. Lists any specialized use case (i.e. 
                for which this use case is a generalization.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the 
                generalization and opens its property tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Extends</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Use Case Extend 
                Relationships</primary></indexterm>
                <indexterm lang="en"><primary>Extend 
                Relationship</primary><secondary>of Use 
                Case</secondary></indexterm>
                <para lang="en">Text box. Lists any class that is extended by 
                this use case.</para>

                <para lang="en">Where an extends relationship has been created, 
                button&nbsp;1 double click will navigate to that 
                relationship.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Includes</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Use Case Include 
                Relationships</primary></indexterm>
                <indexterm lang="en"><primary>Include 
                Relationship</primary><secondary>of Use 
                Case</secondary></indexterm>
                <para lang="en">Text box. Lists any use case that this use case 
                includes.</para>

                <para lang="en">Where an include relationship has been created, 
                button&nbsp;1 Double Click will navigate to that 
                relationship.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Attributes</literal></term>

              <listitem>

                <para lang="en">Text area. Lists all the attributes (see 
                <xref linkend="s1.ref.attribute"/>) defined for this 
                use case. Button&nbsp;1 double click navigates to the selected 
                attribute. Button&nbsp;2 gives a pop up menu with two 
                entries, which allow reordering the attributes.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Move Up</literal>. Only available 
                    where there are two or more attributes listed, and 
                    the attribute selected is not at the top. It moves 
                    the attribute up one position.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Move Down</literal>. Only available 
                    where there are two or more attributes listed, and 
                    the attribute selected is not at the bottom. It 
                    moves the attribute down one position.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Association Ends</literal></term>

              <listitem>

                <para lang="en">Text box. Lists any association ends (see 
                <xref linkend="s1.ref.association_class"/>) of 
                associations connected to this use case.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the selected 
                entry.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Operations</literal></term>

              <listitem>

                <para lang="en">Text area. Lists all the operations (see 
                <xref linkend="s1.ref.operation"/>) defined on this 
                use case. Button&nbsp;1 click navigates to the selected 
                operation. Button&nbsp;2 gives a pop up menu with two 
                entries, which allow reordering the operations.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Move Up</literal>. Only available 
                    where there are two or more operations listed, and 
                    the operation selected is not at the top. It moves 
                    the operation up one position.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Move Down</literal>. Only available 
                    where there are two or more operations listed, and 
                    the operation selected is not at the bottom. It 
                    moves the operation down one position.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>


            <varlistentry>

              <term><literal>Extension Points</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Use Case Extension 
                Points</primary></indexterm>
                <indexterm lang="en"><primary>Extension 
                Point</primary><secondary>of Use 
                Case</secondary></indexterm>
                <para lang="en">Text box. If this use case is, or can be 
                extended, this field lists the extension points for the 
                use case.</para>

                <note>

                  <para lang="en">Extension points are listed by their location 
                  point rather than their name.</para>

                </note>

                <para lang="en">Where an extension point has been created (see 
                below), button&nbsp;1 Double Click will navigate to that 
                relationship. Button&nbsp;2 gives a pop up menu with
                the following entries.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>New</literal>. Add a new extension 
                    point and navigate to it, making this use case the 
                    owning use case of the extension point.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Move Up</literal>. Only available 
                    where there are two or more extension points listed, and 
                    the extension point selected is not at the top. It moves 
                    the extension point up one position.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Move Down</literal>. Only available 
                    where there are two or more extension points listed, and 
                    the extension point selected is not at the bottom. It 
                    moves the extension point down one position.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.extension_point">

        <title>
			<phrase lang="en">Extension Point</phrase>
		</title>

        <indexterm lang="en"><primary>Extension Point</primary></indexterm>
        <para lang="en">An extension point describes a point in a use case where 
        an extending use case may provide additional behavior.</para>

        <para lang="en">Examples for a travel agent sales system might be the use 
        case for paying for a ticket, which has an extension point in 
        the specification of the payment. Extending use cases may then 
        extend at this point to pay by cash, credit card etc.</para>

        <para lang="en">Within the UML metamodel, <literal>Extension 
        Point</literal> is a sub-class of <literal>
        ModelElement</literal>. A use case may display an extension 
        point compartment (see <xref linkend="s1.ref.use_case"/> for 
        details), in which extension points are shown with the 
        following syntax.</para>

        <blockquote>

          <para lang="en"><emphasis>name</emphasis>
          <literal>:</literal><emphasis>location</emphasis>.</para>

        </blockquote>

        <sect2>

          <title>
			<phrase lang="en">Extension Point Details Tabs</phrase>
		</title>

          <indexterm lang="en"><primary>Extension Point Details 
          Tabs</primary></indexterm>
          <indexterm lang="en"><primary>Details Tabs</primary><secondary>for 
          Extension Point</secondary></indexterm>
          <para lang="en">The details tabs that are active for extension points 
          are as follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.extension_point_property_toolbar"/>
                 and 
                <xref linkend="s2.ref.extension_point_property_fields"/>
                 below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. See 
                <xref linkend="s2.ref.documentation_tab"/>.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Standard tab. </para>

                <para lang="en">Extensionpoints do not have 
                any stereotypes defined by default.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab. In the UML metamodel, <literal>
                ExtensionPoint</literal> has the following standard 
                tagged values defined.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>derived</literal> (from the 
                    superclass, <literal>ModelElement</literal>). 
                    Values <literal>true</literal>, meaning the 
                    extension point is redundant&mdash;it can be formally 
                    derived from other elements, or <literal>
                    false</literal> meaning it cannot.</para>

                    <note>

                      <para lang="en">It is not clear how derived extension 
                      points could have any value in analysis.</para>

                    </note>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.extension_point_property_toolbar">

          <title>
			<phrase lang="en">Extension Point Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up to the use case which owns this 
                extension point.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/extension_point.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Extension Point</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Extension 
                Point</primary></indexterm>
                <indexterm lang="en"><primary>New Extension 
                Point</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Extension 
                Point</secondary></indexterm>
                <para lang="en">This creates a new Extension Point below the 
                selected extension point, navigating immediately to the 
                properties tab of the newly created extension 
                point.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                extension point, navigating immediately to the 
                properties tab for that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the selected extension point from 
                the model.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.extension_point_property_fields">

          <title>
			<phrase lang="en">Property Fields For Extension Point</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Extension Point 
                Name</primary></indexterm>
                <indexterm lang="en"><primary>Name</primary><secondary>of 
                Extension Point</secondary></indexterm>
                <para lang="en">Text box. The name of the extension point.</para>

                <tip>

                  <para lang="en">It is quite common to leave extension points 
                  unnamed in use case analysis, since they are always 
                  listed (within use cases and extend relationships) by 
                  their location.</para>

                </tip>

                <note>

                  <para lang="en">ArgoUML does not enforce any naming convention 
                  for extension points.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Location</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Extension Point 
                Location</primary></indexterm>
                <indexterm lang="en"><primary>Location</primary><secondary>of 
                Extension Point</secondary></indexterm>
                <para lang="en">Text box. A description of the location of this 
                extension point within the owning use case.</para>

                <tip>

                  <para lang="en">Extension points are always listed (within use 
                  cases and extend relationships) by their location. 
                  Typically this will be the number/name of the 
                  paragraph in the specification.</para>

                </tip>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Base Use Case</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Extension Point Base Use 
                Case</primary></indexterm>
                <indexterm lang="en"><primary>Base Use 
                Case</primary><secondary>of Extension 
                Point</secondary></indexterm>
                <para lang="en">Text box. Shows the base use case within which 
                this extension point is defined. Button&nbsp;1 Double Click 
                will navigate to the use case.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Extend</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Extension Point Extending Use 
                Cases</primary></indexterm>
                <indexterm lang="en"><primary>Extending Use 
                Cases</primary><secondary>of Extension 
                Point</secondary></indexterm>
                <para lang="en">Text box. Lists all use cases which extend the 
                base use case through this extension point.</para>

                <para lang="en">Where an extending use case exists, button&nbsp;1 
                double click will navigate to that relationship.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.association_use_case">

        <title>
			<phrase lang="en">Association</phrase>
		</title>

        <para lang="en">An association on a use case diagram represents a 
        relationship between an actor and a use case showing that 
        actor&apos;s involvement in the use case. The invocation of the 
        use case will involve some (significant) change perceived by 
        the actor.</para>

        <para lang="en">Associations are described fully under class diagrams 
        (see <xref linkend="s1.ref.association_class"/>).</para>

      </sect1>

      <sect1 id="s1.ref.association_end_use_case">

        <title>
			<phrase lang="en">Association End</phrase>
		</title>

        <para lang="en">Association ends are described under class diagrams (see 
        <xref linkend="s1.ref.association_end_class"/>).</para>

      </sect1>

      <sect1 id="s1.ref.dependency_use_case">

        <title>
			<phrase lang="en">Dependency</phrase>
		</title>

        <para lang="en">Dependencies are described under class diagrams (see 
        <xref linkend="s1.ref.dependency_class"/>).</para>

        <caution>

          <para lang="en">Dependency has little use in use case diagrams. It is 
          provided, because earlier versions of ArgoUML used it 
          (incorrectly) to implement include and extends 
          relationships.</para>

        </caution>

      </sect1>

      <sect1 id="s1.ref.generalization_use_case">

        <title>
			<phrase lang="en">Generalization</phrase>
		</title>

        <indexterm lang="en"><primary>Generalization</primary></indexterm>
        <para lang="en">Generalization is a relationship between two use cases or 
        two actors. Where A is a generalization of B, it means A 
        describes more general behavior and B a more specific version 
        of that behavior.</para>

        <para lang="en">Examples for a travel agent sales system might be the use 
        case for making a booking as a generalization of the use case 
        for making a flight booking and a salesman actor being a 
        generalization of a supervisor actor (since supervisors can 
        also act as salesmen, but not vice versa).</para>

        <para lang="en">Generalization is analogous to class inheritance within 
        OO programming.</para>

        <note>

          <para lang="en">It is easy to confuse <emphasis>extends</emphasis> 
          relationships between use cases with generalization. However 
          extends is about augmenting a use case&apos;s behavior at a 
          specific point. Generalization is about specializing the 
          behavior throughout the use case.</para>

        </note>

        <para lang="en">Within the UML metamodel, <literal>
        Generalization</literal> is a sub-class of <literal>
        Relationship</literal>.</para>

        <para lang="en">Generalization is represented as an arrow with white 
        filled head from the specialized use case or actor to the 
        generalized use case or actor (see 
        <xref linkend="fig.ref.use_case_diagram"/>).</para>

        <sect2>

          <title>
			<phrase lang="en">Generalization Details Tabs</phrase>
		</title>

          <indexterm lang="en"><primary>Generalization Details 
          Tabs</primary></indexterm>
          <indexterm lang="en"><primary>Details Tabs</primary><secondary>for 
          Generalization</secondary></indexterm>
          <para lang="en">The details tabs that are active for associations are 
          as follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.generalization_property_toolbar"/>
                 and 
                <xref linkend="s2.ref.generalization_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. See 
                <xref linkend="s2.ref.documentation_tab"/>.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

                <note>

                  <para lang="en">The values in the "bounds" field 
                    of the generalization are not editable, 
                    since they are determined by 
                    the properties of the endpoints of the line.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Standard tab. </para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Generalization</literal> has the following standard 
                tagged values defined.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>derived</literal> (from the 
                    superclass, <literal>ModelElement</literal>). 
                    Values <literal>true</literal>, meaning the 
                    generalization is redundant&mdash;it can be formally 
                    derived from other elements, or <literal>
                    false</literal> meaning it cannot.</para>

                    <note>

                      <para lang="en">Derived generalizations still have their 
                      value in analysis to introduce useful names or 
                      concepts, and in design to avoid 
                      re-computation.</para>

                    </note>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.generalization_property_toolbar">

          <title>
			<phrase lang="en">Generalization Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure of the 
                model. For a generalization this will be the package 
                containing the generalization.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                generalization, navigating immediately to the 
                properties tab for that generalization.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the selected generalization from the 
                model.</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram. To delete 
                  a generalization from the diagram, but keep it within 
                  the model, use the main menu <literal>Remove From 
                  Diagram</literal> (or press the Delete key).</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.generalization_property_fields">

          <title>
			<phrase lang="en">Property Fields For Generalization</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Generalization 
                Name</primary></indexterm>
                <indexterm lang="en"><primary>Name</primary><secondary>of 
                Generalization</secondary></indexterm>
                <para lang="en">Text box. The name of the generalization.</para>

                <tip>

                  <para lang="en">It is quite common to leave generalizations 
                  unnamed in use case analysis.</para>

                </tip>

                <note>

                  <para lang="en">ArgoUML does not enforce any naming convention 
                  for associations.</para>

                </note>

                <note>

                  <para lang="en">There is no representation of the name of a 
                  generalization on the diagram.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Discriminator</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Generalization 
                Discriminator</primary></indexterm>
                <indexterm lang="en">
                <primary>Discriminator</primary><secondary>of 
                Generalization</secondary></indexterm>
                <para lang="en">Text box. The name of a discriminator for the 
                specialization. UML&nbsp;1.4 allows grouping of 
                specializations into a number of sets, on the basis of 
                this value.</para>

                <tip>

                  <para lang="en">The empty string <quote /> is a valid entry 
                  (and the default) for this field. The discriminator 
                  is only of practical use in cases of multiple 
                  inheritance. A (class diagram) example is shown in 
                  <xref linkend="fig.discriminator_example"/>. Here 
                  each type of user should inherit from two sorts of 
                  user. One distinguishing between local or remote user 
                  (which can be identified by one discriminator) and 
                  one indicating their function as a user (identified 
                  by a different discriminator).</para>

                  <para lang="en">There is little point in using this within a 
                  use case diagram.</para>

                </tip>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Namespace</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Generalization 
                Namespace</primary></indexterm>
                <indexterm lang="en"><primary>Namespace</primary><secondary>of 
                Generalization</secondary></indexterm>
                <para lang="en">Text box with navigation button. 
                Records the namespace for the 
                generalization. This is the package hierarchy.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Parent</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Generalization 
                Parent</primary></indexterm>
                <indexterm lang="en"><primary>Parent</primary><secondary>of 
                Generalization</secondary></indexterm>
                <para lang="en">Text box. Shows the use case or actor that is the 
                <emphasis>parent</emphasis> in this relationship, i.e. 
                the more general end of the relationship. Button&nbsp;1 
                Double Click on this entry will navigate to that use 
                case or actor. </para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Child</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Generalization 
                Child</primary></indexterm>
                <indexterm lang="en"><primary>Child</primary><secondary>of 
                Generalization</secondary></indexterm>
                <para lang="en">Text box. Shows the use case or actor that is the 
                <emphasis>child</emphasis> in this relationship, i.e. 
                the more specific end of the relationship. Button&nbsp;1 
                Double Click on this entry will navigate to that use 
                case or actor. </para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Powertype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Generalization 
                Powertype</primary></indexterm>
                <indexterm lang="en"><primary>Powertype</primary><secondary>of 
                Generalization</secondary></indexterm>
                <para lang="en">Drop down selector providing access to all 
                standard UML types provided by ArgoUML and all new 
                classes created within the current model.</para>

                <para lang="en">This is the type of the child entity of the 
                generalization.</para>

                <tip>

                  <para lang="en">This can be ignored for use case analysis. The 
                  only sensible value to put in would be the child use 
                  case type (as a classifier, this appears in the drop 
                  down list.</para>

                </tip>

              </listitem>

            </varlistentry>

          </variablelist>

          <figure float="1" id="fig.discriminator_example">

            <title>
			<phrase lang="en">Example use of a discriminator with 
            generalization</phrase>
		</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/discriminator_example.gif"
             format="GIF"/></imageobject></mediaobject></screenshot>
          </figure>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.extend">

        <title>
			<phrase lang="en">Extend</phrase>
		</title>

        <indexterm lang="en"><primary>Extend Relationship</primary></indexterm>
        <para lang="en">Extend is a relationship between two use cases. Where A 
        extends B, it means A describes some additional behavior 
        that is executed conditionally (under exceptional circumstances)
        at some point
        during the normal behavior of B.
        </para>

        <para lang="en">In some respects extend is like generalization. However 
        the key difference is that the extended use case defines 
        <emphasis>extension points</emphasis> (see 
        <xref linkend="s1.ref.extension_point"/>), which are the only 
        places where its behavior may be extended. The extending use 
        case must define at which of these extension points it adds 
        behavior.</para>

        <para lang="en">This makes the use of extend more tightly controlled than 
        general extension, and it is thus preferred wherever 
        possible.</para>

        <para lang="en">Examples for a travel agent sales system might be the use 
        case for paying for a ticket, which has an extension point in 
        the specification of the payment. Extending use cases may then 
        extend at this point to pay by cash, credit card etc.</para>

        <para lang="en">Within the UML metamodel, <literal>Extend</literal> is a 
        sub-class of <literal>Relationship</literal>.</para>

        <para lang="en">An extend relationship is represented as a dotted link 
        with an open arrow head and a label <literal>
        &laquo;extend&raquo;</literal>. If a condition is defined, it is shown 
        under the <literal>&laquo;extend&raquo;</literal> label (see 
        <xref linkend="fig.ref.use_case_diagram"/>).</para>

        <sect2>

          <title>
			<phrase lang="en">Extend Details Tabs</phrase>
		</title>

          <indexterm lang="en"><primary>Extend Relationship Details 
          Tabs</primary></indexterm>
          <indexterm lang="en"><primary>Details Tabs</primary><secondary>for 
          Extend Relationship</secondary></indexterm>
          <para lang="en">The details tabs that are active for extend 
          relationships are as follows.</para>

          <note>

            <para lang="en">There is no source tab, since there is no source code 
            that could be generated for an extend relationship.</para>

          </note>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.extend_property_toolbar"/> and 
                <xref linkend="s2.ref.extend_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. See 
                <xref linkend="s2.ref.documentation_tab"/>.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab</para>

                <note>

                  <para lang="en">
                    The values in the "bounds" field of the extend
                    are not editable, since they are determined 
                    by the properties of the endpoints of the line.
                  </para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Standard tab. </para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Extend</literal> has the following standard tagged 
                values defined.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>derived</literal> (from the 
                    superclass, <literal>ModelElement</literal>). 
                    Values <literal>true</literal>, meaning the extend 
                    relationship is redundant&mdash;it can be formally 
                    derived from other elements, or <literal>
                    false</literal> meaning it cannot.</para>

                    <note>

                      <para lang="en">Derived extend relationships could have 
                      their value in analysis to introduce useful names 
                      or concepts.</para>

                    </note>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.extend_property_toolbar">

          <title>
			<phrase lang="en">Extend Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure of the 
                model. For a extend this will be the package containing 
                the extend.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/extension_point.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New extension point</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Extend 
                Relationship</primary></indexterm>
                <indexterm lang="en"><primary>New Extend 
                Relationship</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Extend 
                Relationship</secondary></indexterm>
                <para lang="en">This creates a new use case extension point 
                within the namespace of the current extend 
                relationship, with the current extend relationship as 
                its first extending relationship.</para>

                <tip>

                  <para lang="en">While it is perfectly valid to create extension 
                  points from an extend relationship, the created 
                  extension point will have no associated use case (it 
                  can subsequently be set up).</para>

                  <para lang="en">It would be more usual to instead create the 
                  extension point within a use case and subsequently 
                  link to it from an extend relationship (see 
                  <xref linkend="s2.ref.extend_property_fields"/> 
                  below).</para>

                </tip>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                extent relationship, navigating immediately to the 
                properties tab for that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the selected extend relationship 
                from the model.</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram. To delete 
                  a extend from the diagram, but keep it within the 
                  model, use the main menu <literal>Remove From 
                  Diagram</literal> (or press the Delete key).</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.extend_property_fields">

          <title>
			<phrase lang="en">Property Fields For Extend</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Extend Relationship 
                Name</primary></indexterm>
                <indexterm lang="en"><primary>Name</primary><secondary>of Extend 
                Relationship</secondary></indexterm>
                <para lang="en">Text box. The name of the extend 
                relationship.</para>

                <tip>

                  <para lang="en">It is quite common to leave extends unnamed in 
                  use case analysis.</para>

                </tip>

                <note>

                  <para lang="en">ArgoUML does not enforce any naming convention 
                  for extend relationships.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Namespace</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Extend Relationship 
                Namespace</primary></indexterm>
                <indexterm lang="en"><primary>Namespace</primary><secondary>of 
                Extend Relationship</secondary></indexterm>
                <para lang="en">Text box. Records the namespace for the extend 
                relationship. This is the package hierarchy.</para>

                <para lang="en">Button&nbsp;1 Double Click on the entry will navigate 
                to the package defining this namespace (or the model 
                for the top level namespace).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Base Use Case</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Extend Relationship Base Use 
                Case</primary></indexterm>
                <indexterm lang="en"><primary>Base Use 
                Case</primary><secondary>of Extend 
                Relationship</secondary></indexterm>
                <para lang="en">Text box. Shows the use case that is 
                being extended by this extend relationship. Button&nbsp;1 
                double
                click on this entry will navigate 
                to the base use case.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Extension</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Extend Relationship 
                Extension</primary></indexterm>
                <indexterm lang="en"><primary>Extension</primary><secondary>of 
                Extend Relationship</secondary></indexterm>
                <para lang="en">Text box. Show the use case that is 
                doing the extending through this extend relationship. 
                Button&nbsp;1 double click on this entry 
                will navigate 
                to the extension use case.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Extension Points</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Extend Relationship Extension 
                Point</primary></indexterm>
                <indexterm lang="en"><primary>Extension 
                Point</primary><secondary>of Extend 
                Relationship</secondary></indexterm>
                <para lang="en">Text box. Lists the extension points 
                of the base use case where the extension 
                will be applied if the condition holds.
                </para>

                <note>

                  <para lang="en">If the condition
                  is fulfilled, the sequence obeyed by the use-case instance 
                  is extended to include the sequence of the extending use case.
                  The different parts of the extending use case are inserted 
                  at the locations defined by the sequence of extension points 
                  in the relationship -- one part at each referenced 
                  extension point. 
                  Note that the condition is only evaluated once: 
                  at the first referenced extension point, 
                  and if it is fulfilled all of the extending use case 
                  is inserted in the original sequence.</para>
                  <para lang="en">Hence, the sequence of the extension points is 
                  irrelevant, except for the position of the first one; 
                  since that one determines 
                  where the condition is evaluated.
                  </para>

                </note>

                <para lang="en">Where an extension point has been created, 
                button&nbsp;1 double click will navigate to that 
                relationship. Button&nbsp;2 gives a pop up menu with
                the following
                entries.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Add</literal>. The <quote>Ad/Remove 
                    ExtensionPoints</quote> window opens. In this 
                    window it is possible to build a list of extension 
                    points.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>New</literal>. Add a new extension 
                    point in the list and navigate to it. The current 
                    extend relationship is added as the first in list 
                    of extending relationships of the new extension 
                    point.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Move Up</literal>. Only available 
                    where there are two or more extension points listed, and 
                    the extension point selected is not at the top. It moves 
                    the extension point up one position.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Move Down</literal>. Only available 
                    where there are two or more extension points listed, and 
                    the extension point selected is not at the bottom. It 
                    moves the extension point down one position.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Condition</literal></term>

              <listitem>

                <para lang="en">Text area. Multi-line textual description of any 
                condition attached to the extend relationship.</para>
                <para lang="en">The text entered here is shown on the diagram.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.include">

        <title>
			<phrase lang="en">Include</phrase>
		</title>

        <indexterm lang="en"><primary>Include Relationship</primary></indexterm>
        <para lang="en">Include is a relationship between two use cases. Where A 
        includes B, it means B described behavior that is to be 
        included in the description of the behavior of A at some point 
        (defined internally by A).</para>

        <para lang="en">Examples for a travel agent sales system might be the use 
        case for booking travel, which includes use cases for booking 
        flights and taking payment.</para>

        <para lang="en">Within the UML metamodel, <literal>Include</literal> is a 
        sub-class of <literal>Relationship</literal>.</para>

        <para lang="en">An include relationship is represented as a dotted link 
        with an open arrow head and a label <literal>
        &laquo;include&raquo;</literal> (see 
        <xref linkend="fig.ref.use_case_diagram"/>).</para>

        <sect2>

          <title>
			<phrase lang="en">Include Details Tabs</phrase>
		</title>

          <indexterm lang="en"><primary>Include Relationship Details 
          Tabs</primary></indexterm>
          <indexterm lang="en"><primary>Details Tabs</primary><secondary>for 
          Include Relationship</secondary></indexterm>
          <para lang="en">The details tabs that are active for include 
          relationships are as follows.</para>

          <note>

            <para lang="en">There is no source tab, since there is no source code 
            that could be generated for an include relationship.</para>

          </note>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.include_property_toolbar"/> and 
                <xref linkend="s2.ref.include_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. See 
                <xref linkend="s2.ref.documentation_tab"/>.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab</para>

                <note>

                  <para lang="en">
                    The values in the "bounds" field of the 
                    include relationships
                    are not editable, since they are determined 
                    by the properties of the endpoints of the line.
                  </para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Include</literal> has the following standard tagged 
                values defined.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>derived</literal> (from the 
                    superclass, <literal>ModelElement</literal>). 
                    Values <literal>true</literal>, meaning the include 
                    relationship is redundant&mdash;it can be formally 
                    derived from other elements, or <literal>
                    false</literal> meaning it cannot.</para>

                    <note>

                      <para lang="en">Derived include relationships could have 
                      their value in analysis to introduce useful names 
                      or concepts.</para>

                    </note>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.include_property_toolbar">

          <title>
			<phrase lang="en">Include Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure of the 
                model. For a include this will be the package 
                containing the include.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                include relationship, navigating immediately to the 
                properties tab for that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the selected include relationship 
                from the model.</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram. To delete 
                  a include from the diagram, but keep it within the 
                  model, use the main menu <literal>Remove From 
                  Diagram</literal> (or press the Delete key).</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.include_property_fields">

          <title>
			<phrase lang="en">Property Fields For Include</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Include Relationship 
                Name</primary></indexterm>
                <indexterm lang="en"><primary>Name</primary><secondary>of Include 
                Relationship</secondary></indexterm>
                <para lang="en">Text box. The name of the include 
                relationship.</para>

                <tip>

                  <para lang="en">It is quite common to leave include 
                  relationships unnamed in use case analysis.</para>

                </tip>

                <note>

                  <para lang="en">ArgoUML does not enforce any naming convention 
                  for include relationships.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Namespace</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Include Relationship 
                Namespace</primary></indexterm>
                <indexterm lang="en"><primary>Namespace</primary><secondary>of 
                Include Relationship</secondary></indexterm>
                <para lang="en">Text box. Records the namespace for the include. 
                This is the package hierarchy.</para>

                <para lang="en">Button&nbsp;1 click on the entry will navigate to the 
                package defining this namespace (or the model for the 
                top level namespace).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Base Use Case</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Include Relationship 
                Base</primary></indexterm>
                <indexterm lang="en"><primary>Base</primary><secondary>of Include 
                Relationship</secondary></indexterm>
                <para lang="en">Drop down selector. Records the use case that is 
                doing the including in this include relationship. 
                Button&nbsp;1 click on this entry will give a drop down menu 
                of all available use cases which may be selected by 
                button&nbsp;1 click.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Included Use Case</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Include Relationship Included Use 
                Case</primary></indexterm>
                <indexterm lang="en"><primary>Included Use 
                Case</primary><secondary>of Include 
                Relationship</secondary></indexterm>
                <para lang="en">Drop down selector. Records the use case that is 
                being included by this include relationship. Button&nbsp;1 
                click on this entry will give a drop down menu of all 
                available use cases (and an empty entry) which may be 
                selected by button&nbsp;1 click.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

    </chapter>

    <chapter id="ch.ref.entclass">

      <title>
			<phrase lang="en">Class Diagram Model Element Reference</phrase>
		</title>

      <indexterm lang="en"><primary>Class Diagram</primary></indexterm>
      <indexterm lang="en"><primary>Object Diagrams</primary></indexterm>
      <indexterm lang="en"><primary>Package Diagrams</primary></indexterm>
      <sect1>

        <title>
			<phrase lang="en">Introduction</phrase>
		</title>

        <para lang="en">This chapter describes each model element that can be created 
        within a class diagram. Note that some sub-model elements of 
        model elements on the diagram may not actually themselves appear on 
        the diagram.</para>

        <para lang="en">Class diagrams are used for only one of the UML static 
        structure diagrams, the class diagram itself. Object diagrams 
        are represented on the ArgoUML deployment diagram.</para>

        <para lang="en">In addition, ArgoUML uses the class diagram to show model 
        structure through the use of packages.</para>

        <para lang="en">There is a close relationship between this material and 
        the Properties Tab of the Details Pane (see 
        <xref linkend="s1.ref.proptab"/>). That section covers 
        Properties in general, in this chapter they are linked to 
        specific model elements.</para>

        <para lang="en"><xref linkend="fig.ref.class_diagram"/> shows a class 
        diagram with all possible model elements displayed.</para>

        <figure float="1" id="fig.ref.class_diagram">

          <title>
			<phrase lang="en">Possible model elements on a class diagram.</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/class_diagram.gif"
           format="GIF"/></imageobject></mediaobject></screenshot>
        </figure>

        <para lang="en"><xref linkend="fig.ref.package_diagram"/> shows a package 
        diagram with all possible model elements displayed.</para>

        <figure float="1" id="fig.ref.package_diagram">

          <title>
			<phrase lang="en">Possible model elements on a package diagram.</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/package_diagram.gif"
           format="GIF"/></imageobject></mediaobject></screenshot>
        </figure>

        <para lang="en"><xref linkend="fig.ref.datatype_diagram"/> shows a 
        datatype 
        diagram with a datatype and an enumeration displayed.</para>

        <figure float="1" id="fig.ref.datatype_diagram">

          <title>
			<phrase lang="en">Possible model elements on a datatype diagram.</phrase>
		</title>
          <!-- See ClassDiagram-Datatypes.zargo -->

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/classdiagram-datatypes.png"
           format="PNG"/></imageobject></mediaobject></screenshot>
        </figure>

        <para lang="en"><xref linkend="fig.ref.stereotype_diagram"/> shows a 
        stereotype definition
        diagram with all possible model elements displayed.</para>

        <figure float="1" id="fig.ref.stereotype_diagram">

          <title>
			<phrase lang="en">Possible model elements on a 
          stereotype definition diagram.</phrase>
		</title>
          <!-- See ClassDiagram-Datatypes.zargo -->

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/classdiagram-stereotype-definition.png"
           format="PNG"/></imageobject></mediaobject></screenshot>
        </figure>

        <sect2>

          <title>
			<phrase lang="en">Limitations Concerning Class Diagrams in 
          ArgoUML</phrase>
		</title>

          <para lang="en">Various limitations exist in V0.26 of ArgoUML 
          for stereotype definition diagrams. 
          E.g. the implementation does not allow 
          stereotype compartments
          to be shown on stereotype definition diagrams.</para>

          <para lang="en">Another variant of the class diagram within the UML standard 
          is the <emphasis>object diagram</emphasis>. There is 
          currently no support for objects or links within ArgoUML 
          class diagrams. Instead the ArgoUML deployment diagram does 
          have both objects and links, and can be used to draw object 
          diagrams.</para>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.package">

        <title>
			<phrase lang="en">Package</phrase>
		</title>

        <indexterm lang="en"><primary>Package</primary></indexterm>
        <para lang="en">The package is the main organizational model element within 
        ArgoUML. In the UML metamodel it is a sub-class of both 
        <literal>Namespace</literal> and <literal>
        GeneralizableElement</literal>.</para>

        <note>

          <para lang="en">ArgoUML also implements the UML <literal>
          Model</literal> model element as a sub-class of package, but 
          <emphasis>not</emphasis> the <literal>Subsystem</literal> 
          model element.</para>

        </note>

        <para lang="en">ArgoUML also implements some less common aspects of UML 
        model management. In particular the relationship UML 1.4 
        defines as <literal>Generalization</literal> and the sub-class 
        dependency <literal>Permission</literal> for use between 
        packages.</para>

        <sect2>

          <title>
			<phrase lang="en">Package Details Tabs</phrase>
		</title>

          <indexterm lang="en"><primary>Package Details Tabs</primary></indexterm>
          <indexterm lang="en"><primary>Details Tabs</primary><secondary>for 
          Package</secondary></indexterm>
          <para lang="en">The details tabs that are active for packages are as 
          follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.package_property_toolbar"/> and 
                <xref linkend="s2.ref.package_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. See 
                <xref linkend="s2.ref.documentation_tab"/>.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. The editable <literal>Bounds</literal> 
                field defines the bounding box for the package on the 
                diagram.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Standard tab. </para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Package</literal> has the following standard tagged 
                values defined.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>derived</literal> (from the 
                    superclass, <literal>ModelElement</literal>). 
                    Values <literal>true</literal>, meaning the package 
                    is redundant&mdash;it can be formally derived from other 
                    elements, or <literal>false</literal> meaning it 
                    cannot.</para>

                    <note>

                      <para lang="en">Derived packages still have their value in 
                      analysis to introduce useful names or concepts, 
                      and in design to avoid re-computation.</para>

                    </note>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.package_property_toolbar">

          <title>
			<phrase lang="en">Package Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/package.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Package</literal></term>

              <listitem>

                <para lang="en">This creates a new package within the package 
                (which appears on no diagram), navigating immediately 
                to the properties tab for that package.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/datatype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Datatype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Datatype</primary></indexterm>
                <indexterm lang="en"><primary>New Datatype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Datatype</secondary></indexterm>
                <para lang="en">This creates a new Datatype (see 
                <xref linkend="s1.ref.datatype"/>) for the selected 
                package, navigating immediately to the properties tab 
                for that datatype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/enumeration.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Enumeration</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Enumeration</primary></indexterm>
                <indexterm lang="en"><primary>New Enumeration</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Enumeration</secondary></indexterm>
                <para lang="en">This creates a new Enumeration (see 
                <xref linkend="s1.ref.enumeration"/>) for the selected 
                package, navigating immediately to the properties tab 
                for that enumeration.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                package, navigating immediately to the properties tab 
                for that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/tag_definition.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Tag Definition</literal></term>

              <listitem>

                <para lang="en">This creates a new tag definition (see 
                <xref linkend="s1.ref.tagdefinition"/>) within the 
                package 
                (which appears on no diagram), navigating immediately 
                to the properties tab for that tagdefinition.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete Package</literal></term>

              <listitem>

                <para lang="en">Deletes the package from the model.</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram. To delete 
                  a package from the diagram, but keep it within the 
                  model, use the main menu <literal>Remove From 
                  Diagram</literal> (or press the Delete key).</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.package_property_fields">

          <title>
			<phrase lang="en">Property Fields For Package</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Package Name</primary></indexterm>
                <indexterm lang="en"><primary>Name</primary><secondary>of 
                Package</secondary></indexterm>
                <para lang="en">Text box. The name of the package. The name of a 
                package, like all packages, is by convention all lower 
                case, not containing any punctuation marks.</para>

                <note>

                  <para lang="en">By default a new package has no name defined. 
                  The package will appear with the name <literal>(Unnamed 
                  Package)</literal> in the explorer.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Namespace</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Package 
                Namespace</primary></indexterm>
                <indexterm lang="en"><primary>Namespace</primary><secondary>of 
                Package</secondary></indexterm>
                <para lang="en">Drop down selector. Records the namespace for the 
                package. This is the package hierarchy.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Visibility</literal></term>

              <listitem>

                <para lang="en">Radio box, with four entries <literal>
                public</literal>, <literal>private</literal>, 
                <literal>protected</literal>, and
                <literal>package</literal>. Indicates whether the 
                package is visible outside the package.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Modifiers</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Package 
                Modifiers</primary></indexterm>
                <indexterm lang="en"><primary>Modifiers</primary><secondary>of 
                Package</secondary></indexterm>
                <para lang="en">Check box, with entries <literal>
                abstract</literal>, <literal>leaf</literal> and 
                <literal>root</literal>.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Abstract</literal> is used to 
                    declare that this package cannot be instantiated, 
                    but must always be specialized.</para>

                    <tip>

                      <para lang="en">The meaning of <literal>abstract</literal> 
                      applied to a package if not that clear. It might 
                      mean that the package contains interfaces or 
                      abstract classes without realizations. This is 
                      probably better handled through stereotyping of 
                      the package (for example <literal>
                      &laquo;facade&raquo;</literal>).</para>

                    </tip>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Leaf</literal> indicates that this 
                    package can have no further subpackages.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Root</literal> indicates that it is 
                    the top level package.</para>

                    <tip>

                      <para lang="en">Within ArgoUML <literal>Root</literal> only 
                      meaningfully applies to the Model, since all 
                      packages sit within the model. This could be used 
                      to emphasize that the Model is at the top 
                      level.</para>

                    </tip>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Generalizations</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Package 
                Generalizations</primary></indexterm>
                <indexterm lang="en">
                <primary>Generalizations</primary><secondary>of 
                Package</secondary></indexterm>
                <para lang="en">Text area. Lists any package that 
                <emphasis>generalizes</emphasis> this package.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the 
                generalization and opens its property tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Specializations</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Package 
                Specializations</primary></indexterm>
                <indexterm lang="en">
                <primary>Specializations</primary><secondary>of 
                Package</secondary></indexterm>
                <para lang="en">Text box. Lists any specialized package (i.e. for 
                which this package is a generalization.</para>

                <para lang="en">button&nbsp;1 double click navigates to the 
                generalization and opens its property tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Owned Elements</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Package Owned 
                Elements</primary></indexterm>
                <indexterm lang="en"><primary>Owned 
                Elements</primary><secondary>of 
                Package</secondary></indexterm>
                <para lang="en">Text area. A listing of all the packages, 
                classes, interfaces, datatypes, actors, use cases, 
                associations, generalizations, stereotypes, etc. within 
                the package.</para>

                <para lang="en">Button&nbsp;1 double click on any item listed here 
                navigates to that model element.</para>

              </listitem>

            </varlistentry>
            
            <varlistentry>
            
              <term><literal>Imported Elements</literal></term>
              
              <listitem>
                <indexterm lang="en"><primary>Package Imported 
                Elements</primary></indexterm>
                <indexterm lang="en"><primary>Imported 
                Elements</primary><secondary>of 
                Package</secondary></indexterm>
                <para lang="en">Text Area. A listing of all imported elements,
                i.e. elements that are owned by a different package, but 
                are explicitely made visible in this package.</para>
                
                <para lang="en">Button&nbsp;1 double click on any item listed here 
                navigates to that model element.
                Button&nbsp;2 gives a pop up menu with
                the following entries.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Add</literal>. The <quote>Add/Remove 
                    Imported Elements</quote> window opens. In this 
                    window it is possible to build a list of imported 
                    elements.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Remove</literal>.  
                    Removes the import.</para>

                  </listitem>

                </itemizedlist>

              </listitem>
              
            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.datatype_class">

        <title>
			<phrase lang="en">Datatype</phrase>
		</title>

        <para lang="en">Datatypes are not specific to packages or class diagrams, 
        and are discussed within the chapter on top level model elements 
        (see <xref linkend="s1.ref.datatype"/>).</para>

      </sect1>

      <sect1 id="s1.ref.enumeration_class">

        <title>
			<phrase lang="en">Enumeration</phrase>
		</title>

        <para lang="en">Enumeration are not specific to packages or class diagrams, 
        and are discussed within the chapter on top level model elements 
        (see <xref linkend="s1.ref.enumeration"/>).</para>

      </sect1>

      <sect1 id="s1.ref.stereotype_class">

        <title>
			<phrase lang="en">Stereotype</phrase>
		</title>

        <para lang="en">Stereotypes are not specific to packages or class 
        diagrams, and are discussed within the chapter on top level 
        model elements (see <xref linkend="s1.ref.stereotype"/>).</para>

      </sect1>

      <sect1 id="s1.ref.class_class">

        <title>
			<phrase lang="en">Class</phrase>
		</title>

        <indexterm lang="en"><primary>Class</primary></indexterm>
        <para lang="en">The class is the dominant model element on a class diagram. In 
        the UML metamodel it is a sub-class of <literal>
        Classifier</literal> and <literal>
        GeneralizableElement</literal>.</para>

        <para lang="en">A class is represented on a class diagram as a rectangle 
        with three compartments. The top compartment 
        displays the class name (and stereotypes), the second 
        compartment any attributes and the third any operations. These 
        last two compartments may optionally be hidden.</para>

        <sect2>

          <title>
			<phrase lang="en">Class Details Tabs</phrase>
		</title>

          <indexterm lang="en"><primary>Class Details Tabs</primary></indexterm>
          <indexterm lang="en"><primary>Details Tabs</primary><secondary>for 
          Class</secondary></indexterm>
          <para lang="en">The details tabs that are active for classes are as 
          follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.class_property_toolbar"/> and 
                <xref linkend="s2.ref.class_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. See 
                <xref linkend="s2.ref.documentation_tab"/>.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. The tick boxes, <literal>
                Attributes</literal> and <literal>Operations</literal> 
                allow the attributes and operations compartments to be 
                shown (the default) or hidden. This is a setting valid 
                for only the current diagram that shows the class. The 
                editable
                <literal>Bounds</literal> field defines the bounding 
                box for the package on the diagram.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Source</literal></term>

              <listitem>

                <para lang="en">Standard tab. This contains a template for the 
                class declaration and declarations of associated 
                classes.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Constraints</literal></term>

              <listitem>

                <para lang="en">Standard tab. There are no standard constraints 
                defined for <literal>Class</literal> within the UML 
                metamodel.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotypes</literal></term>

              <listitem>

                <para lang="en">Standard tab. </para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Class Tagged 
                Values</primary></indexterm>
                <indexterm lang="en"><primary>Tagged 
                Values</primary><secondary>of 
                Class</secondary></indexterm>
                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Class</literal> has the following standard tagged 
                values defined.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>persistence</literal> (from the 
                    superclass, <literal>Classifier</literal>). Values 
                    <literal>transitory</literal>, indicating state is 
                    destroyed when an instance is destroyed or <literal>
                    persistent</literal>, marking state is preserved 
                    when an instance is destroyed.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>semantics</literal> (from the 
                    superclass, <literal>Classifier</literal>). The 
                    value is a specification of the semantics of the 
                    class.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>derived</literal> (from the 
                    superclass, <literal>ModelElement</literal>). 
                    Values <literal>true</literal>, meaning the class 
                    is redundant&mdash;it can be formally derived from other 
                    elements, or <literal>false</literal> meaning it 
                    cannot.</para>

                    <note>

                      <para lang="en">Derived classes still have their value in 
                      analysis to introduce useful names or concepts, 
                      and in design to avoid re-computation.</para>

                    </note>

                  </listitem>

                </itemizedlist>

                <note>

                  <para lang="en">The UML <literal>Element</literal> metaclass 
                  from which all other model elements are derived includes 
                  the tagged element <literal>documentation</literal> 
                  which is handled by the <emphasis>documentation 
                  tab</emphasis> under ArgoUML</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Checklist</literal></term>

              <listitem>

                <para lang="en">Standard tab for a Classifier.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.class_property_toolbar">

          <title>
			<phrase lang="en">Class Property Toolbar</phrase>
		</title>

          <indexterm lang="en"><primary>Class Property 
          Toolbar</primary></indexterm>
          <indexterm lang="en"><primary>Property Toolbar</primary><secondary>for 
          Class</secondary></indexterm>
          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/attribute.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New attribute</literal></term>

              <listitem>

                <para lang="en">This creates a new attribute (see 
                <xref linkend="s1.ref.attribute"/>) within the class, 
                navigating immediately to the properties tab for that 
                attribute.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/operation.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New operation</literal></term>

              <listitem>

                <para lang="en">This creates a new operation (see 
                <xref linkend="s1.ref.operation"/>) within the class, 
                navigating immediately to the properties tab for that 
                operation.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/reception.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New reception</literal></term>

              <listitem>

                <para lang="en">This creates a new reception, navigating 
                immediately to the properties tab for that 
                reception.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/inner_class.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New inner class</literal></term>

              <listitem>

                <para lang="en">This creates a new inner class (which appears on 
                no diagram) within the class. This belongs to the class 
                and is restricted to the namespace of the class. It 
                exactly models the Java concept of inner class. As an 
                inner class it needs no attributes or operations, since 
                it shares those of its owner.</para>

                <note>

                  <para lang="en">Inner class is not a separate concept in UML. 
                  This is a convenient shorthand for creating a class 
                  that is restricted to the namespace of its owning 
                  class.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center" fileref="images/icons/class.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New class</literal></term>

              <listitem>

                <para lang="en">This creates a new class (which appears on no 
                diagram) within the same namespace as the current 
                class.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                class, navigating immediately to the properties tab for 
                that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the class from the model</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram. To delete 
                  a class from the diagram, but keep it within the 
                  model, use the main menu <literal>Remove From 
                  Diagram</literal> (or press the Delete key).</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.class_property_fields">

          <title>
			<phrase lang="en">Property Fields For Class</phrase>
		</title>

          <indexterm lang="en"><primary>Class Property 
          Fields</primary></indexterm>
          <indexterm lang="en"><primary>Property Fields</primary><secondary>for 
          Class</secondary></indexterm>
          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Class Name</primary></indexterm>
                <indexterm lang="en"><primary>Name</primary><secondary>of 
                Class</secondary></indexterm>
                <para lang="en">Text box. The name of the class. The name of a 
                class has a leading capital letter, with words 
                separated by <quote>bumpy caps</quote>.</para>

                <note>

                  <para lang="en">The ArgoUML critics will complain about class 
                  names that do not have an initial capital.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Namespace</literal></term>

              <listitem>

                <para lang="en">Drop down selector with navigation button. 
                Records and allows setting of 
                the namespace for the class. This is the package 
                hierarchy.</para>

                <para lang="en">Button&nbsp;1 click on the entry will move the class 
                to the selected namespace.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Modifiers</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Class 
                Modifiers</primary></indexterm>
                <indexterm lang="en"><primary>Modifiers</primary><secondary>of 
                Class</secondary></indexterm>
                <para lang="en">Check box, with entries <literal>
                Abstract</literal>, <literal>Leaf</literal>, <literal>
                Root</literal>, and <literal>Active</literal>.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Abstract</literal> is used to 
                    declare that this class cannot be instantiated, but 
                    must always be subclassed. The name of an abstract 
                    class is displayed in italics on the diagram.</para>

                    <caution>

                      <para lang="en">If a class has any abstract operations, 
                      then it should be declared abstract. ArgoUML will 
                      not enforce this.</para>

                    </caution>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Leaf</literal> indicates that this 
                    class cannot be further subclassed, while <literal>
                    Root</literal> indicates it can have no superclass. 
                    It is possible for a class to be both Abstract and 
                    Leaf, since its static operations may still be 
                    referenced.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Active</literal> indicates that this 
                    class exhibits dynamic behavior (and is thus 
                    associated with a state or activity diagram).</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Visibility</literal></term>

              <listitem>

                <para lang="en">Radio box, with four entries <literal>
                public</literal>, <literal>private</literal>, 
                <literal>protected</literal>, and
                <literal>package</literal>. Indicates whether the 
                class is visible outside the namespace.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Client Dependencies</literal></term>

              <listitem>

                <para lang="en">Text area. Lists the <quote>depending</quote> 
                ends of the relationship, i.e. the end that makes use 
                of the other end.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the dependency 
                and opens its property tab.</para>
                <para lang="en">Button&nbsp;2 click shows a pop-up menu with one entry
                <literal>Add...</literal> that
                opens a dialog box where you can add and remove 
                depending modelelements.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Supplier Dependencies</literal></term>

              <listitem>

                <para lang="en">Text area. Lists the <quote>supplying</quote> 
                ends of the relationship, i.e. the end supplying what 
                is needed by the other end.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the dependency 
                and opens its property tab.</para>
                <para lang="en">Button&nbsp;2 click shows a pop-up menu with one entry
                <literal>Add...</literal> that
                opens a dialog box where you can add and remove 
                dependent modelelements.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Generalizations</literal></term>

              <listitem>

                <para lang="en">Text area. Lists any class that 
                <emphasis>generalizes</emphasis> this class.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the 
                generalization and opens its property tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Specializations</literal></term>

              <listitem>

                <para lang="en">Text box. Lists any specialized class (i.e. for 
                which this class is a generalization).</para>

                <para lang="en">Button&nbsp;1 double click navigates to the 
                generalization and opens its property tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Attributes</literal></term>

              <listitem>

                <para lang="en">Text area. Lists all the attributes (see 
                <xref linkend="s1.ref.attribute"/>) defined for this 
                class. Button&nbsp;1 double click navigates to the selected 
                attribute. Button&nbsp;2 gives a pop up menu with two 
                entries, which allow reordering the attributes.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Move Up</literal>. Only available 
                    where there are two or more attributes listed, and 
                    the attribute selected is not at the top. It moves 
                    the attribute up one position.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Move Down</literal>. Only available 
                    where there are two or more attributes listed, and 
                    the attribute selected is not at the bottom. It 
                    moves the attribute down one position.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Association Ends</literal></term>

              <listitem>

                <para lang="en">Text box. Lists any association ends (see 
                <xref linkend="s1.ref.association_class"/>) of 
                associations connected to this class.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the selected 
                entry.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Operations</literal></term>

              <listitem>

                <para lang="en">Text area. Lists all the operations (see 
                <xref linkend="s1.ref.operation"/>) defined on this 
                class. Button&nbsp;1 click navigates to the selected 
                operation. Button&nbsp;2 gives a pop up menu with two 
                entries, which allow reordering the operations.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Move Up</literal>. Only available 
                    where there are two or more operations listed, and 
                    the operation selected is not at the top. It moves 
                    the operation up one position.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Move Down</literal>. Only available 
                    where there are two or more operations listed, and 
                    the operation selected is not at the bottom. It 
                    moves the operation down one position.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Owned Elements</literal></term>

              <listitem>

                <para lang="en">Text area. A listing of model elements contained 
                within the classes&apos; namespace. This is where any 
                inner class (see 
                <xref linkend="s2.ref.class_property_toolbar"/>) will 
                appear</para>

                <para lang="en">Button&nbsp;1 double click on any of the model elements 
                navigates to that model element.</para>

                <tip>

                  <para lang="en">Most namespace hierarchies should be managed 
                  through the package mechanism. Namespace hierarchies 
                  through classes are best restricted to inner classes. 
                  Conceivable datatypes, signals and interfaces could 
                  also appear here, but actors and use cases would seem 
                  of no value.</para>

                </tip>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.attribute">

        <title>
			<phrase lang="en">Attribute</phrase>
		</title>

        <indexterm lang="en"><primary>Attribute</primary></indexterm>
        <para lang="en">Attribute is a named slot within a class (or other 
        <literal>Classifier</literal>) describing a range of values 
        that may be held by instances of the class. In the UML 
        metamodel it is a sub-class of <literal>
        StructuralFeature</literal> which is itself a sub-class of 
        <literal>Feature</literal>.</para>

        <para lang="en">An attribute is represented in the diagram on a single 
        line within the attribute compartment of the class. Its syntax 
        is as follows:</para>

        <blockquote>

          <para lang="en"><emphasis>visibility</emphasis> 
          <emphasis>attributeName</emphasis> <literal>:</literal> 
          <emphasis>type</emphasis> [<literal>=</literal> 
          <emphasis>initialValue</emphasis>]</para>

        </blockquote>

        <para lang="en"><emphasis>visibility</emphasis> is <literal>+</literal>, 
        <literal>#</literal>, <literal>-</literal> or 
        <literal>~</literal> corresponding to 
        <literal>public</literal>, <literal>protected</literal>, 
        <literal>private</literal>, or <literal>package</literal> 
        visibility respectively.</para>

        <para lang="en"><emphasis>attributeName</emphasis> is the actual name of 
        the attribute being declared.</para>

        <para lang="en"><emphasis>type</emphasis> is the type (UML datatype, 
        class or interface) declared for the attribute.</para>

        <para lang="en"><emphasis>initialValue</emphasis> is any initial value to 
        be given to the attribute when an instance of the class is 
        created. This may be overridden by any constructor 
        operation.</para>

        <para lang="en">In addition any attribute declared static will have its 
        whole entry underlined on the diagram.</para>

        <sect2 id="s2.ref.attribute_details_tabs">

          <title>
			<phrase lang="en">Attribute Details Tabs</phrase>
		</title>

          <indexterm lang="en"><primary>Attribute Details 
          Tabs</primary></indexterm>
          <indexterm lang="en"><primary>Details Tabs</primary><secondary>for 
          Attribute</secondary></indexterm>
          <para lang="en">The details tabs that are active for attributes are as 
          follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.attribute_property_toolbar"/> and 
                <xref linkend="s2.ref.attribute_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. See 
                <xref linkend="s2.ref.documentation_tab"/>.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Constraints</literal></term>

              <listitem>

                <para lang="en">Standard tab. There are no standard constraints 
                defined for <literal>Attribute</literal> within the UML 
                metamodel.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Standard tab. </para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Attribute Tagged 
                Values</primary></indexterm>
                <indexterm lang="en"><primary>Tagged 
                Values</primary><secondary>of 
                Attribute</secondary></indexterm>
                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Attribute</literal> has the following standard tagged 
                values defined.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>transient</literal>.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>volatile</literal>. This is an 
                    ArgoUML extension to the UML 1.4 standard to 
                    indicate that this attribute is realized in some 
                    volatile form (for example it will be a memory 
                    mapped control register).</para>

                  </listitem>

                </itemizedlist>

                <note>

                  <para lang="en">The UML <literal>Element</literal> metaclass 
                  from which all other model elements are derived includes 
                  the tagged element <literal>documentation</literal> 
                  which is handled by the <emphasis>documentation 
                  tab</emphasis> under ArgoUML</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Checklist</literal></term>

              <listitem>

                <para lang="en">Standard tab for a Attribute.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.attribute_property_toolbar">

          <title>
			<phrase lang="en">Attribute Property Toolbar</phrase>
		</title>

          <indexterm lang="en"><primary>Attribute Property 
          Toolbar</primary></indexterm>
          <indexterm lang="en"><primary>Property Toolbar</primary><secondary>for 
          Attribute</secondary></indexterm>
          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up_previous.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go to Previous</literal></term>

              <listitem>

                <para lang="en">Navigate to the previous attribute 
                of the class that owns them. 
                This button is downlighted 
                if the current attribute is the first one.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up_next.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go to Next</literal></term>

              <listitem>

                <para lang="en">Navigate to the next attribute 
                of the class that owns them. 
                This button is downlighted 
                if the current attribute is the last one.</para>

              </listitem>

            </varlistentry>


            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/attribute.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New attribute</literal></term>

              <listitem>

                <para lang="en">This creates a new attribute within the owning 
                class of the current attribute, navigating immediately 
                to the properties tab for that attribute.</para>

                <tip>

                  <para lang="en">This is a very convenient way to add a number 
                  of attributes, one after the other, to a class.</para>

                </tip>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/datatype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Datatype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Datatype</primary></indexterm>
                <indexterm lang="en"><primary>New Datatype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Datatype</secondary></indexterm>
                <para lang="en">This creates a new Datatype (see 
                <xref linkend="s1.ref.datatype"/>) for the selected 
                attribute, navigating immediately to the properties tab 
                for that datatype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/enumeration.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Enumeration</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Enumeration</primary></indexterm>
                <indexterm lang="en"><primary>New Enumeration</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Enumeration</secondary></indexterm>
                <para lang="en">This creates a new Enumeration (see 
                <xref linkend="s1.ref.enumeration"/>) for the  
                package that owns the class,
                navigating immediately to the properties tab 
                for that enumeration.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                attribute, navigating immediately to the properties tab 
                for that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the attribute from the model</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram. If desired 
                  the whole attribute compartment can be hidden on the 
                  diagram using the <emphasis>style</emphasis> tab (see 
                  <xref linkend="s2.ref.attribute_property_toolbar"/>) 
                  or the button&nbsp;2 pop up menu for the class on the 
                  diagram.</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.attribute_property_fields">

          <title>
			<phrase lang="en">Property Fields For Attribute</phrase>
		</title>

          <indexterm lang="en"><primary>Attribute Property 
          Fields</primary></indexterm>
          <indexterm lang="en"><primary>Property Fields</primary><secondary>for 
          Attribute</secondary></indexterm>
          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Attribute Name</primary></indexterm>
                <indexterm lang="en"><primary>Name</primary><secondary>of 
                Attribute</secondary></indexterm>
                <para lang="en">Text box. The name of the attribute. The name of 
                a attribute has a leading lower case letter, with words 
                separated by <quote>bumpy caps</quote>.</para>

                <note>

                  <para lang="en">The ArgoUML critics will complain about 
                  attribute names that do not have an initial lower 
                  case letter.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Owner</literal></term>

              <listitem>

                <para lang="en">Text box. Records the class which contains this 
                attribute.</para>

                <para lang="en">Button&nbsp;1 double click on the entry will navigate 
                to the class.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Multiplicity</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Attribute 
                Multiplicity</primary></indexterm>
                <indexterm lang="en"><primary>Multiplicity</primary><secondary>of 
                Attribute</secondary></indexterm>
                <para lang="en">Editable drop down selector with checkmark. 
                The default value 
                (1) is that there is one instance of this attribute for 
                each instance of the class, i.e. it is a scalar. The 
                drop down provides a number of commonly used 
                specifications for non-scalar attributes.</para>
                <para lang="en">When the checkmark is unchecked, 
                then the multiplicity remains undefind in the model
                (and the drop down selector is downlighted).</para>

                <note>

                  <para lang="en">ArgoUML presents a number of predefined ranges 
                  for multiplicity for easy access. The user may also 
                  enter any user defined range that follows the UML 
                  syntax, such as <quote>1..3,7,10</quote>.</para>

                  <para lang="en">The value <literal>1..1</literal> is equivalent 
                  to the default (exactly one scalar instance). The 
                  selection <literal>0..1</literal> indicates an 
                  optional scalar attribute.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Visibility</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Attribute 
                Visibility</primary></indexterm>
                <indexterm lang="en"><primary>Visibility</primary><secondary>of 
                Attribute</secondary></indexterm>
                <para lang="en">Radio box, with entries <literal>
                public</literal>, <literal>private</literal>, 
                <literal>protected</literal> and 
                <literal>package</literal>.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>public</literal>. The attribute is 
                    available to any model element that can see the owning 
                    class.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>private</literal>. The attribute is 
                    available only to the owning class (and any inner 
                    classes).</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>protected</literal>. The attribute 
                    is available only to the owning class, or model elements 
                    that are subclasses of the owning class.</para>

                  </listitem>


                  <listitem>

                    <para lang="en"><literal>package</literal>. The attribute 
                    is available only to model elements contained in the
                    same package.</para>

                  </listitem>
                  
                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Changeability</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Attribute 
                Changeability</primary></indexterm>
                <indexterm lang="en">
                <primary>Changeability</primary><secondary>of 
                Attribute</secondary></indexterm>
                <para lang="en">Radio box, with entries <literal>
                addOnly</literal>, <literal>changeable</literal>, and 
                <literal>frozen</literal>.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>addOnly</literal>. Meaningful only 
                    if the multiplicity is not fixed to a single value. 
                    Additional values may be added to the set of 
                    values, but once created a value may not be removed 
                    or altered.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>changeable</literal>. There are no 
                    restrictions of modification.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>frozen</literal>. Also named 
                    <quote>immutable</quote>. The value of the 
                    attribute may not change during the lifetime of the 
                    owner class. The value must be set at object 
                    creation, and may never change after that. This 
                    implies that there is usually an argument for this 
                    value in a constructor and that there is no 
                    operation that updates this value.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Modifiers</literal></term>

              <listitem>

                <para lang="en">Check box for <literal>static</literal>. If 
                unchecked (the defaults) then the attribute has 
                <quote>instance scope</quote>. If checked, then the 
                attribute is static, i.e. it has <quote>class 
                scope</quote>. Static attributes are indicated on the 
                diagram by underlining.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Type</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Attribute Type</primary></indexterm>
                <indexterm lang="en"><primary>Type</primary><secondary>of 
                Attribute</secondary></indexterm>
                <para lang="en">Drop down selector with navigation button. 
                The type of this attribute. 
                This can be any UML <literal>Classifier</literal>, 
                although in practice only <literal>Class</literal>, 
                <literal>DataType</literal>, or <literal>
                Interface</literal> make any sense.</para>
                
                <para lang="en">Pressing the navigation button
                will navigate to the property panel for the 
                currently selected type. (see 
                <xref linkend="s1.ref.class_class"/>, 
                <xref linkend="s1.ref.datatype_class"/> and 
                <xref linkend="s1.ref.interface_class"/>).</para>

                <note>

                  <para lang="en">A type must be declared (it can be <literal>
                  void</literal>). By default ArgoUML supplies <literal>
                  int</literal> as the type.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Initial Value</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Attribute Initial 
                Value</primary></indexterm>
                <indexterm lang="en"><primary>Initial 
                Value</primary><secondary>of 
                Attribute</secondary></indexterm>
                <para lang="en">Text box with 2 compartments. 
                This allows you to set 
                an initial value for the attribute if desired (this is 
                optional). The drop down menu provides access to the 
                common values <literal>0</literal>, <literal>
                1</literal>, <literal>2</literal>, and <literal>
                null</literal>.</para>
                
                <para lang="en">The left hand side of this field contains 
                the body of the expression that forms the initial value.
                The right hand side defines 
                the language in which the expression is written.</para>
                
                <para lang="en">Hovering the mouse pointer over these fields, 
                reveals a tooltip <literal>Body</literal> or 
                <literal>Language</literal>, 
                to help remember which is which.</para>

                <caution>

                  <para lang="en">Any constructor operation may ignore this 
                  initial value.</para>

                </caution>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.operation">

        <title>
			<phrase lang="en">Operation</phrase>
		</title>

        <indexterm lang="en"><primary>Operation</primary></indexterm>
        <para lang="en">An operation is a service that can be requested from an 
        object to effect behavior. In the UML metamodel it is a 
        sub-class of <literal>BehavioralFeature</literal> which is 
        itself a sub-class of <literal>Feature</literal>.</para>

        <para lang="en">In the diagram, an operation is represented on a single 
        line within the operation compartment of the class. Its syntax 
        is as follows:</para>

        <blockquote>

          <para lang="en">visibility name (parameter list) : 
          return-type-expression {property-string}</para>

        </blockquote>

        <para lang="en">You can edit this line directly in the diagram, by 
        double-clicking on it. All elements are optional and, if left 
        unspecified, the old values will be preserved.</para>

        <para lang="en">A <emphasis>stereotype</emphasis> can be given between 
        any two elements in the line in the format: <literal>
        &lt;&lt;stereotype&gt;&gt;</literal>.</para>

        <para lang="en">The following properties are recognized to have special 
        meaning: abstract, concurrency, concurrent, guarded, leaf, 
        query, root and sequential.</para>

        <para lang="en">The <emphasis>visibility</emphasis> is <literal>
        +</literal>, <literal>#</literal>, <literal>-</literal> or
        <literal>~</literal> 
        corresponding to <literal>public</literal>, <literal>
        protected</literal>, <literal>private</literal> visibility,
        or <literal>package</literal> visibility 
        respectively.</para>

        <para lang="en"><literal>static</literal> and <literal>final</literal> 
        optionally appear if the operation has those modifiers. Any 
        operation declared static will have its whole entry underlined 
        on the diagram.</para>

        <para lang="en">There may be zero or more entries in the 
        <emphasis>parameter list</emphasis> separated by commas. Every 
        entry is a pair of the form:</para>

        <blockquote>

          <para lang="en"><emphasis>name</emphasis> <literal>:</literal> 
          <emphasis>type</emphasis></para>

        </blockquote>

        <para lang="en">The <emphasis>return-type-expression</emphasis> is the 
        type (UML datatype, class or interface) of the result 
        returned.</para>

        <para lang="en">Finally the whole entry is shown in italics if the 
        operation is declared abstract.</para>

        <sect2>

          <title>
			<phrase lang="en">Operation Details Tabs</phrase>
		</title>

          <indexterm lang="en"><primary>Operation Details 
          Tabs</primary></indexterm>
          <indexterm lang="en"><primary>Details Tabs</primary><secondary>for 
          Operation</secondary></indexterm>
          <para lang="en">The details tabs that are active for operations are as 
          follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.operation_property_toolbar"/> and 
                <xref linkend="s2.ref.operation_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. See 
                <xref linkend="s2.ref.documentation_tab"/>.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. The <literal>Bounds:</literal> 
                field does allow editing, but the changes have no 
                effect.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Source</literal></term>

              <listitem>

                <para lang="en">Standard tab. This contains a declaration for the 
                operation.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Constraints</literal></term>

              <listitem>

                <para lang="en">Standard tab. There are no standard constraints 
                defined for <literal>Operation</literal> within the UML 
                metamodel.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Operation Tagged 
                Values</primary></indexterm>
                <indexterm lang="en"><primary>Tagged 
                Values</primary><secondary>of 
                Operation</secondary></indexterm>
                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Operation</literal> has the following standard tagged 
                values defined.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>semantics</literal>. The value is a 
                    specification of the semantics of the 
                    operation.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>derived</literal> (from the 
                    superclass, <literal>ModelElement</literal>). 
                    Values <literal>true</literal>, meaning the 
                    operation is redundant&mdash;it can be formally derived 
                    from other elements, or <literal>false</literal> 
                    meaning it cannot.</para>

                    <note>

                      <para lang="en">Derived operations still have their value 
                      in analysis to introduce useful names or 
                      concepts, and in design to avoid 
                      re-computation.</para>

                    </note>

                  </listitem>

                </itemizedlist>

                <note>

                  <para lang="en">The UML <literal>Element</literal> metaclass 
                  from which all other model elements are derived includes 
                  the tagged element <literal>documentation</literal> 
                  which is handled by the <emphasis>documentation 
                  tab</emphasis> under ArgoUML</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Checklist</literal></term>

              <listitem>

                <para lang="en">Standard tab for an Operation.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.operation_property_toolbar">

          <title>
			<phrase lang="en">Operation Property Toolbar</phrase>
		</title>

          <indexterm lang="en"><primary>Operation Property 
          Toolbar</primary></indexterm>
          <indexterm lang="en"><primary>Property Toolbar</primary><secondary>for 
          Operation</secondary></indexterm>
          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/operation.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New operation</literal></term>

              <listitem>

                <para lang="en">This creates a new operation within the owning 
                class of the current operation, navigating immediately 
                to the properties tab for that operation.</para>

                <tip>

                  <para lang="en">This is a very convenient way to add a number 
                  of operations, one after the other, to a class.</para>

                </tip>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/parameter.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New parameter</literal></term>

              <listitem>

                <para lang="en">This creates a new parameter for the operation, 
                navigating immediately to the properties tab for that 
                parameter.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/signal.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New raised signal</literal></term>

              <listitem>

                <para lang="en">This creates a new raised signal for the 
                operation, navigating immediately to the properties tab 
                for that raised signal.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/datatype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Datatype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Datatype</primary></indexterm>
                <indexterm lang="en"><primary>New Datatype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Datatype</secondary></indexterm>
                <para lang="en">This creates a new Datatype (see 
                <xref linkend="s1.ref.datatype"/>) in the namespace of 
                the owner of the operation, navigating immediately to 
                the properties tab for that datatype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                operation, navigating immediately to the properties tab 
                for that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the operation from the model</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram. If desired 
                  the whole operation compartment can be hidden on the 
                  diagram using the <emphasis>presentation</emphasis> 
                  tab (see 
                  <xref linkend="s2.ref.operation_property_toolbar"/>) 
                  or the button&nbsp;2 pop up menu for the class on the 
                  diagram.</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.operation_property_fields">

          <title>
			<phrase lang="en">Property Fields For Operation</phrase>
		</title>

          <indexterm lang="en"><primary>Operation Property 
          Fields</primary></indexterm>
          <indexterm lang="en"><primary>Property Fields</primary><secondary>for 
          Operation</secondary></indexterm>
          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Operation Name</primary></indexterm>
                <indexterm lang="en"><primary>Name</primary><secondary>of 
                Operation</secondary></indexterm>
                <para lang="en">Text box. The name of the operation. The name of 
                an operation has a leading lower case letter, with 
                words separated by <quote>bumpy caps</quote>.</para>

                <note>

                  <para lang="en">The ArgoUML critics will complain about 
                  operation names that do not have an initial lower 
                  case letter.</para>

                </note>

                <tip>

                  <para lang="en">If you wish to follow the Java convention of 
                  constructors having the same name as the class, you 
                  will violate this rule. Silence the critic by setting 
                  the stereotype <literal>create</literal> for the 
                  constructor operation.</para>

                </tip>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Operation 
                Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Stereotype</primary><secondary>of 
                Operation</secondary></indexterm>
                <para lang="en">Drop down selector. There are two UML standard 
                stereotypes for <literal>Operation</literal> (from the 
                parent metaclass, <literal>
                BehavioralFeature</literal>), <literal>create</literal> 
                and <literal>destroy</literal>.</para>

                <tip>

                  <para lang="en">You should use <literal>create</literal> as the 
                  stereotype for constructors, and <literal>
                  destroy</literal> for destructors (which are called 
                  <quote>finalize</quote> methods under Java).</para>

                </tip>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Navigate Stereotype</literal></term>

              <listitem>

                <para lang="en"><guiicon><inlinemediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/icons/navigate_stereotype.gif"
                 format="GIF"/></imageobject></inlinemediaobject></guiicon> 
                icon. If a stereotype has been selected, clicking 
                button&nbsp;1 will navigate to the stereotype property panel 
                (see <xref linkend="s1.ref.stereotype_class"/>).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Owner</literal></term>

              <listitem>

                <para lang="en">Text box. Records the class which contains this 
                operation.</para>

                <para lang="en">Button&nbsp;1 double click on the entry will navigate 
                to the class.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Visibility</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Operation 
                Visibility</primary></indexterm>
                <indexterm lang="en"><primary>Visibility</primary><secondary>of 
                Operation</secondary></indexterm>
                <para lang="en">Radio box, with entries <literal>
                public</literal>, <literal>private</literal>,  
                <literal>protected</literal> and
                <literal>package</literal>.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>public</literal>. The operation is 
                    available to any model element that can see the owning 
                    class.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>private</literal>. The operation is 
                    available only to the owning class (and any inner 
                    classes).</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>protected</literal>. The operation 
                    is available only to the owning class, or model elements 
                    that are subclasses of the owning class.</para>

                  </listitem>
                  <listitem>

                    <para lang="en"><literal>package</literal>. The operation 
                    is available only model elements contained in the 
                    same package.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Modifiers</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Operation 
                Modifiers</primary></indexterm>
                <indexterm lang="en"><primary>Modifiers</primary><secondary>of 
                Operation</secondary></indexterm>
                <para lang="en">Check box, with entries <literal>
                abstract</literal>, <literal>leaf</literal>, <literal>
                root</literal>, <literal>query</literal>, and <literal>
                static</literal>.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>abstract</literal>. This operation 
                    has no implementation with this class. The 
                    implementation must be provided by a 
                    subclass.</para>

                    <important>

                      <para lang="en">Any class with an abstract operation must 
                      itself be declared abstract.</para>

                    </important>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>leaf</literal>. The implementation 
                    of this operation must not be overridden by any 
                    subclass.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>root</literal>. The declaration of 
                    this operation must not override a declaration of 
                    the operation from a superclass.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>query</literal>. This indicates that 
                    the operation must have no side effects (i.e. it 
                    must not change the state of the system). It can 
                    only return a value.</para>

                    <caution>

                      <para lang="en">Operations for user defined datatypes must 
                      always check this modifier.</para>

                    </caution>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>static</literal>. There is only one 
                    instance of this operation associated with the 
                    class (as opposed to one for each instance of the 
                    class). This is the <literal>OwnerScope</literal> 
                    attribute of a <literal>Feature</literal> metaclass 
                    within UML. Any operation declared static is shown 
                    underlined on the class diagram.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Concurrency</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Operation 
                Concurrency</primary></indexterm>
                <indexterm lang="en"><primary>Concurrency</primary><secondary>of 
                Operation</secondary></indexterm>
                <para lang="en">Radio box, with entries <literal>
                guarded</literal>, <literal>sequential</literal>, and 
                <literal>concurrent</literal>.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>guarded</literal>. Multiple calls 
                    from concurrent threads may occur simultaneously to 
                    one instance (on any guarded operation), but only 
                    one is allowed to commence. The others are blocked 
                    until the performance of the first operation is 
                    complete.</para>

                    <caution>

                      <para lang="en">It is up to the system designer to ensure 
                      that deadlock cannot occur. It is the 
                      responsibility of the operation to implement the 
                      blocking behavior (as opposed to the 
                      system).</para>

                    </caution>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>sequential</literal>. Only one call 
                    to an instance (of the class with the operation) 
                    may be outstanding at any one time. There is no 
                    protection, and no guarantee of behavior if the 
                    system violates this rule.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>concurrent</literal>. Multiple calls 
                    to one instance may execute at the same time. The 
                    operation is responsible for ensuring correct 
                    behavior. This must be managed even if there are 
                    other sequential or synchronized (guarded) 
                    operations executing at the time.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Parameter</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Operation 
                Parameter</primary></indexterm>
                <indexterm lang="en"><primary>Parameter</primary><secondary>of 
                Operation</secondary></indexterm>
                <para lang="en">Text area, with entries for all the parameters of 
                the operation (see <xref linkend="s1.ref.parameter"/>). 
                A new operation is always created with one new 
                parameter, <literal>return</literal> to define the 
                return type of the operation.</para>

                <para lang="en">Button&nbsp;1 double click on any of the parameters 
                navigates to that parameter. Button&nbsp;2 click brings up a 
                pop up menu with two entries.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Move Up</literal>. Only available 
                    where there are two or more parameters, and the 
                    parameter selected is not at the top. It is moved 
                    up one position.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Move Down</literal>. Only available 
                    where there are two or more parameters listed, and 
                    the parameter selected is not at the bottom. It is 
                    moved down one position.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Raised Signals</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Operation Raised 
                Signals</primary></indexterm>
                <indexterm lang="en"><primary>Raised 
                Signals</primary><secondary>of 
                Operation</secondary></indexterm>
                <para lang="en">Text area, with entries for all the signals (see 
                <xref linkend="s1.ref.signal"/>) that can be raised by 
                the operation.</para>

                <caution>

                  <para lang="en">ArgoUML at present (V0.18) has limited support 
                  for signals. In particular they are not linked to 
                  signal events that could drive state machines.</para>

                </caution>

                <para lang="en">Button&nbsp;1 double click on any of the signals 
                navigates to that parameter.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.parameter">

        <title>
			<phrase lang="en">Parameter</phrase>
		</title>

        <indexterm lang="en"><primary>Parameter</primary></indexterm>
        <para lang="en">A parameter is a variable that can be passed. In the UML 
        metamodel it is a sub-class of <literal>
        ModelElement</literal>.</para>

        <para lang="en">A parameter is represented within the operation 
        declaration in the operation compartment of a class as 
        follows.</para>

        <blockquote>

          <para lang="en"><emphasis>name</emphasis> <literal>:</literal> 
          <emphasis>type</emphasis></para>

        </blockquote>

        <para lang="en"><emphasis>name</emphasis> is the name of the 
        parameter.</para>

        <para lang="en"><emphasis>type</emphasis> is the type (UML datatype, 
        class or interface) of the parameter.</para>

        <para lang="en">The exception is any parameter representing a return 
        value, whose type only is shown at the end of the operation 
        declaration.</para>

        <sect2>

          <title>
			<phrase lang="en">Parameter Details Tabs</phrase>
		</title>

          <indexterm lang="en"><primary>Parameter Details 
          Tabs</primary></indexterm>
          <indexterm lang="en"><primary>Details Tabs</primary><secondary>for 
          Parameter</secondary></indexterm>
          <para lang="en">The details tabs that are active for parameters are as 
          follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.parameter_property_toolbar"/> and 
                <xref linkend="s2.ref.parameter_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. See 
                <xref linkend="s2.ref.documentation_tab"/>.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Source</literal></term>

              <listitem>

                <para lang="en">Standard tab. This contains a declaration for the 
                parameter.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Parameter Tagged 
                Values</primary></indexterm>
                <indexterm lang="en"><primary>Tagged 
                Values</primary><secondary>of 
                Parameter</secondary></indexterm>
                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Parameter</literal> has the following standard tagged 
                values defined.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>derived</literal> (from the 
                    superclass, <literal>ModelElement</literal>). 
                    Values <literal>true</literal>, meaning the 
                    parameter is redundant&mdash;it can be formally derived 
                    from other elements, or <literal>false</literal> 
                    meaning it cannot.</para>

                    <caution>

                      <para lang="en">A derived parameter is a meaningless 
                      concept.</para>

                    </caution>

                  </listitem>

                </itemizedlist>

                <note>

                  <para lang="en">The UML <literal>Element</literal> metaclass 
                  from which all other model elements are derived includes 
                  the tagged element <literal>documentation</literal> 
                  which is handled by the <emphasis>documentation 
                  tab</emphasis> under ArgoUML</para>

                </note>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.parameter_property_toolbar">

          <title>
			<phrase lang="en">Parameter Property Toolbar</phrase>
		</title>

          <indexterm lang="en"><primary>Parameter Property 
          Toolbar</primary></indexterm>
          <indexterm lang="en"><primary>Property Toolbar</primary><secondary>for 
          Parameter</secondary></indexterm>
          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/parameter.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New parameter</literal></term>

              <listitem>

                <para lang="en">This creates a new parameter for the for the same 
                operation as the current parameter, navigating 
                immediately to the properties tab for that 
                parameter.</para>

                <tip>

                  <para lang="en">This is a convenient way to add a series of 
                  parameters for the same operation.</para>

                </tip>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/datatype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Datatype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Datatype</primary></indexterm>
                <indexterm lang="en"><primary>New Datatype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Datatype</secondary></indexterm>
                <para lang="en">This creates a new Datatype (see 
                <xref linkend="s1.ref.datatype"/>) in the namespace of 
                the owner of the operation of the parameter, navigating 
                immediately to the properties tab for that 
                datatype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                parameter, navigating immediately to the properties tab 
                for that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the parameter from the model</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram. If desired 
                  the whole operation compartment can be hidden on the 
                  diagram using the <emphasis>presentation</emphasis> 
                  tab or the button&nbsp;2 pop up menu for the class on the 
                  diagram.</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.parameter_property_fields">

          <title>
			<phrase lang="en">Property Fields For Parameter</phrase>
		</title>

          <indexterm lang="en"><primary>Parameter Property 
          Fields</primary></indexterm>
          <indexterm lang="en"><primary>Property Fields</primary><secondary>for 
          Parameter</secondary></indexterm>
          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Parameter Name</primary></indexterm>
                <indexterm lang="en"><primary>Name</primary><secondary>of 
                Parameter</secondary></indexterm>
                <para lang="en">Text box. The name of the parameter. By 
                convention, the name of a parameter has a leading lower 
                case letter, with words separated by <quote>bumpy 
                caps</quote>.</para>

                <note>

                  <para lang="en">The ArgoUML critics do not complain about 
                  parameter names that do not have an initial lower 
                  case letter.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Parameter 
                Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Stereotype</primary><secondary>of 
                Parameter</secondary></indexterm>
                <para lang="en">Drop down selector. There are no UML standard 
                stereotypes for <literal>Parameter</literal>.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Navigate Stereotype</literal></term>

              <listitem>

                <para lang="en"><guiicon><inlinemediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/icons/navigate_stereotype.gif"
                 format="GIF"/></imageobject></inlinemediaobject></guiicon> 
                icon. If a stereotype has been selected, this will 
                navigate to the stereotype property panel (see 
                <xref linkend="s1.ref.stereotype"/>).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Owner</literal></term>

              <listitem>

                <para lang="en">Text box. Records the operation which contains 
                this parameter.</para>

                <para lang="en">Button&nbsp;1 double click on the entry will navigate 
                to the operation.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Type</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Parameter Type</primary></indexterm>
                <indexterm lang="en"><primary>Type</primary><secondary>of 
                Parameter</secondary></indexterm>
                <para lang="en">Drop down selector. The type of this parameter. 
                This can be any UML <literal>Classifier</literal>, 
                although in practice only <literal>Class</literal>, 
                <literal>DataType</literal>, or <literal>
                Interface</literal> make any sense.</para>

                <note>

                  <para lang="en">A type must be declared (it can be <literal>
                  void</literal>, but this only makes sense for a 
                  return parameter). By default ArgoUML supplies 
                  <literal>int</literal> as the type the first time a 
                  parameter is created, and thereafter the type of the 
                  most recently created parameter.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Default Value</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Parameter Initial 
                Value</primary></indexterm>
                <indexterm lang="en"><primary>Initial 
                Value</primary><secondary>of 
                Parameter</secondary></indexterm>
                <indexterm lang="en"><primary>Parameter Default 
                Value</primary></indexterm>
                <indexterm lang="en"><primary>Default 
                Value</primary><secondary>of 
                Parameter</secondary></indexterm>
                <para lang="en">Text box with drop down. This allows you to set 
                an initial value for the parameter if desired (this is 
                optional). The drop down menu provides access to the 
                common values <literal>0</literal>, <literal>
                1</literal>, <literal>2</literal>, and <literal>
                null</literal>.</para>

                <caution>

                  <para lang="en">This only makes sense for <literal>
                  out</literal> or <literal>return</literal> 
                  parameters.</para>

                </caution>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Kind</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Parameter Kind</primary></indexterm>
                <indexterm lang="en"><primary>Kind</primary><secondary>of 
                Parameter</secondary></indexterm>
                <para lang="en">Radio box, with entries <literal>out</literal>, 
                <literal>in/out</literal>, <literal>return</literal>, 
                and <literal>in</literal>.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>out</literal>. The parameter is used 
                    only to pass values back from the operation.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>in/out</literal>. The parameter is 
                    used both to pass values in and to pass results 
                    back out of the operation.</para>

                    <note>

                      <para lang="en">This is the default for any new 
                      parameter.</para>

                    </note>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>return</literal>. The parameter is a 
                    return result from the call.</para>

                    <note>

                      <para lang="en">There is nothing to stop you declaring more 
                      than one return parameter (some programming 
                      languages support this concept).</para>

                    </note>

                    <tip>

                      <para lang="en">The name of the return parameter does not 
                      appear on the diagram, but it is convenient to 
                      give it an appropriate name (such as the default 
                      <literal>return</literal> to identify it in the 
                      list of parameters on the operation property 
                      tab.</para>

                    </tip>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>in</literal>. The parameter is used 
                    only to pass values in to the operation.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.signal">

        <title>
			<phrase lang="en">Signal</phrase>
		</title>

        <indexterm lang="en"><primary>Signal</primary></indexterm>
        <para lang="en">A signal is a specification of an asynchronous stimulus 
        communicated between instances. In the UML metamodel it is a 
        sub-class of <literal>Classifier</literal>.</para>

        <para lang="en">Within ArgoUML signals are not fully handled. Their value 
        is when they are received as <emphasis>signal events</emphasis> 
        driving the asynchronous behavior of state machines and when 
        associated with <emphasis>send actions</emphasis> in state 
        machines and messages for collaboration diagrams.</para>

        <tip>

          <para lang="en">In general there is limited value at present in 
          defining signals within ArgoUML. It may prove more useful to 
          define signals as classes, with a (user defined) stereotype 
          of <literal>&laquo;signal&raquo;</literal> as suggested in the UML 1.4 
          standard. This allows any dependency relationships between 
          signals to be shown.</para>

        </tip>

        <sect2>

          <title>
			<phrase lang="en">Signal Details Tabs</phrase>
		</title>

          <indexterm lang="en"><primary>Signal Details Tabs</primary></indexterm>
          <indexterm lang="en"><primary>Details Tabs</primary><secondary>for 
          Signal</secondary></indexterm>
          <para lang="en">The details tabs that are active for signals are as 
          follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.signal_property_toolbar"/> and 
                <xref linkend="s2.ref.signal_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. See 
                <xref linkend="s2.ref.documentation_tab"/>.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Source</literal></term>

              <listitem>

                <para lang="en">Standard tab. There is nothing generated for a 
                signal.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Signal Tagged 
                Values</primary></indexterm>
                <indexterm lang="en"><primary>Tagged 
                Values</primary><secondary>of 
                Signal</secondary></indexterm>
                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Signal</literal> has the following standard tagged 
                values defined.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>persistence</literal> (from the 
                    superclass, <literal>Classifier</literal>). Values 
                    <literal>transitory</literal>, indicating state is 
                    destroyed when an instance is destroyed or <literal>
                    persistent</literal>, marking state is preserved 
                    when an instance is destroyed.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>semantics</literal> (from the 
                    superclass, <literal>Classifier</literal>). The 
                    value is a specification of the semantics of the 
                    signal.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>derived</literal> (from the 
                    superclass, <literal>ModelElement</literal>). 
                    Values <literal>true</literal>, meaning the signal 
                    is redundant&mdash;it can be formally derived from other 
                    elements, or <literal>false</literal> meaning it 
                    cannot.</para>

                    <note>

                      <para lang="en">Derived signals still have their value in 
                      analysis to introduce useful names or concepts, 
                      and in design to avoid re-computation.</para>

                    </note>

                  </listitem>

                </itemizedlist>

                <note>

                  <para lang="en">The UML <literal>Element</literal> metaclass 
                  from which all other model elements are derived includes 
                  the tagged element <literal>documentation</literal> 
                  which is handled by the <emphasis>documentation 
                  tab</emphasis> under ArgoUML</para>

                </note>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.signal_property_toolbar">

          <title>
			<phrase lang="en">Signal Property Toolbar</phrase>
		</title>

          <indexterm lang="en"><primary>Signal Property 
          Toolbar</primary></indexterm>
          <indexterm lang="en"><primary>Property Toolbar</primary><secondary>for 
          Signal</secondary></indexterm>
          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/signal.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New signal</literal></term>

              <listitem>

                <para lang="en">This creates a new signal, navigating immediately 
                to the properties tab for that signal.</para>

                <caution>

                  <para lang="en">The signal is not associated with the same 
                  operation as the original signal, so this will have 
                  to be done afterwards.</para>

                </caution>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                signal, navigating immediately to the properties tab 
                for that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the signal from the model</para>

                <warning>

                  <para lang="en">This is a deletion from the model.</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.signal_property_fields">

          <title>
			<phrase lang="en">Property Fields For Signal</phrase>
		</title>

          <indexterm lang="en"><primary>Signal Property 
          Fields</primary></indexterm>
          <indexterm lang="en"><primary>Property Fields</primary><secondary>for 
          Signal</secondary></indexterm>
          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Signal Name</primary></indexterm>
                <indexterm lang="en"><primary>Name</primary><secondary>of 
                Signal</secondary></indexterm>
                <para lang="en">Text box. The name of the signal. From their 
                similarity to classes, by convention, the name of a 
                signal has a leading upper case letter, with words 
                separated by <quote>bumpy caps</quote>.</para>

                <note>

                  <para lang="en">The ArgoUML critics do not complain about 
                  signal names that do not have an initial upper case 
                  letter.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Signal 
                Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Stereotype</primary><secondary>of 
                Signal</secondary></indexterm>
                <para lang="en">Drop down selector. Signal is provided by default 
                with the UML standard stereotypes for its parent in the 
                UML meta-model, <literal>Classifier</literal> (
                <literal>metaclass</literal>, <literal>
                powerType</literal>, <literal>process</literal>, 
                <literal>thread</literal>, and <literal>
                utility</literal>).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Navigate Stereotype</literal></term>

              <listitem>

                <para lang="en"><guiicon><inlinemediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/icons/navigate_stereotype.gif"
                 format="GIF"/></imageobject></inlinemediaobject></guiicon> 
                icon. If a stereotype has been selected, this will 
                navigate to the stereotype property panel (see 
                <xref linkend="s1.ref.stereotype"/>).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Namespace</literal></term>

              <listitem>

                <para lang="en">Drop down selector. Records and allows changing 
                the namespace for the signal. This is the package 
                hierarchy of the signal.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Contexts</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Signal 
                Contexts</primary></indexterm>
                <indexterm lang="en"><primary>Contexts</primary><secondary>of 
                Signal</secondary></indexterm>
                <para lang="en">Text area. Lists all the contexts defined for 
                this signal. Button&nbsp;1 double click navigates to the 
                selected context, button&nbsp;2 click brings up a pop up 
                menu with one entry.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Add</literal>. Add a new context. 
                    This opens the <emphasis>Add/Remove 
                    Contexts</emphasis> dialog box (see figure below), 
                    which allows choosing between all possible 
                    operations, and adding them to the selected 
                    list.</para>

                    <figure float="1" id="fig.ref.signal_add_context">

                      <title>
			<phrase lang="en">The <quote>add/remove context</quote> 
                      dialog box</phrase>
		</title>

                      <screenshot><mediaobject><imageobject>
                      <imagedata align="center"
                       fileref="images/reference/signal_add_context.png"
                       format="PNG"/></imageobject></mediaobject></screenshot>
                    </figure>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.reception">

        <title>
			<phrase lang="en">Reception (to be written)</phrase>
		</title>

        <para lang="en">A reception is ...</para>

      </sect1>

      <sect1 id="s1.ref.association_class">

        <title>
			<phrase lang="en">Association</phrase>
		</title>

        <indexterm lang="en"><primary>Association</primary></indexterm>
        <para lang="en">An association on a class diagram represents a 
        relationship between classes, or between a class and an 
        interface. On a usecase diagram, an association binds an actor 
        to a usecase.</para>

        <para lang="en">Within the UML metamodel, <literal>Association</literal> 
        is a sub-class of both <literal>Relationship</literal> and 
        <literal>GeneralizableElement</literal>.</para>

        <para lang="en">The association is represented as a solid line connecting 
        actor and usecase or class or interface (see 
        <xref linkend="fig.ref.class_diagram"/>). The name of the 
        association and any stereotype appear above the line.</para>

        <para lang="en">ArgoUML is not restricted to binary associations. See 
        <xref linkend="s2.ref.association_multiway"/> for more on 
        this.</para>

        <para lang="en">Associations are permitted between interfaces and 
        classes, but UML&nbsp;1.3 specifies they must only be navigable 
        toward the interface&mdash;in other words the interface cannot see 
        the class. ArgoUML will draw such associations with the 
        appropriate navigation.</para>

        <para lang="en">Associations are often not named, when their meaning is 
        obvious from the context.</para>

        <note>

          <para lang="en">ArgoUML provides no specific way of showing the 
          direction of the association as described in the UML 1.4 
          standard. The naming should attempt to make this clear.</para>

        </note>

        <para lang="en">The association contains at least two ends, which may be 
        navigated to via the association property sheet. See 
        <xref linkend="s1.ref.association_end_class"/> for more 
        information.</para>

        <sect2 id="s2.ref.association_multiway">

          <title>
			<phrase lang="en">Three-way and Greater Associations and Association 
          Classes</phrase>
		</title>

          <para lang="en">UML&nbsp;1.3 provides for N-ary associations and 
          associations that are governed by a third 
          <emphasis>associative class</emphasis>. Both are supported by 
          ArgoUML.</para>

          <para lang="en"><emphasis>N-ary associations</emphasis> are created by 
          drawing with the association tool from an existing 
          association to a third class. The current implementation of 
          ArgoUML does not allow the inverse: drawing from a 3rd class 
          towards an existing association is not possible.</para>

          <para lang="en">Association Classes are drawn exactly like a normal 
          association, i.e. between two classes, but with a different 
          dedicated tool from the diagram toolbar.</para>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Association Details Tabs</phrase>
		</title>

          <para lang="en">The details tabs that are active for associations are 
          as follows.</para>

          <indexterm lang="en"><primary>Association Details 
          Tabs</primary></indexterm>
          <indexterm lang="en"><primary>Details Tabs</primary><secondary>for 
          Association</secondary></indexterm>
          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.association_property_toolbar"/> 
                and <xref linkend="s2.ref.association_property_fields"/>
                 below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. See 
                <xref linkend="s2.ref.documentation_tab"/>.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

                <note>

                  <para lang="en">The values for the bounds of the Association 
                  have no meaning, since they are determined by the 
                  location of the connected items. Changing them has no 
                  effect on the diagram.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Source</literal></term>

              <listitem>

                <para lang="en">Standard tab. You would not expect to generate 
                any code for an association, and any code entered here 
                is ignored (it will have disappeared when you come back 
                to the association.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Association Tagged 
                Values</primary></indexterm>
                <indexterm lang="en"><primary>Tagged 
                Values</primary><secondary>of 
                Association</secondary></indexterm>
                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Association</literal> has the following standard tagged 
                values defined.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>persistence</literal>. Values 
                    <literal>transitory</literal>, indicating state is 
                    destroyed when an instance is destroyed or <literal>
                    persistent</literal>, marking state is preserved 
                    when an instance is destroyed.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>derived</literal> (from the 
                    superclass, <literal>ModelElement</literal>). 
                    Values <literal>true</literal>, meaning the 
                    association is redundant&mdash;it can be formally derived 
                    from other elements, or <literal>false</literal> 
                    meaning it cannot.</para>

                    <note>

                      <para lang="en">Derived associations still have their value 
                      in analysis to introduce useful names or 
                      concepts, and in design to avoid 
                      re-computation.</para>

                    </note>

                  </listitem>

                </itemizedlist>

                <note>

                  <para lang="en">The UML <literal>Element</literal> metaclass 
                  from which all other model elements are derived includes 
                  the tagged element <literal>documentation</literal> 
                  which is handled by the <emphasis>documentation 
                  tab</emphasis> under ArgoUML</para>

                </note>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.association_property_toolbar">

          <title>
			<phrase lang="en">Association Property Toolbar</phrase>
		</title>

          <indexterm lang="en"><primary>Association Property 
          Toolbar</primary></indexterm>
          <indexterm lang="en"><primary>Property Toolbar</primary><secondary>for 
          Association</secondary></indexterm>
          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure of the 
                model. For an association this will be the package 
                containing the association.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                association, navigating immediately to the properties 
                tab for that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the selected association from the 
                model.</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram. To delete 
                  an association from the diagram, but keep it within 
                  the model, use the main menu <literal>Remove From 
                  Diagram</literal> (or press the Delete key).</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.association_property_fields">

          <title>
			<phrase lang="en">Property Fields For Association</phrase>
		</title>

          <indexterm lang="en"><primary>Association Property 
          Fields</primary></indexterm>
          <indexterm lang="en"><primary>Property Fields</primary><secondary>for 
          Association</secondary></indexterm>
          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Association 
                Name</primary></indexterm>
                <indexterm lang="en"><primary>Name</primary><secondary>of 
                Association</secondary></indexterm>
                <para lang="en">Text box. The name of the association. By 
                convention association names start with a lower case 
                letter, with <quote>bumpy caps</quote> used to indicate 
                words within the name, thus: <literal>
                salesHandling</literal>.</para>

                <note>

                  <para lang="en">ArgoUML does not enforce any naming convention 
                  for associations.</para>

                </note>

                <tip>

                  <para lang="en">Although the design critics will advise 
                  otherwise, it is perfectly normal not to name 
                  associations on a class diagram, since the 
                  relationship is often obvious from the classes (or 
                  class and interface) name.</para>

                </tip>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Association 
                Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Stereotype</primary><secondary>of 
                Association</secondary></indexterm>
                <para lang="en">Drop down selector. Association is provided by 
                default with the UML standard stereotype for 
                Association (<literal>implicit</literal>) .</para>

                <para lang="en">Stereotyping can be useful when creating 
                associations in the problem domain (requirements 
                capture) and solution domain (analysis), as well as for 
                processes based on patterns.</para>

                <para lang="en">The stereotype is shown between &laquo; and &raquo; below the 
                name of the association on the diagram.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Navigate Stereotype</literal></term>

              <listitem>

                <para lang="en"><guiicon><inlinemediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/icons/navigate_stereotype.gif"
                 format="GIF"/></imageobject></inlinemediaobject></guiicon> 
                icon. If a stereotype has been selected, this will 
                navigate to the stereotype property panel (see 
                <xref linkend="s1.ref.stereotype"/>).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Namespace</literal></term>

              <listitem>

                <para lang="en">Drop down selector. Records and allows changing 
                the namespace for the association. This is the package 
                hierarchy.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Connections</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Association 
                Ends</primary><secondary>of 
                Association</secondary></indexterm>
                <indexterm lang="en"><primary>Connections</primary><secondary>of 
                Association</secondary></indexterm>
                <para lang="en">Text area. Lists the ends of this association. An 
                association can have two or more ends. For more on 
                association ends see 
                <xref linkend="s1.ref.association_end_class"/>.</para>

                <para lang="en">The names of the association ends are listed, 
                unless the association end has no name (the case when 
                it is first created), in which case <literal>(Unnamed 
                AssociationEnd)</literal> is shown.</para>

                <note>

                  <para lang="en">The only representation of association ends on 
                  a diagram is that their name appears at the relevant 
                  end of the corresponding association.</para>

                </note>

                <para lang="en">Button&nbsp;1 double click on an association end will 
                navigate to that end.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Association Roles</literal></term>

              <listitem>

                <para lang="en">Text area. (To be written)</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Links</literal></term>

              <listitem>

                <para lang="en">Text area. (To be written)</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.association_end_class">

        <title>
			<phrase lang="en">Association End</phrase>
		</title>

        <indexterm lang="en"><primary>Association End</primary></indexterm>
        <para lang="en">Two or more association ends are associated with each 
        association (see <xref linkend="s1.ref.association_use_case"/>
        ).</para>

        <para lang="en">Within the UML metamodel, <literal>
        AssociationEnd</literal> is a sub-class of <literal>
        ModelElement</literal>.</para>

        <para lang="en">The association end has no direct access on any diagram 
        for binary associations. The ends of an N-ary association may 
        be selected by clicking on the line in the diagram. The 
        stereotype, name and multiplicity are shown at the relevant end 
        of the parent association (see 
        <xref linkend="fig.ref.use_case_diagram"/>). Where shared or 
        composite aggregation is selected for one association end, the 
        opposite end is shown as a solid diamond (composite 
        aggregation) or hollow diamond (shared aggregation).</para>

        <tip>

          <para lang="en">Although you can change attributes of association ends 
          when creating a use case model, this is often not necessary. 
          Many of the properties of an association end relate to its 
          use in class diagrams, and are of limited relevance to use 
          cases. The most useful attributes to consider altering are 
          the name (used as the role name) and the multiplicity.</para>

        </tip>

        <note>

          <para lang="en">ArgoUML does not currently support showing qualifiers 
          on the diagram, as described in the UML&nbsp;1.3 standard.</para>

        </note>

        <sect2>

          <title>
			<phrase lang="en">Association End Details Tabs</phrase>
		</title>

          <para lang="en">The details tabs that are active for associations are 
          as follows.</para>

          <indexterm lang="en"><primary>Association End Details 
          Tabs</primary></indexterm>
          <indexterm lang="en"><primary>Details Tabs</primary><secondary>for 
          Association End</secondary></indexterm>
          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.association_end_property_toolbar"/>
                 and 
                <xref linkend="s2.ref.association_end_property_fields"/>
                 below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. See 
                <xref linkend="s2.ref.documentation_tab"/>.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Source</literal></term>

              <listitem>

                <para lang="en">Standard tab. This tab contains a declaration for 
                the association end as an instance of the model element to 
                which it is connected.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Association End Tagged 
                Values</primary></indexterm>
                <indexterm lang="en"><primary>Tagged 
                Values</primary><secondary>of Association 
                End</secondary></indexterm>
                <para lang="en">Standard tab. In the UML metamodel, <literal>
                AssociationEnd</literal> has the following standard 
                tagged values defined.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>derived</literal> (from the 
                    superclass, <literal>ModelElement</literal>). 
                    Values <literal>true</literal>, meaning the 
                    association end is redundant&mdash;it can be formally 
                    derived from other elements, or <literal>
                    false</literal> meaning it cannot.</para>

                    <tip>

                      <para lang="en">Derived association ends still have their 
                      value in analysis to introduce useful names or 
                      concepts, and in design to avoid re-computation. 
                      However the tag only makes sense for an 
                      association end if it is also applied to the 
                      parent association.</para>

                    </tip>

                  </listitem>

                </itemizedlist>

                <note>

                  <para lang="en">The UML <literal>Element</literal> metaclass 
                  from which all other model elements are derived includes 
                  the tagged element <literal>documentation</literal> 
                  which is handled by the <emphasis>documentation 
                  tab</emphasis> under ArgoUML</para>

                </note>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.association_end_property_toolbar">

          <title>
			<phrase lang="en">Association End Property Toolbar</phrase>
		</title>

          <indexterm lang="en"><primary>Association End Property 
          Toolbar</primary></indexterm>
          <indexterm lang="en"><primary>Property Toolbar</primary><secondary>for 
          Association End</secondary></indexterm>
          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up to the association to which this end 
                belongs.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/association_end.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go Opposite</literal></term>

              <listitem>

                <para lang="en">This navigates to the other end of the 
                association.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/attribute.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Qualifier</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Qualifier</primary></indexterm>
                <indexterm lang="en"><primary>New Qualifier</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Qualifier</secondary></indexterm>
                <para lang="en">This creates a new Qualifier for the selected 
                association-end, navigating immediately to the 
                properties tab for that qualifier.</para>

                <warning>

                  <para lang="en">Qualifiers are only partly supported in ArgoUML 
                  V0.18. Hence, activating this button creates a 
                  qualifier in the model, which is not shown on the 
                  diagram. Also, the properties panel for a qualifier 
                  equals that of a regular attribute.</para>

                </warning>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                association-end, navigating immediately to the 
                properties tab for that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the selected association-end from 
                the model.</para>

                <note>

                  <para lang="en">This button is downlighted for binary 
                  associations, since an association needs at least 
                  <emphasis>two</emphasis> ends. Only for N-ary 
                  associations, this button is accessable, and deletes 
                  just one end from the association.</para>

                </note>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.association_end_property_fields">

          <title>
			<phrase lang="en">Property Fields For Association End</phrase>
		</title>

          <indexterm lang="en"><primary>Association End Property 
          Fields</primary></indexterm>
          <indexterm lang="en"><primary>Property Fields</primary><secondary>for 
          Association End</secondary></indexterm>
          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Association End 
                Name</primary></indexterm>
                <indexterm lang="en"><primary>Name</primary><secondary>of 
                Association End</secondary></indexterm>
                <para lang="en">Text box. The name of the association end, which 
                provides a <emphasis>role name</emphasis> for this end 
                of the association. This role name can be used for 
                navigation, and in an implementation context, provides 
                a name by which the source end of an association can 
                reference the target end.</para>

                <note>

                  <para lang="en">ArgoUML does not enforce any naming convention 
                  for association ends.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Association End 
                Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Stereotype</primary><secondary>of 
                Association End</secondary></indexterm>
                <para lang="en">Drop down selector. Association end is provided 
                by default with the UML standard stereotypes for 
                AssociationEnd (<literal>association</literal>, 
                <literal>global</literal>, <literal>local</literal>, 
                <literal>parameter</literal>, <literal>
                self</literal>).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Navigate Stereotype</literal></term>

              <listitem>

                <para lang="en"><guiicon><inlinemediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/icons/navigate_stereotype.gif"
                 format="GIF"/></imageobject></inlinemediaobject></guiicon> 
                icon. If a stereotype has been selected, this will 
                navigate to the stereotype property panel (see 
                <xref linkend="s1.ref.stereotype"/>).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Association</literal></term>

              <listitem>

                <para lang="en">Text box. Records the parent association for this 
                association end. Button&nbsp;1 double click on this entry 
                will navigate to that association.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Type</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Association End 
                Type</primary></indexterm>
                <indexterm lang="en"><primary>Type</primary><secondary>of 
                Association End</secondary></indexterm>
                <para lang="en">Drop down selector providing access to all 
                standard UML types provided by ArgoUML and all new 
                classes created within the current model.</para>

                <para lang="en">This is the type of the entity attached to this 
                end of the association.</para>

                <tip>

                  <para lang="en">By default ArgoUML will select the class of the 
                  model element to which the linkend is connected. However, 
                  an association can be moved to another class by 
                  selecting another entry here.</para>

                </tip>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Multiplicity</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Association End 
                Multiplicity</primary></indexterm>
                <indexterm lang="en"><primary>Multiplicity</primary><secondary>of 
                Association End</secondary></indexterm>
                <para lang="en">Drop down menu with edit box. The value can be 
                chosen from the drop down box, or a new one can be 
                edited in the text box. Records the multiplicity of 
                this association end (with respect to the other end), 
                i.e. how many instances of this end may be associated 
                with an instance of the other end. The multiplicity is 
                shown on the diagram at that end of the 
                association.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Modifiers</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Association End 
                Modifiers</primary></indexterm>
                <indexterm lang="en"><primary>Modifiers</primary><secondary>of 
                Association End</secondary></indexterm>
                <para lang="en">There are 3 modifiers: <literal>
                navigable</literal>, <literal>ordered</literal> and 
                <literal>static</literal>. All 3 are checkboxes.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>navigable</literal>. Indicates that 
                    this end can be navigated to from the other 
                    end.</para>

                    <note>

                      <para lang="en">The UML 1.4 standard provides a number of 
                      options for how navigation is displayed on an 
                      association end. ArgoUML uses option 3, which 
                      means that arrow heads are shown at the end of an 
                      association, when navigation is enabled at only 
                      one end, to indicate the direction in which 
                      navigation is possible. This means that the 
                      default, with both ends navigable has no 
                      arrows.</para>

                    </note>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>ordered</literal> When placed on one 
                    end, specifies whether the set of links from the 
                    other instance to this instance is ordered. The 
                    ordering must be determined and maintained by 
                    Operations that add links. It represents additional 
                    information not inherent in the objects or links 
                    themselves. Possibilities for the checkbox are: 
                    Unchecked - The links form a set with no inherent 
                    ordering. Checked - A set of ordered links can be 
                    scanned in order.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Static</literal> (To be 
                    written)</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Specification</literal></term>

              <listitem>

                <para lang="en">List. Designates zero or more Classifiers that 
                specify the Operations that may be applied to an 
                Instance accessed by the AssociationEnd across the 
                Association. These determine the minimum interface that 
                must be realized by the actual Classifier attached to 
                the end to support the intent of the Association. May 
                be an Interface or another Classifier. The type of 
                classifier is indicated by an icon.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the selected 
                classifier, button&nbsp;2 click brings a pop up menu with 
                one entry.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Add</literal>. Add a new 
                    specification classifier. This opens the 
                    <emphasis>Add/Remove Specifications</emphasis> 
                    dialog box (see figure below), which allows 
                    choosing between all possible classifiers, and 
                    adding or removing them to the selected list.</para>

                    <figure float="1" id="fig.ref.signal_add_specification">

                      <title>
			<phrase lang="en">The <quote>Add/Remove 
                      Specifications</quote> dialog box</phrase>
		</title>

                      <screenshot><mediaobject><imageobject>
                      <imagedata align="center"
                       fileref="images/reference/signal_add_specification.png"
                       format="PNG"/></imageobject></mediaobject></screenshot>
                    </figure>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Qualifiers</literal></term>

              <listitem>

                <para lang="en">Text box. Records the qualifiers for this 
                association end. Button&nbsp;1 double click on this entry 
                will navigate to that qualifier. Button&nbsp;2 click will 
                show a popup menu containing two items: <literal>Move 
                Up</literal> and <literal>Move Down</literal>, which 
                allow reordering the qualifiers.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Aggregation</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Association End 
                Aggregation</primary></indexterm>
                <indexterm lang="en"><primary>Aggregation</primary><secondary>of 
                Association End</secondary></indexterm>
                <para lang="en">Radio box, with three entries <literal>
                composite</literal>, <literal>none</literal> and 
                <literal>aggregate</literal>. Indicates whether the 
                relationship with the far end represents some type of 
                loose whole-part relationship (
                <literal>aggregation</literal>) or tight whole-part 
                relationship (<literal>composite</literal>).</para>

                <para lang="en">Shared aggregation is shown by a hollow diamond 
                at the <quote>whole</quote> end of the association. 
                Composite aggregation is shown by a solid 
                diamond.</para>

                <note>

                  <para lang="en">You may not have aggregation at both ends of an 
                  association. ArgoUML does not enforce this 
                  constraint.</para>

                  <para lang="en">The <quote>whole</quote> end of a composite 
                  aggregation should have a multiplicity of one. 
                  ArgoUML does not enforce this constraint.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Changeability</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Association End 
                Changeability</primary></indexterm>
                <indexterm lang="en">
                <primary>Changeability</primary><secondary>of 
                Association End</secondary></indexterm>
                <para lang="en">Radio box, with three entries <literal>add 
                only</literal>, <literal>changeable</literal> and 
                <literal>frozen</literal>. Indicates whether instances 
                of this end of the association-end may be: i) created 
                but not deleted after the target instance is created; 
                ii) created and deleted by the source after the target 
                instance is created; or iii) not created or deleted by 
                the source after the target instance is created.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Visibility</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Association End 
                Visibility</primary></indexterm>
                <indexterm lang="en"><primary>Visibility</primary><secondary>of 
                Association End</secondary></indexterm>
                <para lang="en">Radio box, with four entries <literal>
                public</literal>, <literal>private</literal>,  
                <literal>protected</literal>, and 
                <literal>package</literal>. Indicates whether 
                navigation to this end may be by: i) any classifier; 
                ii) only by the source classifier; or iii) only the 
                source classifier and its children.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.dependency_class">

        <title>
			<phrase lang="en">Dependency</phrase>
		</title>

        <indexterm lang="en"><primary>Dependency</primary></indexterm>
        <para lang="en">Dependency is a relationship between two model elements 
        showing that one depends on the other.</para>

        <para lang="en">Within the UML metamodel, <literal>Dependency</literal> 
        is a sub-class of <literal>Relationship</literal>.</para>

        <para lang="en">Dependency is represented as a dashed line with an open 
        arrow head from the depending model element to that which it is 
        dependent upon.</para>

        <sect2>

          <title>
			<phrase lang="en">Dependency Details Tabs</phrase>
		</title>

          <indexterm lang="en"><primary>Dependency Details 
          Tabs</primary></indexterm>
          <indexterm lang="en"><primary>Details Tabs</primary><secondary>for 
          Dependency</secondary></indexterm>
          <para lang="en">The details tabs that are active for dependencies are 
          as follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.dependency_property_toolbar"/> 
                and <xref linkend="s2.ref.dependency_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. See 
                <xref linkend="s2.ref.documentation_tab"/>.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab</para>

                <note>

                  <para lang="en">
                    The values in the "bounds" field of the 
                    dependency
                    are not editable, since they are determined 
                    by the properties of the endpoints of the line.
                  </para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Dependency</literal> has no tagged values of its own, 
                but through superclasses has the following standard 
                tagged values defined.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>derived</literal> (from the 
                    superclass, <literal>ModelElement</literal>). 
                    Values <literal>true</literal>, meaning the 
                    dependency relationship is redundant&mdash;it can be 
                    formally derived from other elements, or <literal>
                    false</literal> meaning it cannot.</para>

                    <note>

                      <para lang="en">Derived dependencies still have their value 
                      in analysis to introduce useful names or 
                      concepts.</para>

                    </note>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.dependency_property_toolbar">

          <title>
			<phrase lang="en">Dependency Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure of the 
                model. For a dependency this will be the package 
                containing the dependency.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                dependency, navigating immediately to the properties 
                tab for that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the selected dependency from the 
                model.</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram. To delete 
                  a dependency from the diagram, but keep it within the 
                  model, use the main menu <literal>Remove From 
                  Diagram</literal> (or press the Delete key).</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.dependency_property_fields">

          <title>
			<phrase lang="en">Property Fields For Dependency</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Dependency 
                Name</primary></indexterm>
                <indexterm lang="en"><primary>Name</primary><secondary>of 
                Dependency</secondary></indexterm>
                <para lang="en">Text box. The name of the dependency.</para>

                <tip>

                  <para lang="en">It is quite common to leave dependencies 
                  unnamed.</para>

                </tip>

                <note>

                  <para lang="en">ArgoUML does not enforce any naming convention 
                  for associations.</para>

                </note>

                <note>

                  <para lang="en">There is no representation of the name of a 
                  dependency on the diagram.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Dependency 
                Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Stereotype</primary><secondary>of 
                Dependency</secondary></indexterm>
                <para lang="en">Drop down selector. Dependency has no standard 
                stereotypes of its own under UML&nbsp;1.3. and so ArgoUML 
                does not provide any. The stereotype is shown between  &laquo;
                and &raquo; above or across the generalization.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Navigate Stereotype</literal></term>

              <listitem>

                <para lang="en"><guiicon><inlinemediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/icons/navigate_stereotype.gif"
                 format="GIF"/></imageobject></inlinemediaobject></guiicon> 
                icon. If a stereotype has been selected, this will 
                navigate to the stereotype property panel (see 
                <xref linkend="s1.ref.stereotype"/>).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Namespace</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Dependency 
                Namespace</primary></indexterm>
                <indexterm lang="en"><primary>Namespace</primary><secondary>of 
                Dependency</secondary></indexterm>
                <para lang="en">Text box. Records the namespace for the 
                dependency. This is the package hierarchy.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Suppliers</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Dependency 
                Suppliers</primary></indexterm>
                <indexterm lang="en"><primary>Suppliers</primary><secondary>of 
                Dependency</secondary></indexterm>
                <para lang="en">Text area. Lists the end of the relationship that 
                is supplying what is needed by the other end.</para>

                <para lang="en">Button&nbsp;1 double click on a supplier will navigate 
                to that element.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Clients</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Dependency 
                Clients</primary></indexterm>
                <indexterm lang="en"><primary>Clients</primary><secondary>of 
                Dependency</secondary></indexterm>
                <para lang="en">Text area. Lists the <quote>depending</quote> 
                ends of the relationship, i.e. the end that makes use 
                of the other end.</para>

                <para lang="en">Button&nbsp;1 double click on a client will navigate 
                to that element.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.generalization_class">

        <title>
			<phrase lang="en">Generalization</phrase>
		</title>

        <para lang="en">Generalization is described under use case diagrams (see 
        <xref linkend="s1.ref.generalization_use_case"/>).</para>

        <note>

          <para lang="en">Within the context of classes, generalization and 
          specialization are the UML terms describing class 
          inheritance.</para>

        </note>

      </sect1>

      <sect1 id="s1.ref.interface_class">

        <title>
			<phrase lang="en">Interface</phrase>
		</title>

        <para lang="en">An interface is a set of operations characterizing the 
        behavior of an element. It can be usefully thought of as an 
        abstract class with no attributes and no non-abstract 
        operations. In the UML metamodel it is a sub-class of <literal>
        Classifier</literal> and through that <literal>
        GeneralizableElement</literal>.</para>

        <para lang="en">An interface is represented on a class diagram as a 
        rectangle with two horizontal compartments. The top compartment 
        displays the interface name (and above it <literal>
        &laquo;interface&raquo;</literal>) and the second any operations. Just like 
        a class, the operations compartment can be hidden.</para>

        <sect2>

          <title>
			<phrase lang="en">Interface Details Tabs</phrase>
		</title>

          <para lang="en">The details tabs that are active for interfaces are as 
          follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.interface_property_toolbar"/> and 
                <xref linkend="s2.ref.interface_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. See 
                <xref linkend="s2.ref.documentation_tab"/>.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. The tick box <literal>Display 
                Operations</literal> allows the operation compartment 
                to be shown (the default) or hidden. This is a setting 
                valid for only the current diagram. The <literal>
                Bounds:</literal> field defines the bounding box for 
                the package on the diagram.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Source</literal></term>

              <listitem>

                <para lang="en">Standard tab. This contains a template for the 
                interface declaration and declarations of associated 
                interfaces.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Interface</literal> has the following standard tagged 
                values defined.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>persistence</literal> (from the 
                    superclass, <literal>Classifier</literal>). Values 
                    <literal>transitory</literal>, indicating state is 
                    destroyed when an instance is destroyed or <literal>
                    persistent</literal>, marking state is preserved 
                    when an instance is destroyed.</para>

                    <warning>

                      <para lang="en">Since interfaces are by definition 
                      abstract, they can have no instance, and so this 
                      tagged value must refer to the properties of the 
                      realizing class.</para>

                    </warning>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>semantics</literal> (from the 
                    superclass, <literal>Classifier</literal>). The 
                    value is a specification of the semantics of the 
                    interface.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>derived</literal> (from the 
                    superclass, <literal>ModelElement</literal>). 
                    Values <literal>true</literal>, meaning the 
                    interface is redundant&mdash;it can be formally derived 
                    from other elements, or <literal>false</literal> 
                    meaning it cannot.</para>

                    <note>

                      <para lang="en">Derived interfaces still have their value 
                      in analysis to introduce useful names or 
                      concepts, and in design to avoid 
                      re-computation.</para>

                    </note>

                  </listitem>

                </itemizedlist>

                <note>

                  <para lang="en">The UML <literal>Element</literal> metaclass 
                  from which all other model elements are derived includes 
                  the tagged element <literal>documentation</literal> 
                  which is handled by the <emphasis>documentation 
                  tab</emphasis> under ArgoUML</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Checklist</literal></term>

              <listitem>

                <para lang="en">Standard tab for an Interface.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.interface_property_toolbar">

          <title>
			<phrase lang="en">Interface Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/operation.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New operation</literal></term>

              <listitem>

                <para lang="en">This creates a new operation (see 
                <xref linkend="s1.ref.operation"/>) within the 
                interface, navigating immediately to the properties tab 
                for that operation.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/reception.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New reception</literal></term>

              <listitem>

                <para lang="en">This creates a new reception, navigating 
                immediately to the properties tab for that 
                reception.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/interface.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New interface</literal></term>

              <listitem>

                <para lang="en">This creates a new interface in the same 
                namespace as the selected interface, navigating 
                immediately to the properties tab for the new 
                interface.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                interface, navigating immediately to the properties tab 
                for that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the interface from the model</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram. To delete 
                  an interface from the diagram, but keep it within the 
                  model, use the main menu <literal>Remove From 
                  Diagram</literal> (or press the Delete key).</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.interface_property_fields">

          <title>
			<phrase lang="en">Property Fields For Interface</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <para lang="en">Text box. The name of the interface. The name of 
                an interface has a leading capital letter, with words 
                separated by <quote>bumpy caps</quote>.</para>

                <note>

                  <para lang="en">Unlike classes, the ArgoUML critics will not 
                  complain about interface names that do not have an 
                  initial capital.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Drop down selector. Interface is provided by 
                default with the UML standard stereotypes for the 
                parent meta-class, <literal>Classifier</literal> (
                <literal>metaclass</literal>, <literal>
                powertype</literal>, <literal>process</literal>, 
                <literal>thread</literal> and <literal>
                utility</literal>).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Navigate Stereotype</literal></term>

              <listitem>

                <para lang="en"><guiicon><inlinemediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/icons/navigate_stereotype.gif"
                 format="GIF"/></imageobject></inlinemediaobject></guiicon> 
                icon. If a stereotype has been selected, this will 
                navigate to the stereotype property panel (see 
                <xref linkend="s1.ref.stereotype"/>).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Namespace</literal></term>

              <listitem>

                <para lang="en">Drop down selector. Records and allows changing 
                the namespace for the interface. This is the package 
                hierarchy.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Modifiers</literal></term>

              <listitem>

                <para lang="en">Check box, with entries <literal>
                Abstract</literal>, <literal>Leaf</literal> and 
                <literal>Root</literal>.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Abstract</literal> is used to 
                    declare that this interface cannot be instantiated, 
                    but must always be specialized. The name of an 
                    abstract interface is displayed in italics on the 
                    diagram.</para>

                    <caution>

                      <para lang="en">This is meaningless, since by definition an 
                      interface is an abstract entity. The UML&nbsp;1.3 
                      standard offers no clarification.</para>

                    </caution>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Leaf</literal> indicates that this 
                    interface cannot be further specialized, while 
                    <literal>Root</literal> indicates it can have no 
                    generalizations.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Visibility</literal></term>

              <listitem>

                <para lang="en">Radio box, with three entries <literal>
                public</literal>, <literal>protected</literal>, 
                <literal>private</literal> and
                <literal>package</literal>. Indicates whether 
                navigation to this end may be by: i) any classifier; 
                ii) only the source classifier and its children; or 
                iii) only by the source classifier.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Generalizations</literal></term>

              <listitem>

                <para lang="en">Text area. Lists any interface that 
                <emphasis>generalizes</emphasis> this interface.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the 
                generalization and opens its property tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Specializations</literal></term>

              <listitem>

                <para lang="en">Text box. Lists any specialized interface (i.e. 
                for which this interface is a generalization.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the 
                generalization and opens its property tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>AssociationEnds</literal></term>

              <listitem>

                <para lang="en">Text box. Lists any AssociationEnds (see 
                <xref linkend="s1.ref.association_end_class"/>) 
                connected to this interface.</para>

                <note>

                  <para lang="en">Associations between classes and interfaces 
                  <emphasis>must</emphasis> be navigable 
                  <emphasis>only</emphasis> from the class to the 
                  interface. ArgoUML will create associations between 
                  classes and interfaces with the correct navigability, 
                  but does not prevent the user from altering 
                  this.</para>

                </note>

                <para lang="en">Button&nbsp;1 double click navigates to the selected 
                entry.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Operations</literal></term>

              <listitem>

                <para lang="en">Text area. Lists all the operations (see 
                <xref linkend="s1.ref.operation"/>) defined on this 
                interface. Button&nbsp;1 double click navigates to the 
                selected operation. Button&nbsp;2 click will show a popup 
                menu with two items: <literal>Move Up</literal> and 
                <literal>Move Down</literal>, which allow reordering 
                the operations.</para>

                <caution>

                  <para lang="en">All operations on an interface 
                  <emphasis>must</emphasis> be public. The ArgoUML 
                  critics will complain if this is not the case.</para>

                </caution>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.abstraction">

        <title>
			<phrase lang="en">Abstraction</phrase>
		</title>

        <para lang="en">An abstraction is a dependency relationship joining two 
        model elements within the model at different levels of abstraction. 
        Within ArgoUML it is principally used through its specific 
        stereotype <literal>realize</literal> to define realization 
        dependencies, which link model elements that 
        <emphasis>specify</emphasis> behavior to the corresponding 
        model elements that <emphasis>implement</emphasis> the 
        behavior.</para>

        <para lang="en">In the UML metamodel <literal>Abstraction</literal> is a 
        sub-class of <literal>Dependency</literal> and through that 
        <literal>Relationship</literal>.</para>

        <para lang="en">An abstraction with stereotype <literal>realize</literal> 
        is represented on a class diagram as a dotted line with a solid 
        white head at the specifying end.</para>

        <caution>

          <para lang="en">All other stereotypes of abstraction should be 
          represented using an open arrow head, but this is not 
          supported by ArgoUML.</para>

        </caution>

        <sect2>

          <title>
			<phrase lang="en">Abstraction Details Tabs</phrase>
		</title>

          <para lang="en">The details tabs that are active for abstractions are 
          as follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.abstraction_property_toolbar"/> 
                and <xref linkend="s2.ref.abstraction_property_fields"/>
                 below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. See 
                <xref linkend="s2.ref.documentation_tab"/>.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

                <note>

                  <para lang="en">
                    The values in the "bounds" field of the 
                    abstraction
                    are not editable, since they are determined 
                    by the properties of the endpoints of the line.
                  </para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Source</literal></term>

              <listitem>

                <para lang="en">Standard tab. This contains the single 
                downlighted text <literal>N/A</literal>.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Abstraction</literal> has the following standard tagged 
                values defined.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>derived</literal> (from the 
                    superclass, <literal>ModelElement</literal>). 
                    Values <literal>true</literal>, meaning the 
                    abstraction is redundant&mdash;it can be formally derived 
                    from other elements, or <literal>false</literal> 
                    meaning it cannot.</para>

                    <note>

                      <para lang="en">Derived abstractions still have their value 
                      in analysis to introduce useful names or 
                      concepts, and in design to avoid 
                      re-computation.</para>

                    </note>

                  </listitem>

                </itemizedlist>

                <note>

                  <para lang="en">The UML <literal>Element</literal> metaclass 
                  from which all other model elements are derived includes 
                  the tagged element <literal>documentation</literal> 
                  which is handled by the <emphasis>documentation 
                  tab</emphasis> under ArgoUML</para>

                </note>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.abstraction_property_toolbar">

          <title>
			<phrase lang="en">Abstraction Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the abstraction from the model</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram. To delete 
                  an abstraction from the diagram, but keep it within 
                  the model, use the main menu <literal>Remove From 
                  Diagram</literal> (or press the Delete key).</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.abstraction_property_fields">

          <title>
			<phrase lang="en">Property Fields For Abstraction</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <para lang="en">Text box. The name of the abstraction. There are 
                no constraints on the name of an abstraction, which is 
                not shown on any diagram.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Drop down selector. Abstraction is provided by 
                default with the UML standard stereotypes <literal>
                derive</literal>, <literal>realize</literal>, <literal>
                refine</literal> and <literal>trace</literal>.</para>

                <caution>

                  <para lang="en">ArgoUML automatically selects the stereotype 
                  realize when an abstraction is created. The user is 
                  free to change the stereotype to use the abstraction 
                  to indicate for example a <literal>trace</literal> 
                  relationship. However ArgoUML will not alter the 
                  representation on the diagram accordingly.</para>

                </caution>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Navigate Stereotype</literal></term>

              <listitem>

                <para lang="en"><guiicon><inlinemediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/icons/navigate_stereotype.gif"
                 format="GIF"/></imageobject></inlinemediaobject></guiicon> 
                icon. If a stereotype has been selected, this will 
                navigate to the stereotype property panel (see 
                <xref linkend="s1.ref.stereotype"/>).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Namespace</literal></term>

              <listitem>

                <para lang="en">Drop down selector. Records and allows changing 
                the namespace for the abstraction. This is the package 
                hierarchy.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Suppliers</literal></term>

              <listitem>

                <para lang="en">Text area. Lists the model element that is the 
                supplier end of this abstraction (for a realization 
                this is the end providing the implementation).</para>

                <note>

                  <para lang="en">Although this is a text area there is no 
                  mechanism for adding more than one supplier.</para>

                </note>

                <para lang="en">Button&nbsp;1 double click navigates to the selected 
                entry.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Clients</literal></term>

              <listitem>

                <para lang="en">Text area. Lists the model element that is the client 
                end of this abstraction (for a realization this is the 
                end providing the specification).</para>

                <note>

                  <para lang="en">Although this is a text area there is no 
                  mechanism for adding more than one client.</para>

                </note>

                <para lang="en">Button&nbsp;1 double click navigates to the selected 
                entry.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

    </chapter>

    <chapter id="ch.ref.entseq">

      <title>
			<phrase lang="en">Sequence Diagram Model Element Reference</phrase>
		</title>

      <sect1>

        <title>
			<phrase lang="en">Introduction</phrase>
		</title>

        <para lang="en">This chapter describes each model element that can be created 
        within a sequence diagram. Note that some sub-model elements of 
        model elements on the diagram may not actually themselves appear on 
        the diagram.</para>

        <para lang="en">There is a close relationship between this material and 
        the <literal>Properties</literal> tab of the details pane (see 
        <xref linkend="s1.ref.proptab"/>). That section covers 
        properties in general, in this chapter they are linked to 
        specific model elements.</para>

        <caution>

          <para lang="en">Sequence diagrams are not fully developed yet in 
          ArgoUML. Many aspects are not fully implemented, or may not 
          behave as expected.</para>

        </caution>

        <para lang="en"><xref linkend="fig.ref.sequence_diagram"/> shows a 
        sequence diagram with all possible model elements displayed.</para>

        <figure float="1" id="fig.ref.sequence_diagram">

          <title>
			<phrase lang="en">Possible model elements on a sequence diagram.</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/sequence_diagram.gif"
           format="GIF"/></imageobject></mediaobject></screenshot>
        </figure>

        <sect2>

          <title>
			<phrase lang="en">Limitations Concerning Sequence Diagrams in 
          ArgoUML</phrase>
		</title>

          <para lang="en">The sequence diagram is still rather under-developed in 
          ArgoUML.</para>

          <para lang="en">The biggest difficulties are with the actions behind 
          the stimuli. These are purely textual in implementation, and 
          there is no way to link them back to their associated 
          operations or signals.</para>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.object_sequence">

        <title>
			<phrase lang="en">Object</phrase>
		</title>

        <para lang="en">An object is an instance of a class. In the UML metamodel 
        <literal>Object</literal> is a sub-class of <literal>
        Instance</literal>. Within a sequence diagram objects may be 
        used to represent a specific instance of a class. Unlike 
        collaboration diagrams (see <xref linkend="ch.ref.entcollab"/>
        ), sequence diagrams cannot show generic behavior between 
        classifier roles.</para>

        <para lang="en">An object is represented on a sequence diagram in ArgoUML 
        as a plain box labeled with the object name (if any) and class 
        name, separated by a colon (:). As links with stimuli to and 
        from other objects are added, a time line grows down from the 
        object. This is thin where the object does not have control and 
        thick where it does.</para>

        <caution>

          <para lang="en">The current release of ArgoUML shows interactions 
          between objects, although the UML standard for sequence 
          diagrams is for interaction between instances of any 
          classifier).</para>

          <para lang="en">However the actual implementation in ArgoUML permits 
          any classifier to be used with the object, and so the diagram 
          can successfully represent instances of actors for example as 
          well as classes.</para>

        </caution>

        <sect2>

          <title>
			<phrase lang="en">Object Details Tabs</phrase>
		</title>

          <para lang="en">The details tabs that are active for objects are as 
          follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.object_property_toolbar"/> and 
                <xref linkend="s2.ref.object_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. The values for the bounds of the 
                object notionally define the bounding box of the object 
                and its time line. However if you change them it will 
                have no effect, and the original values will be reset 
                when you next revisit the tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Source</literal></term>

              <listitem>

                <para lang="en">Standard tab, but with no contents.</para>

                <caution>

                  <para lang="en">An object should not generate any code, so 
                  having this tab active is probably a mistake.</para>

                </caution>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Object</literal> has the following standard tagged 
                values defined.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>persistence</literal> (from the 
                    superclass, <literal>Instance</literal>. Showing 
                    the permanence of the state information associated 
                    with the object. Values <literal>
                    transitory</literal> (state is destroyed when the 
                    object is destroyed) and <literal>
                    persistent</literal> (state is preserved when the 
                    object is destroyed).</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>derived</literal> (from the 
                    superclass, <literal>ModelElement</literal>). 
                    Values <literal>true</literal>, meaning the object 
                    is redundant&mdash;it can be formally derived from other 
                    elements, or <literal>false</literal> meaning it 
                    cannot.</para>

                    <note>

                      <para lang="en">Derived objects still have their value in 
                      analysis and design to introduce useful names or 
                      concepts, and in design to avoid 
                      re-computation.</para>

                    </note>

                  </listitem>

                </itemizedlist>

                <note>

                  <para lang="en">The UML <literal>Element</literal> metaclass 
                  from which all other model elements are derived includes 
                  the tagged element <literal>documentation</literal> 
                  which is handled by the <emphasis>documentation 
                  tab</emphasis> under ArgoUML</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Checklist</literal></term>

              <listitem>

                <para lang="en">Standard tab for a Classifier.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.object_property_toolbar">

          <title>
			<phrase lang="en">Object Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                object, navigating immediately to the properties tab 
                for that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the object from the model</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram. To delete 
                  an object from the diagram, but keep it within the 
                  model, use the main menu <literal>Remove From 
                  Diagram</literal> (or press the Delete key).</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.object_property_fields">

          <title>
			<phrase lang="en">Property Fields For Object</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <para lang="en">Text box. The name of the object. By convention 
                object names start with a lower case letter and use 
                bumpy caps to divide words within the name.</para>

                <note>

                  <para lang="en">ArgoUML does not enforce this naming 
                  convention.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Drop down selector. Object has no stereotypes by 
                default in the UML standard.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Navigate Stereotype</literal></term>

              <listitem>

                <para lang="en"><guiicon><inlinemediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/icons/navigate_stereotype.gif"
                 format="GIF"/></imageobject></inlinemediaobject></guiicon> 
                icon. If a stereotype has been selected, this will 
                navigate to the stereotype property panel (see 
                <xref linkend="s1.ref.stereotype_class"/>).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Namespace</literal></term>

              <listitem>

                <para lang="en">Text box. Records the namespace for the object. 
                This is the package hierarchy.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stimuli Sent</literal></term>

              <listitem>

                <para lang="en">Text area. Lists the stimuli sent to this 
                object.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stimuli Received</literal></term>

              <listitem>

                <para lang="en">Text area. Lists the stimuli received by this 
                object.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Classifier</literal></term>

              <listitem>

                <para lang="en">Drop down selector. The name of the classifier of 
                which this is an object.</para>

                <caution>

                  <para lang="en">In the current release of ArgoUML the drop down 
                  selector will include <emphasis>all</emphasis> 
                  classifiers (i.e. interfaces, actors, use cases and 
                  datatypes as well), which is what is wanted on the 
                  diagram, although it should properly be called an 
                  instance, rather than an object. In practice only 
                  instances of classes and actors make much 
                  sense.</para>

                </caution>

                <note>

                  <para lang="en">In the current release of ArgoUML the same 
                  graphical presentation is used, even if the object is 
                  actually representing an instance of an actor (when a 
                  stick-man would be more usual).</para>

                </note>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.stimulus">

        <title>
			<phrase lang="en">Stimulus</phrase>
		</title>

        <para lang="en">A stimulus is a communication between two instances and 
        is generated by an action. On a sequence diagram a stimulus is 
        associated with a link&mdash;an instance of an association linking 
        two object instances. In the UML metamodel <literal>
        Stimulus</literal> is a sub-class of <literal>
        ModelElement</literal>.</para>

        <para lang="en">The link (see <xref linkend="s1.ref.link_sequence"/>) 
        associated with a stimulus is represented on a sequence diagram 
        in ArgoUML as an arrow between the time lines of the object 
        instances (or the object head in the case of stimulus create, 
        described below) labeled with the name of the action (if any), 
        and the action, separated by a colon (:). The type of line and 
        arrowhead depends on the type of action that generated the 
        stimulus:</para>

        <itemizedlist>

          <listitem>

            <para lang="en"><literal>Stimulus Call</literal>. Generated by a call 
            action, itself the result of an operation of a class. Shown 
            as a solid line with a solid arrowhead to the time line of 
            the object instance receiving the stimulus.</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>Stimulus Create</literal>. Generated by a 
            create action for the class for which an instance is to be 
            created Shown as a solid line with a solid arrowhead to the 
            object head of the object instance being created.</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>Stimulus Destroy</literal>. Generated by a 
            destroy action of the originating object. Shown as a solid 
            line with an open arrowhead terminating in a diagonal cross 
            at the end of the time line of the receiving (destroyed) 
            object instance.</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>Stimulus Send</literal>. Generated by a send 
            action, the result of a signal raised by an operation of 
            the sending object instance and handled by the receiving 
            object instance. Shown as a solid line with half an open 
            arrowhead.</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>Stimulus Return</literal>. Generated by an 
            object instance that has received an earlier call stimulus 
            and is returning a result to the calling object instance. 
            Shown as a dotted line with an open arrowhead.</para>

          </listitem>

        </itemizedlist>

        <note>

          <para lang="en">ArgoUML does not allow you to create stimuli directly, 
          but instead provides tools to create stimuli of each of the 
          five types above.</para>

        </note>

        <caution>

          <para lang="en">In the current release of ArgoUML there is no way to 
          show a terminate action where an object instance destroys 
          itself. One way is to draw a destroy action that loops back 
          to the object itself, give it an action with no name and use 
          the style tab to set an invisible line, but this still leaves 
          the arrow head showing, which is unsightly. It is also 
          semantically incorrect anyway to use a destroy action to 
          represent a terminate action.</para>

        </caution>

        <sect2>

          <title>
			<phrase lang="en">Stimulus Details Tabs</phrase>
		</title>

          <para lang="en">The details tabs that are active for stimuli are as 
          follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.stimulus_property_toolbar"/> and 
                <xref linkend="s2.ref.stimulus_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Style</literal></term>

              <listitem>

                <para lang="en">Standard tab. The values for the bounds of the 
                stimulus notionally define the bounding box of the 
                stimulus and its time line. However if you change them 
                it will have no effect, and the original values will be 
                reset when you next revisit the tab.</para>

                <para lang="en">Altering the <literal>Fill</literal> and <literal>
                Shadow</literal> entries has no effect. Rather 
                bizarrely you can set the <literal>Line</literal> entry 
                and it will draw a line around the signal, which is not 
                a standard UML representation.</para>

                <tip>

                  <para lang="en">To change the color of the line, you should 
                  select the associated link (click on it a little way 
                  from the stimulus) and use its style tab (see 
                  <xref linkend="s1.ref.link_sequence"/>).</para>

                </tip>

                <caution>

                  <para lang="en">In the current release of ArgoUML changing the 
                  values of the <literal>Bounds</literal> field is 
                  possible, but will make only a temporary change to 
                  the position of the stimulus. Selecting any model element 
                  on the screen causes the stimulus to return to its 
                  original position and the original values to be 
                  restored.</para>

                </caution>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Source</literal></term>

              <listitem>

                <para lang="en">Standard tab, but with no contents.</para>

                <caution>

                  <para lang="en">A stimulus should not generate any code, so 
                  having this tab active is probably a mistake.</para>

                </caution>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Constraints</literal></term>

              <listitem>

                <para lang="en">Standard tab. ArgoUML only supports constraints 
                on Classes and Features (Attributes, Operations, 
                Receptions, and Methods), so this tab is grayed 
                out.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Stimulus</literal> has the following standard tagged 
                values defined.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>derived</literal> (from the 
                    superclass, <literal>ModelElement</literal>). 
                    Values <literal>true</literal>, meaning the 
                    stimulus is redundant&mdash;it can be formally derived 
                    from other elements, or <literal>false</literal> 
                    meaning it cannot.</para>

                    <note>

                      <para lang="en">Derived stimuli still have their value in 
                      analysis and design to introduce useful names or 
                      concepts, and in design to avoid 
                      re-computation.</para>

                    </note>

                  </listitem>

                </itemizedlist>

                <note>

                  <para lang="en">The UML <literal>Element</literal> metaclass 
                  from which all other model elements are derived includes 
                  the tagged element <literal>documentation</literal> 
                  which is handled by the <emphasis>documentation 
                  tab</emphasis> under ArgoUML</para>

                </note>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.stimulus_property_toolbar">

          <title>
			<phrase lang="en">Stimulus Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the stimulus from the model</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram. To delete 
                  an stimulus from the diagram, but keep it within the 
                  model, use the main menu <literal>Remove From 
                  Diagram</literal> (or press the Delete key).</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.stimulus_property_fields">

          <title>
			<phrase lang="en">Property Fields For Stimulus</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <para lang="en">Text box. There is no convention for naming 
                stimuli, and it is quite normal to leave them unnamed. 
                The action is sufficient identification.</para>

                <tip>

                  <para lang="en">It is sometimes useful to give simple names to 
                  stimuli, so they can be referred to in attached notes 
                  giving timing constraints.</para>

                </tip>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Action</literal></term>

              <listitem>

                <para lang="en">Text box. This is used to identify the action 
                that generated the stimulus.</para>

                <caution>

                  <para lang="en">The current release of ArgoUML only implements 
                  actions as textual descriptions.</para>

                  <para lang="en">As a practical convention it is suggested that 
                  call actions are shown as the name of the operation 
                  generating the action with any arguments in 
                  parentheses and that send actions are shown as the 
                  name of the signal generating the action with any 
                  arguments in parentheses. Return actions should be 
                  shown as the expression for the value they return, or 
                  empty otherwise. Create and destroy actions should be 
                  left empty, since they are implied by their 
                  representation.</para>

                </caution>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Drop down selector. Stimulus has no stereotypes 
                by default in the UML standard, but ArgoUML provides 
                the stereotypes, <literal>machine</literal>, <literal>
                organization</literal> and <literal>
                person</literal>.</para>

                <caution>

                  <para lang="en">ArgoUML also provides the stereotype <literal>
                  realize</literal> for stimuli. This appears to be an 
                  error, since this stereotype properly belongs to the 
                  <literal>Abstraction</literal> metaclass.</para>

                </caution>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Navigate Stereotype</literal></term>

              <listitem>

                <para lang="en"><guiicon><inlinemediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/icons/navigate_stereotype.gif"
                 format="GIF"/></imageobject></inlinemediaobject></guiicon> 
                icon. If a stereotype has been selected, this will 
                navigate to the stereotype property panel (see 
                <xref linkend="s1.ref.stereotype_class"/>).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Sender</literal></term>

              <listitem>

                <para lang="en">Text box. Identifies the instance which sent this 
                stimulus.</para>

                <para lang="en">Button&nbsp;1 click navigates to the sender instance, 
                button&nbsp;2 gives a pop up menu with one entry.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Open</literal>. Navigate to the 
                    selected sender instance.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Receiver</literal></term>

              <listitem>

                <para lang="en">Text box. Identifies the instance which receives 
                this stimulus.</para>

                <para lang="en">Button&nbsp;1 click navigates to the receiver 
                instance, button&nbsp;2 gives a pop up menu with one 
                entry.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Open</literal>. Navigate to the 
                    selected receiver instance.</para>

                  </listitem>

                </itemizedlist>

                <warning>

                  <para lang="en">In the current release of ArgoUML this field is 
                  broken. It always shows the entry <literal>
                  none</literal> and the pop-up menu is grayed 
                  out.</para>

                </warning>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Namespace</literal></term>

              <listitem>

                <para lang="en">Text box. Records the namespace for the stimulus. 
                This is the package hierarchy.</para>

                <para lang="en">Button&nbsp;1 click on the entry will navigate to the 
                package defining this namespace (or the model for the 
                top level namespace).</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Stimulus Call</phrase>
		</title>

        <para lang="en">This tool creates a stimulus associated with a call 
        action on the diagram, creating at the same time the associated 
        link between sender and receiving instances.</para>

        <para lang="en">All details tabs and properties are identical to to that 
        of stimulus in general (see <xref linkend="s1.ref.stimulus"/>). 
        Its graphical representation on the diagram is that of a 
        stimulus associated with a call action, i.e. a solid line with 
        a solid arrow head.</para>

        <note>

          <para lang="en">Because the current release of ArgoUML does not fully 
          implement actions, there is no enforcement of the 
          relationship to a call action.</para>

        </note>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Stimulus Create</phrase>
		</title>

        <para lang="en">This tool creates a stimulus associated with a create 
        action on the diagram, creating at the same time the associated 
        link between sender and receiving instances.</para>

        <para lang="en">All details tabs and properties are identical to to that 
        of stimulus in general (see <xref linkend="s1.ref.stimulus"/>). 
        Its graphical representation on the diagram is that of a 
        stimulus associated with a create action, i.e. a solid line 
        with a solid arrow head terminating at the head of the created 
        instance.</para>

        <note>

          <para lang="en">Because the current release of ArgoUML does not fully 
          implement actions, there is no enforcement of the 
          relationship to a create action.</para>

        </note>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Stimulus Destroy</phrase>
		</title>

        <para lang="en">This tool creates a stimulus associated with a destroy 
        action on the diagram, creating at the same time the associated 
        link between sender and receiving instances.</para>

        <para lang="en">All details tabs and properties are identical to to that 
        of stimulus in general (see <xref linkend="s1.ref.stimulus"/>). 
        Its graphical representation on the diagram is that of a 
        stimulus associated with a destroy action, i.e. a solid line 
        with an open arrow head terminating at a cross at the bottom of 
        the destroyed instance&apos;s time line.</para>

        <note>

          <para lang="en">Because the current release of ArgoUML does not fully 
          implement actions, there is no enforcement of the 
          relationship to a destroy action.</para>

        </note>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Stimulus Send</phrase>
		</title>

        <para lang="en">This tool creates a stimulus associated with a send 
        action on the diagram, creating at the same time the associated 
        link between sender and receiving instances.</para>

        <para lang="en">All details tabs and properties are identical to to that 
        of stimulus in general (see <xref linkend="s1.ref.stimulus"/>). 
        Its graphical representation on the diagram is that of a 
        stimulus associated with a send action, i.e. a solid line with 
        half an open arrow head.</para>

        <note>

          <para lang="en">Because the current release of ArgoUML does not fully 
          implement actions, there is no enforcement of the 
          relationship to a send action.</para>

        </note>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Stimulus Return</phrase>
		</title>

        <para lang="en">This tool creates a stimulus associated with a return 
        action on the diagram, creating at the same time the associated 
        link between sender and receiving instances.</para>

        <para lang="en">All details tabs and properties are identical to to that 
        of stimulus in general (see <xref linkend="s1.ref.stimulus"/>). 
        Its graphical representation on the diagram is that of a 
        stimulus associated with a return action, i.e. a dotted line 
        with an open arrow head.</para>

        <note>

          <para lang="en">Because the current release of ArgoUML does not fully 
          implement actions, there is no enforcement of the 
          relationship to a return action.</para>

        </note>

      </sect1>

      <sect1 id="s1.ref.link_sequence">

        <title>
			<phrase lang="en">Link</phrase>
		</title>

        <para lang="en">A link is an instance of an association. In the UML 
        metamodel <literal>Link</literal> is a sub-class of <literal>
        Instance</literal>. Within a sequence diagram links are created 
        indirectly when an associated stimulus is created.</para>

        <para lang="en">An link is represented on a sequence diagram in ArgoUML 
        as a line connecting the instances concerned. However on a 
        sequence diagram the representation is modified to reflect the 
        type of action associated with the stimulus carried on the link 
        (see <xref linkend="s1.ref.stimulus"/>).</para>

        <sect2>

          <title>
			<phrase lang="en">Link Details Tabs</phrase>
		</title>

          <para lang="en">The details tabs that are active for links are as 
          follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See <xref linkend="s2.ref.link_property_toolbar"/>
                 and <xref linkend="s2.ref.link_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>
                <note>
                  <para lang="en">
                    The values in the "bounds" field of the 
                    link
                    are not editable, since they are determined 
                    by the properties of the endpoints of the line.
                  </para>
                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Source</literal></term>

              <listitem>

                <para lang="en">Standard tab, but with no contents.</para>

                <caution>

                  <para lang="en">A link should not generate any code, so having 
                  this tab active is probably a mistake.</para>

                </caution>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Link</literal> has the following standard tagged values 
                defined.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>persistence</literal> (from the 
                    superclass, <literal>Instance</literal>. Showing 
                    the permanence of the state information associated 
                    with the link. Values <literal>transitory</literal> 
                    (state is destroyed when the link is destroyed) and 
                    <literal>persistent</literal> (state is preserved 
                    when the link is destroyed).</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>derived</literal> (from the 
                    superclass, <literal>ModelElement</literal>). 
                    Values <literal>true</literal>, meaning the link is 
                    redundant&mdash;it can be formally derived from other 
                    elements, or <literal>false</literal> meaning it 
                    cannot.</para>

                    <note>

                      <para lang="en">Derived links still have their value in 
                      analysis and design to introduce useful names or 
                      concepts, and in design to avoid 
                      re-computation.</para>

                    </note>

                  </listitem>

                </itemizedlist>

                <note>

                  <para lang="en">The UML <literal>Element</literal> metaclass 
                  from which all other model elements are derived includes 
                  the tagged element <literal>documentation</literal> 
                  which is handled by the <emphasis>documentation 
                  tab</emphasis> under ArgoUML</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Checklist</literal></term>

              <listitem>

                <para lang="en">Standard tab for a Classifier.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.link_property_toolbar">

          <title>
			<phrase lang="en">Link Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                link, navigating immediately to the properties tab for 
                that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the link from the model</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram. To delete 
                  an link from the diagram, but keep it within the 
                  model, use the main menu <literal>Remove From 
                  Diagram</literal> (or press the Delete key).</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.link_property_fields">

          <title>
			<phrase lang="en">Property Fields For Link</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <para lang="en">Text box. The name of the link. By convention 
                link names start with a lower case letter and use bumpy 
                caps to divide words within the name.</para>

                <note>

                  <para lang="en">ArgoUML does not enforce this naming 
                  convention.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Drop down selector. Link has no stereotypes by 
                default in the UML standard.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Navigate Stereotype</literal></term>

              <listitem>

                <para lang="en"><guiicon><inlinemediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/icons/navigate_stereotype.gif"
                 format="GIF"/></imageobject></inlinemediaobject></guiicon> 
                icon. If a stereotype has been selected, this will 
                navigate to the stereotype property panel (see 
                <xref linkend="s1.ref.stereotype_class"/>).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Namespace</literal></term>

              <listitem>

                <para lang="en">Text box. Records the namespace for the link. 
                This is the package hierarchy.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Connections</literal></term>

              <listitem>

                <para lang="en">List box. Lists the connections of the link, i.e. 
                the link-ends.</para>

                <para lang="en">Button&nbsp;1 double click on the entry will navigate 
                to the link-end.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

    </chapter>

    <chapter id="ch.ref.entstate">

      <title>
			<phrase lang="en">Statechart Diagram Model Element Reference</phrase>
		</title>

      <sect1>

        <title>
			<phrase lang="en">Introduction</phrase>
		</title>

        <para lang="en">This chapter describes each model element that can be created 
        within a statechart diagram. Note that some sub-model elements of 
        model elements on the diagram may not actually themselves appear on 
        the diagram.</para>

        <para lang="en">There is a close relationship between this material and 
        the Properties Tab of the Details Pane (see 
        <xref linkend="s1.ref.proptab"/>). That section covers 
        Properties in general, in this chapter they are linked to 
        specific model elements.</para>

        <para lang="en"><xref linkend="fig.ref.state_diagram"/> and 
        <xref linkend="fig.ref.state_diagram2"/> show statechart 
        diagrams with most possible model elements displayed.</para>

        <figure float="1" id="fig.ref.state_diagram">

          <title>
			<phrase lang="en">Statechart diagram model elements 1.</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/state_diagram_artifacts1.png"
           format="PNG"/></imageobject></mediaobject></screenshot>
        </figure>

        <figure float="1" id="fig.ref.state_diagram2">

          <title>
			<phrase lang="en">Statechart diagram model elements 2.</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/build_house.png"
           format="PNG"/></imageobject></mediaobject></screenshot>
        </figure>

        <sect2 id="s2.ref.state_limitations">

          <title>
			<phrase lang="en">Limitations Concerning Statechart Diagrams in 
          ArgoUML</phrase>
		</title>

          <para lang="en">The statechart diagrams support the 7 action types 
          defined (CallAtion, CreateAction, DestroyAction,
          ReturnAction, SendAction, 
          TerminateAction and UninterpretedAction), 
          but there is no way to use the same action 
          more than once.
          Also, in a few cases, it is not possible to 
          set or select the related elements; 
          e.g.there is no way to select a signal for a SendAction. 
          </para>

          <para lang="en">Code generation from statechart diagrams is not 
          developed yet.</para>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.state">

        <title>
			<phrase lang="en">State</phrase>
		</title>

        <para lang="en">A state models a situation during which some (usually 
        implicit) invariant condition holds for the parent class. This 
        invariant may be a static situation such as an object waiting 
        for some external event to occur, or some dynamic activity 
        <quote>in progress</quote>.</para>

        <para lang="en">A state is represented on a statechart diagram in ArgoUML 
        as a rectangle with rounded corners, with a horizontal line 
        separating the name at the top from the description of the 
        behavior below. The description of the behavior includes the 
        entry and exit actions and any internal transitions.</para>

        <sect2>

          <title>
			<phrase lang="en">State Details Tabs</phrase>
		</title>

          <para lang="en">The details tabs that are active for states are as 
          follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.state_property_toolbar"/> and 
                <xref linkend="s2.ref.state_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. The values for the bounds of the 
                state define the bounding box of the state.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.state_property_toolbar">

          <title>
			<phrase lang="en">State Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                state, navigating immediately to the properties tab for 
                that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the state from the model</para>

                <note>

                  <para lang="en">This is a deletion from the model, 
                  <emphasis>not</emphasis> just the diagram. 
                  You can not just remove 
                  a state from the diagram, and keep it within the 
                  model, as is possible in other diagrams.
                  </para>

                </note>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.state_property_fields">

          <title>
			<phrase lang="en">Property Fields For State</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <para lang="en">Text box. The name of the state. By convention 
                state names start with a lower case letter and use 
                bumpy caps to divide words within the name.</para>

                <note>

                  <para lang="en">ArgoUML does not enforce this naming 
                  convention.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Container</literal></term>

              <listitem>

                <para lang="en">Text box. Shows the container of the state. This 
                is the state hierarchy.</para>

                <para lang="en">Button&nbsp;1 double click on the entry will navigate 
                to the composite state that contains this state. All 
                states are at least contained by the otherwise hidden 
                top-level state (named <quote>top</quote>) that is the 
                root of the state containment hierarchy.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Entry-Action</literal></term>

              <listitem>

                <para lang="en">Text box. Shows the name of the action (if any) 
                to be executed on entry to this state.</para>

                <note>

                  <para lang="en">This field shows the name of the action, while 
                  on the diagram the expression of the action is 
                  shown.</para>

                </note>

                <para lang="en">Button&nbsp;1 double-click navigates to the selected 
                entry, button&nbsp;2 gives a pop up menu with two 
                entries:</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>New</literal>. Add a new Entry 
                    action of a certain kind. This menu has the 
                    following submenus to select the kind of action: 
                    Call Action, Create Action, Destroy Action, Return 
                    Action, Send Action, Terminate Action, 
                    Uninterpreted Action.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Delete From Model</literal>. Delete 
                    the Entry-Action.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Exit-Action</literal></term>

              <listitem>

                <para lang="en">Text box. Shows the action (if any) to be 
                executed on exit from this state.</para>

                <para lang="en">Button&nbsp;1 click navigates to the selected action, 
                button&nbsp;2 gives a pop up menu with two entries.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>New</literal>. Add a new Exit action 
                    of a certain kind. This menu has the following 
                    submenus to select the kind of action: Call Action, 
                    Create Action, Destroy Action, Return Action, Send 
                    Action, Terminate Action, Uninterpreted 
                    Action.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Delete From Model</literal>. Delete 
                    the Exit-Action.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Do-Activity</literal></term>

              <listitem>

                <para lang="en">Text box. Shows the action (if any) to be 
                executed while being in this state.</para>

                <para lang="en">Button&nbsp;1 click navigates to the selected action, 
                button&nbsp;2 gives a pop up menu with two entries.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>New</literal>. Add a new Do-Activity 
                    (action) of a certain kind. This menu has the 
                    following submenus to select the kind of action: 
                    Call Action, Create Action, Destroy Action, Return 
                    Action, Send Action, Terminate Action, 
                    Uninterpreted Action.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Delete From Model</literal>. Delete 
                    the Do-Activity.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>
            
            <varlistentry>

              <term><literal>Deferrable Events</literal></term>

              <listitem>

                <para lang="en">Text box. Shows a list of events 
                that are candidates to be retained 
                by the state machine 
                if they trigger no transitions out of the
                state (not consumed).
                </para>

                <para lang="en">Button&nbsp;1 click navigates to the selected event, 
                button&nbsp;2 on an event 
                gives a pop up menu with the following entries.
                </para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Select</literal>. Allows 
                    to add already existing events 
                    to the list of deferred ones.
                    </para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>New</literal>. Add a new event 
                    of a certain kind. This menu has the 
                    following submenus to select the kind of event: 
                    Call Event, Change Event, Signal Event, Time Event.
                    </para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Delete From Model</literal>. Delete 
                    the event.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Incoming</literal></term>

              <listitem>

                <para lang="en">Text area. Lists all the transitions that enter 
                this state.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the selected 
                entry.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Outgoing</literal></term>

              <listitem>

                <para lang="en">Text area. Lists all the transitions that leave 
                this state.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the selected 
                action.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Internal Transitions</literal></term>

              <listitem>

                <para lang="en">Text area. Lists all the internal transitions of 
                the state. Such transitions neither exit nor enter the 
                state, so they do not cause a state change. Which means 
                that the Entry and Exit actions are not invoked.</para>

                <note>

                  <para lang="en">This field shows the name of the transition, 
                  while on the diagram the name of the trigger is 
                  shown, separated with a <literal>/</literal> from
                  the effect script.</para>

                </note>

                <para lang="en">Button&nbsp;1 double-click navigates to the selected 
                transition, button&nbsp;2 gives a pop up menu with one 
                entry.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>New</literal>. Add a new internal 
                    transition.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.action_state">

        <title>
			<phrase lang="en">Action</phrase>
		</title>

        <para lang="en">An action specifies an executable statement and is an 
        abstraction of a computational procedure that can change the 
        state of the model. In the UML metamodel it is a child of 
        <literal>ModelElement</literal>. Since in the metamodel an 
        ActionSequence is itself an Action that is an aggregation of 
        other actions (i.e. the &quot;composite&quot; pattern), an 
        ActionSequence may be used anywhere an action may be.</para>

        <para lang="en">There are a number of different types of action that are 
        children of Action within the UML metamodel.</para>

        <itemizedlist>

          <listitem>

            <para lang="en"><literal>CreateAction</literal>. Associated with a 
            classifier, this action creates an instance of that 
            classifier.</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>CallAction</literal>. Associated with an 
            operation, this action calls the given 
            operation.</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>ReturnAction</literal>. An action used to 
            return a result to an earlier caller.</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>SendAction</literal>. Associated with a 
            signal, this action causes the signal to be raised.</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>TerminateAction</literal>. Causes the 
            invoking object to self-destruct.</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>UninterpretedAction</literal>. An action 
            used to specify language-specific actions that do not 
            classify under the other types of actions.</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>DestroyAction</literal>. Destroys the 
            specified target object.</para>

          </listitem>

        </itemizedlist>

        <para lang="en">An action is represented on the diagram by the text of 
        its expression.</para>

        <caution>
          <para lang="en">The V0.20 release of ArgoUML only partially 
                  implements actions. As a practical convention it is 
                  suggested that call actions are shown as the name of 
                  the operation generating the action with any 
                  arguments in parentheses and that send actions are 
                  shown as the name of the signal generating the action 
                  with any arguments in parentheses. Return actions 
                  should be shown as the expression for the value they 
                  return, or empty otherwise. Create and destroy 
                  actions should shown as <literal>
                  create(&lt;target&gt;)</literal> and <literal>
                  destroy(&lt;target&gt;)</literal>. Terminate action 
                  should be shown as <literal>
                  terminate</literal>.
          </para>
        </caution>
        <sect2>

          <title>
			<phrase lang="en">Action Details Tabs</phrase>
		</title>

          <para lang="en">The details tabs that are active for actions are as 
          follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.action_property_toolbar"/> and 
                <xref linkend="s2.ref.action_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Standard tab. 
                In the UML metamodel, <literal>
                Action</literal> has no standard 
                stereotypes defined.
                </para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Action</literal> has no standard tagged 
                value defined.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.action_property_toolbar">

          <title>
			<phrase lang="en">Action Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the hierarchical 
                structure.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                action, navigating immediately to the properties tab 
                for that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the Action from the model</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.action_property_fields">

          <title>
			<phrase lang="en">Property Fields For Action</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <para lang="en">Text box. The name of the action. By convention 
                action names start with a lower case letter and use 
                bumpy caps to divide words within the name.</para>

                <note>

                  <para lang="en">ArgoUML does not enforce this naming 
                  convention.</para>

                </note>

              </listitem>

            </varlistentry>
            
            <varlistentry>

              <term><literal>Asynchronous</literal></term>

              <listitem>
                <para lang="en">Check box. 
                Indicates if a dispatched Stimulus is asynchronous or not.
                </para>
              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Script</literal></term>

              <listitem>
                <para lang="en">Double text box with the expression that defines the 
                action.
                This field consists of two parts, 
                the first one contains the body (script) of the expression, 
                and the second one contains the particular programming language 
                used to write the expression.
                </para>
              </listitem>

            </varlistentry>
             
            <varlistentry>

              <term><literal>Recurrence</literal></term>

              <listitem>

                <para lang="en">Double Text box. 
                An expression stating how many times the Action should be performed.
                The field consists of two parts: the first one for the expression, 
                the second one for the language it is written in.
                </para>

           </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Arguments</literal></term>

              <listitem>

                <para lang="en">Text box. 
                This is an ordered list with the arguments of the action.
                </para>
				
				<para lang="en">Button&nbsp;1 double-click on any of the arguments 
                navigates to that argument, button&nbsp;2 click brings up a 
                pop up menu with two entries.</para>

                <itemizedlist>

                  <listitem>
                    <para lang="en"><literal>New</literal>. Create a 
                    new argument and navigate to it.</para>
                  </listitem>

                  <listitem>
                    <para lang="en"><literal>Remove</literal>. Deletes the 
                    argument from the model.</para>
                  </listitem>

                </itemizedlist>
              </listitem>

            </varlistentry>

           <varlistentry>

              <term><literal>Instantiation (only for CreateAction)</literal></term>

              <listitem>

                <para lang="en">Text box. 
                This shows the classifier that gets instantiated by the create-action.
                </para>
				
				<para lang="en">Button&nbsp;1 double-click on the classifier 
                navigates to that argument, button&nbsp;2 click brings up a 
                pop up menu with one entry.</para>

                <itemizedlist>

                  <listitem>
                    <para lang="en"><literal>Add...</literal>. 
                    This brings up a dialog box that allows 
                    selecting the one classifier that gets created.</para>
                  </listitem>

                </itemizedlist>
              </listitem>

            </varlistentry>

          </variablelist>


   
        </sect2>

      </sect1>

      <sect1 id="s1.ref.composite_state">

        <title>
			<phrase lang="en">Composite State</phrase>
		</title>

        <para lang="en">A composite state is a state that contains other states 
        (known as sub-states), allowing hierarchical state machines to 
        be constructed.</para>

        <para lang="en">A composite state is represented on a statechart diagram 
        in ArgoUML as a large rectangle with rounded corners, with a 
        horizontal line separating the name at the top from the 
        description of the behavior and the model of the sub-state 
        machine below. The description of the behavior includes the 
        entry, exit and do actions and any internal transitions.</para>

        <para lang="en">Sub-states are placed within a composite machine by 
        placing them entirely within the composite state. This can be 
        done at creation time, i.e. when creating the state for the 
        first time in the editing pane. Alternatively, an existing 
        state can be dragged onto a composite state.</para>

        <para lang="en">The description of a composite state is almost identical 
        to that of a state (see <xref linkend="s1.ref.state"/> and so 
        is not duplicated here. The only differences is one additional 
        tool, one missing field, 
        and one additional field, which are described as 
        follows.</para>

        <variablelist>

          <varlistentry>

            <term><guiicon><inlinemediaobject><imageobject>
            <imagedata align="center"
             fileref="images/icons/concurrent_region.gif"
             format="GIF"/></imageobject></inlinemediaobject></guiicon> 
            <literal>New Concurrent Region</literal></term>

            <listitem>

              <para lang="en">Adds a new concurrent region to the selected 
              composite state.</para>

            </listitem>

          </varlistentry>

          <varlistentry>

            <term>
            <literal>Deferrable Events</literal></term>

            <listitem>

              <para lang="en">This field is missing from V0.20 of ArgoUML.</para>

            </listitem>

          </varlistentry>

          <varlistentry>

            <term><literal>Subvertices</literal></term>

            <listitem>

              <para lang="en">Text area. Lists all the sub-states contained 
              within this composite state.</para>

              <para lang="en">Button&nbsp;1 double-click navigates to the selected 
              entry, button&nbsp;2 gives a pop up menu with two 
              entries.</para>

              <itemizedlist>

                <listitem>

                  <para lang="en"><literal>New</literal>. A submenu pops up, with 
                  a selection of 7 kinds of states, which can be added 
                  to the model. The 7 kinds of states supported are: 
                  Pseudo State, Synch State, Stub State, Composite 
                  State, Simple State, Final State, Submachine 
                  State.</para>

                  <warning>

                    <para lang="en">Using this way of adding states to the model 
                    is not a good idea, since you will have to add the 
                    state to the diagram later. This can be done by 
                    selecting it in the explorer, and activating the 
                    pop-up menu, and selecting <quote>Add to 
                    Diagram</quote>. It is advisable to use the toolbar 
                    of the diagram instead.</para>

                  </warning>

                </listitem>

                <listitem>

                  <para lang="en"><literal>Delete From Model</literal> Delete the 
                  selected state from the model.</para>

                </listitem>

              </itemizedlist>

            </listitem>

          </varlistentry>

        </variablelist>

      </sect1>

      <sect1 id="s1.ref.concurrent_region">

        <title>
			<phrase lang="en">Concurrent Region</phrase>
		</title>

        <para lang="en">A Concurrent Region is an <quote>orthogonal 
        conjunctive</quote> component of a composite state, allowing 
        concurrency to be constructed.</para>

        <para lang="en">A concurrent region is represented on the diagram by a 
        tile of a composite state, separated from other regions by a 
        dashed line.</para>

        <para lang="en">ArgoUML currently only supports a horizontal division of 
        a concurrent composite state in regions.</para>

        <para lang="en">The description of the details panels of a concurrent 
        region is identical to that of a composite state (see 
        <xref linkend="s1.ref.composite_state"/> and so is not 
        duplicated here.</para>

      </sect1>

      <sect1 id="s1.ref.submachine_state">

        <title>
			<phrase lang="en">Submachine State</phrase>
		</title>

        <para lang="en">A submachine state is a syntactical convenience that 
        facilitates reuse and modularity. It is a shorthand that 
        implies a macro-like expansion by another state machine and is 
        semantically equivalent to a composite state. The state machine 
        that is inserted is called the referenced state machine while 
        the state machine that contains the submachine state is called 
        the containing state machine. The same state machine may be 
        referenced more than once in the context of a single containing 
        state machine. In effect, a submachine state represents a 
        <emphasis>call</emphasis> to a state machine 
        <emphasis>subroutine</emphasis> with one or more entry 
        and exit points. The entry and exit points are specified by 
        stub states. SubmachineState is a child of State.</para>

        <para lang="en">The submachine state is depicted as a normal state with 
        the additional <emphasis>include</emphasis>
         declaration above (and separated by a 
        line from) its internal transitions compartment. The expression 
        following the <literal>include</literal> reserved word is the 
        name of the invoked submachine.</para>

        <para lang="en">ArgoUML currently only supports a horizontal division of 
        a concurrent composite state in regions.</para>

        <para lang="en">The description of the details panels of a concurrent 
        region is almost identical to that of a composite state (see 
        <xref linkend="s1.ref.composite_state"/> and so is not 
        duplicated here. The only difference is one additional 
        field:</para>

        <variablelist>

          <varlistentry>

            <term><literal>Submachine</literal></term>

            <listitem>

              <para lang="en">Drop-down selector. Allows selecting the submachine 
              included within this composite state.</para>

            </listitem>

          </varlistentry>

        </variablelist>

      </sect1>

      <sect1 id="s1.ref.stub_state">

        <title>
			<phrase lang="en">Stub State</phrase>
		</title>

        <para lang="en">A stub state only appears on a submachine state.</para>

        <para lang="en">A submachine state represents the invocation of a state 
        machine defined elsewhere. In the general case, an invoked 
        state machine can be entered at any of its substates or through 
        its default (initial) pseudostate. Similarly, it can be exited 
        from any substate or as a result of the invoked state machine 
        reaching its final state. The non-default entry and exits are 
        specified through <emphasis>stub states</emphasis>. In the UML 
        metamodel, StubState is a child of State.</para>

        <para lang="en">Every Stub State has a label on the diagram, which 
        corresponds to the pathname represented by the <quote>Reference 
        State</quote> attribute of the stub state.</para>

        <para lang="en">The description of the details panels of a stub state is 
        almost identical to that of a pseudo state (see 
        <xref linkend="s1.ref.pseudostate"/> and so is not duplicated 
        here. The only difference is one additional field:</para>

        <variablelist>

          <varlistentry>

            <term><literal>Reference State</literal></term>

            <listitem>

              <para lang="en">Drop-down selector. Allows entering the path name 
              of the reference state.</para>

            </listitem>

          </varlistentry>

        </variablelist>

      </sect1>

      <sect1 id="s1.ref.transition_state">

        <title>
			<phrase lang="en">Transition</phrase>
		</title>

        <para lang="en">A transition is a directed relation between a source 
        state (any kind, e.g. composite state) and a destination state 
        (any kind, e.g. composite state). Within the UML metamodel, 
        <literal>Transition</literal> is a sub-class of <literal>
        ModelElement</literal>.</para>

        <para lang="en">A transition is represented on a statechart diagram in 
        ArgoUML as a line with arrow connecting the source to the 
        destination state. Next to this line is a string containing the 
        following three parts: The trigger event (e.g. a Call Event), 
        which may have parameters between brackets <literal>
        ()</literal>. Next follows (if any) the guard in square 
        brackets (<literal>[]</literal>). Finally, if there is an 
        effect (e.g. Call Action) defined, a slash (
        <literal>/</literal>) followed by the expression of the 
        action.</para>

        <sect2>

          <title>
			<phrase lang="en">Transition Details Tabs</phrase>
		</title>

          <para lang="en">The details tabs that are active for transitions are as 
          follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.transition_property_toolbar"/> 
                and <xref linkend="s2.ref.transition_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. </para>
                <note>
                  <para lang="en">
                    The values in the "bounds" field of the 
                    transition
                    are not editable, since they are determined 
                    by the properties of the endpoints of the line.
                  </para>
                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Standard tab.  In the UML metamodel, <literal>
                Transition</literal> has no stereotypes defined by default.
                </para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Transition</literal> has no standard tagged 
                values defined.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Checklist</literal></term>

              <listitem>

                <para lang="en">Standard tab for a transition.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.transition_property_toolbar">

          <title>
			<phrase lang="en">Transition Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up in the hierarchy to the parent state 
                machine.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                transition, navigating immediately to the properties 
                tab for that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the transition from the model.</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram. To delete 
                  a transition from the diagram, but keep it within the 
                  model, use the main menu <literal>Remove From 
                  Diagram</literal> (or press the Delete key).</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.transition_property_fields">

          <title>
			<phrase lang="en">Property Fields For Transition</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <para lang="en">Text box. The name of the transition. By 
                convention transition names start with a lower case 
                letter and use bumpy caps to divide words within the 
                name.</para>

                <note>

                  <para lang="en">ArgoUML does not enforce this naming 
                  convention.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>StateMachine</literal></term>

              <listitem>

                <para lang="en">Text box. Shows the name of the parent 
                StateMachine for the transition.</para>

                <para lang="en">Button&nbsp;1 double-click navigates to the 
                StateMachine shown.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>State</literal></term>

              <listitem>

                <para lang="en">Text box. Shows the name of the parent State in 
                case of an internal transition.</para>

                <para lang="en">Button&nbsp;1 double-click navigates to the State 
                shown.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Source</literal></term>

              <listitem>

                <para lang="en">Text box. Shows the source state for the 
                transition.</para>

                <para lang="en">Button&nbsp;1 double-click navigates to the selected 
                entry.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Target</literal></term>

              <listitem>

                <para lang="en">Text box. Shows the target state for the 
                transition.</para>

                <para lang="en">Button&nbsp;1 double-click navigates to the selected 
                entry.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Trigger</literal></term>

              <listitem>

                <para lang="en">Text box. Shows the trigger event (if any) which 
                invokes this transition.</para>

                <note>

                  <para lang="en">UML does not require there to be a trigger, 
                  e.g. when a guard is defined. In this case, 
                  the transition is taken 
                  immediately if the guard is true.</para>

                </note>

                <para lang="en">Button&nbsp;1 double-click navigates to the selected 
                entry, button&nbsp;2 gives a pop up menu with three 
                entries.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Select - Add...</literal>. 
                    This Add an existing trigger 
                    event. A sub-menu opens with 4 choices: Call Event, 
                    Change Event, Signal Event, Time Event.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>New</literal>. Add a new trigger 
                    event. A sub-menu opens with 4 choices: Call Event, 
                    Change Event, Signal Event, Time Event.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Delete From Model</literal>. Delete 
                    the trigger event from the model. This feature is 
                    always downlighted in the current version of 
                    ArgoUML.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Guard</literal></term>

              <listitem>

                <para lang="en">Text box. Shows the name of a guard (if any). The 
                expression of a guard must be true before this 
                transition can be taken.</para>

                <para lang="en">Button&nbsp;1 double-click navigates to the selected 
                entry, button&nbsp;2 gives a pop up menu with one 
                entry.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>New</literal>. Add a new 
                    guard.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Effect</literal></term>

              <listitem>

                <para lang="en">Text box. Shows the action (if any) to be invoked 
                as this transition is taken.</para>

                <para lang="en">Button&nbsp;1 double-click navigates to the selected 
                action, button&nbsp;2 gives a pop up menu with two 
                entries.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>New</literal>. Add a new Effect 
                    (action) of a certain kind. This menu has the 
                    following submenus to select the kind of action: 
                    Call Action, Create Action, Destroy Action, Return 
                    Action, Send Action, Terminate Action, 
                    Uninterpreted Action.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Delete From Model</literal>. Delete 
                    the selected action from the model. 
                    </para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.call_event_state">

        <title>
			<phrase lang="en">Event</phrase>
		</title>

        <para lang="en">An event is an observable occurrence. In the UML 
        metamodel it is a child of <literal>
        ModelElement</literal>.</para>

        <para lang="en">There are a number of different types of events that are 
        children of event within the UML metamodel.</para>

        <itemizedlist>

          <listitem>

            <para lang="en"><literal>CallEvent</literal>. Associated with an 
            operation of a class, this event is caused by a call to the 
            given operation. The expected effect is that the steps of 
            the operation will be executed.</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>SignalEvent</literal>. Associated with a 
            signal, this event is caused by the signal being 
            raised.</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>TimeEvent</literal>. An event cause by 
            expiration of a timing deadline.</para>

          </listitem>

          <listitem>

            <para lang="en"><literal>ChangeEvent</literal>. An event caused by a 
            particular expression (of attributes and associations) 
            becoming true.</para>

          </listitem>

        </itemizedlist>

        <para lang="en">An event is represented by its name.</para>

        <sect2>

          <title>
			<phrase lang="en">Event Details Tabs</phrase>
		</title>

          <para lang="en">The details tabs that are active for events are as 
          follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.call_event_property_toolbar"/> 
                and <xref linkend="s2.ref.call_event_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Standard tab.
                In the UML metamodel, an <literal>
                Event</literal> has the following standard 
                stereotypes defined.
                </para>
                <itemizedlist>

                  <listitem>
                    <para lang="en"><literal>create</literal> (for a 
                    <literal>CallEvent</literal> only). 
                    Create is a stereotyped call event denoting 
                    that the instance receiving that event 
                    has just been created. 
                    For state machines, 
                    it triggers the initial transition 
                    at the topmost level of the state machine 
                    (and is the only kind of trigger 
                    that may be applied to an initial transition).
                    </para>
                  </listitem>

                  <listitem>
                    <para lang="en"><literal>destroy</literal> (for a 
                    <literal>CallEvent</literal> only). 
                    Destroy is a stereotyped call event denoting 
                    that the instance receiving the event 
                    is being destroyed.
                    </para>
                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab. In the UML metamodel, an <literal>
                Event</literal> has no standard tagged 
                values defined.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.call_event_property_toolbar">

          <title>
			<phrase lang="en">Event Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the composition structure.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                event, navigating immediately to the properties tab for 
                that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/parameter.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New parameter</literal></term>

              <listitem>

                <para lang="en">This creates a new parameter for the event 
                operation as the current parameter, navigating 
                immediately to the properties tab for that parameter 
                (see <xref linkend="s1.ref.parameter"/>).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the event from the model.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.call_event_property_fields">

          <title>
			<phrase lang="en">Property Fields For Event</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <para lang="en">Text box. The name of the event. By convention 
                event names start with a lower case letter and use 
                bumpy caps to divide words within the name in the same 
                way as operations.</para>

                <note>

                  <para lang="en">ArgoUML does not enforce this naming 
                  convention.</para>

                </note>

                <tip>

                  <para lang="en">For call events it makes sense to use the name 
                  of the associated operation. For signal events it 
                  make sense to use the name of the signal, prefixed by 
                  <literal>[sig]</literal>. For time events use the 
                  time expression, prefixed by <literal>
                  [time]</literal> and for change events the change 
                  expression, prefixed by <literal>
                  [change]</literal>.</para>

                </tip>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Namespace</literal></term>

              <listitem>

                <para lang="en">Text field. Shows the namespace for the event. 
                This is the composition hierarchy.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Parameters</literal></term>

              <listitem>

                <para lang="en">Text area, with entries for all the actual 
                parameter values of the event (see 
                <xref linkend="s1.ref.parameter"/>).</para>

                <para lang="en">Button&nbsp;1 double-click on any of the parameters 
                navigates to that parameter, button&nbsp;2 click brings up a 
                pop up menu with one entry.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>New Parameter</literal>. Create a 
                    new parameter and navigate to it.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Transition</literal></term>

              <listitem>

                <para lang="en">This shows the transition caused by the 
                event.</para>

                <para lang="en">button&nbsp;1 double-click on the transition navigates 
                to that transition.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Operations</literal></term>

              <listitem>

                <para lang="en">Drop-down selector. Only present for a Call 
                Event. This allows specifying the operation that causes 
                the event when called.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Signal</literal></term>

              <listitem>

                <para lang="en">Text field. Only present for a Signal 
                Event. This allows specifying the signal that causes 
                the event when called.</para>
                
                <para lang="en">Button&nbsp;1 double-click navigates to the selected 
                signal, button&nbsp;2 gives a pop up menu with two 
                entries.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Add...</literal>. This 
                    opens a dialog box that allows selecting 
                    an already existing signal.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>New Signal</literal>. Creates 
                    a new Signal, and navigates to it. 
                    </para>

                  </listitem>

                </itemizedlist>


              </listitem>

            </varlistentry>
            <varlistentry>

              <term><literal>When</literal></term>

              <listitem>

                <para lang="en">Double text field. Only present for a Time 
                Event. This allows expressing the time that 
                the event is called.</para>
                
                <para lang="en">The first of the two fields is for the body of the expression, 
                and the second one for the language in which it is written.</para>

              </listitem>

            </varlistentry>
            
          </variablelist>
          
          <warning>
            <para lang="en">In ArgoUML V0.20, 
            the properties panel of a change event lacks a field to enter the 
            change expression.</para>
          </warning>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.guard_state">

        <title>
			<phrase lang="en">Guard</phrase>
		</title>

        <para lang="en">A guard is associated with a transition. At the time an 
        event is dispatched, the guard is evaluated, and if false, its 
        transition is disabled. In the UML metamodel, <literal>
        Guard</literal> is a child of <literal>
        ModelElement</literal>.</para>

        <para lang="en">A guard is shown on the diagram by the text of its 
        expression in square brackets (<literal>[]</literal>).</para>

        <sect2>

          <title>
			<phrase lang="en">Guard Details Tabs</phrase>
		</title>

          <para lang="en">The details tabs that are active for guards are as 
          follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.guard_property_toolbar"/> and 
                <xref linkend="s2.ref.guard_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Standard tab, containing the stereotypes for the 
                guard. In the UML metamodel, <literal>
                Guard</literal> has no standard stereotypes
                defined.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Guard</literal> has no standard tagged 
                values defined.</para>

                  </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.guard_property_toolbar">

          <title>
			<phrase lang="en">Guard Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                guard, navigating immediately to the properties tab for 
                that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete from Model</literal></term>

              <listitem>

                <para lang="en">This deletes the guard from the model</para>

                <warning>

                  <para lang="en">This is a deletion from the model, 
                  <emphasis>not</emphasis> just the diagram.</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.guard_property_fields">

          <title>
			<phrase lang="en">Property Fields For Guard</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <para lang="en">Text box. The name of the guard. By convention 
                guard names start with a lower case letter and use 
                bumpy caps to divide words within the name.</para>

                <note>

                  <para lang="en">ArgoUML does not enforce this naming 
                  convention.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Transition</literal></term>

              <listitem>

                <para lang="en">Text box, showing the transition that owns this 
                guard.</para>

                <para lang="en">Button&nbsp;1 double-click on the transition navigates 
                to that transition.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Expression</literal></term>

              <listitem>

                <para lang="en">Text box. The expression that defines the 
                guard.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Language</literal></term>

              <listitem>

                <para lang="en">Text box. This indicates that the expression is 
                written in a particular interpretation language with 
                which to evaluate the text.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.pseudostate">

        <title>
			<phrase lang="en">Pseudostate</phrase>
		</title>

        <para lang="en">A pseudostate encompasses a number of different transient 
        vertices on a state machine diagram. They are used, typically, 
        to connect multiple transitions into more complex state 
        transitions paths. For example, by combining a transition 
        entering a fork pseudostate with a set of transitions exiting 
        the fork pseudostate, we get a compound transition that leads 
        to a set of concurrent target states. Pseudostates do not have 
        the properties of a full state and serve only as a connection 
        point for transactions (but with some semantic value). Within 
        the UML metamodel, <literal>Pseudostate</literal> is a 
        sub-class of <literal>StateVertex</literal>.</para>

        <para lang="en">The representation of a pseudostate on a statechart 
        diagram in ArgoUML depends on the particular kind of 
        pseudostate: initial, deepHistory, shallowHistory, join, fork, 
        junction and choice. ArgoUML lets you place any pseudostate 
        directly by tools for the specific types of pseudostate. These 
        are described in separate sections below (see 
        <xref linkend="s1.ref.initial_state"/>, 
        <xref linkend="s1.ref.junction_state"/>, 
        <xref linkend="s1.ref.branch_state"/>, 
        <xref linkend="s1.ref.fork_state"/>, 
        <xref linkend="s1.ref.join_state"/>, 
        <xref linkend="s1.ref.shallow_history"/> and 
        <xref linkend="s1.ref.deep_history"/>).</para>

        <sect2>

          <title>
			<phrase lang="en">Pseudostate Details Tabs</phrase>
		</title>

          <para lang="en">The details tabs that are active for pseudostates are 
          as follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.pseudostate_property_toolbar"/> 
                and <xref linkend="s2.ref.pseudostate_property_fields"/>
                 below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Standard tab, containing the stereotypes of the 
                pseudostate. In the UML metamodel, 
                <literal>PseudoState</literal> has the no standard 
                stereotypes defined.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Pseudostate</literal> has no standard tagged 
                values defined.</para>

                  </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.pseudostate_property_toolbar">

          <title>
			<phrase lang="en">Pseudostate Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                pseudostate, navigating immediately to the properties 
                tab for that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete from Model</literal></term>

              <listitem>

                <para lang="en">This deletes the pseudostate from the model</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram.</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.pseudostate_property_fields">

          <title>
			<phrase lang="en">Property Fields For Pseudostate</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <para lang="en">Text box. The name of the pseudostate. By 
                convention pseudostate names start with a lower case 
                letter and use bumpy caps to divide words within the 
                name.</para>

                <note>

                  <para lang="en">ArgoUML does not enforce this naming 
                  convention.</para>

                </note>

                <tip>

                  <para lang="en">Pseudostate names are not shown on the diagram 
                  and it is not usually necessary to give them a 
                  name.</para>

                </tip>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Container</literal></term>

              <listitem>

                <para lang="en">Text box. Shows the container of the pseudostate. 
                This is the state hierarchy.</para>

                <para lang="en">Button&nbsp;1 double click on the entry will navigate 
                to the composite state that contains this state (or the 
                top-level state that is the root of the state 
                containment hierarchy).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Incoming</literal></term>

              <listitem>

                <para lang="en">Text area. Lists any incoming transitions for the 
                pseudostate.</para>

                <para lang="en">Button&nbsp;1 double-click navigates to the selected 
                transition.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Outgoing</literal></term>

              <listitem>

                <para lang="en">Text area. Lists any outgoing transitions for the 
                pseudostate.</para>

                <para lang="en">Button&nbsp;1 double-click navigates to the selected 
                transition.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.initial_state">

        <title>
			<phrase lang="en">Initial State</phrase>
		</title>

        <para lang="en">The initial state is a pseudostate (see 
        <xref linkend="s1.ref.pseudostate"/>) representing a source for 
        a single transition to the <emphasis>default</emphasis> state 
        of a composite state. It is the state from which any initial 
        transition is made.</para>

        <para lang="en">As a consequence it is not permissible to have incoming 
        transitions. ArgoUML will not let you create such transitions, 
        and if you import a model that has such transitions, a critic 
        will complain.</para>

        <para lang="en">There can be at most one initial pseudostate in a 
        composite state, which must have (at most) one outgoing 
        transition.</para>

        <para lang="en">An initial state is represented on the diagram as a solid 
        disc.</para>

      </sect1>

      <sect1 id="s1.ref.final_state">

        <title>
			<phrase lang="en">Final State</phrase>
		</title>

        <para lang="en">If a transition reaches a final state, it implies 
        completion of the activity associated with that composite 
        state, or at the top level, of the complete state machine. In 
        the UML metamodel <literal>FinalState</literal> is a child of 
        <literal>State</literal>.</para>

        <note>

          <para lang="en">A final state is a true state (with all its 
          attributes), <emphasis>not</emphasis> a pseudostate.</para>

        </note>

        <para lang="en">Completion at the top level implies termination (i.e. 
        destruction) of the owning object instance.</para>

        <para lang="en">The representation of a final state on the diagram is a 
        circle with a small disc at its center.</para>

        <sect2>

          <title>
			<phrase lang="en">Final State Details Tabs</phrase>
		</title>

          <para lang="en">The details tabs that are active for final states are 
          as follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.final_state_property_toolbar"/> 
                and <xref linkend="s2.ref.final_state_property_fields"/>
                 below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Standard tab, containing the stereotypes of the 
                final state. In the UML metamodel, a <literal>
                Final State</literal> has the no standard tagged 
                values defined.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Final State</literal> has no standard tagged 
                values defined.</para>

                  </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.final_state_property_toolbar">

          <title>
			<phrase lang="en">Final State Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                state, navigating immediately to the properties tab for 
                that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete from Model</literal></term>

              <listitem>

                <para lang="en">This deletes the final state from the model</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram.</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.final_state_property_fields">

          <title>
			<phrase lang="en">Property Fields For Final State</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <para lang="en">Text box. The name of the final state. By 
                convention final state names start with a lower case 
                letter and use bumpy caps to divide words within the 
                name.</para>

                <note>

                  <para lang="en">ArgoUML does not enforce this naming 
                  convention.</para>

                </note>

                <tip>

                  <para lang="en">Final state names are shown on the diagram but 
                  it is not usually necessary to give them a 
                  name.</para>

                </tip>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Container</literal></term>

              <listitem>

                <para lang="en">Text box. Shows the container of the final state. 
                This is the state hierarchy.</para>

                <para lang="en">Button&nbsp;1 double click on the entry will navigate 
                to the composite state that contains this state (or the 
                top-level state that is the root of the state 
                containment hierarchy).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Entry-Action</literal></term>

              <listitem>

                <para lang="en">Text box. Shows the name of the action (if any) 
                to be executed on entry to this final state.</para>

                <para lang="en">Button&nbsp;1 double-click navigates to the selected 
                entry, button&nbsp;2 gives a pop up menu with two 
                entries:</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>New</literal>. Add a new Entry 
                    action of a certain kind. This menu has the 
                    following 7 submenus to select the kind of action: 
                    Call Action, Create Action, Destroy Action, Return 
                    Action, Send Action, Terminate Action, 
                    Uninterpreted Action.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Delete From Model</literal>. Delete 
                    the Entry-Action.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Incoming</literal></term>

              <listitem>

                <para lang="en">Text area. Lists any incoming transitions for the 
                final state.</para>

                <para lang="en">Button&nbsp;1 double-click navigates to the selected 
                transition.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Internal Transitions</literal></term>

              <listitem>

                <para lang="en">Text area. Lists all the internal transitions of 
                the state. Such transitions neither exit nor enter the 
                state, so they do not cause a state change. Which means 
                that the Entry and Exit actions are not invoked.</para>

                <para lang="en">Button&nbsp;1 double-click navigates to the selected 
                transition</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.junction_state">

        <title>
			<phrase lang="en">Junction</phrase>
		</title>

        <para lang="en">Junction is a pseudostate (see 
        <xref linkend="s1.ref.pseudostate"/>) which is used to split an 
        incoming transition into multiple outgoing transition segments 
        with different guard conditions. A Junction is also called a 
        Merge or Static conditional branch. The chosen transition is 
        that whose guard is true at the time of the transition.</para>

        <para lang="en">A predefined guard denoted <literal>else</literal> may be 
        defined for at most one outgoing transition. This transition is 
        enabled if all the guards labeling the other transitions are 
        false.</para>

        <para lang="en">According the UML standard, its symbol is a small black 
        circle. Alternatively, it may be represented by a diamond shape 
        (in case of &quot;Decision&quot; for Activity diagrams). 
        ArgoUML only represents a junction on the diagram as a solid 
        (white by default) diamond, and does not support the black 
        circle symbol for a junction.</para>

      </sect1>

      <sect1 id="s1.ref.branch_state">

        <title>
			<phrase lang="en">Choice</phrase>
		</title>

        <para lang="en">Choice is a pseudostate (see 
        <xref linkend="s1.ref.pseudostate"/>) which is used to split an 
        incoming transition into multiple outgoing transition segments 
        with different guard conditions. Hence, a Choice allows a 
        dynamic choice of outgoing transitions. The chosen transition 
        is that whose guard is true at the time of the transition (if 
        more than one is true, one is selected at random).</para>

        <para lang="en">A predefined guard denoted <literal>else</literal> may be 
        defined for at most one outgoing transition. This transition is 
        enabled if all the guards labeling the other transitions are 
        false.</para>

        <note>

          <para lang="en">This sort of pseudostate was formerly called a <literal>
          Branch</literal> by ArgoUML.</para>

        </note>

        <para lang="en">A choice is represented on the diagram as a small solid 
        (white by default) circle (reminiscent of a small state 
        icon).</para>

      </sect1>

      <sect1 id="s1.ref.fork_state">

        <title>
			<phrase lang="en">Fork</phrase>
		</title>

        <para lang="en">Fork is a pseudostate (see 
        <xref linkend="s1.ref.pseudostate"/>) which splits a transition 
        into two or more concurrent transitions.</para>

        <caution>

          <para lang="en">The outgoing transitions should not have guards. 
          However ArgoUML will not enforce this.</para>

        </caution>

        <para lang="en">A fork is represented on the diagram as a solid (black by 
        default) horizontal bar.</para>

        <tip>

          <para lang="en">This bar can be made vertical by selecting the fork, 
          and dragging with button&nbsp;1 one of its corners.</para>

        </tip>

      </sect1>

      <sect1 id="s1.ref.join_state">

        <title>
			<phrase lang="en">Join</phrase>
		</title>

        <para lang="en">Join is a pseudostate (see 
        <xref linkend="s1.ref.pseudostate"/>) which joins two or more 
        concurrent transitions into a single transition.</para>

        <caution>

          <para lang="en">The incoming transitions should not have guards. 
          However ArgoUML will not enforce this.</para>

        </caution>

        <para lang="en">A join is represented on the diagram as a solid (black by 
        default) horizontal bar.</para>

        <tip>

          <para lang="en">This bar can be made vertical by selecting the join, 
          and dragging with button&nbsp;1 one of its corners.</para>

        </tip>

      </sect1>

      <sect1 id="s1.ref.shallow_history">

        <title>
			<phrase lang="en">Shallow History</phrase>
		</title>

        <para lang="en">Shallow History is a pseudostate (see 
        <xref linkend="s1.ref.pseudostate"/>) that can remember the 
        last state of its container that was active. The history 
        pseudostate points to its default state with a transition arrow 
        just like the initial pseudostate does. This transition points 
        to the substate that will become active when there is no 
        history. When the container composite state has been active 
        before (i.e., when there is history), the substate that was 
        active when the container state was exited, becomes active 
        again.</para>

        <para lang="en">When placed within a multi-level hierarchy of composite 
        states, the shallow history only remembers the history for 
        states that have the same container as the history pseudostate. 
        It does not restore substates deeper in the hierarchy then the 
        history pseudostate itself.</para>

        <para lang="en">A shallow history is represented on the diagram as a 
        circle containing the letter <literal>H</literal>.</para>

      </sect1>

      <sect1 id="s1.ref.deep_history">

        <title>
			<phrase lang="en">Deep History</phrase>
		</title>

        <para lang="en">Deep History is a pseudostate (see 
        <xref linkend="s1.ref.pseudostate"/>) that can remember the 
        last state of its container that was active. The history 
        pseudostate points to its default state with a transition arrow 
        just like the initial pseudostate does. This transition points 
        to the substate that will become active when there is no 
        history. When the container composite state has been active 
        before (i.e., when there is history), the substate that was 
        active when the container state was exited, becomes active 
        again.</para>

        <para lang="en">When placed within a multi-level hierarchy of composite 
        states, the deep history remembers the history for all states 
        recursively which are contained in the history pseudostate 
        container. It does restore any substates no matter how deep in 
        the hierarchy.</para>

        <para lang="en">A deep history is represented on the diagram as a circle 
        containing the symbols <literal>H*</literal>.</para>

      </sect1>

      <sect1 id="s1.ref.synch_state">

        <title>
			<phrase lang="en">Synch State</phrase>
		</title>

        <para lang="en">A synch state is for synchronizing concurrent regions of 
        a state machine. It is used in conjunction with forks and joins 
        to insure that one region leaves a particular state or states 
        before another region can enter a particular state or states. 
        The firing of outgoing transitions from a synch state can be 
        limited by specifying a bound on the difference between the 
        number of times outgoing and incoming transitions have fired. 
        In the UML metamodel <literal>Synch</literal> is a child of 
        <literal>StateVertex</literal>.</para>

        <para lang="en">A synch state is shown as a small circle with the upper 
        bound inside it. The bound is either a positive integer or a 
        star (&apos;*&apos;) for unlimited. Synch states are drawn on 
        the boundary between two regions when possible.</para>

        <sect2>

          <title>
			<phrase lang="en">Synch State Details Tabs</phrase>
		</title>

          <para lang="en">The details tabs that are active for Synch states are 
          as follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.synch_state_property_toolbar"/> 
                and <xref linkend="s2.ref.synch_state_property_fields"/>
                 below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Standard tab, containing the stereotypes of the 
                Synch state. In the UML metamodel, <literal>
                Synch State</literal> has no standard  
                stereotypes defined.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Synch State</literal> has no standard tagged 
                values defined.</para>

                  </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.synch_state_property_toolbar">

          <title>
			<phrase lang="en">Synch State Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                synch state, navigating immediately to the properties 
                tab for that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete from Model</literal></term>

              <listitem>

                <para lang="en">This deletes the synch state from the model</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram.</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.synch_state_property_fields">

          <title>
			<phrase lang="en">Property Fields For Synch State</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <para lang="en">Text box. The name of the Synch state. By 
                convention Synch state names start with a lower case 
                letter and use bumpy caps to divide words within the 
                name.</para>

                <note>

                  <para lang="en">ArgoUML does not enforce this naming 
                  convention.</para>

                </note>

                <tip>

                  <para lang="en">Synch state names are not shown on the diagram 
                  and it is not usually necessary to give them a 
                  name.</para>

                </tip>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Container</literal></term>

              <listitem>

                <para lang="en">Text box. Shows the container of the Synch state. 
                This is the state hierarchy.</para>

                <para lang="en">Button&nbsp;1 double click on the entry will navigate 
                to the composite state that contains this state (or the 
                top-level state that is the root of the state 
                containment hierarchy).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Bound</literal></term>

              <listitem>

                <para lang="en">Editable text box. Shows the Bound of the Synch 
                state. Which is a positive integer or the value 
                <emphasis>unlimited</emphasis>
                (represented by a &quot;*&quot;) specifying 
                the maximal count of the SynchState. The count is the 
                difference between the number of times the incoming and 
                outgoing transitions of the synch state are 
                fired.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Incoming</literal></term>

              <listitem>

                <para lang="en">Text area. Lists any incoming transitions for the 
                final state.</para>

                <para lang="en">Button&nbsp;1 double-click navigates to the selected 
                transition.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Outgoing Transitions</literal></term>

              <listitem>

                <para lang="en">Text area. Lists any outgoing transitions for the 
                final state.</para>

                <para lang="en">Button&nbsp;1 double-click navigates to the selected 
                transition.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

    </chapter>

    <chapter id="ch.ref.entcollab">

      <title>
			<phrase lang="en">Collaboration Diagram Model Element Reference</phrase>
		</title>

      <sect1>

        <title>
			<phrase lang="en">Introduction</phrase>
		</title>

        <para lang="en">This chapter describes each model element that can be created 
        within a collaboration diagram. Note that some sub-model elements of 
        model elements on the diagram may not actually themselves appear on 
        the diagram.</para>

        <para lang="en">There is a close relationship between this material and 
        the properties tab of the details pane (see 
        <xref linkend="s1.ref.proptab"/>). That section covers 
        Properties in general, in this chapter they are linked to 
        specific model elements.</para>

        <caution>

          <para lang="en">Collaboration diagrams are not fully developed yet in 
          ArgoUML. Many aspects are not fully implemented, or may not 
          behave as expected. In particular there are some serious 
          problems with layout of the collaboration roles and 
          messages.</para>

        </caution>

        <para lang="en"><xref linkend="fig.ref.collaboration_diagram"/> shows a 
        collaboration diagram with all possible model elements 
        displayed.</para>

        <figure float="1" id="fig.ref.collaboration_diagram">

          <title>
			<phrase lang="en">Possible model elements on a collaboration diagram.</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/collaboration_diagram.gif"
           format="GIF"/></imageobject></mediaobject></screenshot>
        </figure>

        <sect2>

          <title>
			<phrase lang="en">Limitations Concerning Collaboration Diagrams in 
          ArgoUML</phrase>
		</title>

          <para lang="en">The collaboration diagram is still rather 
          under-developed in ArgoUML. In particular there is no way to 
          show instance collaborations (based on objects and links) 
          rather than specification collaborations.</para>

          <para lang="en">The biggest difficulties are with the messages. There 
          are problems with the sequencing of the messages and their 
          display on the diagram. The actions behind them are purely 
          textual in implementation and there is no way to link them 
          back to their associated operations or signals.</para>

        </sect2>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Classifier Role</phrase>
		</title>

        <para lang="en">A classifier role is a specialization of a classifier, 
        used to show its behavior in a particular context. In the UML 
        metamodel <literal>Classifier Role</literal> is a sub-class of 
        <literal>Classifier</literal>. Within a collaboration diagram 
        classifier roles may be used in one of two ways:</para>

        <itemizedlist>

          <listitem>

            <para lang="en">To represent the classifier in a particular 
            behavioral context (the <emphasis>specification 
            level</emphasis>); or</para>

          </listitem>

          <listitem>

            <para lang="en">to specify a particular instance of the classifier 
            (the <emphasis>instance level</emphasis>).</para>

          </listitem>

        </itemizedlist>

        <para lang="en">In this latter form, classifier roles are identical to 
        the instances used in sequence diagrams (see 
        <xref linkend="ch.ref.entseq"/>) and a collaboration diagram 
        shows the same information as the sequence diagram, but in a 
        different presentation.</para>

        <caution>

          <para lang="en">A collaboration diagram should not mix classifier roles 
          used as the specifier level and the instance level.</para>

        </caution>

        <para lang="en">A classifier role is represented on a sequence diagram in 
        ArgoUML as a plain box labeled with the classifier role name 
        (if any) and classifier, separated by a colon (:).</para>

        <caution>

          <para lang="en">A classifier role should properly also show object name 
          (if any) preceding the classifier role name and separated 
          from it by a slash (<literal>/</literal>). This allows 
          classifier roles in a specification level diagram to be 
          distinguished from instances in an instance level 
          diagram.</para>

          <para lang="en">ArgoUML does show the slash, but there is no way to 
          define the instances.</para>

        </caution>

        <sect2>

          <title>
			<phrase lang="en">Classifier Role Details Tabs</phrase>
		</title>

          <para lang="en">The details tabs that are active for classifier roles 
          are as follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.classifier_role_property_toolbar"/>
                 and 
                <xref linkend="s2.ref.classifier_role_property_fields"/>
                 below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Source</literal></term>

              <listitem>

                <para lang="en">Standard tab, but with no contents.</para>

                <caution>

                  <para lang="en">A classifier role should not generate any code, 
                  so having this tab active is probably a 
                  mistake.</para>

                </caution>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Classifier Role</literal> has the following standard 
                tagged values defined.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>persistence</literal> (from the 
                    superclass, <literal>Classifier</literal>. Showing 
                    the permanence of the state information associated 
                    with the classifier role. Values <literal>
                    transitory</literal> (state is destroyed when the 
                    classifier role is destroyed) and <literal>
                    persistent</literal> (state is preserved when the 
                    classifier role is destroyed).</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>semantics</literal> (from the 
                    superclass, <literal>Classifier</literal>). The 
                    value is a specification of the semantics of the 
                    classifier role.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>derived</literal> (from the 
                    superclass, <literal>ModelElement</literal>). 
                    Values <literal>true</literal>, meaning the 
                    classifier role is redundant&mdash;it can be formally 
                    derived from other elements, or <literal>
                    false</literal> meaning it cannot.</para>

                    <note>

                      <para lang="en">Derived classifier roles still have their 
                      value in analysis and design to introduce useful 
                      names or concepts, and in design to avoid 
                      re-computation.</para>

                    </note>

                  </listitem>

                </itemizedlist>

                <note>

                  <para lang="en">The UML <literal>Element</literal> metaclass 
                  from which all other model elements are derived includes 
                  the tagged element <literal>documentation</literal> 
                  which is handled by the <emphasis>documentation 
                  tab</emphasis> under ArgoUML</para>

                </note>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.classifier_role_property_toolbar">

          <title>
			<phrase lang="en">Classifier Role Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/reception.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New reception</literal></term>

              <listitem>

                <para lang="en">This creates a new reception, navigating 
                immediately to the properties tab for that 
                reception.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                classifier role, navigating immediately to the 
                properties tab for that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the classifier role from the 
                model</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram. To delete 
                  an classifier role from the diagram, but keep it 
                  within the model, use the main menu <literal>Remove 
                  From Diagram</literal> (or press the Delete 
                  key).</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.classifier_role_property_fields">

          <title>
			<phrase lang="en">Property Fields For Classifier Role</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <para lang="en">Text box. The name of the classifier role. By 
                convention classifier role names start with a lower 
                case letter and use bumpy caps to divide words within 
                the name.</para>

                <note>

                  <para lang="en">ArgoUML does not enforce this naming 
                  convention.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Drop down selector. Classifier Role is provided 
                by default with the UML standard stereotypes for a 
                classifier (<literal>metaclass</literal>, <literal>
                powertype</literal>, <literal>process</literal>, 
                <literal>thread</literal> and <literal>
                utility</literal>).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Navigate Stereotype</literal></term>

              <listitem>

                <para lang="en"><guiicon><inlinemediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/icons/navigate_stereotype.gif"
                 format="GIF"/></imageobject></inlinemediaobject></guiicon> 
                icon. If a stereotype has been selected, this will 
                navigate to the stereotype property panel (see 
                <xref linkend="s1.ref.stereotype"/>).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Namespace</literal></term>

              <listitem>

                <para lang="en">Text box. Records the namespace for the 
                classifier role, which is always the containing 
                Collaboration.</para>

                <para lang="en">Button&nbsp;1 double click on the entry will navigate 
                to the collaboration.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Multiplicity</literal></term>

              <listitem>

                <para lang="en">Editable drop down selector. The default value is 
                <literal>*</literal>, which means that there are any 
                number of instances of this classifierrole that play a 
                role in the collaboration. The drop down provides some 
                different multiplicities. E.g. <literal>1..1</literal> 
                would mean that only one instance plays a role in this 
                collaboration.</para>

                <para lang="en">ArgoUML does not restrict you to the predefined 
                ranges for multiplicity. You can edit this field 
                freely.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Base</literal></term>

              <listitem>

                <para lang="en">List. The names of the classifiers of which this 
                is a classifierrole. Button&nbsp;1 double click navigates to 
                the classifier. Button&nbsp;2 click gives a pop up menu with 
                the following entries.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Add</literal>. Allows adding or 
                    removeing classifiers to the list. To this end, a 
                    dialog box pops up, as shown in the figure 
                    below.</para>

                    <figure float="1" id="fig.ref.signal_add_classifierrole_base">

                      <title>
			<phrase lang="en">The <quote>add context</quote> dialog 
                      box</phrase>
		</title>

                      <screenshot><mediaobject><imageobject>
                      <imagedata align="center"
                       fileref="images/reference/signal_add_classifierrole_base.png"
                       format="PNG"/></imageobject></mediaobject></screenshot>
                    </figure>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Remove</literal>. Allows removeing 
                    classifiers to the list, without making use of the 
                    dialog box.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Generalizations</literal></term>

              <listitem>

                <para lang="en">Text area. Lists any classifierrole that 
                <emphasis>generalizes</emphasis> this 
                classifierrole.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the 
                generalization and opens its property tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Specializations</literal></term>

              <listitem>

                <para lang="en">Text box. Lists any specialized classifierrole 
                (i.e. for which this classifierrole is a 
                generalization).</para>

                <para lang="en">button&nbsp;1 double click navigates to the 
                generalization and opens its property tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Association End Role</literal></term>

              <listitem>

                <para lang="en">Text area. Lists the association-end roles that 
                are linked to this classifier role.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the selected 
                entry.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Available Contents</literal></term>

              <listitem>

                <para lang="en">Text area. Lists the subset of modelelements 
                contained in the base classifier which is used in the 
                collaboration.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the 
                modelelement and opens its property tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Available Features</literal></term>

              <listitem>

                <para lang="en">Text box. Lists the subset of features of the 
                base classifier which is used in the 
                collaboration.</para>

                <para lang="en">button&nbsp;1 double click navigates to the feature 
                and opens its property tab.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.association_role">

        <title>
			<phrase lang="en">Association Role</phrase>
		</title>

        <para lang="en">An association role is a specialization of an 
        association, used to describe an associations behavior in a 
        particular context. In the UML metamodel <literal>Association 
        Role</literal> is a sub-class of <literal>
        Association</literal>.</para>

        <para lang="en">An association role is represented on a collaboration 
        diagram in ArgoUML as a line connecting the instances 
        concerned. However on a sequence diagram the representation is 
        modified to reflect the type of action associated with the 
        stimulus carried on the link (see 
        <xref linkend="s1.ref.stimulus"/>).</para>

        <para lang="en">The association role is labeled with the association role 
        name (if any).</para>

        <para lang="en">

          An association role shows its name and the association name 
          according the following syntax:
          <blockquote>

            <para lang="en">/ AssociationRoleName : AssociationName</para>

          </blockquote>

          in the same manner as a classifier role. The more generic 
          syntax is:
          <blockquote>

            <para lang="en">I / R : C</para>

          </blockquote>

          which stands for an Instance named I originating from the 
          Classifier C playing the role R.
        </para>

        <sect2>

          <title>
			<phrase lang="en">Association Role Details Tabs</phrase>
		</title>

          <para lang="en">The details tabs that are active for association roles 
          are as follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.association_role_property_toolbar"/>
                 and 
                <xref linkend="s2.ref.association_role_property_fields"/>
                 below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. </para>
                <note>
                  <para lang="en">
                    The values in the "bounds" field of the 
                    association role
                    are not editable, since they are determined 
                    by the properties of the endpoints of the line.
                  </para>
                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Source</literal></term>

              <listitem>

                <para lang="en">Standard tab, but with no contents.</para>

                <caution>

                  <para lang="en">An association role should not generate any 
                  code, so having this tab active is probably a 
                  mistake.</para>

                </caution>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab. In the UML metamodel, <literal>
                AssociationRole</literal> has the following standard 
                tagged values defined.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>persistence</literal> (from the 
                    superclass, <literal>Association</literal>). Values 
                    <literal>transitory</literal>, indicating state is 
                    destroyed when an instance is destroyed or <literal>
                    persistent</literal>, marking state is preserved 
                    when an instance is destroyed.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>derived</literal> (from the 
                    superclass, <literal>ModelElement</literal>). 
                    Values <literal>true</literal>, meaning the 
                    association is redundant&mdash;it can be formally derived 
                    from other elements, or <literal>false</literal> 
                    meaning it cannot.</para>

                    <note>

                      <para lang="en">Derived association roles still have their 
                      value in analysis to introduce useful names or 
                      concepts, and in design to avoid 
                      re-computation.</para>

                    </note>

                  </listitem>

                </itemizedlist>

                <note>

                  <para lang="en">The UML <literal>Element</literal> metaclass 
                  from which all other model elements are derived includes 
                  the tagged element <literal>documentation</literal> 
                  which is handled by the <emphasis>documentation 
                  tab</emphasis> under ArgoUML</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Checklist</literal></term>

              <listitem>

                <para lang="en">Standard tab for an Association Role.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.association_role_property_toolbar">

          <title>
			<phrase lang="en">Association Role Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the association role from the 
                model</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram. To delete 
                  an association role from the diagram, but keep it 
                  within the model, use the main menu <literal>Remove 
                  From Diagram</literal> (or press the Delete 
                  key).</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.association_role_property_fields">

          <title>
			<phrase lang="en">Property Fields For Association Role</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <para lang="en">Text box. The name of the association role, which 
                is shown on the diagram. By convention association role 
                names start with a lower case letter and use bumpy caps 
                to divide words within the name.</para>

                <note>

                  <para lang="en">ArgoUML does not enforce this naming 
                  convention.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Drop down selector. Association role is provided 
                by default with the UML standard stereotype from the 
                superclass Association: <literal>
                implicit</literal>.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Navigate Stereotype</literal></term>

              <listitem>

                <para lang="en"><guiicon><inlinemediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/icons/navigate_stereotype.gif"
                 format="GIF"/></imageobject></inlinemediaobject></guiicon> 
                icon. If a stereotype has been selected, this will 
                navigate to the stereotype property panel (see 
                <xref linkend="s1.ref.stereotype_class"/>).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Namespace</literal></term>

              <listitem>

                <para lang="en">Text box. Records the namespace for the 
                association role. This is the package hierarchy.</para>

                <para lang="en">Button&nbsp;1 double click on the entry will navigate 
                to the item showm.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Base</literal></term>

              <listitem>

                <para lang="en">Drop down selector. Records the association that 
                is the base for the association role.</para>

                <para lang="en">The drop down selector shows all associations 
                that exist between the classifiers that correspond with 
                the connected classifier roles.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Association End Roles</literal></term>

              <listitem>

                <para lang="en">Text area. Lists the ends of this association 
                role. An association role can have any number of ends, 
                but two is generally the only useful number (link 
                objects can led to a third end on instance level 
                diagrams, but this is not supported by ArgoUML). For 
                more on association end roles see 
                <xref linkend="s1.ref.association_end_role"/>.</para>

                <para lang="en">The names are listed, unless the association end 
                role has no name, then it is shown as <literal>(Unnamed 
                AssociationEndRole)</literal>.</para>

                <para lang="en">Button&nbsp;1 double click on an association end role 
                will navigate to that end.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Messages</literal></term>

              <listitem>

                <para lang="en">Text area. Lists the messages that are associated 
                with this association role.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the selected 
                entry</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.association_end_role">

        <title>
			<phrase lang="en">Association End Role</phrase>
		</title>

        <para lang="en">An association end role is a specialization of an 
        association end, used to describe an association end&apos;s 
        behavior in a particular context. In the UML metamodel <literal>
        AssociationEndRole</literal> is a sub-class of <literal>
        AssociationEnd</literal>.</para>

        <para lang="en">Two or more association end roles are associated with 
        each association role (see 
        <xref linkend="s1.ref.association_role"/>), although for 
        ArgoUML, the number of ends can only be two.</para>

        <para lang="en">The association end role has no direct access on any 
        diagram, although its stereotype, name and multiplicity is 
        shown at the relevant end of the parent association role (see 
        <xref linkend="fig.ref.collaboration_diagram"/>), and some of 
        its properties can be directly adjusted with button&nbsp;2 click. 
        Where shared or composite aggregation is selected for one 
        association end role, the opposite end is shown as a solid 
        diamond (composite aggregation) or hollow diamond (shared 
        aggregation).</para>

        <note>

          <para lang="en">ArgoUML does not currently (V0.18) support showing 
          qualifiers on the diagram, as described in the UML&nbsp;1.4 
          standard.</para>

        </note>

        <caution>

          <para lang="en">An association end role should have the same, or 
          <quote>stricter</quote> attribute values than its base 
          association end. In particular its navigability should be no 
          more general. There is as yet no critic in ArgoUML to offer 
          advice on this rule.</para>

        </caution>

        <sect2>

          <title>
			<phrase lang="en">Association End Role Details Tabs</phrase>
		</title>

          <para lang="en">The details tabs that are active for association end 
          roles are as follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.association_end_role_property_toolbar"/>
                 and 
                <xref linkend="s2.ref.association_end_role_property_fields"/>
                 below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Source</literal></term>

              <listitem>

                <para lang="en">Standard tab. There is no code generated for an 
                association end role.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab. In the UML metamodel, <literal>
                AssociationEndRole</literal> has the following standard 
                tagged values defined.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>derived</literal> (from the 
                    superclass, <literal>ModelElement</literal>). 
                    Values <literal>true</literal>, meaning the 
                    association end role is redundant&mdash;it can be 
                    formally derived from other elements, or <literal>
                    false</literal> meaning it cannot.</para>

                    <tip>

                      <para lang="en">Derived association end roles still have 
                      their value in analysis to introduce useful names 
                      or concepts, and in design to avoid 
                      re-computation. However the tag only makes sense 
                      for an association end role if it is also applied 
                      to the parent association role.</para>

                    </tip>

                  </listitem>

                </itemizedlist>

                <note>

                  <para lang="en">The UML <literal>Element</literal> metaclass 
                  from which all other model elements are derived includes 
                  the tagged element <literal>documentation</literal> 
                  which is handled by the <emphasis>documentation 
                  tab</emphasis> under ArgoUML</para>

                </note>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.association_end_role_property_toolbar">

          <title>
			<phrase lang="en">Association End Role Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up to the association role to which this 
                end role belongs.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/association_end_role.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go Opposite</literal></term>

              <listitem>

                <para lang="en">This navigates to the other end of the 
                association role.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/attribute.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Qualifier</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Qualifier</primary></indexterm>
                <indexterm lang="en"><primary>New Qualifier</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Qualifier</secondary></indexterm>
                <para lang="en">This creates a new Qualifier for the selected 
                association-end role, navigating immediately to the 
                properties tab for that qualifier.</para>

                <warning>

                  <para lang="en">Qualifiers are only partly supported in ArgoUML 
                  V0.18. Hence, activating this button creates a 
                  qualifier in the model, which is not shown on the 
                  diagram. Also, the properties panel for a qualifier 
                  equals that of a regular attribute.</para>

                </warning>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                association-end role, navigating immediately to the 
                properties tab for that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the selected association-end from 
                the model.</para>

                <note>

                  <para lang="en">This button is downlighted for binary 
                  association roles, since an association needs at 
                  least <emphasis>two</emphasis> ends. Only for N-ary 
                  associations, this button is accessable, and deletes 
                  just one end from the association.</para>

                </note>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.association_end_role_property_fields">

          <title>
			<phrase lang="en">Property Fields For Association End Role</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <para lang="en">Text box. The name of the association end role, 
                which provides a <emphasis>role name</emphasis> for 
                this end of the association role. This role name can be 
                used for navigation, and in an implementation context, 
                provides a name by which the source end of an 
                association role can reference the target end.</para>

                <note>

                  <para lang="en">ArgoUML does not enforce any naming convention 
                  for association end roles.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Drop down selector. Association end role is 
                provided by default with the UML standard stereotypes 
                for AssociationEndRole (<literal>association</literal>, 
                <literal>global</literal>, <literal>local</literal>, 
                <literal>parameter</literal>, <literal>
                self</literal>).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Navigate Stereotype</literal></term>

              <listitem>

                <para lang="en"><guiicon><inlinemediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/icons/navigate_stereotype.gif"
                 format="GIF"/></imageobject></inlinemediaobject></guiicon> 
                icon. If a stereotype has been selected, this will 
                navigate to the stereotype property panel (see 
                <xref linkend="s1.ref.stereotype"/>).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Base</literal></term>

              <listitem>

                <para lang="en">Text field that shows the name of the 
                corresponding association end. Button&nbsp;1 double click 
                navigates to the association end.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>AssociationRole</literal></term>

              <listitem>

                <para lang="en">Text box. Records the parent association role for 
                this association end role. Button&nbsp;1 double click 
                navigates to the association role.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Type</literal></term>

              <listitem>

                <para lang="en">Drop down selector providing access to all 
                standard UML types provided by ArgoUML and all new 
                classes created within the current model.</para>

                <para lang="en">This is the type of the entity attached to this 
                end of the association role.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Multiplicity</literal></term>

              <listitem>

                <para lang="en">Editable drop down text entry. Allows to alter 
                the multiplicity of this association end role (with 
                respect to the other end), i.e. how many instances of 
                this end may be associated with an instance of the 
                other end. The multiplicity is shown on the diagram at 
                that end of the association role.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>All remaining properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.association_end_property_fields"/>
                . Since these are completely equal to the fields of an 
                association end, they are not repeated here.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Message</phrase>
		</title>

        <para lang="en">A message is a communication between two instances of an 
        association role on a specification level collaboration 
        diagram. It describes an action which will generate the 
        stimulus associated with the message. On a collaboration 
        diagram a message is associated with an association role. In 
        the UML metamodel <literal>Message</literal> is a sub-class of 
        <literal>ModelElement</literal>.</para>

        <para lang="en">The message is represented on a collaboration diagram in 
        ArgoUML by its sequence number separated by a colon from the 
        expression defining the associated action. It is accompagnied 
        by an arrow pointing in the direction of the communication, 
        i.e. the direction of the AssociationRole. By convention the 
        name of a message is not shown on the diagram. Instead the 
        diagram displays the message sequence number, either as an 
        integer or as a decimal number to show hierarchy.</para>

        <warning>

          <para lang="en">The current release of ArgoUML does not retaining 
          message positioning after reloading the project, i.e. as if 
          the positions were not stored in the project file.</para>

        </warning>

        <sect2>

          <title>
			<phrase lang="en">Message Details Tabs</phrase>
		</title>

          <para lang="en">The details tabs that are active for messages are as 
          follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.message_property_toolbar"/> and 
                <xref linkend="s2.ref.message_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. The values for the bounds of the 
                message define the bounding box of the message. The 
                <literal>Line</literal> field defines the arrow color. 
                Increasing the <literal>Shadow</literal> size has an 
                esthetically questionable effect.</para>

                <caution>

                  <para lang="en">In the V0.18 release of ArgoUML changing the 
                  position of the message by editing the values of the 
                  <literal>Bounds</literal> field is possible, but will 
                  make only a temporary change to the position of the 
                  message, as described above.</para>

                </caution>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Source</literal></term>

              <listitem>

                <para lang="en">Standard tab, showing the message number and 
                action expression separated by a colon (when UML 1.4 is 
                selected in the drop-down).</para>

                <caution>

                  <para lang="en">A message probably should not generated any 
                  code of itself. That should be left to the action and 
                  possibly stimulus associated with it. In any case 
                  changes to this tab are ignored.</para>

                </caution>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Message</literal> has the following standard tagged 
                values defined.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>derived</literal> (from the 
                    superclass, <literal>ModelElement</literal>). 
                    Values <literal>true</literal>, meaning the message 
                    is redundant&mdash;it can be formally derived from other 
                    elements, or <literal>false</literal> meaning it 
                    cannot.</para>

                    <note>

                      <para lang="en">Derived messages still have their value in 
                      analysis and design to introduce useful names or 
                      concepts, and in design to avoid 
                      re-computation.</para>

                    </note>

                  </listitem>

                </itemizedlist>

                <note>

                  <para lang="en">The UML <literal>Element</literal> metaclass 
                  from which all other model elements are derived includes 
                  the tagged element <literal>documentation</literal> 
                  which is handled by the <emphasis>documentation 
                  tab</emphasis> under ArgoUML</para>

                </note>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.message_property_toolbar">

          <title>
			<phrase lang="en">Message Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/call_action.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Action</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Action</primary></indexterm>
                <indexterm lang="en"><primary>New Action</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Action</secondary></indexterm>
                <para lang="en">This creates a new Action (see 
                <xref linkend="s1.ref.action_state"/>) for the selected 
                object, navigating immediately to the properties tab 
                for that action.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                message, navigating immediately to the properties tab 
                for that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the message from the model</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram. To delete 
                  an message from the diagram, but keep it within the 
                  model, use the main menu <literal>Remove From 
                  Diagram</literal> (or press the Delete key).</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.message_property_fields">

          <title>
			<phrase lang="en">Property Fields For Message</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <para lang="en">Text box. The name of a message is usually its 
                sequence number, either an integer, or a decimal 
                (allowing alternative message hierarchies to be clearly 
                described). ArgoUML will supply an integer sequence 
                number by default.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Drop down selector. Message has no stereotypes by 
                default in the UML standard.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Navigate Stereotype</literal></term>

              <listitem>

                <para lang="en"><guiicon><inlinemediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/icons/navigate_stereotype.gif"
                 format="GIF"/></imageobject></inlinemediaobject></guiicon> 
                icon. If a stereotype has been selected, this will 
                navigate to the stereotype property panel (see 
                <xref linkend="s1.ref.stereotype"/>).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Interaction</literal></term>

              <listitem>

                <para lang="en">Text box. Records the Interaction of which the 
                message is a part.</para>

                <para lang="en">Button&nbsp;1 double click on the entry will navigate 
                to the interaction.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Sender</literal></term>

              <listitem>

                <para lang="en">Text box. Identifies the classifier role which 
                sent this message.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the sender 
                classifier role.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Receiver</literal></term>

              <listitem>

                <para lang="en">Text box. Identifies the classifier role which 
                receives this message.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the receiver 
                classifier role.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Activator</literal></term>

              <listitem>

                <para lang="en">Drop down selector. Identifies the message which 
                invokes the behavior that causes the sending of this 
                message.</para>

                <para lang="en">Button&nbsp;1 click allows selecting the 
                message.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Action</literal></term>

              <listitem>

                <para lang="en">Text box. Lists the action (see 
                <xref linkend="s1.ref.action_state"/>) this message 
                invokes to raise a stimulus.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the selected 
                action, button&nbsp;2 gives a pop up menu with the following 
                entry.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>New</literal>. Add a new 
                    action.</para>

                    <para lang="en">This item is downlighted if an action already 
                    exists.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Predecessors</literal></term>

              <listitem>

                <para lang="en">Text area. Identifies the messages, the 
                completion of whose execution enables this 
                message.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the selected 
                message, button&nbsp;2 gives a pop up menu with one 
                entry.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Add</literal>. Opens a dialog box 
                    that allows to select any number of messages. See 
                    figure below.</para>

                    <para lang="en">This entry is grayed out when no messages 
                    exist.</para>

                    <figure float="1" id="fig.ref.message_add_predecessors">

                      <title>
			<phrase lang="en">The <quote>add predecessors</quote> dialog 
                      box</phrase>
		</title>

                      <screenshot><mediaobject><imageobject>
                      <imagedata align="center"
                       fileref="images/reference/message_add_predecessors.png"
                       format="PNG"/></imageobject></mediaobject></screenshot>
                    </figure>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

    </chapter>

    <chapter id="ch.ref.entactiv">

      <title>
			<phrase lang="en">Activity Diagram Model Element Reference</phrase>
		</title>

      <sect1>

        <title>
			<phrase lang="en">Introduction</phrase>
		</title>

        <para lang="en">This chapter describes each model element that can be created 
        within an Activity diagram. Note that some sub-model elements of 
        model elements may not actually themselves appear on the 
        diagram.</para>

        <para lang="en">There is a close relationship between this material and 
        the Properties Tab of the Details Pane (see 
        <xref linkend="s1.ref.proptab"/>). That section covers 
        Properties in general, in this chapter they are linked to 
        specific model elements.</para>

        <para lang="en"><xref linkend="fig.ref.activity_diagram"/> shows an 
        Activity Diagram with all possible model elements displayed.</para>

        <figure float="1" id="fig.ref.activity_diagram">

          <title>
			<phrase lang="en">Possible model elements on an activity diagram.</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/activity_diagram.gif"
           format="GIF"/></imageobject></mediaobject></screenshot>
        </figure>

        <sect2>

          <title>
			<phrase lang="en">Limitations Concerning Activity Diagrams in 
          ArgoUML</phrase>
		</title>

          <para lang="en">Activity diagrams are not fully developed yet in 
          ArgoUML. Some aspects are not fully implemented, or may not 
          behave as expected. In particular lacking are call states, 
          swim lanes, control icons (signals), sub-activities, synch 
          states. Interactions with other classifiers are provided by 
          an object-flow-state which is only partly implemented.</para>

        </sect2>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Action State</phrase>
		</title>

        <para lang="en">An action state represents execution of an atomic action, 
        usually the invocation of an action. Within the UML metamodel, 
        <literal>ActionState</literal> is a sub-class of <literal>
        SimpleState</literal>. It is a specialized simple state that 
        only has an entry action, and with an implicit trigger as soon 
        as that action is completed.</para>

        <caution>

          <para lang="en">As a consequence any outgoing transitions from an 
          action state should not have explicit triggers defined 
          (ArgoUML will not currently check for this). They may have 
          guards to provide a choice where there is more than one 
          transition.</para>

        </caution>

        <note>

          <para lang="en">Unlike an ordinary state, an internal transition, an 
          exit action and a Do activity are not permitted for action 
          states.</para>

        </note>

        <para lang="en">An action state is represented on an activity diagram in 
        ArgoUML as a rectangle with rounded corners containing the name 
        of the action state.</para>

        <caution>

          <para lang="en">The UML standard specifies that the text shown in the 
          action state on the activity diagram should contain the 
          expression associated with the entry action - which is 
          implemented as such since ArgoUML V0.18. In past versions of 
          ArgoUML (0.16.1 and before), the diagram used to show the 
          action state name. Loading a project created by one of the 
          older versions, causes the project file to be converted to 
          the correct format to conform to the UML standard. This process is 
          designed to be transparent for the user, and the only 
          drawback is, that the activity diagram in the project will 
          not show correctly when reloaded in an old version of ArgoUML 
          again.</para>

        </caution>

        <sect2>

          <title>
			<phrase lang="en">Action State Details Tabs</phrase>
		</title>

          <para lang="en">The details tabs that are active for action states are 
          as follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.action_state_property_toolbar"/> 
                and 
                <xref linkend="s2.ref.action_state_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. The values for the bounds of the 
                action state define the bounding box of the action 
                state.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Standard tab that shows the stereotypes of the action 
                state. 
                In the UML metamodel, 
                there are no stereotypes defined 
                by default for a action state.
                </para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab. In the UML metamodel, <literal>
                ActionState</literal> has no standard tagged 
                values defined.</para>

                  </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.action_state_property_toolbar">

          <title>
			<phrase lang="en">Action State Property ToolBar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the containment structure.
                Action states are contained by the 
                (otherwise invisible) top state.
                </para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                action state, navigating immediately to the properties 
                tab for that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete from Model</literal></term>

              <listitem>

                <para lang="en">This deletes the action state from the 
                model</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram. It is not 
                  possible to delete an action state from the diagram, 
                  since that concept does not fit the UML 
                  standard.</para>

                  <para lang="en">Hence ArgoUML does also not show the <literal>
                  Add to Diagram</literal> pop-up menu for action 
                  states.</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.action_state_property_fields">

          <title>
			<phrase lang="en">Property fields for action state</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <para lang="en">Text box. The name of the action state. By 
                convention action state names start with a lower case 
                letter and use bumpy caps to divide words within the 
                name.</para>

                <note>

                  <para lang="en">ArgoUML does not enforce this naming 
                  convention.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Container</literal></term>

              <listitem>

                <para lang="en">Text box. The container of the action state.
                This shows the otherwise invisible composite state
                at the top of the containment hierarchy.
                </para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Entry-Action</literal></term>

              <listitem>

                <para lang="en">Text box. Shows the name of the action to be 
                invoked on entry to this action state. According the 
                UML standard, an Action State is obliged to have an 
                Entry-Action.</para>

                <para lang="en">Button&nbsp;1 double-click navigates to the shown 
                entry, button&nbsp;2 gives a pop up menu with two 
                entries.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>New</literal>. Add a new Entry 
                    action of a certain kind. This menu has the 
                    following 7 submenus to select the kind of action: 
                    Call Action, Create Action, Destroy Action, Return 
                    Action, Send Action, Terminate Action, 
                    Uninterpreted Action.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Delete From Model</literal>. Delete 
                    the Entry-Action.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>
            <varlistentry>

              <term><literal>Deferrable events</literal></term>

              <listitem>

                <para lang="en">Text box. The deferrable events of the action state. 
                <!-- This seems to be a bug. Should this be here? -->
                </para>

              </listitem>

            </varlistentry>
            
            <varlistentry>

              <term><literal>Incoming</literal></term>

              <listitem>

                <para lang="en">Text area. Lists the transitions that enter this 
                action state.</para>

                <para lang="en">Button&nbsp;1 double-click navigates to the selected 
                entry.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Outgoing</literal></term>

              <listitem>

                <para lang="en">Text area. Lists the transitions that leave this 
                action state.</para>

                <para lang="en">Button&nbsp;1 double-click navigates to the selected 
                entry.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Action</phrase>
		</title>

        <para lang="en">This model element is described in the context of statechart 
        diagrams (see <xref linkend="s1.ref.action_state"/>).</para>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Transition</phrase>
		</title>

        <para lang="en">This model element is described in the context of statechart 
        diagrams (see <xref linkend="s1.ref.transition_state"/>).</para>

        <caution>

          <para lang="en">Remember that action states do not have explicit 
          triggers. The transition is implicitly triggered as soon as 
          the entry event of the action state is complete. An explicit 
          trigger should not therefore be set.</para>

          <para lang="en">The current release of ArgoUML will not check that this 
          constraint is met.</para>

        </caution>

        <note>

          <para lang="en">Transitions to and from an ObjectFlowState are dashed, 
          to distinguish <emphasis>object flow</emphasis> from 
          <emphasis>control flow</emphasis>.</para>

        </note>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Guard</phrase>
		</title>

        <para lang="en">This model element is described in the context of statechart 
        diagrams (see <xref linkend="s1.ref.guard_state"/>).</para>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Initial State</phrase>
		</title>

        <para lang="en">This model element is described in the context of statechart 
        diagrams (see <xref linkend="s1.ref.initial_state"/>).</para>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Final State</phrase>
		</title>

        <para lang="en">This model element is described in the context of statechart 
        diagrams (see <xref linkend="s1.ref.final_state"/>).</para>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Junction (Decision)</phrase>
		</title>

        <para lang="en">This model element is described in the context of statechart 
        diagrams (see <xref linkend="s1.ref.junction_state"/>).</para>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Fork</phrase>
		</title>

        <para lang="en">This model element is described in the context of statechart 
        diagrams (see <xref linkend="s1.ref.fork_state"/>).</para>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Join</phrase>
		</title>

        <para lang="en">This model element is described in the context of statechart 
        diagrams (see <xref linkend="s1.ref.join_state"/>).</para>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">ObjectFlowState</phrase>
		</title>

        <para lang="en">(To Be Written)</para>

      </sect1>

    </chapter>

    <chapter id="ch.ref.entdeploy">

      <title>
			<phrase lang="en">Deployment Diagram Model Element Reference</phrase>
		</title>

      <sect1>

        <title>
			<phrase lang="en">Introduction</phrase>
		</title>

        <para lang="en">This chapter describes each model element that can be created 
        within a Deployment Diagram. Note that some sub-model elements of 
        model elements on the diagram may not actually themselves appear on 
        the diagram.</para>

        <para lang="en">There is a close relationship between this material and 
        the Properties Tab of the Details Pane (see 
        <xref linkend="s1.ref.proptab"/>). That section covers 
        Properties in general, in this chapter they are linked to 
        specific model elements.</para>

        <para lang="en">Within ArgoUML, the deployment diagram is used for both 
        component diagrams (i.e. without instances, showing static 
        dependencies of components) and deployment diagrams (showing 
        how instances of components are handled by instances of nodes 
        at run-time).</para>

        <caution>

          <para lang="en">Deployment diagrams are not fully developed yet in 
          ArgoUML. Some aspects are not fully implemented or may not 
          behave as expected. Notable omissions are the possibility to 
          draw new interfaces and proper stereotyping of the various 
          dependency relationships.</para>

        </caution>

        <para lang="en"><xref linkend="fig.ref.component_diagram"/> shows a 
        component diagram with all possible model elements displayed.</para>

        <figure float="1" id="fig.ref.component_diagram">

          <title>
			<phrase lang="en">Possible model elements on a component diagram.</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/component_diagram.gif"
           format="GIF"/></imageobject></mediaobject></screenshot>
        </figure>

        <para lang="en"><xref linkend="fig.ref.deployment_diagram"/> shows a 
        deployment diagram with all possible model elements displayed.</para>

        <figure float="1" id="fig.ref.deployment_diagram">

          <title>
			<phrase lang="en">Possible model elements on a deployment diagram.</phrase>
		</title>

          <screenshot><mediaobject><imageobject>
          <imagedata align="center"
           fileref="images/reference/deployment_diagram.gif"
           format="GIF"/></imageobject></mediaobject></screenshot>
        </figure>

        <sect2>

          <title>
			<phrase lang="en">Limitations Concerning Deployment Diagrams in 
          ArgoUML</phrase>
		</title>

          <para lang="en">The deployment diagram is generally well drawn, but 
          there are only a subset of the relationships that should be 
          shown available, which restricts the ability to show dynamic 
          behavior of deployed code.</para>

          <para lang="en">It is not possible to create new interfaces directly on 
          this diagram; they can only be added if they are first 
          created in the model (by drawing them on a class 
          diagram).</para>

          <para lang="en">It is an inconvenience that the alternative 
          representation of an interface (as a small circle) is not 
          supported.</para>

        </sect2>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Node</phrase>
		</title>

        <para lang="en">A node is a run-time physical object on which components 
        may be deployed. In the UML metamodel it is a sub-class of 
        <literal>Classifier</literal>.</para>

        <para lang="en">A node is represented on a class diagram as a three 
        dimensional box, labeled with its name.</para>

        <sect2>

          <title>
			<phrase lang="en">Node Details Tabs</phrase>
		</title>

          <para lang="en">The details tabs that are active for nodes are as 
          follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See <xref linkend="s2.ref.node_property_toolbar"/>
                 and <xref linkend="s2.ref.node_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. The <literal>Bounds:</literal> 
                field defines the bounding box for the node on the 
                diagram.</para>

                <warning>

                  <para lang="en">Beware that in the 0.18 release of ArgoUML, the 
                  bounding box just refers to the front face of the 
                  cube. This means that the three dimensional top and 
                  side may be ignored, for example when determining the 
                  limits of a diagram for saving graphics.</para>

                </warning>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Source</literal></term>

              <listitem>

                <para lang="en">Standard tab, but with no contents.</para>

                <caution>

                  <para lang="en">A node should not generate any code, so having 
                  this tab active is probably a mistake.</para>

                </caution>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab. In the UML metamodel, <literal>
                Node</literal> has the following standard tagged values 
                defined.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>persistence</literal> (from the 
                    superclass, <literal>Classifier</literal>). Values 
                    <literal>transitory</literal>, indicating state is 
                    destroyed when an instance is destroyed or <literal>
                    persistent</literal>, marking state is preserved 
                    when an instance is destroyed.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>semantics</literal> (from the 
                    superclass, <literal>Classifier</literal>). The 
                    value is a specification of the semantics of the 
                    node.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>derived</literal> (from the 
                    superclass, <literal>ModelElement</literal>). 
                    Values <literal>true</literal>, meaning the node is 
                    redundant&mdash;it can be formally derived from other 
                    elements, or <literal>false</literal> meaning it 
                    cannot.</para>

                    <note>

                      <para lang="en">Derived nodes still have their value in 
                      analysis to introduce useful names or concepts, 
                      and in design to avoid re-computation.</para>

                    </note>

                  </listitem>

                </itemizedlist>

                <note>

                  <para lang="en">The UML <literal>Element</literal> metaclass 
                  from which all other model elements are derived includes 
                  the tagged element <literal>documentation</literal> 
                  which is handled by the <emphasis>documentation 
                  tab</emphasis> under ArgoUML</para>

                </note>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.node_property_toolbar">

          <title>
			<phrase lang="en">Node Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/reception.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New reception</literal></term>

              <listitem>

                <para lang="en">This creates a new reception, navigating 
                immediately to the properties tab for that 
                reception.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                node, navigating immediately to the properties tab for 
                that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the node from the model</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram. To delete 
                  a node from the diagram, but keep it within the 
                  model, use the main menu <literal>Remove From 
                  Diagram</literal> (or press the Delete key).</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.node_property_fields">

          <title>
			<phrase lang="en">Property Fields For Node</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <para lang="en">Text box. The name of the node. The name of a 
                node has a leading capital letter, with words separated 
                by <quote>bumpy caps</quote>.</para>

                <note>

                  <para lang="en">ArgoUML does not enforce this naming 
                  convention.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Drop down selector. Node is a type of classifier, 
                and so it has the default stereotypes of a classifier 
                as defined in the UML standard. ArgoUML provides the 
                standard stereotypes for a classifier: <literal>
                metaclass</literal>, <literal>powertype</literal>, 
                <literal>process</literal>, <literal>thread</literal> 
                and <literal>utility</literal>.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Navigate Stereotype</literal></term>

              <listitem>

                <para lang="en"><guiicon><inlinemediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/icons/navigate_stereotype.gif"
                 format="GIF"/></imageobject></inlinemediaobject></guiicon> 
                icon. If a stereotype has been selected, this will 
                navigate to the stereotype property panel (see 
                <xref linkend="s1.ref.stereotype"/>).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Namespace</literal></term>

              <listitem>

                <para lang="en">Drop down selector. Allows altering the namespace 
                for the node. This is the package hierarchy.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Modifiers</literal></term>

              <listitem>

                <para lang="en">Check box, with entries <literal>
                abstract</literal>, <literal>leaf</literal> and 
                <literal>root</literal>.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>abstract</literal> is used to 
                    declare that this node cannot be instantiated, but 
                    must always be specialized. The name of an abstract 
                    node is displayed in italics on the diagram.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>leaf</literal> indicates that this 
                    node cannot be further specialized.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>root</literal> indicates the node 
                    can have no generalization.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Generalizations</literal></term>

              <listitem>

                <para lang="en">Text area. Lists any node that 
                <emphasis>generalizes</emphasis> this node.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the 
                generalization and opens its property tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Specializations</literal></term>

              <listitem>

                <para lang="en">Text box. Lists any specialized node (i.e. for 
                which this node is a generalization.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the 
                specialization and opens its property tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Residents</literal></term>

              <listitem>

                <para lang="en">Text box. Lists any residents (see 
                <xref linkend="s1.ref.component"/>) designed to be 
                deployed on this type of node.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the selected 
                entry.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.node_instance">

        <title>
			<phrase lang="en">Node Instance</phrase>
		</title>

        <para lang="en">A node instance is an instance of a node where component 
        instances (see <xref linkend="s1.ref.component_instance"/>) may 
        reside. In the UML metamodel <literal>NodeInstance</literal> is 
        a sub-class of <literal>Instance</literal> and is specifically 
        an instance that is derived from a node.</para>

        <para lang="en">A node instance is represented on a deployment diagram in 
        ArgoUML as a three dimensional box labeled with the node 
        instance name (if any) and node type, separated by a colon (
        <literal>:</literal>).</para>

        <tip>

          <para lang="en">It is the presence of the colon (<literal>:</literal>) 
          and the underlining of the name and type that distinguishes a 
          node instance from a node.</para>

        </tip>

        <sect2>

          <title>
			<phrase lang="en">Node Instance Details Tabs</phrase>
		</title>

          <para lang="en">The details tabs that are active for node instances are 
          as follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.node_instance_property_toolbar"/> 
                and 
                <xref linkend="s2.ref.node_instance_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. The <literal>Bounds:</literal> 
                field defines the bounding box for the node instance on 
                the diagram.</para>

                <warning>

                  <para lang="en">Beware that in the current release of ArgoUML, 
                  the bounding box just refers to the front face of the 
                  cube. This means that the three dimensional top and 
                  side may be ignored, for example when determining the 
                  limits of a diagram for saving graphics.</para>

                </warning>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Source</literal></term>

              <listitem>

                <para lang="en">Standard tab, containing just the name of the 
                node instance.</para>

                <caution>

                  <para lang="en">A node instance should not generate any code, 
                  so having this tab active is probably a 
                  mistake.</para>

                </caution>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

                <note>

                  <para lang="en">The UML <literal>Element</literal> metaclass 
                  from which all other model elements are derived includes 
                  the tagged element <literal>documentation</literal> 
                  which is handled by the <emphasis>documentation 
                  tab</emphasis> under ArgoUML</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Checklist</literal></term>

              <listitem>

                <para lang="en">Standard tab for an Instance.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.node_instance_property_toolbar">

          <title>
			<phrase lang="en">Node Instance Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                node instance, navigating immediately to the properties 
                tab for that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the node instance from the 
                model</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram. To delete 
                  an node instance from the diagram, but keep it within 
                  the model, use the main menu <literal>Remove From 
                  Diagram</literal> (or press the Delete key).</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.node_instance_property_fields">

          <title>
			<phrase lang="en">Property Fields For Node Instance</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <para lang="en">Text box. The name of the node instance. By 
                convention node instance names start with a lower case 
                letter and use bumpy caps to divide words within the 
                name.</para>

                <note>

                  <para lang="en">ArgoUML does not enforce this naming 
                  convention.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Drop down selector. Node instance has no 
                stereotypes by default in the UML standard.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Navigate Stereotype</literal></term>

              <listitem>

                <para lang="en"><guiicon><inlinemediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/icons/navigate_stereotype.gif"
                 format="GIF"/></imageobject></inlinemediaobject></guiicon> 
                icon. If a stereotype has been selected, this will 
                navigate to the stereotype property panel (see 
                <xref linkend="s1.ref.stereotype"/>).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Namespace</literal></term>

              <listitem>

                <para lang="en">Drop down selector. Records the namespace for the 
                node instance. This is the package hierarchy.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stimuli sent</literal></term>

              <listitem>

                <para lang="en">(To Be Written).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stimuli Received</literal></term>

              <listitem>

                <para lang="en">(To Be Written).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Residents</literal></term>

              <listitem>

                <para lang="en">Text box. Lists any residents (see 
                <xref linkend="s1.ref.component"/>) designed to be 
                deployed on this type of node.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the selected 
                entry.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Classifiers</literal></term>

              <listitem>

                <para lang="en">Text field. A Node instance type can be selected 
                here.</para>

                <caution>

                  <para lang="en">ArgoUML V0.18 lists many more items in the 
                  dropdown list then solely Nodes. Beware to select 
                  Nodes only.</para>

                </caution>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.component">

        <title>
			<phrase lang="en">Component</phrase>
		</title>

        <para lang="en">A component type represents a distributable piece of 
        implementation of a system, including software code (source, 
        binary, or executable) but also including business documents, 
        etc., in a human system. Components may be used to show 
        dependencies, such as compiler and run-time dependencies or 
        information dependencies in a human organization. In the UML 
        metamodel it is a sub-class of <literal>
        Classifier</literal>.</para>

        <para lang="en">A component is represented on a class diagram as a box 
        with two small rectangles protruding from its left side, 
        labeled with its name.</para>

        <sect2>

          <title>
			<phrase lang="en">Component Details Tabs</phrase>
		</title>

          <para lang="en">The details tabs that are active for components are as 
          follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.component_property_toolbar"/> and 
                <xref linkend="s2.ref.component_property_fields"/> 
                below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. The <literal>Bounds:</literal> 
                field defines the bounding box for the component on the 
                diagram.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Source</literal></term>

              <listitem>

                <para lang="en">Standard tab, but with no contents.</para>

                <caution>

                  <para lang="en">A component should not generate any code, so 
                  having this tab active is probably a mistake.</para>

                </caution>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

                <note>

                  <para lang="en">The UML <literal>Element</literal> metaclass 
                  from which all other model elements are derived includes 
                  the tagged element <literal>documentation</literal> 
                  which is handled by the <emphasis>documentation 
                  tab</emphasis> under ArgoUML</para>

                </note>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.component_property_toolbar">

          <title>
			<phrase lang="en">Component Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/reception.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New reception</literal></term>

              <listitem>

                <para lang="en">This creates a new reception, navigating 
                immediately to the properties tab for that 
                reception.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                component, navigating immediately to the properties tab 
                for that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the component from the model</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram. To delete 
                  a component from the diagram, but keep it within the 
                  model, use the main menu <literal>Remove From 
                  Diagram</literal> (or press the Delete key).</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.component_property_fields">

          <title>
			<phrase lang="en">Property Fields For Component</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <para lang="en">Text box. The name of the component. The name of 
                a component has a leading capital letter, with words 
                separated by <quote>bumpy caps</quote>.</para>

                <note>

                  <para lang="en">ArgoUML does not enforce this naming 
                  convention.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Drop down selector. Component is provided by 
                default with the UML standard stereotypes <literal>
                document</literal>, <literal>executable</literal>, 
                <literal>file</literal>, <literal>library</literal> and 
                <literal>table</literal>. ArgoUML also provides the 
                standard Classifier stereotypes, <literal>
                metaclass</literal>, <literal>powertype</literal>, 
                <literal>process</literal>, <literal>thread</literal> 
                and <literal>utility</literal>.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Navigate Stereotype</literal></term>

              <listitem>

                <para lang="en"><guiicon><inlinemediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/icons/navigate_stereotype.gif"
                 format="GIF"/></imageobject></inlinemediaobject></guiicon> 
                icon. If a stereotype has been selected, this will 
                navigate to the stereotype property panel (see 
                <xref linkend="s1.ref.stereotype"/>).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Namespace</literal></term>

              <listitem>

                <para lang="en">Drop down selector. Records and allows altering 
                the namespace for the component. This is the package 
                hierarchy.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Modifiers</literal></term>

              <listitem>

                <para lang="en">Check box, with entries <literal>
                abstract</literal>, <literal>leaf</literal> and 
                <literal>root</literal>.</para>

                <itemizedlist>

                  <listitem>

                    <para lang="en"><literal>Abstract</literal> is used to 
                    declare that this component cannot be instantiated, 
                    but must always be specialized.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Leaf</literal> indicates that this 
                    component cannot be further specialized.</para>

                  </listitem>

                  <listitem>

                    <para lang="en"><literal>Root</literal> indicates the node 
                    can have no generalization.</para>

                  </listitem>

                </itemizedlist>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Generalizations</literal></term>

              <listitem>

                <para lang="en">Text box. Lists any component that generalizes 
                this component.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Specializations</literal></term>

              <listitem>

                <para lang="en">Text area. Lists any derived components, i.e 
                those for which this component is a 
                generalization.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Client Dependencies</literal></term>

              <listitem>

                <para lang="en">Text area. Lists outgoing dependencies. Button&nbsp;1 
                double click navigates to the dependency.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Supplier Dependencies</literal></term>

              <listitem>

                <para lang="en">Text area. Lists incoming dependencies. Button&nbsp;1 
                double click navigates to the dependency.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Residents</literal></term>

              <listitem>

                <para lang="en">Text box. Lists any residents (see 
                <xref linkend="s1.ref.component"/>) designed to be 
                deployed on this type of node.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the selected 
                entry.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1 id="s1.ref.component_instance">

        <title>
			<phrase lang="en">Component Instance</phrase>
		</title>

        <para lang="en">A component instance is an instance of a component (see 
        <xref linkend="s1.ref.component"/>) which may reside on a node 
        instance (see <xref linkend="s1.ref.node_instance"/>). In the 
        UML metamodel <literal>ComponentInstance</literal> is a 
        sub-class of <literal>Instance</literal> and is specifically an 
        instance that is derived from a component.</para>

        <para lang="en">A component is represented on a class diagram as a box 
        with two small rectangles protruding from its left side, 
        labeled with its name.</para>

        <para lang="en">A component instance is represented on a sequence diagram 
        in ArgoUML as a box with two small rectangles protruding from 
        its left side labeled with the component instance name (if any) 
        and component type, separated by a colon (
        <literal>:</literal>).</para>

        <tip>

          <para lang="en">It is the presence of the colon (<literal>:</literal>) 
          and the underlining of the name and type that distinguishes a 
          component instance from a component.</para>

        </tip>

        <sect2>

          <title>
			<phrase lang="en">Component Instance Details Tabs</phrase>
		</title>

          <para lang="en">The details tabs that are active for component 
          instances are as follows.</para>

          <variablelist>

            <varlistentry>

              <term><literal>ToDoItem</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Properties</literal></term>

              <listitem>

                <para lang="en">See 
                <xref linkend="s2.ref.component_instance_property_toolbar"/>
                 and 
                <xref linkend="s2.ref.component_instance_property_fields"/>
                 below.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Documentation</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Presentation</literal></term>

              <listitem>

                <para lang="en">Standard tab. The <literal>Bounds:</literal> 
                field defines the bounding box for the component on the 
                diagram.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Source</literal></term>

              <listitem>

                <para lang="en">Standard tab, containing just the name of the 
                component instance.</para>

                <caution>

                  <para lang="en">A component instance should not generate any 
                  code, so having this tab active is probably a 
                  mistake.</para>

                </caution>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Tagged Values</literal></term>

              <listitem>

                <para lang="en">Standard tab.</para>

                <note>

                  <para lang="en">The UML <literal>Element</literal> metaclass 
                  from which all other model elements are derived includes 
                  the tagged element <literal>documentation</literal> 
                  which is handled by the <emphasis>documentation 
                  tab</emphasis> under ArgoUML</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Checklist</literal></term>

              <listitem>

                <para lang="en">Standard tab for an Instance.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.component_instance_property_toolbar">

          <title>
			<phrase lang="en">Component Instance Property Toolbar</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/navigate_up.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Go up</literal></term>

              <listitem>

                <para lang="en">Navigate up through the package structure.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/stereotype.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>New Stereotype</literal></term>

              <listitem>

                <indexterm lang="en"><primary>Add Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>New Stereotype</primary></indexterm>
                <indexterm lang="en"><primary>Create 
                New</primary><secondary>Stereotype</secondary></indexterm>
                <para lang="en">This creates a new Stereotype (see 
                <xref linkend="s1.ref.stereotype"/>) for the selected 
                component instance, navigating immediately to the 
                properties tab for that stereotype.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><guiicon><inlinemediaobject><imageobject>
              <imagedata align="center"
               fileref="images/icons/property_delete.gif"
               format="GIF"/></imageobject></inlinemediaobject></guiicon> 
              <literal>Delete</literal></term>

              <listitem>

                <para lang="en">This deletes the component instance from the 
                model</para>

                <warning>

                  <para lang="en">This is a deletion from the model 
                  <emphasis>not</emphasis> just the diagram. To delete 
                  a component instance from the diagram, but keep it 
                  within the model, use the main menu <literal>Remove 
                  From Diagram</literal> (or press the Delete 
                  key).</para>

                </warning>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

        <sect2 id="s2.ref.component_instance_property_fields">

          <title>
			<phrase lang="en">Property Fields For Component Instance</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>Name</literal></term>

              <listitem>

                <para lang="en">Text box. The name of the component instance. By 
                convention component instance names start with a lower 
                case letter and use bumpy caps to divide words within 
                the name.</para>

                <note>

                  <para lang="en">ArgoUML does not enforce this naming 
                  convention.</para>

                </note>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stereotype</literal></term>

              <listitem>

                <para lang="en">Drop down selector. Component instance has no 
                stereotypes by default in the UML standard.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Navigate Stereotype</literal></term>

              <listitem>

                <para lang="en"><guiicon><inlinemediaobject><imageobject>
                <imagedata align="center"
                 fileref="images/icons/navigate_stereotype.gif"
                 format="GIF"/></imageobject></inlinemediaobject></guiicon> 
                icon. If a stereotype has been selected, this will 
                navigate to the stereotype property panel (see 
                <xref linkend="s1.ref.stereotype"/>).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Namespace</literal></term>

              <listitem>

                <para lang="en">Drop down selector. Records and allows to change 
                the namespace for the component instance. This is the 
                package hierarchy.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stimuli sent</literal></term>

              <listitem>

                <para lang="en">(To Be Written).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Stimuli Received</literal></term>

              <listitem>

                <para lang="en">(To Be Written).</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Residents</literal></term>

              <listitem>

                <para lang="en">Text box. Lists any residents (see 
                <xref linkend="s1.ref.component"/>) designed to be 
                deployed on this component.</para>

                <para lang="en">Button&nbsp;1 double click navigates to the selected 
                entry.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>Classifiers</literal></term>

              <listitem>

                <para lang="en">Drop down selector. A Component instance type can 
                be selected here.</para>

                <caution>

                  <para lang="en">ArgoUML V0.18 lists many more items in the 
                  dropdown list then solely Components. Beware to 
                  select Components only.</para>

                </caution>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect2>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Dependency</phrase>
		</title>

        <para lang="en">A key part of any component or deployment diagram is to 
        show dependencies. For details see 
        <xref linkend="s1.ref.dependency_class"/>.</para>

        <caution>

          <para lang="en">UML relies on stereotyping of dependencies on component 
          and deployment diagrams to characterize the types of 
          relationship. In the current release of ArgoUML there are 
          limitations in the implementation of dependencies which limit 
          this functionality.</para>

        </caution>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Class</phrase>
		</title>

        <para lang="en">A component diagram may show the key internal structure 
        of components, including classes within the component. For 
        details see <xref linkend="s1.ref.class_class"/>.</para>

        <caution>

          <para lang="en">Classes can only be added to a component diagram if 
          they already exist in the model (by selecting them in the 
          explorer and executing the &quot;Add to diagram&quot; 
          button&nbsp;2 command). There is no way to create a new class on a 
          component diagram.</para>

        </caution>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Interface</phrase>
		</title>

        <para lang="en">A component or deployment diagram may show components or 
        component instances which implement interfaces. For details see 
        <xref linkend="s1.ref.interface_class"/>.</para>

        <caution>

          <para lang="en">The V0.18 release of ArgoUML uses the same 
          representation of an interface as a class diagram. The UML 
          standard suggests that an interface on a component or 
          deployment diagram should just be shown as a small open 
          circle, connected to the component which realizes that 
          interface.</para>

        </caution>

        <warning>

          <para lang="en">There is no way to show the linking of an interface to 
          a component or component instance in the V0.18 release of 
          ArgoUML.</para>

        </warning>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Association</phrase>
		</title>

        <para lang="en">Components may be associated to each other. For details 
        about associations, see 
        <xref linkend="s1.ref.association_class"/>.</para>

        <para lang="en">Where classes or interfaces are shown within components 
        on component diagrams, they may be shown linked by 
        associations.</para>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Object</phrase>
		</title>

        <para lang="en">Just as components may show the classifiers that make up 
        their internal structure, component instances on deployment 
        diagrams may show the classifier instances that make up their 
        internal structure. In practice the only instance that is of 
        use is an object (an instance of a class). For details see 
        <xref linkend="s1.ref.object_sequence"/>.</para>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Link</phrase>
		</title>

        <para lang="en">Where objects (Node Instances or Class Instances) are 
        shown within component instances on deployment diagrams, their 
        inter-relationships may be shown as links (instances of an 
        association). See <xref linkend="s1.ref.link_sequence"/> for 
        details.</para>

      </sect1>

    </chapter>

    <chapter id="ch.ref.entbuiltin">

      <title>
			<phrase lang="en">Built In DataTypes, Classes, Interfaces and 
      Stereotypes</phrase>
		</title>

      <sect1>

        <title>
			<phrase lang="en">Introduction</phrase>
		</title>

        <para lang="en">This chapter describes the datatypes, classes, interfaces 
        and stereotypes, which by default, are built in to 
        ArgoUML.</para>

        <para lang="en">Datatypes, classes and interfaces are generally available 
        for use anywhere a class may be selected in the properties tab. 
        The most common use is for return type and parameter types in 
        method signatures.</para>

        <sect2>

          <title>
			<phrase lang="en">Package Structure</phrase>
		</title>

          <para lang="en">ArgoUML datatypes, classes and interfaces are 
          effectively organized as a hierarchy beneath the overall 
          model itself. They are grouped in four packages, <literal>
          lang</literal>, <literal>math</literal>, <literal>
          net</literal> and <literal>util</literal>, themselves 
          subpackages of <literal>java</literal>, which is a subpackage 
          of the model itself. <xref linkend="fig.ref.entclasshier"/> 
          shows this structure.</para>

          <figure float="1" id="fig.ref.entclasshier">

            <title>
			<phrase lang="en">Hierarchy of datatypes, classes and interfaces 
            within ArgoUML</phrase>
		</title>

            <screenshot><mediaobject><imageobject>
            <imagedata align="center"
             fileref="images/reference/entclasshier.gif"
             format="GIF"/></imageobject></mediaobject></screenshot>
          </figure>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Exposure in the model</phrase>
		</title>

          <para lang="en">You will not find build-in DataTypes, Classes, and 
          Interfaces exposed within the model by default (i.e. they are 
          not present in the explorer). However, once you select one of 
          the built-in DataTypes, Classes, or Interfaces (in the 
          &quot;Type&quot; combo-box on the property sheet of a 
          parameter of an operation of a class), then it becomes 
          visible: you will find that the DataType, Class, or Interface 
          has appeared in the model, in its correct package stucture 
          for the latter 2.</para>

        </sect2>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Built In Datatypes</phrase>
		</title>

        <para lang="en">These are the built in atomic types. You can change them 
        if you wish. However this is not good practice.</para>

        <para lang="en">All these can be found in the <literal>
        java.lang</literal> subpackage of the main model.</para>

        <caution>

          <para lang="en">You should be aware that these are Java datatypes. They 
          are not mandated by the UML standard.</para>

        </caution>

        <para lang="en">These are the standard datatypes. For their definition 
        refer to the Java standard.</para>

        <itemizedlist>

          <listitem>

            <para lang="en"><literal>boolean</literal></para>

          </listitem>

          <listitem>

            <para lang="en"><literal>byte</literal></para>

          </listitem>

          <listitem>

            <para lang="en"><literal>char</literal></para>

          </listitem>

          <listitem>

            <para lang="en"><literal>double</literal></para>

          </listitem>

          <listitem>

            <para lang="en"><literal>float</literal></para>

          </listitem>

          <listitem>

            <para lang="en"><literal>int</literal></para>

          </listitem>

          <listitem>

            <para lang="en"><literal>long</literal></para>

          </listitem>

          <listitem>

            <para lang="en"><literal>short</literal></para>

          </listitem>

          <listitem>

            <para lang="en"><literal>void</literal></para>

          </listitem>

        </itemizedlist>

        <note>

          <para lang="en"><literal>void</literal> is not strictly speaking a 
          type, but the absence of type. ArgoUML knows about void and 
          allows it as an option where a datatype may be 
          selected.</para>

        </note>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Built In Classes</phrase>
		</title>

        <para lang="en">These are the common classes, corresponding to classes 
        defined within the standard Java environment. It is up to you 
        if you wish to change them.</para>

        <para lang="en">These are found in all four subpackages of the <literal>
        java</literal> subpackage.</para>

        <para lang="en">For a definition of these classes see the Java language 
        and library definitions.</para>

        <sect2>

          <title>
			<phrase lang="en">Built In Classes From <literal>
          java.lang</literal></phrase>
		</title>

          <para lang="en">These are the classes within the <literal>
          java.lang</literal> package.</para>

          <itemizedlist>

            <listitem>

              <para lang="en"><literal>Boolean</literal></para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Byte</literal></para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Char</literal></para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Double</literal></para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Float</literal></para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Integer</literal></para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Long</literal></para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Object</literal></para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Short</literal></para>

            </listitem>

            <listitem>

              <para lang="en"><literal>String</literal></para>

            </listitem>

          </itemizedlist>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Built In Classes From <literal>
          java.math</literal></phrase>
		</title>

          <para lang="en">These are the classes within the <literal>
          java.math</literal> package.</para>

          <itemizedlist>

            <listitem>

              <para lang="en"><literal>Big Decimal</literal></para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Big Integer</literal></para>

            </listitem>

          </itemizedlist>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Built In Classes From <literal>
          java.net</literal></phrase>
		</title>

          <para lang="en">These are the classes within the <literal>
          java.net</literal> package.</para>

          <itemizedlist>

            <listitem>

              <para lang="en"><literal>URL</literal></para>

            </listitem>

          </itemizedlist>

        </sect2>

        <sect2>

          <title>
			<phrase lang="en">Built In Classes From <literal>
          java.util</literal></phrase>
		</title>

          <para lang="en">These are the classes within the <literal>
          java.util</literal> package.</para>

          <itemizedlist>

            <listitem>

              <para lang="en"><literal>Vector</literal></para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Date</literal></para>

            </listitem>

            <listitem>

              <para lang="en"><literal>Time</literal></para>

            </listitem>

          </itemizedlist>

        </sect2>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Built In Interfaces</phrase>
		</title>

        <para lang="en">These are some useful interfaces, corresponding to 
        classes defined within the standard Java environment. 
        Interfaces have many of the properties of classes (like all 
        types) and you can change them if you wish.</para>

        <para lang="en">All these can be found in the <literal>
        java.util</literal> subpackage of the main model.</para>

        <para lang="en">These are the interfaces defined within the <literal>
        java.util</literal> package. For their definition consult the 
        Java language and library references.</para>

        <itemizedlist>

          <listitem>

            <para lang="en"><literal>Collection</literal></para>

          </listitem>

          <listitem>

            <para lang="en"><literal>Iterator</literal></para>

          </listitem>

          <listitem>

            <para lang="en"><literal>List</literal></para>

          </listitem>

          <listitem>

            <para lang="en"><literal>Set</literal></para>

          </listitem>

          <listitem>

            <para lang="en"><literal>Sorted Set</literal></para>

          </listitem>

        </itemizedlist>

      </sect1>

      <sect1>

        <title>
			<phrase lang="en">Built In Stereotypes</phrase>
		</title>

        <para lang="en">UML 1.4 defines a large number of stereotypes 
        of which most are 
        supported by ArgoUML.</para>

        <caution>

          <para lang="en">Not all stereotypes defined by UML&nbsp;1.4 appear in 
          ArgoUML V0.20 due to 
          the fact that they were not yet updated 
          from previous versions of ArgoUML 
          that only supported UML 1.3.
          Also, there are
          limitations in the current implementation of 
          some base elements. The table below lists all stereotypes defined 
          in UML 1.4 and if they are supported in 
          ArgoUML or not.</para>

        </caution>

        <caution>

          <para lang="en">The UML&nbsp;1.4 standard also specifies many stereotypes in 
          the chapters <quote>Example Profiles</quote>: one for 
          <quote>Software Development</quote> and one for 
          <quote>Business Modeling</quote>. Due to the specialized 
          nature of these profiles, implementation in ArgoUML is 
          postponed until a yet undetermined moment.</para>

        </caution>

        <table frame="all">

          <title>
			<phrase lang="en">Stereotypes defined in UML 1.4 and ArgoUML</phrase>
		</title>

          <tgroup cols="3">

            <thead>

              <row><entry><para lang="en"><emphasis>StereoType</emphasis></para></entry><entry><para lang="en"><emphasis>Base 
              Element</emphasis></para></entry><entry><para lang="en"><emphasis>ArgoUML 
              support</emphasis></para></entry></row>

            </thead>

            <tbody>

              <row><entry><para lang="en">access</para></entry><entry><para lang="en">Permission</para></entry><entry><para lang="en">yes</para></entry></row>
              <row><entry><para lang="en">appliedProfile</para></entry><entry><para lang="en">Package</para></entry><entry><para lang="en">no</para></entry></row>
              <row><entry><para lang="en">association</para></entry><entry><para lang="en">AssociationEnd</para></entry><entry><para lang="en">yes</para></entry></row>
              <row><entry><para lang="en">auxiliary</para></entry><entry><para lang="en">Class</para></entry><entry><para lang="en">no</para></entry></row>
              <row><entry><para lang="en">become</para></entry><entry><para lang="en">Flow</para></entry><entry><para lang="en">no</para></entry></row>

              <row><entry><para lang="en">call</para></entry><entry><para lang="en">Usage</para></entry><entry><para lang="en">yes</para></entry></row>

              <row><entry><para lang="en">copy</para></entry><entry><para lang="en">Flow</para></entry><entry><para lang="en">no</para></entry></row>

              <row><entry><para lang="en">create</para></entry><entry><para lang="en">BehavioralFeature</para></entry><entry><para lang="en">yes</para></entry></row>

              <row><entry><para lang="en">create</para></entry><entry><para lang="en">CallEvent</para></entry><entry><para lang="en">yes</para></entry></row>

              <row><entry><para lang="en">create</para></entry><entry><para lang="en">Usage</para></entry><entry><para lang="en">yes</para></entry></row>

              <row><entry><para lang="en">derive</para></entry><entry><para lang="en">Abstraction</para></entry><entry><para lang="en">yes</para></entry></row>

              <row><entry><para lang="en">destroy</para></entry><entry><para lang="en">BehavioralFeature</para></entry><entry><para lang="en">yes</para></entry></row>

              <row><entry><para lang="en">destroy</para></entry><entry><para lang="en">CallEvent</para></entry><entry><para lang="en">yes</para></entry></row>

              <row><entry><para lang="en">document</para></entry><entry><para lang="en">Abstraction</para></entry><entry><para lang="en">no</para></entry></row>

              <row><entry><para lang="en">executable</para></entry><entry><para lang="en">Abstraction</para></entry><entry><para lang="en">no</para></entry></row>

              <row><entry><para lang="en">facade</para></entry><entry><para lang="en">Package</para></entry><entry><para lang="en">yes</para></entry></row>

              <row><entry><para lang="en">file</para></entry><entry><para lang="en">Abstraction</para></entry><entry><para lang="en">no</para></entry></row>
              <row><entry><para lang="en">focus</para></entry><entry><para lang="en">Class</para></entry><entry><para lang="en">no</para></entry></row>
              <row><entry><para lang="en">framework</para></entry><entry><para lang="en">Package</para></entry><entry><para lang="en">yes</para></entry></row>

              <row><entry><para lang="en">friend</para></entry><entry><para lang="en">Permission</para></entry><entry><para lang="en">yes</para></entry></row>

              <row><entry><para lang="en">global</para></entry><entry><para lang="en">AssociationEnd</para></entry><entry><para lang="en">yes</para></entry></row>
              <row><entry><para lang="en">implementation</para></entry><entry><para lang="en">Class</para></entry><entry><para lang="en">no</para></entry></row>
              <row><entry><para lang="en">implementation</para></entry><entry><para lang="en">Generalization</para></entry><entry><para lang="en">yes</para></entry></row>

              
              <row><entry><para lang="en">implicit</para></entry><entry><para lang="en">Association</para></entry><entry><para lang="en">yes</para></entry></row>

              <row><entry><para lang="en">import</para></entry><entry><para lang="en">Permission</para></entry><entry><para lang="en">yes</para></entry></row>

              <row><entry><para lang="en">instantiate</para></entry><entry><para lang="en">Usage</para></entry><entry><para lang="en">yes</para></entry></row>

              <row><entry><para lang="en">invariant</para></entry><entry><para lang="en">Constraint</para></entry><entry><para lang="en">no</para></entry></row>

              <row><entry><para lang="en">library</para></entry><entry><para lang="en">Abstraction</para></entry><entry><para lang="en">no</para></entry></row>

              <row><entry><para lang="en">local</para></entry><entry><para lang="en">AssociationEnd</para></entry><entry><para lang="en">yes</para></entry></row>

              <row><entry><para lang="en">metaclass</para></entry><entry><para lang="en">Class</para></entry><entry><para lang="en">no</para></entry></row>

              <row><entry><para lang="en">metamodel</para></entry><entry><para lang="en">Package</para></entry><entry><para lang="en">yes</para></entry></row>
              <row><entry><para lang="en">modelLibrary</para></entry><entry><para lang="en">Package</para></entry><entry><para lang="en">no</para></entry></row>

              <row><entry><para lang="en">parameter</para></entry><entry><para lang="en">AssociationEnd</para></entry><entry><para lang="en">yes</para></entry></row>

              <row><entry><para lang="en">postcondition</para></entry><entry><para lang="en">Constraint</para></entry><entry><para lang="en">no</para></entry></row>

              <row><entry><para lang="en">powertype</para></entry><entry><para lang="en">Class</para></entry><entry><para lang="en">no</para></entry></row>

              <row><entry><para lang="en">precondition</para></entry><entry><para lang="en">Constraint</para></entry><entry><para lang="en">no</para></entry></row>

              <row><entry><para lang="en">process</para></entry><entry><para lang="en">Classifier</para></entry><entry><para lang="en">yes</para></entry></row>
              <row><entry><para lang="en">profile</para></entry><entry><para lang="en">Package</para></entry><entry><para lang="en">no</para></entry></row>
              
              <row><entry><para lang="en">realize</para></entry><entry><para lang="en">Abstraction</para></entry><entry><para lang="en">yes</para></entry></row>

              <row><entry><para lang="en">refine</para></entry><entry><para lang="en">Abstraction</para></entry><entry><para lang="en">yes</para></entry></row>

              <row><entry><para lang="en">requirement</para></entry><entry><para lang="en">Comment</para></entry><entry><para lang="en">yes</para></entry></row>

              <row><entry><para lang="en">responsibility</para></entry><entry><para lang="en">Comment</para></entry><entry><para lang="en">yes</para></entry></row>

              <row><entry><para lang="en">self</para></entry><entry><para lang="en">AssociationEnd</para></entry><entry><para lang="en">yes</para></entry></row>

              <row><entry><para lang="en">send</para></entry><entry><para lang="en">Usage</para></entry><entry><para lang="en">yes</para></entry></row>

              <row><entry><para lang="en">signalflow</para></entry><entry><para lang="en">ObjectFlowState</para></entry><entry><para lang="en">yes</para></entry></row>
              <row><entry><para lang="en">source</para></entry><entry><para lang="en">Abstraction</para></entry><entry><para lang="en">no</para></entry></row>
              <row><entry><para lang="en">stateInvariant</para></entry><entry><para lang="en">Constraint</para></entry><entry><para lang="en">no</para></entry></row>
              
              <row><entry><para lang="en">stub</para></entry><entry><para lang="en">Package</para></entry><entry><para lang="en">yes</para></entry></row>

              <row><entry><para lang="en">systemModel</para></entry><entry><para lang="en">Package</para></entry><entry><para lang="en">yes</para></entry></row>

              <row><entry><para lang="en">table</para></entry><entry><para lang="en">Abstraction</para></entry><entry><para lang="en">no</para></entry></row>

              <row><entry><para lang="en">thread</para></entry><entry><para lang="en">Classifier</para></entry><entry><para lang="en">yes</para></entry></row>

              <row><entry><para lang="en">topLevel</para></entry><entry><para lang="en">Package</para></entry><entry><para lang="en">yes</para></entry></row>

              <row><entry><para lang="en">trace</para></entry><entry><para lang="en">Abstraction</para></entry><entry><para lang="en">yes</para></entry></row>

              <row><entry><para lang="en">type</para></entry><entry><para lang="en">Class</para></entry><entry><para lang="en">yes</para></entry></row>


            </tbody>

          </tgroup>

        </table>

      </sect1>

    </chapter>

  </part>

  <glossary id="glossary">

    <title>
			<phrase lang="en">Glossary</phrase>
		</title>

    <glossdiv>

      <title>
			<phrase lang="en">A</phrase>
		</title>

      <glossentry id="gl.activitydiag">

        <glossterm>Activity Diagram</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Activity Diagram</primary></indexterm>
          <indexterm lang="en">
          <primary>Diagram</primary><secondary>Activity</secondary></indexterm>
          <para lang="en">A UML diagram capturing the dynamic behavior of a 
          system or sub-system. See 
          <xref linkend="s1.umlactivitydiags"/> for more 
          information.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.action">

        <glossterm>Action</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Action</primary></indexterm>
          <para lang="en">Behavior associated with <emphasis>States</emphasis> or 
          <emphasis>Transitions</emphasis> in <emphasis>State 
          Diagram</emphasis>. These actions are invocations of 
          <emphasis>Methods</emphasis> and appear on 
          <emphasis>Sequence</emphasis> and <emphasis>Collaboration 
          Diagrams</emphasis>.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.actor">

        <glossterm>Actor</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Actor</primary></indexterm>
          <para lang="en">A representation of an agent (animate or inanimate) on 
          a <emphasis>Use Case Diagram</emphasis> external to the 
          system being designed.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.analysis">

        <glossterm>Analysis</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Analysis</primary></indexterm>
          <para lang="en">Analysis is the process of taking the 
          <quote>customer</quote> requirements and re-casting them in 
          the language of, and from the perspective of, a putative 
          solution.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.assocclass">

        <glossterm>Association Class</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Association Class</primary></indexterm>
          <para lang="en">A class that characterizes the association between two 
          other classes.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.association">

        <glossterm>Association</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Association</primary></indexterm>
          <para lang="en">A relationship between two classes in a Class Diagram 
          or between Use Cases or Use Cases and Actors in a Use Case 
          Diagram.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.attribute">

        <glossterm>Attribute (of a Class or Object)</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Attribute</primary><secondary>of a 
          Class</secondary></indexterm>
          <indexterm lang="en"><primary>Attribute</primary><secondary>of an 
          Object</secondary></indexterm>
          <para lang="en">An attribute of a class or object is a specification of 
          a data element encapsulated by that object.</para>

        </glossdef>

      </glossentry>

    </glossdiv>

    <glossdiv>

      <title>
			<phrase lang="en">C</phrase>
		</title>

      <glossentry id="gl.case">

        <glossterm>CASE</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>CASE</primary></indexterm>
          <para lang="en">Computer Aided Software Engineering.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.class">

        <glossterm>Class</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Class</primary></indexterm>
          <para lang="en">The encapsulation of the data associated with a 
          model element (its <emphasis>attributes</emphasis>) and the 
          actions associated with the model element (its 
          <emphasis>methods</emphasis>).</para>

          <para lang="en">A class specifies the characteristics of a model element. 
          An <emphasis>object</emphasis> represents an instance of the 
          model element.</para>

          <para lang="en">Classes and objects in UML are represented on 
          <emphasis>Activity Diagrams</emphasis>, <emphasis>Class 
          Diagrams</emphasis>, <emphasis>Collaboration 
          Diagrams</emphasis> and <emphasis>Sequence 
          Diagrams</emphasis>.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.classdiag">

        <glossterm>Class Diagram</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Class Diagram</primary></indexterm>
          <indexterm lang="en">
          <primary>Diagram</primary><secondary>Class</secondary></indexterm>
          <para lang="en">A UML Diagram showing the structural relationship 
          between classes. See <xref linkend="s1.umlclassdiags"/> for 
          more information.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.collaboration">

        <glossterm>Collaboration</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Collaboration</primary></indexterm>
          <para lang="en">
            The process whereby several objects cooperate to provide some
            higher level behavior that is greater than the sum of the
            behaviors of the objects.
          </para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.collabdiag">

        <glossterm>Collaboration Diagram</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Collaboration 
          Diagram</primary></indexterm>
          <indexterm lang="en">
          <primary>Diagram</primary><secondary>Collaboration</secondary></indexterm>
          <para lang="en">A UML Diagram showing the dynamic behavior as messages 
          are passed between objects. Equivalent to a 
          <emphasis>Sequence Diagram</emphasis>. Which representation 
          is appropriate depends on the problem under 
          consideration.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.collaborator">

        <glossterm>Collaborator</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Collaborator</primary></indexterm>
          <para lang="en">
            An object that participates in a Collaboration.
          </para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.comprehension">

        <glossterm>Comprehension and Problem Solving</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Comprehension</primary></indexterm>
          <indexterm lang="en"><primary>Problem Solving</primary></indexterm>
          <para lang="en">A design visualization theory within cognitive 
          psychology. The theory notes that designers must bridge a gap 
          between their mental model of the problem or situation and 
          the formal model of a solution or system.</para>

          <para lang="en">This theory suggests that programmers will benefit 
          from:</para>

          <orderedlist>

            <listitem>

              <para lang="en">Multiple representations such as program syntactic 
              decomposition, state transitions, control flow, and data 
              flow. These allow the programmer to better identify 
              elements and relationships in the problem and solution 
              and thus more readily create a mapping between their 
              situation models and working system models.</para>

            </listitem>

            <listitem>

              <para lang="en">Familiar aspects of a situation model, which 
              improve designers&apos; abilities to formulate 
              solutions.</para>

            </listitem>

          </orderedlist>

        </glossdef>

      </glossentry>

      <glossentry id="gl.conceptclassdiag">

        <glossterm>Concept Class Diagram</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Concept Class 
          Diagram</primary></indexterm>
          <para lang="en">A Class Diagram constructed during the Analysis Phase 
          to show the main structural components of the problem 
          identified in the Requirements Phase. See 
          <xref linkend="ch.tut.analysis"/> for more information.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.critic">

        <glossterm>Critic</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Critic</primary></indexterm>
          <para lang="en">A process within ArgoUML that provides suggestions as 
          to how the design might be improved. Suggestions are based on 
          principles within three theories of cognitive psychology, 
          <emphasis>reflection-in action</emphasis>, 
          <emphasis>opportunistic design</emphasis> and 
          <emphasis>comprehension and problem solving</emphasis>.</para>

        </glossdef>

      </glossentry>

    </glossdiv>

    <glossdiv>

      <title>
			<phrase lang="en">E</phrase>
		</title>

      <glossentry id="gl.extends">

        <glossterm>Extend Relationship</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Extend Relationship</primary></indexterm>
          <indexterm lang="en">
          <primary>Relationship</primary><secondary>Extend</secondary></indexterm>
          <para lang="en">A relationship between two Use Cases, where the 
          <emphasis>extended</emphasis> Use Case describes a special 
          variant of the <emphasis>extending</emphasis> Use Case.</para>

        </glossdef>

      </glossentry>

    </glossdiv>

    <glossdiv>

      <title>
			<phrase lang="en">G</phrase>
		</title>

      <glossentry id="gl.generalization">

        <glossterm>Generalization Relationship</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Generalization 
          Relationship</primary></indexterm>
          <indexterm lang="en">
          <primary>Relationship</primary><secondary>Generalization</secondary></indexterm>
          <para lang="en">A relationship between one 
          <emphasis>generalizing</emphasis> Use Cases and one or more 
          <emphasis>generalized</emphasis> Use Cases, where the 
          <emphasis>generalized</emphasis> Use Cases are particular 
          examples of the <emphasis>generalizing</emphasis> Use 
          Case.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.gui">

        <glossterm>GUI</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>GUI</primary></indexterm>
          <para lang="en">Graphical User Interface.</para>

        </glossdef>

      </glossentry>

    </glossdiv>

    <glossdiv>

      <title>
			<phrase lang="en">H</phrase>
		</title>

      <glossentry id="gl.hierstatediag">

        <glossterm>Hierarchical Statechart Diagram</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Hierarchical Statechart 
          Diagram</primary></indexterm>
          <indexterm lang="en"><primary>Statechart Diagram, 
          Hierarchical</primary></indexterm>
          <para lang="en">A <emphasis>Statechart Diagram</emphasis> that contains 
          subsidiary statechart diagrams within individual 
          <emphasis>States</emphasis>.</para>

        </glossdef>

      </glossentry>

    </glossdiv>

    <glossdiv>

      <title>
			<phrase lang="en">I</phrase>
		</title>

      <glossentry id="gl.includes">

        <glossterm>Include Relationship</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Include Relationship</primary></indexterm>
          <indexterm lang="en">
          <primary>Relationship</primary><secondary>Include</secondary></indexterm>
          <para lang="en">A relationship between two Use Cases, where the 
          <emphasis>included</emphasis> Use Case describes part of the 
          functionality of the <emphasis>including</emphasis> Use 
          Case.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.iterative">

        <glossterm>Iterative Design Process</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Iterative Design 
          Process</primary></indexterm>
          <indexterm lang="en"><primary>Design 
          Process</primary><secondary>Iterative</secondary></indexterm>
          <para lang="en">A design process where each all phases (requirements, 
          analysis, design, build, test) are tackled partially in a 
          series of iterations. See <xref linkend="s2.proctypes"/> for 
          more information.</para>

        </glossdef>

      </glossentry>

    </glossdiv>

    <glossdiv>

      <title>
			<phrase lang="en">J</phrase>
		</title>

      <glossentry id="gl.java">

        <glossterm>Java</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Java</primary></indexterm>
          <para lang="en">A fully object oriented programming language introduced 
          by Sun Microsystems. More strongly typed than C++, it 
          compiles to an interpreted code, the Java Virtual Machine 
          (JVM). The JVM means that Java code should run on any machine 
          that has implemented the JVM.</para>

          <para lang="en">The most significant component of Java was integration 
          of the JVM into web browsers, allowing code (Applets) to be 
          download and run over the web.</para>

          <para lang="en">ArgoUML is written in Java.</para>

        </glossdef>

      </glossentry>

    </glossdiv>

    <glossdiv>

      <title>
			<phrase lang="en">M</phrase>
		</title>

      <glossentry id="gl.mealy">

        <glossterm>Mealy Machine</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Mealy Machine</primary></indexterm>
          <para lang="en">A <emphasis>Statechart Diagram</emphasis> where actions 
          are associated with <emphasis>States</emphasis>.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.method">

        <glossterm>Method (of a Class or Object)</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Method</primary><secondary>of a 
          Class</secondary></indexterm>
          <indexterm lang="en"><primary>Method</primary><secondary>of an 
          Object</secondary></indexterm>
          <indexterm lang="en"><primary>Class Method</primary></indexterm>
          <indexterm lang="en"><primary>Object Method</primary></indexterm>
          <para lang="en">A method of a class or object is a specification of 
          behavior encapsulated by that object.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.moore">

        <glossterm>Moore Machine</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Moore Machine</primary></indexterm>
          <para lang="en">A <emphasis>Statechart Diagram</emphasis> where actions 
          are associated with <emphasis>Transitions</emphasis>.</para>

        </glossdef>

      </glossentry>

    </glossdiv>

    <glossdiv>

      <title>
			<phrase lang="en">O</phrase>
		</title>

      <glossentry id="gl.object">

        <glossterm>Object</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Object</primary></indexterm>
          <para lang="en">An instance of a <emphasis>Class</emphasis>.</para>

          <para lang="en">Classes and objects in UML are represented on 
          <emphasis>Activity Diagrams</emphasis>, <emphasis>Class 
          Diagrams</emphasis>, <emphasis>Collaboration 
          Diagrams</emphasis> and <emphasis>Sequence 
          Diagrams</emphasis>.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.ocl">

        <glossterm>OCL</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>OCL</primary></indexterm>
          <indexterm lang="en"><primary>Object Constraint 
          Language</primary></indexterm>
          <para lang="en">Object Constraint Language. A language for describing 
          constraints within UML.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.omg">

        <glossterm>OMG</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>OMG</primary></indexterm>
          <indexterm lang="en"><primary>Object Management 
          Group</primary></indexterm>
          <para lang="en">The Object Management Group. An international industry 
          standardization body. Best known for CORBA and UML.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.ooad">

        <glossterm>OOA&amp;D</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>OOA&amp;D</primary></indexterm>
          <indexterm lang="en"><primary>Design</primary><secondary>Object 
          Oriented</secondary></indexterm>
          <indexterm lang="en"><primary>Analysis</primary><secondary>Object 
          Oriented</secondary></indexterm>
          <para lang="en">Object Oriented Analysis and Design. An approach to 
          software problem analysis and design based on objects, which 
          encapsulate both data and code. See See 
          <xref linkend="s2.ooad"/> or any standard textbook on 
          Software Engineering.</para>

          <para lang="en">UML is a notation to support OOA&amp;D.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.oppdesign">

        <glossterm>Opportunistic Design</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Opportunistic Design</primary></indexterm>
          <indexterm lang="en">
          <primary>Design</primary><secondary>Opportunistic</secondary></indexterm>
          <para lang="en">A theory within cognitive psychology suggesting that 
          although designers plan and describe their work in an 
          ordered, hierarchical fashion, in actuality, they choose 
          successive tasks based on the criteria of cognitive cost. 
          Simply stated, designers do not follow even their own plans 
          in order, but choose steps that are mentally least expensive 
          among alternatives.</para>

        </glossdef>

      </glossentry>

    </glossdiv>

    <glossdiv>

      <title>
			<phrase lang="en">P</phrase>
		</title>

      <glossentry id="gl.pane">

        <glossterm>Pane</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Pane</primary></indexterm>
          <para lang="en">A sub-window within the main window of the ArgoUML user 
          interface.</para>

        </glossdef>

      </glossentry>

    </glossdiv>

    <glossdiv>

      <title>
			<phrase lang="en">R</phrase>
		</title>

      <glossentry id="gl.relusecase">

        <glossterm>Realization Use Case</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Realization Use Case</primary></indexterm>
          <indexterm lang="en"><primary>Use Case Realization</primary></indexterm>
          <para lang="en">A <emphasis>Use Case</emphasis> where the <emphasis>Use 
          Case Diagram</emphasis> and <emphasis>Use Case 
          Specification</emphasis> are in the language of the solution 
          domain, rather than the problem domain.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.reflection">

        <glossterm>Reflection-in-Action</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Reflection-in-Action</primary></indexterm>
          <para lang="en">A theory within cognitive psychology which observes 
          that designers of complex systems do not conceive a design 
          fully-formed. Instead, they must construct a partial design, 
          evaluate, reflect on, and revise it, until they are ready to 
          extend it further. As developers work hands-on with the 
          design, their mental model of the problem situation improves, 
          hence improving their design.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.requirements">

        <glossterm>Requirement Capturing</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Requirement 
          Capturing</primary></indexterm>
          <para lang="en">Requirement capturing is the process of identifying 
          what the <quote>customer</quote> wants from the proposed 
          system. See <xref linkend="ch.tut.reqs"/> for a fuller 
          description.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.responsibility">

        <glossterm>Responsibility</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Responsibility</primary></indexterm>
          <para lang="en">S
            ome behavior for which an object is held accountable.
            A responsibility denotes the obligation of an object to provide a
            certain behavior.
          </para>

        </glossdef>

      </glossentry>

    </glossdiv>

    <glossdiv>

      <title>
			<phrase lang="en">S</phrase>
		</title>

      <glossentry id="gl.scenario">

        <glossterm>Scenario</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Scenario</primary></indexterm>
          <para lang="en">
            A specific sequence of actions that illustrates behavior.
          </para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.seqdiag">

        <glossterm>Sequence Diagram</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Sequence Diagram</primary></indexterm>
          <indexterm lang="en">
          <primary>Diagram</primary><secondary>Sequence</secondary></indexterm>
          <para lang="en">A UML Diagram showing the dynamic behavior as messages 
          are passed between objects. Equivalent to a 
          <emphasis>Collaboration Diagram</emphasis>. Which 
          representation is appropriate depends on the problem under 
          consideration. See <xref linkend="s1.umlseqdiags"/> for more 
          information.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.sgml">

        <glossterm>SGML</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>SGML</primary></indexterm>
          <indexterm lang="en"><primary>Standard Graphical Markup 
          Language</primary></indexterm>
          <para lang="en">Standard Graphical Markup Language. Defined by ISO 
          8879:1986.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.simula67">

        <glossterm>Simula&nbsp;67</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Simula&nbsp;67</primary></indexterm>
          <para lang="en">A procedural programming language intended for 
          simulation. Noted for its introduction of 
          <emphasis>objects</emphasis> and 
          <emphasis>coroutines</emphasis>.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.state">

        <glossterm>State</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>State</primary></indexterm>
          <para lang="en">Within a <emphasis>Statechart Diagram</emphasis> a one 
          of the possible configurations of the machine.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.statediag">

        <glossterm>Statechart Diagram</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>State Diagram</primary></indexterm>
          <indexterm lang="en"><primary>Statechart Diagram</primary></indexterm>
          <indexterm lang="en">
          <primary>Diagram</primary><secondary>State</secondary></indexterm>
          <para lang="en">A UML Diagram showing the dynamic behavior of an active 
          <emphasis>Object</emphasis>. See 
          <xref linkend="s1.umlstatediags"/> for more 
          information.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.stereotype">

        <glossterm>Stereotypes and Stereotyping</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Stereotype</primary></indexterm>
          <indexterm lang="en"><primary>Stereotyping</primary></indexterm>
          <para lang="en">Any model element within UML can be given a 
          <emphasis>stereotype</emphasis> to indicate its association 
          with a particular role in the design. A stereotype <literal>
          spqr</literal> is generally indicated with the notation 
          <literal>&lt;&lt;spqr&gt;&gt;</literal>.</para>

          <para lang="en">A stereotype defines a Namespace within the design. 
          Examples of stereotypes are <literal>
          &lt;&lt;business&gt;&gt;</literal> and <literal>
          &lt;&lt;realization&gt;&gt;</literal> for Use Cases, used to 
          distinguish between Use Cases at the requirements phase 
          defined in terms of the problem domain, and Use Cases at the 
          analysis phase defined in terms of the solution domain.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.supspec">

        <glossterm>Supplementary Requirement Specification</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Supplementary Requirement 
          Specification</primary></indexterm>
          <para lang="en">The document capturing non-functional requirements that 
          cannot be associated with Use Cases.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.svg">

        <glossterm>SVG</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>SVG</primary></indexterm>
          <para lang="en">Scalable Vector Graphics format. A standard 
          representation of graphics diagrams that use vectors. ArgoUML 
          can export diagrams in SVG.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.sysseqdiag">

        <glossterm>System Sequence Diagram</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>System Sequence 
          Diagram</primary></indexterm>
          <indexterm lang="en"><primary>Diagram</primary><secondary>System 
          Sequence</secondary></indexterm>
          <para lang="en">A <emphasis>Sequence Diagram</emphasis> used in the 
          <emphasis>Analysis</emphasis> Phase showing the dynamic 
          behavior of the overall system. See 
          <xref linkend="ch.tut.analysis"/> for more information.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.sysstatediag">

        <glossterm>System Statechart Diagram</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>System Statechart 
          Diagram</primary></indexterm>
          <indexterm lang="en"><primary>Diagram</primary><secondary>System 
          State</secondary></indexterm>
          <para lang="en">A <emphasis>Statechart Diagram</emphasis> used in the 
          <emphasis>Analysis</emphasis> Phase showing the dynamic 
          behavior of an active top level system objects. See 
          <xref linkend="ch.tut.analysis"/> for more information.</para>

        </glossdef>

      </glossentry>

    </glossdiv>

    <glossdiv>

      <title>
			<phrase lang="en">T</phrase>
		</title>

      <glossentry id="gl.todo">

        <glossterm>To-Do List</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>To-Do List</primary></indexterm>
          <para lang="en">A feature of ArgoUML allowing the user to record 
          activities that are yet to be completed.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.transition">

        <glossterm>Transition</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Transition</primary></indexterm>
          <para lang="en">The change between <emphasis>States</emphasis> in a 
          <emphasis>Statechart Diagram</emphasis>..</para>

        </glossdef>

      </glossentry>

    </glossdiv>

    <glossdiv>

      <title>
			<phrase lang="en">U</phrase>
		</title>

      <glossentry id="gl.uml">

        <glossterm>UML</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>UML</primary></indexterm>
          <para lang="en">Universal Modeling Language. A graphical notation for 
          OOA&amp;D processes, standardized by the OMG. ArgoUML supports 
          UML 1.4. UML 2.0 is in the final stages of standardization
          and should be complete during 2006.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.usecase">

        <glossterm>Use Case</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Use Case</primary></indexterm>
          <para lang="en">A UML notation for capturing requirements of a system 
          or sub-system. See <xref linkend="s1.tut.req_process_output"/>
           for more information.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.usecasediag">

        <glossterm>Use Case Diagram</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Use Case Diagram</primary></indexterm>
          <indexterm lang="en"><primary>Diagram</primary><secondary>Use 
          Case</secondary></indexterm>
          <para lang="en">A UML diagram showing the relationships between Actors 
          and Use Cases. See <xref linkend="s1.tut.req_process_output"/>
           for more information.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.ucspec">

        <glossterm>Use Case Specification</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Use Case 
          Specification</primary></indexterm>
          <para lang="en">The document capturing the detailed requirements behind 
          a Use Case.</para>

        </glossdef>

      </glossentry>

    </glossdiv>

    <glossdiv>

      <title>
			<phrase lang="en">V</phrase>
		</title>

      <glossentry id="gl.vision">

        <glossterm>Vision Document</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Vision Document</primary></indexterm>
          <para lang="en">The top level document describing what the system being 
          developed is to achieve.</para>

        </glossdef>

      </glossentry>

    </glossdiv>

    <glossdiv>

      <title>
			<phrase lang="en">W</phrase>
		</title>

      <glossentry id="gl.w3c">

        <glossterm>W3C</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>W3C</primary></indexterm>
          <para lang="en">The World Wide Web Consortium, 
          <ulink url="http://www.w3c.org">www.w3c.org</ulink>. An 
          international standardization body for all things to do with 
          the World Wide Web.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.waterfall">

        <glossterm>Waterfall Design Process</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>Waterfall Design 
          Process</primary></indexterm>
          <indexterm lang="en"><primary>Design 
          Process</primary><secondary>Waterfall</secondary></indexterm>
          <para lang="en">A design process where each phase (requirements, 
          analysis, design, build, test) is completed before the next 
          starts. See <xref linkend="s2.proctypes"/> for more 
          information.</para>

        </glossdef>

      </glossentry>

    </glossdiv>

    <glossdiv>

      <title>
			<phrase lang="en">X</phrase>
		</title>

      <glossentry id="gl.xmi">

        <glossterm>XMI</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>XMI</primary></indexterm>
          <para lang="en">XML Model Interchange format. A format for file storage 
          of UML models. Currently incomplete, since it does not carry 
          all graphical layout information, so must be supplemented by 
          files carrying that information.</para>

        </glossdef>

      </glossentry>

      <glossentry id="gl.xml">

        <glossterm>XML</glossterm>

        <glossdef>

          <indexterm lang="en"><primary>XML</primary></indexterm>
          <para lang="en">eXtensible Markup Language. A simplified derivative of 
          SGML defined by W3C</para>

        </glossdef>

      </glossentry>

    </glossdiv>

  </glossary>

  <appendix id="app.casestudy">

    <title>
			<phrase lang="en">Supplementary Material for the Case Study</phrase>
		</title>

    <sect1>

      <title>
			<phrase lang="en">Introduction</phrase>
		</title>

      <para lang="en">The case study requires various material (mostly documents) 
      that live alongside the design diagram</para>

    </sect1>

    <sect1>

      <title>
			<phrase lang="en">Requirements Documents (To be written)</phrase>
		</title>

      <remark lang="en">To be written...</remark>
      <sect2>

        <title>
			<phrase lang="en">Vision Document (To be written)</phrase>
		</title>

        <remark lang="en">To be written...</remark>
      </sect2>

      <sect2>

        <title>
			<phrase lang="en">Use Case Specifications (To be written)</phrase>
		</title>

        <remark lang="en">To be written...</remark>
        <sect3>

          <title>
			<phrase lang="en">UC Specification 1 (To be written)</phrase>
		</title>

          <remark lang="en">To be written...</remark>
        </sect3>

      </sect2>

      <sect2>

        <title>
			<phrase lang="en">Supplementary Requirements Specification (To be 
        written)</phrase>
		</title>

        <remark lang="en">To be written...</remark>
      </sect2>

    </sect1>

  </appendix>

  <appendix id="app.umlres">

    <title>
			<phrase lang="en">UML resources</phrase>
		</title>

    <sect1>

      <title>
			<phrase lang="en">The UML specs (To be written)</phrase>
		</title>

      <para lang="en">To be written...</para>

    </sect1>

    <sect1>

      <title>
			<phrase lang="en">UML related papers (To be written)</phrase>
		</title>

      <para lang="en">To be written...</para>

      <sect2>

        <title>
			<phrase lang="en">UML action specifications (To be written)</phrase>
		</title>

        <para lang="en">To be written...</para>

      </sect2>

    </sect1>

    <sect1>

      <title>
			<phrase lang="en">UML related websites (To be written)</phrase>
		</title>

      <para lang="en">To be written...</para>

    </sect1>

  </appendix>

  <appendix id="app.umlcase">

    <title>
			<phrase lang="en">UML Conforming CASE Tools</phrase>
		</title>

    <sect1>

      <title>
			<phrase lang="en">Other Open Source Projects (To be written)</phrase>
		</title>

      <para lang="en">To be written...</para>

    </sect1>

    <sect1>

      <title>
			<phrase lang="en">Commercial Tools (To be written)</phrase>
		</title>

      <para lang="en">To be written...</para>

    </sect1>

  </appendix>

  <appendix id="app.cppmod">

    <title>
			<phrase lang="en">The C++ Module</phrase>
		</title>

    <para lang="en">The ArgoUML C++ Module (C++ module) provides C++ code 
    generation functionalities and C++ notation within ArgoUML. It 
    works the same way as the other languages&apos; modules.</para>

    <sect1>

      <title>
			<phrase lang="en">Modeling for C++</phrase>
		</title>

      <para lang="en">The C++ programming language has constructs that 
      aren&apos;t contained by default in UML. Examples are pointers, 
      global functions and variables, references and operator 
      overloading. To enable us to apply these constructs in our models 
      and be capable of taking advantage of it for code generation and 
      C++ notation in UML diagrams, the C++ module uses conventions in 
      the use of the extension features of UML, such as tagged values, 
      stereotypes and data types.</para>

      <para lang="en">Since UML and C++ are object oriented, there is an obvious 
      correspondence between the UML model elements and C++ structural 
      constructs, e.g, the UML <literal>Class</literal> is related to 
      the C++ <literal>class</literal>. These obvious relations will 
      not be described here, since it is assumed that an ArgoUML user 
      that wants to model for C++ has basic knowledge of both C++ and 
      UML.</para>
      
      <para lang="en">The C++ module comes with a UML profile for C++, which defines 
      <link linkend="s1.ref.stereotype"><literal>Stereotypes</literal></link> 
      and <link linkend="s1.ref.tagdefinition"><literal>Tagged 
      Definitions</literal></link> 
      which enable the modeling of C++ specific constructs, such as pointers 
      and references.
      It also includes 
      <link linkend="s1.ref.datatype"><literal>Data Types</literal></link> 
      that model the C++ built-in types, such as 
      <literal>unsigned long int</literal>.
      </para>
      
      <para lang="en">To have these constructs available in our model, we need to 
      configure the UML profile for C++ in the model explicitly via the Project
      Properties dialog, in the Profiles tab
      (see <xref linkend="s2.ref.menu_properties"/>).
      </para>

      <para lang="en">Tagged values are one of the main means by which we can 
      define code generation behavior. 
      They have a name - the tag - and 
      a value, and are applied to model elements.
      For each of the possible Tagged values, the C++ profile contains a 
      tag definition, which is contained in a stereotype, applicable to the 
      models elements to which we can define a tagged value's value to specify 
      specific behaviour.
      So, for instance, to define that the parameter <literal>x</literal> is a 
      reference, you apply the stereotype <literal>cppParameter</literal> to 
      it, them you add the tagged value <literal>reference</literal> with the 
      value <literal>true</literal>.
      </para>

      <para lang="en">The tagged values in use for the C++ module have two 
      categories:</para>

      <itemizedlist>

        <listitem>

          <para lang="en">free format values - any <literal>String</literal> is 
          valid, except the empty <literal>String</literal></para>

        </listitem>

        <listitem>

          <para lang="en">formated values - the value must obey some 
          restrictions, e.g., be one of <literal>true</literal> or 
          <literal>false</literal> (abbreviated to <literal>true || 
          false</literal>)</para>

        </listitem>

      </itemizedlist>

      <para lang="en">For <literal>Boolean</literal> tagged values, only the 
      values &quot;<literal>true</literal>&quot; or &quot;
      <literal>false</literal>&quot; are applicable. If a <literal>
      Boolean</literal> tagged value does not exist or is invalid for 
      one model element, a default value is assumed by the code 
      generator. In the bellow documentation the default value is 
      marked.</para>

      <para lang="en">Free format tagged values are only significant if present 
      and if the value isn&apos;t an empty <literal>String</literal>. 
      When the value must follow some sort of format, that is 
      explicitly stated. In this case, there is the chance that the 
      value is invalid. If the value is invalid, no assumptions are 
      made; the generator will trace the problem and ignore the tagged 
      value.</para>

      <sect2>

        <title>
			<phrase lang="en"><literal>Class</literal> tagged values</phrase>
		</title>
        
        <para lang="en">To make the tag definitions applicable to a C++ class available 
        we apply the <literal>cppClass</literal> stereotype to it.
        </para>

        <variablelist>

          <varlistentry>

            <term><literal>constructor</literal></term>

            <listitem>

              <para lang="en"><literal>true</literal> - generates a default 
              constructor for the <literal>class</literal>.</para>

              <para lang="en"><literal>false</literal> (default) - no default 
              constructor is generated, unless it is explicitly modeled 
              with the <literal>&laquo;create&raquo;</literal> stereotype.</para>

            </listitem>

          </varlistentry>

          <varlistentry>

            <term><literal>header_incl</literal></term>

            <listitem>

              <para lang="en">Name of the file to include in the header.</para>

              <note>

                <para lang="en">If we desire to have multiple headers included 
                this way, just use multiple tagged values with <literal>
                header_incl</literal> as the tag.</para>

                <para lang="en">Other tagged values used for C++ modeling may 
                also be used this way. This note won&apos;t be repeated 
                in those cases.</para>

              </note>

            </listitem>

          </varlistentry>

          <varlistentry>

            <term><literal>source_incl</literal></term>

            <listitem>

              <para lang="en">Name of the file to include in the source (
              <literal>.cpp</literal> file).</para>

            </listitem>

          </varlistentry>

          <varlistentry>

            <term><literal>typedef_public</literal></term>

            <listitem>

              <para lang="en"><literal>&lt;source type&gt; 
              &lt;type_name&gt;</literal> - creates <literal>
              typedef</literal> line in the public area of the <literal>
              class</literal> with <literal>typedef &lt;source type&gt; 
              &lt;type name&gt;</literal>.</para>

            </listitem>

          </varlistentry>

          <varlistentry>

            <term><literal>typedef_protected</literal></term>

            <listitem>

              <para lang="en">Same as <literal>typedef_public</literal>, but, in 
              <literal>protected</literal> area.</para>

            </listitem>

          </varlistentry>

          <varlistentry>

            <term><literal>typedef_private</literal></term>

            <listitem>

              <para lang="en">Same as <literal>typedef_public</literal>, but, in 
              the <literal>private</literal> area.</para>

            </listitem>

          </varlistentry>

          <varlistentry>

            <term><literal>typedef_global_header</literal></term>

            <listitem>

              <para lang="en">Same as <literal>typedef_public</literal>, but, in 
              the global area of the header.</para>

            </listitem>

          </varlistentry>

          <varlistentry>

            <term><literal>typedef_global_source</literal></term>

            <listitem>

              <para lang="en">Same as <literal>typedef_global_source</literal>, 
              but, in the source file.</para>

            </listitem>

          </varlistentry>

          <varlistentry>

            <term><literal>TemplatePath</literal></term>

            <listitem>

              <para lang="en"><literal>Directory</literal> - will search in the 
              specified directory for the template files 
              &quot;header_template&quot; and &quot;cpp_template&quot; 
              which are placed in top of the corresponding file. The 
              following tags in the template file are replaced by model 
              values: |FILENAME|, |DATE|, |YEAR|, |AUTHOR|, |EMAIL|. If 
              no such tag is specified, the templates are searched in 
              the subdirectory of the root directory for the code 
              generation.</para>

            </listitem>

          </varlistentry>

          <varlistentry>

            <term><literal>email</literal></term>

            <listitem>

              <para lang="en"><literal>name@domain.country</literal> - replaces 
              the tag |EMAIL| of the template file.</para>

            </listitem>

          </varlistentry>

          <varlistentry>

            <term><literal>author</literal></term>

            <listitem>

              <para lang="en"><literal>name</literal> - replaces the tag |AUTHOR| 
              of the template file.</para>

              <note>

                <para lang="en">You may simply use the Author property in the 
                documentation property panel.</para>

              </note>

            </listitem>

          </varlistentry>

        </variablelist>

      </sect2>

      <sect2>

        <title>
			<phrase lang="en"><literal>Attribute</literal> tagged values</phrase>
		</title>

        <para lang="en">UML <literal>Attributes</literal> are mapped to <literal>
        class member variables</literal>.
        To make the tag definitions applicable to a C++ member variable 
        available we apply the <literal>cppAttribute</literal> stereotype to 
        it.</para>

        <variablelist>

          <varlistentry>

            <term><literal>pointer</literal></term>

            <listitem>

              <para lang="en"><literal>true</literal> - the type of the member 
              variable will be a pointer to the attribute type.</para>

              <para lang="en">For example, if you have the UML <literal>
              Attribute</literal>: <literal>name: 
              std::string</literal>, with the <literal>
              pointer</literal> tagged value set to true, the generated 
              member variable would be: <literal>std::string* 
              name;</literal></para>

              <para lang="en"><literal>false</literal> (default) - no pointer 
              modifier is applied.</para>

            </listitem>

          </varlistentry>

          <varlistentry>

            <term><literal>reference</literal></term>

            <listitem>

              <para lang="en"><literal>true</literal> - the type of the member 
              variable will be a reference to the attribute type.</para>

              <para lang="en"><literal>false</literal> (default) - no reference 
              modifier is applied.</para>

            </listitem>

          </varlistentry>

          <varlistentry>

            <term><literal>usage</literal></term>

            <listitem>

              <para lang="en"><literal>header</literal> - will lead for class 
              types to a pre-declaration in the header, and the include 
              of the remote class header in the header of the generated 
              class.</para>

            </listitem>

          </varlistentry>

          <varlistentry>

            <term><literal>MultiplicityType</literal></term>

            <listitem>

              <para lang="en"><literal>list || slist || vector || map || stack || 
              stringmap</literal> - will define a multiplicity as the 
              corresponding STL container, if the <literal>
              Multiplicity</literal> range of the attribute is variable 
              (for fixed size ranges this setting is ignored).</para>

            </listitem>

          </varlistentry>

          <varlistentry>

            <term><literal>set</literal></term>

            <listitem>

              <para lang="en"><literal>private || protected || public</literal> - 
              creates a simple function to set the attribute by a 
              function (call by reference is used for class-types, else 
              call by value); place the function in the given 
              visibility area.</para>

            </listitem>

          </varlistentry>

          <varlistentry>

            <term><literal>get</literal></term>

            <listitem>

              <para lang="en"><literal>private || protected || public</literal> - 
              as for <literal>set</literal>.</para>

            </listitem>

          </varlistentry>

        </variablelist>

      </sect2>

      <sect2>

        <title>
			<phrase lang="en"><literal>Parameters</literal></phrase>
		</title>
        
        <para lang="en">To make the tag definitions applicable to a C++ argument 
        available we apply the <literal>cppParameter</literal> stereotype to 
        it.
        </para>

        <sect3>

          <title>
			<phrase lang="en">Variable passing semantics</phrase>
		</title>

          <para lang="en">If a <literal>Parameter</literal> for an <literal>
          Operation</literal> is marked as <literal>out</literal> or 
          <literal>inout</literal> the variable will be passed by 
          reference (default) or pointer (needs tagged value <literal>
          pointer</literal> - see above), otherwise by value.</para>

          <para lang="en">Return values in UML are simply <literal>
          Parameters</literal> marked as <literal>return</literal>, 
          therefore everything here applies to them, except where 
          explicitly noted.</para>

          <warning>

            <para lang="en">Note that UML allows multiple return values. This is 
            possible to support in C++ as out parameters, but, 
            currently the generator doesn&apos;t supports it.</para>

            <para lang="en">This problem is being handled in 
            <ulink url="http://argouml.tigris.org/issues/show_bug.cgi?id=3553">
            issue #3553 - handle multiple return 
            parameters</ulink>.</para>

          </warning>

        </sect3>

        <sect3>

          <title>
			<phrase lang="en"><literal>Parameter</literal> tagged values</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>pointer</literal></term>

              <listitem>

                <para lang="en"><literal>true || false</literal> (default) - same 
                as for <literal>Attributes</literal>.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>reference</literal></term>

              <listitem>

                <para lang="en">ditto</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect3>

      </sect2>

      <sect2>

        <title>
			<phrase lang="en"><literal>Generalization</literal></phrase>
		</title>
        
        <para lang="en">To make the tag definitions applicable to a C++ generalization 
        available we apply the <literal>cppGeneralization</literal> 
        stereotype to it.
        </para>

        <sect3>

          <title>
			<phrase lang="en"><literal>Generalization</literal> tagged values</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>cpp_virtual_inheritance</literal></term>

              <listitem>

                <para lang="en"><literal>true || false</literal> (default) - used to 
                specify virtual inheritance.</para>

              </listitem>

            </varlistentry>

            <varlistentry>

              <term><literal>cpp_inheritance_visibility</literal></term>

              <listitem>

                <para lang="en"><literal>public</literal> (default)<literal> || private 
                || protected</literal> &ndash; use this to specify the 
                inheritance visibility of the generalization.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect3>

      </sect2>

      <sect2>

        <title>
			<phrase lang="en"><literal>Realization</literal></phrase>
		</title>
        
        <para lang="en">To make the tag definitions applicable to a C++ realization 
        available we apply the <literal>cppRealization</literal> 
        stereotype to it.
        </para>

        <sect3>

          <title>
			<phrase lang="en"><literal>Realization</literal> tagged values</phrase>
		</title>

          <variablelist>

            <varlistentry>

              <term><literal>cpp_inheritance_visibility</literal></term>

              <listitem>

                <para lang="en"><literal>public</literal> (default)<literal> || private 
                || protected</literal> &ndash; use this to specify the 
                inheritance visibility of the generalization.</para>

              </listitem>

            </varlistentry>

          </variablelist>

        </sect3>

      </sect2>

      <sect2>

        <title>
			<phrase lang="en">Preserved sections</phrase>
		</title>

        <para lang="en">With each code generation, special comments around the 
        member function definitions will be generated like this:</para>

        <programlisting>
  function Testclass::Testclass()
  // section -64--88-0-40-76f2e8:ec37965ae0:-7fff begin
 {
 }
  // section -64--88-0-40-76f2e8:ec37965ae0:-7fff end
      </programlisting>
        <para lang="en">All code you put within the &quot;begin&quot; and 
        &quot;end&quot; lines will be preserved when you generate the 
        code again. Please do not change anything within these lines 
        because the sections are recognized by this comment syntax. As 
        the curly braces are placed within the preserved area, 
        attribute initializers are preserved on constructors.</para>

        <para lang="en">This also works if you change Method Names after the 
        generation.</para>

        <programlisting>
  void newOperation(std::string test = &quot;fddsaffa&quot;)
  // section 603522:ec4c7ff768:-7ffc begin
 {
 }
  // section 603522:ec4c7ff768:-7ffc end
      </programlisting>
        <para lang="en">If you delete an Operation in the model. The next time 
        the class is generated, the lost code - i.e., the whole member 
        function definition - will be added as comment to the end of 
        the file.</para>

      </sect2>

    </sect1>

  </appendix>

  <appendix id="app.hardlimits">

    <title>
			<phrase lang="en">Limits and Shortcomings</phrase>
		</title>

    <para lang="en">As all products, ArgoUML has some limits. Those important to 
    the user are listed in this section.</para>

    <sect1>

      <title>
			<phrase lang="en">Diagram Canvas Size</phrase>
		</title>

      <para lang="en">Due to the underlying diagram editing software, the canvas 
      size for diagrams is limited to 6000 units in height and 
      width.</para>

    </sect1>

    <sect1>

      <title>
			<phrase lang="en">Missing functions</phrase>
		</title>
      <para lang="en"></para>


    </sect1>

  </appendix>

  <appendix id="app.legal">

    <title>
			<phrase lang="en">Open Publication License</phrase>
		</title>

    <sect1>

      <title>
			<phrase lang="en">Requirements On Both Unmodified And Modified 
      Versions</phrase>
		</title>

      <para lang="en">The Open Publication works may be reproduced and 
      distributed in whole or in part, in any medium physical or 
      electronic, provided that the terms of this license are adhered 
      to, and that this license or an incorporation of it by reference 
      (with any options elected by the author(s) and/or publisher) is 
      displayed in the reproduction.</para>

      <para lang="en">Proper form for an incorporation by reference is as 
      follows:</para>

      <blockquote>

        <para lang="en">Copyright (c) &lt;year&gt; by &lt;author&apos;s name or 
        designee&gt;. This material may be distributed only subject to 
        the terms and conditions set forth in the Open Publication 
        License, vX.Y or later (the latest version is presently 
        available at <ulink url="http://www.opencontent.org/openpub/">
        http://www.opencontent.org/openpub/</ulink>).</para>

      </blockquote>

      <para lang="en">The reference must be immediately followed with any options 
      elected by the author(s) and/or publisher of the document (see 
      section VI).</para>

      <para lang="en">Commercial redistribution of Open Publication-licensed 
      material is permitted.</para>

      <para lang="en">Any publication in standard (paper) book form shall require 
      the citation of the original publisher and author. The publisher 
      and author&apos;s names shall appear on all outer surfaces of the 
      book. On all outer surfaces of the book the original 
      publisher&apos;s name shall be as large as the title of the work 
      and cited as possessive with respect to the title.</para>

    </sect1>

    <sect1>

      <title>
			<phrase lang="en">Copyright</phrase>
		</title>

      <para lang="en">The copyright to each Open Publication is owned by its 
      author(s) or designee.</para>

    </sect1>

    <sect1>

      <title>
			<phrase lang="en">Scope Of License</phrase>
		</title>

      <para lang="en">The following license terms apply to all Open Publication 
      works, unless otherwise explicitly stated in the document.</para>

      <para lang="en">Mere aggregation of Open Publication works or a portion of 
      an Open Publication work with other works or programs on the same 
      media shall not cause this license to apply to those other works. 
      The aggregate work shall contain a notice specifying the 
      inclusion of the Open Publication material and appropriate 
      copyright notice.</para>

      <para lang="en">SEVERABILITY. If any part of this license is found to be 
      unenforceable in any jurisdiction, the remaining portions of the 
      license remain in force.</para>

      <para lang="en">NO WARRANTY. Open Publication works are licensed and 
      provided <quote>as is</quote> without warranty of any kind, 
      express or implied, including, but not limited to, the implied 
      warranties of merchantability and fitness for a particular 
      purpose or a warranty of non-infringement.</para>

    </sect1>

    <sect1>

      <title>
			<phrase lang="en">Requirements On Modified Works</phrase>
		</title>

      <para lang="en">All modified versions of documents covered by this license, 
      including translations, anthologies, compilations and partial 
      documents, must meet the following requirements:</para>

      <orderedlist>

        <listitem>

          <para lang="en">The modified version must be labeled as such.</para>

        </listitem>

        <listitem>

          <para lang="en">The person making the modifications must be identified 
          and the modifications dated.</para>

        </listitem>

        <listitem>

          <para lang="en">Acknowledgement of the original author and publisher if 
          applicable must be retained according to normal academic 
          citation practices.</para>

        </listitem>

        <listitem>

          <para lang="en">The location of the original unmodified document must 
          be identified.</para>

        </listitem>

        <listitem>

          <para lang="en">The original author&apos;s (or authors&apos;) name(s) 
          may not be used to assert or imply endorsement of the 
          resulting document without the original author&apos;s (or 
          authors&apos;) permission.</para>

        </listitem>

      </orderedlist>

    </sect1>

    <sect1>

      <title>
			<phrase lang="en">Good-Practice Recommendations</phrase>
		</title>

      <para lang="en">In addition to the requirements of this license, it is 
      requested from and strongly recommended of redistributors 
      that:</para>

      <orderedlist>

        <listitem>

          <para lang="en">If you are distributing Open Publication works on 
          hardcopy or CD-ROM, you provide email notification to the 
          authors of your intent to redistribute at least thirty days 
          before your manuscript or media freeze, to give the authors 
          time to provide updated documents. This notification should 
          describe modifications, if any, made to the document.</para>

        </listitem>

        <listitem>

          <para lang="en">All substantive modifications (including deletions) be 
          either clearly marked up in the document or else described in 
          an attachment to the document.</para>

        </listitem>

        <listitem>

          <para lang="en">Finally, while it is not mandatory under this license, 
          it is considered good form to offer a free copy of any 
          hardcopy and CD-ROM expression of an Open 
          Publication-licensed work to its author(s).</para>

        </listitem>

      </orderedlist>

    </sect1>

    <sect1>

      <title>
			<phrase lang="en">License Options</phrase>
		</title>

      <para lang="en">The author(s) and/or publisher of an Open 
      Publication-licensed document may elect certain options by 
      appending language to the reference to or copy of the license. 
      These options are considered part of the license instance and 
      must be included with the license (or its incorporation by 
      reference) in derived works.</para>

      <para lang="en">A. To prohibit distribution of substantively modified 
      versions without the explicit permission of the author(s). 
      <quote>Substantive modification</quote> is defined as a change to 
      the semantic content of the document, and excludes mere changes 
      in format or typographical corrections.</para>

      <para lang="en">To accomplish this, add the phrase <quote>Distribution of 
      substantively modified versions of this document is prohibited 
      without the explicit permission of the copyright holder.</quote> 
      to the license reference or copy.</para>

      <para lang="en">B. To prohibit any publication of this work or derivative 
      works in whole or in part in standard (paper) book form for 
      commercial purposes is prohibited unless prior permission is 
      obtained from the copyright holder.</para>

      <para lang="en">To accomplish this, add the phrase <quote>Distribution of 
      the work or derivative of the work in any standard (paper) book 
      form is prohibited unless prior permission is obtained from the 
      copyright holder.</quote> to the license reference or copy.</para>

    </sect1>

    <sect1>

      <title>
			<phrase lang="en">Open Publication Policy Appendix:</phrase>
		</title>

      <para lang="en">(This is not considered part of the license.)</para>

      <para lang="en">Open Publication works are available in source format via 
      the Open Publication home page at 
      <ulink url="http://works.opencontent.org/">
      http://works.opencontent.org/</ulink>.</para>

      <para lang="en">Open Publication authors who want to include their own 
      license on Open Publication works may do so, as long as their 
      terms are not more restrictive than the Open Publication 
      license.</para>

      <para lang="en">If you have questions about the Open Publication License, 
      please contact <ulink url="mailto:dw2@opencontent.org">David 
      Wiley</ulink>, and/or the Open Publication Authors&apos; List at 
      <ulink url="mailto:opal@opencontent.org">
      opal@opencontent.org</ulink>, via email.</para>

      <para lang="en">To <emphasis>subscribe</emphasis> to the Open Publication 
      Authors&apos; List: Send E-mail to opal-request@opencontent.org 
      with the word <quote>subscribe</quote> in the body.</para>

      <para lang="en">To <emphasis>post</emphasis> to the Open Publication 
      Authors&apos; List: Send E-mail to opal@opencontent.org or simply 
      reply to a previous post.</para>

      <para lang="en">To <emphasis>unsubscribe</emphasis> from the Open 
      Publication Authors&apos; List: Send E-mail to 
      opal-request@opencontent.org with the word 
      <quote>unsubscribe</quote> in the body.</para>

    </sect1>

  </appendix>

  <appendix id="app.crc">

    <title>
			<phrase lang="en">The CRC Card Methodology</phrase>
		</title>

    <para lang="en">
      A CRC card is ostensibly an index card that is used to represent
      classes, their responsibilities, and the interactions between them.
      The term CRC card is also used to refer to a methodology for object
      oriented modeling based on their use.
    </para>

    <para lang="en">
      Kent Beck and Ward Cunningham introduced CRC cards in a paper
      "A Laboratory for Teaching Object-Oriented Thinking" that was presented at
      the OOPSLA (Object-Oriented Programming, Systems, Languages &amp; Applications)
      conference in 1989.
      A tutorial on the subject can be found at
      <ulink url="http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/crc_b/"/>.
      The CRC card methodology was originally designed as a teaching tool but
      has proved useful as a modeling tool as well.
    </para>

    <para lang="en">
      The three parts of the CRC acronym were felt by the authors of the
      paper to represent the essential dimensions of object oriented modeling.
      The term Responsibilities refers to the contract that the class
      under discussion offers to the rest of the world (Interface and
      Contract are similar concepts).
      Responsibilities model the things that a class can do.
      Services, Methods, or Operations will result from these.
      The term Collaborators refers to the classes whose services
      the class under discussion will use.
      Kent Beck tried unsuccessfully to use ther term Helpers instead of
      Collaborators to indicate classes that were supporting the class under
      discussion.
      It is widely believed that the terminology was chosen because CRC are
      the initials of Ward Cunningham's son.
    </para>

    <para lang="en">
      Why use CRC cards?
      <itemizedlist>
        <listitem><para lang="en">
          They are portable.
          No computers are required so they can be used anywhere.
          Even away from the office.</para>
        </listitem>
        <listitem><para lang="en">
          They allow the participants to experience first hand
          how the system will work.
          No computer tool can replace the interaction that happens by
          physically picking up the cards and playing the role of that object.</para>
        </listitem>
        <listitem><para lang="en">
          They are a useful tool for teaching people the object-oriented
          paradigm.</para>
        </listitem>
        <listitem><para lang="en">
          They can be used as a methodology themselves or as a front end to a
          more formal methodology such as Booch, Wirfs-Brock, Jacobson, etc.
          Although CRC cards were created for teaching, they have proven
          useful for much more.</para>
        </listitem>
        <listitem><para lang="en">
          They have become an accepted method for analysis and design.
          The biggest contributing factor to their success is the fact that they
          provide an informal and non threatening environment that is
          productive to working and learning.</para>
        </listitem>
      </itemizedlist>
    </para>

    <sect1>

      <title>
			<phrase lang="en">The Card</phrase>
		</title>

      <para lang="en">
        The exact format of the card can be customized to the preferences of
        the group, but the minimal required information is the name of the
        class, it's subclasses and superclasses, it's responsibilities
        and the collaborators for each of those responsibilities.
        The back of the card can be used for a description of the class.
        During the design phase attributes of the class can be recorded on
        the back as well.
        One way to think of the card is that the front contains
        the public information, and the back contains the encapsulated,
        implementation details.
        As a class is defined a card is made for that class with
        its name entered.
        When a class is assigned to an individual that has only a class name
        on it, the individual (or the group) selects an initial set of
        responsibilities for the class.
        This initial set should be whatever (if anything) is
        immediately obvious.
      </para>

    </sect1>

    <sect1>

      <title>
			<phrase lang="en">The Group</phrase>
		</title>

      <para lang="en">
        Whether they are implicitly or explicitly defined the requirements
        for the system need to be familiar to the people participating
        in the group.
      </para>

      <para lang="en">
        The ideal group size for a CRC card session is five or six people.
        This size generally allows everyone to productively participate.
        In groups of larger size productivity is cut by more disagreements and
        the amount of participation by each is lower.
        If there are more than six people, one solution is to have the extra
        people be present strictly as observers.
      </para>

      <para lang="en">
        The group five or six people in the core group should be composed of
        developers, domain experts, and an object-oriented
        technology facilitator.
      </para>

    </sect1>

    <sect1>

      <title>
			<phrase lang="en">The Session</phrase>
		</title>

      <para lang="en">
        Before starting a session a part of the problem needs to be selected
        for the session to focus on.
        Essentially, this means picking the set of classes that are
        to be used.
      </para>

      <para lang="en">
        Pick the scenarios that are to be walked through that use the classes
        picked above.
        Start with scenarios that are part of the systems normal operation
        first, and then exceptional scenarios, like error recover, later.
      </para>

      <para lang="en">
        Assign each class to a member of the group.
        Each person should be responsible for at least one class.
        They are the owner of that class for the session.
        Each person records the name of their class on a card.
        One class per card.
      </para>

      <para lang="en">
        Walk-throughs are the heart of the CRC card session.
        To walk through a scenario address each action in it one at a time.
        First decide which class is responsible for this function.
        The owner of the class then picks up his card and
        holds it up in the air.
        When a card is up in the air it is an object and can do things.
        The owner announces that he needs to fulfill his responsibility.
        The responsibility is refined into smaller tasks if possible.
        These smaller tasks can be fulfilled by the object is appropriate or
        they can be fulfilled by interacting with other objects
        (collaborators).
        If no other appropriate class exists, you may need to make one
        and assign it to someone.
        This is the fundamental procedure of the scenario execution.
      </para>

    </sect1>

    <sect1>

      <title>
			<phrase lang="en">The Process</phrase>
		</title>


      <para lang="en">
        CRC Cards are used in the Analysis and Design phases.
        The process for these phases differ primarily in how the classes
        and scenarios are chosen.
      </para>

      <para lang="en">
        In the Analysis phase the classes and scenarios are in the problem
        space and generally derive from the requirements.
        In the Design phase solution space classes and scenarios are added.
        Additionally in the Analysis phase the very first session starts with
        no classes or scenarios to select from so a special session creates
        them.
      </para>

    </sect1>

  </appendix>

  <index>

    <para lang="en">The use of the index in the document is done a little at 
    random and cannot be trusted. Please help in suggesting new index 
    entries!</para>

  </index>

</book>

