diff options
author | Timothy Pearson <[email protected]> | 2011-12-03 11:05:10 -0600 |
---|---|---|
committer | Timothy Pearson <[email protected]> | 2011-12-03 11:05:10 -0600 |
commit | f7e7a923aca8be643f9ae6f7252f9fb27b3d2c3b (patch) | |
tree | 1f78ef53b206c6b4e4efc88c4849aa9f686a094d /tde-i18n-da/docs/tdesdk/umbrello | |
parent | 85ca18776aa487b06b9d5ab7459b8f837ba637f3 (diff) | |
download | tde-i18n-f7e7a923aca8be643f9ae6f7252f9fb27b3d2c3b.tar.gz tde-i18n-f7e7a923aca8be643f9ae6f7252f9fb27b3d2c3b.zip |
Second part of prior commit
Diffstat (limited to 'tde-i18n-da/docs/tdesdk/umbrello')
-rw-r--r-- | tde-i18n-da/docs/tdesdk/umbrello/Makefile.am | 4 | ||||
-rw-r--r-- | tde-i18n-da/docs/tdesdk/umbrello/Makefile.in | 635 | ||||
-rw-r--r-- | tde-i18n-da/docs/tdesdk/umbrello/authors.docbook | 46 | ||||
-rw-r--r-- | tde-i18n-da/docs/tdesdk/umbrello/code_import_and_generation.docbook | 161 | ||||
-rw-r--r-- | tde-i18n-da/docs/tdesdk/umbrello/credits.docbook | 11 | ||||
-rw-r--r-- | tde-i18n-da/docs/tdesdk/umbrello/index.cache.bz2 | bin | 0 -> 18281 bytes | |||
-rw-r--r-- | tde-i18n-da/docs/tdesdk/umbrello/index.docbook | 85 | ||||
-rw-r--r-- | tde-i18n-da/docs/tdesdk/umbrello/introduction.docbook | 57 | ||||
-rw-r--r-- | tde-i18n-da/docs/tdesdk/umbrello/other_features.docbook | 76 | ||||
-rw-r--r-- | tde-i18n-da/docs/tdesdk/umbrello/uml_basics.docbook | 780 | ||||
-rw-r--r-- | tde-i18n-da/docs/tdesdk/umbrello/working_with_umbrello.docbook | 419 |
11 files changed, 2274 insertions, 0 deletions
diff --git a/tde-i18n-da/docs/tdesdk/umbrello/Makefile.am b/tde-i18n-da/docs/tdesdk/umbrello/Makefile.am new file mode 100644 index 00000000000..29f2e0115ae --- /dev/null +++ b/tde-i18n-da/docs/tdesdk/umbrello/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = da +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-da/docs/tdesdk/umbrello/Makefile.in b/tde-i18n-da/docs/tdesdk/umbrello/Makefile.in new file mode 100644 index 00000000000..7bd0c357dec --- /dev/null +++ b/tde-i18n-da/docs/tdesdk/umbrello/Makefile.in @@ -0,0 +1,635 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 483858 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +subdir = docs/tdesdk/umbrello +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ +#>- html-recursive info-recursive install-data-recursive \ +#>- install-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CONF_FILES = @CONF_FILES@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +GMSGFMT = @GMSGFMT@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_RPATH = @KDE_RPATH@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TOPSUBDIRS = @TOPSUBDIRS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XMLLINT = @XMLLINT@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +am__leading_dot = @am__leading_dot@ +am__tar = @am__tar@ +am__untar = @am__untar@ +#>- bindir = @bindir@ +#>+ 2 +DEPDIR = .deps +bindir = @bindir@ +build_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +tdeinitdir = @tdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +KDE_LANG = da +#>- SUBDIRS = $(AUTODIRS) +#>+ 1 +SUBDIRS =. +KDE_DOCS = AUTO +KDE_MANS = AUTO +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdesdk/umbrello/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/tdesdk/umbrello/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdesdk/umbrello/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdesdk/umbrello/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdesdk/umbrello/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +#>- distdir: $(DISTFILES) +#>+ 1 +distdir: distdir-nls $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +#>- uninstall: uninstall-recursive +#>+ 1 +uninstall: uninstall-docs uninstall-nls uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +#>- clean: clean-recursive +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic mostlyclean-am +#>+ 1 +clean-am: clean-docs clean-bcheck clean-generic mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +#>- install-data-am: +#>+ 1 +install-data-am: install-docs install-nls + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic ctags \ + ctags-recursive distclean distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +#>+ 2 +KDE_DIST=uml_basics.docbook index.docbook credits.docbook code_import_and_generation.docbook index.cache.bz2 Makefile.in other_features.docbook introduction.docbook working_with_umbrello.docbook authors.docbook Makefile.am + +#>+ 24 +index.cache.bz2: $(srcdir)/index.docbook $(KDE_XSL_STYLESHEET) other_features.docbook code_import_and_generation.docbook index.docbook introduction.docbook credits.docbook working_with_umbrello.docbook uml_basics.docbook authors.docbook + @if test -n "$(MEINPROC)"; then echo $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; fi + +docs-am: index.cache.bz2 + +install-docs: docs-am install-nls + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/umbrello + @if test -f index.cache.bz2; then \ + echo $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/umbrello/; \ + $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/umbrello/; \ + elif test -f $(srcdir)/index.cache.bz2; then \ + echo $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/umbrello/; \ + $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/umbrello/; \ + fi + -rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/umbrello/common + $(LN_S) $(kde_libs_htmldir)/$(KDE_LANG)/common $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/umbrello/common + +uninstall-docs: + -rm -rf $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/umbrello + +clean-docs: + -rm -f index.cache.bz2 + + +#>+ 13 +install-nls: + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/umbrello + @for base in other_features.docbook code_import_and_generation.docbook index.docbook introduction.docbook credits.docbook working_with_umbrello.docbook uml_basics.docbook authors.docbook ; do \ + echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/umbrello/$$base ;\ + $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/umbrello/$$base ;\ + done + +uninstall-nls: + for base in other_features.docbook code_import_and_generation.docbook index.docbook introduction.docbook credits.docbook working_with_umbrello.docbook uml_basics.docbook authors.docbook ; do \ + rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/umbrello/$$base ;\ + done + + +#>+ 5 +distdir-nls: + for file in other_features.docbook code_import_and_generation.docbook index.docbook introduction.docbook credits.docbook working_with_umbrello.docbook uml_basics.docbook authors.docbook ; do \ + cp $(srcdir)/$$file $(distdir); \ + done + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdesdk/umbrello/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdesdk/umbrello/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdesdk/umbrello/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/tde-i18n-da/docs/tdesdk/umbrello/authors.docbook b/tde-i18n-da/docs/tdesdk/umbrello/authors.docbook new file mode 100644 index 00000000000..55a40ee2c15 --- /dev/null +++ b/tde-i18n-da/docs/tdesdk/umbrello/authors.docbook @@ -0,0 +1,46 @@ +<chapter id="authors"> +<title +>Forfattere og historik</title> +<para +>Dette projekt startedes af Paul Hensgen som et af hans universitetsprojekter. Det oprindelige navn på programmet var <emphasis +>UML Modeller</emphasis +>. Paul lavede al udvikling indtil slutningen af 2001, hvor programmet nåede version 1.0. </para> +<para +>Version 1.0 tilbød allerede en hel del funktioner, men efter at projektet var blevet gennemset af Pauls universitet, kunne andre udviklere deltage, og de begyndte at give værdifulde bidrag til <application +>UML Modeller</application +>, såsom skift fra et binært filformat til en &XML;-fil, understøttelse af flere slags &UML;-diagrammer, kodegenerering og kodeimport, for kun at nævne nogle få. </para> +<para +>Paul var tvunget til at trække sig tilbage fra udviklingsgruppen sommeren 2002, men som frit og åbent programmel, fortsætter programmet med at forbedres og udvikles, og vedligeholdes af en gruppe af udviklere fra forskellige dele af verden. Desuden ændrede projektet navn fra <application +>&UML; Modeller</application +> i september 2002. Der er flere grunde til navneændringen, den vigtigste at blot <quote +>uml</quote +> som det var almindeligt kendt som, var et alt for generelt navn som forårsagede problemer med visse distributioner. En anden vigtig grund er at udviklerne synes at <application +>Umbrello</application +> er et meget smartere navn. </para> +<para +>Udviklingen af &umbrello;, samt diskussioner om i hvilken retning programmet skal udvikles i fremtidige versioner, er åben og finder sted via internettet. Hvis du skulle ville bidrage til projektet, så tøv ikke med at kontakte udviklerne. Der er mange måder du kan hjælpe &umbrello; på: </para> +<itemizedlist> +<listitem +><para +>Rapportere fejl eller forbedringsforslag</para +></listitem> +<listitem +><para +>Rette fejl eller tilføje funktioner</para +></listitem> +<listitem +><para +>Skriv god dokumentation eller oversætte til andre sprog</para +></listitem> +<listitem +><para +>Og naturligvis... lav kode sammen med os!</para +></listitem> +</itemizedlist> +<para +>Som du ser, er der mange måder du kan bidrage på. De er alle sammen meget vigtige og alle er velkomne til at deltage. </para> +<para +>&umbrello;-udviklerne kan nås på <email +>[email protected]</email +>. </para> +</chapter> diff --git a/tde-i18n-da/docs/tdesdk/umbrello/code_import_and_generation.docbook b/tde-i18n-da/docs/tdesdk/umbrello/code_import_and_generation.docbook new file mode 100644 index 00000000000..32f27e31163 --- /dev/null +++ b/tde-i18n-da/docs/tdesdk/umbrello/code_import_and_generation.docbook @@ -0,0 +1,161 @@ +<chapter id="code-import-generation"> +<title +>Kodeimport og kodegenerering</title> +<para +>&umbrello; er et &UML;-modelleringsværktøj, og som sådant er dets hovedformål at hjælpe dig med <emphasis +>analyse og konstruktion</emphasis +> af dine systemer. For at gøre overgangen fra konstruktion til <emphasis +>implementering</emphasis +> nemmere, tillader &umbrello; dog at generere kildekode i forskellige programmeringssprog for at komme i gang. Hvis du desuden vil begynde på at bruge &UML; i et projekt som allerede er startet, kan &umbrello; hjælpe dig med at oprette en model af systemet fra kildekoden ved at analysere den og importere klasserne som findes i den. </para> +<sect1 id="code-generation"> +<title +>Kodegenerering</title> +<para +>&umbrello; kan generere kildekode for diverse programmeringssprog, baseret på din &UML;-model for at hjælpe dig med at komme i gang med implementeringen af projektet. Koden som laves består af klassedeklarationer, med metoder og attributter, så du kan <quote +>udfylde tomrummet</quote +> ved at sørge for funktionerne i klassernes operationer. </para> +<para +>&umbrello; 1.2 levereres med kodegenereringsunderstøttelse for ActionScript, Ada, C++, CORBA IDL, &Java;, Javascript, <acronym +>PHP</acronym +>, Perl, Python, SQL and XML Schema. </para> +<sect2 id="generate-code"> +<title +>Generér kode</title> +<para +>For at generere kode med &umbrello;, skal du først oprette eller indlæse en model som indeholder mindst en klasse. Når du er klar til at begynde at skrive lidt kode, vælges punktet <guimenuitem +>Kodegenereringsguide</guimenuitem +> i menuen <guimenuitem +>Kode</guimenuitem +>, for at starte guiden som leder dig gennem kodegenereringsprocessen. </para> +<para +>Det første skridt er at vælge klasser, som du vil oprette kildekode for. Normalt vælges alle klasser i modellen, og du kan fjerne dem du ikke vil generere kode for, ved at flytte dem til listen på venstre side. </para> +<para +>Næste skridt i guiden lader dig ændre parametre som kodegeneratoren bruger når den skriver koden. Følgende muligheder er til stede: </para> +<para> +<screenshot> +<screeninfo +>Kodegenereringsmuligheder</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="generation-options.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Valgmulighed for kodegenereringen i &umbrello;</phrase> + </textobject> + <caption> + <para +>Valgmulighed for kodegenereringen i &umbrello; </para> + </caption> + </mediaobject> +</screenshot> +</para> +<sect3 id="generation-options"> +<title +>Kodegenereringsmulighed</title> +<!-- LW; to rearrange --> + +<sect4> +<title +>Kodeinformationsniveau</title> +<para +>Punktet <guilabel +>Skriv dokumenteringskommentarer selvom de er tomme</guilabel +> instruerer kodegeneratoren til at udskrive kommentarer i stilen /** blaha */, også selv om kommentarblokkene er tomme. Hvis du tilføjede dokumentation i klasser, metoder eller attributter til modellen, udskriver kodegeneratoren kommentarerne som Doxygen-dokumentation, uafhængig af hvad du angiver her, men hvis du vælger dette, udskriver &umbrello; kommentarblokkene for alle klasser, metoder og attributter også selvom der ikke er nogen dokumentation i modellen, i hvilket tilfælde du bør dokumentere klasserne senere direkte i kildekoden. </para> +<para +><guilabel +>Skriv kommentarer for afsnit selvom afsnittene er tomme</guilabel +>: får &umbrello; til at skrive kommentarer til kildekoden for at afgrænse de forskellige afsnit i en klasse. For eksempel <quote +>Public methods</quote +> eller <quote +>Attributes</quote +> før de tilsvarende afsnit. Hvis du vælger dette, så skriver &umbrello; kommentarer for alle afsnit i klassen, også selvom afsnittet er tomt. Det ville for eksempel skrive en kommentar som lyder <quote +>Protected methods</quote +>, selvom der ikke er nogen sådanne i klassen. </para> +</sect4> +<sect4> +<title +>Mapper</title> +<para +><guilabel +>Skriv alle filer som laves til mappe</guilabel +>: Her skal du vælge mappen hvor du ønsker at &umbrello; skal lægge kildekoden som laves. </para> +<para +>Punktet <guilabel +>Indsætte hovedfiler fra mappe</guilabel +>, lader dig indsætte et hovede i begyndelsen af hver fil som genereres. Hovedfiler kan indehold ophavsret- eller licensinformation, og kan indeholde variabler som evalueres når genereringen sker. Du kan tage et kig på skabeloner for hovedfiler som levereres med &umbrello;, for at se hvordan man bruger variablerne til at erstatte dit navn eller dagens dato når genereringen sker. </para> +</sect4> +<sect4> +<title +>Overskrivningspolitik</title> +<!-- FIXME update for Umbrello 1.2's new C++ and Java code generators --> +<para +>Dette fortæller &umbrello; hvad der skal ske hvis filen som skal laves allerede findes i destinationsmappen. &umbrello; 1.1 <emphasis +>kan ikke ændre eksisterende kildekodefiler</emphasis +>, så du skal vælge mellem at overskriver den eksisterende fil, springe over at oprette netop denne fil, eller lade &umbrello; vælge et andet filnavn. Hvis du vælger at bruge et andet filnavn, tilføjer &umbrello; en endelse til filnavnet. </para> +</sect4> +<sect4> +<title +>Sprog</title> +<para +>&umbrello; genererer normalt kode for sproget som du har valgt som aktivt sprog, men du har mulighed for at ændre dette til et andet sprog med kodegenereringsguiden. </para> +</sect4> +</sect3 +><!--generation-options--> +<sect3 id="generation-wizard-generation"> +<title +>Generering med kodegenereringsguiden</title> +<para +>Det tredje og sidste skridt i guiden viser status for kodegenereringsprocessen. Du behøver kun klikke på knappen Generér for at få klasserne udskrevet til dig. </para> +<para +>Bemærk at de tilvalg som du vælger med kodegenereringsguiden kun gælder for denne generering. Næste gang du kører guiden, skal du vælge alle tilvalg igen (din hovedmappe, overskrivningspolitik, og så videre). Du kan indstille standardværdier som bruges af &umbrello; i afsnittet <guilabel +>Kodegenerering</guilabel +> i &umbrello;s indstillinger, tilgængelige via <menuchoice +><guimenu +>Indstillinger</guimenu +><guimenuitem +>Indstil &umbrello;...</guimenuitem +></menuchoice +>. </para> +<para +>Hvis du har indstillet kodegenereringstilvalg til de rigtige indstillinger, og vil lave lidt kode direkte uden at gå via guiden, kan du vælge <guimenuitem +>Generér al kode</guimenuitem +> i menuen Kode. Dette genererer kode for alle klasser i modellen med nuværende indstillinger (inklusive uddatamappe og overskrivningspolitik, så brug dette med forsigtighed). </para> +</sect3> +</sect2 +><!--generate-code--> +</sect1 +> <!--code-generation--> +<sect1 id="code-import"> +<title +>Kodeimport</title> +<para +>&umbrello; kan importere kildekode fra eksisterende projekter for at hjælpe dig med at bygge modeller af systemer. &umbrello; 1.2 understøtter kun C++ kildekode, men andre sprog vil være tilgængelige i fremtidige versioner. </para> +<para +>For at importere klasser til modellen, vælges <guimenuitem +>Importér klasser...</guimenuitem +> i menuen <guimenu +>Kode</guimenu +>. Vælg filerne som indeholder C++ klassedeklarationer i fildialogen og tryk på O.k. Klasserne importeres, og du finder dem som en del af modellen i trævisningen. Bemærk at &umbrello; ikke laver noget slags diagram for at vise klasserne, de importeres kun til modellen så du senere kan bruge dem i et valgfrit diagram. </para> +<para> +<screenshot> +<screeninfo +>Kodeimport</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="code-import.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Menu til at importere kildekode til &umbrello;</phrase> + </textobject> + <caption> + <para +>Menu til at importere kildekode til &umbrello; </para> + </caption> + </mediaobject> +</screenshot> +</para> +</sect1> +</chapter +> <!--code-import-generation--> diff --git a/tde-i18n-da/docs/tdesdk/umbrello/credits.docbook b/tde-i18n-da/docs/tdesdk/umbrello/credits.docbook new file mode 100644 index 00000000000..4b5a16b372f --- /dev/null +++ b/tde-i18n-da/docs/tdesdk/umbrello/credits.docbook @@ -0,0 +1,11 @@ +<chapter id="copyright"> +<title +>Ophavsret</title> + +<para +>Ophavsret 2001, Paul Hensgen</para> +<para +>Ophavsret 2002, 2003, &umbrello;-udviklerne. Se <ulink url="http://uml.sf.net/developers.php" +>http://uml.sf.net/developers.php</ulink +> for mere information</para> +&underFDL; &underGPL; </chapter> diff --git a/tde-i18n-da/docs/tdesdk/umbrello/index.cache.bz2 b/tde-i18n-da/docs/tdesdk/umbrello/index.cache.bz2 Binary files differnew file mode 100644 index 00000000000..fdc7b352dc8 --- /dev/null +++ b/tde-i18n-da/docs/tdesdk/umbrello/index.cache.bz2 diff --git a/tde-i18n-da/docs/tdesdk/umbrello/index.docbook b/tde-i18n-da/docs/tdesdk/umbrello/index.docbook new file mode 100644 index 00000000000..2ed6d008986 --- /dev/null +++ b/tde-i18n-da/docs/tdesdk/umbrello/index.docbook @@ -0,0 +1,85 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" + "dtd/kdex.dtd" [ + <!ENTITY umbrello "<application +>Umbrello &UML; Modeller</application +>"> + <!ENTITY kappname "&umbrello;"> + <!ENTITY packagename "tdesdk"> + <!ENTITY UML "<acronym +>UML</acronym +>"> + <!ENTITY introduction-chapter SYSTEM "introduction.docbook"> + <!ENTITY uml-basics-chapter SYSTEM "uml_basics.docbook"> + <!ENTITY working-with-umbrello-chapter SYSTEM "working_with_umbrello.docbook"> + <!ENTITY code-import-and-generation-chapter SYSTEM "code_import_and_generation.docbook"> + <!ENTITY other-features-chapter SYSTEM "other_features.docbook"> + <!ENTITY authors-chapter SYSTEM "authors.docbook"> + <!ENTITY credits-chapter SYSTEM "credits.docbook"> + <!ENTITY % addindex "IGNORE"> + <!ENTITY % Danish "INCLUDE" +><!-- change language only here --> + <!-- Do not define any other entities; instead, use the entities + from kde-genent.entities and $LANG/user.entities. --> +]> + +<book id="Umbrello" lang="&language;"> +<bookinfo> +<title +>&umbrello;-håndbogen</title> + +<authorgroup> +<corpauthor +>&umbrello;-udviklerne</corpauthor> +</authorgroup> + +<copyright> +<year +>2001</year> +<holder +>Paul Hensgen</holder> +</copyright> +<copyright> +<year +>2002, 2003</year> +<holder +>&umbrello;-udviklerne</holder> +</copyright> + + +<date +>2003-10-15</date> +<releaseinfo +>1.2</releaseinfo> + +<abstract> +<para +>&umbrello; hjælper til med udviklingsprocessen for programmel ved at bruge industristandarden Unified Modelling Language (&UML;) for at gøre det muligt at oprette diagrammer til at konstruere og dokumentere systemer. </para> +</abstract> + +<keywordset> +<keyword +>KDE</keyword> +<keyword +>UML</keyword> +<keyword +>modellering</keyword> +<keyword +>diagrammer</keyword> +<keyword +>programmeludvikling</keyword> +<keyword +>udvikling</keyword> +</keywordset> + +</bookinfo> + +&introduction-chapter; +¨-basics-chapter; +&working-with-umbrello-chapter; +&code-import-and-generation-chapter; +&other-features-chapter; +&authors-chapter; +&credits-chapter; + +</book> diff --git a/tde-i18n-da/docs/tdesdk/umbrello/introduction.docbook b/tde-i18n-da/docs/tdesdk/umbrello/introduction.docbook new file mode 100644 index 00000000000..1950c465ded --- /dev/null +++ b/tde-i18n-da/docs/tdesdk/umbrello/introduction.docbook @@ -0,0 +1,57 @@ +<chapter id="introduction"> +<title +>Indledning</title> + +<para +>&umbrello; er et &UML;-diagramværktøj som understøtter dig i udviklingsprocessen af programmel. I særdeleshed under analyse- og konstruktionsfaserne af processen, hjælper &umbrello; dig med at oprette et produkt af høj kvalitet. &UML; kan også bruges til at dokumentere programmelkonstruktioner for at hjælpe dig og dine medudviklere. </para> +<para +>At have en god model af programmellet er den bedste måde at kommunikere med andre udviklere som arbejder med projektet og med kunder. En god model er yderst vigtig for middelstore og store projekter, men er også meget nyttig for små. Selv om du arbejder på et lille enmandsprojekt, har du nytte af en god model, eftersom den giver dig et overblik, som hjælper dig til at kode det rigtige fra begyndelsen. </para> +<para +>&UML; er et diagramsprog som bruges til at beskrive sådanne modeller. Du kan repræsentere dine idéer i &UML; med forskellige slags diagrammer. &umbrello; 1.2 understøtter følgende typer: </para> +<itemizedlist> +<listitem +><para +>Klassediagram</para +></listitem> +<listitem +><para +>Sekvensdiagram</para +></listitem> +<listitem +><para +>Samarbejdsdiagram</para +></listitem> +<listitem +><para +>Brugstilfældediagram</para +></listitem> +<listitem +><para +>Tilstandsdiagram</para +></listitem> +<listitem +><para +>Aktivitetsdiagram</para +></listitem> +<listitem +><para +>Komponentdiagram</para +></listitem> +<listitem +><para +>Udplaceringsdiagram</para +></listitem> +</itemizedlist> +<para +>Mere information om &UML; findes på hjemmesiden <acronym +>OMG</acronym +>, <ulink url="http://www.omg.org" +>http://www.omg.org</ulink +>, dem der lavede &UML;-standarden. </para> +<para +>Vi håber at du vil nyde at arbejde med &umbrello;, og at den hjælper dig med at lave programmel af høj kvalitet. &umbrello; er et frit værktøj, og det eneste som vi beder dig om er at rapportere eventuelle fejl, problemer eller forslag til &umbrello;s udviklere på <email +>[email protected]</email +> eller <ulink url="http://bugs.kde.org" +>http://bugs.kde.org</ulink +>. </para> +</chapter> diff --git a/tde-i18n-da/docs/tdesdk/umbrello/other_features.docbook b/tde-i18n-da/docs/tdesdk/umbrello/other_features.docbook new file mode 100644 index 00000000000..de7c38631fa --- /dev/null +++ b/tde-i18n-da/docs/tdesdk/umbrello/other_features.docbook @@ -0,0 +1,76 @@ +<chapter id="other-features"> +<title +>Andre funktioner</title> +<sect1 +> +<title +>Andre funktioner i &umbrello;</title> +<para +>Dette kapitel forklarer kortfattet nogle andre funktioner som &umbrello; tilbyder.</para> +<sect2 id="copying-as-png"> +<title +>Kopiér objekter som PNG-billeder</title> +<para +>Foruden at tilbyde de normale funktioner for at kopiere, klippe og indsætte, som man kan forvente sig for at kopiere objekter mellem forskellige diagrammer, kan &umbrello; kopiere objekter som PNG-billeder, så man kan indsætte dem i en hvilket som helst anden type dokument. Man behøver ikke gøre noget særligt for at bruge denne funktion, markér blot et objekt i et diagram (klasse, aktør, osv.) og kopiér det (<keycombo +>&Ctrl;<keycap +>C</keycap +></keycombo +>, eller brug menuen), åbn derefter et &kword;-dokument (eller et andet program hvor billeder kan indsættes) og vælg <guimenuitem +>Indsæt</guimenuitem +>. Dette er en udmærket funktion for at eksportere dele af diagrammer som enkelte billeder. </para> +</sect2> +<sect2 id="export-as-png"> +<title +>Eksportere til et billede</title> +<para +>Man kan også eksportere et fuldstændigt diagram som et billede. Det eneste man skal gøre er at vælge diagrammet som skal eksporteres, og derefter punktet <guimenuitem +>Eksportér som billede...</guimenuitem +> i <guimenu +>Diagram</guimenu +>-menuen. </para> +</sect2> +<sect2 id="printing"> +<title +>Udskrift</title> +<para +>&umbrello; tillader at enkelte diagrammer udskrives. Tryk på knappen <guiicon +>Udskriv</guiicon +> i programværktøjslinjen eller vælg punktet <guimenuitem +>Udskriv</guimenuitem +> i <guimenu +>Fil</guimenu +>-menuen, så vises &kde;'s standardudskriftsdialog hvor diagrammerne kan skrives ud. </para> +</sect2> +<sect2 id="logical-folders"> +<title +>Logiske mapper</title> +<para +>For at organisere en model på en bedre måde, særligt for større projekter, kan man oprette logiske mapper i trævisningen. Vælg blot punktet <menuchoice +><guimenu +>Ny</guimenu +><guimenuitem +>Mappe</guimenuitem +></menuchoice +> i den sammenhængsafhængige menu i standardmappen under trævisningen, for at oprette dem. Mapper kan være indeni hinanden, og man kan flytte objekter rundt ved at trække dem fra en mappe og slippe dem i en anden. </para> + +<screenshot> +<screeninfo +>Organisér din model med mapper</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="folders.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Organisér en model med logiske mapper i &umbrello;</phrase> + </textobject> + <caption> + <para +>Organisér en model med logiske mapper i &umbrello; </para> + </caption> + </mediaobject> +</screenshot> + +</sect2> +</sect1> +</chapter> diff --git a/tde-i18n-da/docs/tdesdk/umbrello/uml_basics.docbook b/tde-i18n-da/docs/tdesdk/umbrello/uml_basics.docbook new file mode 100644 index 00000000000..680eeffa52d --- /dev/null +++ b/tde-i18n-da/docs/tdesdk/umbrello/uml_basics.docbook @@ -0,0 +1,780 @@ +<chapter id="uml-basics"> +<title +>&UML;, det basale</title> +<sect1 id="about-uml"> +<title +>Om &UML;</title> +<para +>Dette kapitel giver en hurtig oversigt over det basale i &UML;. Husk at dette ikke er en fuldstændig &UML;-vejledning. Hvis du vil lære dig mere om Unified Modelling Language, eller om almen analyse og konstruktion af programmel, henvises du til en af de mange bøger som er tilgængelige om emnet. Der er også mange vejledninger på internettet, som du kan bruge som et startpunkt. </para> + +<para +>Unified Modelling Language (&UML;) er et diagrambaseret sprog eller notation til at specificere, visualisere og dokumentere modeller af objektorienteret programmel. &UML; er ikke en udviklingsmetode, hvilket betyder at den ikke fortæller for dig hvad du skal gøre først og hvad du skal gøre derefter, eller hvordan du skal konstruere dit system, men den hjælper til at visualisere konstruktionen og kommunikere med andre. &UML; styres af Object Management Group (<acronym +>OMG</acronym +>), og er en industristandard for at beskrive modeller af programmel. </para> +<para +>&UML; er konstrueret for design af objektorienteret programmel, og har begrænset brug for andre programmeringsparadigmer. </para> +<para +>&UML; er opbygget af mange modelleringselementer som repræsenterer forskellige dele af programmelsystemet. UML-elementerne bruges til at oprette diagrammer, som repræsenterer en vis del, eller en synspunkt for systemet. Følgende slags diagrammer understøttes af &umbrello;: </para> + +<itemizedlist> + +<listitem +><para +><emphasis +><link linkend="use-case-diagram" +>Brugstilfælde-diagrammer</link +></emphasis +> viser aktører (mennesker eller andre brugere af systemet), brugstilfælde (scenarier når de bruger systemet), og deres forhold</para +> </listitem> + +<listitem +><para +><emphasis +><link linkend="class-diagram" +>Klassediagrammer</link +></emphasis +> viser klasser, og forholdene mellem dem</para +> </listitem> + +<listitem +><para +><emphasis +><link linkend="sequence-diagram" +>Sekvensdiagrammer</link +></emphasis +> viser objekter og deres og en sekvens af metodekald de laver til andre objekter.</para +> </listitem> + +<listitem +><para +><emphasis +><link linkend="collaboration-diagram" +>Samarbejdsdiagrammer</link +></emphasis +> viser objekter og deres forhold, med betoning på objekter som deltager i udveksling af meddelelser</para> +</listitem> + +<listitem +><para +><emphasis +><link linkend="state-diagram" +>Tilstandsdiagrammer</link +></emphasis +> viser tilstande, tilstandsændringer og begivenheder for et objekt eller en del af systemet</para +> </listitem> + +<listitem +><para +><emphasis +><link linkend="activity-diagram" +>Aktivitetsdiagrammer</link +></emphasis +> viser aktiviteter, tilstander og tilstandsændringer for objekter og begivenheder som sker i en del af systemet</para +></listitem> + +<listitem +><para +><emphasis +><link linkend="component-diagram" +>Komponentdiagrammer</link +></emphasis +> viser programmeringskomponenter på højt niveau (såsom Kparts eller Java Beans).</para +></listitem> + +<listitem +><para +><emphasis +><link linkend="deployment-diagram" +>Udplaceringsdiagrammer</link +></emphasis +> viser komponenternes instanser og deres indbyrdes forhold.</para +></listitem +> + +</itemizedlist> + +</sect1 +> <!-- about-uml --> + +<sect1 id="uml-elements" +> +<title +>&UML;-elementer</title> +<sect2 id="use-case-diagram"> +<title +>Brugstilfældediagram</title> +<para +>Brugstilfældediagrammer beskriver forhold og afhængighed mellem en gruppe <emphasis +>brugstilfælde</emphasis +> og aktører som deltager i processen.</para> +<para +>Det er vigtigt at observere at brugstilfældesdiagrammer ikke er passende til at repræsentere konstruktioner, og ikke kan beskrive systemets indre dele. Brugstilfældediagrammer er beregnede til at muliggøre kommunikation med fremtidige brugere af systemet, og med kunden. De er til særlig hjælp for at afgøre hvilke funktioner som det kræves at systemet skal have. Med andre ord fortæller brugstilfældediagrammer om <emphasis +>hvad</emphasis +> systemet skal gøre, men de angiver ikke — og kan ikke angive — <emphasis +>hvordan</emphasis +> dette skal opnås.</para> +<para> +<screenshot> +<screeninfo +>Et eksempel på et brugstilfældediagram.</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="use-case-diagram.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>&umbrello; som viser et brugstilfældediagram</phrase> + </textobject> + <caption> + <para +>&umbrello; som viser et brugstilfældediagram </para> + </caption> + </mediaobject> +</screenshot> +</para> +<sect3 id="use-case"> +<title +>Brugstilfælde</title> +<para +>Et <emphasis +>brugstilfælde</emphasis +> beskriver — fra aktørernes synvinkel — en samling aktiviteter i et system, som giver anledning til et konkret, væsentligt resultat.</para> +<para +>Brugstilfælde er beskrivelser af typisk vekselvirken mellem brugerne af et system og systemet selv. De repræsenterer systemets ydre grænseflade, og angiver en slags krav på hvad systemet skal gøre (husk, kun hvad, ikke hvordan). </para> +<para +>Ved arbejde med brugstilfælde, er det vigtigt at huske nogle enkle regler: <itemizedlist> + <listitem +><para +>Hvert brugstilfælde hører sammen med mindst en aktør</para +></listitem> + <listitem +><para +>Hvert brugstilfælde har et ophav (dvs. en aktør)</para +></listitem> + <listitem +><para +>Hvert brugstilfælde leder til et relevant resultat (et resultat med <quote +>forretningsværdi</quote +>).</para> + </listitem> + </itemizedlist> +</para> +<para +>Brugstilfælde kan også have forhold til andre brugstilfælde. De tre mest typiske slags forhold mellem brugstilfælde er:</para> +<itemizedlist> +<listitem +><para +><emphasis +><<include>></emphasis +> (indeholder), hvilket angiver at brugstilfældet finder sted <emphasis +>inde i</emphasis +> et andet brugstilfælde</para +></listitem> +<listitem +><para +><emphasis +><<extends>></emphasis +> (udvider), hvilket angiver at i visse tilfælde, eller i et tilfælde (som kaldes et udvidelsespunkt), bliver et brugstilfælde udvidet af et andet.</para +></listitem> +<listitem +><para +><emphasis +>Generalisering</emphasis +> angiver at et brugstilfælde arver egenskaberne for <quote +>super</quote +>-brugstilfældet, og kan sætte nogen af dem ud af kraft, eller tilføje nye på samme måde som arv mellem klasser. </para> +</listitem> +</itemizedlist> +</sect3> +<sect3 id="actor"> +<title +>Aktør</title> +<para +>En aktør er en ekstern enhed (udenfor systemet) som vekselvirker med systemet ved at deltage i (og ofte indlede) et brugstilfælde. Aktører kan i virkeligheden være mennesker (for eksempel brugere af systemet), andre maskinesystemer eller ydre begivenheder. </para> +<para +>Aktører repræsenterer ikke <emphasis +>fysiske</emphasis +> mennesker eller systemer, men deres <emphasis +>rolle</emphasis +>. Det betyder at når en person vekselvirker med systemet på forskellige måder (antager forskellige roller) repræsenteres han ved flere aktører. En person som for eksempel giver kundeunderstøttelse via telefon og tager imod bestillinger fra kunden til systemet, vil blive repræsenteret af en aktør <quote +>Kundeunderstøttelsespersonale</quote +> og af en aktør <quote +>Salgsrepræsentant</quote +>. </para> +</sect3> +<sect3 id="use-case-description"> +<title +>Beskrivelse af brugstilfælde</title> +<para +>En beskrivelse af et brugstilfælde er en tekstbaseret beretning om brugstilfældet. Det er ofte i form af en note eller et dokument som på en eller anden måde er linket til brugstilfældet, og forklarer processerne eller aktiviteterne som finder sted i brugstilfældet. </para> +</sect3> +</sect2 +> <!-- use-case-diagram --> + +<sect2 id="class-diagram"> +<title +>Klassediagram</title> +<para +>Klassediagrammer viser de forskellige klasser som opbygger et system og hvordan de relateres til hinanden. Klassediagrammer siges at være <quote +>statiske</quote +> diagrammer, fordi de viser klasserne, sammen med deres metoder og attributter, samt det statiske forhold mellem dem: hvilke klasser der <quote +>kender til</quote +> andre klasser, eller hvilke klasser der <quote +>er en del</quote +> af andre klasser, men viser ikke metodekald mellem dem. </para> +<para> +<screenshot> +<screeninfo +>Et eksempel på et klassediagram</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="class-diagram.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>&umbrello; som viser et klassediagram</phrase> + </textobject> + <caption> + <para +>&umbrello; som viser et klassediagram </para> + </caption> + </mediaobject> +</screenshot> +</para> +<sect3 id="class"> +<title +>Klasse</title> +<para +>En klasse definerer attributterne og metoderne for en mængde af objekter. Alle objekter af klassen (instanser af klassen) deler samme opførsel, og har samme mængde af attributter (hvert objekt har sin egen mængde). Udtrykket <quote +>type</quote +> bruges ind imellem i stedet for klasse, men det er vigtigt at nævne at de to ikke er det samme, og at type er et mere generelt udtryk. </para> +<para +>Klasser i &UML; repræsenteres af rektangler, med klassens navn, og kan også vise klassens attribut og operationer i to <quote +>afdelinger</quote +> inde i rektanglet. </para> +<para> +<screenshot> +<screeninfo +>En klasse i &UML;</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="class.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Visuel repræsentation af en klasse i &UML;</phrase> + </textobject> + <caption> + <para +>Visuel repræsentation af en klasse i &UML; </para> + </caption> + </mediaobject> +</screenshot> +</para> +<sect4 id="attribute"> +<title +>Attribut</title> +<para +>Attributter i UML vises i det mindste med deres navne, og kan også vises med type, oprindelig værdi og andre egenskaber. Attribut kan også vises med synlighed: </para> +<itemizedlist> +<listitem +><para +><literal +>+</literal +> Står for <emphasis +>åbne</emphasis +> (public) attributter</para +></listitem> +<listitem +><para +><literal +>#</literal +> Står for <emphasis +>beskyttede</emphasis +> (protected) attributter</para +></listitem> +<listitem +><para +><literal +>-</literal +> Står for <emphasis +>private</emphasis +> (private) attributter</para +></listitem> +</itemizedlist> +</sect4> +<sect4 id="operation"> +<title +>Operationer</title> +<para +>Operationer (metoder) vises også i det mindste med deres navne, og kan også vises med parametre og returtyper. Operationer, præcis som attributter, kan vises med deres synlighed: <itemizedlist> +<listitem +><para +><literal +>+</literal +> Står for <emphasis +>åbne</emphasis +> (public) operationer</para +></listitem> +<listitem +><para +><literal +>#</literal +> Står for <emphasis +>beskyttede</emphasis +> (protected) operationer</para +></listitem> +<listitem +><para +><literal +>-</literal +> Står for <emphasis +>private</emphasis +> (private) operationer</para +></listitem> +</itemizedlist> +</para> +</sect4> + +<sect4 id="templates"> +<title +>Skabeloner</title> +<para +>Klasser kan have skabeloner, en værdi som bruges for en uspecificeret klasse eller type. Skabelontypen angives når klassen initieres (dvs. et objekt laves). Skabeloner findes i moderne C++ og vil blive introduceret i Java 1.5, hvor de kaldes Generics. </para> +</sect4> +</sect3> + +<sect3 id="class-associations"> +<title +>Klasseassociationer</title> +<para +>Klasser kan relateres til (associeres med) hinanden på forskellige måder:</para> +<sect4 id="generalization"> +<title +>Generalisering</title> +<para +>Arv er et af de grundlæggende begreber i objektorienteret programmering, hvor en klasse <quote +>opnår</quote +> alle attributter og operationer fra klassen den arver fra, og kan overskride/ændre nogen af dem, samt tilføje flere egne attributter og operationer.</para> +<para +>En <emphasis +>generalisering</emphasis +> mellem to klasser i &UML;, placerer dem i et hierarki som repræsenterer arvebegrebet for en afledt klasse fra en basisklasse. Generaliseringer i &UML; repræsenteres med en linje som binder de to klasser sammen, med en pil på basisklassens side. <screenshot> +<screeninfo +>Generalisering</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="generalization.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Visuel repræsentation af en generalisering i &UML;</phrase> + </textobject> + <caption> + <para +>Visuel repræsentation af en generalisering i &UML; </para> + </caption> + </mediaobject> +</screenshot> +</para> +</sect4> + +<sect4 id="uml-associations"> +<title +>Associationer</title> +<para +>En association repræsenterer et forhold mellem klasser, og giver den fælles semantik og struktur for mange typer af <quote +>forbindelser</quote +> mellem objekter.</para> +<para +>Associationer er mekanismen som tillader at objekter kommunikerer med hinanden. De beskriver forbindelsen mellem forskellige klasser (forbindelsen mellem de virkelige objekter kaldes objektforbindelser, eller <emphasis +>link</emphasis +>). </para> +<para +>Associationer kan have en rolle, som angiver associationens formål, og kan være ensrettede eller gensidige (indikerer om de to objekter som deltager i forholdet kan sende meddelelser til hinanden, eller om kun et af dem kender til det andet). Hver eneste af associationerne har også en multiplicitet, som bestemmer hvor mange objekter på denne side af associationen kan relateres til et objekt på den anden side. </para> +<para +>Associationer i &UML; repræsenteres som linjer som binder de klasser sammen som deltager i forholdet, og kan også vise rollen og multipliciteten for hver af deltagerne. Multiplicitet vises som et interval [minimum..maksimum] med ikke-negative værdier, med en stjerne (*) på maksimumsiden som repræsenterer uendeligt. <screenshot> +<screeninfo +>&UML;-association</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="association.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Visuel repræsentation af en association i &UML;</phrase> + </textobject> + <caption> + <para +>Visuel repræsentation af en association i &UML; </para> + </caption> + </mediaobject> +</screenshot> +</para> +</sect4> + +<sect4 id="aggregation"> +<title +>Aggregering</title> +<para +>Aggregeringer er en særlig slags association, hvor de to deltagende klasser ikke har en ligeværdig status, men udgør et <quote +>helhed-del</quote +> forhold. En aggregering beskriver hvordan klassen som intager rollen som helhed, er sammensat af (har) andre klasser, som intager rollerne som dele. Klassen der virker som helhed har altid multiplicitet en, for aggregeringer. </para> +<para +>Aggregeringer i &UML; repræsenteres ved en association som viser en rombe på den side som hører til helheden. <screenshot> +<screeninfo +>Aggregering</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="aggregation.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Visuel repræsentation af en aggregeringsrelation i &UML;</phrase> + </textobject> + <caption> + <para +>Visuel repræsentation af en aggregeringsrelation i &UML; </para> + </caption> + </mediaobject> +</screenshot> +</para> +</sect4> +<sect4 id="composition"> +<title +>Sammensætning</title> +<para +>Sammensætninger er associationer som repræsenterer <emphasis +>meget stærke</emphasis +> aggregeringer. Det betyder at sammensætninger også former helhed-del forhold, men at forholdet er så stærkt at delene ikke kan eksistere for sig selv. De findes kun inde i helheden, og hvis helheden forstyrres, forsvinder delene også.</para> +<para +>Sammensætninger i &UML; repræsenteres af en udfyldt rombe på siden af helheden. </para> +<para +><screenshot> +<screeninfo +>Sammensætning</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="composition.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Visuel repræsentation af en sammensætningsrelation i &UML;</phrase> + </textobject> + </mediaobject> +</screenshot +></para> +</sect4> +</sect3 +> <!--class-associations--> + +<sect3 id="other-class-diagram-items"> +<title +>Andre punkter i klassediagrammer</title> +<para +>Klassediagrammer kan indeholde flere andre objekter foruden klasser.</para> +<sect4 id="interfaces"> +<title +>Grænseflader</title> +<para +>Grænseflade er abstrakte klasser hvilket betyder at instanser ikke direkte kan skabes fra dem. De kan indehold operationer men ingen attributter. Klasser kan arve fra grænseflader (via en realisationsassociation) og instanser kan derefter laves af disse diagrammer.</para> +<!-- FIXME screenshot --> +</sect4> +<sect4 id="datatype"> +<title +>Datatyper</title> +<para +>Datatyper er primitiver som typisk er indbyggede i et programsprog. Almindelige eksempler omfatter heltal og en boolesk type. De kan ikke have forhold til klasser, men klasser kan have forhold til dem.</para> +<!-- FIXME screenshot --> +</sect4> +<sect4 id="enum"> +<title +>Gentagelsestyper</title> +<para +>Gentagelsestyper er enkle lister med værdier. Et typisk eksempel er en nummereringstype af ugedage. Tilvalgene for en gentagelsestype kaldes Enum Literals. Som datatyper kan de ikke have forhold til klasser, men klasser kan have forhold til dem.</para> +<!-- FIXME screenshot --> +</sect4> +<sect4 id="package"> +<title +>Pakker</title> +<para +>Pakker repræsenterer navnerum i et programsprog. I et diagram bruges de til at repræsentere dele af et system som indeholder mere end en klasse, måske hundredvis af klasser.</para> +<!-- FIXME screenshot --> +</sect4> +</sect3> + +</sect2 +> <!-- class diagram --> + +<sect2 id="sequence-diagram"> +<title +>Sekvensdiagrammer</title> + +<para +>Sekvensdiagrammer viser udveksling af meddelelser (dvs. metodekald) mellem flere objekter, i en specifik, tidsbegrænset situation. Sekvensdiagrammer lægger særlig vægt på rækkefølgen og tiden når meddelelserne til objekter sendes.</para> + +<para +>Objekter repræsenteres af lodrette stregede linjer i sekvensdiagrammer, med objektets navn øverst. Tidsakslen er også lodret, og vokser nedad, så meddelelser sendes fra et objekt til et andet i form af pile med operationer og parameternavn. </para> + +<!-- FIXME update screenshot to show synchronous messages --> +<screenshot> +<screeninfo +>Sekvensdiagram</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="sequence-diagram.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>&umbrello; som viser et sekvensdiagram</phrase> + </textobject> + <caption> + <para +>&umbrello; som viser et sekvensdiagram </para> + </caption> + </mediaobject> +</screenshot> + +<para +>Meddelelser kan enten være synkrone, den normale type for meddelelseskald hvor kontrollen overgår til det kaldte objekt til metoden er kørt færdigt, eller asynkrone hvor kontrollen går direkte tilbage til det kaldende objekt. Synkrone meddelelser har et lodret felt ved siden af det kaldte objektet, for at vise programkontrollen.</para> +</sect2 +> <!-- sequence diagrams --> + +<sect2 id="collaboration-diagram"> +<title +>Samarbejdsdiagrammer</title> + +<para +>Samarbejdsdiagrammer viser vekselvirkningen mellem objekter som deltager i en speciel situation. Dette er mere eller mindre samme information som vises i sekvensdiagrammer, men hvor vægten lægges på hvordan vekselvirkningen sker i tiden, mens samarbejdsdiagrammer lægger vægten på forholdet mellem objekterne og deres topologi.</para> + +<para +>I samarbejdsdiagrammer repræsenteres meddelelser fra et objekt til et andet med pile, som viser meddelelsens navn, parametre og meddelelsesekvensen. Samarbejdsdiagrammer er særligt passende til at vise en særlig programflydning eller situation, og er blandt de bedste diagramtyper til hurtigt at demonstrere eller forklare en process i programmets logik. </para> + +<screenshot> +<screeninfo +>Samarbejde</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="collaboration-diagram.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>&umbrello; som viser et samarbejdsdiagram</phrase> + </textobject> + <caption> + <para +>&umbrello; som viser et samarbejdsdiagram </para> + </caption> + </mediaobject> +</screenshot> + +</sect2 +> <!-- collaboration diagrams --> + +<sect2 id="state-diagram"> +<title +>Tilstandsdiagram</title> +<para +>Tilstandsdiagrammer viser de forskellige tilstande et objekt har i sin livstid, og de stimuli som forårsager at objektet ændrer sin tilstand. </para +> +<para +>Tilstandsdiagrammer ser objekter som <emphasis +>tilstandsmaskiner</emphasis +> eller finite automates, som kan være i en af en mængde begrænsede tilstande og som kan ændre tilstand via et af et begrænset antal stimuli. Et objekt af typen <emphasis +>Netserver</emphasis +>, kan for eksempel være i en af følgende tilstande i sin livstid: </para> +<itemizedlist> +<listitem +><para +>Klar</para +></listitem> +<listitem +><para +>Lytter</para +></listitem> +<listitem +><para +>Arbejder</para +></listitem> +<listitem +><para +>Stoppet</para +></listitem> +</itemizedlist> +<para +>og begivenhederne som kan gøre at et objekt skifter tilstand er</para> +<itemizedlist> +<listitem +><para +>Objektet laves</para +></listitem> +<listitem +><para +>Objektet tager imod meddelelsen at lytte</para +></listitem> +<listitem +><para +>En klient beder om en forbindelse via netværket</para +></listitem> +<listitem +><para +>En klient afslutter en forespørgsel</para +></listitem> +<listitem +><para +>En forespørgsel køres og afsluttes</para +></listitem> +<listitem +><para +>Objektet tager imod meddelelsen at stoppe</para +></listitem> +<listitem +><para +>osv</para +></listitem> +</itemizedlist> +<para> +<screenshot> +<screeninfo +>Tilstandsdiagram</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="state-diagram.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>&umbrello; som viser et tilstandsdiagram</phrase> + </textobject> + <caption> + <para +>&umbrello; som viser et tilstandsdiagram </para> + </caption> + </mediaobject> +</screenshot> +</para> +<sect3 id="state"> +<title +>Tilstand</title> +<para +>Tilstand er byggeblokken i tilstandsdiagrammer. En tilstand hører til nøjagtig en klasse, og repræsenterer en sammenfatning af de værdier klassens attributter kan intage. En &UML;-tilstand beskriver den interne tilstand for et objekt af en vis klasse. </para +> +<para +>Bemærk at ikke hver ændring af en af et objekts attributter skal repræsenteres som en tilstand, men kun de ændringer som væsentligt kan påvirke objektets arbejde.</para> +<para +>Der er to specielle typer tilstand: start og slut. De er specielle på den måde at der ikke er nogen begivenhed som kan gøre at et objekt går tilbage til sin starttilstand, og på samme måde er der ingen begivenhed som gør det muligt for et objekt at forlade sin sluttilstand når den først er nået. </para> +</sect3> + +</sect2 +> <!-- state diagrams --> + +<sect2 id="activity-diagram"> +<title +>Aktivitetsdiagram</title> +<para +>Aktivitetsdiagrammer beskriver en følge af begivenheder i et system, ved hjælp af aktiviteter. Aktivitetsdiagrammer er en speciel form af tilstandsdiagrammer, som kun (eller hovedsagelig) indeholder aktiviteter. </para> +<para> +<screenshot> +<screeninfo +>Et eksempel på aktivitetsdiagram</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="activity-diagram.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>&umbrello; som viser et aktivitetsdiagram</phrase> + </textobject> + <caption> + <para +>&umbrello; som viser et aktivitetsdiagram </para> + </caption> + </mediaobject> +</screenshot> +</para> +<para +>Aktivitetsdiagrammer ligner procedurelle flydediagrammer, med forskellen at alle aktiviteter er klart linkede til objekter.</para> + +<para +>Aktivitetsdiagrammer hører altid sammen med en <emphasis +>klasse</emphasis +>, en <emphasis +>operation</emphasis +> eller et <emphasis +>brugstilfælde</emphasis +>.</para> + +<para +>Aktivitetsdiagrammer understøtter sekventielle- og parallelle aktiviteter. Parallel kørsel repræsenteres med ikonen Del op/Vent, og det er ikke vigtigt for aktiviteter som kører parallelt i hvilken rækkefølge de udføres (de kan køres samtidigt eller en af gangen).</para> +<sect3 id="activity"> +<title +>Aktivitet</title> +<para +>En aktivitet er et enkelt skridt i en process. En aktivitet er en tilstand i systemet med intern aktivitet og i det mindste en udgående overgang. Aktiviteter kan også have mere end en udgående overgang, hvis de har forskellige betingelser. </para +> +<para +>Aktiviteter kan opbygge hierarkier, hvilket betyder at en aktivitet kan bestå af flere <quote +>detaljeaktiviteter</quote +>, hvor indkommende og udgående overgange skal passe sammen med de indkommende og udgående overgange i detaljediagrammet. </para> + +</sect3> +</sect2 +> <!-- activity diagram --> + +<sect2 id="helper-elements"> +<title +>Hjælpeelementer</title> +<para +>Der er nogle få elementer i &UML; som ikke har noget virkelig semantisk værdi for modellen, men som hjælper til at klargøre dele af diagrammerne. Disse elementer er </para> +<itemizedlist> +<listitem +><para +>Tekstlinjer</para +></listitem> +<listitem +><para +>Noter og ankre</para +></listitem> +<listitem +><para +>Bokse</para +></listitem> +</itemizedlist +> +<para +>Tekstlinjer er nyttige til at tilføje kort tekstinformation i et diagram. Det er fritstående tekst, og har ingen betydning i selve modellen. </para +> + +<para +>Noter er nyttige til at tilføje mere detaljeret information om et objekt eller en særlig situation. De har den store fordel at noter kan ankres ved &UML;-elementer for at vise at noten <quote +>hører til</quote +> et særligt objekt eller en særlig situation. </para> + +<para +>Bokse er fritstående rektangler som kan bruges til at gruppere objekter sammen, for at gøre diagrammer mere læsbare. De har ingen logisk mening i modellen.</para> + +<!-- FIXME, screenshot --> +</sect2 +> <!-- helper elements --> + +<sect2 id="component-diagram"> +<title +>Komponentdiagrammer</title> +<para +>Komponentdiagrammer viser programkomponenter (enten komponentteknologier såsom Kparts, CORBA-komponenter eller Java Beans eller kun dele af systemet som er klart udskillelige) og artefakterne de består af, såsom kildekodefiler, programbiblioteker eller relationsdatabasetabeller.</para> + +<para +>Komponenter kan have grænseflader (dvs. abstrakte klasser med operationer) som tillader associationer mellem komponenter.</para> +</sect2> + +<sect2 id="deployment-diagram"> +<title +>Udplaceringsdiagrammer</title> + +<para +>Udplaceringsdiagrammer viser komponentinstanserne ved kørsel og deres associationer. De omfatter knuder, som er fysiske ressourcer, typisk en enkelt maskine. De viser også grænseflader og objekter (klasseinstanser).</para> + +</sect2> + +</sect1 +> +</chapter> diff --git a/tde-i18n-da/docs/tdesdk/umbrello/working_with_umbrello.docbook b/tde-i18n-da/docs/tdesdk/umbrello/working_with_umbrello.docbook new file mode 100644 index 00000000000..d2f5148eb14 --- /dev/null +++ b/tde-i18n-da/docs/tdesdk/umbrello/working_with_umbrello.docbook @@ -0,0 +1,419 @@ +<chapter id="working-with-umbrello"> +<title +>Arbejde med &umbrello;</title> +<!-- Umbrello basics: creating diagrams, creating classes, adding objects to diagrams, + associations, editing properties, anchor points in associations, removing objects, removing + diagrams +--> + +<para +>Dette kapitel giver en introduktion til &umbrello;s brugergrænseflade og fortæller dig alt du skal vide for at begynde med modellering. Alle handlinger i &umbrello; er tilgængelige via menuer og værktøjslinjer, men &umbrello; bruger også i stor udstrækning sammenhængsafhængige menuer som vises med højre museknap. Du kan <mousebutton +>højre</mousebutton +>klikke på næsten alle steder i &umbrello;s arbejdsområde eller i trævisningen for at få en menu med de mest nyttige funktioner som kan tilpasses til netop det særlige punkt som du arbejder med. Visse brugere synes at dette er lidt forvirrende i begyndelsen (fordi de er mere vant til at arbejde med menuer eller værktøjslinjer), men når man vænnet sig at <mousebutton +>højre</mousebutton +>klikke, gør det dit arbejde en hel del hurtigere. </para> + +<sect1 id="user-interface"> +<title +>Brugergrænseflade</title> +<para +>&umbrello;s hovedvindue er opdelt i tre områder som hjælper til at få et overblik over hele systemet og at komme til de forskellige diagrammer hurtigt, under arbejdet med modellen. </para> +<para +>Disse områder kaldes:</para> +<itemizedlist> +<listitem +><para +>Trævisning</para +></listitem> +<listitem +><para +>Arbejdsvisning</para +></listitem> +<listitem +><para +>Dokumentationsvindue</para +></listitem> +</itemizedlist> + +<screenshot> +<screeninfo +>&umbrello;s brugergrænseflade</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="umbrello-ui.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>&umbrello;s brugergrænseflade</phrase> + </textobject> + <caption> + <para +>&umbrello;s brugergrænseflade </para> + </caption> + </mediaobject> +</screenshot> + +<sect2 id="tree-view"> +<title +>Trævisning</title> +<para +>Trævisningen er sædvanligvis placeret længst op til venstre i vinduet, og viser alle diagrammer, klasser, aktører og brugstilfælde som opbygger modellen. Trævisningen lader dig få et hurtig overblik over elementerne som modellen består af. Trævisningen giver også en hurtig måde at skifte mellem de forskellige diagrammer i modellen, og at indsætte elementer fra modellen i det nuværende diagram. </para> +<para +>Hvis du arbejder med en model som har mere end et fåtal klasser og diagrammer, kan trævisningen hjælpe dig med at klare det hele ved at organisere modellen i mapper. Du kan oprette mapper ved at vælge passende punkter i den sammenhængsafhængige menu (højreklik på en af mapperne i trævisningen) og du kan organisere elementer ved at flytte dem til passende mapper (træk og slip). </para> +</sect2> + +<sect2 id="documentation-window"> +<title +>Dokumentationsvindue</title> +<para +>Dokumentationsvinduet er det lille vindue placeret længst nede til venstre i &umbrello;, som giver en hurtig forhåndsvisning af dokumentationen for objektet som for øjeblikket er markeret. Dokumentationsvinduet er ganske lille, eftersom det er beregnet til at give et hurtigt uddrag fra elementets dokumentation, mens det optager så lidt plads som muligt på skærmen. Hvis du behøver at kigge på dokumentationen i mere detalje, kan du altid åbne punktets egenskaber. </para> +</sect2> +<sect2 id="work-area"> +<title +>Arbejdsvisning</title> +<para +>Arbejdsvisningen er hovedvinduet i &umbrello;, og er stedet hvor alle virkelige handlinger sker. Man bruger arbejdsvisningen til at redigere og vise diagrammer i en model. Arbejdsvisningen viser diagrammet som for øjeblikket er aktivt. For øjeblikket kan kun et diagram af gangen vises i arbejdsvisningen. </para> +</sect2> +</sect1 +> <!--user-interface--> +<sect1 id="load-save"> +<title +>Opret, indlæs og gem modeller</title> +<para +>Det første du behøver at gøre, for at begynde at gøre noget nyttigt med &umbrello;, er at oprette en model at arbejde med. Når du starter &umbrello; indlæser den altid den senest brugte model, eller laver en ny, tom, model (afhængig af hvordan du indstiller i indstillingsdialogen). Det gør det muligt at begynde at arbejde direkte. </para> +<sect2 id="new-model"> +<title +>Ny model</title> +<para +>Hvis du på noget tidspunkt behøver at oprette en ny mode, kan du gøre det ved at vælge punktet <guimenuitem +>Ny</guimenuitem +> i menuen <guimenu +>Fil</guimenu +>, eller ved at klikke på ikonen <guiicon +>Ny</guiicon +> i programværktøjslinjen. Hvis du for øjeblikket arbejder med en model som er ændret, spørger &umbrello; om dine ændringer skal gemmes, inden den nye modellen indlæses. </para> +</sect2> +<sect2 id="save-model"> +<title +>Gem model</title> +<para +>Du kan gemme modellen når som helst, ved at vælge punktet <guimenuitem +>Gem</guimenuitem +> i menuen <guimenu +>Fil</guimenu +>, eller ved at klikke på knappen <guiicon +>Gem</guiicon +> i programværktøjslinjen. Hvis du behøver at gemme modellen under et andet navn, kan du bruge punktet <guimenuitem +>Gem som</guimenuitem +> i menuen <guimenu +>Fil</guimenu +>. </para> +<para +>Af bekvemmelighedsgrunde, tilbyder &umbrello; også muligheden for at gemme arbejdet automatisk efter en vis tidsperiode. Du kan indstille om du vil aktivere denne funktion, samt tidsintervallet, i &umbrello;s <guimenu +>Opsætning</guimenu +>.</para> +</sect2> +<sect2 id="load-model"> +<title +>Indlæs model</title> +<para +>Du kan vælge punktet <guimenuitem +>Åbn</guimenuitem +> i menuen <guimenu +>Fil</guimenu +> for at indlæse en eksisterende model, eller klikke på ikonen <guiicon +>Åbn</guiicon +> i programværktøjslinjen. De senest brugte modeller er også tilgængelige i undermenuen <guimenuitem +>Åbn nyeste</guimenuitem +> i menuen <guimenu +>Fil</guimenu +>, for at gøre adgangen til de oftest bruge modeller hurtigere. </para> +<para +>&umbrello; kan kun arbejde med en model af gangen, så hvis du beder programmet indlæse en model for dig, og den nuværende model er ændret siden du sidst gemte den, spørger &umbrello; om ændringerne skal gemmes for at forhindre at arbejdet går tabt. Du kan starte to eller flere udgaver af &umbrello; på et vilkårligt tidspunkt, du kan også kopiere og indsætte mellem udgaver. </para> +</sect2> +</sect1 +> <!--load-save--> +<sect1 id="edit-model"> +<title +>Redigér modeller</title> +<para +>I &umbrello; findes der to grundlæggende måder at redigere elementer i modellen. <itemizedlist> +<listitem +><para +>Redigér modelelement direkte via trævisningen</para +></listitem> +<listitem +><para +>Redigér modelelement direkte via et diagram</para +></listitem> +</itemizedlist> +</para> +<para +>Ved brug af den sammenhængsafhængige menu i trævisningen, kan du tilføje, fjerne, og ændre næsten alle elementer i modellen. <mousebutton +>Højre</mousebutton +>klik på mapperne i trævisningen for at vise valgmulighederne for at oprette forskellige slags diagrammer, samt - afhængig af om mappen er en <emphasis +>Brugstilfældevisning</emphasis +> eller en <emphasis +>Logisk visning</emphasis +> - aktører, brugstilfælde, klasser osv. </para> +<para +>Når du har tilføjet elementer til modellen, kan du også redigere dem ved brug af deres egenskabsdialoger, som du finder ved at vælge punktet <emphasis +>Egenskaber</emphasis +> i den sammenhængsafhængige menu som vises ved et <emphasis +>højre</emphasis +>klik på elementerne i trævisningen. </para> +<para +>Du kan også redigere modellen ved at oprette eller ændre elementer via diagrammer. Mere information om hvordan dette gøres, får du i følgende afsnit. </para> +</sect1> +<sect1 id="add-remove-diagrams"> +<title +>Tilføj og fjern diagram</title> +<para +>&UML;-modellen består af et sæt &UML;-elementer og sammenhænge mellem dem. Man kan dog ikke se modellen direkte, men man bruger <emphasis +>Diagrammer</emphasis +> til at kigge på den. </para> +<sect2 id="create-diagram"> +<title +>Opret diagrammer</title> +<para +>For at oprette et nyt diagram i modellen, vælges helt enkelt diagramtypen du behøver i undermenuen <guimenuitem +>Ny</guimenuitem +> fra menuen <guimenu +>Diagram</guimenu +>, og den gives et navn. Diagrammet oprettes, og gøres aktivt, og du ser det med det samme i trævisningen. </para> +<para +>Husk at &umbrello; i stor udstrækning bruger sammenhængsafhængige menuer: du kan også højreklikke på en mappe i trævisningen, og vælge en passende diagramtype i undermenuen <guisubmenu +>Ny</guisubmenu +> fra den sammenhængsafhængige menu. Bemærk at du kun kan oprette brugstilfældediagrammer i brugstilfældemapper, og at de øvrige typer diagrammer kun kan oprettes i mapper for logiske visninger. </para> +</sect2> +<sect2 id="remove-diagram"> +<title +>Fjern diagram</title> +<para +>Skulle du behøve at fjerne et diagram fra modellen, kan du gøre det ved at gøre det aktivt og vælge <guimenuitem +>Fjern</guimenuitem +> i menuen <guimenu +>Diagram</guimenu +>. Du kan også opnå dette ved at vælge <guimenuitem +>Slet</guimenuitem +> i den sammenhængsafhængige menu for diagrammet i trævisningen. </para> +<para +>Eftersom at fjerne et diagram er noget alvorligt, som kunne forårsage at arbejde går tabt, hvis det gøres ved en fejl, beder &umbrello; om at du bekræfter en sletningshandling inden diagrammet virkelig fjernes. Så snart et diagram er taget bort, og filen er gemt, er der ingen måde at fortryde handlingen. </para> +</sect2> +<sect2 id="rename-diagram"> +<title +>Omdøbning af diagrammer</title> +<para +>Hvis du vil skifte navn på et eksisterende diagram, kan du let gøre det ved at vælge punktet Omdøb i den sammenhængsafhængige menu i trævisningen. </para> +<para +>En anden måde at omdøbe et diagram er via dets egenskabsdialog, som du opnår ved at vælge Egenskaber fra den sammenhængsafhængige menu, eller ved at dobbeltklikke på det i trævisningen. </para> +</sect2> +</sect1> +<sect1 id="edit-diagram"> +<title +>Redigér diagram</title> +<para +>Mens du arbejder med et diagram, forsøger &umbrello; at lede dig rette ved at bruge nogle enkle regler om hvilke elementer er gyldige i forskellige slags diagrammer, samt hvilke forhold som kan eksistere mellem dem. Hvis du er ekspert på &UML;, kommer du formodentlig ikke til endog bemærke dette, men det er til hjælp for nybegyndere for at oprette diagram som følger standarden. </para> +<para +>Så snart du har oprettet diagrammerne er det tiden at begynde redigere dem. Bemærk her (den for nybegyndere subtile) forskel mellem at redigere et diagram, og at redigere <emphasis +>modellen</emphasis +>. Som du allerede ved til, er diagrammer <emphasis +>visninger</emphasis +> af modellen. Hvis du for eksempel laver en klasse ved at redigere et klassediagram, redigerer du i virkeligheden både diagrammet og modellen. Hvis du ændrer farve eller andre visningspunkter for en klasse i klassediagrammet, redigerer du kun diagrammet, men ingenting ændres i modellen. </para> +<sect2 id="insert-elements"> +<title +>Indsæt elementer</title> +<para +>En af de første ting du gør når du redigerer et nyt diagram, er at indsætte elementer i det (klasser, aktører, brugstilfælde, osv.). Der er to grundlæggende måder at gøre dette:</para> +<itemizedlist> +<listitem +><para +>Træk eksisterede elementer til modellen fra trævisningen</para +></listitem> +<listitem +><para +>Opret nye elementer i modellen, og tilføj dem til diagrammet samtidigt, ved at bruge et af redigeringsværktøjerne i arbejdsværktøjslinjen.</para +></listitem> +</itemizedlist> +<para +>For at indsætte elementer som allerede findes i modellen, trækkes de blot fra trævisningen og slippes der hvor du ønsker at de skal være i diagrammet. Du kan altid flytte element rundt i diagrammet med markeringsværktøjet. </para> +<para +>Den anden måde at tilføje elementer til diagrammet er at bruge arbejdsværktøjslinjens redigeringsværktøj (observér at dette også tilføjer elementerne til modellen). </para> +<para +>Arbejdsværktøjslinjen var normalt placeret længst til højre for programvinduet, men &umbrello; 1.2 har flyttet den længst op i vinduet. Du kan dokke den på den anden side, eller lade den flyde omkring hvis du foretrækker det. Værktøjerne som er tilgængelige på denne værktøjslinjen (knapperne du ser på den) ændres afhængig af hvilket diagram du arbejder med for øjeblikket. Knappen for værktøjet som er valgt lige nu er aktiveret i værktøjslinjen. Du kan skifte til <keycap +>markeringsværktøjet</keycap +> ved at trykke på <keycap +>Esc</keycap +>-tasten. </para> +<para +>Når du har valgt et redigeringsværktøj i arbejdsværktøjslinjen (for eksempel værktøjet til at indsætte klasser), ændres musemarkøren til et kryds, og du kan indsætte elementer i modellen ved at enkeltklikke i diagrammet. Bemærk at element i &UML; skal have et <emphasis +>entydigt navn</emphasis +>. Så hvis du har en klasse i et diagram som hedder <quote +>KlassA</quote +>, og senere bruger værktøjet til at indsætte en klasse i et andet diagram, kan du ikke også give den nye klassen navnet <quote +>KlassA</quote +>. Hvis det er meningen at de to skal være forskellige elementer, skal du give dem entydige navne. Hvis du forsøger at tilføje <emphasis +>samme</emphasis +> element til diagrammet, er værktøjet for at indsætte klasser ikke det rette værktøj til dette. Du skal i stedet trække og slippe klassen fra trævisningen. </para> +</sect2> +<sect2 id="delete-elements"> +<title +>Slet elementer</title> +<para +>Du kan slette et hvilket som helst element, ved at vælge punktet <guimenuitem +>Slet</guimenuitem +> i dets sammenhængsafhængige menu. </para> +<para +>Igen det er <emphasis +>stor</emphasis +> forskel mellem at fjerne et objekt fra diagrammet, og at fjerne et objekt fra modellen. Hvis du fjerner et objekt indefra et diagram, tager du det kun væk fra dette diagram: elementet er stadigvæk en del af modellen og hvis der er andre diagrammer som bruger samme element, vil de ikke lide nogen ændring. På den anden side, hvis du fjerner elementet i trævisningen, tager du i virkeligheden elementet væk fra <emphasis +>modellen</emphasis +>. Eftersom elementet ikke længere eksisterer i modellen, tages det også automatisk væk fra alle diagrammer det vises i. </para> +</sect2> +<sect2 id="edit-elements"> +<title +>Redigér elementer</title> +<para +>Du kan redigere de fleste &UML;-elementer i model og diagrammer ved at åbne dets egenskabsdialog og vælge passende punkter. For at redigere egenskaberne for et objekt, vælges <guimenuitem +>Egenskaber</guimenuitem +> i dets sammenhængsafhængige menu (højreklik). Hvert element har en dialog som består af flere sider hvor du kan indstille valgmulighederne som har med dette element at gøre. For visse elementer, såsom aktører, kan du kun angive et fåtal muligheder, såsom objektnavn og dokumentation, mens for andre elementer, såsom klasser, kan du redigere dets attribut og operationer, vælge hvad du vil vise i diagrammet (hel operationsunderskriften eller kun operationsnavn, osv.) og til og med farverne du vil bruge for linjer og udfyldningen af klassens repræsentation i et diagram. </para> + +<para +>For de fleste &UML;-elementer kan du også åbne egenskabsdialogen ved at dobbeltklikke på det, hvis du bruger markeringsværktøjet (pilen). En undtagelse fra dette er associationer, hvor et dobbeltklik laver et ankerpunkt. For associationer skal du bruge den sammenhængsafhængige menu som vises med højreklik, til at få egenskabsdialogen frem. </para> + +<para +>Bemærk at du også kan vælge punktet egenskaber i den sammenhængsafhængige menu for elementer i trævisningen. Dette lader dig også redigere egenskaber for diagrammer, såsom at indstille om gitteret skal vises eller ej. </para> +</sect2> +<sect2 id="edit-classes"> +<title +>Redigér klasser</title> +<para +>Selv om redigering af egenskaber for alle objekter allerede er afdækket i foregående afsnit, fortjener klasser et særligt afsnit, eftersom de er noget mere komplicerede, og har flere valgmuligheder end de fleste andre &UML;-elementer. </para> +<para +>I klassens egenskabsdialog kan du indstille alting, fra farven den bruger til operationerne og attributten den har. </para> +<sect3 id="class-general-settings"> +<title +>Almene klasseindstillinger</title> +<para +>Siden med generelle klasseindstillinger i egenskabsdialogen er selvforklarende. Her kan du ændre klassens navn, synlighed, dokumentation, osv. Denne side er altid tilgængelig. </para> +</sect3> +<sect3 id="class-attributes-settings"> +<title +>Indstillinger af klasseattribut</title> +<para +>På siden for indstillinger af attribut, kan du tilføje, redigere eller fjerne attributter (variabler) for klassen. Du kan flytte attributter op og ned i listen ved at trykke på piletasterne langs kanten. Denne side er altid tilgængelig. </para> +</sect3> +<sect3 id="class-operations-settings"> +<title +>Indstillinger af klasseoperationer</title> +<para +>På lignende måde som for indstillinger af klasseattribut, kan du tilføje, redigere eller fjerne operationer for klassen på siden for indstillinger af klasseoperationer. Når du tilføjer eller redigerer en klasseoperation, indskriver du de grundlæggende data i dialogen <emphasis +>Operationsegenskaber</emphasis +>. Hvis du vil tilføje parametre til operationerne, skal du klikke på knappen <guibutton +>Ny parameter</guibutton +>, som viser dialogen <emphasis +>Parameteregenskaber</emphasis +>. Denne side er altid tilgængelig. </para> +</sect3> +<sect3 id="class-template-settings"> +<title +>Klasseskabelonsindstillinger</title> +<para +>Denne side lader dig tilføje klasseskabeloner som er uspecificerede klasser eller datatyper. I Java 1.5 kommer de til at hedde Generics. </para> +</sect3> +<sect3 id="class-associations-page"> +<title +>Siden for klasseassociationer</title> +<para +>Siden <guilabel +>Klasseassociationer</guilabel +> viser alle klassens associationer i det nuværende diagram. Et dobbeltklik på en association viser dens egenskaber, og afhængig af type af association, kan du ændre visse parametre her, såsom at indstille mangfoldighed og rollenavn. Hvis associationerne ikke tillader at sådanne punkter ændres, er dialogen for associationsegenskaber kun læsbar, og du kan kun ændre dokumentationen som hører sammen med associationen. </para> +<para +>Denne side er kun tilgængelig hvis du åbner klasseegenskaberne inde i et diagram. Hvis du vælger klasseegenskaber fra den sammenhængsafhængige menu i trævisningen, er denne side ikke tilgængelig. </para> +</sect3> +<sect3 id="class-display-page"> +<title +>Siden for klassevisning</title> +<para +>På siden <guilabel +>Visningstilvalg</guilabel +>, kan du indstille hvad der skal vises i diagrammet. En klasse kan vises som kun en rektangel med klassenavnet i (nyttigt hvis du har mange klasser i diagrammet, eller for øjeblikket ikke er interesseret i detaljerne for hver klasse), eller så fuldstændige at pakke, stereotyper, attributter og operationer vises med fuldstændig underskrift og synlighed. </para> +<para +>Afhængig af mængden af information som du vil se, kan du vælge tilsvarende tilvalg på denne side. Ændringarne du laver her gælder kun <emphasis +>visningsvalgmulighederne</emphasis +> for diagrammet. Det betyder at <quote +>skjulen</quote +> af klassens operationer kun gør at de ikke vises i diagrammet, men operationerne er fortsat der som en del af modellen. Dette er kun tilgængeligt hvis du vælger klasseegenskaberne inde i et diagram. Hvis du åbner klasseegenskaberne fra trævisningen, mangler denne side, eftersom sådanne visningsegenskaber ikke giver mening i dette tilfælde.</para> +</sect3> +<sect3 id="class-color-page"> +<title +>Siden for klassefarver</title> +<para +>På siden <guilabel +>Komponentfarve</guilabel +> kan du indstille farverne som du vil have for linjer og udfyldning af kontrollen. Dette giver naturligvis kun mening for klasser som vises i diagrammer, og mangler hvis du åbner klassens egenskabsdialog i trævisningen. </para> +</sect3> +</sect2> + +<sect2 id="associations"> +<title +>Associationer</title> +<para +>Associationer relaterer to &UML;-objekter til hinanden. Normalt defineres associationer mellem to klasser, men visse typer af associationer kan også findes mellem brugstilfælde og aktører. </para> +<para +>For at oprette en association, vælges passende værktøj i arbejdsværktøjslinjen (generel association, generalisering, aggregering, osv.), og enkeltklik på det første element som indgår i associationen. Enkeltklik derefter på det andet element som indgår. Bemærk at dette er to klik, et på hvert af elementerne som indgår i associationen. Det er <emphasis +>ikke</emphasis +> et træk fra et objekt til et andet. </para> +<para +>Hvis du forsøger bruge associationer på en måde som ikke tillades af &UML;-specifikationen, nægter Umbrello at oprette associationen og du får en fejlmeddelelse. Dette vil indtræffe, hvis for eksempel en generalisering findes fra klasse A til klasse B, og du derefter forsøger at oprette en ny generalisering fra klasse B til klasse A. </para> +<para +>Et <mousebutton +>højre</mousebutton +>klik på en association viser en sammenhængsafhængig menu med handlinger som du kan anvende på den. Hvis du behøver at slette en association, vælges <guimenuitem +>Fjern</guimenuitem +> i den sammenhængsafhængige menu. Du kan også vælge <guimenuitem +>Egenskaber</guimenuitem +>, og afhængig af associationens type, redigere attributter såsom roller og mangfoldighed. </para> +<sect3 id="anchor-points"> +<title +>Ankerpunkter</title> +<para +>Associationer tegnes, som standard, som en lige linje der forbinder de to objekter i diagrammet. </para> +<para +>Du kan tilføje ankerpunkter til at bøje en association ved at <mousebutton +>dobbelt</mousebutton +>klikke et sted langs associationslinjen. Dette indsætter et ankerpunkt (som vises som et blåt punkt hvor associationslinjen er markeret), som du kan flytte omkring for at give associationen sin form. </para> +<para +>Hvis du behøver fjerne en ankerpunkt, <mousebutton +>dobbelt</mousebutton +>klik på den igen for at fjerne den. </para> +<para +>Bemærk at den eneste måde at redigere en associationsegenskab er via den sammenhængsafhængige menu. Hvis du forsøger at <mousebutton +>dobbelt</mousebutton +>klikke på den som med andre &UML;-objekter, indsættes blot et ankerpunkt. </para> +</sect3> +</sect2> + +<sect2 id="notes"> +<title +>Noter, tekst og felter</title> +<para +>Noter, tekstlinjer og felter er elementer som kan findes i alle slags diagrammer, og har ingen virkelig semantisk værdi, men er meget hjælpsomme for at tilføje ekstra kommentarer eller forklaringer, som kan gøre diagrammet lettere at forstå. </para> +<para +>For at tilføje en note eller tekstlinje, vælges tilsvarende værktøj i arbejdsværktøjslinjen, og så enkeltklikkes på diagrammet hvor du vil placere kommentaren. Du kan redigere teksten ved at åbne elementet via dets sammenhængsafhængige menu, eller for noter, også ved at <mousebutton +>dobbelt</mousebutton +>klikke på dem. </para> +<sect3 id="anchors"> +<title +>Ankre</title> +<para +>Ankre bruges for til at linke noter og et andet &UML;-element sammen. Normalt bruger du for eksempel en note til at forklare eller give en kommentar om en klasse eller en vis association, og i så tilfælde kan du bruge ankeret til at gøre det klart at noten <quote +>hører til</quote +> netop dette element. </para> +<para +>Anvend ankerværktøjet i arbejdsværktøjslinjen, for at tilføje et anker mellem en note og et andet &UML;-element. Først skal du klikke på noten, og derefter klikke på &UML;-elementet som du vil at noten skal linkes til. </para> +</sect3> +</sect2> +</sect1> +</chapter> +<!--edit-diagram--> |