diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-12-03 11:05:10 -0600 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-12-03 11:05:10 -0600 |
commit | f7e7a923aca8be643f9ae6f7252f9fb27b3d2c3b (patch) | |
tree | 1f78ef53b206c6b4e4efc88c4849aa9f686a094d /tde-i18n-pt/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-pt/docs/tdesdk/umbrello')
-rw-r--r-- | tde-i18n-pt/docs/tdesdk/umbrello/Makefile.am | 4 | ||||
-rw-r--r-- | tde-i18n-pt/docs/tdesdk/umbrello/Makefile.in | 635 | ||||
-rw-r--r-- | tde-i18n-pt/docs/tdesdk/umbrello/authors.docbook | 46 | ||||
-rw-r--r-- | tde-i18n-pt/docs/tdesdk/umbrello/code_import_and_generation.docbook | 163 | ||||
-rw-r--r-- | tde-i18n-pt/docs/tdesdk/umbrello/credits.docbook | 11 | ||||
-rw-r--r-- | tde-i18n-pt/docs/tdesdk/umbrello/index.cache.bz2 | bin | 0 -> 19302 bytes | |||
-rw-r--r-- | tde-i18n-pt/docs/tdesdk/umbrello/index.docbook | 85 | ||||
-rw-r--r-- | tde-i18n-pt/docs/tdesdk/umbrello/introduction.docbook | 57 | ||||
-rw-r--r-- | tde-i18n-pt/docs/tdesdk/umbrello/other_features.docbook | 76 | ||||
-rw-r--r-- | tde-i18n-pt/docs/tdesdk/umbrello/uml_basics.docbook | 782 | ||||
-rw-r--r-- | tde-i18n-pt/docs/tdesdk/umbrello/working_with_umbrello.docbook | 405 |
11 files changed, 2264 insertions, 0 deletions
diff --git a/tde-i18n-pt/docs/tdesdk/umbrello/Makefile.am b/tde-i18n-pt/docs/tdesdk/umbrello/Makefile.am new file mode 100644 index 00000000000..6869837a64a --- /dev/null +++ b/tde-i18n-pt/docs/tdesdk/umbrello/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = pt +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-pt/docs/tdesdk/umbrello/Makefile.in b/tde-i18n-pt/docs/tdesdk/umbrello/Makefile.in new file mode 100644 index 00000000000..1feb0bd0ed9 --- /dev/null +++ b/tde-i18n-pt/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 = pt +#>- 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-pt/docs/tdesdk/umbrello/authors.docbook b/tde-i18n-pt/docs/tdesdk/umbrello/authors.docbook new file mode 100644 index 00000000000..76989b21a60 --- /dev/null +++ b/tde-i18n-pt/docs/tdesdk/umbrello/authors.docbook @@ -0,0 +1,46 @@ +<chapter id="authors"> +<title +>Autores e História</title> +<para +>Este projecto foi iniciado pelo Paul Hensgen com dos seus projectos universitários. O nome original da aplicação era <application +>UML Modeller</application +> (Modelador UML). O Paul fez todo o desenvolvimento até ao fim de 2001 quando o programa chegou à versão 1.0. </para> +<para +>A versão 1.0 já oferecia bastantes funcionalidades, mas depois de o projecto ter sido revisto na Universidade do Paul, outros programadores puderam-se juntar e começaram a dar contribuições valiosas para o <application +>UML Modeller</application +>, como a mudança de um formato de ficheiro binário para um ficheiro &XML;, o suporte para mais tipos de diagramas &UML;, a Geração de Código e a Importação de Código, só para referir alguns. </para> +<para +>O Paul teve de ser retirar da equipa de desenvolvimento no Verão de 2002 mas, como 'Software' Livre e Aberto que é, o programa continua a melhorar e a evoluir e é mantido por um grupo de programadores de diferentes partes do mundo. Da mesma forma, em Setembro de 2002, o projecto mudou o seu nome de <application +>&UML; Modeller</application +>, para &umbrello;. Existem várias razões para a mudança de nomes, sendo a mais importante que apenas <quote +>uml</quote +> — tal como era conhecido normalmente — era um nome demasiado genérico e causava alguns problemas com algumas distribuições. A outra razão importante era que o <application +>Umbrello</application +> era um nome muito mais giro. </para> +<para +>O desenvolvimento do &umbrello;, assim como as discussões sobre a estratégia para as versões futuras, é aberto e toma lugar na Internet. Se quiser contribuir para o projecto, por favor não hesite em contactar os programadores. Existem muitas formas pelas quais poderá ajudar o &umbrello;: </para> +<itemizedlist> +<listitem +><para +>Comunicar erros ou sugerir melhoramentos</para +></listitem> +<listitem +><para +>Corrigir erros ou adicionar funcionalidades</para +></listitem> +<listitem +><para +>Escrever boa documentação ou traduzi-la para outras línguas</para +></listitem> +<listitem +><para +>E, claro... fazendo código connosco!</para +></listitem> +</itemizedlist> +<para +>Como vê, existem muitas formas pelas quais você poderá contribuir. Todas elas são muito importantes e toda a gente é bem-vinda para participar. </para> +<para +>Os programadores do &umbrello; poderão ser contactados através de <email +>uml-devel@lists.sourceforge.net</email +>. </para> +</chapter> diff --git a/tde-i18n-pt/docs/tdesdk/umbrello/code_import_and_generation.docbook b/tde-i18n-pt/docs/tdesdk/umbrello/code_import_and_generation.docbook new file mode 100644 index 00000000000..e236bb04589 --- /dev/null +++ b/tde-i18n-pt/docs/tdesdk/umbrello/code_import_and_generation.docbook @@ -0,0 +1,163 @@ +<chapter id="code-import-generation"> +<title +>Importação e Geração de Código</title> +<para +>O &umbrello; é uma ferramenta de modelação de &UML; e, como tal, o seu objectivo principal é ajudá-lo na <emphasis +>análise e desenho</emphasis +> dos seus sistemas. Contudo, para fazer a transição entre o seu desenho e a sua <emphasis +>implementação</emphasis +>, o &umbrello; permite-lhe gerar código-fonte em várias linguagens de programação diferentes para o preparar a si. Também, se você quiser começar a usar o &UML; num projecto já iniciado de C++, o &umbrello; pode ajudá-lo a criar um modelo do seu sistema a partir do código-fonte, analisando-o e importando as classes que forem encontradas nele. </para> +<sect1 id="code-generation"> +<title +>Geração de Código</title> +<para +>O &umbrello; pode gerar código para várias linguagens de programação, baseando-se no seu Modelo &UML; para o ajudar a iniciar a implementação do seu projecto. O código gerado consiste nas declarações das classes, com os seus métodos e atributos, de modo a que você possa <quote +>preencher as lacunas</quote +>, fornecendo a funcionalidade das operações das suas classes. </para> +<para +>O &umbrello; 1.2 vem com o suporte de geração de código para ActionScript, Ada, C++, IDL de CORBA, &Java;, JavaScript, <acronym +>PHP</acronym +>, Perl, Python, SQL e XMLSchema. </para> +<sect2 id="generate-code"> +<title +>Gerar Código</title> +<para +>Para poder gerar código com o &umbrello;, você precisa primeiro de criar ou carregar um modelo que contenha pelo menos uma classe. Quando estiver pronto para começar a escrever algum código, seleccione a opção <guimenuitem +>Assistente de Geração de Código</guimenuitem +> do menu <guimenuitem +>Código</guimenuitem +> que o irá guiar no processo de geração de código. </para> +<para +>O primeiro passo é seleccionar as classes para as quais deseja gerar código-fonte. Por omissão, todas as classes do seu modelo estão seleccionadas e remover as que não quer gerar, passando-as para a lista do lado esquerdo. </para> +<para +>O próximo passo do assistente permite-lhe modificar os parâmetros que o Gerador de Código usa ao criar o seu código. Estão disponíveis as seguintes opções: </para> +<para> +<screenshot> +<screeninfo +>Opções de Geração de Código</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="generation-options.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Opções de Geração de Código no &umbrello;</phrase> + </textobject> + <caption> + <para +>Opções de Geração de Código no &umbrello; </para> + </caption> + </mediaobject> +</screenshot> +</para> +<sect3 id="generation-options"> +<title +>Opções de Geração</title> +<!-- LW; to rearrange --> + +<sect4> +<title +>Verbosidade do Código</title> +<para +>A opção <guilabel +>Escrever os comentários de documentação mesmo que vazios</guilabel +> diz ao Gerador de Código para criar os comentários do tipo /** texto */ , mesmo que os blocos de comentários estejam vazios. Se você tiver adicionado documentação às suas classes, métodos ou atributos do seu modelo, o Gerador de Código irá escrever esses comentários como documentação do <application +>Doxygen</application +>, independentemente do que tenha indicado aqui, mas se você seleccionar esta opção, o &umbrello; irá escrever os blocos de comentários para todas as classes, métodos e atributos, mesmo que não exista nenhuma documentação no modelo, onde neste caso deverá documentar as suas classes mais tarde no próprio código-fonte. </para> +<para +>A opção <guilabel +>Escrever os comentários para as secções mesmo que estas estejam vazias</guilabel +> faz com que o &umbrello; escreva os comentários no código-fonte para delimitar as várias secções de uma classe. Por exemplo, os <quote +>métodos públicos</quote +> ou os <quote +>Atributos</quote +> antes das secções correspondentes. Se você seleccionar esta opção, o &umbrello; irá escrever os comentários de todas as secções da classe, mesmo que a secção esteja vazia. Por exemplo, iria escrever um comentário a dizer <quote +>métodos protegidos</quote +>, mesmo que estes não existam na sua classe. </para> +</sect4> +<sect4> +<title +>Pastas</title> +<para +><guilabel +>Criar todos os ficheiros gerados na pasta</guilabel +>. Aqui você deverá indicar a pasta onde quer que o &umbrello; coloque o código gerado. </para> +<para +>A opção <guilabel +>Incluir os ficheiros da pasta</guilabel +> permite-lhe inserir um cabeçalho no início de cada ficheiro gerado. Os ficheiros de cabeçalho poderão conter alguma informação de direitos de cópia ou de licenças ou conterem variáveis que sejam avaliadas na altura da geração. Você poderá dar uma vista de olhos nos ficheiros de cabeçalho-modelos que vêm com o &umbrello; para ver como é que poderá usar essas variáveis para substituir o seu nome ou a data actual na altura da geração. </para> +</sect4> +<sect4> +<title +>Política de Sobreposição</title> +<!-- FIXME update for Umbrello 1.2's new C++ and Java code generators --> +<para +>Esta opção diz ao &umbrello; o que fazer se o ficheiro que ele desejar criar já existir na pasta de destino. O &umbrello; <emphasis +>não pode modificar os ficheiros de código existentes</emphasis +>, por isso você terá de optar entre sobrepor o ficheiro existe, ignorar a geração desse ficheiro em particular ou deixar que o &umbrello; escolha um nome de ficheiro diferente. Se você escolher a opção para usar um nome diferente, o &umbrello; irá adicionar um sufixo ao nome do ficheiro. </para> +</sect4> +<sect4> +<title +>Linguagem</title> +<para +>O &umbrello; irá gerar por omissão o código para a linguagem que você tenha indicado como Linguagem Activa mas, com o Assistente de Geração de Código, você tem a opção de alterar isto para outra linguagem. </para> +</sect4> +</sect3 +><!--generation-options--> +<sect3 id="generation-wizard-generation"> +<title +>Assistente de Geração - Geração</title> +<para +>O terceiro e último passo do assistente mostra o estado do processo de Geração de Código. Você só terá de carregar no botão Gerar para ficar com as classes criadas para si. </para> +<para +>Tenha em atenção que as Opções que seleccionar durante o assistente de Geração de Código só são válidas para a geração actual. Da próxima vez que você executar o Assistente, você terá de seleccionar de novo todas as opções (a sua pasta de cabeçalhos, a política de sobreposição, e assim por diante). Você poderá configurar os valores por omissão usados pelo &umbrello; na secção de <guilabel +>Geração de Código</guilabel +> da configuração do &umbrello;, a qual está disponível em <menuchoice +><guimenu +>Configuração</guimenu +><guimenuitem +>Configurar o &umbrello;...</guimenuitem +></menuchoice +> </para> +<para +>Se você tiver configurado as suas opções de Geração de Código para os valores correctos e quiser gerar já algum código sem ter de percorrer o assistente, você poderá seleccionar a opção <guimenuitem +>Gerar Todo o Código</guimenuitem +> do menu Código. Isto irá gerar o código para todas as classes do seu modelo com as opções actuais (incluindo a Pasta do Resultado e a Política de Sobreposição, por isso use isto com cuidado). </para> +</sect3> +</sect2 +><!--generate-code--> +</sect1 +> <!--code-generation--> +<sect1 id="code-import"> +<title +>Importação de Código</title> +<para +>O &umbrello; pode importar o código-fonte dos seus projectos existentes para o ajudar a criar o modelo dos seus sistemas. O &umbrello; 1.2 suporta apenas o código-fonte em C++, mas poderá disponibilizar outras linguagens em futuras versões. </para> +<para +>Para importar as classes para o seu modelo, seleccione o item <guimenuitem +>Importar as Classes...</guimenuitem +> do menu <guimenu +>Código</guimenu +>. Na janela de ficheiros, seleccione os que contêm as declarações de classes de C++ e carregue em OK. As classes serão importadas e você achá-las-á como fazendo parte do seu modelo na Árvore. Repare que o &umbrello; não irá criar nenhuma espécie de diagrama para mostrar as suas classes; elas serão apenas importadas para o seu modelo para que você as possa usar posteriormente em qualquer diagrama que desejar. </para> +<para> +<screenshot> +<screeninfo +>Importação de Código</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="code-import.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Menu para importar código-fonte no &umbrello;</phrase> + </textobject> + <caption> + <para +>Menu para importar código-fonte no &umbrello; </para> + </caption> + </mediaobject> +</screenshot> +</para> +</sect1> +</chapter +> <!--code-import-generation--> diff --git a/tde-i18n-pt/docs/tdesdk/umbrello/credits.docbook b/tde-i18n-pt/docs/tdesdk/umbrello/credits.docbook new file mode 100644 index 00000000000..122f5f0c03d --- /dev/null +++ b/tde-i18n-pt/docs/tdesdk/umbrello/credits.docbook @@ -0,0 +1,11 @@ +<chapter id="copyright"> +<title +>Copyright</title> + +<para +>Copyright 2001, Paul Hensgen</para> +<para +>Copyright 2002, 2003 Os Autores do &umbrello;. Veja <ulink url="http://uml.sf.net/developers.php" +>http://uml.sf.net/developers.php</ulink +> para mais informações</para> +&underFDL; &underGPL; </chapter> diff --git a/tde-i18n-pt/docs/tdesdk/umbrello/index.cache.bz2 b/tde-i18n-pt/docs/tdesdk/umbrello/index.cache.bz2 Binary files differnew file mode 100644 index 00000000000..66d02be976b --- /dev/null +++ b/tde-i18n-pt/docs/tdesdk/umbrello/index.cache.bz2 diff --git a/tde-i18n-pt/docs/tdesdk/umbrello/index.docbook b/tde-i18n-pt/docs/tdesdk/umbrello/index.docbook new file mode 100644 index 00000000000..dcd08897553 --- /dev/null +++ b/tde-i18n-pt/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 % Portuguese "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 +>Manual do &umbrello;</title> + +<authorgroup> +<corpauthor +>Os Autores do &umbrello;</corpauthor> +</authorgroup> + +<copyright> +<year +>2001</year> +<holder +>Paul Hensgen</holder> +</copyright> +<copyright> +<year +>2002, 2003</year> +<holder +>Os Autores do &umbrello;</holder> +</copyright> + + +<date +>2003-10-15</date> +<releaseinfo +>1.2</releaseinfo> + +<abstract> +<para +>O &umbrello; ajuda o processo de desenvolvimento de 'software' usando a norma da indústria que é a Unified Modelling Language (&UML;) para lhe permitir criar diagramas para desenhar e documentar os seus sistemas. </para> +</abstract> + +<keywordset> +<keyword +>KDE</keyword> +<keyword +>UML</keyword> +<keyword +>modelação</keyword> +<keyword +>diagramas</keyword> +<keyword +>desenvolvimento de software</keyword> +<keyword +>desenvolvimento</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-pt/docs/tdesdk/umbrello/introduction.docbook b/tde-i18n-pt/docs/tdesdk/umbrello/introduction.docbook new file mode 100644 index 00000000000..ca33c40ed26 --- /dev/null +++ b/tde-i18n-pt/docs/tdesdk/umbrello/introduction.docbook @@ -0,0 +1,57 @@ +<chapter id="introduction"> +<title +>Introdução</title> + +<para +>O &umbrello; é uma ferramenta de diagramas de &UML; que o pode suportar no processo de desenvolvimento de 'software'. Especialmente durante o processo de análise e de desenho deste processo, o &umbrello; ajudá-lo-á a obter um produto de alta qualidade. O &UML; pode também ser usado para documentar os seus desenhos de 'software' e a ajudá-lo a si e aos seus colegas programadores. </para> +<para +>Se tiver um bom modelo do 'software', será a melhor forma de comunicar com outros programadores a trabalhar no projecto e com os seus clientes. Um bom modelo é extremamente importante para os projecto de dimensão média e grande, mas também é bastante útil para os projectos pequenos. Mesmo que você esteja a trabalhar num projecto pequeno de uma pessoa só, irá beneficiar de um bom modelo porque terá uma boa ideia geral que o ajudará a codificar bem as coisas logo à primeira vez. </para> +<para +>O &UML; é a linguagem de diagramas usada para descrever esses modelos. Você poderá representar as suas ideias em &UML;, usando vários tipos de diagramas. O &umbrello; 1.2 suporta os seguintes tipos: </para> +<itemizedlist> +<listitem +><para +>Diagrama de Classes</para +></listitem> +<listitem +><para +>Diagrama de Sequência</para +></listitem> +<listitem +><para +>Diagrama de Colaboração</para +></listitem> +<listitem +><para +>Diagrama de Casos de Utilização</para +></listitem> +<listitem +><para +>Diagrama de Estados</para +></listitem> +<listitem +><para +>Diagrama de Actividades</para +></listitem> +<listitem +><para +>Diagrama de Componentes</para +></listitem> +<listitem +><para +>Diagrama de Entrada em Produção</para +></listitem> +</itemizedlist> +<para +>Para mais informações sobre o &UML; poderá consultar a página Web da <ulink url="http://www.omg.org" +><acronym +>OMG</acronym +>, http://www.omg.org</ulink +>, que foi quem criou a norma &UML;. </para> +<para +>Esperemos que você goste do &umbrello; e que o ajude a criar 'software' de alta qualidade. O &umbrello; é 'Software' Livre e está disponível sem custos alguns, a única coisa que lhe pedimos é para comunicar todos os erros, problemas ou sugestões para os programadores do &umbrello; em <email +>uml-devel@lists.sourceforge.net</email +> ou <ulink url="http://bugs.kde.org" +>http://bugs.kde.org</ulink +>. </para> +</chapter> diff --git a/tde-i18n-pt/docs/tdesdk/umbrello/other_features.docbook b/tde-i18n-pt/docs/tdesdk/umbrello/other_features.docbook new file mode 100644 index 00000000000..1db9399eb8c --- /dev/null +++ b/tde-i18n-pt/docs/tdesdk/umbrello/other_features.docbook @@ -0,0 +1,76 @@ +<chapter id="other-features"> +<title +>Outras Características</title> +<sect1 +> +<title +>Outras Características do &umbrello;</title> +<para +>Este capítulo irá explicar brevemente algumas outras funcionalidades que o &umbrello; lhe oferece.</para> +<sect2 id="copying-as-png"> +<title +>Copiar objectos como imagens PNG</title> +<para +>À parte de lhe oferecer as operações normais de cópia, corte e colagem que estaria à espera para copiar os objectos entre os diferentes diagramas, o &umbrello; pode copiar os objectos como imagens PNG de modo a que as possa inserir noutro tipo de documento. Você não precisa de fazer nada de especial para usar esta funcionalidade, bastando para tal seleccionar um objecto de um diagrama (uma Classe, um Actor, &etc;) e copiá-lo (<keycombo +>&Ctrl;<keycap +>C</keycap +></keycombo +> ou com o menu), e abra depois um documento do &kword; (ou outro programa onde possa colar imagens) e seleccionar <guimenuitem +>Colar</guimenuitem +>. Esta é uma grande funcionalidade para exportar partes do seu diagrama como imagens simples. </para> +</sect2> +<sect2 id="export-as-png"> +<title +>Exportar para uma Imagem</title> +<para +>Você também poderá exportar um diagrama completo como uma imagem. A única coisa que terá de fazer é seleccionar o diagrama que deseja exportar, e seleccionar a opção <guimenuitem +>Exportar como Imagem...</guimenuitem +> no menu <guimenu +>Diagrama</guimenu +>. </para> +</sect2> +<sect2 id="printing"> +<title +>Impressão</title> +<para +>O &umbrello; permite-lhe imprimir individualmente os diagramas. Carregue no botão <guiicon +>Imprimir</guiicon +> na barra da aplicação ou seleccionando a opção <guimenuitem +>Imprimir</guimenuitem +> do menu <guimenu +>Ficheiro</guimenu +>, para que lhe apareça uma janela normal de impressão do &kde;, na qual você poderá imprimir os seus diagramas. </para> +</sect2> +<sect2 id="logical-folders"> +<title +>Pastas Lógicas</title> +<para +>Para organizar melhor o seu modelo, especialmente no caso de projectos grandes, você poderá criar pastas lógicas na Árvore. Basta seleccionar a opção <menuchoice +><guimenu +>Novo</guimenu +><guimenuitem +>Pasta</guimenuitem +></menuchoice +> do menu de contexto das pastas por omissão da árvore para criar essas pastas. As pastas podem ser aninhadas e você poderá mover os objectos de uma para outra, se os arrastar do local de origem para os largar no destino. </para> + +<screenshot> +<screeninfo +>Organizar o seu Modelo em Pastas</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="folders.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Organizar um Modelo com Pastas Lógicas no &umbrello;</phrase> + </textobject> + <caption> + <para +>Organizar um Modelo com Pastas Lógicas no &umbrello; </para> + </caption> + </mediaobject> +</screenshot> + +</sect2> +</sect1> +</chapter> diff --git a/tde-i18n-pt/docs/tdesdk/umbrello/uml_basics.docbook b/tde-i18n-pt/docs/tdesdk/umbrello/uml_basics.docbook new file mode 100644 index 00000000000..497274d0cce --- /dev/null +++ b/tde-i18n-pt/docs/tdesdk/umbrello/uml_basics.docbook @@ -0,0 +1,782 @@ +<chapter id="uml-basics"> +<title +>Bases de &UML;</title> +<sect1 id="about-uml"> +<title +>Acerca do &UML;</title> +<para +>Este capítulo dar-lhe-á uma ideia geral sobre as bases do &UML;. Tenha em mente que isto não é um tutorial compreensivo sobre o &UML; mas sim uma breve introdução ao mesmo, como tal poderá ser lido como um tutorial de &UML;. Se você quiser aprender mais sobre a Unified Modelling Language ou, na generalidade, sobre a análise e desenho de 'software', baseie-se num dos vários livros disponíveis sobre o tópico. Existem também vários tutoriais na Internet que você poderá usar como ponto de partida. </para> + +<para +>A Unified Modelling Language (&UML;) é uma linguagem ou notação de diagramas para especificar, visualizar e documentar modelos de 'software' orientados por objectos. O &UML; não é um método de desenvolvimento, o que significa que não lhe diz o que fazer primeiro ou o que fazer a seguir ou como desenhar o seu sistema, mas ajuda-o a visualizar o seu desenho e a comunicar com os outros. O &UML; é controlado pelo Object Management Group (<acronym +>OMG</acronym +>) e é a norma da indústria para descrever graficamente o 'software'. </para> +<para +>O &UML; está desenhado para o desenho de 'software' orientado por objectos e tem uma utilização limitada para outros paradigmas de programação. </para> +<para +>O &UML; é composto por vários elementos do modelo que representam as diferentes partes de um sistema de 'software'. Os elementos de &UML; são usados para criar diagramas que representam uma dada parte ou um ponto de vista do sistema. São suportados os seguintes tipos de diagramas pelo &umbrello;: </para> + +<itemizedlist> + +<listitem +><para +>Os <emphasis +><link linkend="use-case-diagram" +>Diagramas de Casos de Uso</link +></emphasis +> mostram os actores (as pessoas ou os outros utilizadores do sistema), os casos de utilização (os cenários em que eles usam o sistema) e as suas relações</para +> </listitem> + +<listitem +><para +>Os <emphasis +><link linkend="class-diagram" +>Diagramas de Classes</link +></emphasis +> mostram as classes e as relações entre elas</para +> </listitem> + +<listitem +><para +>Os <emphasis +><link linkend="sequence-diagram" +>Diagramas de Sequência</link +></emphasis +> mostram os objectos e uma sequência de chamadas de métodos que eles fazem a outros objectos.</para +> </listitem> + +<listitem +><para +>Os <emphasis +><link linkend="collaboration-diagram" +>Diagramas de Colaboração</link +></emphasis +> mostram os objectos e as suas relações, colocando alguma ênfase nos objectos que participam na troca de mensagens</para> +</listitem> + +<listitem +><para +>Os <emphasis +><link linkend="state-diagram" +>Diagramas de Estados</link +></emphasis +> mostram os estados, as mudanças de estado e os eventos num objecto ou numa parte do sistema</para +> </listitem> + +<listitem +><para +>Os <emphasis +><link linkend="activity-diagram" +>Diagramas de Actividades</link +></emphasis +> mostram as actividades e as mudanças de uma actividade para outra com os eventos a ocorrerem numa parte do sistema</para +></listitem> + +<listitem +><para +>Os <emphasis +><link linkend="component-diagram" +>Diagramas de Componentes</link +></emphasis +> mostram os componentes de alto-nível de programação (como as KParts ou os Java Beans).</para +></listitem> + +<listitem +><para +>Os <emphasis +><link linkend="deployment-diagram" +>Diagramas de Entradas em Produção</link +></emphasis +> mostram as instâncias dos componentes e as suas relações.</para +></listitem +> + +</itemizedlist> + +</sect1 +> <!-- about-uml --> + +<sect1 id="uml-elements" +> +<title +>Elementos de &UML;</title> +<sect2 id="use-case-diagram"> +<title +>Diagrama de Casos de Utilização</title> +<para +>Os Diagramas de Casos de Uso descrevem as relações e as dependências entre um grupo de <emphasis +>Casos de Uso</emphasis +> e os Actores que participam no processo.</para> +<para +>É importante reparar que os Diagramas de Casos de Uso não são adequados para representar o desenho e também não podem descrever os detalhes internos de um sistema. Os Diagramas de Casos de Uso pretendem facilitar a comunicação com os utilizadores futuros do sistema e com o cliente, e são especialmente úteis para determinar as funcionalidades necessárias que o sistema deverá ter. Os Diagramas de Casos de Uso indicam <emphasis +>o que</emphasis +> o sistema deverá fazer mas não devem — e não podem — especificar <emphasis +>como</emphasis +> isto deverá ser feito.</para> +<para> +<screenshot> +<screeninfo +>Um exemplo de diagrama de Casos de Utilização.</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="use-case-diagram.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>&umbrello; a mostrar um diagrama de Casos de Utilização</phrase> + </textobject> + <caption> + <para +>&umbrello; a mostrar um diagrama de Casos de Utilização </para> + </caption> + </mediaobject> +</screenshot> +</para> +<sect3 id="use-case"> +<title +>Caso de Utilização</title> +<para +>Um <emphasis +>Caso de Utilização</emphasis +> descreve — do ponto de vista dos actores — um grupo de actividades de um sistema que produzem um resultado concreto e tangível.</para> +<para +>Os Casos de Uso são descrições das interacções típicas entre os utilizadores de um sistema e o sistema propriamente dito. Eles representam a interface externa do sistema e especificam um dado tipo de requisitos sobre o que o sistema tem de fazer (lembre-se, só 'o quê', não 'como'). </para> +<para +>Ao lidar com os Casos de Uso, é importante recordar algumas regras simples: <itemizedlist> + <listitem +><para +>Cada Caso de Utilização está relacionado com pelo menos um actor</para +></listitem> + <listitem +><para +>Cada Caso de Utilização tem um iniciador (ou seja, um actor)</para +></listitem> + <listitem +><para +>Cada Caso de Uso conduz a um resultado relevante (um resultados com <quote +>valor de negócio</quote +>)</para> + </listitem> + </itemizedlist> +</para> +<para +>Os Casos de Uso também poderão ter relações com outros Casos de Uso. Os três tipos de relações mais típicos entre Casos de Uso são:</para> +<itemizedlist> +<listitem +><para +><emphasis +><<include>> (incluir)</emphasis +> que indica que um Caso de Uso toma lugar <emphasis +>dentro</emphasis +> de outro Caso de Uso</para +></listitem> +<listitem +><para +><emphasis +><<extends>> (extende)</emphasis +> que indica que, em certas situações ou numa dada altura (chamada de ponto de extensão), um Caso de Uso será extendido por outro.</para +></listitem> +<listitem +><para +><emphasis +>Generalization</emphasis +> (generalização) indica que um Caso de Uso herda as características do <quote +>Super</quote +>-Caso de Uso e poderá implementar novamente algumas delas ou adicionar novas de uma forma semelhante à da herança de classes. </para> +</listitem> +</itemizedlist> +</sect3> +<sect3 id="actor"> +<title +>Actor</title> +<para +>Um actor é uma entidade externa (fora do sistema) que interage com o sistema ao participar (ou iniciar normalmente) um Caso de Uso. Os actores poderão ser pessoas reais (como, por exemplo, utilizadores do sistema), outros sistemas informáticos ou eventos exteriores. </para> +<para +>Os actores não representam as pessoas <emphasis +>físicas</emphasis +> ou os sistemas, mas sim o seu <emphasis +>papel</emphasis +>. Isto significa que, quando uma pessoa interage com o sistema de formas diferentes (assumindo papéis diferentes), ele será representado por vários actores. Por exemplo, uma pessoa que dá suporte ao cliente por telefone e que recebe encomendas do cliente para colocar no sistema seria representado por um actor <quote +>Técnico de Suporte</quote +> e por um actor <quote +>Representante de Vendas</quote +> </para> +</sect3> +<sect3 id="use-case-description"> +<title +>Descrição de Caso de Utilização</title> +<para +>As descrições dos Casos de Uso são narrativas textuais do Caso de Uso. Elas normalmente tomam a forma de uma nota ou de um documento que esteja associado de alguma forma ao Caso de Uso e explicam os processos ou actividades que tomam lugar no Caso de Uso. </para> +</sect3> +</sect2 +> <!-- use-case-diagram --> + +<sect2 id="class-diagram"> +<title +>Diagrama de Classes</title> +<para +>Os Diagramas de Classes mostram as diferentes classes que compõem um sistema e como elas se relacionam umas com as outras. Os Diagramas de Classes são apontados normalmente como <quote +>estáticos</quote +> porque mostram as classes, em conjunto com os seus métodos e atributos, assim como as relações estáticas entre elas, quais as classes que <quote +>conhecem</quote +> outras classes ou que <quote +>fazem parte</quote +> de outra classe, mas não mostram as chamadas de métodos entre elas. </para> +<para> +<screenshot> +<screeninfo +>Um exemplo de um Diagrama de Classes</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="class-diagram.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>O &umbrello; a mostrar um diagrama de Classes</phrase> + </textobject> + <caption> + <para +>O &umbrello; a mostrar um diagrama de Classes </para> + </caption> + </mediaobject> +</screenshot> +</para> +<sect3 id="class"> +<title +>Classe</title> +<para +>Uma classe define os atributos e os métodos para um conjunto de objectos. Todos os objectos desta classe (as instâncias da mesma) partilham o mesmo comportamento e têm o mesmo conjunto de atributos (cada objecto tem o seu próprio conjunto). O termo <quote +>Tipo</quote +> é usado em algumas ocasiões em vez de Classe, mas é importante mencionar que os dois conceitos não são iguais e que o Tipo é um termo mais genérico. </para> +<para +>No &UML;, as Classes são representadas por rectângulos com o nome da classe, e poderão também mostrar os atributos e as operações da classe em outros dois <quote +>compartimentos</quote +> dentro do rectângulo. </para> +<para> +<screenshot> +<screeninfo +>Uma Classe em &UML;</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="class.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Representação visual de uma Classe em &UML;</phrase> + </textobject> + <caption> + <para +>Representação visual de uma Classe em &UML; </para> + </caption> + </mediaobject> +</screenshot> +</para> +<sect4 id="attribute"> +<title +>Atributos</title> +<para +>No &UML;, os Atributos são mostrados como tendo o seu nome, pelo menos, e poderão mostrar também o seu tipo, o seu valor inicial e outras propriedades. Os atributos também poderão ser mostrados com a sua visibilidade: </para> +<itemizedlist> +<listitem +><para +><literal +>+</literal +> Representa atributos <emphasis +>públicos</emphasis +></para +></listitem> +<listitem +><para +><literal +>#</literal +> Representa atributos <emphasis +>protegidos</emphasis +></para +></listitem> +<listitem +><para +><literal +>-</literal +> Representa atributos <emphasis +>privados</emphasis +></para +></listitem> +</itemizedlist> +</sect4> +<sect4 id="operation"> +<title +>Operações</title> +<para +>As operações (métodos) são também mostradas contendo pelo menos o seu nome e poderão também mostrar os seus parâmetros e tipos de valor devolvidos. As operações podem, assim como os Atributos, mostrar a sua visibilidade: <itemizedlist> +<listitem +><para +><literal +>+</literal +> Corresponde a operações <emphasis +>públicas</emphasis +></para +></listitem> +<listitem +><para +><literal +>#</literal +> Corresponde a operações <emphasis +>protegidas</emphasis +></para +></listitem> +<listitem +><para +><literal +>-</literal +> Corresponde a operações <emphasis +>privadas</emphasis +></para +></listitem> +</itemizedlist> +</para> +</sect4> + +<sect4 id="templates"> +<title +>Modelos</title> +<para +>As Classes poderão ter modelos, um valor que é usado para uma classe ou tipo não especificado. O tipo de modelo é definido quando uma classe é iniciada (&ie; um objecto é criado). Os modelos existem como 'template' no C++ actual e serão introduzidos no Java 1.5 onde serão chamados de 'Generics'. </para> +</sect4> +</sect3> + +<sect3 id="class-associations"> +<title +>Associações da Classe</title> +<para +>Uma classe pode-se relacionar (ser associada) com outra qualquer de diferentes maneiras:</para> +<sect4 id="generalization"> +<title +>Generalização</title> +<para +>A herança é um dos conceitos fundamentais da programação orientada por objectos, nos quais uma classe <quote +>ganha</quote +> todos os atributos e operações da classe que herda, podendo sobrepor ou modificar algumas delas, assim como adicionar mais atributos ou operações próprias.</para> +<para +>No &UML;, uma associação por <emphasis +>Generalização</emphasis +> entre duas classes representa o conceito de herança entre uma classe de base e uma classe derivada. No &UML;, as Generalizações são representadas com uma linha que liga as duas classes, em que existe uma seta do lado da classe de base. <screenshot> +<screeninfo +>Generalização</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="generalization.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Representação visual de uma generalização em &UML;</phrase> + </textobject> + <caption> + <para +>Representação visual de uma generalização em &UML; </para> + </caption> + </mediaobject> +</screenshot> +</para> +</sect4> + +<sect4 id="uml-associations"> +<title +>Associações</title> +<para +>Uma associação representa uma relação entre classes e dá a semântica e a estrutura comum para vários tipos de <quote +>ligações</quote +> entre os objectos.</para> +<para +>As associações são o mecanismo que permite aos objectos comunicarem uns com os outros. Descreve a ligação entre as diferentes classes (a ligação entre os objectos em si é chamada de <emphasis +>ligação do objecto</emphasis +>. </para> +<para +>As associações podem ter um papel que indica o objectivo da associação e pode ser unidireccionais ou bidireccionais (indica se os dois objectos que participam na relação poderão enviar mensagens um para o outro, ou se só um deles é que conhece o outro). Cada extremo da associação também tem um valor de multiplicidade, que define quantos objectos desse lado da associação poder-se-ão relacionar com um objecto do outro lado. </para> +<para +>No &UML;, as associações são representadas como linhas que ligam as classes que participam na relação e poderá também mostrar o papel e a multiplicidade de cada um dos participantes. A multiplicidade é mostrada como um intervalo [mín..máx] de valores não-negativos ou com um asterisco (<literal +>*</literal +>) no lado do máximo que representa o infinito. <screenshot> +<screeninfo +>Associação &UML;</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="association.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Uma representação visual de uma associação em &UML;</phrase> + </textobject> + <caption> + <para +>Uma representação visual de uma associação em &UML; </para> + </caption> + </mediaobject> +</screenshot> +</para> +</sect4> + +<sect4 id="aggregation"> +<title +>Agregação</title> +<para +>As agregações são um tipo especial de associações nas quais as duas classes participantes não têm um estado igual, mas têm uma relação <quote +>do 'todo' para as partes</quote +>. Uma agregação diz como é que a classe que têm o papel do 'todo' é composta (ou tem) as outras classes, que têm o papel das partes. Para as agregações, a classe que actua como o 'todo' tem sempre uma multiplicidade de um. </para> +<para +>No &UML;, as agregações são representados por uma associação com um losango do lado do 'todo'. <screenshot> +<screeninfo +>Agregação</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="aggregation.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Uma representação visual de uma relação de agregação no &UML;</phrase> + </textobject> + <caption> + <para +>Uma representação visual de uma relação de agregação no &UML; </para> + </caption> + </mediaobject> +</screenshot> +</para> +</sect4> +<sect4 id="composition"> +<title +>Composição</title> +<para +>As composições são associações que representam agregações <emphasis +>muito fortes</emphasis +>. Isto significa que as composições formam também relações do 'todo' para as partes, mas a relação é tão forte que as partes não podem existir por si só. Elas só existem dentro do todo e se o todo for destruído, as partes desaparecem também.</para> +<para +>No &UML;, as Composições são representadas por um losango a cheio do lado do 'todo'. </para> +<para +><screenshot> +<screeninfo +>Composição</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="composition.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Uma representação visual de uma relação de Composição no &UML;</phrase> + </textobject> + </mediaobject> +</screenshot +></para> +</sect4> +</sect3 +> <!--class-associations--> + +<sect3 id="other-class-diagram-items"> +<title +>Outros Itens do Diagrama de Classes</title> +<para +>Os diagramas de classe poderão conter outros itens para além das classes.</para> +<sect4 id="interfaces"> +<title +>Interfaces</title> +<para +>As interfaces são classes abstractas, o que significa que as instâncias não podem ser criadas directamente a partir delas. Elas poderão contem operações, mas não podem conter atributos. As classes podem herdar das interfaces (através de uma relação de realização) e as instâncias poderão então ser compostas a partir dessas classes.</para> +<!-- FIXME screenshot --> +</sect4> +<sect4 id="datatype"> +<title +>Tipos de dados</title> +<para +>Os tipos de dados são primitivas que vêm tipicamente incorporadas numa linguagem de programação. Os exemplos comuns incluem os inteiros e os booleanos. Eles não poderão ter relações com as classes, mas as classes poderão ter relações com eles.</para> +<!-- FIXME screenshot --> +</sect4> +<sect4 id="enum"> +<title +>Enumerados</title> +<para +>Os enumerados são uma lista simples de valores. Um exemplo típico são os enumerados para os dias da semana. Como os tipos de dados, os enumerados não poderão ter relações com as classes, mas as classes poderão ter relações com eles.</para> +<!-- FIXME screenshot --> +</sect4> +<sect4 id="package"> +<title +>Pacotes</title> +<para +>Os pacotes representam um espaço de nomes numa linguagem de programa. Num diagrama, eles são usados para representar partes de um sistema que contém mais do que uma classe, podendo ser mesmo centenas de classes.</para> +<!-- FIXME screenshot --> +</sect4> +</sect3> + +</sect2 +> <!-- class diagram --> + +<sect2 id="sequence-diagram"> +<title +>Diagramas de Sequência</title> + +<para +>Os Diagramas de Sequência mostram a troca de mensagens (&ie; as chamadas aos métodos) entre os vários objectos numa situação específica delimitada no tempo. Os objectos são instâncias das classes. Os Diagramas de Sequência colocam uma ênfase especial na ordem e nas alturas em que as mensagens são enviadas para os objectos.</para> + +<para +>Nos Diagramas de Sequência, os objectos são representados através de linhas tracejadas verticais, com o nome do objecto no topo. O eixo do tempo também é vertical, e vai aumentando de cima para baixo, de modo a que as mensagens sejam enviadas de um objecto para outro, sob o formato de setas com o nome da operação e dos parâmetros. </para> + +<!-- FIXME update screenshot to show synchronous messages --> +<screenshot> +<screeninfo +>Diagrama de Sequência</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="sequence-diagram.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>O &umbrello; a mostrar um Diagrama de Sequência</phrase> + </textobject> + <caption> + <para +>O &umbrello; a mostrar um Diagrama de Sequência </para> + </caption> + </mediaobject> +</screenshot> + +<para +>As mensagens tanto podem ser síncronas, o que acontece normalmente nas chamadas de mensagens quando o controlo é passado para o objecto que é invocado até que esse método termine a sua execução, ou poderão também ser assíncronas, onde o controlo é passado de volta directamente para o objecto que invoca o método. As mensagens síncronas têm uma caixa vertical do lado do objecto que é chamado para mostrar o fluxo de controlo do programa.</para> +</sect2 +> <!-- sequence diagrams --> + +<sect2 id="collaboration-diagram"> +<title +>Diagramas de Colaboração</title> + +<para +>Os Diagramas de Colaboração mostram as interacções entre os objectos que participam numa dada situação. Esta é mais ou menos a mesma informação que é mostrada pelos Diagramas de Sequência, mas existe também uma ênfase posta sobre como as interacções ocorrem no tempo, enquanto que os Diagramas de Colaboração colocam as relações entre os seus objectos e a sua topologia em primeiro plano.</para> + +<para +>Nos Diagramas de Colaboração, as mensagens enviadas de um objecto para o outro são representadas por setas que mostram o nome da mensagem, os parâmetros e a sequência da mensagem. Os Diagramas de Colaboração são particularmente adequados a mostrar um fluxo específico de um programa ou situação, e são uns dos melhores tipos de diagramas para demonstrar ou explicar rapidamente um processo na lógica do programa. </para> + +<screenshot> +<screeninfo +>Colaboração</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="collaboration-diagram.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>O &umbrello; a mostrar um Diagrama de Colaboração</phrase> + </textobject> + <caption> + <para +>O &umbrello; a mostrar um Diagrama de Colaboração </para> + </caption> + </mediaobject> +</screenshot> + +</sect2 +> <!-- collaboration diagrams --> + +<sect2 id="state-diagram"> +<title +>Diagramas de Estados</title> +<para +>Os Diagramas de Estados mostram os diferentes estados de um objecto durante a sua vida, bem como os estímulos que fazem com que o objecto mude o seu estado. </para +> +<para +>Os Diagramas de Estados vêem os objectos como <emphasis +>máquinas de estados</emphasis +> ou autónomos finitos que poderão estar num estado pertencente a uma lista de estados finitos e que poderão mudar o seu estado através de um estímulo pertencente a um conjunto finito de estímulos. Por exemplo, um objecto do tipo <emphasis +>ServidorRede</emphasis +> poderá estar num dos seguintes estados durante a sua vida: </para> +<itemizedlist> +<listitem +><para +>Pronto</para +></listitem> +<listitem +><para +>À espera</para +></listitem> +<listitem +><para +>A trabalhar</para +></listitem> +<listitem +><para +>Parado</para +></listitem> +</itemizedlist> +<para +>e os eventos que poderão fazer com que o Objecto mude de estado são</para> +<itemizedlist> +<listitem +><para +>O objecto é criado</para +></listitem> +<listitem +><para +>O objecto atende a mensagem</para +></listitem> +<listitem +><para +>Um cliente pede uma ligação pela rede</para +></listitem> +<listitem +><para +>Um cliente termina um pedido</para +></listitem> +<listitem +><para +>O pedido é executado e terminado</para +></listitem> +<listitem +><para +>O objecto recebe a mensagem parar</para +></listitem> +<listitem +><para +>etc</para +></listitem> +</itemizedlist> +<para> +<screenshot> +<screeninfo +>Diagrama de Estado</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="state-diagram.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>O &umbrello; a mostrar um Diagrama de Estado</phrase> + </textobject> + <caption> + <para +>O &umbrello; a mostrar um Diagrama de Estado </para> + </caption> + </mediaobject> +</screenshot> +</para> +<sect3 id="state"> +<title +>Estado</title> +<para +>Os estados são os blocos de construção dos Diagramas de Estado. Um estado pertence a exactamente uma classe e representa um resumo dos valores que os atributos de uma classe poderão obter. Um Estado no &UML; descreve o estado interno de um objecto de uma determinada classe </para +> +<para +>Tenha em atenção que nem todas as alterações de um atributo de um objecto deverão ser representadas por um estado, mas só mesmo aquelas alterações que poderão afectar significativamente o funcionamento do objecto</para> +<para +>Existem dois tipos especiais de Estados: o Inicial e o Final. Eles são especiais na medida em que não existe nenhum evento que possa fazer um objecto voltar ao seu estado inicial, da mesma forma que não há nenhum evento que possa retirar um objecto do seu estado final, logo que o tenha atingido. </para> +</sect3> + +</sect2 +> <!-- state diagrams --> + +<sect2 id="activity-diagram"> +<title +>Diagrama de Actividades</title> +<para +>Os Diagramas de Actividades descrevem a sequência de actividades de um sistema, com a ajuda das Actividades propriamente ditas. Os Diagramas de Actividades são um tipo especial de Diagramas de Estados, que só (ou em grande parte) contêm Actividades. </para> +<para> +<screenshot> +<screeninfo +>Um exemplo de Diagrama de Actividades.</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="activity-diagram.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>O &umbrello; a mostrar um Diagrama de Actividade</phrase> + </textobject> + <caption> + <para +>O &umbrello; a mostrar um Diagrama de Actividade </para> + </caption> + </mediaobject> +</screenshot> +</para> +<para +>Os Diagramas de Actividades são semelhantes aos fluxogramas procedimentais, com a diferença que todas as Actividades estão claramente associadas a objectos.</para> + +<para +>Os Diagramas de Actividades estão sempre associados a uma <emphasis +>Classe</emphasis +>, uma <emphasis +>Operação</emphasis +> ou um <emphasis +>Caso de Uso</emphasis +>.</para> + +<para +>Os Diagramas de Actividades suportam as Actividades sequências, assim como as paralelas. A execução paralela é representada através de ícones de 'Fork' (Bifurcação) ou 'Wait' (Espera) e, para as actividades que decorrem em paralelo, não é importante a ordem pela qual são desempenhadas (elas poderão ser executadas ao mesmo tempo ou uma a seguir à outra)</para> +<sect3 id="activity"> +<title +>Actividade</title> +<para +>Uma Actividade é um passo único num processo. Uma Actividade é um estado no sistema com actividade interna e, pelo menos, uma transição de saída. As Actividades também poderão conter mais do que uma transição de saída se tiverem diferentes condições. </para +> +<para +>As Actividades poderão formar hierarquias, o que significa que uma Actividade poderá ser composta por várias Actividades de <quote +>detalhe</quote +>, onde nesse caso as transições de entrada e de saída deverão corresponder às transições de entrada e de saída do diagrama de detalhe. </para> + +</sect3> +</sect2 +> <!-- activity diagram --> + +<sect2 id="helper-elements"> +<title +>Elementos Auxiliares</title> +<para +>Existem alguns elementos no &UML; que não têm nenhum valor semântico real para o modelo, mas que ajudam a clarificar partes do diagrama. Esses elementos são </para> +<itemizedlist> +<listitem +><para +>Linhas de texto</para +></listitem> +<listitem +><para +>Notas de Texto e âncoras</para +></listitem> +<listitem +><para +>Caixas</para +></listitem> +</itemizedlist +> +<para +>As linhas de texto são úteis para adicionar algumas informações textuais breves para um diagrama. Correspondem a texto livre e não têm nenhum significado para o modelo em si. </para +> + +<para +>As notas são úteis para adicionar informações mais detalhada sobre um objecto ou uma dada situação. Têm a grande vantagem de poderem ser anexadas a Elementos de &UML; para mostrar que a nota <quote +>pertence</quote +> a um dado objecto ou situação. </para> + +<para +>As caixas são rectângulos livres que poderão ser usados para agrupar os itens em conjunto para tornar os diagramas mais legíveis. Elas não têm significado lógico no modelo.</para> + +<!-- FIXME, screenshot --> +</sect2 +> <!-- helper elements --> + +<sect2 id="component-diagram"> +<title +>Diagramas de Componentes</title> +<para +>Os Diagramas de Componentes mostram os componentes do 'software' (sejam referentes a tecnologias de componentes como os KParts, os componentes do CORBA ou Java Beans, ou mesmo secções do sistema que sejam claramente distintas), bem como os artefactos de que são compostos, como os ficheiros de código-fonte, as bibliotecas de programação ou as tabelas de bases de dados relacionais.</para> + +<para +>Os componentes poderão ter interfaces (&ie; classes abstractas com operações) quer permitem associar os componentes.</para> +</sect2> + +<sect2 id="deployment-diagram"> +<title +>Diagramas de Entrada em Produção</title> + +<para +>Os Diagramas de Entrada em Produção mostram as instâncias em execução, bem como as suas associações. Eles incluem os Nós, que são recursos físicos, correspondendo tipicamente a um único computador. Mostram também as interfaces e os objectos (as instâncias das classes).</para> + +</sect2> + +</sect1 +> +</chapter> diff --git a/tde-i18n-pt/docs/tdesdk/umbrello/working_with_umbrello.docbook b/tde-i18n-pt/docs/tdesdk/umbrello/working_with_umbrello.docbook new file mode 100644 index 00000000000..e3c09d38da4 --- /dev/null +++ b/tde-i18n-pt/docs/tdesdk/umbrello/working_with_umbrello.docbook @@ -0,0 +1,405 @@ +<chapter id="working-with-umbrello"> +<title +>Trabalhar com o &umbrello;</title> +<!-- Umbrello basics: creating diagrams, creating classes, adding objects to diagrams, + associations, editing properties, anchor points in associations, removing objects, removing + diagrams +--> + +<para +>Este capítulo introduzi-lo-á à interface de utilizador do &umbrello; e indicar-lhe-á o que precisa de saber para começar a modelar. Todas as acções no &umbrello; são acedidas através do menu e das barras de ferramentas, mas o &umbrello; também recorre com frequência aos menus de contexto do &RMB;. Você poderá carregar com o &RMB; em praticamente qualquer elemento da área de trabalho ou da árvore do &umbrello; para obter um menu com as funções mais úteis que poderão ser aplicadas ao elemento em particular com que está a lidar. Alguns dos utilizadores poderão achar um pouco confuso ao início porque estão mais habituados a trabalhar com o menu ou com as barra de ferramentas, mas logo que esteja habituado a carregar com o botão <mousebutton +>direito</mousebutton +> irá aumentar bastante a velocidade do seu trabalho. </para> + +<sect1 id="user-interface"> +<title +>Interface do Utilizador</title> +<para +>A janela principal do &umbrello; está dividida em três áreas que o ajudarão a manter uma ideia geral do seu sistema inteiro e a aceder mais depressa aos diferente diagramas enquanto trabalha no seu modelo. </para> +<para +>Estas áreas são chamadas:</para> +<itemizedlist> +<listitem +><para +>Vista em Árvore</para +></listitem> +<listitem +><para +>Área de Trabalho</para +></listitem> +<listitem +><para +>Janela de Documentação</para +></listitem> +</itemizedlist> + +<screenshot> +<screeninfo +>Interface de Utilizador do &umbrello;</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="umbrello-ui.png" format="PNG"/> + </imageobject> + <textobject> + <phrase +>Interface de Utilizador do &umbrello;</phrase> + </textobject> + <caption> + <para +>Interface de Utilizador do &umbrello; </para> + </caption> + </mediaobject> +</screenshot> + +<sect2 id="tree-view"> +<title +>Vista em Árvore</title> +<para +>A Vista em Árvore, ou simplesmente Árvore, está localizada no lado esquerdo e na parte superior da janela, e mostra todos os diagramas, classes, actores e casos de utilização que compõem o seu modelo. A vista em árvore também lhe dá uma forma rápida de alternar entre os diferentes diagramas do seu modelo e de inserir elementos do seu modelo no diagrama actual. </para> +<para +>Se você estiver a trabalhar num modelo com bastantes classes e diagramas, a Árvore poderá ajudá-lo a ter a noção das coisas, organizando os elementos do seu modelo em pastas. Você poderá criar pastas se seleccionar a opção apropriada no menu de contexto (se carregar com o &RMB; numa das pastas da árvore) e poderá organizar os seus elementos, movendo-os para a pasta apropriada (arrastando-os e largando-os) </para> +</sect2> + +<sect2 id="documentation-window"> +<title +>Janela de Documentação</title> +<para +>A Janela de Documentação é a pequena janela que se localiza em baixo e à esquerda na janela do &umbrello;, e dá-lhe uma antevisão rápida da documentação para o item seleccionado no momento. A Janela de Documentação é relativamente pequena porque pretende dar-lhe apenas uma ideia rápida da documentação do elemento, mas ocupando o mínimo espaço no ecrã possível. Se você precisar de ver a documentação com mais detalhe, poderá sempre abrir as propriedades do item. </para> +</sect2> +<sect2 id="work-area"> +<title +>Área de Trabalho</title> +<para +>A Área de Trabalho é a janela principal do &umbrello; e onde a acção real toma lugar. Você usa a Área de Trabalho para editar e ver os diagramas do seu modelo. A Área de Trabalho mostra o diagrama activo no momento. Actualmente só é possível mostrar um diagrama na Área de Trabalho em qualquer altura. </para> +</sect2> +</sect1 +> <!--user-interface--> +<sect1 id="load-save"> +<title +>Criar, Carregar e Gravar Modelos</title> +<para +>A primeira coisa que você precisa para começar a fazer algo de útil com o &umbrello; é criar um modelo sobre o qual trabalhar. Quando você inicia o &umbrello; ele carregar sempre o último modelo usado ou cria um novo modelo em branco (dependendo das suas opções definidas na janela de configuração). Isto permitir-lhe-á começar a trabalhar logo num instante. </para> +<sect2 id="new-model"> +<title +>Novo Modelo</title> +<para +>Se a qualquer altura você precisar de criar um novo modelo, poderá fazê-lo seleccionando para tal o item <guimenuitem +>Novo</guimenuitem +> do menu <guimenu +>Ficheiro</guimenu +>, ou carregando no ícone <guiicon +>Novo</guiicon +> da barra de ferramentas da aplicação. Se você estiver a trabalhar num modelo que foi modificado, o &umbrello; perguntar-lhe-á se deverá gravar as suas alterações antes de carregar o novo modelo. </para> +</sect2> +<sect2 id="save-model"> +<title +>Gravar Modelo</title> +<para +>Você poderá gravar o seu modelo em qualquer altura se seleccionar a opção <guimenuitem +>Gravar</guimenuitem +> do menu <guimenu +>Ficheiro</guimenu +> ou carregando no botão <guiicon +>Gravar</guiicon +> da barra de ferramentas da aplicação. Se precisar de gravar o seu modelo com outro nome, você poderá usar a opção <guimenuitem +>Gravar Como</guimenuitem +> do menu <guimenu +>Ficheiro</guimenu +>. </para> +<para +>Para sua conveniência, o &umbrello; também lhe oferece a possibilidade de gravar automaticamente o seu trabalho com um período de tempo determinado. Você poderá configurar se deseja esta opção, assim como definir os intervalos de tempo na <guimenu +>Configuração</guimenu +> do &umbrello;</para> +</sect2> +<sect2 id="load-model"> +<title +>Carregar Modelo</title> +<para +>Para carregar um modelo já existente, você poderá seleccionar a opção <guimenuitem +>Abrir</guimenuitem +> do menu <guimenu +>Ficheiro</guimenu +> ou ainda carregar no ícone <guiicon +>Abrir</guiicon +> da barra de ferramentas da aplicação. Os modelos usados mais recentemente estão disponíveis no sub-menu <guimenuitem +>Abrir Recente</guimenuitem +> do menu <guimenu +>Ficheiro</guimenu +> para acelerar o acesso aos seus modelos usados mais frequentemente. </para> +<para +>O &umbrello; só poderá lidar com um modelo de cada vez, por isso se pedir ao programa para carregar um modelo para si, e se o seu modelo actual tiver sido modificado desde a última vez que o gravou, o &umbrello; irá perguntar se você deseja gravar as suas alterações para evitar que perca o trabalho. Você poderá iniciar duas ou mais instâncias do &umbrello; em qualquer altura, assim como também poderá copiar e colar entre instâncias. </para> +</sect2> +</sect1 +> <!--load-save--> +<sect1 id="edit-model"> +<title +>Editar Modelos</title> +<para +>No &umbrello;, existem basicamente duas formas de editar os elementos do seu modelo. <itemizedlist> +<listitem +><para +>Editar directamente os elementos do modelo na Árvore</para +></listitem> +<listitem +><para +>Editar os elementos do modelo através de um diagrama</para +></listitem> +</itemizedlist> +</para> +<para +>Ao usar o menu de contexto dos diferentes itens da Árvore você será capaz de adicionar, remover e modificar quase todos os elementos do seu modelo. Se carregar com o botão <mousebutton +>direito</mousebutton +> nas pastas da Árvore, você ficará com algumas opções para criar os diferentes tipos de diagramas assim como, dependendo se a pasta pertence a uma <emphasis +>Vista de um Caso de Uso</emphasis +> ou de uma <emphasis +>Vista Lógica</emphasis +>, a Actores, Casos de Utilização, Classes, etc. </para> +<para +>Logo que você tenha adicionado elementos ao seu modelo, você poderá também editar um elemento se aceder à sua janela de propriedades, a qual poderá encontrar se seleccionar a opção <emphasis +>Propriedades</emphasis +> do menu de contexto que é mostrado quando se carrega com o botão <mousebutton +>direito</mousebutton +> nos itens da Árvore. </para> +<para +>Você também poderá editar o seu modelo, criando ou modificando elementos através dos diagramas. Poderão ser obtidos mais detalhes sobre como fazê-lo nas secções seguintes. </para> +</sect1> +<sect1 id="add-remove-diagrams"> +<title +>Adicionar e Remover Diagramas</title> +<para +>O seu modelo &UML; consiste num conjunto de elementos &UML; e de associações entre eles. Todavia, você não consegue ver o modelo directamente, como tal você usa os <emphasis +>Diagramas</emphasis +> para olhar para ele. </para> +<sect2 id="create-diagram"> +<title +>Criar Diagramas</title> +<para +>Para criar um novo diagrama no seu modelo, basta seleccionar o tipo de diagrama que precisa no sub-menu <guimenuitem +>Novo</guimenuitem +> do menu <guimenu +>Diagrama</guimenu +> e dar-lhe um nome. O diagrama será criado e tornado activo, e você vê-lo-á imediatamente na árvore. </para> +<para +>Lembre-se que o &umbrello; tira bastante partido dos menus de contexto: você também poderá carregar com o &RMB; numa pasta da Árvore e seleccionar o tipo de diagrama apropriado no sub-menu <guisubmenu +>Novo</guisubmenu +> do menu de contexto. Lembre-se que você poderá criar Diagramas de Casos de Uso apenas na Vista de Casos de Uso, enquanto que os outros tipos de diagramas só poderão ser criados nas pastas das Vistas Lógicas. </para> +</sect2> +<sect2 id="remove-diagram"> +<title +>Remover Diagramas</title> +<para +>Se você necessitar de remover um diagrama do seu modelo deve torná-lo activo e seleccionar a opção <guimenuitem +>Remover</guimenuitem +> do menu <guimenu +>Diagrama</guimenu +>. Você também poderá conseguir isto se seleccionar <guimenuitem +>Remover</guimenuitem +> do menu de contexto dos diagramas na árvore </para> +<para +>Dado que a remoção de um diagrama é algo sério que poderá dar origem à perda de algum trabalho se for feito por acidente, o &umbrello; perguntar-lhe-á se confirma a operação de remoção antes de remover efectivamente o diagrama. Assim que um diagrama tenha sido removido e o ficheiro tenha sido gravado não existe forma de anular essa acção. </para> +</sect2> +<sect2 id="rename-diagram"> +<title +>Mudar o Nome a Diagramas</title> +<para +>Se quiser mudar o nome de um diagrama existente, você-lo-á fazer facilmente se seleccionar a opção Mudar o Nome do seu menu do &RMB; da árvore. </para> +<para +>Outra forma de mudar o nome de um diagrama é através da sua janela de propriedades, a qual poderá aceder se seleccionar Propriedades do seu menu de contexto ou se carregar duas vezes na árvore. </para> +</sect2> +</sect1> +<sect1 id="edit-diagram"> +<title +>Editar Diagramas</title> +<para +>Ao trabalhar num diagrama, o &umbrello; irá tentar guiá-lo na aplicação de algumas regras simples como quais os elementos que são válidos nos diferentes tipos de diagramas, assim como as relações entre eles. Se você for um perito em &UML; poderá até nem dar por isso, mas isto poderá ajudar as pessoas menos experientes em &UML; a criar diagramas em conformidade com as normas. </para> +<para +>Logo que você tenha criado os seus diagramas, é a altura de começar a editá-los. Aqui você deverá reparar na diferença (subtil, para os principiantes) entre a edição do seu diagrama e a edição do <emphasis +>modelo</emphasis +>. Como já deverá saber, os diagramas são <emphasis +>vistas</emphasis +> do seu modelo. Por exemplo, se você criar uma classe ao editar um Diagrama de Classes, você está de facto a alterar ambos, o seu diagrama e o seu modelo. Se você alterar a cor ou outras opções de visualização de uma classe no seu Diagrama de Classes, você só estará a editar o diagrama, mas nada se altera no seu modelo. </para> +<sect2 id="insert-elements"> +<title +>Inserir Elementos</title> +<para +>Uma das primeiras coisas que você irá fazer quando estiver a editar um diagrama novo é inserir elementos nele (Classes, Actores, Casos de Uso, &etc;). Existem basicamente duas formas de o fazer:</para> +<itemizedlist> +<listitem +><para +>Arrastar os elementos existentes no seu modelo a partir da árvore</para +></listitem> +<listitem +><para +>Criando novos elementos no seu modelo e adicionando-os ao seu diagrama ao mesmo tempo, usando uma das ferramentas de edição da Barra de Trabalho</para +></listitem> +</itemizedlist> +<para +>Para inserir elementos que já existam no seu modelo, basta arrastá-los da árvore e largá-los onde os desejar no seu diagrama. Você poderá sempre mover os elementos do seu diagrama com a ferramenta de selecção. </para> +<para +>A segunda forma de adicionar elementos ao seu diagrama é usando as ferramentas de edição da Barra de Trabalho (repare que isto também irá adicionar os elementos ao seu modelo). </para> +<para +>A Barra de Trabalho localizava-se por omissão no canto direito da janela da aplicação, só que o &umbrello; 1.2 moveu-a para o topo da janela. Você pode acoplar a janela a outro extremo ou tê-la a flutuar onde preferir. As ferramentas disponíveis nesta barra de ferramentas (os botões que vê nela) mudam de acordo com o tipo de diagrama com que está a lidar no momento. O botão para a ferramenta seleccionada no momento está activo na barra de ferramentas. Você poderá mudar para a ferramenta de selecção se carregar na tecla &Esc;. </para> +<para +>Quando você tiver seleccionado uma ferramenta de edição da Barra de Ferramentas de Trabalho (como, por exemplo, a ferramenta de inserção de classes), o cursor do rato muda para uma cruz, e você poderá inserir os elementos no seu modelo se carregar uma vez no seu diagrama. Repare que os elementos no &UML; precisam de ter um <emphasis +>Nome Único</emphasis +>. Por isso, se você tiver uma classe num diagrama cujo nome é <quote +>ClasseA</quote +> e se você quiser usar a ferramenta de inserção de classes para inserir uma classe noutro diagrama, você não poderá chamar a essa nova classe também <quote +>ClasseA</quote +>. Se estes dois nomes são supostamente para estar em dois elementos diferentes, você precisa de dar a eles um nome único. Se você estiver a tentar adicionar o <emphasis +>mesmo</emphasis +> elemento ao seu diagrama, então a ferramenta de inserção de classes não é a melhor ferramenta para isso. Você deverá arrastar e largar a classe a partir da árvore, em alternativa. </para> +</sect2> +<sect2 id="delete-elements"> +<title +>Apagar Elementos</title> +<para +>Você poderá remover qualquer elemento se seleccionar a opção <guimenuitem +>Remover</guimenuitem +> do seu menu de contexto. </para> +<para +>Mais uma vez, existe uma <emphasis +>grande</emphasis +> diferença entre remover um objecto de um diagrama e remover um objecto do seu modelo. Se você remover um objecto de um diagrama, só o estará a remover desse diagrama em particular: o elemento continuará a fazer parte do seu modelo e, se existirem outros diagramas que usem o mesmo elemento, os mesmos não sofrerão qualquer alteração. Se, por outro lado, você remover o elemento da Árvore, você está efectivamente a remover o elemento do seu <emphasis +>modelo</emphasis +>. Dado que o elemento já não existe mais no seu modelo, ele será removido automaticamente de todos os diagramas em que aparece. </para> +</sect2> +<sect2 id="edit-elements"> +<title +>Editar Elementos</title> +<para +>Você poderá editar a maioria dos elementos de &UML; do seu modelo e dos diagramas se abrir a sua janela respectiva de Propriedades e se seleccionar as opções apropriadas. Para editar as propriedades de um objecto, seleccione as <guimenuitem +>Propriedades</guimenuitem +> no seu menu de contexto (com o &RMB;). Cada elemento tem uma janela que consiste em várias páginas onde você poderá configurar as opções correspondentes a esse elemento. Para alguns elementos, como os actores, você define poucas acções, mas para outros como as classes, você poderá editar os seus atributos e operações, seleccionar o que deseja mostrar no diagrama (a assinatura da operação ou apenas os seus nomes, &etc;) e até as cores que deseja usar para as linhas e para o preenchimento da representação da classe no diagrama. </para> + +<para +>Para a maioria dos elementos de &UML; você também poderá abrir a janela de propriedades se carregar duas vezes nele ao usar a ferramenta de selecção (a seta). A excepção a isto são as Associações, onde nesse caso carregar duas vezes cria um ponto de âncora. Para as associações, você precisa de usar o menu de contexto do &RMB; para aceder à janela de propriedades. </para> + +<para +>Repare que você também poderá seleccionar a opção de propriedades no menu de contexto dos elemento na árvore. Isto permite-lhe também editar as propriedades dos diagramas, como a definição da visibilidade da grelha ou não. </para> +</sect2> +<sect2 id="edit-classes"> +<title +>Editar Classes</title> +<para +>Ainda que a edição das propriedades de todos os objectos já tenha sido falada na secção anterior, as classes merecem uma secção especial porque são um pouco mais complicadas e têm mais opções que a maioria dos outros elementos de &UML;. </para> +<para +>Na janela de propriedades de uma classe você poderá configurar tudo, desde a cor que usa até às operações e atributos que tem. </para> +<sect3 id="class-general-settings"> +<title +>Configuração Geral das Classes</title> +<para +>A página de Opções Gerais da janela de propriedades é auto-compreensível. Aqui você poderá alterar o nome da classe, a visibilidade, a documentação, &etc;. Esta página está sempre disponível. </para> +</sect3> +<sect3 id="class-attributes-settings"> +<title +>Configuração dos Atributos das Classes</title> +<para +>Na página de Opções dos Atributos você poderá adicionar, editar ou remover atributos (variáveis) da classe. Você poderá subir ou descer os atributos na lista se carregar nas setas ao lado. Esta página está sempre disponível. </para> +</sect3> +<sect3 id="class-operations-settings"> +<title +>Configuração das Operações das Classes</title> +<para +>De forma semelhante à página das Opções dos Atributos, na página de Opções das Operações você poderá adicionar, editar ou remover operações da sua classe. Ao adicionar ou editar uma operação, você indica os dados básicos na janela de <emphasis +>Propriedades da Operação</emphasis +>. Se você quiser adicionar parâmetros à sua operação você precisa de carregar no botão <guibutton +>Novo Parâmetro</guibutton +>, o qual irá mostrar a janela de <emphasis +>Propriedades do Parâmetro</emphasis +>. Esta página está sempre disponível </para> +</sect3> +<sect3 id="class-template-settings"> +<title +>Configuração do Modelo de Classe</title> +<para +>Esta página permite-lhe adicionar modelos de classes, os quais são classes ou tipos de dados não especificados. No Java 1.5 chamar-se-ão 'Generics' (Genéricos). </para> +</sect3> +<sect3 id="class-associations-page"> +<title +>Página de Associações da Classe</title> +<para +>A página <guilabel +>Associações da Classe</guilabel +> mostra todas as associações desta classe no diagrama actual. Se carregar duas vezes numa associação irá mostrar as suas propriedades e, dependendo do tipo de associação, você poderá modificar alguns parâmetros, como por exemplo a multiplicidade ou o nome do papel. Se a associação não permitir que essas opções sejam modificadas, a janela de Propriedades da Associação fica apenas para leitura e só poderá modificar a documentação referente a esta associação. </para> +<para +>Esta página só está disponível se você abrir as Propriedades da Classe dentro de um diagrama. Se você seleccionar as propriedades da classe no menu de contexto da árvore, esta página não estará disponível. </para> +</sect3> +<sect3 id="class-display-page"> +<title +>Página de Visualização de Classes</title> +<para +>Na página de <guilabel +>Opções de Visualização</guilabel +>, você poderá configurar o que deve ser mostrado no diagrama. Uma classe poderá ser mostrada apenas como um rectângulo com o nome da classe nele (útil se você tiver várias classes no seu diagrama, ou se não estiver interessado de momento nos detalhes de cada classe) ou então completo, mostrando por exemplo os pacotes, estereótipos, atributos e operações com a assinatura e visibilidade completas </para> +<para +>Dependendo da quantidade de informação que você deseja ver, você poderá seleccionar as opções correspondentes nesta página. As alterações que fizer aqui são apenas <emphasis +>opções de apresentação</emphasis +> para o diagrama. Isto significa que, se <quote +>esconder</quote +> as operações de uma classe, só fará com que elas não sejam apresentadas no diagrama, mas estas mantêm-se à mesma como parte do seu modelo. Esta opção só está disponível se você seleccionar as propriedades de uma classe dentro de um diagrama. Se você abrir as propriedades de uma classe a partir da árvore, esta página não aparece, porque essas opções de apresentação não farão sentido nesse caso</para> +</sect3> +<sect3 id="class-color-page"> +<title +>Página de Cor da Classe</title> +<para +>Na página <guilabel +>Cor do Elemento</guilabel +> você poderá configurar as cores que deseja usar para as linhas e para o enchimento do elemento. Esta opção só faz sentido obviamente para as classes mostradas nos diagramas e não aparece se você abrir a janela de propriedades da classe na árvore. </para> +</sect3> +</sect2> + +<sect2 id="associations"> +<title +>Associações</title> +<para +>As associações relacionam dois objectos &UML; um com o outro. Normalmente as associações são definidas entre duas classes, mas alguns tipos de associações poderão também existir entre casos de uso e actores. </para> +<para +>Para criar uma associação, seleccione a ferramenta apropriada na Barra de Trabalho (uma Associação genérica, uma Generalização, uma Agregação, &etc;), e carregue no primeiro elemento que participa na associação, carregando depois no segundo item participante. Repare que deve carregar duas vezes, uma em cada objecto que participa na associação, e <emphasis +>não</emphasis +> efectuar um arrastamento de um objecto para outro. </para> +<para +>Se tentar usar uma associação de um forma que não respeite a especificação do &UML;, o &umbrello; recusar-se-á a criar a associação e você irá obter uma mensagem de erro. Este seria o caso se, por exemplo, existisse uma Generalização da classe A para a classe B e você quisesse criar outra generalização da classe B para a classe A </para> +<para +>Se carregar com o botão <mousebutton +>direito</mousebutton +> numa associação, irá aparecer um menu de contexto com as acções que poderá aplicar nela. Se precisar de apagar uma associação, basta seleccionar a opção <guimenuitem +>Remover</guimenuitem +> deste menu de contexto. Você também poderá seleccionar a opção <guimenuitem +>Propriedades</guimenuitem +> e, dependendo do tipo de associação, editar os atributos como os papéis e a multiplicidade. </para> +<sect3 id="anchor-points"> +<title +>Pontos Âncora</title> +<para +>As associações são desenhadas, por omissão, como uma linha a direito a ligar os dois objectos no diagrama. </para> +<para +>Você poderá adicionar pontos de âncora se fizer carregar duas vezes em qualquer ponto da linha da associação. Isto irá introduzir um ponto de âncora (representado como um ponto azul, quando a linha da associação fica seleccionada) que você poderá mover para dar forma à associação </para> +<para +>Se precisar de remover um ponto de âncora, carregue duas vezes nele para o remover </para> +<para +>Repare que a única forma de editar as propriedades de uma associação é através do menu de contexto. Se você tentar carregar duas vezes nele como faz com outros objectos &UML;, isto irá apenas introduzir um ponto de âncora. </para> +</sect3> +</sect2> + +<sect2 id="notes"> +<title +>Notas, Texto e Caixas</title> +<para +>As Notas, as Linhas de Texto e as Caixas são elementos que poderão estar presentes em qualquer tipo de diagrama e não têm nenhum valor semântico, mas são muito úteis para adicionar comentários ou explicações-extra que possam tornar o seu diagrama mais simples de entender. </para> +<para +>Para adicionar uma Nota ou uma Linha de Texto, seleccione a ferramenta correspondente na Barra de Ferramentas de Trabalho e carregue no diagrama onde deseja colocar o seu comentário. Você poderá editar o texto se abrir o elemento com o seu menu de contexto ou, no caso das notas, se carregar duas vezes nelas. </para> +<sect3 id="anchors"> +<title +>Âncoras</title> +<para +>As âncoras são usadas para ligar uma nota de texto com outro elemento de &UML; em conjunto. Por exemplo, você usa normalmente uma nota de texto para explicar ou fazer algum comentário acerca de uma classe ou de uma associação em particular onde, nesse caso, você poderá usar a âncora para clarificar que a nota <quote +>pertence</quote +> a esse elemento em particular. </para> +<para +>Para adicionar uma âncora entre uma nota e outro elemento de &UML;, use a ferramenta da âncora na barra de ferramentas de trabalho. Você precisa de carregar primeiro na nota e depois no elemento de &UML; a que deseja ligar a nota. </para> +</sect3> +</sect2> +</sect1> +</chapter> +<!--edit-diagram--> |